feat(i18n): added automatic language settings updating from i18n
mod
This commit is contained in:
parent
b1bdfc9105
commit
c8e8413a00
2 changed files with 19 additions and 13 deletions
|
@ -13,3 +13,7 @@ company-alter-name = {-company-alter-name-1}{-company-alter-name-2}{-company-alt
|
||||||
-game-name-3 = Imp
|
-game-name-3 = Imp
|
||||||
-game-name-4 = act
|
-game-name-4 = act
|
||||||
game-name = {-game-name-1}{-game-name-2} {-game-name-3}{-game-name-4}
|
game-name = {-game-name-1}{-game-name-2} {-game-name-3}{-game-name-4}
|
||||||
|
|
||||||
|
en = English
|
||||||
|
ru = Русский
|
||||||
|
de = Deutsch
|
||||||
|
|
|
@ -24,6 +24,8 @@ pub struct GeneralApp {
|
||||||
|
|
||||||
style: LauncherStyle,
|
style: LauncherStyle,
|
||||||
|
|
||||||
|
languages: Vec<String>,
|
||||||
|
|
||||||
downloaded_wine_versions: Vec<wine::Version>,
|
downloaded_wine_versions: Vec<wine::Version>,
|
||||||
downloaded_dxvk_versions: Vec<dxvk::Version>,
|
downloaded_dxvk_versions: Vec<dxvk::Version>,
|
||||||
|
|
||||||
|
@ -167,25 +169,23 @@ impl SimpleAsyncComponent for GeneralApp {
|
||||||
|
|
||||||
// TODO: maybe simplify it by some way? e.g. specify such stuff in i18n mod
|
// TODO: maybe simplify it by some way? e.g. specify such stuff in i18n mod
|
||||||
|
|
||||||
#[wrap(Some)]
|
set_model: Some(>k::StringList::new(&model.languages.iter().map(|lang| lang.as_str()).collect::<Vec<&str>>())),
|
||||||
set_model = >k::StringList::new(&[
|
|
||||||
"English",
|
|
||||||
"Русский"
|
|
||||||
]),
|
|
||||||
|
|
||||||
set_selected: match CONFIG.launcher.language.as_str() {
|
set_selected: {
|
||||||
"en-us" => 0,
|
let selected = crate::i18n::get_lang().language;
|
||||||
"ru-ru" => 1,
|
|
||||||
_ => 0
|
SUPPORTED_LANGUAGES.iter()
|
||||||
|
.position(|lang| lang.language == selected)
|
||||||
|
.unwrap_or(0) as u32
|
||||||
},
|
},
|
||||||
|
|
||||||
connect_selected_notify => move |row| {
|
connect_selected_notify => move |row| {
|
||||||
if is_ready() {
|
if is_ready() {
|
||||||
if let Ok(mut config) = config::get() {
|
if let Ok(mut config) = config::get() {
|
||||||
config.launcher.language = String::from(*[
|
config.launcher.language = SUPPORTED_LANGUAGES
|
||||||
"en-us",
|
.get(row.selected() as usize)
|
||||||
"ru-ru"
|
.unwrap_or(&SUPPORTED_LANGUAGES[0])
|
||||||
].get(row.selected() as usize).unwrap_or(&"en-us"));
|
.language.to_string();
|
||||||
|
|
||||||
config::update(config);
|
config::update(config);
|
||||||
}
|
}
|
||||||
|
@ -503,6 +503,8 @@ impl SimpleAsyncComponent for GeneralApp {
|
||||||
|
|
||||||
style: CONFIG.launcher.style,
|
style: CONFIG.launcher.style,
|
||||||
|
|
||||||
|
languages: SUPPORTED_LANGUAGES.iter().map(|lang| tr(lang.language.as_str())).collect(),
|
||||||
|
|
||||||
downloaded_wine_versions: vec![],
|
downloaded_wine_versions: vec![],
|
||||||
downloaded_dxvk_versions: vec![],
|
downloaded_dxvk_versions: vec![],
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue