Introduction
This package helps to transform resources to be used in a typesafe i18next project.
Getting started
Source can be loaded via npm.
$ npm install i18next-resources-for-ts
Usage via code (toc):
import { tocForResources } from 'i18next-resources-for-ts'
const nsA = {
name: 'nsA',
path: '/some/path/locales/en/nsA.json'
}
const nsB = {
name: 'nsB',
path: '/some/path/locales/en/nsB.json'
}
const toc = tocForResources([nsA, nsB], '/some/path')
Usage via code (merge):
import { mergeResources } from 'i18next-resources-for-ts'
const nsA = {
name: 'nsA',
resources: {
k1: 'v1',
k2: 'v2',
k3: {
d3: 'v3'
}
}
}
const nsB = {
name: 'nsB',
resources: {
k21: 'v21',
k22: 'v22',
k23: {
d23: 'v23'
}
}
}
const merged = mergeResources([nsA, nsB])
Usage via code (interface):
import { mergeResourcesAsInterface } from 'i18next-resources-for-ts'
const nsA = {
name: 'nsA',
resources: {
k1: 'v1',
k2: 'v2',
k3: {
d3: 'v3'
}
}
}
const nsB = {
name: 'nsB',
resources: {
k21: 'v21',
k22: 'v22',
k23: {
d23: 'v23'
}
}
}
const definition = mergeResourcesAsInterface([nsA, nsB])
Usage via CLI:
npx i18next-resources-for-ts subcommand -i /Users/user/my/input -o /Users/user/my/output
npm install i18next-resources-for-ts -g
i18next-resources-for-ts toc -i /Users/user/my/input -o /Users/user/my/output.ts
i18next-resources-for-ts interface -i /Users/user/my/input -o /Users/user/my/output.d.ts
i18next-resources-for-ts merge -i /Users/user/my/input -o /Users/user/my/output.json
Make sure your folder structure contains all relevant namespaces (in your source/reference language):
└── namespace.json
or
└── namespace.yml
or
└── namespace.yaml
i.e.
├── translation.json
└── common.json
or
├── translation.yml
└── common.yml
or
├── translation.yaml
└── common.yaml
Check these examples to see how to use it:
From the creators of i18next: localization as a service - locize.com
A translation management system built around the i18next ecosystem - locize.com.
With using locize you directly support the future of i18next.