@nodesecure/i18n
v4.1.0
Published
NodeSecure Internationalization
Readme
Requirements
- Node.js v24 or higher
Getting Started
This package is available in the Node Package Repository and can be easily installed with npm or yarn.
$ npm i @nodesecure/i18n
# or
$ yarn add @nodesecure/i18nUsage example
import * as i18n from "@nodesecure/i18n";
await i18n.setLocalLang("french");
console.log(i18n.getToken("depWalker.dep_tree"));
// Using parameters
console.log(i18n.getToken("depWalker.success_tarball", "14", "15ms"));You can consult the real use case of the API in the following codes: here and here.
Supported languages
- french
- english
[!NOTE] Feel free to open a PR to push a new language
API
See TypeScript definition file.
type languages = "french" | "english";
interface SetLocalLangOptions {
/** If true, calls getLocalLang() after setting and returns the language. */
force?: boolean;
}
export function getLocalLang(): Promise<languages>;
export function setLocalLang(newLanguage: languages, options?: SetLocalLangOptions): Promise<languages | void>;
export function getToken(token: string, ...parameters): Promise<string>;
export function getTokenSync(token: string, ...parameters): string;
export function getLanguages(): Promise<languages[]>;
export function taggedString(str: string, ...keys: any[]): (...keys: any[]) => string;
export function extend(language: string, tokens: Record<string, any>): void;
export function extendFromSystemPath(path: string): Promise<void>;Using the force option
Instead of calling setLocalLang and getLocalLang separately:
await i18n.setLocalLang("french");
await i18n.getLocalLang();You can use the force option to do it in one call:
await i18n.setLocalLang("french", { force: true });[!NOTE] Local lang must be updated otherwise
getTokenSync()will throws. Make sure to useawait i18n.getLocalLang()orawait i18n.setLocalLang(lang, { force: true })before any synchronous usage.
Generate documentation
You can generate a static webpage by using the build:documentation npm script:
$ npm run build:documentationContributing
Feel free to add a new language. You need to take inspiration from the two supported languages and replicate the same keys.
Then export it in the index.js file (example if we want to add a chinese translation).
export * as chinese from "./chinese.js";License
MIT
