4 releases

0.1.3 Jun 23, 2023
0.1.2 Oct 25, 2021
0.1.1 Oct 24, 2021
0.1.0 Oct 17, 2021

#119 in Internationalization (i18n)

Download history 218/week @ 2024-06-19 216/week @ 2024-06-26 122/week @ 2024-07-03 168/week @ 2024-07-10 297/week @ 2024-07-17 312/week @ 2024-07-24 327/week @ 2024-07-31 286/week @ 2024-08-07 170/week @ 2024-08-14 112/week @ 2024-08-21 152/week @ 2024-08-28 98/week @ 2024-09-04 214/week @ 2024-09-11 244/week @ 2024-09-18 268/week @ 2024-09-25 291/week @ 2024-10-02

1,054 downloads per month
Used in 14 crates (via lemmy_utils)

ISC license

36KB
769 lines

rosetta-i18n

Crates.io dependency status docs.rs CI

rosetta-i18n is an easy-to-use and opinionated Rust internationalization (i18n) library powered by code generation.

rosetta_i18n::include_translations!();

println!(Lang::En.hello("world"));  // Hello, world!

Documentation

Features

  • No runtime errors. Translation files are parsed at build time, so your code will never fail due to translations anymore.
  • No dependencies. This crate aims to have the smallest runtime overheat compared to raw strings. There is no additional dependencies at runtime.
  • Standard JSON format. Translations are written in JSON file with a syntax used by many other i18n libraries. Therefore, most translation services support it out of the box.
  • String formatting is supported.

Installation

Rosetta is separated into two crates, rosetta-i18n and rosetta-build. To install both, add the following to your Cargo.toml:

[dependencies]
rosetta-i18n = "0.1"

[build-dependencies]
rosetta-build = "0.1"

Documentation

The documentation is available on https://baptiste0928.github.io/rosetta/.

You can also read the API documentation on docs.rs: rosetta-i18n and rosetta-build.

Contributing

There is no particular contribution guidelines, feel free to open a new PR to improve the code. If you want to introduce a new feature, please create an issue before.

Dependencies

~2.3–3.5MB
~58K SLoC