temp
This commit is contained in:
85
dioxus-i18n/README.md
Normal file
85
dioxus-i18n/README.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# dioxus-i18n 🌍
|
||||
|
||||
i18n integration for Dioxus apps based on the [Project Fluent](https://github.com/projectfluent/fluent-rs).
|
||||
|
||||
> This crate used to be in the [Dioxus SDK](https://github.com/DioxusLabs/sdk).
|
||||
|
||||
## Support
|
||||
|
||||
- **Dioxus v0.6** 🧬
|
||||
- Renderers:
|
||||
- [web](https://dioxuslabs.com/learn/0.6/guides/web/),
|
||||
- [desktop](https://dioxuslabs.com/learn/0.6/guides/desktop/),
|
||||
- [freya](https://github.com/marc2332/freya)
|
||||
- Both WASM and native targets
|
||||
|
||||
## Example:
|
||||
|
||||
```ftl
|
||||
# en-US.ftl
|
||||
|
||||
hello = Hello, {$name}!
|
||||
```
|
||||
|
||||
```rs
|
||||
// main.rs
|
||||
|
||||
fn app() -> Element {
|
||||
let i18 = use_init_i18n(|| {
|
||||
I18nConfig::new(langid!("en-US"))
|
||||
// implicit [`Locale`]
|
||||
.with_locale(( // Embed
|
||||
langid!("en-US"),
|
||||
include_str!("./en-US.ftl")
|
||||
))
|
||||
.with_locale(( // Load at launch
|
||||
langid!("es-ES"),
|
||||
PathBuf::from("./es-ES.ftl"),
|
||||
))
|
||||
.with_locale(( // Locales will share duplicated locale_resources
|
||||
langid!("en"), // which is useful to assign a specific region for
|
||||
include_str!("./en-US.ftl") // the primary language
|
||||
))
|
||||
// explicit [`Locale`]
|
||||
.with_locale(Locale::new_static( // Embed
|
||||
langid!("en-US"),
|
||||
include_str!("./en-US.ftl"),
|
||||
))
|
||||
.with_locale(Locale::new_dynamic( // Load at launch
|
||||
langid!("es-ES"),
|
||||
PathBuf::from("./es-ES.ftl"),
|
||||
))
|
||||
});
|
||||
|
||||
rsx!(
|
||||
label { { t!("hello", name: "World") } }
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
## Further examples
|
||||
|
||||
The examples folder contains a number of working examples:
|
||||
|
||||
* Desktop examples:
|
||||
* [Dioxus](./examples/dioxus-desktop.rs)
|
||||
* [Freya](./examples/freya.rs)
|
||||
* Configuration variants:
|
||||
* [Auto locales](./examples/config-auto-locales.rs)
|
||||
* [Dynamic (PathBuf)](./examples/config-dynamic-pathbuf.rs)
|
||||
* [Static (include_str!)](./examples/config-static-includestr.rs)
|
||||
* Fluent grammer:
|
||||
* [Application](./examples/fluent-grammar.rs)
|
||||
* [FTL file](./examples/data/fluent/en.ftl)
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Checks clean compile against `#[cfg(not(target_arch = "wasm32"))]`
|
||||
cargo build --target wasm32-unknown-unknown
|
||||
|
||||
# Runs all tests
|
||||
cargo test
|
||||
```
|
||||
|
||||
[MIT License](./LICENSE.md)
|
||||
Reference in New Issue
Block a user