From 9c65486a5cd83b94fe4451da18908dc1dd425abc Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Wed, 24 May 2023 21:50:45 +0200 Subject: [PATCH 01/35] 3.7.0 --- CHANGELOG.md | 5 ++++- Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fe5688..96dfe04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.7.0] - 24.05.2023 + ### Added - Added Italian @@ -262,7 +264,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
-[unreleased]: https://github.com/an-anime-team/an-anime-game-launcher/compare/3.6.0...next +[unreleased]: https://github.com/an-anime-team/an-anime-game-launcher/compare/3.7.0...next +[3.7.0]: https://github.com/an-anime-team/an-anime-game-launcher/compare/3.6.0...3.7.0 [3.6.0]: https://github.com/an-anime-team/an-anime-game-launcher/compare/3.5.2...3.6.0 [3.5.2]: https://github.com/an-anime-team/an-anime-game-launcher/compare/3.5.1...3.5.2 [3.5.1]: https://github.com/an-anime-team/an-anime-game-launcher/compare/3.5.0...3.5.1 diff --git a/Cargo.lock b/Cargo.lock index 6c6395a..23709e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "anime-game-launcher" -version = "3.6.0" +version = "3.7.0" dependencies = [ "anime-launcher-sdk", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 9b6b37b..7627503 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "anime-game-launcher" -version = "3.6.0" +version = "3.7.0" description = "Anime Game launcher" authors = ["Nikita Podvirnyy "] license = "GPL-3.0" From 1c5957910edf44835568f88ca427b0f50b704311 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Thu, 8 Jun 2023 10:11:11 +0200 Subject: [PATCH 02/35] fix: fixed progress bar style after running game repairer Before after that it would stop displaying current downloaded data size in MBs and so --- src/ui/main/repair_game.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/main/repair_game.rs b/src/ui/main/repair_game.rs index 2a0f416..70a1942 100644 --- a/src/ui/main/repair_game.rs +++ b/src/ui/main/repair_game.rs @@ -162,6 +162,8 @@ pub fn repair_game(sender: ComponentSender, progress_bar_input: Sender Date: Thu, 8 Jun 2023 10:22:36 +0200 Subject: [PATCH 03/35] fix: fixed repair button functionality Resolves #186 --- src/ui/main/repair_game.rs | 42 ++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/src/ui/main/repair_game.rs b/src/ui/main/repair_game.rs index 70a1942..0c71173 100644 --- a/src/ui/main/repair_game.rs +++ b/src/ui/main/repair_game.rs @@ -105,11 +105,45 @@ pub fn repair_game(sender: ComponentSender, progress_bar_input: Sender patch, + Err(err) => { + // TODO: do we really need this toast message here? Perhaps it's not an error but a warning? + sender.input(AppMsg::Toast { + title: tr("patch-info-fetching-error"), + description: Some(err.to_string()) + }); + + tracing::error!("Failed to get player patch status: {err}. Used config value instead: {}", config.patch.apply_main); + + config.patch.apply_main + } + }; + + // Get xlua patch status + + let xlua_patch = XluaPatch::from_folder(&config.patch.path, config.launcher.edition) + .and_then(|patch| patch.is_applied(&game_path)); + + let xlua_patch = match xlua_patch { + Ok(patch) => patch, + Err(err) => { + // TODO: do we really need this toast message here? Perhaps it's not an error but a warning? + sender.input(AppMsg::Toast { + title: tr("patch-info-fetching-error"), + description: Some(err.to_string()) + }); + + tracing::error!("Failed to get xlua patch status: {err}. Used config value instead: {}", config.patch.apply_xlua); + + config.patch.apply_xlua + } + }; tracing::debug!("Patches status: player({player_patch}), xlua({xlua_patch})"); From 3ca0d08598a2c6e59181145bf8d3669e41e847b3 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Thu, 8 Jun 2023 10:52:54 +0200 Subject: [PATCH 04/35] feat: removed toasts when failed to get main/xlua patch status in repairer Not like it was really necessary, and sometimes could cause misunderstandings --- src/ui/main/repair_game.rs | 36 ++++++++---------------------------- 1 file changed, 8 insertions(+), 28 deletions(-) diff --git a/src/ui/main/repair_game.rs b/src/ui/main/repair_game.rs index 0c71173..1b4b7cc 100644 --- a/src/ui/main/repair_game.rs +++ b/src/ui/main/repair_game.rs @@ -108,42 +108,22 @@ pub fn repair_game(sender: ComponentSender, progress_bar_input: Sender patch, - Err(err) => { - // TODO: do we really need this toast message here? Perhaps it's not an error but a warning? - sender.input(AppMsg::Toast { - title: tr("patch-info-fetching-error"), - description: Some(err.to_string()) - }); - - tracing::error!("Failed to get player patch status: {err}. Used config value instead: {}", config.patch.apply_main); + .and_then(|patch| patch.is_applied(&game_path)) + .unwrap_or_else(|err| { + tracing::warn!("Failed to get player patch status: {err}. Used config value instead: {}", config.patch.apply_main); config.patch.apply_main - } - }; + }); // Get xlua patch status let xlua_patch = XluaPatch::from_folder(&config.patch.path, config.launcher.edition) - .and_then(|patch| patch.is_applied(&game_path)); - - let xlua_patch = match xlua_patch { - Ok(patch) => patch, - Err(err) => { - // TODO: do we really need this toast message here? Perhaps it's not an error but a warning? - sender.input(AppMsg::Toast { - title: tr("patch-info-fetching-error"), - description: Some(err.to_string()) - }); - - tracing::error!("Failed to get xlua patch status: {err}. Used config value instead: {}", config.patch.apply_xlua); + .and_then(|patch| patch.is_applied(&game_path)) + .unwrap_or_else(|err| { + tracing::warn!("Failed to get xlua patch status: {err}. Used config value instead: {}", config.patch.apply_xlua); config.patch.apply_xlua - } - }; + }); tracing::debug!("Patches status: player({player_patch}), xlua({xlua_patch})"); From 4b4090114195e3a0df28bcb766df735792fc0503 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Thu, 8 Jun 2023 11:44:38 +0200 Subject: [PATCH 05/35] feat(core): updated SDK --- Cargo.lock | 292 ++++++++++++----------- Cargo.toml | 4 +- src/ui/components/group.rs | 23 +- src/ui/components/list.rs | 14 +- src/ui/components/mod.rs | 4 +- src/ui/components/progress_bar.rs | 4 +- src/ui/components/version.rs | 27 ++- src/ui/first_run/download_components.rs | 12 +- src/ui/main/create_prefix.rs | 2 +- src/ui/preferences/general/components.rs | 14 +- src/ui/preferences/general/mod.rs | 1 + 11 files changed, 206 insertions(+), 191 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 23709e0..db36743 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -39,17 +39,17 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" dependencies = [ "memchr", ] [[package]] name = "anime-game-core" -version = "1.10.3" -source = "git+https://github.com/an-anime-team/anime-game-core?tag=1.10.3#045a5442a8d4d15326abbd3c294ec934603947d1" +version = "1.11.5" +source = "git+https://github.com/an-anime-team/anime-game-core?tag=1.11.5#f24164f70b353f5e80ee9ad0e25d496d51443cea" dependencies = [ "anyhow", "bzip2", @@ -96,8 +96,8 @@ dependencies = [ [[package]] name = "anime-launcher-sdk" -version = "1.4.5" -source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.4.5#af03ab65d4350b35711d9ce118702844f79daf9e" +version = "1.6.3" +source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.6.3#6aef2d3d5ddb5d1e5e66df861146e8c36e9ed7dc" dependencies = [ "anime-game-core", "anyhow", @@ -244,7 +244,7 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -287,15 +287,9 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] -[[package]] -name = "async_once" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce4f10ea3abcd6617873bae9f91d1c5332b4a778bd9ce34d0cd517474c1de82" - [[package]] name = "atomic-waker" version = "1.1.1" @@ -331,9 +325,9 @@ checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] name = "base64" -version = "0.21.1" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f1e31e207a6b8fb791a38ea3105e6cb541f55e4d029902d3039a4ad07cc4105" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "base64ct" @@ -422,18 +416,16 @@ dependencies = [ [[package]] name = "cached" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc2fafddf188d13788e7099295a59b99e99b2148ab2195cae454e754cc099925" +checksum = "b195e4fbc4b6862bbd065b991a34750399c119797efff72492f28a5864de8700" dependencies = [ "async-trait", - "async_once", "cached_proc_macro", "cached_proc_macro_types", "futures", "hashbrown 0.13.2", "instant", - "lazy_static", "once_cell", "thiserror", "tokio", @@ -441,9 +433,9 @@ dependencies = [ [[package]] name = "cached_proc_macro" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10ca87c81aaa3a949dbbe2b5e6c2c45dbc94ba4897e45ea31ff9ec5087be3dc" +checksum = "b48814962d2fd604c50d2b9433c2a41a0ab567779ee2c02f7fba6eca1221f082" dependencies = [ "cached_proc_macro_types", "darling", @@ -460,9 +452,9 @@ checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663" [[package]] name = "cairo-rs" -version = "0.17.0" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8af54f5d48af1226928adc1f57edd22f5df1349e7da1fc96ae15cf43db0e871" +checksum = "ab3603c4028a5e368d09b51c8b624b9a46edcd7c3778284077a6125af73c9f0a" dependencies = [ "bitflags", "cairo-sys-rs", @@ -474,9 +466,9 @@ dependencies = [ [[package]] name = "cairo-sys-rs" -version = "0.17.0" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55382a01d30e5e53f185eee269124f5e21ab526595b872751278dfbb463594e" +checksum = "691d0c66b1fb4881be80a760cb8fe76ea97218312f9dfe2c9cc0f496ca279cb1" dependencies = [ "glib-sys", "libc", @@ -494,9 +486,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8790cf1286da485c72cf5fc7aeba308438800036ec67d89425924c4807268c9" +checksum = "e70d3ad08698a0568b0562f22710fe6bfc1f4a61a367c77d0398c562eadd453a" dependencies = [ "smallvec", "target-lexicon", @@ -620,16 +612,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "darling" version = "0.14.4" @@ -713,7 +695,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -750,7 +732,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -771,7 +753,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -812,11 +794,11 @@ dependencies = [ [[package]] name = "field-offset" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3cf3a800ff6e860c863ca6d4b16fd999db8b752819c1606884047b73e468535" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "memoffset 0.8.0", + "memoffset 0.9.0", "rustc_version", ] @@ -946,9 +928,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -1036,7 +1018,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -1071,9 +1053,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.17.0" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b023fbe0c6b407bd3d9805d107d9800da3829dc5a676653210f1d5f16d7f59bf" +checksum = "695d6bc846438c5708b07007537b9274d883373dd30858ca881d7d71b5540717" dependencies = [ "bitflags", "gdk-pixbuf-sys", @@ -1085,9 +1067,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf-sys" -version = "0.17.0" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b41bd2b44ed49d99277d3925652a163038bd5ed943ec9809338ffb2f4391e3b" +checksum = "9285ec3c113c66d7d0ab5676599176f1f42f4944ca1b581852215bf5694870cb" dependencies = [ "gio-sys", "glib-sys", @@ -1141,9 +1123,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "js-sys", @@ -1160,9 +1142,9 @@ checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" [[package]] name = "gio" -version = "0.17.9" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d14522e56c6bcb6f7a3aebc25cbcfb06776af4c0c25232b601b4383252d7cb92" +checksum = "a6973e92937cf98689b6a054a9e56c657ed4ff76de925e36fc331a15f0c5d30a" dependencies = [ "bitflags", "futures-channel", @@ -1180,9 +1162,9 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.17.4" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1d43b0d7968b48455244ecafe41192871257f5740aa6b095eb19db78e362a5" +checksum = "0ccf87c30a12c469b6d958950f6a9c09f2be20b7773f7e70d20b867fdf2628c3" dependencies = [ "glib-sys", "gobject-sys", @@ -1193,9 +1175,9 @@ dependencies = [ [[package]] name = "glib" -version = "0.17.9" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f1de7cbde31ea4f0a919453a2dcece5d54d5b70e08f8ad254dc4840f5f09b6" +checksum = "d3fad45ba8d4d2cea612b432717e834f48031cd8853c8aaf43b2c79fec8d144b" dependencies = [ "bitflags", "futures-channel", @@ -1216,15 +1198,15 @@ dependencies = [ [[package]] name = "glib-build-tools" -version = "0.17.0" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f8480c9ba9cc06aa8d5baf446037f8dc237bee127e9b62080c4db7e293d8ea0" +checksum = "7a65d79efe318ef2cbbbb37032b125866fd82c34ea44c816132621bbc552e716" [[package]] name = "glib-macros" -version = "0.17.9" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a7206c5c03851ef126ea1444990e81fdd6765fb799d5bc694e4897ca01bb97f" +checksum = "eca5c79337338391f1ab8058d6698125034ce8ef31b72a442437fa6c8580de26" dependencies = [ "anyhow", "heck", @@ -1237,9 +1219,9 @@ dependencies = [ [[package]] name = "glib-sys" -version = "0.17.4" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f00ad0a1bf548e61adfff15d83430941d9e1bb620e334f779edd1c745680a5" +checksum = "d80aa6ea7bba0baac79222204aa786a6293078c210abe69ef1336911d4bdc4f0" dependencies = [ "libc", "system-deps", @@ -1272,9 +1254,9 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.17.4" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e75b0000a64632b2d8ca3cf856af9308e3a970844f6e9659bd197f026793d0" +checksum = "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062" dependencies = [ "glib-sys", "libc", @@ -1283,9 +1265,9 @@ dependencies = [ [[package]] name = "graphene-rs" -version = "0.17.1" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cf11565bb0e4dfc2f99d4775b6c329f0d40a2cff9c0066214d31a0e1b46256" +checksum = "def4bb01265b59ed548b05455040d272d989b3012c42d4c1bbd39083cb9b40d9" dependencies = [ "glib", "graphene-sys", @@ -1294,9 +1276,9 @@ dependencies = [ [[package]] name = "graphene-sys" -version = "0.17.0" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf80a4849a8d9565410a8fec6fc3678e9c617f4ac7be182ca55ab75016e07af9" +checksum = "1856fc817e6a6675e36cea0bd9a3afe296f5d9709d1e2d3182803ac77f0ab21d" dependencies = [ "glib-sys", "libc", @@ -1448,9 +1430,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -1632,9 +1614,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.144" +version = "0.2.146" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" +checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" [[package]] name = "linux-raw-sys" @@ -1644,9 +1626,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -1654,11 +1636,10 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de" dependencies = [ - "cfg-if", "value-bag", ] @@ -1725,6 +1706,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "miniz_oxide" version = "0.6.2" @@ -1872,18 +1862,18 @@ dependencies = [ [[package]] name = "object" -version = "0.30.3" +version = "0.30.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "open" @@ -1919,9 +1909,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pango" -version = "0.17.4" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c280b82a881e4208afb3359a8e7fde27a1b272280981f1f34610bed5770d37" +checksum = "35be456fc620e61f62dff7ff70fbd54dcbaf0a4b920c0f16de1107c47d921d48" dependencies = [ "bitflags", "gio", @@ -1933,9 +1923,9 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.17.0" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4293d0f0b5525eb5c24734d30b0ed02cd02aa734f216883f376b54de49625de8" +checksum = "3da69f9f3850b0d8990d462f8c709561975e95f689c1cdf0fecdebde78b35195" dependencies = [ "glib-sys", "gobject-sys", @@ -1949,6 +1939,29 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.3.5", + "smallvec", + "windows-targets 0.48.0", +] + [[package]] name = "password-hash" version = "0.4.2" @@ -1980,9 +1993,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pin-project" @@ -2001,7 +2014,7 @@ checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2092,18 +2105,18 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.58" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa1fb82fc0c281dd9671101b66b771ebbe1eaf967b96ac8740dcba4b70005ca8" +checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" +checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" dependencies = [ "proc-macro2", ] @@ -2186,11 +2199,11 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.2" +version = "1.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1a59b5d8e97dee33696bf13c5ba8ab85341c002922fba050069326b9c498974" +checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" dependencies = [ - "aho-corasick 1.0.1", + "aho-corasick 1.0.2", "memchr", "regex-syntax", ] @@ -2221,13 +2234,13 @@ dependencies = [ [[package]] name = "relm4-macros" -version = "0.6.0-beta.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fa06febb3685960e7c1c44e21e44a3829325940b31d1e91391a43c32020c201" +checksum = "848a6e1b4954b7aa8155d4a234516d46ed543a614666adc1ea73a922bc841e2a" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.18", ] [[package]] @@ -2335,7 +2348,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64 0.21.1", + "base64 0.21.2", ] [[package]] @@ -2415,22 +2428,22 @@ checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" [[package]] name = "serde" -version = "1.0.163" +version = "1.0.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" +checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.163" +version = "1.0.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" +checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2452,7 +2465,7 @@ checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2598,9 +2611,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.16" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" +checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" dependencies = [ "proc-macro2", "quote", @@ -2609,9 +2622,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.29.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02f1dc6930a439cc5d154221b5387d153f8183529b07c19aca24ea31e0a167e1" +checksum = "9557d0845b86eea8182f7b10dff120214fb6cd9fd937b6f4917714e546a38695" dependencies = [ "cfg-if", "core-foundation-sys", @@ -2654,15 +2667,16 @@ checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" [[package]] name = "tempfile" -version = "3.5.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" dependencies = [ + "autocfg", "cfg-if", "fastrand", "redox_syscall 0.3.5", "rustix", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -2682,7 +2696,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2697,9 +2711,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc" +checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd" dependencies = [ "serde", "time-core", @@ -2737,12 +2751,13 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.28.1" +version = "1.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105" +checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" dependencies = [ "autocfg", "num_cpus", + "parking_lot", "pin-project-lite", "tokio-macros", "windows-sys 0.48.0", @@ -2756,7 +2771,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2813,7 +2828,7 @@ checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", ] [[package]] @@ -2948,9 +2963,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" dependencies = [ "form_urlencoded", "idna", @@ -2981,13 +2996,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.0.0-alpha.9" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" -dependencies = [ - "ctor", - "version_check", -] +checksum = "a4d330786735ea358f3bc09eea4caa098569c1c93f342d9aca0514915022fe7e" [[package]] name = "version-compare" @@ -3044,7 +3055,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", "wasm-bindgen-shared", ] @@ -3078,7 +3089,7 @@ checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.18", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3157,9 +3168,13 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "wincompatlib" -version = "0.4.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3096bb9e88e30abe60a159e8fd55ad2ba140b389e67f3814b10db93303f70df8" +checksum = "d5f1df70b617ad08dc336d13f1c7998a95781313fd6a0bffa1f45857c8254581" +dependencies = [ + "anyhow", + "minreq", +] [[package]] name = "windows" @@ -3185,15 +3200,6 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - [[package]] name = "windows-sys" version = "0.48.0" diff --git a/Cargo.toml b/Cargo.toml index 7627503..b03b915 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ glib-build-tools = "0.17" [dependencies.anime-launcher-sdk] git = "https://github.com/an-anime-team/anime-launcher-sdk" -tag = "1.4.5" +tag = "1.6.3" features = ["all", "genshin"] # path = "../anime-launcher-sdk" # ! for dev purposes only @@ -34,7 +34,7 @@ whatadistro = "0.1.0" serde_json = "1.0" anyhow = "1.0" lazy_static = "1.4.0" -cached = { version = "0.43", features = ["proc_macro"] } +cached = { version = "0.44", features = ["proc_macro"] } md-5 = { version = "0.10", features = ["asm"] } tracing = "0.1" diff --git a/src/ui/components/group.rs b/src/ui/components/group.rs index 98f9712..966e3b6 100644 --- a/src/ui/components/group.rs +++ b/src/ui/components/group.rs @@ -1,9 +1,12 @@ +use std::path::PathBuf; + use relm4::prelude::*; use relm4::component::*; use adw::prelude::*; -use std::path::PathBuf; +use super::ComponentsListMsg; +use super::ComponentVersionMsg; pub struct ComponentGroup { pub title: String, @@ -13,7 +16,7 @@ pub struct ComponentGroup { } #[derive(Debug)] -pub enum AppMsg { +pub enum ComponentGroupMsg { ShowRecommendedOnly(bool), CallOnDownloaded, CallOnDeleted @@ -22,8 +25,8 @@ pub enum AppMsg { #[relm4::component(async, pub)] impl SimpleAsyncComponent for ComponentGroup { type Init = (super::ComponentsListGroup, PathBuf); - type Input = AppMsg; - type Output = super::list::AppMsg; + type Input = ComponentGroupMsg; + type Output = super::list::ComponentsListMsg; view! { group = adw::ExpanderRow { @@ -61,23 +64,23 @@ impl SimpleAsyncComponent for ComponentGroup { async fn update(&mut self, msg: Self::Input, sender: AsyncComponentSender) { match msg { - AppMsg::ShowRecommendedOnly(state) => { + ComponentGroupMsg::ShowRecommendedOnly(state) => { self.show_recommended_only = state; // todo for version in &self.versions { - version.sender().send(super::version::AppMsg::ShowRecommendedOnly(state)).unwrap(); + version.sender().send(ComponentVersionMsg::ShowRecommendedOnly(state)).unwrap(); } } #[allow(unused_must_use)] - AppMsg::CallOnDownloaded => { - sender.output(super::list::AppMsg::CallOnDownloaded); + ComponentGroupMsg::CallOnDownloaded => { + sender.output(ComponentsListMsg::CallOnDownloaded); } #[allow(unused_must_use)] - AppMsg::CallOnDeleted => { - sender.output(super::list::AppMsg::CallOnDeleted); + ComponentGroupMsg::CallOnDeleted => { + sender.output(ComponentsListMsg::CallOnDeleted); } } } diff --git a/src/ui/components/list.rs b/src/ui/components/list.rs index d9894e8..1289c24 100644 --- a/src/ui/components/list.rs +++ b/src/ui/components/list.rs @@ -3,6 +3,8 @@ use relm4::component::*; use adw::prelude::*; +use super::ComponentGroupMsg; + #[derive(Debug, Clone)] pub struct ComponentsListInit { pub pattern: super::ComponentsListPattern, @@ -18,7 +20,7 @@ pub struct ComponentsList { } #[derive(Debug)] -pub enum AppMsg { +pub enum ComponentsListMsg { ShowRecommendedOnly(bool), CallOnDownloaded, CallOnDeleted @@ -27,7 +29,7 @@ pub enum AppMsg { #[relm4::component(async, pub)] impl SimpleAsyncComponent for ComponentsList { type Init = ComponentsListInit; - type Input = AppMsg; + type Input = ComponentsListMsg; type Output = T; view! { @@ -66,22 +68,22 @@ impl SimpleAsyncComponent for ComponentsLi async fn update(&mut self, msg: Self::Input, sender: AsyncComponentSender) { match msg { - AppMsg::ShowRecommendedOnly(state) => { + ComponentsListMsg::ShowRecommendedOnly(state) => { self.show_recommended_only = state; // todo for group in &self.groups { - group.sender().send(super::group::AppMsg::ShowRecommendedOnly(state)).unwrap(); + group.sender().send(ComponentGroupMsg::ShowRecommendedOnly(state)).unwrap(); } } #[allow(unused_must_use)] - AppMsg::CallOnDownloaded => if let Some(on_downloaded) = &self.init.on_downloaded { + ComponentsListMsg::CallOnDownloaded => if let Some(on_downloaded) = &self.init.on_downloaded { sender.output(on_downloaded.to_owned()); } #[allow(unused_must_use)] - AppMsg::CallOnDeleted => if let Some(on_deleted) = &self.init.on_deleted { + ComponentsListMsg::CallOnDeleted => if let Some(on_deleted) = &self.init.on_deleted { sender.output(on_deleted.to_owned()); } } diff --git a/src/ui/components/mod.rs b/src/ui/components/mod.rs index 2e81eac..9a0269e 100644 --- a/src/ui/components/mod.rs +++ b/src/ui/components/mod.rs @@ -1,3 +1,5 @@ +use std::path::PathBuf; + pub mod list; pub mod group; pub mod version; @@ -10,8 +12,6 @@ pub use progress_bar::*; use anime_launcher_sdk::components::*; -use std::path::PathBuf; - #[derive(Debug, Clone, PartialEq, Eq)] pub struct ComponentsListPattern { pub download_folder: PathBuf, diff --git a/src/ui/components/progress_bar.rs b/src/ui/components/progress_bar.rs index d4734fb..d40ca8d 100644 --- a/src/ui/components/progress_bar.rs +++ b/src/ui/components/progress_bar.rs @@ -132,7 +132,9 @@ impl SimpleAsyncComponent for ProgressBar { ProgressBarMsg::UpdateFromState(state) => { match state { - DiffUpdate::InstallerUpdate(InstallerUpdate::CheckingFreeSpace(_)) => self.caption = Some(tr("checking-free-space")), + DiffUpdate::CheckingFreeSpace(_) | + DiffUpdate::InstallerUpdate(InstallerUpdate::CheckingFreeSpace(_)) => self.caption = Some(tr("checking-free-space")), + DiffUpdate::InstallerUpdate(InstallerUpdate::DownloadingStarted(_)) => self.caption = Some(tr("downloading")), DiffUpdate::InstallerUpdate(InstallerUpdate::UnpackingStarted(_)) => self.caption = Some(tr("unpacking")), diff --git a/src/ui/components/version.rs b/src/ui/components/version.rs index d1a222d..1b3afb3 100644 --- a/src/ui/components/version.rs +++ b/src/ui/components/version.rs @@ -1,3 +1,5 @@ +use std::path::PathBuf; + use relm4::prelude::*; use relm4::component::*; @@ -12,8 +14,7 @@ use anime_launcher_sdk::anime_game_core::genshin::prelude::*; use anime_launcher_sdk::config::ConfigExt; use anime_launcher_sdk::genshin::config::Config; -use std::path::PathBuf; - +use super::ComponentGroupMsg; use super::progress_bar::ProgressBarMsg; #[derive(Debug, Clone, PartialEq, Eq)] @@ -38,7 +39,7 @@ pub struct ComponentVersion { } #[derive(Debug)] -pub enum AppMsg { +pub enum ComponentVersionMsg { ShowRecommendedOnly(bool), PerformAction, SetState(VersionState) @@ -47,8 +48,8 @@ pub enum AppMsg { #[relm4::component(async, pub)] impl SimpleAsyncComponent for ComponentVersion { type Init = (super::ComponentsListVersion, PathBuf); - type Input = AppMsg; - type Output = super::group::AppMsg; + type Input = ComponentVersionMsg; + type Output = ComponentGroupMsg; view! { row = adw::ActionRow { @@ -72,7 +73,7 @@ impl SimpleAsyncComponent for ComponentVersion { #[watch] set_visible: model.state != VersionState::Downloading, - connect_clicked => AppMsg::PerformAction + connect_clicked => ComponentVersionMsg::PerformAction } } } @@ -122,9 +123,9 @@ impl SimpleAsyncComponent for ComponentVersion { async fn update(&mut self, msg: Self::Input, sender: AsyncComponentSender) { match msg { - AppMsg::ShowRecommendedOnly(state) => self.show_recommended_only = state, + ComponentVersionMsg::ShowRecommendedOnly(state) => self.show_recommended_only = state, - AppMsg::PerformAction => { + ComponentVersionMsg::PerformAction => { match self.state { VersionState::Downloaded => { let path = self.download_folder.join(&self.name); @@ -140,7 +141,7 @@ impl SimpleAsyncComponent for ComponentVersion { self.state = VersionState::NotDownloaded; #[allow(unused_must_use)] { - sender.output(super::group::AppMsg::CallOnDeleted); + sender.output(ComponentGroupMsg::CallOnDeleted); } } @@ -168,12 +169,12 @@ impl SimpleAsyncComponent for ComponentVersion { progress_bar_sender.send(ProgressBarMsg::SetVisible(false)); if let InstallerUpdate::UnpackingFinished = &state { - sender.input(AppMsg::SetState(VersionState::Downloaded)); - sender.output(super::group::AppMsg::CallOnDownloaded); + sender.input(ComponentVersionMsg::SetState(VersionState::Downloaded)); + sender.output(ComponentGroupMsg::CallOnDownloaded); } else { - sender.input(AppMsg::SetState(VersionState::NotDownloaded)); + sender.input(ComponentVersionMsg::SetState(VersionState::NotDownloaded)); } }, @@ -190,7 +191,7 @@ impl SimpleAsyncComponent for ComponentVersion { } } - AppMsg::SetState(state) => self.state = state + ComponentVersionMsg::SetState(state) => self.state = state } } } diff --git a/src/ui/first_run/download_components.rs b/src/ui/first_run/download_components.rs index 4c0b328..ee70fdb 100644 --- a/src/ui/first_run/download_components.rs +++ b/src/ui/first_run/download_components.rs @@ -1,3 +1,5 @@ +use std::path::PathBuf; + use relm4::prelude::*; use relm4::component::*; @@ -7,13 +9,11 @@ use anime_launcher_sdk::anime_game_core::prelude::*; use anime_launcher_sdk::wincompatlib::prelude::*; use anime_launcher_sdk::components::*; -use anime_launcher_sdk::components::wine::WincompatlibWine; +use anime_launcher_sdk::components::wine::UnifiedWine; use anime_launcher_sdk::config::ConfigExt; use anime_launcher_sdk::genshin::config::Config; -use std::path::PathBuf; - use super::main::FirstRunAppMsg; use crate::ui::components::*; use crate::i18n::*; @@ -435,6 +435,8 @@ impl SimpleAsyncComponent for DownloadComponentsApp { } } + // TODO: perhaps I could re-use main/create_prefix.rs here? + #[allow(unused_must_use)] DownloadComponentsAppMsg::CreatePrefix => { self.downloading_wine = Some(true); @@ -453,7 +455,7 @@ impl SimpleAsyncComponent for DownloadComponentsApp { .with_arch(WineArch::Win64); std::thread::spawn(move || { - match wine.update_prefix::<&str>(None) { + match wine.init_prefix(None::<&str>) { // Download DXVK Ok(_) => sender.input(DownloadComponentsAppMsg::DownloadDXVK), @@ -576,7 +578,7 @@ impl SimpleAsyncComponent for DownloadComponentsApp { ..InstallParams::default() }; - let WincompatlibWine::Default(wine) = wine else { + let UnifiedWine::Default(wine) = wine else { sender.input(DownloadComponentsAppMsg::Continue); return; diff --git a/src/ui/main/create_prefix.rs b/src/ui/main/create_prefix.rs index 62d6cb1..ebe3d3a 100644 --- a/src/ui/main/create_prefix.rs +++ b/src/ui/main/create_prefix.rs @@ -22,7 +22,7 @@ pub fn create_prefix(sender: ComponentSender) { .with_loader(WineLoader::Current) .with_arch(WineArch::Win64); - if let Err(err) = wine.update_prefix::<&str>(None) { + if let Err(err) = wine.init_prefix(None::<&str>) { tracing::error!("Failed to create wine prefix"); sender.input(AppMsg::Toast { diff --git a/src/ui/preferences/general/components.rs b/src/ui/preferences/general/components.rs index a26ae77..17a12a1 100644 --- a/src/ui/preferences/general/components.rs +++ b/src/ui/preferences/general/components.rs @@ -7,13 +7,11 @@ use adw::prelude::*; use anime_launcher_sdk::wincompatlib::prelude::*; use anime_launcher_sdk::components::*; -use anime_launcher_sdk::components::wine::WincompatlibWine; +use anime_launcher_sdk::components::wine::UnifiedWine; use super::GeneralAppMsg; -use crate::ui::components; use crate::ui::components::*; - use crate::i18n::*; use crate::*; @@ -345,12 +343,12 @@ impl SimpleAsyncComponent for ComponentsPage { match msg { ComponentsPageMsg::WineRecommendedOnly(state) => { // todo - self.wine_components.sender().send(components::list::AppMsg::ShowRecommendedOnly(state)).unwrap(); + self.wine_components.sender().send(ComponentsListMsg::ShowRecommendedOnly(state)).unwrap(); } ComponentsPageMsg::DxvkRecommendedOnly(state) => { // todo - self.dxvk_components.sender().send(components::list::AppMsg::ShowRecommendedOnly(state)).unwrap(); + self.dxvk_components.sender().send(ComponentsListMsg::ShowRecommendedOnly(state)).unwrap(); } ComponentsPageMsg::UpdateDownloadedWine => { @@ -426,7 +424,7 @@ impl SimpleAsyncComponent for ComponentsPage { let wine_name = version.name.to_string(); std::thread::spawn(move || { - match wine.update_prefix::<&str>(None) { + match wine.update_prefix(None::<&str>) { Ok(_) => { config.game.wine.selected = Some(wine_name); @@ -463,8 +461,8 @@ impl SimpleAsyncComponent for ComponentsPage { let mut wine = match config.get_selected_wine() { Ok(Some(version)) => { match version.to_wine(config.components.path, Some(config.game.wine.builds.join(&version.name))) { - WincompatlibWine::Default(wine) => wine, - WincompatlibWine::Proton(_) => return + UnifiedWine::Default(wine) => wine, + UnifiedWine::Proton(_) => return } } diff --git a/src/ui/preferences/general/mod.rs b/src/ui/preferences/general/mod.rs index b7010a7..7e97043 100644 --- a/src/ui/preferences/general/mod.rs +++ b/src/ui/preferences/general/mod.rs @@ -21,6 +21,7 @@ use anime_launcher_sdk::genshin::env_emulation::Environment; pub mod components; use components::*; + use super::main::PreferencesAppMsg; use crate::ui::migrate_installation::MigrateInstallationApp; From 636ccffebf0ecc23ae6dd15d8d1203caf70e39a6 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Thu, 8 Jun 2023 15:10:21 +0200 Subject: [PATCH 06/35] feat(ui): reworked game sessions selection --- src/ui/preferences/enhancements/game.rs | 118 ++++++++++-------------- 1 file changed, 50 insertions(+), 68 deletions(-) diff --git a/src/ui/preferences/enhancements/game.rs b/src/ui/preferences/enhancements/game.rs index 2177798..25817c5 100644 --- a/src/ui/preferences/enhancements/game.rs +++ b/src/ui/preferences/enhancements/game.rs @@ -15,7 +15,8 @@ use crate::*; #[derive(Debug)] struct GameSession { name: String, - description: Option + description: Option, + check_button: gtk::CheckButton } #[relm4::factory(async)] @@ -36,6 +37,9 @@ impl AsyncFactoryComponent for GameSession { None => "" }, + // Looks weird but yes + add_prefix = &self.check_button.clone(), + add_suffix = >k::Button { set_icon_name: "view-refresh-symbolic", add_css_class: "flat", @@ -60,6 +64,12 @@ impl AsyncFactoryComponent for GameSession { connect_clicked[sender, index] => move |_| { sender.output(GamePageMsg::RemoveSession(index.clone())); } + }, + + set_activatable: true, + + connect_activated[sender, index] => move |_| { + sender.output(GamePageMsg::SetCurrent(index.clone())); } } } @@ -80,9 +90,7 @@ impl AsyncFactoryComponent for GameSession { pub struct GamePage { sessions: AsyncFactoryVecDeque, - sessions_names: Vec, - - sessions_combo: adw::ComboRow, + sessions_root_widget: gtk::CheckButton, session_name_entry: adw::EntryRow } @@ -91,8 +99,7 @@ pub enum GamePageMsg { AddSession, UpdateSession(DynamicIndex), RemoveSession(DynamicIndex), - SetCurrent(u32), - UpdateCombo + SetCurrent(DynamicIndex) } #[relm4::component(async, pub)] @@ -123,39 +130,25 @@ impl SimpleAsyncComponent for GamePage { adw::PreferencesPage { set_title: &tr("game"), set_icon_name: Some("applications-games-symbolic"), - + add = &adw::PreferencesGroup { set_title: &tr("game-sessions"), - - #[local_ref] - sessions_combo -> adw::ComboRow { - set_title: &tr("active-sessions"), - set_subtitle: &tr("active-session-description"), - - connect_selected_notify[sender] => move |row| { - if is_ready() { - sender.input(GamePageMsg::SetCurrent(row.selected())); - } - } - } - }, - - add = &adw::PreferencesGroup { + #[local_ref] session_name_entry -> adw::EntryRow { set_title: &tr("name"), - + add_suffix = >k::Button { set_icon_name: "list-add-symbolic", add_css_class: "flat", - + set_valign: gtk::Align::Center, - + connect_clicked => GamePageMsg::AddSession } } }, - + #[local_ref] add = sessions -> adw::PreferencesGroup {}, } @@ -172,28 +165,34 @@ impl SimpleAsyncComponent for GamePage { let mut model = Self { sessions: AsyncFactoryVecDeque::new(adw::PreferencesGroup::new(), sender.input_sender()), - sessions_names: Vec::new(), - - sessions_combo: adw::ComboRow::new(), + sessions_root_widget: gtk::CheckButton::new(), session_name_entry: adw::EntryRow::new() }; + let current = Sessions::get_current().unwrap_or_default(); + for (name, _) in Sessions::list().unwrap_or_default() { + let check_button = gtk::CheckButton::new(); + + check_button.set_group(Some(&model.sessions_root_widget)); + + if Some(&name) == current.as_ref() { + check_button.set_active(true); + } + model.sessions.guard().push_back(GameSession { - name: name.clone(), - description: None + name, + description: None, + check_button }); } let sessions = model.sessions.widget(); - let sessions_combo = &model.sessions_combo; let session_name_entry = &model.session_name_entry; let widgets = view_output!(); - sender.input(GamePageMsg::UpdateCombo); - AsyncComponentParts { model, widgets } } @@ -210,10 +209,9 @@ impl SimpleAsyncComponent for GamePage { Ok(()) => { self.sessions.guard().push_back(GameSession { name, - description: None + description: None, + check_button: gtk::CheckButton::new() }); - - sender.input(GamePageMsg::UpdateCombo); } Err(err) => { @@ -242,27 +240,23 @@ impl SimpleAsyncComponent for GamePage { GamePageMsg::RemoveSession(index) => { if let Some(session) = self.sessions.guard().get(index.current_index()) { - match Sessions::remove(&session.name) { - Ok(()) => sender.input(GamePageMsg::UpdateCombo), + if let Err(err) = Sessions::remove(&session.name) { + sender.output(EnhancementsAppMsg::Toast { + title: tr("game-session-remove-failed"), + description: Some(err.to_string()) + }).unwrap(); - Err(err) => { - sender.output(EnhancementsAppMsg::Toast { - title: tr("game-session-remove-failed"), - description: Some(err.to_string()) - }).unwrap(); - - return; - } + return; } } self.sessions.guard().remove(index.current_index()); } - GamePageMsg::SetCurrent(id) => { - if let Some(name) = self.sessions_names.get(id as usize) { + GamePageMsg::SetCurrent(index) => { + if let Some(session) = self.sessions.guard().get(index.current_index()) { if let Ok(config) = Config::get() { - if let Err(err) = Sessions::set_current(name.to_owned()) { + if let Err(err) = Sessions::set_current(session.name.clone()) { sender.output(EnhancementsAppMsg::Toast { title: tr("game-session-set-current-failed"), description: Some(err.to_string()) @@ -272,32 +266,20 @@ impl SimpleAsyncComponent for GamePage { return; } - if let Err(err) = Sessions::apply(name.to_owned(), config.get_wine_prefix_path()) { + if let Err(err) = Sessions::apply(session.name.clone(), config.get_wine_prefix_path()) { sender.output(EnhancementsAppMsg::Toast { title: tr("game-session-apply-failed"), description: Some(err.to_string()) }).unwrap(); + + // Prevent session activation + return; } + + session.check_button.set_active(true); } } } - - GamePageMsg::UpdateCombo => { - let sessions = Sessions::get_sessions().unwrap_or_default(); - - self.sessions_names = sessions.sessions.into_keys().collect::>(); - - let mut selected = 0; - - for (i, name) in self.sessions_names.iter().enumerate() { - if sessions.current.as_ref() == Some(name) { - selected = i as u32; - } - } - - self.sessions_combo.set_model(Some(>k::StringList::new(&self.sessions_names.iter().map(|name: &String| name.as_str()).collect::>()))); - self.sessions_combo.set_selected(selected); - } } } } From e9bc395999cb47886c5cbd5a2a96d924648790b5 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Thu, 8 Jun 2023 15:18:57 +0200 Subject: [PATCH 07/35] build: updated relm4 --- Cargo.lock | 14 ++++++-------- Cargo.toml | 4 ++-- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index db36743..a75e427 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1579,12 +1579,11 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libadwaita" -version = "0.3.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c4efd2020a4fcedbad2c4a97de97bf6045e5dc49d61d5a5d0cfd753db60700" +checksum = "0244f4b13d8c3a8a0f0b86bbc234e2fbba7cfe70b7d14f822e363e5599bb7056" dependencies = [ "bitflags", - "futures-channel", "gdk-pixbuf", "gdk4", "gio", @@ -1592,15 +1591,14 @@ dependencies = [ "gtk4", "libadwaita-sys", "libc", - "once_cell", "pango", ] [[package]] name = "libadwaita-sys" -version = "0.3.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0727b85b4fe2b1bed5ac90df6343de15cbf8118bfb96d7c3cc1512681a4b34ac" +checksum = "5bf83ec83c0fc9449b139c721e6f9958137dd7a1d7d47136e4eec929e3bd5265" dependencies = [ "gdk4-sys", "gio-sys", @@ -2216,9 +2214,9 @@ checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" [[package]] name = "relm4" -version = "0.6.0-beta.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f169f698ce2e487eed2306898fcf262224a287d0e81480db4190e74cfec412cf" +checksum = "c80ef6bb7a142b6aaa01b96961c33127fffcda4741eb0ad82f07e18c9186681d" dependencies = [ "async-trait", "flume", diff --git a/Cargo.toml b/Cargo.toml index b03b915..99165dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,9 +23,9 @@ features = ["all", "genshin"] # path = "../anime-launcher-sdk" # ! for dev purposes only [dependencies] -relm4 = { version = "0.6.0-beta.1", features = ["macros", "libadwaita"] } +relm4 = { version = "0.6.0", features = ["macros", "libadwaita"] } gtk = { package = "gtk4", version = "0.6", features = ["v4_8"] } -adw = { package = "libadwaita", version = "0.3", features = ["v1_2"] } +adw = { package = "libadwaita", version = "0.4", features = ["v1_2"] } rfd = { version = "0.11", features = ["xdg-portal"], default-features = false } open = "4.0" From 818c76ff860ed7ee5f5901e74877fb29bd3dea15 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Thu, 8 Jun 2023 15:21:16 +0200 Subject: [PATCH 08/35] feat(i18n): updated Indonesian --- assets/locales/id/components.ftl | 14 +++++++------- assets/locales/id/enhancements.ftl | 6 +++--- assets/locales/id/general.ftl | 6 +++--- assets/locales/id/main.ftl | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/assets/locales/id/components.ftl b/assets/locales/id/components.ftl index 6c57acf..7cb0e2a 100644 --- a/assets/locales/id/components.ftl +++ b/assets/locales/id/components.ftl @@ -1,5 +1,5 @@ -components = Components -components-description = Manage your Wine and DXVK versions +components = Komponen +components-description = Atur versi Wine dan DXVK selected-version = Versi yang dipilih recommended-only = Hanya yang direkomendasikan @@ -7,13 +7,13 @@ recommended-only = Hanya yang direkomendasikan wine-version = Versi wine wine-recommended-description = Hanya tampilkan versi wine yang direkomendasikan -wine-options = Wine options +wine-options = Opsi wine -wine-use-shared-libraries = Use wine shared libraries -wine-use-shared-libraries-description = Set LD_LIBRARY_PATH variable to load system libraries from selected wine build +wine-use-shared-libraries = Gunakan shared libraries wine +wine-use-shared-libraries-description = Tetapkan variabel LD_LIBRARY_PATH untuk memuat system libraries dari build wine yang dipilih -gstreamer-use-shared-libraries = Use gstreamer shared libraries -gstreamer-use-shared-libraries-description = Set GST_PLUGIN_PATH variable to load gstreamer libraries from selected wine build +gstreamer-use-shared-libraries = Gunakan shared libraries gstreamer +gstreamer-use-shared-libraries-description = Tetapkan variabel GST_PLUGIN_PATH untuk memuat system libraries dari build wine yang dipilih dxvk-version = Versi DXVK dxvk-selection-disabled = Pemilihan DXVK dinonaktfikan pada preferensi grup wine Anda diff --git a/assets/locales/id/enhancements.ftl b/assets/locales/id/enhancements.ftl index ca69f72..b6c2306 100644 --- a/assets/locales/id/enhancements.ftl +++ b/assets/locales/id/enhancements.ftl @@ -1,6 +1,6 @@ -game-settings-description = Manage in-game settings and account session -sandbox-settings-description = Run the game in a bubblewrap sandbox, similar to what Flatpak does -environment-settings-description = Specify environment variables and game launching command +game-settings-description = Atur pengaturan dalam game dan sesi akun +sandbox-settings-description = Jalankan game dalam sandbox bubblewrap seperti yang dilakukan oleh Flatpak +environment-settings-description = Tentukan variable environment dan perintah peluncuran game wine = Wine diff --git a/assets/locales/id/general.ftl b/assets/locales/id/general.ftl index b0e54ce..60d121f 100644 --- a/assets/locales/id/general.ftl +++ b/assets/locales/id/general.ftl @@ -52,10 +52,10 @@ patch-preparation-tooltip = Patch masih dalam pengembangan patch-testing-tooltip = Patch tes tersedia patch-not-applied-tooltip = Patch tidak diterapkan -apply-main-patch = Apply main patch +apply-main-patch = Terapkan patch utama apply-main-patch-description = - Experimental. Disabling this allows you to run the game without applying the patch. - This may not work, or require manual files modifications. Use if you know what you're doing + Eksperimental. Menonaktifkan opsi ini akan menginzinkan Anda menjalankan game tanpa menerapkan patch. + Hal ini mungkin tidak bekerja, atau membutuhkan modifikasi file secara manual. Gunakan jika Anda tahu apa yang Anda lakukan apply-xlua-patch = Terapkan patch xlua diff --git a/assets/locales/id/main.ftl b/assets/locales/id/main.ftl index ced638f..c875b8e 100644 --- a/assets/locales/id/main.ftl +++ b/assets/locales/id/main.ftl @@ -2,7 +2,7 @@ custom = Kustom none = Kosong default = Standar details = Detail -options = Options +options = Opsi width = Lebar height = Tinggi From bbe5d180f0877414d7fe3deb5de118083f9ed994 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Thu, 8 Jun 2023 15:22:17 +0200 Subject: [PATCH 09/35] feat(i18n): updated French --- assets/locales/fr/components.ftl | 10 +++++----- assets/locales/fr/general.ftl | 7 ++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/assets/locales/fr/components.ftl b/assets/locales/fr/components.ftl index d8d5d49..77b6490 100644 --- a/assets/locales/fr/components.ftl +++ b/assets/locales/fr/components.ftl @@ -7,13 +7,13 @@ recommended-only = Versions recommandées uniquement wine-version = Version de wine wine-recommended-description = N'afficher que les versions recommandées de wine -wine-options = Wine options +wine-options = Options de wine -wine-use-shared-libraries = Use wine shared libraries -wine-use-shared-libraries-description = Set LD_LIBRARY_PATH variable to load system libraries from selected wine build +wine-use-shared-libraries = Utiliser les bibliothèques partagées de wine +wine-use-shared-libraries-description = Défini la variable LD_LIBRARY_PATH de façon à charger les bibliothèques systèmes de la version de wine choisi -gstreamer-use-shared-libraries = Use gstreamer shared libraries -gstreamer-use-shared-libraries-description = Set GST_PLUGIN_PATH variable to load gstreamer libraries from selected wine build +gstreamer-use-shared-libraries = Utiliser les bibliothèques partagées pour gstreamer +gstreamer-use-shared-libraries-description = Défini la variable GST_PLUGIN_PATH de façon à charger les bibliothèques gstreamer de la version de wine choisi dxvk-version = Version de DXVK dxvk-selection-disabled = La sélection de versions DXVK est désactivé par vos préférences de groupe wine diff --git a/assets/locales/fr/general.ftl b/assets/locales/fr/general.ftl index 88f2111..2634088 100644 --- a/assets/locales/fr/general.ftl +++ b/assets/locales/fr/general.ftl @@ -52,10 +52,11 @@ patch-preparation-tooltip = Le patch est en développement patch-testing-tooltip = Patch de test disponible patch-not-applied-tooltip = Patch is not applied -apply-main-patch = Apply main patch +apply-main-patch = Appliquer le patch principal apply-main-patch-description = - Experimental. Disabling this allows you to run the game without applying the patch. - This may not work, or require manual files modifications. Use if you know what you're doing + Expériment. Désactiver cette option permet de lancer le jeu sans le patch. + Il n'est pas garanti que cette option marche, et des modifications manuelles seront potentiellement nécessaires. + À n'utiliser que si vous savez ce que vous faites apply-xlua-patch = Apply xlua patch From 2d0e486d40aff54c771f349054ca5885a069a268 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Thu, 8 Jun 2023 16:32:41 +0200 Subject: [PATCH 10/35] feat: updated `get_default_lang()` Should fix default launcher language selection --- src/i18n.rs | 13 ++++++++++--- src/main.rs | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/i18n.rs b/src/i18n.rs index 304c326..b12ff1c 100644 --- a/src/i18n.rs +++ b/src/i18n.rs @@ -51,12 +51,19 @@ pub fn get_lang() -> LanguageIdentifier { /// - `LC_MESSAGES` /// - `LANG` pub fn get_default_lang() -> LanguageIdentifier { - let lang = std::env::var("LC_ALL") + let current = std::env::var("LC_ALL") .unwrap_or_else(|_| std::env::var("LC_MESSAGES") .unwrap_or_else(|_| std::env::var("LANG") - .unwrap_or_else(|_| String::from("en_US.UTF-8")))); + .unwrap_or_else(|_| String::from("en_us")))) + .to_ascii_lowercase(); - lang.parse().unwrap_or_else(|_| langid!("en-us")) + for lang in SUPPORTED_LANGUAGES { + if current.starts_with(lang.language.as_str()) { + return lang.clone(); + } + } + + get_lang() } pub fn format_lang(lang: &LanguageIdentifier) -> String { diff --git a/src/main.rs b/src/main.rs index 38f7998..22083d2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -72,6 +72,7 @@ fn main() { std::fs::write(FIRST_RUN_FILE.as_path(), "").expect("Failed to create .first-run file"); // Set initial launcher language based on system language + // CONFIG is initialized lazily so it will contain following changes as well let mut config = Config::get().expect("Failed to get config"); config.launcher.language = i18n::format_lang(&i18n::get_default_lang()); From 31f0f78571f502ce924a5de00f3d59ac0ba44f4a Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Thu, 8 Jun 2023 16:50:50 +0200 Subject: [PATCH 11/35] build: updated SDK --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a75e427..c254e9e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -48,8 +48,8 @@ dependencies = [ [[package]] name = "anime-game-core" -version = "1.11.5" -source = "git+https://github.com/an-anime-team/anime-game-core?tag=1.11.5#f24164f70b353f5e80ee9ad0e25d496d51443cea" +version = "1.11.6" +source = "git+https://github.com/an-anime-team/anime-game-core?tag=1.11.6#897cd378d36eb58a9d47de0b844ce0503af88f45" dependencies = [ "anyhow", "bzip2", @@ -96,8 +96,8 @@ dependencies = [ [[package]] name = "anime-launcher-sdk" -version = "1.6.3" -source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.6.3#6aef2d3d5ddb5d1e5e66df861146e8c36e9ed7dc" +version = "1.6.4" +source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.6.4#60e2b00ad5264702aeaf26bdbea6af975e145203" dependencies = [ "anime-game-core", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 99165dd..14b2906 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ glib-build-tools = "0.17" [dependencies.anime-launcher-sdk] git = "https://github.com/an-anime-team/anime-launcher-sdk" -tag = "1.6.3" +tag = "1.6.4" features = ["all", "genshin"] # path = "../anime-launcher-sdk" # ! for dev purposes only From 18b00516e87da19e245146b04c22fa5e8826924d Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Thu, 8 Jun 2023 20:55:16 +0200 Subject: [PATCH 12/35] feat(core): made initial tasks async which has decreased startup time --- src/ui/main/mod.rs | 225 +++++++++++++++++++++++---------------------- 1 file changed, 116 insertions(+), 109 deletions(-) diff --git a/src/ui/main/mod.rs b/src/ui/main/mod.rs index b1433f0..00c6899 100644 --- a/src/ui/main/mod.rs +++ b/src/ui/main/mod.rs @@ -727,161 +727,168 @@ impl SimpleComponent for App { std::thread::spawn(move || { tracing::info!("Initializing heavy tasks"); + let mut tasks = Vec::new(); + // Download background picture if needed if download_picture { - sender.input(AppMsg::SetLoadingStatus(Some(Some(tr("downloading-background-picture"))))); + tasks.push(std::thread::spawn(clone!(@strong sender => move || { + if let Err(err) = crate::background::download_background() { + tracing::error!("Failed to download background picture: {err}"); - if let Err(err) = crate::background::download_background() { - tracing::error!("Failed to download background picture: {err}"); - - sender.input(AppMsg::Toast { - title: tr("background-downloading-failed"), - description: Some(err.to_string()) - }); - } + sender.input(AppMsg::Toast { + title: tr("background-downloading-failed"), + description: Some(err.to_string()) + }); + } + }))); } // Update components index - sender.input(AppMsg::SetLoadingStatus(Some(Some(tr("updating-components-index"))))); + tasks.push(std::thread::spawn(clone!(@strong sender => move || { + let components = ComponentsLoader::new(&CONFIG.components.path); - let components = ComponentsLoader::new(&CONFIG.components.path); + match components.is_sync(&CONFIG.components.servers) { + Ok(Some(_)) => (), - match components.is_sync(&CONFIG.components.servers) { - Ok(Some(_)) => (), + Ok(None) => { + for host in &CONFIG.components.servers { + match components.sync(host) { + Ok(changes) => { + sender.input(AppMsg::Toast { + title: tr("components-index-updated"), + description: if changes.is_empty() { + None + } else { + Some(changes.into_iter() + .map(|line| format!("- {line}")) + .collect::>() + .join("\n")) + } + }); - Ok(None) => { - for host in &CONFIG.components.servers { - match components.sync(host) { - Ok(changes) => { - sender.input(AppMsg::Toast { - title: tr("components-index-updated"), - description: if changes.is_empty() { - None - } else { - Some(changes.into_iter() - .map(|line| format!("- {line}")) - .collect::>() - .join("\n")) - } - }); + break; + } - break; - } + Err(err) => { + tracing::error!("Failed to sync components index"); - Err(err) => { - tracing::error!("Failed to sync components index"); - - sender.input(AppMsg::Toast { - title: tr("components-index-sync-failed"), - description: Some(err.to_string()) - }); + sender.input(AppMsg::Toast { + title: tr("components-index-sync-failed"), + description: Some(err.to_string()) + }); + } } } } - } - Err(err) => { - tracing::error!("Failed to verify that components index synced"); + Err(err) => { + tracing::error!("Failed to verify that components index synced"); - sender.input(AppMsg::Toast { - title: tr("components-index-verify-failed"), - description: Some(err.to_string()) - }); + sender.input(AppMsg::Toast { + title: tr("components-index-verify-failed"), + description: Some(err.to_string()) + }); + } } - } + }))); // Update initial patch status - sender.input(AppMsg::SetLoadingStatus(Some(Some(tr("loading-patch-status"))))); + tasks.push(std::thread::spawn(clone!(@strong sender => move || { + // Sync local patch repo + let patch = Patch::new(&CONFIG.patch.path, CONFIG.launcher.edition); - // Sync local patch repo - let patch = Patch::new(&CONFIG.patch.path, CONFIG.launcher.edition); + match patch.is_sync(&CONFIG.patch.servers) { + Ok(Some(_)) => (), - match patch.is_sync(&CONFIG.patch.servers) { - Ok(Some(_)) => (), + Ok(None) => { + for server in &CONFIG.patch.servers { + match patch.sync(server) { + Ok(_) => break, - Ok(None) => { - for server in &CONFIG.patch.servers { - match patch.sync(server) { - Ok(_) => break, + Err(err) => { + tracing::error!("Failed to sync patch folder with remote: {server}: {err}"); - Err(err) => { - tracing::error!("Failed to sync patch folder with remote: {server}: {err}"); - - sender.input(AppMsg::Toast { - title: tr("patch-sync-failed"), - description: Some(err.to_string()) - }); + sender.input(AppMsg::Toast { + title: tr("patch-sync-failed"), + description: Some(err.to_string()) + }); + } } } } + + Err(err) => { + tracing::error!("Failed to compare local patch folder with remote: {err}"); + + sender.input(AppMsg::Toast { + title: tr("patch-state-check-failed"), + description: Some(err.to_string()) + }); + } } - Err(err) => { - tracing::error!("Failed to compare local patch folder with remote: {err}"); + // Get main UnityPlayer patch status + sender.input(AppMsg::SetUnityPlayerPatch(match patch.unity_player_patch() { + Ok(patch) => Some(patch), - sender.input(AppMsg::Toast { - title: tr("patch-state-check-failed"), - description: Some(err.to_string()) - }); - } - } + Err(err) => { + tracing::error!("Failed to fetch unity player patch info: {err}"); - // Get main UnityPlayer patch status - sender.input(AppMsg::SetUnityPlayerPatch(match patch.unity_player_patch() { - Ok(patch) => Some(patch), + sender.input(AppMsg::Toast { + title: tr("patch-info-fetching-error"), + description: Some(err.to_string()) + }); - Err(err) => { - tracing::error!("Failed to fetch unity player patch info: {err}"); + None + } + })); - sender.input(AppMsg::Toast { - title: tr("patch-info-fetching-error"), - description: Some(err.to_string()) - }); + // Get additional xlua patch status + sender.input(AppMsg::SetXluaPatch(match patch.xlua_patch() { + Ok(patch) => Some(patch), - None - } - })); + Err(err) => { + tracing::error!("Failed to fetch xlua patch info: {err}"); - // Get additional xlua patch status - sender.input(AppMsg::SetXluaPatch(match patch.xlua_patch() { - Ok(patch) => Some(patch), + sender.input(AppMsg::Toast { + title: tr("patch-info-fetching-error"), + description: Some(err.to_string()) + }); - Err(err) => { - tracing::error!("Failed to fetch xlua patch info: {err}"); + None + } + })); - sender.input(AppMsg::Toast { - title: tr("patch-info-fetching-error"), - description: Some(err.to_string()) - }); - - None - } - })); - - tracing::info!("Updated patch status"); + tracing::info!("Updated patch status"); + }))); // Update initial game version status - sender.input(AppMsg::SetLoadingStatus(Some(Some(tr("loading-game-version"))))); + tasks.push(std::thread::spawn(clone!(@strong sender => move || { + sender.input(AppMsg::SetGameDiff(match GAME.try_get_diff() { + Ok(diff) => Some(diff), + Err(err) => { + tracing::error!("Failed to find game diff: {err}"); - sender.input(AppMsg::SetGameDiff(match GAME.try_get_diff() { - Ok(diff) => Some(diff), - Err(err) => { - tracing::error!("Failed to find game diff: {err}"); + sender.input(AppMsg::Toast { + title: tr("game-diff-finding-error"), + description: Some(err.to_string()) + }); - sender.input(AppMsg::Toast { - title: tr("game-diff-finding-error"), - description: Some(err.to_string()) - }); + None + } + })); - None - } - })); + tracing::info!("Updated game version status"); + }))); - tracing::info!("Updated game version status"); + // Await for tasks to finish execution + for task in tasks { + task.join().expect("Failed to join task"); + } // Update launcher state sender.input(AppMsg::UpdateLauncherState { From 1018cb09b5e222b6956194b340cd964b028c3e95 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Fri, 9 Jun 2023 21:15:46 +0200 Subject: [PATCH 13/35] feat: removed 3.7.0 workaround --- src/ui/main/download_diff.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/ui/main/download_diff.rs b/src/ui/main/download_diff.rs index 0a6f2f7..5195110 100644 --- a/src/ui/main/download_diff.rs +++ b/src/ui/main/download_diff.rs @@ -22,7 +22,7 @@ pub fn download_diff(sender: ComponentSender, progress_bar_input: Sender move |state| { + let result = diff.install_to(game_path, clone!(@strong sender => move |state| { match &state { DiffUpdate::InstallerUpdate(InstallerUpdate::DownloadingError(err)) => { tracing::error!("Downloading failed: {err}"); @@ -65,13 +65,6 @@ pub fn download_diff(sender: ComponentSender, progress_bar_input: Sender Date: Fri, 9 Jun 2023 22:13:28 +0200 Subject: [PATCH 14/35] build: updated SDK --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c254e9e..4b6e8e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -48,8 +48,8 @@ dependencies = [ [[package]] name = "anime-game-core" -version = "1.11.6" -source = "git+https://github.com/an-anime-team/anime-game-core?tag=1.11.6#897cd378d36eb58a9d47de0b844ce0503af88f45" +version = "1.11.7" +source = "git+https://github.com/an-anime-team/anime-game-core?tag=1.11.7#1810212e70497359f4ae881d307ab9e5012eff97" dependencies = [ "anyhow", "bzip2", @@ -96,8 +96,8 @@ dependencies = [ [[package]] name = "anime-launcher-sdk" -version = "1.6.4" -source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.6.4#60e2b00ad5264702aeaf26bdbea6af975e145203" +version = "1.6.5" +source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.6.5#4cc34287242d6145c0118085610090160776cfc9" dependencies = [ "anime-game-core", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 14b2906..994e56f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ glib-build-tools = "0.17" [dependencies.anime-launcher-sdk] git = "https://github.com/an-anime-team/anime-launcher-sdk" -tag = "1.6.4" +tag = "1.6.5" features = ["all", "genshin"] # path = "../anime-launcher-sdk" # ! for dev purposes only From 15fde050217b93c6f0b9d03399458ad4bc2efcba Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Fri, 9 Jun 2023 22:14:06 +0200 Subject: [PATCH 15/35] feat(core): added support for `format` wine/dxvk components field --- src/ui/components/mod.rs | 7 +++++-- src/ui/components/version.rs | 8 +++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/ui/components/mod.rs b/src/ui/components/mod.rs index 9a0269e..2ac34f6 100644 --- a/src/ui/components/mod.rs +++ b/src/ui/components/mod.rs @@ -49,6 +49,7 @@ pub struct ComponentsListVersion { pub name: String, pub title: String, pub uri: String, + pub format: Option, pub recommended: bool } @@ -63,7 +64,8 @@ impl From for ComponentsListVersion { name: version.name, title: version.title, - uri: version.uri + uri: version.uri, + format: version.format } } } @@ -79,7 +81,8 @@ impl From for ComponentsListVersion { name: version.name, title: version.title, - uri: version.uri + uri: version.uri, + format: version.format } } } diff --git a/src/ui/components/version.rs b/src/ui/components/version.rs index 1b3afb3..7b5edea 100644 --- a/src/ui/components/version.rs +++ b/src/ui/components/version.rs @@ -31,6 +31,7 @@ pub struct ComponentVersion { pub download_uri: String, pub download_folder: PathBuf, + pub download_filename: Option, pub show_recommended_only: bool, pub state: VersionState, @@ -84,12 +85,13 @@ impl SimpleAsyncComponent for ComponentVersion { _sender: AsyncComponentSender, ) -> AsyncComponentParts { let mut model = ComponentVersion { - name: init.0.name, + name: init.0.name.clone(), title: init.0.title, recommended: init.0.recommended, download_uri: init.0.uri, download_folder: init.1, + download_filename: init.0.format.map(|format| format!("{}.{format}", init.0.name)), show_recommended_only: true, state: VersionState::NotDownloaded, @@ -152,6 +154,10 @@ impl SimpleAsyncComponent for ComponentVersion { .expect("Failed to create installer instance for this version") .with_temp_folder(config.launcher.temp.unwrap_or_else(std::env::temp_dir)); + if let Some(filename) = &self.download_filename { + installer = installer.with_filename(filename.to_owned()); + } + self.state = VersionState::Downloading; let progress_bar_sender = self.progress_bar.sender().clone(); From df7726101d7fa7adcbf8b2a4a64377f497b71217 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Fri, 9 Jun 2023 22:14:40 +0200 Subject: [PATCH 16/35] feat(ui): added discord rpc icon selection --- src/main.rs | 9 +- src/ui/preferences/enhancements/mod.rs | 142 ++++++++++++++++++++++++- 2 files changed, 147 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 22083d2..f695f15 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,7 +4,7 @@ use anime_launcher_sdk::config::ConfigExt; use anime_launcher_sdk::genshin::config::{Config, Schema}; use anime_launcher_sdk::genshin::states::LauncherState; -use anime_launcher_sdk::genshin::consts::launcher_dir; +use anime_launcher_sdk::genshin::consts::*; use anime_launcher_sdk::anime_game_core::prelude::*; use anime_launcher_sdk::anime_game_core::genshin::prelude::*; @@ -46,11 +46,14 @@ lazy_static::lazy_static! { /// Path to launcher folder. Standard is `$HOME/.local/share/anime-game-launcher` pub static ref LAUNCHER_FOLDER: PathBuf = launcher_dir().expect("Failed to get launcher folder"); + /// Path to launcher's cache folder. Standard is `$HOME/.cache/anime-game-launcher` + pub static ref CACHE_FOLDER: PathBuf = cache_dir().expect("Failed to get launcher's cache folder"); + /// Path to `debug.log` file. Standard is `$HOME/.local/share/anime-game-launcher/debug.log` pub static ref DEBUG_FILE: PathBuf = LAUNCHER_FOLDER.join("debug.log"); - /// Path to `background` file. Standard is `$HOME/.local/share/anime-game-launcher/background` - pub static ref BACKGROUND_FILE: PathBuf = LAUNCHER_FOLDER.join("background"); + /// Path to `background` file. Standard is `$HOME/.cache/anime-game-launcher/background` + pub static ref BACKGROUND_FILE: PathBuf = CACHE_FOLDER.join("background"); /// Path to `.keep-background` file. Used to mark launcher that it shouldn't update background picture /// diff --git a/src/ui/preferences/enhancements/mod.rs b/src/ui/preferences/enhancements/mod.rs index 5c9a372..34aae76 100644 --- a/src/ui/preferences/enhancements/mod.rs +++ b/src/ui/preferences/enhancements/mod.rs @@ -1,5 +1,6 @@ use relm4::prelude::*; use relm4::component::*; +use relm4::factory::*; use adw::prelude::*; @@ -7,6 +8,9 @@ use anime_launcher_sdk::config::ConfigExt; use anime_launcher_sdk::genshin::config::Config; use anime_launcher_sdk::config::schema_blanks::prelude::*; +use anime_launcher_sdk::anime_game_core::installer::downloader::Downloader; + +use anime_launcher_sdk::discord_rpc::DiscordRpc; use anime_launcher_sdk::is_available; pub mod game; @@ -23,7 +27,69 @@ use crate::*; use super::gamescope::*; use super::main::PreferencesAppMsg; +#[derive(Debug)] +struct DiscordRpcIcon { + pub check_button: gtk::CheckButton, + + pub name: String, + pub path: PathBuf +} + +#[relm4::factory(async)] +impl AsyncFactoryComponent for DiscordRpcIcon { + type Init = Self; + type Input = EnhancementsAppMsg; + type Output = EnhancementsAppMsg; + type CommandOutput = (); + type ParentInput = EnhancementsAppMsg; + type ParentWidget = adw::ExpanderRow; + + view! { + root = adw::ActionRow { + set_title: &self.name, + // set_subtitle: &self.name, + + // Don't even try to understand + add_prefix = &self.check_button.clone(), + + add_suffix = >k::Picture { + set_margin_start: 4, + set_margin_top: 4, + set_margin_end: 4, + set_margin_bottom: 4, + + add_css_class: "round-bin", + + set_filename: Some(&self.path) + }, + + set_activatable: true, + + connect_activated[sender, index] => move |_| { + sender.output(EnhancementsAppMsg::SetDiscordRpcIcon(index.clone())); + } + } + } + + #[inline] + async fn init_model( + init: Self::Init, + _index: &DynamicIndex, + _sender: AsyncFactorySender, + ) -> Self { + init + } + + #[inline] + fn forward_to_parent(output: Self::Output) -> Option { + Some(output) + } +} + pub struct EnhancementsApp { + discord_rpc_icons: AsyncFactoryVecDeque, + discord_rpc_root_check_button: gtk::CheckButton, + gamescope: AsyncController, game_page: AsyncController, sandbox_page: AsyncController, @@ -34,6 +100,8 @@ pub struct EnhancementsApp { pub enum EnhancementsAppMsg { SetGamescopeParent(adw::PreferencesWindow), + SetDiscordRpcIcon(DynamicIndex), + OpenGamescope, OpenMainPage, OpenGameSettingsPage, @@ -372,6 +440,12 @@ impl SimpleAsyncComponent for EnhancementsApp { } }, + #[local_ref] + discord_rpc_icons -> adw::ExpanderRow { + // TODO: add localization + set_title: "Icon" + }, + adw::EntryRow { set_title: &tr("title"), set_text: &CONFIG.launcher.discord_rpc.title, @@ -573,7 +647,10 @@ impl SimpleAsyncComponent for EnhancementsApp { ) -> AsyncComponentParts { tracing::info!("Initializing enhancements settings"); - let model = Self { + let mut model = Self { + discord_rpc_icons: AsyncFactoryVecDeque::new(adw::ExpanderRow::new(), sender.input_sender()), + discord_rpc_root_check_button: gtk::CheckButton::new(), + gamescope: GamescopeApp::builder() .launch(()) .detach(), @@ -591,6 +668,57 @@ impl SimpleAsyncComponent for EnhancementsApp { .forward(sender.input_sender(), std::convert::identity) }; + match DiscordRpc::get_assets(CONFIG.launcher.discord_rpc.app_id) { + Ok(icons) => { + for icon in icons { + let cache_file = CACHE_FOLDER.join("discord-rpc").join(&icon.name); + // let sender = sender.clone(); + + if !cache_file.exists() { + std::thread::spawn(move || { + Downloader::new(icon.get_uri()) + .expect("Failed to init Discord RPC icon downloader") + .with_continue_downloading(false) + .with_free_space_check(false) + .download(cache_file, |_, _| {}) + .expect("Failed to download Discord RPC icon"); + + /*if let Err(err) = result { + sender.input(EnhancementsAppMsg::Toast { + title: String::from("Failed to download Discord RPC icon"), // TODO: add localizations + description: Some(err.to_string()) + }); + }*/ + }); + } + + // TODO: add icons after thread above finishes its work as well + else { + let check_button = gtk::CheckButton::new(); + + check_button.set_group(Some(&model.discord_rpc_root_check_button)); + + if CONFIG.launcher.discord_rpc.icon == icon.name { + check_button.set_active(true); + } + + model.discord_rpc_icons.guard().push_back(DiscordRpcIcon { + check_button, + name: icon.name.clone(), + path: cache_file.clone() + }); + } + } + } + + Err(err) => sender.input(EnhancementsAppMsg::Toast { + title: String::from("Failed to fetch Discord RPC icons"), // TODO: add localizations + description: Some(err.to_string()) + }) + } + + let discord_rpc_icons = model.discord_rpc_icons.widget(); + let game_page = model.game_page.widget(); let sandbox_page = model.sandbox_page.widget(); let environment_page = model.environment_page.widget(); @@ -606,6 +734,18 @@ impl SimpleAsyncComponent for EnhancementsApp { self.gamescope.widget().set_transient_for(Some(&parent)); } + EnhancementsAppMsg::SetDiscordRpcIcon(index) => { + if let Some(icon) = self.discord_rpc_icons.guard().get(index.current_index()) { + if let Ok(mut config) = Config::get() { + config.launcher.discord_rpc.icon = icon.name.clone(); + + Config::update(config); + + icon.check_button.set_active(true); + } + } + } + EnhancementsAppMsg::OpenGamescope => { self.gamescope.widget().present(); } From d07a144a88d9ef30156aa8f7866c5d3b6a246864 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Fri, 9 Jun 2023 22:39:17 +0200 Subject: [PATCH 17/35] feat: updated changelog --- CHANGELOG.md | 24 ++++++++++++++++++++++++ src/ui/about.rs | 38 +++++++++++++------------------------- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96dfe04..45ffaf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Added Discord RPC icon selection + +### Fixed + +- Fixed progress bar style after running game repairer +- Fixed repair button functionality (#186) +- Fixed default launcher language selection at the first start +- Fixed some installer updates reporting (including "checking free space") + +### Changed + +- Reworked game sessions selection +- Updated Indonesian +- Updated French +- Made initial tasks async which has decreased startup time +- Updated fps unlocker to 2.1.1 + +### Removed + +- Removed 3.7.0 workaround +- Removed patch mirror migration + ## [3.7.0] - 24.05.2023 ### Added diff --git a/src/ui/about.rs b/src/ui/about.rs index b654668..753b1fa 100644 --- a/src/ui/about.rs +++ b/src/ui/about.rs @@ -66,8 +66,8 @@ impl SimpleComponent for AboutDialog { set_translator_credits: &[ "Русский, English — Nikita Podvirnyy https://github.com/krypt0nn", "Deutsch — @Marie https://github.com/Mar0xy", - "Español — Lautaro Garavano https://github.com/Rattlehead15", "Français — @zeGolem https://github.com/zeGolem", + "Español — Lautaro Garavano https://github.com/Rattlehead15", "Türkçe — @Kaozix https://github.com/Kaozix1776", "Türkçe — Kayra Nachfolger https://github.com/kayranachfolger", "Italiano - @QuazarOmega https://github.com/quazar-omega", @@ -90,45 +90,33 @@ impl SimpleComponent for AboutDialog { "

