tiny-i18n

Crates.iotiny-i18n
lib.rstiny-i18n
version0.1.6
sourcesrc
created_at2024-06-04 17:04:17.980085
updated_at2024-06-06 19:51:51.213507
descriptionA tiny library to internationalize your project
homepage
repositoryhttps://gitlab.com/crat1985/tiny-i18n
max_upload_size
id1261761
size3,592
Thibaut (crat1985)

documentation

README

My i18n Rust library

Features

  • Fully at compile-time (shouldn't ever crash or experience an issue at runtime)
  • Supports arguments (not named, it uses format!() under the hood, see its documentation for all of its caracteristics)
  • Fallback language choice (for now, it is always en-US)

Example

my_i18n_library::i18n!("path_of_the_translations_directory"); //defaults to `i18n` if blank

fn main() {
    // Each translation key generates a macro (every non-ASCII letter, number or underscore are removed)
    println!("{}", i18n::hello_world!("en-us")); //the first argument is the language, the following are the arguments (optional)
}

The structure is the following :

└── *The name of your i18n folder*
    └── en-US
        └── *You can put as many JSON files as you want inside each language folder*
    └── *Other languages*

The syntax of the JSON translations files is the following :

{
    "your_translation_key": "Your translation for the language (= the name of directory the file is in)"
}
Commit count: 30

cargo fmt