dioxus_std/i18n/
use_init_i18n.rs

1use dioxus::prelude::*;
2use unic_langid::LanguageIdentifier;
3
4use super::use_i18n::Language;
5
6pub struct UseInitI18Data {
7    pub(crate) fallback_language: LanguageIdentifier,
8    pub(crate) languages: Vec<Language>,
9}
10
11pub fn use_init_i18n(
12    selected_language: LanguageIdentifier,
13    fallback_language: LanguageIdentifier,
14    languages: impl FnOnce() -> Vec<Language>,
15) {
16    let selected_language = use_signal(|| selected_language);
17    let init_i18_data = use_signal(|| UseInitI18Data {
18        languages: languages(),
19        fallback_language,
20    });
21
22    provide_context(selected_language);
23    provide_context(init_i18_data);
24}