Skip to content

Using JSON for Dictionaries

For simple dictionaries, the default JSON-Module import of TypeScript can be used to retain strongly typed dictionaries. However, as JSON syntax has a reduced set of features compared to TypeScript, pluralization & contextualization is not available. You can still use interpolation as usual.

Prerequisites

Make sure your tsconfig.json has "resolveJsonModule" set to true. This will enable TypeScript to infer the structure of the imported object.

Using JSON as Dictionary

Import the JSON into your provider file to create a dictionary.

ts
import { createProvider, defineConfig, defineDictionary } from '@vayjs/vay';
import en from './dictionary.en.json'; // Import the JSON dictionary

const i18n = createProvider(
    // configure the provider
    defineConfig(),
    defineDictionary('en', en),
);

// The translate method uses the JSON object to infer paths
console.log(i18n.translate('token'));
json
{
    "token": "Phrase"
}

INFO

You can also mix and match .json and .ts dictionaries if needed. You can include JSON objects in TypeScript, just not the other way round.

Released under the MIT License.