kellpossible / kellpossible/cargo-i18n

Simple fmt based localization using serde/miniserde

Open
#87 3 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.