localekey
v0.0.3
Published
This package is used to import/export locales from LocaleKey.
Downloads
1
Readme
localekey
This package imports/exports locales from localekey to your project.
Install
pnpm i -D localekey
Features
- Can be used with any framework.
Prerequisites
You need a way to run your the file. tsx is recommended.
Example
Usage
This is example on how to use the package with typesafe-i18n. But you can use it with any framework or simply use node to write and read files.
Setup
import LocaleKey from 'localekey';
export const localekey = new LocaleKey({
projectId: '<Your project id>', // See url in localekey app
secret: '<Your team secret>', // See team settings in localekey app
});
Import
import { storeTranslationToDisk } from 'typesafe-i18n/importer';
import { localekey } from './utils';
const importTranslations = async () => {
const locales = await localekey.readAll();
await Promise.all(
Object.entries(locales).map(async ([locale, data]) =>
storeTranslationToDisk({
locale,
translations: data,
}),
),
);
};
void importTranslations();
Export
import { readTranslationFromDisk } from 'typesafe-i18n/exporter';
import { locales } from './i18n-util';
import { localekey } from './utils';
const exportTranslations = async () => {
const response = await Promise.all(
locales.map(async (localeCode) => {
const mapping = await readTranslationFromDisk(localeCode);
return {
data: mapping.translations as Record<string, string>,
localeCode,
};
}),
);
const payload: Record<string, Record<string, string>> = {};
for (const { data, localeCode } of response) {
payload[localeCode] = data;
}
await localekey.updateAll(payload);
};
void exportTranslations();
Run
Then run
tsx ./src/importer
tsx ./src/exporter