mirror of
https://github.com/an-anime-team/sleepy-launcher.git
synced 2024-11-25 14:20:08 +03:00
commit
7a281c3f8c
86 changed files with 1596 additions and 537 deletions
28
CHANGELOG.md
28
CHANGELOG.md
|
@ -11,6 +11,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
|
||||
### Added
|
||||
|
||||
- Added Discord RPC icon selection
|
||||
- Added Japanese
|
||||
- Added Hungarian
|
||||
|
||||
### 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
|
||||
|
||||
- Added Italian
|
||||
- Added Indonesian
|
||||
- Added dynamic main button icon switching
|
||||
|
|
306
Cargo.lock
generated
306
Cargo.lock
generated
|
@ -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.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.4.5"
|
||||
source = "git+https://github.com/an-anime-team/anime-launcher-sdk?tag=1.4.5#af03ab65d4350b35711d9ce118702844f79daf9e"
|
||||
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",
|
||||
|
@ -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",
|
||||
|
@ -1597,12 +1579,11 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
|||
|
||||
[[package]]
|
||||
name = "libadwaita"
|
||||
version = "0.3.1"
|
||||
version = "0.4.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b1c4efd2020a4fcedbad2c4a97de97bf6045e5dc49d61d5a5d0cfd753db60700"
|
||||
checksum = "1ab9c0843f9f23ff25634df2743690c3a1faffe0a190e60c490878517eb81abf"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"futures-channel",
|
||||
"gdk-pixbuf",
|
||||
"gdk4",
|
||||
"gio",
|
||||
|
@ -1610,15 +1591,14 @@ dependencies = [
|
|||
"gtk4",
|
||||
"libadwaita-sys",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"pango",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libadwaita-sys"
|
||||
version = "0.3.0"
|
||||
version = "0.4.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0727b85b4fe2b1bed5ac90df6343de15cbf8118bfb96d7c3cc1512681a4b34ac"
|
||||
checksum = "4231cb2499a9f0c4cdfa4885414b33e39901ddcac61150bc0bb4ff8a57ede404"
|
||||
dependencies = [
|
||||
"gdk4-sys",
|
||||
"gio-sys",
|
||||
|
@ -1632,9 +1612,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 +1624,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 +1634,10 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "log"
|
||||
version = "0.4.17"
|
||||
version = "0.4.19"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
|
||||
checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"value-bag",
|
||||
]
|
||||
|
||||
|
@ -1725,6 +1704,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 +1860,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 +1907,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 +1921,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 +1937,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 +1991,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 +2012,7 @@ checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.16",
|
||||
"syn 2.0.18",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2092,18 +2103,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 +2197,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",
|
||||
]
|
||||
|
@ -2203,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",
|
||||
|
@ -2221,13 +2232,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 +2346,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 +2426,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 +2463,7 @@ checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.16",
|
||||
"syn 2.0.18",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2598,9 +2609,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 +2620,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 +2665,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 +2694,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.16",
|
||||
"syn 2.0.18",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2697,9 +2709,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 +2749,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 +2769,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.16",
|
||||
"syn 2.0.18",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2813,7 +2826,7 @@ checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.16",
|
||||
"syn 2.0.18",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2948,9 +2961,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 +2994,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 +3053,7 @@ dependencies = [
|
|||
"once_cell",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.16",
|
||||
"syn 2.0.18",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
|
@ -3078,7 +3087,7 @@ checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.16",
|
||||
"syn 2.0.18",
|
||||
"wasm-bindgen-backend",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
@ -3157,9 +3166,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 +3198,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"
|
||||
|
|
10
Cargo.toml
10
Cargo.toml
|
@ -17,15 +17,15 @@ glib-build-tools = "0.17"
|
|||
|
||||
[dependencies.anime-launcher-sdk]
|
||||
git = "https://github.com/an-anime-team/anime-launcher-sdk"
|
||||
tag = "1.4.5"
|
||||
features = ["all", "genshin"]
|
||||
tag = "1.7.2"
|
||||
features = ["all", "genshin", "genshin-patch"]
|
||||
|
||||
# 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"
|
||||
|
@ -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"
|
||||
|
|
|
@ -23,3 +23,5 @@ tr-tr = Türkçe
|
|||
it-it = Italiano
|
||||
id-id = Indonesia
|
||||
zh-cn = 简体中文
|
||||
ja-jp = 日本語
|
||||
hu-hu = Magyar
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,11 @@ 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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -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 = Discord-RPC-Symbole konnten nicht abgerufen werden
|
||||
discord-rpc-icon-download-failed = Discord RPC-Symbol konnte nicht heruntergeladen werden
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -53,16 +53,14 @@ 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 es 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
|
||||
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = Icône
|
||||
title = Titre
|
||||
description = Description
|
||||
|
||||
|
|
|
@ -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 = 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
|
||||
|
|
|
@ -52,10 +52,8 @@ 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-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 = 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-xlua-patch = Apply xlua patch
|
||||
|
||||
|
|
20
assets/locales/hu/components.ftl
Normal file
20
assets/locales/hu/components.ftl
Normal file
|
@ -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
|
63
assets/locales/hu/enhancements.ftl
Normal file
63
assets/locales/hu/enhancements.ftl
Normal file
|
@ -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
|
7
assets/locales/hu/environment.ftl
Normal file
7
assets/locales/hu/environment.ftl
Normal file
|
@ -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
|
60
assets/locales/hu/errors.ftl
Normal file
60
assets/locales/hu/errors.ftl
Normal file
|
@ -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
|
65
assets/locales/hu/first_run.ftl
Normal file
65
assets/locales/hu/first_run.ftl
Normal file
|
@ -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!
|
7
assets/locales/hu/game.ftl
Normal file
7
assets/locales/hu/game.ftl
Normal file
|
@ -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
|
13
assets/locales/hu/gamescope.ftl
Normal file
13
assets/locales/hu/gamescope.ftl
Normal file
|
@ -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
|
69
assets/locales/hu/general.ftl
Normal file
69
assets/locales/hu/general.ftl
Normal file
|
@ -0,0 +1,69 @@
|
|||
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
|
70
assets/locales/hu/main.ftl
Normal file
70
assets/locales/hu/main.ftl
Normal file
|
@ -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
|
28
assets/locales/hu/sandbox.ftl
Normal file
28
assets/locales/hu/sandbox.ftl
Normal file
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
@ -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 untuk Discord RPC
|
||||
title = Judul
|
||||
description = Deskripsi
|
||||
|
||||
|
|
|
@ -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 = Gagal mendapatkan icon untuk Discord RPC
|
||||
discord-rpc-icon-download-failed = Gagal mengunduh icon untuk Discord RPC
|
||||
|
|
|
@ -52,10 +52,8 @@ 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-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 = 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-xlua-patch = Terapkan patch xlua
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ custom = Kustom
|
|||
none = Kosong
|
||||
default = Standar
|
||||
details = Detail
|
||||
options = Options
|
||||
options = Opsi
|
||||
|
||||
width = Lebar
|
||||
height = Tinggi
|
||||
|
|
|
@ -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 = Icona
|
||||
title = Titolo
|
||||
description = Descrizione
|
||||
|
||||
|
|
|
@ -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 = Acquisizione della lista delle icone RPC di Discord non riuscita
|
||||
discord-rpc-icon-download-failed = Scaricamento dell'icona RPC di Discord non riuscito
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
19
assets/locales/ja/components.ftl
Normal file
19
assets/locales/ja/components.ftl
Normal file
|
@ -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 の推奨バージョンのみ表示する。
|
62
assets/locales/ja/enhancements.ftl
Normal file
62
assets/locales/ja/enhancements.ftl
Normal file
|
@ -0,0 +1,62 @@
|
|||
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 = これを有効にすると、現在あなたがゲームをプレイしているということをディスコードのフレンドに知らせることができます。
|
||||
icon = Discord RPC用のアイコン
|
||||
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 = 低い
|
7
assets/locales/ja/environment.ftl
Normal file
7
assets/locales/ja/environment.ftl
Normal file
|
@ -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 = 追加
|
60
assets/locales/ja/errors.ftl
Normal file
60
assets/locales/ja/errors.ftl
Normal file
|
@ -0,0 +1,60 @@
|
|||
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 = ゲームセッションの適用に失敗しました。
|
||||
|
||||
# Enhancements
|
||||
|
||||
discord-rpc-icons-fetch-failed = Discord RPCのアイコンのフェチに失敗しました。
|
||||
discord-rpc-icon-download-failed = Discord RPCのアイコンのダウンロードに失敗しました。
|
64
assets/locales/ja/first_run.ftl
Normal file
64
assets/locales/ja/first_run.ftl
Normal file
|
@ -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 = 基本的なコンポーネントのダウンロードが終了しました。ランチャーを再起動することで、ゲームのダウンロードを開始できます。私達のクラブへようこそ!
|
6
assets/locales/ja/game.ftl
Normal file
6
assets/locales/ja/game.ftl
Normal file
|
@ -0,0 +1,6 @@
|
|||
game-sessions = ゲームセッション
|
||||
|
||||
active-sessions = 有効なセッション
|
||||
active-session-description = 現在選択されているセッション。次回のゲーム起動時から有効になります
|
||||
update-session = 現在のWineプレフィックスレジストリ値を使用してセッションを更新します
|
||||
delete-session = セッションを消去する
|
13
assets/locales/ja/gamescope.ftl
Normal file
13
assets/locales/ja/gamescope.ftl
Normal file
|
@ -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
|
69
assets/locales/ja/general.ftl
Normal file
69
assets/locales/ja/general.ftl
Normal file
|
@ -0,0 +1,69 @@
|
|||
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 = デバッガー
|
70
assets/locales/ja/main.ftl
Normal file
70
assets/locales/ja/main.ftl
Normal file
|
@ -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 = 上級者向け
|
28
assets/locales/ja/sandbox.ftl
Normal file
28
assets/locales/ja/sandbox.ftl
Normal file
|
@ -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 = サンドボックス内の元のパスを新しいパスにシンボリックリンクします。
|
|
@ -33,6 +33,7 @@ gamescope-description = Программа от Valve, позволяющая з
|
|||
|
||||
discord-rpc = Discord RPC
|
||||
discord-rpc-description = Discord RPC позволяет вам предоставлять Discord информацию об игре, в которую вы сейчас играете
|
||||
icon = Иконка
|
||||
title = Заголовок
|
||||
description = Описание
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 = İkon
|
||||
title = Başlık
|
||||
description = Açıklama
|
||||
|
||||
|
|
|
@ -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 = Discord RPC ikonları alınamadı
|
||||
discord-rpc-icon-download-failed = Discord RPC ikonları indirilemedi
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ gamescope-description = Gamescope 是 Valve 开发的工具,可以让游戏运
|
|||
|
||||
discord-rpc = Discord RPC
|
||||
discord-rpc-description = Discord RPC 可以设置 Discord 状态,让你的好友知道你正在玩游戏
|
||||
icon = Icon
|
||||
title = 标题
|
||||
description = 描述
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 补丁
|
||||
|
||||
|
|
15
src/i18n.rs
15
src/i18n.rs
|
@ -20,6 +20,8 @@ pub const SUPPORTED_LANGUAGES: &[LanguageIdentifier] = &[
|
|||
langid!("it-it"),
|
||||
langid!("id-id"),
|
||||
langid!("zh-cn"),
|
||||
langid!("ja-jp"),
|
||||
langid!("hu-hu")
|
||||
];
|
||||
|
||||
static mut LANG: LanguageIdentifier = langid!("en-us");
|
||||
|
@ -51,12 +53,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 {
|
||||
|
|
10
src/main.rs
10
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
|
||||
///
|
||||
|
@ -72,6 +75,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());
|
||||
|
|
|
@ -46,16 +46,31 @@ impl SimpleComponent for AboutDialog {
|
|||
"Nikita Podvirnyy https://github.com/krypt0nn"
|
||||
],
|
||||
|
||||
add_credit_section: (Some("Patch developer"), &[
|
||||
"@Krock https://notabug.org/Krock/dawn"
|
||||
// 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",
|
||||
"@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",
|
||||
"@mkrsym1 https://github.com/mkrsym1"
|
||||
]),
|
||||
|
||||
|
@ -65,14 +80,16 @@ 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",
|
||||
"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",
|
||||
"简体中文 — Caibin Chen https://github.com/tigersoldier"
|
||||
"Italiano — @QuazarOmega https://github.com/quazar-omega",
|
||||
"Indonesia — @yumekarisu https://github.com/yumekarisu",
|
||||
"简体中文 — Caibin Chen https://github.com/tigersoldier",
|
||||
"日本語 — @zozonteq https://github.com/zozonteq",
|
||||
// Hungarian?
|
||||
].join("\n"),
|
||||
|
||||
set_debug_info: &[
|
||||
|
@ -90,45 +107,35 @@ impl SimpleComponent for AboutDialog {
|
|||
"<p>Added</p>",
|
||||
|
||||
"<ul>",
|
||||
"<li>Added Italian</li>",
|
||||
"<li>Added Indonesian</li>",
|
||||
"<li>Added dynamic main button icon switching</li>",
|
||||
"<li>Set button label as \"Resume\" when the diff is part downloaded</li>",
|
||||
"<li>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</li>",
|
||||
"<li>Added setting of `LC_ALL` in wine lang setting</li>",
|
||||
"<li>Added `LAUNCHER_REQUESTS_TIMEOUT` environment variable</li>",
|
||||
"<li>Added option to disable main patch applying</li>",
|
||||
"<li>Added Discord RPC icon selection</li>",
|
||||
"<li>Added Japanese</li>",
|
||||
"<li>Added Hungarian</li>",
|
||||
"</ul>",
|
||||
|
||||
"<p>Fixed</p>",
|
||||
|
||||
"<ul>",
|
||||
"<li>Fixed session applying on each launcher start</li>",
|
||||
"<li>Fixed predownload button ui</li>",
|
||||
"<li>Fixed proton builds integration with sandbox</li>",
|
||||
"<li>Fixed compatibility between sessions manager and sandbox</li>",
|
||||
"<li>Fixed sandboxing of inexisting folders</li>",
|
||||
"<li>Fixed progress bar style after running game repairer</li>",
|
||||
"<li>Fixed repair button functionality</li>",
|
||||
"<li>Fixed default launcher language selection at the first start</li>",
|
||||
"<li>Fixed some installer updates reporting (including \"checking free space\")</li>",
|
||||
"</ul>",
|
||||
|
||||
"<p>Changed</p>",
|
||||
|
||||
"<ul>",
|
||||
"<li>Apply selected session before launching the game. This will properly save your game session when you switch between wine prefixes</li>",
|
||||
"<li>Redesigned main button</li>",
|
||||
"<li>Used `whatadistro` to identify recommended package manager in the first run window</li>",
|
||||
"<li>Moved a lot of settings to separate page</li>",
|
||||
"<li>Set fsr quality mode in enhancements settings instead of strength</li>",
|
||||
"<li>Updated fps unlocker data</li>",
|
||||
"<li>Made temporary workaround to the game API changes</li>",
|
||||
"<li>Increased default requests timeout to 8 seconds</li>",
|
||||
"<li>Updated minreq to support `http_proxy`-like variables</li>",
|
||||
"<li>Disabled xlua patch applying by default</li>",
|
||||
"<li>Reworked game sessions selection</li>",
|
||||
"<li>Updated Indonesian</li>",
|
||||
"<li>Updated French</li>",
|
||||
"<li>Made initial tasks async which has decreased startup time</li>",
|
||||
"<li>Updated fps unlocker to 2.1.1</li>",
|
||||
"</ul>",
|
||||
|
||||
"<p>Removed</p>",
|
||||
|
||||
"<ul>",
|
||||
"<li>Removed Futex2 wine sync option</li>",
|
||||
"<li>Removed 3.7.0 workaround</li>",
|
||||
"<li>Removed patch mirror migration</li>",
|
||||
"</ul>",
|
||||
].join("\n"),
|
||||
|
||||
|
|
|
@ -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<Self>) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,8 @@ use relm4::component::*;
|
|||
|
||||
use adw::prelude::*;
|
||||
|
||||
use super::ComponentGroupMsg;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct ComponentsListInit<T> {
|
||||
pub pattern: super::ComponentsListPattern,
|
||||
|
@ -18,7 +20,7 @@ pub struct ComponentsList<T> {
|
|||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum AppMsg {
|
||||
pub enum ComponentsListMsg {
|
||||
ShowRecommendedOnly(bool),
|
||||
CallOnDownloaded,
|
||||
CallOnDeleted
|
||||
|
@ -27,7 +29,7 @@ pub enum AppMsg {
|
|||
#[relm4::component(async, pub)]
|
||||
impl<T: std::fmt::Debug + Clone + 'static> SimpleAsyncComponent for ComponentsList<T> {
|
||||
type Init = ComponentsListInit<T>;
|
||||
type Input = AppMsg;
|
||||
type Input = ComponentsListMsg;
|
||||
type Output = T;
|
||||
|
||||
view! {
|
||||
|
@ -66,22 +68,22 @@ impl<T: std::fmt::Debug + Clone + 'static> SimpleAsyncComponent for ComponentsLi
|
|||
|
||||
async fn update(&mut self, msg: Self::Input, sender: AsyncComponentSender<Self>) {
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
@ -49,6 +49,7 @@ pub struct ComponentsListVersion {
|
|||
pub name: String,
|
||||
pub title: String,
|
||||
pub uri: String,
|
||||
pub format: Option<String>,
|
||||
pub recommended: bool
|
||||
}
|
||||
|
||||
|
@ -63,7 +64,8 @@ impl From<wine::Version> for ComponentsListVersion {
|
|||
|
||||
name: version.name,
|
||||
title: version.title,
|
||||
uri: version.uri
|
||||
uri: version.uri,
|
||||
format: version.format
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -79,7 +81,8 @@ impl From<dxvk::Version> for ComponentsListVersion {
|
|||
|
||||
name: version.name,
|
||||
title: version.title,
|
||||
uri: version.uri
|
||||
uri: version.uri,
|
||||
format: version.format
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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")),
|
||||
|
||||
|
|
|
@ -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)]
|
||||
|
@ -30,6 +31,7 @@ pub struct ComponentVersion {
|
|||
|
||||
pub download_uri: String,
|
||||
pub download_folder: PathBuf,
|
||||
pub download_filename: Option<String>,
|
||||
|
||||
pub show_recommended_only: bool,
|
||||
pub state: VersionState,
|
||||
|
@ -38,7 +40,7 @@ pub struct ComponentVersion {
|
|||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum AppMsg {
|
||||
pub enum ComponentVersionMsg {
|
||||
ShowRecommendedOnly(bool),
|
||||
PerformAction,
|
||||
SetState(VersionState)
|
||||
|
@ -47,8 +49,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 +74,7 @@ impl SimpleAsyncComponent for ComponentVersion {
|
|||
#[watch]
|
||||
set_visible: model.state != VersionState::Downloading,
|
||||
|
||||
connect_clicked => AppMsg::PerformAction
|
||||
connect_clicked => ComponentVersionMsg::PerformAction
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -83,12 +85,13 @@ impl SimpleAsyncComponent for ComponentVersion {
|
|||
_sender: AsyncComponentSender<Self>,
|
||||
) -> AsyncComponentParts<Self> {
|
||||
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,
|
||||
|
@ -122,9 +125,9 @@ impl SimpleAsyncComponent for ComponentVersion {
|
|||
|
||||
async fn update(&mut self, msg: Self::Input, sender: AsyncComponentSender<Self>) {
|
||||
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 +143,7 @@ impl SimpleAsyncComponent for ComponentVersion {
|
|||
self.state = VersionState::NotDownloaded;
|
||||
|
||||
#[allow(unused_must_use)] {
|
||||
sender.output(super::group::AppMsg::CallOnDeleted);
|
||||
sender.output(ComponentGroupMsg::CallOnDeleted);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -151,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();
|
||||
|
@ -168,12 +175,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 +197,7 @@ impl SimpleAsyncComponent for ComponentVersion {
|
|||
}
|
||||
}
|
||||
|
||||
AppMsg::SetState(state) => self.state = state
|
||||
ComponentVersionMsg::SetState(state) => self.state = state
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<ProgressBar>,
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ use adw::prelude::*;
|
|||
use anime_launcher_sdk::is_available;
|
||||
|
||||
use crate::i18n::*;
|
||||
|
||||
use super::main::FirstRunAppMsg;
|
||||
|
||||
pub struct DependenciesApp {
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
use std::path::PathBuf;
|
||||
|
||||
use relm4::prelude::*;
|
||||
use relm4::component::*;
|
||||
|
||||
|
@ -7,14 +9,13 @@ 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::*;
|
||||
use crate::*;
|
||||
|
@ -435,6 +436,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 +456,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 +579,7 @@ impl SimpleAsyncComponent for DownloadComponentsApp {
|
|||
..InstallParams::default()
|
||||
};
|
||||
|
||||
let WincompatlibWine::Default(wine) = wine else {
|
||||
let UnifiedWine::Default(wine) = wine else {
|
||||
sender.input(DownloadComponentsAppMsg::Continue);
|
||||
|
||||
return;
|
||||
|
|
|
@ -4,6 +4,7 @@ use relm4::component::*;
|
|||
use adw::prelude::*;
|
||||
|
||||
use crate::i18n::*;
|
||||
|
||||
use super::main::*;
|
||||
|
||||
pub struct FinishApp;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -4,6 +4,7 @@ use relm4::component::*;
|
|||
use adw::prelude::*;
|
||||
|
||||
use crate::i18n::*;
|
||||
|
||||
use super::main::FirstRunAppMsg;
|
||||
|
||||
pub struct WelcomeApp;
|
||||
|
|
|
@ -2,6 +2,7 @@ use relm4::prelude::*;
|
|||
|
||||
use crate::*;
|
||||
use crate::i18n::*;
|
||||
|
||||
use super::{App, AppMsg};
|
||||
|
||||
pub fn apply_patch<T: PatchExt + Send + Sync + 'static>(sender: ComponentSender<App>, patch: T) {
|
||||
|
|
|
@ -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<App>) {
|
||||
|
@ -22,7 +23,7 @@ pub fn create_prefix(sender: ComponentSender<App>) {
|
|||
.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 {
|
||||
|
|
|
@ -22,7 +22,7 @@ pub fn download_diff(sender: ComponentSender<App>, progress_bar_input: Sender<Pr
|
|||
diff = diff.with_temp_folder(temp);
|
||||
}
|
||||
|
||||
let result = diff.install_to(&game_path, clone!(@strong 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<App>, progress_bar_input: Sender<Pr
|
|||
perform_on_download_needed = false;
|
||||
}
|
||||
|
||||
// Temporary workaround for 3.7.0 game update
|
||||
let telemetry_file = game_path.join(config.launcher.edition.data_folder()).join("Plugins/Telemetry.dll");
|
||||
|
||||
if telemetry_file.exists() {
|
||||
std::fs::remove_file(telemetry_file).unwrap();
|
||||
}
|
||||
|
||||
sender.input(AppMsg::SetDownloading(false));
|
||||
sender.input(AppMsg::UpdateLauncherState {
|
||||
perform_on_download_needed,
|
||||
|
|
|
@ -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<App>, progress_bar_input: Sender<ProgressBarMsg>) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use relm4::prelude::*;
|
||||
|
||||
use crate::i18n::*;
|
||||
|
||||
use super::{App, AppMsg};
|
||||
|
||||
pub fn launch(sender: ComponentSender<App>) {
|
||||
|
|
|
@ -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<App>, from: PathBuf, to: PathBuf, cleanup_folder: Option<PathBuf>) {
|
||||
|
|
|
@ -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::<Vec<_>>()
|
||||
.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::<Vec<_>>()
|
||||
.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 {
|
||||
|
|
|
@ -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)]
|
||||
|
@ -105,11 +106,25 @@ pub fn repair_game(sender: ComponentSender<App>, progress_bar_input: Sender<Prog
|
|||
|
||||
let total = broken.len() as f64;
|
||||
|
||||
let player_patch = UnityPlayerPatch::from_folder(&config.patch.path, config.launcher.edition).unwrap()
|
||||
.is_applied(&game_path).unwrap();
|
||||
// Get main patch status
|
||||
|
||||
let xlua_patch = XluaPatch::from_folder(&config.patch.path, config.launcher.edition).unwrap()
|
||||
.is_applied(&game_path).unwrap();
|
||||
let player_patch = UnityPlayerPatch::from_folder(&config.patch.path, config.launcher.edition)
|
||||
.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))
|
||||
.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})");
|
||||
|
||||
|
@ -162,6 +177,8 @@ pub fn repair_game(sender: ComponentSender<App>, progress_bar_input: Sender<Prog
|
|||
|
||||
progress_bar_input.send(ProgressBarMsg::UpdateProgress(i as u64, total as u64));
|
||||
}
|
||||
|
||||
progress_bar_input.send(ProgressBarMsg::DisplayFraction(true));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,8 @@ use crate::*;
|
|||
#[derive(Debug)]
|
||||
struct GameSession {
|
||||
name: String,
|
||||
description: Option<String>
|
||||
description: Option<String>,
|
||||
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<GameSession>,
|
||||
|
||||
sessions_names: Vec<String>,
|
||||
|
||||
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::<Vec<String>>();
|
||||
|
||||
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::<Vec<&str>>())));
|
||||
self.sessions_combo.set_selected(selected);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>,
|
||||
) -> Self {
|
||||
init
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn forward_to_parent(output: Self::Output) -> Option<Self::ParentInput> {
|
||||
Some(output)
|
||||
}
|
||||
}
|
||||
|
||||
pub struct EnhancementsApp {
|
||||
discord_rpc_icons: AsyncFactoryVecDeque<DiscordRpcIcon>,
|
||||
discord_rpc_root_check_button: gtk::CheckButton,
|
||||
|
||||
gamescope: AsyncController<GamescopeApp>,
|
||||
game_page: AsyncController<GamePage>,
|
||||
sandbox_page: AsyncController<SandboxPage>,
|
||||
|
@ -34,6 +100,8 @@ pub struct EnhancementsApp {
|
|||
pub enum EnhancementsAppMsg {
|
||||
SetGamescopeParent(adw::PreferencesWindow),
|
||||
|
||||
SetDiscordRpcIcon(DynamicIndex),
|
||||
|
||||
OpenGamescope,
|
||||
OpenMainPage,
|
||||
OpenGameSettingsPage,
|
||||
|
@ -372,6 +440,11 @@ impl SimpleAsyncComponent for EnhancementsApp {
|
|||
}
|
||||
},
|
||||
|
||||
#[local_ref]
|
||||
discord_rpc_icons -> adw::ExpanderRow {
|
||||
set_title: &tr("icon")
|
||||
},
|
||||
|
||||
adw::EntryRow {
|
||||
set_title: &tr("title"),
|
||||
set_text: &CONFIG.launcher.discord_rpc.title,
|
||||
|
@ -573,7 +646,10 @@ impl SimpleAsyncComponent for EnhancementsApp {
|
|||
) -> AsyncComponentParts<Self> {
|
||||
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 +667,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: tr("discord-rpc-icon-download-failed"),
|
||||
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: tr("discord-rpc-icons-fetch-failed"),
|
||||
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 +733,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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue