Awesome Open Source
Awesome Open Source

✨ Locale Parser by barbarbar338

  • This is a YAML based localisation system that will make your job quite easy
  • Just create your language folder and seperate everything in files
  • Set your constants in constants.yaml and apply to everything

💡 Example

import { I18n } from "locale-parser";

/*
    options:
        directory?: string;
        defaultLocale: string;
*/
const parser = new I18n({ 
    defaultLocale: "en" 
});

parser.getLocales(); // => [ "en", "tr" ];
parser.getConstant(); // => all constants;
parser.getConstant("owner"); // => "owner" constant;
parser.toJSON(); // => all language data in an object
parser.toJSON({ arg: "this is an argument"}); // => all language data in an object with argument replaced

parser.get("en", "info", "test"); // "test" string in "info" section in "en" folder
parser.get("tr", "messages", "message", { arg: "this is an argument"}); // "message" string in "messages" section in "tr" folder with "arg" argument

📝 File Structure

locales/constants.yaml example

owner: barbarbar338
site: "https://barbarbar338.fly.dev/"
anotherConstant: this is a constant

locales/{locale}/{section}.yaml example

withConstant: this string uses %{owner} constant
withArgs: this string uses %{argument} argument and %{anotherArgument} argument
withConstantsAndArguments: this string uses %{simpleArgument} argument and %{site} constant

📁 Folder Structure

📂 locales/
├─── 📝 constants.yaml
├─── 📂 en
│    ├─── 📝 info.yaml
│    ├─── 📝 messages.yaml
│    └─── 📝 test.yaml
└─── 📂 tr
     ├─── 📝 info.yaml
     ├─── 📝 messages.yaml
     └─── 📝 test.yaml

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Typescript (245,560
Language (30,058
Yaml (10,300
Structure (10,171
Localization (5,321
I18n (4,834
Internationalization (3,328
Locale (194