Internationalization
If your application supports multiple languages, the Dioxus SDK crate contains helpers to make working with translations in your application easier.
The full code for internationalization
src/i18n.rs
use dioxus::prelude::*; use dioxus_sdk::i18n::*; use dioxus_sdk::translate; use std::str::FromStr; fn main() { launch(app); } static EN_US: &str = r#"{ "id": "en-US", "texts": { "messages": { "hello_world": "Hello World!" }, "messages.hello": "Hello {name}" } }"#; static ES_ES: &str = r#"{ "id": "es-ES", "texts": { "messages": { "hello_world": "Hola Mundo!" }, "messages.hello": "Hola {name}" } }"#; #[allow(non_snake_case)] fn Body() -> Element { let mut i18 = use_i18(); let change_to_english = move |_| i18.set_language("en-US".parse().unwrap()); let change_to_spanish = move |_| i18.set_language("es-ES".parse().unwrap()); rsx! { button { onclick: change_to_english, label { "English" } } button { onclick: change_to_spanish, label { "Spanish" } } p { {translate!(i18, "messages.hello_world")} } p { {translate!(i18, "messages.hello", name: "Dioxus")} } } } fn app() -> Element { use_init_i18n("en-US".parse().unwrap(), "en-US".parse().unwrap(), || { let en_us = Language::from_str(EN_US).unwrap(); let es_es = Language::from_str(ES_ES).unwrap(); vec![en_us, es_es] }); rsx! { Body {} } }