use super::*;
#[component]
pub(crate) fn page_hooks_i18n(node: VirtualNode<PageHooksI18nProps>) -> VirtualNode {
let PageHooksI18nProps: PageHooksI18nProps = node.try_get_props().unwrap_or_default();
let i18n: I18n = use_i18n(HOOKS_I18N_DEFAULT_LOCALE);
let locale: Signal<String> = *i18n.get_locale();
let locale_clone: String = String::from(HOOKS_I18N_DEFAULT_LOCALE);
let en_entries_static: [(&'static str, &'static str); 2] = HOOKS_I18N_EN_MESSAGES;
i18n_register(i18n, &locale_clone, &en_entries_static);
let other_clone: String = String::from(HOOKS_I18N_OTHER_LOCALE);
let zh_entries_static: [(&'static str, &'static str); 2] = HOOKS_I18N_ZH_MESSAGES;
i18n_register(i18n, &other_clone, &zh_entries_static);
let en_target: String = String::from(HOOKS_I18N_DEFAULT_LOCALE);
let other_target: String = String::from(HOOKS_I18N_OTHER_LOCALE);
let en_label: &'static str = HOOKS_I18N_LABEL_EN;
let other_label: &'static str = HOOKS_I18N_LABEL_OTHER;
html! {
div {
class: c_page_container()
euv_header {
icon: "🌐"
title: HOOKS_I18N_HEADER_TITLE
subtitle: HOOKS_I18N_HEADER_SUBTITLE
}
euv_card {
title: HOOKS_I18N_CARD_TITLE
div {
class: c_button_controls()
euv_button {
variant: if { locale.get() == HOOKS_I18N_DEFAULT_LOCALE } {
EuvButtonVariant::Primary
} else {
EuvButtonVariant::Outline
}
label: en_label
onclick: hooks_i18n_switch(i18n, en_target.clone())
}
euv_button {
variant: if { locale.get() == HOOKS_I18N_OTHER_LOCALE } {
EuvButtonVariant::Primary
} else {
EuvButtonVariant::Outline
}
label: other_label
onclick: hooks_i18n_switch(i18n, other_target.clone())
}
}
p {
class: c_render_count_text()
HOOKS_I18N_LOCALE_PREFIX
span {
class: c_counter_value()
locale
}
}
p {
class: c_render_count_text()
HOOKS_I18N_GREETING_PREFIX
span {
class: c_counter_value()
hooks_i18n_translate(i18n, HOOKS_I18N_KEY_GREETING)
}
}
p {
class: c_render_count_text()
HOOKS_I18N_FAREWELL_PREFIX
span {
class: c_counter_value()
hooks_i18n_translate(i18n, HOOKS_I18N_KEY_FAREWELL)
}
}
}
}
}
}