Skip to content
This repository has been archived by the owner on Aug 14, 2024. It is now read-only.

NodeSecure/i18n

Repository files navigation

Caution

This project (package) has been migrated to Scanner monorepo, here

Internationalization (i18n) utilities for NodeSecure tools like CLI.

Supported languages:

  • french
  • english

Requirements

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/i18n

Usage 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.

API

See TypeScript definition file.

type languages = "french" | "english";

export function getLocalLang(): Promise<languages>;
export function setLocalLang(newLanguage: languages): Promise<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>;

Note

Local lang must be updated otherwise getTokenSync() will throws. Make sure to use await i18n.getLocalLang() before any synchronous usage.

Generate documentation

You can generate a static webpage by using the build:documentation npm script:

$ npm run build:documentation

Contributing

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";

Contributors ✨

All Contributors

Thanks goes to these wonderful people (emoji key):

Gentilhomme
Gentilhomme

💻 📖 👀 🛡️ 🐛
Nicolas Hallaert
Nicolas Hallaert

📖
Quentin Lepateley
Quentin Lepateley

📖
Antoine Neff
Antoine Neff

🌍
Kévin VOYER
Kévin VOYER

🌍
Alexandre Malaj
Alexandre Malaj

🌍
Vincent Dhennin
Vincent Dhennin

💻 📖
Mathieu
Mathieu

💻 🌍
Antoine Coulon
Antoine Coulon

🚧 👀
im_codebreaker
im_codebreaker

💻 📖 🎨
PierreDemailly
PierreDemailly

💻 🌍
Kouadio Fabrice Nguessan
Kouadio Fabrice Nguessan

💻
Ayushmaan Shrotriya
Ayushmaan Shrotriya

📖
Inès & Mélu
Inès & Mélu

📖

License

MIT