@alirezakeshvari/langjs v1.0.1
langjs
langjs is a lightweight multi-language support package for TypeScript/JavaScript projects. It allows developers to define their own translation files in JSON format, switch between languages dynamically, and fetch localized strings for their applications.
Features
- Dynamically load translation files (JSON format).
- Easily switch between multiple languages.
- Simple API to retrieve translations for any key.
- TypeScript support for type safety.
Installation
You can install langjs from npm:
npm install @alirezakeshvari/langjsOr using Yarn:
yarn add @alirezakeshvari/langjsUsage
1. Setting up your translation files
Define your translations in JSON files for each language. For example, create en.json and fa.json like this:
en.json
{
"hello": "Hello",
"goodbye": "Goodbye"
}fa.json
{
"hello": "سلام",
"goodbye": "خداحافظ"
}2. Providing the paths to your translation files
In your project, use the setTranslations function to provide the paths to your translation files:
import { setTranslations, setLocale, _ } from "langjs";
// Set paths to your translation files
setTranslations({
en: "./path/to/en.json",
fa: "./path/to/fa.json",
});3. Switching between locales
Use the setLocale function to switch between languages:
// Set locale to English
setLocale("en");
console.log(_("hello")); // Outputs: Hello
// Set locale to Farsi
setLocale("fa");
console.log(_("hello")); // Outputs: سلام4. Fetching translations
Use the _ function to get translations based on the current locale:
console.log(_("goodbye")); // Outputs the translation for the current localeIf a translation key is not found, the key itself will be returned:
console.log(_("nonexistent_key")); // Outputs: nonexistent_keyAPI
setTranslations(localeFiles: { [locale: string]: string }): void
Sets the paths to your translation files. The object keys represent the locale code (e.g., en, fa), and the values represent the file paths to the respective JSON files.
localeFiles: An object where the key is the locale (e.g.,"en","fa") and the value is the file path to the JSON file.
setLocale(locale: string): void
Sets the active locale for translations. This locale will be used to fetch translations when calling _.
locale: The locale to switch to (e.g.,"en","fa").
_ (key: string): string
Fetches the translation for the given key from the currently set locale. If the key does not exist, it returns the key itself.
key: The key for which to get the translation (e.g.,"hello").
Example Project Setup
import { setTranslations, setLocale, _ } from "langjs";
// Set the translation files for English and Farsi
setTranslations({
en: "./translations/en.json",
fa: "./translations/fa.json",
});
// Switch to English
setLocale("en");
console.log(_("hello")); // Outputs: Hello
// Switch to Farsi
setLocale("fa");
console.log(_("hello")); // Outputs: سلامRunning Tests
You can run the unit tests with Jest. First, ensure that you've set up your project with the required development dependencies:
npm installThen, run the tests:
npm testLicense
This project is licensed under the MIT License.