0.0.3 • Published 7 months ago

localekey v0.0.3

Weekly downloads
-
License
-
Repository
github
Last release
7 months ago

localekey

npm (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

0.0.3

7 months ago

0.0.2

7 months ago

0.0.1

7 months ago