kellpossible / kellpossible/cargo-i18n
Simple fmt based localization using serde/miniserde
- Dominant language
- Rust
- Stars
- 146
- Forks
- 41
- Avg merge
- 12d 14h
- Merged PRs (30d)
- 1
Description
Provide a localization method that accepts strings coming from a dictionary via a `serde`, [nanoserde](https://github.com/not-fl3/nanoserde), [miniserde](https://github.com/dtolnay/miniserde), [microserde](https://github.com/cloudhead/microserde) format such as `json`, `yaml`, `toml`, `ron`, etc. Or perhaps also some binary formats like [messagepack](https://github.com/3Hren/msgpack-rust) or [bincode](https://github.com/bincode-org/bincode).
Strings can contain formatting syntax which can be either specified by the user, or use something like [ufmt](https://github.com/japaric/ufmt), [runtime_fmt](https://docs.rs/runtime-fmt/latest/runtime_fmt/), [dynfmt](https://crates.io/crates/dynfmt) or something like [minijinja](https://docs.rs/minijinja/latest/minijinja/)/[handlebars](https://docs.rs/handlebars/latest/handlebars/).
The primary use cases would be:
+ Support backwards compatibility with existing data or legacy pipelines.
+ Make it possible to have an extremely small/simple localization system for embedded/no_std use cases. This will also involve seeing how to make `i18n-embed` support `no_std`.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the existing localization API and the integration with i18n-embed; the issue names no files or tests. Compare the proposed serde-family formats, runtime formatting options, and no_std requirements before narrowing the scope. Done should mean a defined API, selected format and formatting strategy, and documented no_std support boundaries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- internationalization, localization
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100