Added

", "
    ", - "
  • Added Italian
  • ", - "
  • Added Indonesian
  • ", - "
  • Added dynamic main button icon switching
  • ", - "
  • Set button label as \"Resume\" when the diff is part downloaded
  • ", - "
  • Added options to use wine / gstreamer shared libraries from selected wine build. These options will configure `LD_LIBRARY_PATH` and `GST_PLUGIN_PATH` environment variables
  • ", - "
  • Added setting of `LC_ALL` in wine lang setting
  • ", - "
  • Added `LAUNCHER_REQUESTS_TIMEOUT` environment variable
  • ", - "
  • Added option to disable main patch applying
  • ", + "
  • Added Discord RPC icon selection
  • ", "
", "

Fixed

", "
    ", - "
  • Fixed session applying on each launcher start
  • ", - "
  • Fixed predownload button ui
  • ", - "
  • Fixed proton builds integration with sandbox
  • ", - "
  • Fixed compatibility between sessions manager and sandbox
  • ", - "
  • Fixed sandboxing of inexisting folders
  • ", + "
  • Fixed progress bar style after running game repairer
  • ", + "
  • Fixed repair button functionality
  • ", + "
  • Fixed default launcher language selection at the first start
  • ", + "
  • Fixed some installer updates reporting (including \"checking free space\")
  • ", "
", "

Changed

", "
    ", - "
  • Apply selected session before launching the game. This will properly save your game session when you switch between wine prefixes
  • ", - "
  • Redesigned main button
  • ", - "
  • Used `whatadistro` to identify recommended package manager in the first run window
  • ", - "
  • Moved a lot of settings to separate page
  • ", - "
  • Set fsr quality mode in enhancements settings instead of strength
  • ", - "
  • Updated fps unlocker data
  • ", - "
  • Made temporary workaround to the game API changes
  • ", - "
  • Increased default requests timeout to 8 seconds
  • ", - "
  • Updated minreq to support `http_proxy`-like variables
  • ", - "
  • Disabled xlua patch applying by default
  • ", + "
  • Reworked game sessions selection
  • ", + "
  • Updated Indonesian
  • ", + "
  • Updated French
  • ", + "
  • Made initial tasks async which has decreased startup time
  • ", + "
  • Updated fps unlocker to 2.1.1
  • ", "
", "

Removed

", "
    ", - "
  • Removed Futex2 wine sync option
  • ", + "
  • Removed 3.7.0 workaround
  • ", + "
  • Removed patch mirror migration
  • ", "
", ].join("\n"), From 1e1d296cf45b8686953cc5a11d2b50d5e0a41fac Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Fri, 9 Jun 2023 23:00:03 +0200 Subject: [PATCH 18/35] feat: updated credits in about window --- src/ui/about.rs | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/ui/about.rs b/src/ui/about.rs index 753b1fa..1f3223c 100644 --- a/src/ui/about.rs +++ b/src/ui/about.rs @@ -46,16 +46,29 @@ impl SimpleComponent for AboutDialog { "Nikita Podvirnyy https://github.com/krypt0nn" ], - add_credit_section: (Some("Patch developer"), &[ - "@Krock https://notabug.org/Krock/dawn" + add_credit_section: (Some("Patch credits"), &[ + "@Krock https://notabug.org/Krock", + "@y0soro https://notabug.org/y0soro", + "@3Shain https://notabug.org/3Shain", + "@timbuntu https://www.playonlinux.com/de/profil-95714.html", + "@geearf2", + "@SeppNel https://www.playonlinux.com/en/profil-95643.html", + "@0x90 https://www.playonlinux.com/en/profil-96196.html", + "@Th1nkCh3ck https://notabug.org/Th1nkCh3ck", + "@humanik12", + "@Makksim https://notabug.org/Makksim", + "@Kowalski https://notabug.org/Kowalski", + "@WerWolv", + "@Various" ]), add_credit_section: (Some("An Anime Team"), &[ "Nikita Podvirnyy https://github.com/krypt0nn", - "@Marie https://github.com/Mar0xy", - "@lane https://github.com/laurinneff", - "@jiro-too https://github.com/jiro-too", - "@cybik https://github.com/cybik", + "Marie Piontek https://github.com/Mar0xy", + "Luna Neff https://github.com/lunaneff", + "Renaud Lepage https://github.com/cybik", + "Soham Nandy https://github.com/natimerry", + "Amelia Yukii https://github.com/Insert5StarName", "@mkrsym1 https://github.com/mkrsym1" ]), @@ -65,13 +78,13 @@ impl SimpleComponent for AboutDialog { set_translator_credits: &[ "Русский, English — Nikita Podvirnyy https://github.com/krypt0nn", - "Deutsch — @Marie https://github.com/Mar0xy", + "Deutsch — Marie Piontek https://github.com/Mar0xy", "Français — @zeGolem https://github.com/zeGolem", "Español — Lautaro Garavano https://github.com/Rattlehead15", "Türkçe — @Kaozix https://github.com/Kaozix1776", "Türkçe — Kayra Nachfolger https://github.com/kayranachfolger", - "Italiano - @QuazarOmega https://github.com/quazar-omega", - "Indonesia - @yumekarisu https://github.com/yumekarisu", + "Italiano — @QuazarOmega https://github.com/quazar-omega", + "Indonesia — @yumekarisu https://github.com/yumekarisu", "简体中文 — Caibin Chen https://github.com/tigersoldier" ].join("\n"), From ab741857a397e320f89c8dc06d51621403e2ce79 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sat, 10 Jun 2023 08:42:23 +0200 Subject: [PATCH 19/35] docs: added small comment about credits --- src/ui/about.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ui/about.rs b/src/ui/about.rs index 1f3223c..897c968 100644 --- a/src/ui/about.rs +++ b/src/ui/about.rs @@ -46,6 +46,9 @@ impl SimpleComponent for AboutDialog { "Nikita Podvirnyy https://github.com/krypt0nn" ], + // Took patch credits from the CREDITS.md; + // If you want to change your name, link, or have any other questions - contact me + add_credit_section: (Some("Patch credits"), &[ "@Krock https://notabug.org/Krock", "@y0soro https://notabug.org/y0soro", From b6abe2f1c9d1c76c8142189f585b3a7db79420ce Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sat, 10 Jun 2023 09:04:35 +0200 Subject: [PATCH 20/35] docs: removed the team member Didn't actually do anything --- src/ui/about.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ui/about.rs b/src/ui/about.rs index 897c968..40b78bf 100644 --- a/src/ui/about.rs +++ b/src/ui/about.rs @@ -71,7 +71,6 @@ impl SimpleComponent for AboutDialog { "Luna Neff https://github.com/lunaneff", "Renaud Lepage https://github.com/cybik", "Soham Nandy https://github.com/natimerry", - "Amelia Yukii https://github.com/Insert5StarName", "@mkrsym1 https://github.com/mkrsym1" ]), From f33014fe3105c41d479f2c4b3e5f31d6a3652a79 Mon Sep 17 00:00:00 2001 From: zozonteq Date: Sat, 10 Jun 2023 17:07:51 +0900 Subject: [PATCH 21/35] Japanese translation --- assets/locales/common.ftl | 1 + assets/locales/ja/components.ftl | 19 ++++++++ assets/locales/ja/enhancements.ftl | 61 +++++++++++++++++++++++++ assets/locales/ja/environment.ftl | 7 +++ assets/locales/ja/errors.ftl | 55 +++++++++++++++++++++++ assets/locales/ja/first_run.ftl | 64 +++++++++++++++++++++++++++ assets/locales/ja/game.ftl | 6 +++ assets/locales/ja/gamescope.ftl | 13 ++++++ assets/locales/ja/general.ftl | 71 ++++++++++++++++++++++++++++++ assets/locales/ja/main.ftl | 70 +++++++++++++++++++++++++++++ assets/locales/ja/sandbox.ftl | 28 ++++++++++++ src/i18n.rs | 2 + 12 files changed, 397 insertions(+) create mode 100644 assets/locales/ja/components.ftl create mode 100644 assets/locales/ja/enhancements.ftl create mode 100644 assets/locales/ja/environment.ftl create mode 100644 assets/locales/ja/errors.ftl create mode 100644 assets/locales/ja/first_run.ftl create mode 100644 assets/locales/ja/game.ftl create mode 100644 assets/locales/ja/gamescope.ftl create mode 100644 assets/locales/ja/general.ftl create mode 100644 assets/locales/ja/main.ftl create mode 100644 assets/locales/ja/sandbox.ftl diff --git a/assets/locales/common.ftl b/assets/locales/common.ftl index 39d0cc1..442ab4a 100644 --- a/assets/locales/common.ftl +++ b/assets/locales/common.ftl @@ -23,3 +23,4 @@ tr-tr = Türkçe it-it = Italiano id-id = Indonesia zh-cn = 简体中文 +ja-jp = 日本語 diff --git a/assets/locales/ja/components.ftl b/assets/locales/ja/components.ftl new file mode 100644 index 0000000..8d7fa51 --- /dev/null +++ b/assets/locales/ja/components.ftl @@ -0,0 +1,19 @@ +components = コンポーネント +components-description = WineとDXVKのバージョンを管理する。 + +selected-version = バージョン選択 +recommended-only = 推奨版のみを使う。 + +wine-version = Wineのバージョン +wine-recommended-description = 推奨するWineバージョンのみ + +wine-options = Wineの設定 + +wine-use-shared-libraries = ワインの共有ライブラリを使う +wine-use-shared-libraries-description = 選択した wine ビルドからシステムライブラリをロードするように LD_LIBRARY_PATH を設定します + +gstreamer-use-shared-libraries = gstreamerの共有ライブラリを使用する。 +gstreamer-use-shared-libraries-description = 選択した wine ビルドからgstreamerライブラリをロードするように GST_PLUGIN_PATH を設定します +dxvk-version = DXVK バージョン +dxvk-selection-disabled = DXVK の選択は、ワインのグループ設定によって無効化されています。 +dxvk-recommended-description = DXVK の推奨バージョンのみ表示する。 \ No newline at end of file diff --git a/assets/locales/ja/enhancements.ftl b/assets/locales/ja/enhancements.ftl new file mode 100644 index 0000000..71256b9 --- /dev/null +++ b/assets/locales/ja/enhancements.ftl @@ -0,0 +1,61 @@ +game-settings-description = ゲーム内設定と、アカウントセッションを管理します。 +sandbox-settings-description = Flatpakと同様にバブルサンドボックスでゲームを実行します。 +environment-settings-description = 環境変数と、ゲーム起動コマンド + +wine = Wine + +synchronization = 同期 +wine-sync-description = Wine内部のイベントを同期するためのものです。 + +language =言語 +wine-lang-description = wine環境で使用される言語です。キーボードの問題を修正できます。 +system = システム + +borderless-window = ボーダーレスウィンドウ +virtual-desktop = 仮想デスクトップ + +game = ゲーム + +hud = HUD + +fsr = FSR +fsr-description = ゲームをモニターの解像度に合わせて拡大します。ゲーム内で、Alt+Enterをする必要があります。 +ultra-quality = ハイクオリティ +quality = クオリティ +balanced = バランス +performance = パフォーマンス + +gamemode = ゲームモード +gamemode-description = 他のプロセスよりもゲームを優先する。 +gamescope = ゲームスコープ +gamescope-description = これは、Xwaylandセッションでインスタンスを分離して実行するためのValveが開発したツールです。AMD、Intel、NvidiaのGPUをサポートします。 + +discord-rpc = Discord RPC +discord-rpc-description = これを有効にすると、現在あなたがゲームをプレイしているということをディスコードのフレンドに知らせることができます。 +title = タイトル +description = 説明 + +fps-unlocker = FPS上限解除 + +enabled = 機能を有効にする +fps-unlocker-description = ゲーム内のメモリを書き換えてFPSの上限を解除します。アンチチートによって検知されることはありません。 + +power-saving = 省電力 +power-saving-description = タブアウトなどをしたときに、自動的にFPS制限をかけることで省電力化します。 + +monitor = モニター +monitor-description = このゲームを動かしたいモニターの番号 + +window-mode = ウィンドウモード +borderless = ボーダーレス +popup = ポップアップ +fullscreen = フルスクリーン + +priority = 優先度 +priority-description = ゲームプロセスの優先度 +realtime = リアルタイム +high = 高い +above-normal = 少し高い +normal = 普通 +below-normal = 少し低い +low = 低い diff --git a/assets/locales/ja/environment.ftl b/assets/locales/ja/environment.ftl new file mode 100644 index 0000000..50fe70e --- /dev/null +++ b/assets/locales/ja/environment.ftl @@ -0,0 +1,7 @@ +environment = 環境 +game-command = ゲームコマンド +game-command-description = Command used to launch the game. Placeholder %command% is generated automatically by the launcher. For example: gamemoderun '%command%' +new-variable = 新しい変数 +name = 名前 +value = 値 +add = 追加 diff --git a/assets/locales/ja/errors.ftl b/assets/locales/ja/errors.ftl new file mode 100644 index 0000000..224c724 --- /dev/null +++ b/assets/locales/ja/errors.ftl @@ -0,0 +1,55 @@ +launcher-folder-opening-error = ランチャーフォルダを開くのに失敗しました。 +game-folder-opening-error = ゲームフォルダを開くのに失敗しました +config-file-opening-error = 設定ファイルを開くのに失敗しました +debug-file-opening-error = デバッグファイルを開くのに失敗しました + +wish-url-search-failed = 祈願履歴がありません +wish-url-opening-error = 祈願履歴ページを開けませんでした。 + +wine-run-error = wineを利用して{$executable} を実行するのに失敗しました。 + +game-launching-failed = ゲームの起動に失敗しました +failed-get-selected-wine = 選択されたwineバージョンを入手できませんでした。 +downloading-failed = ダウンロードに失敗。 +unpacking-failed = 展開失敗 + +game-file-repairing-error = ゲームファイルの修正に失敗しました。 +integrity-files-getting-error = 整合性ファイルの取得に失敗しました + +background-downloading-failed = 背景画像のダウンロードに失敗しました。 +components-index-sync-failed = コンポーネントのインデックスの同期に失敗しました。 +components-index-verify-failed = コンポーネントのインデックスの確認に失敗しました。 +config-update-error = 設定の保存に失敗しました。 +wine-prefix-update-failed = Wine のプレフィックスの更新に失敗しました。 +dxvk-install-failed = DXVKのインストールに失敗しました。 +voice-package-deletion-error = ボイスパッケージの消去に失敗しました。 + +game-diff-finding-error = ゲームの差異の検索に失敗しました。 +patch-info-fetching-error = パッチ情報のフェチに失敗しました。 +launcher-state-updating-error = ランチャーの状態を更新するのに失敗しました。 + +package-not-available = パッケージが存在しません: {$package} +wine-download-error = wineのダウンロードに失敗しました。 +wine-unpack-errror = wineの展開に失敗しました。 +wine-install-failed = wineのインストールに失敗しました。 +dxvk-download-error = DXVKのダウンロードに失敗しました +dxvk-unpack-error = DXVKの展開に失敗しました +dxvk-apply-error = DXVKの適用に失敗しました。 + +downloaded-wine-list-failed = ダウンロードされたwineのリストの表示にしっぱいしました。 + +patch-sync-failed = パッチフォルダの同期に失敗しました +patch-state-check-failed = パッチフォルダの状態を確認するのに失敗しました +game-patching-error = ゲームのパッチに失敗しました。 + +# Sandbox + +documentation-url-open-failed = ドキュメントページを開けませんでした。 + +# Game + +game-session-add-failed = ゲームセッションの追加に失敗しました。 +game-session-update-failed = ゲームセッションの更新に失敗しました。 +game-session-remove-failed = ゲームセッションの消去に失敗しました。 +game-session-set-current-failed = 現在のゲームセッションに設定するのに失敗しました。 +game-session-apply-failed = ゲームセッションの適用に失敗しました。 diff --git a/assets/locales/ja/first_run.ftl b/assets/locales/ja/first_run.ftl new file mode 100644 index 0000000..10b14c9 --- /dev/null +++ b/assets/locales/ja/first_run.ftl @@ -0,0 +1,64 @@ +welcome = ようこそ + +welcome-page-message = + やぁ!An Anime Game Launcherへようこそ! + + ゲームを実行する前に、いくつかのコンポーネントをダウンロードする必要があります! + + +tos-violation-warning = 利用規約違反 + +tos-violation-warning-message = + このランチャーは非公式なツールです。{company-name} や {company-alter-name} とは一切関係がございません. + + このツールは {game-name} をLinux上でプレイするために作成されました。また、手間をかけずに {game-name} をLinux上にインストール、そして実行するように設計されています。 + + これは、既存のコンポーネントを使用し、ユーザーのインストールをシンプルにすることによって実現されます。 + + ただし、このプログラムで使う一部のコンポーネントは {company-name} や {game-name} の利用規約に違反している可能性があります。 + + このランチャーを使うにあたって、あなたのゲームアカウントは利用規約違反として、 {company-name}/{company-alter-name} に認識される可能性があります。 + + その場合、あなたのアカウントは利用規約に従わないため、 {company-name}/{company-alter-name} はBANを含め、何かしらの処分を行う可能性があります。 + + このリスクを理解した場合、OKボタンを押して続行してください。 + +tos-dialog-title = 私達が伝えたいことを理解しましたか? +tos-dialog-message = + 1. このプロジェクトに関することを公にしないでください。 + 2. 改造したクライアントなどを利用して悪用しないでください。 + 3. 例外的に、DiscordやMatrixサーバーで質問してください。 + + +dependencies = 依存関係 +missing-dependencies-title = いくつかの依存関係を満たしていません。 +missing-dependencies-message = あなたはいくつかのパッケージをインストールする必要があります。その後システムを再起動して続行してください。 + + +default-paths = デフォルトのパス +choose-default-paths = デフォルトのパスを選択する +show-all-folders = すべてのフォルダを表示する。 +show-all-folders-subtitle = 追加の設定を表示します。 +runners-folder = ランナーフォルダ +dxvks-folder = DXVKs フォルダ +wine-prefix-folder = Wine プレフィックスフォルダ +global-game-installation-folder = グローバル版のインストールフォルダー +chinese-game-installation-folder = 中国版のインストールフォルダー +fps-unlocker-folder = FPSアンロッカーフォルダー +components-index = コンポーネントインデックス +patch-folder = パッチフォルダー +temp-folder = 一時的なフォルダ + +migrate = Migrate + + +select-voice-packages = ボイスパッケージを選択してください。 + + +download-components = コンポーネントをダウンロード +download-dxvk = DXVKをダウンロード +apply-dxvk = DXVKを適用 + +finish = 完了 +finish-title = すべて完了しました。 +finish-message = 基本的なコンポーネントのダウンロードが終了しました。ランチャーを再起動することで、ゲームのダウンロードを開始できます。私達のクラブへようこそ! diff --git a/assets/locales/ja/game.ftl b/assets/locales/ja/game.ftl new file mode 100644 index 0000000..3ab9584 --- /dev/null +++ b/assets/locales/ja/game.ftl @@ -0,0 +1,6 @@ +game-sessions = ゲームセッション + +active-sessions = 有効なセッション +active-session-description = 現在選択されているセッション。次回のゲーム起動時から有効になります +update-session = 現在のWineプレフィックスレジストリ値を使用してセッションを更新します +delete-session = セッションを消去する diff --git a/assets/locales/ja/gamescope.ftl b/assets/locales/ja/gamescope.ftl new file mode 100644 index 0000000..5bcefa8 --- /dev/null +++ b/assets/locales/ja/gamescope.ftl @@ -0,0 +1,13 @@ +game-resolution = ゲーム解像度 +gamescope-resolution = ゲームスコープの解像度 + +upscaling = 拡大 + +integer-scaling = 整数値 +integer-scaling-description = Turns each pixel into a square or rectangular group of integer number of same-color pixels. Prevents sharpness loss when scaling Full HD to 4K +gamescope-fsr-description = An open-source upscaling technique developed by AMD for better upscaling quality +nis-description = An open source upscaling technique developed by Nvidia as a cross-vendor, low-overhead alternative to their proprietary DLSS solution, meaning it works on AMD and Intel GPUs as well as Nvidia GPUs + +other-settings = その他の設定 +framerate-limit = FPS制限 +unfocused-framerate-limit = 非フォーカス時の最大FPS diff --git a/assets/locales/ja/general.ftl b/assets/locales/ja/general.ftl new file mode 100644 index 0000000..7968cd6 --- /dev/null +++ b/assets/locales/ja/general.ftl @@ -0,0 +1,71 @@ +appearance = 外観 +modern = モダン +classic = クラシック +update-background = 背景画像を更新する +update-background-description = ランチャーの公式背景画像をダウンロードします。 これを無効にすると、カスタム画像を利用することができます。 + +launcher-language = ランチャーの言語 +launcher-language-description = *再起動後に適用されます。 + +game-edition = ゲームエディション +global = グローバル版 +china = 中国版 + +game-environment = ゲーム環境 +game-environment-description = 特定の購入方法を利用するために使われます。 + +game-voiceovers = ゲーム内言語 +game-voiceovers-description = ダウンロードされたゲーム内ボイスです。ゲーム内の設定から変えることができます。 +english = 英語 +japanese = 日本語 +korean = 韓国語 +chinese = 中国語 + +migrate-installation = インストール場所を変更する。 +migrate-installation-description = ゲームのインストール先を変更できる、ウィンドウを表示します。 +repair-game = ゲームを修正する + +status = ステータス + +game-version = ゲームバージョン +game-not-installed = 未インストール + +game-predownload-available = ゲームの事前アップデートがあります: {$old} -> {$new} +game-update-available = ゲームの更新があります: {$old} -> {$new} +game-outdated = ゲームが非常に古いためアップデートできません. 最新バージョン: {$latest} + +player-patch-version = プレイヤーのパッチバージョン +player-patch-version-description = Linuxでプレイするためのメインのパッチです。 + +xlua-patch-version = Xlua のパッチバージョン +xlua-patch-version-description = これは追加のパッチで、低スペックなPCのパフォーマンスの改善や、いくつかの細かい問題点を修正できます。 + +patch-not-available = ありません。 +patch-not-available-tooltip = パッチサーバーに接続できませんでした。 + +patch-outdated = 期限切れ ({$current}) +patch-outdated-tooltip = パッチは期限切れです: {$current} -> {$latest} + +patch-preparation = 準備中 +patch-preparation-tooltip = パッチは開発中 + +patch-testing-tooltip = テストパッチがあります +patch-not-applied-tooltip = パッチが適用されませんでした。 + +apply-main-patch = メインパッチを適用 +apply-main-patch-description = + 実験的です。これを無効にするとパッチ無しでゲームを起動することができます。 + これが機能しない場合、手動でパッチを適用する必要があります。これが何を意味するのかを理解できない人は無効にするべきではないでしょう。 + +apply-xlua-patch = xluaパッチを適用する + +ask-superuser-permissions = スーパーユーザーを尋ねる。 +ask-superuser-permissions-description = あなたのホストのファイルを自動更新するために、 これらを利用します。flatpak版では必要ありません。 + +wine-tools = ワインツール +command-line = コマンドライン +registry-editor = レジストリエディタ +explorer = エクスプローラー +task-manager = タスクマネージャー +configuration = 構成 +debugger = デバッガー diff --git a/assets/locales/ja/main.ftl b/assets/locales/ja/main.ftl new file mode 100644 index 0000000..02920a4 --- /dev/null +++ b/assets/locales/ja/main.ftl @@ -0,0 +1,70 @@ +custom = カスタム +none = None +default = デフォルト +details = 詳細 +options = オプション + +width = 幅 +height = 高さ + +# Menu items + +launcher-folder = ランチャーフォルダ +game-folder = ゲームフォルダ +config-file = 設定ファイル +debug-file = デバッグファイル +wish-url = 祈願履歴を開く +about = "An anime Game launcher"について + + +close = 閉じる +save = 保存 +continue = 続行 +resume = 一時停止 +exit = 閉じる +check = 確認 +restart = 再起動 +agree = 同意 + + +loading-data = データを読み込み中 +downloading-background-picture = 背景画像をダウンロードしています。 +updating-components-index = コンポーネントインデックスを更新中 +loading-game-version = ゲームバージョンを読み込み中 +loading-patch-status = パッチステータスを確認中 +loading-launcher-state = ランチャーの状態を読み込み中 +loading-launcher-state--game = ランチャーの状態を読み込み中: ゲームバージョンを確認中 +loading-launcher-state--voice = ランチャーの状態を読み込み中: {$locale} の音声を確認中 +loading-launcher-state--patch = ランチャーの状態を読み込み中 インストール済みパッチを確認中 + + +checking-free-space = 空き容量を確認しています +downloading = ダウンロード中 +unpacking = 展開 +verifying-files = ファイルの整合性を確認中 +repairing-files = ファイルを修正中 +migrating-folders = 別のファイルに移動する。 +applying-hdiff = hdiffパッチを適用中 +removing-outdated = 期限切れのファイルを消去する + + +components-index-updated = コンポーネントインデックスが更新されました。 + + +launch = 起動 +migrate-folders = 移行ファイル +migrate-folders-tooltip = ゲームフォルダ構成を更新 +apply-patch = パッチを適用する +download-wine = ワインをダウンロード +create-prefix = プレフィックスを作成 +update = 更新 +download = ダウンロード +predownload-update = {$version} の早期アップデート({$size}) + +main-window--patch-unavailable-tooltip = パッチサーバーが利用できないため、パッチの状態を確認することができません。リスクを理解した上で実行することができます。 +main-window--patch-outdated-tooltip = パッチは期限切れか準備中のため利用できません。しばらく立ってからパッチステータスを確認してください。 +main-window--version-outdated-tooltip = バージョンが古すぎるため、更新できませんでした。 + +preferences = 設定 +general = 一般 +enhancements = 上級者向け diff --git a/assets/locales/ja/sandbox.ftl b/assets/locales/ja/sandbox.ftl new file mode 100644 index 0000000..61d8875 --- /dev/null +++ b/assets/locales/ja/sandbox.ftl @@ -0,0 +1,28 @@ +sandbox = サンドボックス +sandbox-description = 隔離された環境で、ゲームを実行することであなたの個人データへのアクセスを防ぎます。 + +enable-sandboxing = サンドボックスを有効にする +enable-sandboxing-description = あなたのルートファイルシステムの読み取り専用コピーでゲームを起動します。 + +hide-home-directory = ホームディレクトリを隠す +hide-home-directory-description = あなたの /home, /var/home/$USER, $HOME ファイルを隔離します。 + +hostname = ホスト名 +additional-arguments = 追加の引数 + +private-directories = プライベートディレクトリ +private-directories-description = これらのファイルは仮想のファイルシステムに置き換えれれます (tmpfs) 。もともとあったコンテンツは利用できなくなります。 + +path = パス + +shared-directories = 共有ディレクトリ +shared-directories-description = これらのディレクトリはあなたのホストPCにシンボリックされます。 + +original-path = オリジナルファイルパス +new-path = 新しいパッチ + +read-only = 読み出し専用 +read-only-description = ゲームはこれらのディレクトリへの書き込みを禁止します。 + +symlinks = シンボリック +symlinks-description = サンドボックス内の元のパスを新しいパスにシンボリックリンクします。 diff --git a/src/i18n.rs b/src/i18n.rs index b12ff1c..4d01531 100644 --- a/src/i18n.rs +++ b/src/i18n.rs @@ -20,6 +20,8 @@ pub const SUPPORTED_LANGUAGES: &[LanguageIdentifier] = &[ langid!("it-it"), langid!("id-id"), langid!("zh-cn"), + langid!("ja-jp") + ]; static mut LANG: LanguageIdentifier = langid!("en-us"); From cb70f29b12fd6b0f6fbe9c106d8ccebb665dc611 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sat, 10 Jun 2023 11:56:41 +0200 Subject: [PATCH 22/35] feat: added Japanese --- CHANGELOG.md | 1 + src/i18n.rs | 1 - src/ui/about.rs | 4 +++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45ffaf3..20d00ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added Discord RPC icon selection +- Added Japanese ### Fixed diff --git a/src/i18n.rs b/src/i18n.rs index 4d01531..4eef74d 100644 --- a/src/i18n.rs +++ b/src/i18n.rs @@ -21,7 +21,6 @@ pub const SUPPORTED_LANGUAGES: &[LanguageIdentifier] = &[ langid!("id-id"), langid!("zh-cn"), langid!("ja-jp") - ]; static mut LANG: LanguageIdentifier = langid!("en-us"); diff --git a/src/ui/about.rs b/src/ui/about.rs index 40b78bf..c30be55 100644 --- a/src/ui/about.rs +++ b/src/ui/about.rs @@ -87,7 +87,8 @@ impl SimpleComponent for AboutDialog { "Türkçe — Kayra Nachfolger https://github.com/kayranachfolger", "Italiano — @QuazarOmega https://github.com/quazar-omega", "Indonesia — @yumekarisu https://github.com/yumekarisu", - "简体中文 — Caibin Chen https://github.com/tigersoldier" + "简体中文 — Caibin Chen https://github.com/tigersoldier", + "日本語 — @zozonteq https://github.com/zozonteq" ].join("\n"), set_debug_info: &[ @@ -106,6 +107,7 @@ impl SimpleComponent for AboutDialog { "
    ", "
  • Added Discord RPC icon selection
  • ", + "
  • Added Japanese
  • ", "
", "

Fixed

", From ff5e53b0533350cc9bfb96d2e8e8ed54bf248e8b Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sat, 10 Jun 2023 12:13:58 +0200 Subject: [PATCH 23/35] feat(i18n): added base translations for new discord rpc icons feature --- assets/locales/de/enhancements.ftl | 1 + assets/locales/de/errors.ftl | 5 +++++ assets/locales/en/enhancements.ftl | 1 + assets/locales/en/errors.ftl | 5 +++++ assets/locales/es/enhancements.ftl | 1 + assets/locales/es/errors.ftl | 5 +++++ assets/locales/fr/enhancements.ftl | 1 + assets/locales/fr/errors.ftl | 5 +++++ assets/locales/id/enhancements.ftl | 1 + assets/locales/id/errors.ftl | 5 +++++ assets/locales/it/enhancements.ftl | 1 + assets/locales/it/errors.ftl | 5 +++++ assets/locales/ja/enhancements.ftl | 1 + assets/locales/ja/errors.ftl | 5 +++++ assets/locales/ru/enhancements.ftl | 1 + assets/locales/ru/errors.ftl | 5 +++++ assets/locales/tr/enhancements.ftl | 1 + assets/locales/tr/errors.ftl | 5 +++++ assets/locales/zh-cn/enhancements.ftl | 1 + assets/locales/zh-cn/errors.ftl | 5 +++++ src/ui/preferences/enhancements/mod.rs | 7 +++---- 21 files changed, 63 insertions(+), 4 deletions(-) diff --git a/assets/locales/de/enhancements.ftl b/assets/locales/de/enhancements.ftl index f23b323..a19ea89 100644 --- a/assets/locales/de/enhancements.ftl +++ b/assets/locales/de/enhancements.ftl @@ -33,6 +33,7 @@ gamescope-description = Gamescope ist ein Tool von Valve das es ermöglicht, Spi discord-rpc = Discord RPC discord-rpc-description = Discord RPC ermöglicht es dir Discord die Information zu geben dass du gerade spielst, damit deine Freunde Bescheid wissen +icon = Icon title = Titel description = Beschreibung diff --git a/assets/locales/de/errors.ftl b/assets/locales/de/errors.ftl index e868165..ad10e2a 100644 --- a/assets/locales/de/errors.ftl +++ b/assets/locales/de/errors.ftl @@ -53,3 +53,8 @@ game-session-update-failed = Spielsitzung konnte nicht aktualisiert werden game-session-remove-failed = Spielsitzung konnte nicht entfernt werden game-session-set-current-failed = Aktuelle Spielsitzung konnte nicht eingestellt werden game-session-apply-failed = Spielsitzung konnte nicht angewendet werden + +# Enhancements + +discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons +discord-rpc-icon-download-failed = Failed to download Discord RPC icon diff --git a/assets/locales/en/enhancements.ftl b/assets/locales/en/enhancements.ftl index 70864ed..fff531c 100644 --- a/assets/locales/en/enhancements.ftl +++ b/assets/locales/en/enhancements.ftl @@ -33,6 +33,7 @@ gamescope-description = Gamescope is a tool from Valve that allows for games to discord-rpc = Discord RPC discord-rpc-description = Discord RPC allows you to provide Discord the info that you are currently playing the game to let your friends know +icon = Icon title = Title description = Description diff --git a/assets/locales/en/errors.ftl b/assets/locales/en/errors.ftl index 04ef2b2..e915a0c 100644 --- a/assets/locales/en/errors.ftl +++ b/assets/locales/en/errors.ftl @@ -53,3 +53,8 @@ game-session-update-failed = Failed to update game session game-session-remove-failed = Failed to remove game session game-session-set-current-failed = Failed to set current game session game-session-apply-failed = Failed to apply game session + +# Enhancements + +discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons +discord-rpc-icon-download-failed = Failed to download Discord RPC icon diff --git a/assets/locales/es/enhancements.ftl b/assets/locales/es/enhancements.ftl index 986c7ae..719d6be 100644 --- a/assets/locales/es/enhancements.ftl +++ b/assets/locales/es/enhancements.ftl @@ -33,6 +33,7 @@ gamescope-description = Gamescope es una herramienta de Valve que permite que lo discord-rpc = RPC de Discord discord-rpc-description = RPC de Discord permite que Discord muestre públicamente que estás jugando al juego. +icon = Icon title = Título description = Descripción diff --git a/assets/locales/es/errors.ftl b/assets/locales/es/errors.ftl index 435d988..69e3552 100644 --- a/assets/locales/es/errors.ftl +++ b/assets/locales/es/errors.ftl @@ -53,3 +53,8 @@ game-session-update-failed = Fallo al actualizar sesión de juego game-session-remove-failed = Fallo al eliminar sesión de juego game-session-set-current-failed = Fallo al establecer sesión de juego actual game-session-apply-failed = Fallo al aplicar sesión de juego + +# Enhancements + +discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons +discord-rpc-icon-download-failed = Failed to download Discord RPC icon diff --git a/assets/locales/fr/enhancements.ftl b/assets/locales/fr/enhancements.ftl index f027b6d..5617f0c 100644 --- a/assets/locales/fr/enhancements.ftl +++ b/assets/locales/fr/enhancements.ftl @@ -33,6 +33,7 @@ gamescope-description = Gamescope est un outil fait par Valve qui permet aux jeu discord-rpc = Activité Discord discord-rpc-description = Permet à Discord d'afficher à vos amis des informations sur le jeu auquel vous jouez actuellement +icon = Icon title = Titre description = Description diff --git a/assets/locales/fr/errors.ftl b/assets/locales/fr/errors.ftl index ebcd1ad..d766ac3 100644 --- a/assets/locales/fr/errors.ftl +++ b/assets/locales/fr/errors.ftl @@ -53,3 +53,8 @@ game-session-update-failed = Imposible de mettre à jour la session de jeu game-session-remove-failed = Imposible de supprimer la session de jeu game-session-set-current-failed = Imposible de sélectionner la session de jeu par défaut game-session-apply-failed = Imposible d'appliquer la session de jeu + +# Enhancements + +discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons +discord-rpc-icon-download-failed = Failed to download Discord RPC icon diff --git a/assets/locales/id/enhancements.ftl b/assets/locales/id/enhancements.ftl index b6c2306..7e6b3a8 100644 --- a/assets/locales/id/enhancements.ftl +++ b/assets/locales/id/enhancements.ftl @@ -33,6 +33,7 @@ gamescope-description = Gamescope adalah alat dari Valve yang memungkinkan game discord-rpc = Discord RPC discord-rpc-description = Discord RPC memungkinkan Anda untuk memberitahu discord informasi bahwa Anda sedang bermain game agar teman-teman Anda tahu +icon = Icon title = Judul description = Deskripsi diff --git a/assets/locales/id/errors.ftl b/assets/locales/id/errors.ftl index 090ddb5..16e3083 100644 --- a/assets/locales/id/errors.ftl +++ b/assets/locales/id/errors.ftl @@ -53,3 +53,8 @@ game-session-update-failed = Gagal memperbarui sesi game game-session-remove-failed = Gagal menghapus sesi game game-session-set-current-failed = Gagal menerapkan sesi game saat ini game-session-apply-failed = Gagal menerapkan sesi game + +# Enhancements + +discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons +discord-rpc-icon-download-failed = Failed to download Discord RPC icon diff --git a/assets/locales/it/enhancements.ftl b/assets/locales/it/enhancements.ftl index 95ab575..e36b56b 100644 --- a/assets/locales/it/enhancements.ftl +++ b/assets/locales/it/enhancements.ftl @@ -33,6 +33,7 @@ gamescope-description = Gamescope è uno strumento di Valve che permette ai gioc discord-rpc = RPC di Discord discord-rpc-description = L'RPC di Discord ti permette di fornire a Discord l'informazione che stai giocando a questo gioco e di farlo sapere ai tuoi amici +icon = Icon title = Titolo description = Descrizione diff --git a/assets/locales/it/errors.ftl b/assets/locales/it/errors.ftl index 88b9177..524920a 100644 --- a/assets/locales/it/errors.ftl +++ b/assets/locales/it/errors.ftl @@ -53,3 +53,8 @@ game-session-update-failed = Aggiornamento della sessione di gioco non riuscito game-session-remove-failed = Rimozione della sessione di gioco non riuscita game-session-set-current-failed = Impostazione della sessione di gioco attuale non riuscita game-session-apply-failed = Applicazione della sessione di gioco non riuscita + +# Enhancements + +discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons +discord-rpc-icon-download-failed = Failed to download Discord RPC icon diff --git a/assets/locales/ja/enhancements.ftl b/assets/locales/ja/enhancements.ftl index 71256b9..459d4d2 100644 --- a/assets/locales/ja/enhancements.ftl +++ b/assets/locales/ja/enhancements.ftl @@ -32,6 +32,7 @@ gamescope-description = これは、Xwaylandセッションでインスタンス discord-rpc = Discord RPC discord-rpc-description = これを有効にすると、現在あなたがゲームをプレイしているということをディスコードのフレンドに知らせることができます。 +icon = Icon title = タイトル description = 説明 diff --git a/assets/locales/ja/errors.ftl b/assets/locales/ja/errors.ftl index 224c724..20ee003 100644 --- a/assets/locales/ja/errors.ftl +++ b/assets/locales/ja/errors.ftl @@ -53,3 +53,8 @@ game-session-update-failed = ゲームセッションの更新に失敗しまし game-session-remove-failed = ゲームセッションの消去に失敗しました。 game-session-set-current-failed = 現在のゲームセッションに設定するのに失敗しました。 game-session-apply-failed = ゲームセッションの適用に失敗しました。 + +# Enhancements + +discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons +discord-rpc-icon-download-failed = Failed to download Discord RPC icon diff --git a/assets/locales/ru/enhancements.ftl b/assets/locales/ru/enhancements.ftl index 7900876..ade18e2 100644 --- a/assets/locales/ru/enhancements.ftl +++ b/assets/locales/ru/enhancements.ftl @@ -33,6 +33,7 @@ gamescope-description = Программа от Valve, позволяющая з discord-rpc = Discord RPC discord-rpc-description = Discord RPC позволяет вам предоставлять Discord информацию об игре, в которую вы сейчас играете +icon = Иконка title = Заголовок description = Описание diff --git a/assets/locales/ru/errors.ftl b/assets/locales/ru/errors.ftl index d242777..a08f379 100644 --- a/assets/locales/ru/errors.ftl +++ b/assets/locales/ru/errors.ftl @@ -53,3 +53,8 @@ game-session-update-failed = Не удалось обновить игровую game-session-remove-failed = Не удалось удалить игровую сессию game-session-set-current-failed = Не удалось выбрать игровую сессию game-session-apply-failed = Не удалось применить игровую сессию + +# Enhancements + +discord-rpc-icons-fetch-failed = Не удалось получить список иконок Discord RPC +discord-rpc-icon-download-failed = Не удалось скачать иконку Discord RPC diff --git a/assets/locales/tr/enhancements.ftl b/assets/locales/tr/enhancements.ftl index 48d9b41..eeaf0c8 100644 --- a/assets/locales/tr/enhancements.ftl +++ b/assets/locales/tr/enhancements.ftl @@ -33,6 +33,7 @@ gamescope-description = Gamescope, oyunları izole edilmiş bir Xwayland içinde discord-rpc = Discord RPC discord-rpc-description = Discord RPC, Discord'a şu anda oyun oynadığınızı bildirmenizi sağlar. Bu sayede arkadaşlarınıza şu anda oyun oynadığınızı gösterebilirsiniz +icon = Icon title = Başlık description = Açıklama diff --git a/assets/locales/tr/errors.ftl b/assets/locales/tr/errors.ftl index 5959e36..0092321 100644 --- a/assets/locales/tr/errors.ftl +++ b/assets/locales/tr/errors.ftl @@ -53,3 +53,8 @@ game-session-update-failed = Oyun oturumu güncellenemedi game-session-remove-failed = Oyun oturumu kaldırılamadı game-session-set-current-failed = Oyun oturumu seçilemedi game-session-apply-failed = Oyun oturumu uygulanamadı + +# Enhancements + +discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons +discord-rpc-icon-download-failed = Failed to download Discord RPC icon diff --git a/assets/locales/zh-cn/enhancements.ftl b/assets/locales/zh-cn/enhancements.ftl index 7325811..0b019a8 100644 --- a/assets/locales/zh-cn/enhancements.ftl +++ b/assets/locales/zh-cn/enhancements.ftl @@ -33,6 +33,7 @@ gamescope-description = Gamescope 是 Valve 开发的工具,可以让游戏运 discord-rpc = Discord RPC discord-rpc-description = Discord RPC 可以设置 Discord 状态,让你的好友知道你正在玩游戏 +icon = Icon title = 标题 description = 描述 diff --git a/assets/locales/zh-cn/errors.ftl b/assets/locales/zh-cn/errors.ftl index 49ffcc3..759ff1d 100644 --- a/assets/locales/zh-cn/errors.ftl +++ b/assets/locales/zh-cn/errors.ftl @@ -53,3 +53,8 @@ game-session-update-failed = Failed to update game session game-session-remove-failed = Failed to remove game session game-session-set-current-failed = Failed to set current game session game-session-apply-failed = Failed to apply game session + +# Enhancements + +discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons +discord-rpc-icon-download-failed = Failed to download Discord RPC icon diff --git a/src/ui/preferences/enhancements/mod.rs b/src/ui/preferences/enhancements/mod.rs index 34aae76..d55dccf 100644 --- a/src/ui/preferences/enhancements/mod.rs +++ b/src/ui/preferences/enhancements/mod.rs @@ -442,8 +442,7 @@ impl SimpleAsyncComponent for EnhancementsApp { #[local_ref] discord_rpc_icons -> adw::ExpanderRow { - // TODO: add localization - set_title: "Icon" + set_title: &tr("icon") }, adw::EntryRow { @@ -685,7 +684,7 @@ impl SimpleAsyncComponent for EnhancementsApp { /*if let Err(err) = result { sender.input(EnhancementsAppMsg::Toast { - title: String::from("Failed to download Discord RPC icon"), // TODO: add localizations + title: tr("discord-rpc-icon-download-failed"), description: Some(err.to_string()) }); }*/ @@ -712,7 +711,7 @@ impl SimpleAsyncComponent for EnhancementsApp { } Err(err) => sender.input(EnhancementsAppMsg::Toast { - title: String::from("Failed to fetch Discord RPC icons"), // TODO: add localizations + title: tr("discord-rpc-icons-fetch-failed"), description: Some(err.to_string()) }) } From a260289b1983e4e1e83f3bada55a42380cd25b82 Mon Sep 17 00:00:00 2001 From: mr_magic223325 Date: Sat, 10 Jun 2023 12:29:30 +0200 Subject: [PATCH 24/35] upd(i18n): Correct German Localisation grammar/sentences (#192) Signed-off-by: Mathis Winterer Co-authored-by: Marie --- assets/locales/de/components.ftl | 14 +++++++------- assets/locales/de/enhancements.ftl | 8 ++++---- assets/locales/de/errors.ftl | 14 +++++++------- assets/locales/de/first_run.ftl | 18 +++++++++--------- assets/locales/de/game.ftl | 2 +- assets/locales/de/general.ftl | 14 +++++++------- assets/locales/de/main.ftl | 30 +++++++++++++++--------------- 7 files changed, 50 insertions(+), 50 deletions(-) diff --git a/assets/locales/de/components.ftl b/assets/locales/de/components.ftl index 254807f..96518fd 100644 --- a/assets/locales/de/components.ftl +++ b/assets/locales/de/components.ftl @@ -1,11 +1,11 @@ components = Komponenten -components-description = Verwalte deine Wine- und DXVK-Versionen +components-description = Verwalten Sie Ihre Wine- und DXVK-Versionen -selected-version = Ausgewählte version +selected-version = Ausgewählte Version recommended-only = Nur empfohlene -wine-version = Wine version -wine-recommended-description = Nur empfohlene wine versionen anzeigen +wine-version = Wine-Version +wine-recommended-description = Nur empfohlene Wine-Versionen anzeigen wine-options = Wine-Optionen @@ -15,6 +15,6 @@ wine-use-shared-libraries-description = Setzt die LD_LIBRARY_PATH-Variable, um S gstreamer-use-shared-libraries = Gemeinsame gstreamer-Bibliotheken verwenden gstreamer-use-shared-libraries-description = Setzt die Variable GST_PLUGIN_PATH, um die Gstreamer-Bibliotheken aus dem ausgewählten Wine-Build zu laden -dxvk-version = DXVK version -dxvk-selection-disabled = DXVK auswahl ist durch ihre Wine auswahl deaktiviert -dxvk-recommended-description = Nur empfohlene dxvk versionen anzeigen +dxvk-version = DXVK-Version +dxvk-selection-disabled = DXVK-Auswahl ist durch Ihre Wine-Auswahl deaktiviert +dxvk-recommended-description = Nur empfohlene DXVK-Versionen anzeigen diff --git a/assets/locales/de/enhancements.ftl b/assets/locales/de/enhancements.ftl index a19ea89..d299c42 100644 --- a/assets/locales/de/enhancements.ftl +++ b/assets/locales/de/enhancements.ftl @@ -5,10 +5,10 @@ environment-settings-description = Definiere Umgebungsvariablen und ändere den wine = Wine synchronization = Synchronisation -wine-sync-description = Technologie zur Synchronisierung von Wine events +wine-sync-description = Technologie zur Synchronisierung von Wine-Events language = Sprache -wine-lang-description = Sprache, die in der Wine umgebung verwendet wird. Kann Probleme mit dem Tastaturlayout beheben +wine-lang-description = Sprache, die in der Wine-Umgebung verwendet wird. Kann Probleme mit dem Tastaturlayout beheben system = System borderless-window = Randloses Fenster @@ -29,10 +29,10 @@ gamemode = Gamemode gamemode-description = Dem Spiel den Vorrang vor den übrigen Prozessen geben gamescope = Gamescope -gamescope-description = Gamescope ist ein Tool von Valve das es ermöglicht, Spiele in einer isolierten Xwayland-Instanz laufen zu lassen und unterstützt AMD-, Intel- und Nvidia-GPUs +gamescope-description = Gamescope ist ein Tool von Valve, das es ermöglicht, Spiele in einer isolierten Xwayland-Instanz laufen zu lassen und unterstützt AMD-, Intel- und Nvidia-GPUs discord-rpc = Discord RPC -discord-rpc-description = Discord RPC ermöglicht es dir Discord die Information zu geben dass du gerade spielst, damit deine Freunde Bescheid wissen +discord-rpc-description =Discord RPC ermöglicht es Ihnen Discord die Information zu geben, dass Sie gerade spielen, damit Ihre Freunde Bescheid wissen icon = Icon title = Titel description = Beschreibung diff --git a/assets/locales/de/errors.ftl b/assets/locales/de/errors.ftl index ad10e2a..4ae8fd9 100644 --- a/assets/locales/de/errors.ftl +++ b/assets/locales/de/errors.ftl @@ -1,15 +1,15 @@ launcher-folder-opening-error = Launcher-Ordner konnte nicht geöffnet werden game-folder-opening-error = Spieleordner konnte nicht geöffnet werden -config-file-opening-error = Konfig-Datei konnte nicht geöffnet werden +config-file-opening-error = Konfigurationsdatei konnte nicht geöffnet werden debug-file-opening-error = Debug-Datei konnte nicht geöffnet werden wish-url-search-failed = Kein Wünsche URL gefunden wish-url-opening-error = Wünsche URL konnte nicht geöffnet werden -wine-run-error = Ausführung von {$executable} mit wine fehlgeschlagen +wine-run-error = Ausführung von {$executable} mit Wine fehlgeschlagen game-launching-failed = Spiel konnte nicht gestartet werden -failed-get-selected-wine = Die ausgewählte Wine version konnte nicht abgerufen werden. +failed-get-selected-wine = Die ausgewählte Wine-Version konnte nicht abgerufen werden. downloading-failed = Herunterladen fehlgeschlagen unpacking-failed = Entpacken fehlgeschlagen @@ -20,13 +20,13 @@ background-downloading-failed = Download des Hintergrundbildes fehlgeschlagen components-index-sync-failed = Komponentenindex konnte nicht synchronisiert werden components-index-verify-failed = Komponentenindex konnte nicht verifiziert werden config-update-error = Speichern der Konfiguration fehlgeschlagen -wine-prefix-update-failed = Aktualisierung des wine prefix fehlgeschlagen +wine-prefix-update-failed = Aktualisierung des Wine-Prefix fehlgeschlagen dxvk-install-failed = DXVK konnte nicht installiert werden voice-package-deletion-error = Sprachpaket konnte nicht gelöscht werden game-diff-finding-error = Spiel-Diff nicht gefunden patch-info-fetching-error = Patch-Informationen konnten nicht abgerufen werden -launcher-state-updating-error = Aktualisierung des Launcher status fehlgeschlagen +launcher-state-updating-error = Aktualisierung des Launcher-Status fehlgeschlagen package-not-available = Paket ist nicht verfügbar: {$package} wine-download-error = Download von Wine fehlgeschlagen @@ -34,9 +34,9 @@ wine-unpack-errror = Entpacken von Wine fehlgeschlagen wine-install-failed = Installation von Wine fehlgeschlagen dxvk-download-error = Download von DXVK fehlgeschlagen dxvk-unpack-error = Entpacken von DXVK fehlgeschlagen -dxvk-apply-error = DXVK konnte nicht angewendet werden +dxvk-apply-error = Anwenden von DXVK fehlgeschlagen -downloaded-wine-list-failed = Auflistung der heruntergeladenen Wine versionen fehlgeschlagen +downloaded-wine-list-failed = Auflistung der heruntergeladenen Wine-Versionen fehlgeschlagen patch-sync-failed = Synchronisierung des Patch-Ordners fehlgeschlagen patch-state-check-failed = Status des Patchordners konnte nicht überprüft werden diff --git a/assets/locales/de/first_run.ftl b/assets/locales/de/first_run.ftl index f304f3d..df7d5db 100644 --- a/assets/locales/de/first_run.ftl +++ b/assets/locales/de/first_run.ftl @@ -3,25 +3,25 @@ welcome = Willkommen welcome-page-message = Hallo! Willkommen bei An Anime Game Launcher - Wir müssen einige Dinge vorbereiten und Standardkomponenten herunterladen, bevor du das Spiel starten kannst + Wir müssen einige Dinge vorbereiten und Standardkomponenten herunterladen, bevor Sie das Spiel starten können -tos-violation-warning = Warnung vor ToS-Verletzung +tos-violation-warning = Warnung vor AGB-Verletzung tos-violation-warning-message = - Dieser Launcher ist ein inoffizielles Tool, das in keiner Weise mit {company-name} oder {company-alter-name} in verbindung steht. + Dieser Launcher ist ein inoffizielles Tool, das in keiner Weise mit {company-name} oder {company-alter-name} in Verbindung steht. - Dieses Tool soll das Spielen von {game-name} erleichtern auf Linux, und wurde mit dem einzigen Ziel entwickelt, das Spiel mit weniger Aufwand zu installieren und zu betreiben. + Dieses Tool soll das Spielen von {game-name} unter Linux erleichtern und wurde mit dem einzigen Ziel entwickelt, das Spiel mit weniger Aufwand zu installieren und zu betreiben. Dies geschieht durch die Verwendung vorhandener Komponenten und die Vereinfachung der Erfahrung für den Benutzer. Einige der hier verwendeten Komponenten verstoßen jedoch wahrscheinlich gegen die {company-name} Nutzungsbedingungen für {game-name}. - Wenn Sie diesen Launcher verwenden, könnte Ihr Spielerkonto als TOS-widrig identifiziert werden durch {company-name}/{company-alter-name}. + Wenn Sie diesen Launcher verwenden, könnte Ihr Spielerkonto durch {company-name}/{company-alter-name} als AGB-widrig identifiziert werden. - Sollte dies der Fall sein, würde Ihr Konto gegen die TOS verstoßen, {company-name}/{company-alter-name} sind frei zu tun, was sie wollen. Inklusive Ban. + Sollte dies der Fall sein, steht es {company-name}/{company-alter-name} frei, zu tun, was sie wollen, einschließlich eines Bans. - Wenn Sie sich über das Risiko bewusst sind das mit dem versuchen des Spiels spielen in inoffizieller Weise verbunden ist dann drücken Sie OK um fortzufahren. + Wenn Sie sich über das Risiko bewusst sind, das mit dem Versuch des spielens in inoffizieller Weise verbunden ist, dann drücken Sie OK, um fortzufahren. tos-dialog-title = Sind Sie sicher, dass Sie verstehen, was wir sagen? tos-dialog-message = @@ -30,7 +30,7 @@ tos-dialog-message = 3. Stellen Sie Fragen nur in unserem Discord oder auf dem Matrix-Server dependencies = Abhängigkeiten -missing-dependencies-title = Sie vermissen einige Abhängigkeiten! +missing-dependencies-title = Es fehlen einige Abhängigkeiten! missing-dependencies-message = Sie müssen einige Pakete auf Ihrem System installieren, bevor Sie mit der Installation fortfahren können @@ -40,7 +40,7 @@ show-all-folders = Ich weiß, was ich tue show-all-folders-subtitle = Zusätzliche Pfadauswahl-Einstellungen anzeigen. Tu was ich sage... runners-folder = Runners-Ordner dxvks-folder = DXVKs-Ordner -wine-prefix-folder = Wine prefix-Ordner +wine-prefix-folder = Wine-Prefix-Ordner global-game-installation-folder = Installationsordner der globalen Spielversion chinese-game-installation-folder = Installationsordner der chinesischen Spielversion fps-unlocker-folder = FPS Unlocker Ordner diff --git a/assets/locales/de/game.ftl b/assets/locales/de/game.ftl index 9ed52df..c20bff6 100644 --- a/assets/locales/de/game.ftl +++ b/assets/locales/de/game.ftl @@ -3,5 +3,5 @@ game-sessions = Spielsitzungen active-sessions = Aktive Sitzung active-session-description = Derzeit ausgewählte Spielsitzung. Aktualisiert nach jedem Spielstart -update-session = Sitzung mit aktuellen Wine prefix Registrierungswerten aktualisieren +update-session = Sitzung mit aktuellen Wine-Prefix Registrierungswerten aktualisieren delete-session = Sitzung löschen diff --git a/assets/locales/de/general.ftl b/assets/locales/de/general.ftl index 8506554..c3dfcd6 100644 --- a/assets/locales/de/general.ftl +++ b/assets/locales/de/general.ftl @@ -2,9 +2,9 @@ appearance = Aussehen modern = Modern classic = Klassisch update-background = Hintergrundbild aktualisieren -update-background-description = Lädt das offizielle Hintergrundbild herunter für den Launcher. SIe können es deaktiverien für ein benutzerdefiniertes Bild. +update-background-description = Lädt das offizielle Hintergrundbild für den Launcher herunter. Deaktivieren Sie dies für eine benutzerdefiniertes Hintergrundbild. -launcher-language = Launcher Sprache +launcher-language = Launcher-Sprache launcher-language-description = Gilt nach Neustart game-edition = Spiel-Edition @@ -14,7 +14,7 @@ china = China game-environment = Spielumgebung game-environment-description = Spezielle Funktionen wie zusätzliche Zahlungsmöglichkeiten -game-voiceovers = Spiel Sprachen +game-voiceovers = Spiel-Sprachen game-voiceovers-description = Liste der heruntergeladenen Sprachausgabe für das Spiel. Sie können diese in den Spieleinstellungen auswählen english = Englisch japanese = Japanisch @@ -27,7 +27,7 @@ repair-game = Spiel Reparieren status = Status -game-version = Spiel version +game-version = Spielversion game-not-installed = nicht installiert game-predownload-available = Vorab-Download von Spiel-Updates verfügbar: {$old} -> {$new} @@ -35,7 +35,7 @@ game-update-available = Spiel-Update verfügbar: {$old} -> {$new} game-outdated = Das Spiel ist zu veraltet und kann nicht mehr aktualisiert werden. Letzte Version: {$latest} player-patch-version = Hauptpatch-Version -player-patch-version-description = Hauptpatch, mit dem du das Spiel unter Linux spielen kannst +player-patch-version-description = Hauptpatch, mit dem Sie das Spiel unter Linux spielen können xlua-patch-version = zusätzliche Patch-Version xlua-patch-version-description = Zusätzlicher Patch, der einige Probleme behebt und die Leistung auf Low-End-PCs verbessert @@ -55,14 +55,14 @@ patch-not-applied-tooltip = Patch ist nicht angewendet apply-main-patch = Hauptpatch Anwenden apply-main-patch-description = Experimentell. Wenn Sie diese Option deaktivieren, können Sie das Spiel ausführen, ohne den Patch anzuwenden. - Dies könnte möglicherweise nicht funktionieren oder erfordert manuelle Änderungen an den Dateien. Verwenden Sie es nur wenn Sie wissen was Sie tun. + Dies könnte möglicherweise nicht funktionieren oder erfordert manuelle Änderungen an den Dateien. Verwenden Sie dies nur wenn Sie wissen was Sie tun. apply-xlua-patch = Zusätzlichen Patch anwenden ask-superuser-permissions = Superuser-Berechtigungen anfordern ask-superuser-permissions-description = Launcher benötigt Superuser-Zugriff, um Ihre Hosts-Datei automatisch zu aktualisieren. Dies ist in der Flatpak-Edition nicht erforderlich -wine-tools = Wine tools +wine-tools = Wine-Tools command-line = Befehlszeile registry-editor = Registrierungs-Editor explorer = Explorer diff --git a/assets/locales/de/main.ftl b/assets/locales/de/main.ftl index 7fc520c..c211243 100644 --- a/assets/locales/de/main.ftl +++ b/assets/locales/de/main.ftl @@ -11,7 +11,7 @@ height = Höhe launcher-folder = Launcher-Ordner game-folder = Spielordner -config-file = Konfig-Datei +config-file = Konfigurationsdatei debug-file = Debug-Datei wish-url = Wünsche öffnen about = Über @@ -27,15 +27,15 @@ restart = Neustarten agree = Einverstanden -loading-data = Laden Daten -downloading-background-picture = Hintergrundbild am Herunterladen -updating-components-index = Aktualisiere index der Komponenten -loading-game-version = Lade version des Spiels -loading-patch-status = Lade version des Patch -loading-launcher-state = Lade Launcher status -loading-launcher-state--game = Launcher status am laden: Verifizierung der Spielversion -loading-launcher-state--voice = Launcher status am laden: Verifiziere {$locale} sprache -loading-launcher-state--patch = Launcher status am laden: Verifizierung des installierten Patch +loading-data = Lade Daten +downloading-background-picture = Hintergrundbild wird Herunterladen +updating-components-index = Aktualisiere Index der Komponenten +loading-game-version = Lade Version des Spiels +loading-patch-status = Lade Version des Patchs +loading-launcher-state = Lade Launcher Status +loading-launcher-state--game = Launcher status wird geladen: Verifizierung der Spielversion +loading-launcher-state--voice = Launcher status wird geladen: Verifizierung der {$locale} Sprache +loading-launcher-state--patch = Launcher status wird geladen: Verifizierung des installierten Patchs checking-free-space = Überprüfe Freien Speicherplatz @@ -43,12 +43,12 @@ downloading = Lade Herunter unpacking = Entpacken verifying-files = Verifiziere Dateien repairing-files = Repariere Dateien -migrating-folders = Migrating folders -applying-hdiff = Applying hdiff patches -removing-outdated = Removing outdated files +migrating-folders = Migrieren der Ordner +applying-hdiff = Anwenden der hdiff-Patches +removing-outdated = Entfernen veralteter Dateien -components-index-updated = Kompontentenverzeichnis würde aktualisiert +components-index-updated = Kompontentenverzeichnis wurde aktualisiert launch = Starten @@ -61,7 +61,7 @@ update = Updaten download = Herunterladen predownload-update = Vorab-Update von Version {$version} herunterladen ({$size}) -main-window--patch-unavailable-tooltip = Die Patch-Server sind nicht verfügbar und der Launcher kann den Patch-Status des Spiels nicht überprüfen. Du darfst das Spiel auf eigene Gefahr spielen. +main-window--patch-unavailable-tooltip = Die Patch-Server sind nicht verfügbar und der Launcher kann den Patch-Status des Spiels nicht überprüfen. Sie können das Spiel auf eigene Gefahr spielen. main-window--patch-outdated-tooltip = Der Patch ist veraltet oder befindet sich in Vorbereitung und kann daher nicht verwendet werden. Kehren Sie später zurück, um den Status zu sehen. main-window--version-outdated-tooltip = Die Version ist zu veraltet und kann nicht aktualisiert werden From 62567a9f99efe84455644823e7f550060803618d Mon Sep 17 00:00:00 2001 From: Marie Date: Sat, 10 Jun 2023 12:33:30 +0200 Subject: [PATCH 25/35] feat(i18n): Translate new lines in german --- assets/locales/de/errors.ftl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/locales/de/errors.ftl b/assets/locales/de/errors.ftl index 4ae8fd9..81674fb 100644 --- a/assets/locales/de/errors.ftl +++ b/assets/locales/de/errors.ftl @@ -56,5 +56,5 @@ game-session-apply-failed = Spielsitzung konnte nicht angewendet werden # Enhancements -discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons -discord-rpc-icon-download-failed = Failed to download Discord RPC icon +discord-rpc-icons-fetch-failed = Discord-RPC-Symbole konnten nicht abgerufen werden +discord-rpc-icon-download-failed = Discord RPC-Symbol konnte nicht heruntergeladen werden From 11b087c9677a74fb3d6aaf4717e412ebbc7f9000 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sat, 10 Jun 2023 12:41:28 +0200 Subject: [PATCH 26/35] feat(i18n): added Hungarian --- CHANGELOG.md | 1 + assets/locales/common.ftl | 1 + assets/locales/hu/components.ftl | 20 +++++++++ assets/locales/hu/enhancements.ftl | 63 ++++++++++++++++++++++++++ assets/locales/hu/environment.ftl | 7 +++ assets/locales/hu/errors.ftl | 60 +++++++++++++++++++++++++ assets/locales/hu/first_run.ftl | 65 +++++++++++++++++++++++++++ assets/locales/hu/game.ftl | 7 +++ assets/locales/hu/gamescope.ftl | 13 ++++++ assets/locales/hu/general.ftl | 71 ++++++++++++++++++++++++++++++ assets/locales/hu/main.ftl | 70 +++++++++++++++++++++++++++++ assets/locales/hu/sandbox.ftl | 28 ++++++++++++ src/i18n.rs | 3 +- src/ui/about.rs | 4 +- 14 files changed, 411 insertions(+), 2 deletions(-) create mode 100644 assets/locales/hu/components.ftl create mode 100644 assets/locales/hu/enhancements.ftl create mode 100644 assets/locales/hu/environment.ftl create mode 100644 assets/locales/hu/errors.ftl create mode 100644 assets/locales/hu/first_run.ftl create mode 100644 assets/locales/hu/game.ftl create mode 100644 assets/locales/hu/gamescope.ftl create mode 100644 assets/locales/hu/general.ftl create mode 100644 assets/locales/hu/main.ftl create mode 100644 assets/locales/hu/sandbox.ftl diff --git a/CHANGELOG.md b/CHANGELOG.md index 20d00ca..44330a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added Discord RPC icon selection - Added Japanese +- Added Hungarian ### Fixed diff --git a/assets/locales/common.ftl b/assets/locales/common.ftl index 442ab4a..7ca100e 100644 --- a/assets/locales/common.ftl +++ b/assets/locales/common.ftl @@ -24,3 +24,4 @@ it-it = Italiano id-id = Indonesia zh-cn = 简体中文 ja-jp = 日本語 +hu-hu = Magyar diff --git a/assets/locales/hu/components.ftl b/assets/locales/hu/components.ftl new file mode 100644 index 0000000..5d65541 --- /dev/null +++ b/assets/locales/hu/components.ftl @@ -0,0 +1,20 @@ +components = Komponensek +components-description = A Wine és DXVK verzióid beállításai + +selected-version = Kiválasztott verzió +recommended-only = Csak ajánlott + +wine-version = Wine verzió +wine-recommended-description = Csak ajánlott wine verziók mutatása + +wine-options = Wine beállítások + +wine-use-shared-libraries = Wine megosztott könyvtárak használata +wine-use-shared-libraries-description = LD_LIBRARY_PATH változó megadása, ezzel lehet a rendszerkönyvtárakat betölteni a választott wine verzióból + +gstreamer-use-shared-libraries = Gstreamer megosztott könyvtárak használata +gstreamer-use-shared-libraries-description = GST_PLUGIN_PATH változó megadása, ezzel lehet a gstreamer könyvtárakat betölteni a választott wine verzióból + +dxvk-version = DXVK verzió +dxvk-selection-disabled = DXVK selection is disabled by your wine group preferences +dxvk-recommended-description = Csak ajánlott dxvk verziók mutatása diff --git a/assets/locales/hu/enhancements.ftl b/assets/locales/hu/enhancements.ftl new file mode 100644 index 0000000..319eccd --- /dev/null +++ b/assets/locales/hu/enhancements.ftl @@ -0,0 +1,63 @@ +game-settings-description = Játékbeállítások és fiókmenet beállítása +sandbox-settings-description = Játék futtatása egy 'bubblewrap sandbox'-ban, hasonló ahhoz amit a Flatpak csinál +environment-settings-description = Környezeti változók és játékindítási parancsok megadása + +wine = Wine + +synchronization = Szinkronizáció +wine-sync-description = Belső wine event-ek szinkronizálására használt + +language = Nyelv +wine-lang-description = Wine-on belül használt nyelv. Billentyűkiosztás problémákat megoldhat +system = Rendszer + +borderless-window = Kerettelen ablak(borderless) +virtual-desktop = Virtuális asztal + +game = Játék + +hud = HUD + +fsr = FSR +fsr-description = Használatához futtasd a játékot kisebb felbontásban és nyomd meg az Alt+Enter-t. Az FSR a monitorodhoz igazítja minőségvesztés nélkül, így több lehet az FPS. +ultra-quality = Ultra Minőség +quality = Minőség +balanced = Egyensúlyozott +performance = Teljesítmény + +gamemode = Gamemode +gamemode-description = Minden folyamat felett fusson a játék ( prioritás minden felett) + +gamescope = Gamescope +gamescope-description = A Gamescope-al egy külön Xwayland folyamatban fut a játék. Támogatja az Intel, AMD és Nvidia videókártyákat + +discord-rpc = Discord RPC +discord-rpc-description = Kiírja a Discord profilod alá hogy játszol a játékkal +icon = Icon +title = Title +description = Description + +fps-unlocker = FPS Unlocker + +enabled = Bekapcsolva +fps-unlocker-description = Eltávolítja az fps limitet. Az anti-cheat észreveheti + +power-saving = Energiatakarékos +power-saving-description = Fókuszvesztésnél(pl. alt-tab) az FPS limitet 10-re állítja + +monitor = Monitor +monitor-description = Ahány monitoron szeretnéd futtatni a játékot + +window-mode = Ablak mód +borderless = Keretmentes +popup = Popup +fullscreen = Teljesképernyő + +priority = Prioritás +priority-description = Játékfolyamat prioritás +realtime = Legmagasabb +high = Magas +above-normal = Normál felett +normal = Normál +below-normal = Normál alatt +low = Alacsony diff --git a/assets/locales/hu/environment.ftl b/assets/locales/hu/environment.ftl new file mode 100644 index 0000000..a497086 --- /dev/null +++ b/assets/locales/hu/environment.ftl @@ -0,0 +1,7 @@ +environment = Környezet +game-command = Játék parancs +game-command-description = A parancs amivel futtatásra kerül a játék. Példa %command%-ot generál a launcher. Pl.: gamemoderun '%command%' +new-variable = Új változó +name = Név +value = Érték +add = Hozzáadás diff --git a/assets/locales/hu/errors.ftl b/assets/locales/hu/errors.ftl new file mode 100644 index 0000000..49c99b5 --- /dev/null +++ b/assets/locales/hu/errors.ftl @@ -0,0 +1,60 @@ +launcher-folder-opening-error = Launcher mappa megnyitása sikertelen +game-folder-opening-error = Játék mappa megnyitása sikertelen +config-file-opening-error = Config fájl megnyitása sikertelen +debug-file-opening-error = Debug fájl megnyitása sikertelen + +wish-url-search-failed = Nem találtam wish url-t +wish-url-opening-error = Nem tudtam megnyitni a wish url-t + +wine-run-error = Nem sikerült a {$executable} futtatása wine-nal + +game-launching-failed = Játékindítás sikertelen +failed-get-selected-wine = Kiválasztott wine verzió beszerzése sikertelen +downloading-failed = Sikertelen letöltés +unpacking-failed = Sikertelen kicsomagolás + +game-file-repairing-error = Nem sikerült a játékfájlok javítása +integrity-files-getting-error = Integritásfájlok beszerzése sikertelen + +background-downloading-failed = Háttérkép letöltése sikertelen +components-index-sync-failed = Failed to sync components index +components-index-verify-failed = Failed to verify components index +config-update-error = Sikertelen config mentés +wine-prefix-update-failed = Sikertelen wine prefix frissítés +dxvk-install-failed = DXVK telepítése sikertelen +voice-package-deletion-error = Hangcsomag törlése sikertelen + +game-diff-finding-error = Játék diff megtalálása sikertelen +patch-info-fetching-error = Patch info beszerzése sikertelen +launcher-state-updating-error = Launcherállapot frissítése sikertelen + +package-not-available = Ez a csomag nem elérhető: {$package} +wine-download-error = Wine letöltése sikertelen +wine-unpack-errror = Wine kicsomagolás sikertelen +wine-install-failed = Wine telepítés sikertelen +dxvk-download-error = DXVK letöltés sikertelen +dxvk-unpack-error = DXVK kicsomagolás sikertelen +dxvk-apply-error = DXVK alkalmazása sikertelen + +downloaded-wine-list-failed = Nem sikerült listázni a letöltött wine verziókat + +patch-sync-failed = Patch mappa szinkronizálása sikertelen +patch-state-check-failed = Patch mappa állapota ellenőrzése sikertelen +game-patching-error = Sikertelen játék patchelés + +# Sandbox + +documentation-url-open-failed = Failed to open documentation URL + +# Game + +game-session-add-failed = Játékmenet hozzáadása sikertelen +game-session-update-failed = Játékemenet frissítése sikertelen +game-session-remove-failed = Játékmenet eltávolítása sikertelen +game-session-set-current-failed = Jelen játékmenet beállítása sikertelen +game-session-apply-failed = Játékmenet alkalmazása sikertelen + +# Enhancements + +discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons +discord-rpc-icon-download-failed = Failed to download Discord RPC icon diff --git a/assets/locales/hu/first_run.ftl b/assets/locales/hu/first_run.ftl new file mode 100644 index 0000000..c52c120 --- /dev/null +++ b/assets/locales/hu/first_run.ftl @@ -0,0 +1,65 @@ +welcome = Üdvözöljük + +welcome-page-message = + Hali! Üdvözlünk az An Anime Game Launcher-ben! + + Elő kell készítenünk pár dolgot és letölteni pár alapértelmezett komponenst mielőtt futtathatod a játékot + + +tos-violation-warning = ToS megszegési figyelmeztetés + +tos-violation-warning-message = + Ez a launcher egy nem hivatalos eszköz, semmi köze {company-name} és {comapny-alter-name}-hez. + + Ez az eszköz arra készült, hogy lehetővé tegye {game-name} használatát Linux-on, és hogy megegyszerűsítse a telepítését és futtatását. + + Ezt már létező komponensek felhasználásával teszi, ami egyszerűbbé teszi a felhasználó élményét. + + Viszont, pár komponens megszegheti {company-name} Felhasználási Feltételeit(TOS) {game-name}-hez. + + Ha használod ezt a launchert, a fiókodat TOS-megszegőként azonosíthatja a {company-name}/{company-alter-name}. + + Ha ez megtörténik, mivel megszegi a fiókod a TOS-t, így {company-name}/{company-alter-name} bármit megtehet. Beleértve bannolhat is. + + Ha megérted a játék nem hivatalos futtatásának kockázatait, nyomd meg az OK gombot a folytatáshoz. + +tos-dialog-title = Are you sure you understand what we want to say? +tos-dialog-message = + 1. Don't publish any information about this project + 2. Don't abuse it by using some modded clients and so + 3. Ask questions exceptionally in our discord or matrix server + + +dependencies = Dependenciák +missing-dependencies-title = Hiányzik pár dependenciád! +missing-dependencies-message = Telepítened kell pár csomagot mielőtt folytathatod a telepítést + + +default-paths = Alapértelmezett elérési utak +choose-default-paths = Alapértelmezett elérési utak kiválasztása +show-all-folders = Tudom mit csinálok +show-all-folders-subtitle = Extra elérési út kiválasztási beállítások mutatása. Tedd amit mondok... +runners-folder = Runnerek mappája +dxvks-folder = DXVKs mappa +wine-prefix-folder = Wine prefix mappa +global-game-installation-folder = Global játékverzió mappája +chinese-game-installation-folder = Kínai játékverzió mappája +fps-unlocker-folder = FPS Unlocker mappa +components-index = Components index +patch-folder = Patch mappa +temp-folder = Ideiglenes (temp) mappa + +migrate = Migráció + + +select-voice-packages = Hangcsomagok kiválasztása + + +download-components = Komponensek letöltése +download-dxvk = DXVK letöltése +apply-dxvk = DXVK alkalmazása + + +finish = Befejezés +finish-title = Minden kész! +finish-message = Minden alap komponens letöltve. Újraindíthatod a launchert és letöltheted a játékot. Üdv a klubban! diff --git a/assets/locales/hu/game.ftl b/assets/locales/hu/game.ftl new file mode 100644 index 0000000..2d3427d --- /dev/null +++ b/assets/locales/hu/game.ftl @@ -0,0 +1,7 @@ +game-sessions = Játékmenetek + +active-sessions = Aktív játékmenet +active-session-description = Jelenleg kiválasztott játékmenet. Minden indítás után frissül + +update-session = Játékmenet frissítése a jelenlegi wine prefix registry értékekkel +delete-session = Játékmenet eltávolítása diff --git a/assets/locales/hu/gamescope.ftl b/assets/locales/hu/gamescope.ftl new file mode 100644 index 0000000..7b0b993 --- /dev/null +++ b/assets/locales/hu/gamescope.ftl @@ -0,0 +1,13 @@ +game-resolution = Játékfelbontás +gamescope-resolution = Gamescope felbontás + +upscaling = Upscaling + +integer-scaling = Integer scaling +integer-scaling-description = Minden kerek számnyi egyező színű pixelt egy négyzet vagy téglalap csoportba rak. Megelőzheti az élességvesztést Full HD - 4K upscalingnél +gamescope-fsr-description = Open-source upscaling technika az AMD-től jobb upscaling minőségért +nis-description = Open source upscaling technika az Nvidia-tól, alternatíva a DLSS-re, minden videókártyán működik. 16 + +other-settings = Egyéb beállítások +framerate-limit = FPS limit +unfocused-framerate-limit = Fókuszon kívüli FPS limit diff --git a/assets/locales/hu/general.ftl b/assets/locales/hu/general.ftl new file mode 100644 index 0000000..e67fce4 --- /dev/null +++ b/assets/locales/hu/general.ftl @@ -0,0 +1,71 @@ +appearance = Kinézet +modern = Modern +classic = Klasszikus +update-background = Háttérkép frissítése +update-background-description = Hivatalos launcher háttérkép letöltése. Kikapcsolással használhatsz egyedi képet helyette. + +launcher-language = Launcher nyelv +launcher-language-description = Újraindítás után lép életbe + +game-edition = Játék kiadás +global = Globális +china = Kínai + +game-environment = Játék környezet +game-environment-description = Egyedi lehetőségek érhetőek el vele a játékban, mint például extra fizetési módok + +game-voiceovers = Játék hangnyelv +game-voiceovers-description = Letöltött játékhangok listája. Megváltoztathatod a játékbeállításokban +english = Angol +japanese = Japán +korean = Koreai +chinese = Kínai + +migrate-installation = Játékmappa migrálása +migrate-installation-description = Megnyit egy ablakot amivel megváltoztathatod a játékmappádat +repair-game = Játék javítása + +status = Státusz + +game-version = Játék verzió +game-not-installed = nincs telepítve + +game-predownload-available = Játékfrissítés előtöltés elérhető: {$old} -> {$new} +game-update-available = Játékfrissítés elérhető: {$old} -> {$new} +game-outdated = A játékverzió túl régi és nem frissíthető. Legfrissebb: {$latest} + +player-patch-version = Játékos patch verzió +player-patch-version-description = A fő patch amivel játszhatsz Linuxon + +xlua-patch-version = Xlua patch verzió +xlua-patch-version-description = Extra patch ami javít pár problémán és jobb teljesítményt nyújt gyenge gépeken + +patch-not-available = nem elérhető +patch-not-available-tooltip = A patch szerverek nem elérhetőek + +patch-outdated = elavult ({$current}) +patch-outdated-tooltip = A patch elavult: {$current} -> {$latest} + +patch-preparation = előkészítés +patch-preparation-tooltip = A patch fejlesztés alatt áll + +patch-testing-tooltip = Teszt patch elérhető +patch-not-applied-tooltip = A patch nincs alkalmazva + +apply-main-patch = Fő patch alkalmazása +apply-main-patch-description = + Kísérleti opció, a kikapcsolásával futtathatod a játékot patch nélkül. + Lehet hogy nem fog működni, vagy a fájlokat manuálisan kell szerkesztened, akkor kapcsold ki ha tudod mit csinálsz. + +apply-xlua-patch = Xlua patch alkalmazása + +ask-superuser-permissions = Superuser engedély kérése +ask-superuser-permissions-description = A Launcher autómatikusan használni fogja hogy frissítse a hosts fájlodat. A Flatpak verzióhoz nem kell + +wine-tools = Wine eszközök +command-line = Parancssor +registry-editor = Registry szerksztő +explorer = Explorer +task-manager = Feladatkezelő +configuration = Konfiguráció +debugger = Debugger diff --git a/assets/locales/hu/main.ftl b/assets/locales/hu/main.ftl new file mode 100644 index 0000000..a52cb36 --- /dev/null +++ b/assets/locales/hu/main.ftl @@ -0,0 +1,70 @@ +custom = Egyéni +none = Semelyik +default = Alap +details = Részletek +options = Beállítások + +width = Szélesség +height = Magasság + +# Menu items + +launcher-folder = Launcher mappa +game-folder = Játék mappa +config-file = Config fájl +debug-file = Debug fájl +wish-url = Wishek megnyitása +about = Részletek + + +close = Bezárás +save = Mentés +continue = Folytatás +resume = Resume +exit = Kilépés +check = Ellenőrzés +restart = Újraindítás +agree = Agree + + +loading-data = Adatok betöltése +downloading-background-picture = Háttérkép letöltése +updating-components-index = Updating components index +loading-game-version = Játékverzió betöltése +loading-patch-status = Patch státusz betöltése +loading-launcher-state = Launcher állapot betöltése +loading-launcher-state--game = Launcher állapot betöltése: játékverzió ellenőrzése +loading-launcher-state--voice = Launcher állapot betöltése: {$locale} hangnyelv ellenőrzése +loading-launcher-state--patch = Launcher állapot betöltése: telepített patch ellenőrzése + + +checking-free-space = Szabad hely ellenőrzése +downloading = Letöltés +unpacking = Kicsomagolás +verifying-files = Fájlok ellenőrzése +repairing-files = Fájlok javítása +migrating-folders = Mappák migrálása +applying-hdiff = Hdiff patchek alkalmazása +removing-outdated = Elavult fájlok törlése + + +components-index-updated = A komponens index frissítve lett + + +launch = Indítás +migrate-folders = Mappák migrálása +migrate-folders-tooltip = Játékmappa struktúra frissítése +apply-patch = Patch alkalmazása +download-wine = Wine letöltése +create-prefix = Prefix létrehozása +update = Frissítés +download = Letöltés +predownload-update = {$version} verzió előtöltése ({$size}) + +main-window--patch-unavailable-tooltip = A patch szerverek nem elérhetőek és a launcher nem tudja ellenőrizni a játék patch státuszát. Saját felelősségre futtathatod a játékot +main-window--patch-outdated-tooltip = A patch jelenleg nem elérhető mert túl elavult, vagy előkészítés alatt áll. Nézz vissza később +main-window--version-outdated-tooltip = Ez a verzió túl elavult és nem lehet frissíteni + +preferences = Preferenciák +general = Általános +enhancements = Fejlesztések diff --git a/assets/locales/hu/sandbox.ftl b/assets/locales/hu/sandbox.ftl new file mode 100644 index 0000000..4fe849e --- /dev/null +++ b/assets/locales/hu/sandbox.ftl @@ -0,0 +1,28 @@ +sandbox = Sandbox +sandbox-description = A játék futtatása egy elzárt környezetben, így nem férhet hozzá a privát adataidhoz + +enable-sandboxing = Sandbox bekapcsolása +enable-sandboxing-description = A játék futtatása egy csak olvasható változatában a root fájlrendszerednek + +hide-home-directory = Home mappa elrejtése +hide-home-directory-description = A /home, /var/home/$USER, és $HOME mappák elzárása a játéktól + +hostname = Gépnév +additional-arguments = Extra opciók + +private-directories = Privát mappák +private-directories-description = Ezek a mappák egy üres virtuális fájlrendszerrel (tmpfs) lesznek helyettesítve, a tartalmuk nem lesz elérhető a sandboxolt játéknak + +path = Elérési út + +shared-directories = Megosztott mappák +shared-directories-description = Ezek a mappák symlinkelve lesznek a te rendszeredben lévő mappákhoz + +original-path = Eredeti elérési út +new-path = Új elérési út a sandboxnak + +read-only = Csak olvasás +read-only-description = A játék eltiltása a játékmappába való írástól + +symlinks = Symlinkek +symlinks-description = Eredeti elérési hely symlinkelése a sandboxon belüli újhoz diff --git a/src/i18n.rs b/src/i18n.rs index 4eef74d..e22af8c 100644 --- a/src/i18n.rs +++ b/src/i18n.rs @@ -20,7 +20,8 @@ pub const SUPPORTED_LANGUAGES: &[LanguageIdentifier] = &[ langid!("it-it"), langid!("id-id"), langid!("zh-cn"), - langid!("ja-jp") + langid!("ja-jp"), + langid!("hu-hu") ]; static mut LANG: LanguageIdentifier = langid!("en-us"); diff --git a/src/ui/about.rs b/src/ui/about.rs index c30be55..17ade77 100644 --- a/src/ui/about.rs +++ b/src/ui/about.rs @@ -88,7 +88,8 @@ impl SimpleComponent for AboutDialog { "Italiano — @QuazarOmega https://github.com/quazar-omega", "Indonesia — @yumekarisu https://github.com/yumekarisu", "简体中文 — Caibin Chen https://github.com/tigersoldier", - "日本語 — @zozonteq https://github.com/zozonteq" + "日本語 — @zozonteq https://github.com/zozonteq", + // Hungarian? ].join("\n"), set_debug_info: &[ @@ -108,6 +109,7 @@ impl SimpleComponent for AboutDialog { "
    ", "
  • Added Discord RPC icon selection
  • ", "
  • Added Japanese
  • ", + "
  • Added Hungarian
  • ", "
", "

Fixed

", From 2d9aa775447a3afd0eb7f9a32c1811f7e12285cd Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sat, 10 Jun 2023 13:12:37 +0200 Subject: [PATCH 27/35] feat(i18n): updated Italian --- assets/locales/it/enhancements.ftl | 2 +- assets/locales/it/errors.ftl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/locales/it/enhancements.ftl b/assets/locales/it/enhancements.ftl index e36b56b..6fb8dc6 100644 --- a/assets/locales/it/enhancements.ftl +++ b/assets/locales/it/enhancements.ftl @@ -33,7 +33,7 @@ gamescope-description = Gamescope è uno strumento di Valve che permette ai gioc discord-rpc = RPC di Discord discord-rpc-description = L'RPC di Discord ti permette di fornire a Discord l'informazione che stai giocando a questo gioco e di farlo sapere ai tuoi amici -icon = Icon +icon = Icona title = Titolo description = Descrizione diff --git a/assets/locales/it/errors.ftl b/assets/locales/it/errors.ftl index 524920a..1f8a8eb 100644 --- a/assets/locales/it/errors.ftl +++ b/assets/locales/it/errors.ftl @@ -56,5 +56,5 @@ game-session-apply-failed = Applicazione della sessione di gioco non riuscita # Enhancements -discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons -discord-rpc-icon-download-failed = Failed to download Discord RPC icon +discord-rpc-icons-fetch-failed = Acquisizione della lista delle icone RPC di Discord non riuscita +discord-rpc-icon-download-failed = Scaricamento dell'icona RPC di Discord non riuscito From bdecd32ec245da6234a73ffe7479fb195afbacda Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sat, 10 Jun 2023 13:45:57 +0200 Subject: [PATCH 28/35] feat(i18n): fixed unintended newline --- assets/locales/de/general.ftl | 4 +--- assets/locales/en/general.ftl | 4 +--- assets/locales/es/general.ftl | 4 +--- assets/locales/fr/general.ftl | 5 +---- assets/locales/hu/general.ftl | 4 +--- assets/locales/id/general.ftl | 4 +--- assets/locales/it/general.ftl | 4 +--- assets/locales/ja/general.ftl | 4 +--- assets/locales/ru/general.ftl | 4 +--- assets/locales/tr/general.ftl | 4 +--- assets/locales/zh-cn/general.ftl | 4 +--- 11 files changed, 11 insertions(+), 34 deletions(-) diff --git a/assets/locales/de/general.ftl b/assets/locales/de/general.ftl index c3dfcd6..418d805 100644 --- a/assets/locales/de/general.ftl +++ b/assets/locales/de/general.ftl @@ -53,9 +53,7 @@ patch-testing-tooltip = Test-Patch ist verfügbar patch-not-applied-tooltip = Patch ist nicht angewendet apply-main-patch = Hauptpatch Anwenden -apply-main-patch-description = - Experimentell. Wenn Sie diese Option deaktivieren, können Sie das Spiel ausführen, ohne den Patch anzuwenden. - Dies könnte möglicherweise nicht funktionieren oder erfordert manuelle Änderungen an den Dateien. Verwenden Sie dies nur wenn Sie wissen was Sie tun. +apply-main-patch-description = Experimentell. Wenn Sie diese Option deaktivieren, können Sie das Spiel ausführen, ohne den Patch anzuwenden. Dies könnte möglicherweise nicht funktionieren oder erfordert manuelle Änderungen an den Dateien. Verwenden Sie dies nur wenn Sie wissen was Sie tun. apply-xlua-patch = Zusätzlichen Patch anwenden diff --git a/assets/locales/en/general.ftl b/assets/locales/en/general.ftl index 64a083c..1e50d80 100644 --- a/assets/locales/en/general.ftl +++ b/assets/locales/en/general.ftl @@ -53,9 +53,7 @@ patch-testing-tooltip = Test patch is available patch-not-applied-tooltip = Patch is not applied apply-main-patch = Apply main patch -apply-main-patch-description = - Experimental. Disabling this allows you to run the game without applying the patch. - This may not work, or require manual files modifications. Use if you know what you're doing +apply-main-patch-description = Experimental. Disabling this allows you to run the game without applying the patch. This may not work, or require manual files modifications. Use if you know what you're doing apply-xlua-patch = Apply xlua patch diff --git a/assets/locales/es/general.ftl b/assets/locales/es/general.ftl index c868596..ab3d509 100644 --- a/assets/locales/es/general.ftl +++ b/assets/locales/es/general.ftl @@ -53,9 +53,7 @@ patch-testing-tooltip = Está disponible un parche de prueba patch-not-applied-tooltip = El parche no está aplicado apply-main-patch = Aplicar parche principal -apply-main-patch-description = - Experimental. Deshabilitar esta opción te permitirá correr el juego sin aplicar el parche. - Esto podría no funcionar, o requerir modificaciones manuales a los archivos. Úsalo sólo si sabes lo que estás haciendo +apply-main-patch-description = Experimental. Deshabilitar esta opción te permitirá correr el juego sin aplicar el parche. Esto podría no funcionar, o requerir modificaciones manuales a los archivos. Úsalo sólo si sabes lo que estás haciendo apply-xlua-patch = Aplicar parche Xlua diff --git a/assets/locales/fr/general.ftl b/assets/locales/fr/general.ftl index 2634088..b0c542b 100644 --- a/assets/locales/fr/general.ftl +++ b/assets/locales/fr/general.ftl @@ -53,10 +53,7 @@ patch-testing-tooltip = Patch de test disponible patch-not-applied-tooltip = Patch is not applied apply-main-patch = Appliquer le patch principal -apply-main-patch-description = - Expériment. Désactiver cette option permet de lancer le jeu sans le patch. - Il n'est pas garanti que cette option marche, et des modifications manuelles seront potentiellement nécessaires. - À n'utiliser que si vous savez ce que vous faites +apply-main-patch-description = Expériment. Désactiver cette option permet de lancer le jeu sans le patch. Il n'est pas garanti que cette option marche, et des modifications manuelles seront potentiellement nécessaires. À n'utiliser que si vous savez ce que vous faites apply-xlua-patch = Apply xlua patch diff --git a/assets/locales/hu/general.ftl b/assets/locales/hu/general.ftl index e67fce4..7301bf8 100644 --- a/assets/locales/hu/general.ftl +++ b/assets/locales/hu/general.ftl @@ -53,9 +53,7 @@ patch-testing-tooltip = Teszt patch elérhető patch-not-applied-tooltip = A patch nincs alkalmazva apply-main-patch = Fő patch alkalmazása -apply-main-patch-description = - Kísérleti opció, a kikapcsolásával futtathatod a játékot patch nélkül. - Lehet hogy nem fog működni, vagy a fájlokat manuálisan kell szerkesztened, akkor kapcsold ki ha tudod mit csinálsz. +apply-main-patch-description = Kísérleti opció, a kikapcsolásával futtathatod a játékot patch nélkül. Lehet hogy nem fog működni, vagy a fájlokat manuálisan kell szerkesztened, akkor kapcsold ki ha tudod mit csinálsz. apply-xlua-patch = Xlua patch alkalmazása diff --git a/assets/locales/id/general.ftl b/assets/locales/id/general.ftl index 60d121f..cf8d578 100644 --- a/assets/locales/id/general.ftl +++ b/assets/locales/id/general.ftl @@ -53,9 +53,7 @@ patch-testing-tooltip = Patch tes tersedia patch-not-applied-tooltip = Patch tidak diterapkan apply-main-patch = Terapkan patch utama -apply-main-patch-description = - Eksperimental. Menonaktifkan opsi ini akan menginzinkan Anda menjalankan game tanpa menerapkan patch. - Hal ini mungkin tidak bekerja, atau membutuhkan modifikasi file secara manual. Gunakan jika Anda tahu apa yang Anda lakukan +apply-main-patch-description = Eksperimental. Menonaktifkan opsi ini akan menginzinkan Anda menjalankan game tanpa menerapkan patch. Hal ini mungkin tidak bekerja, atau membutuhkan modifikasi file secara manual. Gunakan jika Anda tahu apa yang Anda lakukan apply-xlua-patch = Terapkan patch xlua diff --git a/assets/locales/it/general.ftl b/assets/locales/it/general.ftl index 636783e..ba9ac77 100644 --- a/assets/locales/it/general.ftl +++ b/assets/locales/it/general.ftl @@ -53,9 +53,7 @@ patch-testing-tooltip = La patch di test è disponibile patch-not-applied-tooltip = La patch non è applicata apply-main-patch = Applica la patch principale -apply-main-patch-description = - Sperimentale. Disabilitandola ti permette di eseguite il gioco senza applicare la patch. - Ciò potrebbe non funzionare o richiedere modifiche manuali ai file. Usala se sai cosa stai facendo +apply-main-patch-description = Sperimentale. Disabilitandola ti permette di eseguite il gioco senza applicare la patch. Ciò potrebbe non funzionare o richiedere modifiche manuali ai file. Usala se sai cosa stai facendo apply-xlua-patch = Applica la patch xlua diff --git a/assets/locales/ja/general.ftl b/assets/locales/ja/general.ftl index 7968cd6..c937d09 100644 --- a/assets/locales/ja/general.ftl +++ b/assets/locales/ja/general.ftl @@ -53,9 +53,7 @@ patch-testing-tooltip = テストパッチがあります patch-not-applied-tooltip = パッチが適用されませんでした。 apply-main-patch = メインパッチを適用 -apply-main-patch-description = - 実験的です。これを無効にするとパッチ無しでゲームを起動することができます。 - これが機能しない場合、手動でパッチを適用する必要があります。これが何を意味するのかを理解できない人は無効にするべきではないでしょう。 +apply-main-patch-description = 実験的です。これを無効にするとパッチ無しでゲームを起動することができます。これが機能しない場合、手動でパッチを適用する必要があります。これが何を意味するのかを理解できない人は無効にするべきではないでしょう。 apply-xlua-patch = xluaパッチを適用する diff --git a/assets/locales/ru/general.ftl b/assets/locales/ru/general.ftl index fe2ee04..ef7f6ed 100644 --- a/assets/locales/ru/general.ftl +++ b/assets/locales/ru/general.ftl @@ -53,9 +53,7 @@ patch-testing-tooltip = Доступна тестовая версия патч patch-not-applied-tooltip = Патч не применен apply-main-patch = Применять основной патч -apply-main-patch-description = - Экспериментально. Отключение опции позволяет запускать игру без применения патча. - Это может не работать или требовать ручного изменения файлов. Используйте если знаете что делаете +apply-main-patch-description = Экспериментально. Отключение опции позволяет запускать игру без применения патча. Это может не работать или требовать ручного изменения файлов. Используйте если знаете что делаете apply-xlua-patch = Применять патч xlua diff --git a/assets/locales/tr/general.ftl b/assets/locales/tr/general.ftl index 06bed03..3ef302c 100644 --- a/assets/locales/tr/general.ftl +++ b/assets/locales/tr/general.ftl @@ -53,9 +53,7 @@ patch-testing-tooltip = Test yaması mevcut patch-not-applied-tooltip = Yama uygulanmamış apply-main-patch = Ana yamayı uygula -apply-main-patch-description = - Deneysel. Bunu devre dışı bırakmak yamayı uygulamadan oyunu çalıştırmanızı sağlar. - Bu çalışmayabilir, ya da elle dosyaları değiştirmeyi gerektirebilir. Ne yaptığınızı biliyorsanız kullanın. +apply-main-patch-description = Deneysel. Bunu devre dışı bırakmak yamayı uygulamadan oyunu çalıştırmanızı sağlar. Bu çalışmayabilir, ya da elle dosyaları değiştirmeyi gerektirebilir. Ne yaptığınızı biliyorsanız kullanın. apply-xlua-patch = Xlua yamasını uygula diff --git a/assets/locales/zh-cn/general.ftl b/assets/locales/zh-cn/general.ftl index d18f52b..e162ced 100644 --- a/assets/locales/zh-cn/general.ftl +++ b/assets/locales/zh-cn/general.ftl @@ -53,9 +53,7 @@ patch-testing-tooltip = 有测试版补丁可用 patch-not-applied-tooltip = 补丁未应用 apply-main-patch = Apply main patch -apply-main-patch-description = - Experimental. Disabling this allows you to run the game without applying the patch. - This may not work, or require manual files modifications. Use if you know what you're doing +apply-main-patch-description = Experimental. Disabling this allows you to run the game without applying the patch. This may not work, or require manual files modifications. Use if you know what you're doing apply-xlua-patch = 应用 xLua 补丁 From 996c7e14f966606425e320a34bc6c87e0d428160 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sat, 10 Jun 2023 13:48:06 +0200 Subject: [PATCH 29/35] feat(i18n): updated Japanese --- assets/locales/ja/enhancements.ftl | 2 +- assets/locales/ja/errors.ftl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/locales/ja/enhancements.ftl b/assets/locales/ja/enhancements.ftl index 459d4d2..d09bc4f 100644 --- a/assets/locales/ja/enhancements.ftl +++ b/assets/locales/ja/enhancements.ftl @@ -32,7 +32,7 @@ gamescope-description = これは、Xwaylandセッションでインスタンス discord-rpc = Discord RPC discord-rpc-description = これを有効にすると、現在あなたがゲームをプレイしているということをディスコードのフレンドに知らせることができます。 -icon = Icon +icon = Discord RPC用のアイコン title = タイトル description = 説明 diff --git a/assets/locales/ja/errors.ftl b/assets/locales/ja/errors.ftl index 20ee003..515213b 100644 --- a/assets/locales/ja/errors.ftl +++ b/assets/locales/ja/errors.ftl @@ -56,5 +56,5 @@ game-session-apply-failed = ゲームセッションの適用に失敗しまし # Enhancements -discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons -discord-rpc-icon-download-failed = Failed to download Discord RPC icon +discord-rpc-icons-fetch-failed = Discord RPCのアイコンのフェチに失敗しました。 +discord-rpc-icon-download-failed = Discord RPCのアイコンのダウンロードに失敗しました。 From 4e113d7d4587923c53e2781e5834032a4f98310a Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sun, 11 Jun 2023 10:45:11 +0200 Subject: [PATCH 30/35] feat(i18n): updated Turkish --- assets/locales/tr/enhancements.ftl | 2 +- assets/locales/tr/errors.ftl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/locales/tr/enhancements.ftl b/assets/locales/tr/enhancements.ftl index eeaf0c8..2b7604a 100644 --- a/assets/locales/tr/enhancements.ftl +++ b/assets/locales/tr/enhancements.ftl @@ -33,7 +33,7 @@ gamescope-description = Gamescope, oyunları izole edilmiş bir Xwayland içinde discord-rpc = Discord RPC discord-rpc-description = Discord RPC, Discord'a şu anda oyun oynadığınızı bildirmenizi sağlar. Bu sayede arkadaşlarınıza şu anda oyun oynadığınızı gösterebilirsiniz -icon = Icon +icon = İkon title = Başlık description = Açıklama diff --git a/assets/locales/tr/errors.ftl b/assets/locales/tr/errors.ftl index 0092321..fd28543 100644 --- a/assets/locales/tr/errors.ftl +++ b/assets/locales/tr/errors.ftl @@ -56,5 +56,5 @@ game-session-apply-failed = Oyun oturumu uygulanamadı # Enhancements -discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons -discord-rpc-icon-download-failed = Failed to download Discord RPC icon +discord-rpc-icons-fetch-failed = Discord RPC ikonları alınamadı +discord-rpc-icon-download-failed = Discord RPC ikonları indirilemedi From a97a9bc10cfb0e7c37ff0e763626c9ec9aee62d5 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sun, 11 Jun 2023 10:46:21 +0200 Subject: [PATCH 31/35] feat(i18n): updated Indonesian --- assets/locales/id/enhancements.ftl | 2 +- assets/locales/id/errors.ftl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/locales/id/enhancements.ftl b/assets/locales/id/enhancements.ftl index 7e6b3a8..4165c0b 100644 --- a/assets/locales/id/enhancements.ftl +++ b/assets/locales/id/enhancements.ftl @@ -33,7 +33,7 @@ gamescope-description = Gamescope adalah alat dari Valve yang memungkinkan game discord-rpc = Discord RPC discord-rpc-description = Discord RPC memungkinkan Anda untuk memberitahu discord informasi bahwa Anda sedang bermain game agar teman-teman Anda tahu -icon = Icon +icon = Icon untuk Discord RPC title = Judul description = Deskripsi diff --git a/assets/locales/id/errors.ftl b/assets/locales/id/errors.ftl index 16e3083..4579fb8 100644 --- a/assets/locales/id/errors.ftl +++ b/assets/locales/id/errors.ftl @@ -56,5 +56,5 @@ game-session-apply-failed = Gagal menerapkan sesi game # Enhancements -discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons -discord-rpc-icon-download-failed = Failed to download Discord RPC icon +discord-rpc-icons-fetch-failed = Gagal mendapatkan icon untuk Discord RPC +discord-rpc-icon-download-failed = Gagal mengunduh icon untuk Discord RPC From 51adde73505449623c4765b2f734a8b9522cba91 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sun, 11 Jun 2023 10:47:03 +0200 Subject: [PATCH 32/35] feat(i18n): updated French --- assets/locales/fr/enhancements.ftl | 2 +- assets/locales/fr/errors.ftl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/locales/fr/enhancements.ftl b/assets/locales/fr/enhancements.ftl index 5617f0c..3754582 100644 --- a/assets/locales/fr/enhancements.ftl +++ b/assets/locales/fr/enhancements.ftl @@ -33,7 +33,7 @@ gamescope-description = Gamescope est un outil fait par Valve qui permet aux jeu discord-rpc = Activité Discord discord-rpc-description = Permet à Discord d'afficher à vos amis des informations sur le jeu auquel vous jouez actuellement -icon = Icon +icon = Icône title = Titre description = Description diff --git a/assets/locales/fr/errors.ftl b/assets/locales/fr/errors.ftl index d766ac3..ae038a6 100644 --- a/assets/locales/fr/errors.ftl +++ b/assets/locales/fr/errors.ftl @@ -56,5 +56,5 @@ game-session-apply-failed = Imposible d'appliquer la session de jeu # Enhancements -discord-rpc-icons-fetch-failed = Failed to fetch Discord RPC icons -discord-rpc-icon-download-failed = Failed to download Discord RPC icon +discord-rpc-icons-fetch-failed = Impossible de récupérer les icônes pour le RPC Discord +discord-rpc-icon-download-failed = Impossible de télécharger les icônes pour le RPC Discord From 03b8b1ff7e9cf35451cfae0e4f207a3ca930c722 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sun, 11 Jun 2023 10:57:55 +0200 Subject: [PATCH 33/35] feat(core): updated SDK version --- Cargo.lock | 12 ++++++------ Cargo.toml | 4 ++-- src/ui/preferences/main.rs | 1 + 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4b6e8e4..ac453b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -48,8 +48,8 @@ dependencies = [ [[package]] name = "anime-game-core" -version = "1.11.7" -source = "git+https://github.com/an-anime-team/anime-game-core?tag=1.11.7#1810212e70497359f4ae881d307ab9e5012eff97" +version = "1.12.1" +source = "git+https://github.com/an-anime-team/anime-game-core?tag=1.12.1#af3b58e1657a19d0c8069956f3c2ac610704fc46" dependencies = [ "anyhow", "bzip2", @@ -96,8 +96,8 @@ dependencies = [ [[package]] name = "anime-launcher-sdk" -version = "1.6.5" -source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.6.5#4cc34287242d6145c0118085610090160776cfc9" +version = "1.7.2" +source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.7.2#14882b44e6f70cff763c5f3750e079fccd73670b" dependencies = [ "anime-game-core", "anyhow", @@ -1579,9 +1579,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libadwaita" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0244f4b13d8c3a8a0f0b86bbc234e2fbba7cfe70b7d14f822e363e5599bb7056" +checksum = "1ab9c0843f9f23ff25634df2743690c3a1faffe0a190e60c490878517eb81abf" dependencies = [ "bitflags", "gdk-pixbuf", diff --git a/Cargo.toml b/Cargo.toml index 994e56f..9578c74 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,8 +17,8 @@ glib-build-tools = "0.17" [dependencies.anime-launcher-sdk] git = "https://github.com/an-anime-team/anime-launcher-sdk" -tag = "1.6.5" -features = ["all", "genshin"] +tag = "1.7.2" +features = ["all", "genshin", "genshin-patch"] # path = "../anime-launcher-sdk" # ! for dev purposes only diff --git a/src/ui/preferences/main.rs b/src/ui/preferences/main.rs index 100ca77..9ce6499 100644 --- a/src/ui/preferences/main.rs +++ b/src/ui/preferences/main.rs @@ -4,6 +4,7 @@ use relm4::component::*; use gtk::prelude::*; use adw::prelude::*; +use anime_launcher_sdk::anime_game_core::prelude::*; use anime_launcher_sdk::anime_game_core::genshin::prelude::*; use anime_launcher_sdk::config::ConfigExt; From 83ed703ad5113769b99f16f1ffb56a8789b4e211 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sun, 11 Jun 2023 10:58:18 +0200 Subject: [PATCH 34/35] style: reordered some imports --- src/ui/first_run/default_paths.rs | 7 ++++--- src/ui/first_run/dependencies.rs | 1 + src/ui/first_run/download_components.rs | 1 + src/ui/first_run/finish.rs | 1 + src/ui/first_run/select_voiceovers.rs | 1 + src/ui/first_run/tos_warning.rs | 1 + src/ui/first_run/welcome.rs | 1 + src/ui/main/apply_patch.rs | 1 + src/ui/main/create_prefix.rs | 1 + src/ui/main/download_wine.rs | 1 + src/ui/main/launch.rs | 1 + src/ui/main/migrate_folder.rs | 5 +++-- src/ui/main/repair_game.rs | 5 +++-- 13 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/ui/first_run/default_paths.rs b/src/ui/first_run/default_paths.rs index dc5731f..ae3e8c1 100644 --- a/src/ui/first_run/default_paths.rs +++ b/src/ui/first_run/default_paths.rs @@ -1,15 +1,16 @@ +use std::path::PathBuf; + use relm4::prelude::*; use relm4::component::*; use adw::prelude::*; -use std::path::PathBuf; - use crate::*; use crate::i18n::*; -use super::main::*; use crate::ui::components::progress_bar::*; +use super::main::*; + pub struct DefaultPathsApp { progress_bar: AsyncController, diff --git a/src/ui/first_run/dependencies.rs b/src/ui/first_run/dependencies.rs index 8f64341..63419b5 100644 --- a/src/ui/first_run/dependencies.rs +++ b/src/ui/first_run/dependencies.rs @@ -6,6 +6,7 @@ use adw::prelude::*; use anime_launcher_sdk::is_available; use crate::i18n::*; + use super::main::FirstRunAppMsg; pub struct DependenciesApp { diff --git a/src/ui/first_run/download_components.rs b/src/ui/first_run/download_components.rs index ee70fdb..1e8c64a 100644 --- a/src/ui/first_run/download_components.rs +++ b/src/ui/first_run/download_components.rs @@ -15,6 +15,7 @@ use anime_launcher_sdk::config::ConfigExt; use anime_launcher_sdk::genshin::config::Config; use super::main::FirstRunAppMsg; + use crate::ui::components::*; use crate::i18n::*; use crate::*; diff --git a/src/ui/first_run/finish.rs b/src/ui/first_run/finish.rs index 96662e4..b59cee6 100644 --- a/src/ui/first_run/finish.rs +++ b/src/ui/first_run/finish.rs @@ -4,6 +4,7 @@ use relm4::component::*; use adw::prelude::*; use crate::i18n::*; + use super::main::*; pub struct FinishApp; diff --git a/src/ui/first_run/select_voiceovers.rs b/src/ui/first_run/select_voiceovers.rs index 397e90a..53a5a5c 100644 --- a/src/ui/first_run/select_voiceovers.rs +++ b/src/ui/first_run/select_voiceovers.rs @@ -7,6 +7,7 @@ use anime_launcher_sdk::config::ConfigExt; use anime_launcher_sdk::genshin::config::Config; use crate::i18n::*; + use super::main::*; pub struct SelectVoiceoversApp { diff --git a/src/ui/first_run/tos_warning.rs b/src/ui/first_run/tos_warning.rs index 364632b..e9fe030 100644 --- a/src/ui/first_run/tos_warning.rs +++ b/src/ui/first_run/tos_warning.rs @@ -6,6 +6,7 @@ use adw::prelude::*; use anime_launcher_sdk::is_available; use crate::i18n::*; + use super::main::FirstRunAppMsg; use super::main::MAIN_WINDOW; diff --git a/src/ui/first_run/welcome.rs b/src/ui/first_run/welcome.rs index abbba8b..9feb986 100644 --- a/src/ui/first_run/welcome.rs +++ b/src/ui/first_run/welcome.rs @@ -4,6 +4,7 @@ use relm4::component::*; use adw::prelude::*; use crate::i18n::*; + use super::main::FirstRunAppMsg; pub struct WelcomeApp; diff --git a/src/ui/main/apply_patch.rs b/src/ui/main/apply_patch.rs index 0a5a9da..17515aa 100644 --- a/src/ui/main/apply_patch.rs +++ b/src/ui/main/apply_patch.rs @@ -2,6 +2,7 @@ use relm4::prelude::*; use crate::*; use crate::i18n::*; + use super::{App, AppMsg}; pub fn apply_patch(sender: ComponentSender, patch: T) { diff --git a/src/ui/main/create_prefix.rs b/src/ui/main/create_prefix.rs index ebe3d3a..20773a0 100644 --- a/src/ui/main/create_prefix.rs +++ b/src/ui/main/create_prefix.rs @@ -6,6 +6,7 @@ use anime_launcher_sdk::config::ConfigExt; use anime_launcher_sdk::genshin::config::Config; use crate::i18n::*; + use super::{App, AppMsg}; pub fn create_prefix(sender: ComponentSender) { diff --git a/src/ui/main/download_wine.rs b/src/ui/main/download_wine.rs index c70308f..a7acda8 100644 --- a/src/ui/main/download_wine.rs +++ b/src/ui/main/download_wine.rs @@ -10,6 +10,7 @@ use anime_launcher_sdk::components::wine; use crate::*; use crate::i18n::*; use crate::ui::components::*; + use super::{App, AppMsg}; pub fn download_wine(sender: ComponentSender, progress_bar_input: Sender) { diff --git a/src/ui/main/launch.rs b/src/ui/main/launch.rs index 481bead..9db2c6e 100644 --- a/src/ui/main/launch.rs +++ b/src/ui/main/launch.rs @@ -1,6 +1,7 @@ use relm4::prelude::*; use crate::i18n::*; + use super::{App, AppMsg}; pub fn launch(sender: ComponentSender) { diff --git a/src/ui/main/migrate_folder.rs b/src/ui/main/migrate_folder.rs index 74d6b61..97616c7 100644 --- a/src/ui/main/migrate_folder.rs +++ b/src/ui/main/migrate_folder.rs @@ -1,8 +1,9 @@ -use relm4::prelude::*; - use std::path::PathBuf; +use relm4::prelude::*; + use crate::*; + use super::{App, AppMsg}; pub fn migrate_folder(sender: ComponentSender, from: PathBuf, to: PathBuf, cleanup_folder: Option) { diff --git a/src/ui/main/repair_game.rs b/src/ui/main/repair_game.rs index 1b4b7cc..ce33d17 100644 --- a/src/ui/main/repair_game.rs +++ b/src/ui/main/repair_game.rs @@ -1,3 +1,5 @@ +use std::path::Path; + use relm4::{ prelude::*, Sender @@ -5,11 +7,10 @@ use relm4::{ use gtk::glib::clone; -use std::path::Path; - use crate::*; use crate::i18n::*; use crate::ui::components::*; + use super::{App, AppMsg}; #[allow(unused_must_use)] From 9685493742a8ccb6a55b10600f55f28612bb772d Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sun, 11 Jun 2023 12:34:05 +0200 Subject: [PATCH 35/35] build: updated `Cargo.lock` --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ac453b6..73c43a9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1596,9 +1596,9 @@ dependencies = [ [[package]] name = "libadwaita-sys" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf83ec83c0fc9449b139c721e6f9958137dd7a1d7d47136e4eec929e3bd5265" +checksum = "4231cb2499a9f0c4cdfa4885414b33e39901ddcac61150bc0bb4ff8a57ede404" dependencies = [ "gdk4-sys", "gio-sys", @@ -1634,9 +1634,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.18" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de" +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" dependencies = [ "value-bag", ]