Merge pull request #221 from an-anime-team/next

Release 3.7.5
This commit is contained in:
Observer KRypt0n_ 2023-07-14 08:42:26 +02:00 committed by GitHub
commit e7ddb3b62b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
33 changed files with 360 additions and 293 deletions

View file

@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
### Added
- Added support to the new wishes url cache location
### Fixed
- Fixed telemetry disabling
### Changed
- Updated Italian
- Updated Hungarian
- Updated Japanese
- Updated Indonesian
- Updated Spanish
- Updated Turkish
- Updated Chinese
- Disabled patch applying for new installations
## [3.7.4] (hotfix) - 19.06.2023
### Fixed

414
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -17,7 +17,7 @@ glib-build-tools = "0.17"
[dependencies.anime-launcher-sdk]
git = "https://github.com/an-anime-team/anime-launcher-sdk"
tag = "1.8.4"
tag = "1.8.5"
features = ["all", "genshin", "genshin-patch"]
# path = "../anime-launcher-sdk" # ! for dev purposes only

View file

@ -44,7 +44,7 @@ game-patching-error = Fallo al parchear el juego
# Disable telemetry
telemetry-servers-disabling-error = Failed to disable telemetry servers
telemetry-servers-disabling-error = Fallo al desactivar servidores de telemetría
# Sandbox

View file

@ -52,8 +52,8 @@ 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
disable-mhypbase = Disable mhypbase
disable-mhypbase-description = Experimental. If enabled, launcher will disable mhypbase.dll during the main patch applying, which is currently an equivalent to the xlua patch. Improves performance and reduces CPU usage
disable-mhypbase = Desactivar mhypbase
disable-mhypbase-description = Experimental. Si se activa, el launcher desactivará mhypbase.dll durante la aplicación del parche principal, lo que actualmente es equivalente a usar el parche xlua. Mejora la performance y reduce el uso de CPU
ask-superuser-permissions = Pedir permisos de superusuario
ask-superuser-permissions-description = El launcher usará los permisos para actualizar automáticamente tu archivo hosts. Esto no es necesario en la versión de Flatpak

View file

@ -55,7 +55,7 @@ launch = Iniciar
migrate-folders = Migrar carpetas
migrate-folders-tooltip = Actualizar estructura de carpetas del juego
apply-patch = Aplicar parche
disable-telemetry = Disable telemetry
disable-telemetry = Desactivar telemetría
download-wine = Descargar wine
create-prefix = Crear prefijo
update = Actualizar

View file

@ -44,7 +44,7 @@ game-patching-error = Sikertelen játék patchelés
# Disable telemetry
telemetry-servers-disabling-error = Failed to disable telemetry servers
telemetry-servers-disabling-error = Telemetria kikapcsolása sikertelen
# Sandbox

View file

@ -52,8 +52,8 @@ 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.
disable-mhypbase = Disable mhypbase
disable-mhypbase-description = Experimental. If enabled, launcher will disable mhypbase.dll during the main patch applying, which is currently an equivalent to the xlua patch. Improves performance and reduces CPU usage
disable-mhypbase = mhypbase kikapcsolása
disable-mhypbase-description = Tesztelés alatt. Ha bekapcsolod, kikapcsolja a mhypbase.dll-t a patch telepítésénél, ami az xlua patch-el ér fel. Jobb teljesítmény és kisebb CPU használat
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

View file

@ -55,7 +55,7 @@ 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
disable-telemetry = Disable telemetry
disable-telemetry = Telemetria kikapcsolása
download-wine = Wine letöltése
create-prefix = Prefix létrehozása
update = Frissítés

View file

@ -44,7 +44,7 @@ game-patching-error = Gagal melakukan patch pada game
# Disable telemetry
telemetry-servers-disabling-error = Failed to disable telemetry servers
telemetry-servers-disabling-error = Gagal menonaktifkan server telemetri
# Sandbox

View file

@ -52,8 +52,8 @@ patch-not-applied-tooltip = Patch tidak diterapkan
apply-main-patch = Terapkan patch utama
apply-main-patch-description = Eksperimental. Menonaktifkan opsi ini akan menginzinkan Anda menjalankan game tanpa menerapkan patch. Hal ini mungkin tidak bekerja, atau membutuhkan modifikasi file secara manual. Gunakan jika Anda tahu apa yang Anda lakukan
disable-mhypbase = Disable mhypbase
disable-mhypbase-description = Experimental. If enabled, launcher will disable mhypbase.dll during the main patch applying, which is currently an equivalent to the xlua patch. Improves performance and reduces CPU usage
disable-mhypbase = Nonaktifkan mhypbase
disable-mhypbase-description = Masih dalam pengujicobaan. Jika diaktifkan, launcher akan menonaktifkan mhypbase.dll ketika menerapkan patch utama, yang saat ini sama dengan patch xlua. Menaikkan performa dan mengurangi penggunaan CPU
ask-superuser-permissions = Minta izin dari admin
ask-superuser-permissions-description = Launcher akan otomatis memperbarui file hosts Anda. Opsi ini tidak diperlukan jika Anda memakai edisi flatpak

View file

@ -54,8 +54,8 @@ components-index-updated = Index komponen baru saja diperbarui
launch = Luncurkan
migrate-folders = Pindahkan folder
migrate-folders-tooltip = Perbarui struktur folder game
apply-patch = Terapkan patch
disable-telemetry = Disable telemetry
apply-patch = Terapkan patch
disable-telemetry = Nonaktifkan telemetri
download-wine = Unduh wine
create-prefix = Buat prefix
update = Perbarui

View file

@ -44,7 +44,7 @@ game-patching-error = Patching del gioco non riuscito
# Disable telemetry
telemetry-servers-disabling-error = Failed to disable telemetry servers
telemetry-servers-disabling-error = Disattivazione dei server di telemetria non riuscita
# Sandbox

View file

@ -52,8 +52,8 @@ 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
disable-mhypbase = Disable mhypbase
disable-mhypbase-description = Experimental. If enabled, launcher will disable mhypbase.dll during the main patch applying, which is currently an equivalent to the xlua patch. Improves performance and reduces CPU usage
disable-mhypbase = Disabilita mhypbase
disable-mhypbase-description = Sperimentale. Se abiliata, il launcher disabiliterà mhypbase.dll durante l'applicazione della patch principale, che attualmente equivalente ad applicare la patch xlua. Migliora le prestazioni e riduce l'utilizzo della CPU
ask-superuser-permissions = Chiedi permessi di amministratore
ask-superuser-permissions-description = Il launcher li userà per aggiornare automaticamente il tuo file hosts. Questo non è necessario nell'edizione flatpak

View file

@ -55,7 +55,7 @@ launch = Lancia
migrate-folders = Migra cartelle
migrate-folders-tooltip = Aggiorna la struttura delle cartelle del gioco
apply-patch = Applica patch
disable-telemetry = Disable telemetry
disable-telemetry = Disabilita telemetria
download-wine = Scarica wine
create-prefix = Crea prefisso
update = Aggiorna

View file

@ -44,7 +44,7 @@ game-patching-error = ゲームのパッチに失敗しました。
# Disable telemetry
telemetry-servers-disabling-error = Failed to disable telemetry servers
telemetry-servers-disabling-error = テレメトリサーバーの無効化に失敗しました。
# Sandbox

View file

@ -52,8 +52,8 @@ patch-not-applied-tooltip = パッチが適用されませんでした。
apply-main-patch = メインパッチを適用
apply-main-patch-description = 実験的です。これを無効にするとパッチ無しでゲームを起動することができます。これが機能しない場合、手動でパッチを適用する必要があります。これが何を意味するのかを理解できない人は無効にするべきではないでしょう。
disable-mhypbase = Disable mhypbase
disable-mhypbase-description = Experimental. If enabled, launcher will disable mhypbase.dll during the main patch applying, which is currently an equivalent to the xlua patch. Improves performance and reduces CPU usage
disable-mhypbase = mhypbase を無効にする
disable-mhypbase-description = 試験的です。有効にすると、ランチャーはメインパッチの適用中にmhypbase.dllを無効にします。これは現在xluaパッチと同様です。パフォーマンスを向上させ、CPUへの負担を軽減します。
ask-superuser-permissions = スーパーユーザーを尋ねる。
ask-superuser-permissions-description = あなたのホストのファイルを自動更新するために、 これらを利用します。flatpak版では必要ありません。

View file

@ -55,7 +55,7 @@ launch = 起動
migrate-folders = 移行ファイル
migrate-folders-tooltip = ゲームフォルダ構成を更新
apply-patch = パッチを適用する
disable-telemetry = Disable telemetry
disable-telemetry = テレメトリを無効にする
download-wine = ワインをダウンロード
create-prefix = プレフィックスを作成
update = 更新

View file

@ -44,7 +44,7 @@ game-patching-error = Yamayı uygulamada sorun çıktı
# Disable telemetry
telemetry-servers-disabling-error = Failed to disable telemetry servers
telemetry-servers-disabling-error = Bilgi toplama devre dışı bırakılamadı
# Sandbox

View file

@ -52,8 +52,8 @@ 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.
disable-mhypbase = Disable mhypbase
disable-mhypbase-description = Experimental. If enabled, launcher will disable mhypbase.dll during the main patch applying, which is currently an equivalent to the xlua patch. Improves performance and reduces CPU usage
disable-mhypbase = mhypbase'i devre dışı bırak
disable-mhypbase-description = Deneysel. Etkinleştirilirse, istemci ana yamayı uygularken mhypbase.dll'yi devre dışı bırakacaktır, bu xlua yamasına eşdeğerdir. Performansı arttırır ve işlemci kullanımını azaltır
ask-superuser-permissions = Yönetici izinlerini sor
ask-superuser-permissions-description = İstemci yönetici iznini hostunuzun dosyalarını güncellemek için otomatik olarak kullanacaktır. Buna flatpak versiyonunda gerek yoktur

View file

@ -55,7 +55,7 @@ launch = Çalıştır
migrate-folders = Dosyaları aktar
migrate-folders-tooltip = Oyun dosyaları yapısını güncelle
apply-patch = Yamayı uygula
disable-telemetry = Disable telemetry
disable-telemetry = Bilgi toplamayı devre dışı bırak
download-wine = Wine indir
create-prefix = Prefix oluştur
update = Güncelle

View file

@ -1,5 +1,5 @@
components = Components
components-description = Manage your Wine and DXVK versions
components = 组件
components-description = 管理 Wine 和 DXVK 版本
selected-version = 选择版本
recommended-only = 仅显示推荐版本
@ -7,13 +7,13 @@ recommended-only = 仅显示推荐版本
wine-version = Wine 版本
wine-recommended-description = 仅显示推荐的 Wine 版本
wine-options = Wine options
wine-options = 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 = 使用 Wine 共享库
wine-use-shared-libraries-description = 设置 LD_LIBRARY_PATH 环境变量,从选中的 Wine 版本加载系统库
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 = 使用 gstreamer 共享库
gstreamer-use-shared-libraries-description = 设置 GST_PLUGIN_PATH 环境变量,从选中的 Wine 版本加载 gstreamer 库
dxvk-version = DXVK 版本
dxvk-selection-disabled = 您的葡萄酒组首选项禁用 DXVK 选择

View file

@ -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 = 管理游戏内设置和帐号会话
sandbox-settings-description = 在 bubblewrap 沙盒中运行游戏,与 Flatpak 的行为类似
environment-settings-description = 指定环境变量和游戏启动命令
wine = Wine

View file

@ -44,21 +44,21 @@ game-patching-error = 应用游戏补丁失败
# Disable telemetry
telemetry-servers-disabling-error = Failed to disable telemetry servers
telemetry-servers-disabling-error = 禁用监测服务器
# Sandbox
documentation-url-open-failed = Failed to open documentation URL
documentation-url-open-failed = 打开文档 URL 失败
# Game
game-session-add-failed = Failed to add game session
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
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 = Failed to fetch Discord RPC icons
discord-rpc-icon-download-failed = Failed to download Discord RPC icon
discord-rpc-icons-fetch-failed = 获取 Discord RPC 图标失败
discord-rpc-icon-download-failed = 下载 Discord RPC 图标失败

View file

@ -23,11 +23,11 @@ tos-violation-warning-message =
如果你了解并接受通过非官方许可方式玩这款游戏所带来的风险,请单击“确定”。让我们一直抢过提瓦特大陆吧!
tos-dialog-title = Are you sure you understand what we want to say?
tos-dialog-title = 你确定了解我们所说的意思吗?
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
1. 不要公开这个项目的任何信息
2. 不要滥用它的功能,包含且不仅限于运行修改过的客户端
3. 有问题就到我们的 Discord 或者 Matrix 服务器上提
dependencies = 依赖
missing-dependencies-title = 你缺少某些依赖组件

View file

@ -1,7 +1,7 @@
game-sessions = Game sessions
game-sessions = 游戏会话
active-sessions = Active session
active-session-description = Currently selected game session. Updates after each game launch
active-sessions = 当前会话
active-session-description = 当前选中的游戏会话。每次游戏运行后都会更新
update-session = Update session using current wine prefix registry values
delete-session = Delete session
update-session = 将游戏会话的注册表内容更新为当前 Wine prefix 的注册表
delete-session = 删除会话

View file

@ -49,19 +49,19 @@ patch-preparation-tooltip = 补丁还在开发中
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 = 应用主补丁
apply-main-patch-description = 实验性功能。禁用此选项可以允许在没有打补丁的情况下尝试运行游戏。此时游戏可能无法正常运行,或者需要手动修改文件。请确保你知道自己在做什么
disable-mhypbase = Disable mhypbase
disable-mhypbase-description = Experimental. If enabled, launcher will disable mhypbase.dll during the main patch applying, which is currently an equivalent to the xlua patch. Improves performance and reduces CPU usage
disable-mhypbase = 禁用 mhypbase
disable-mhypbase-description = 实验性功能。启用此选项后,启动器会在应用主补丁的同时禁用 mhypbase.dll。目前与 xLua 补丁效果相同,可以提升性能,降低 CPU 使用率。
ask-superuser-permissions = 请求超级用户权限
ask-superuser-permissions-description = 启动器需要超级用户权限来修改 hosts 文件。flatpak 版无需此权限
ask-superuser-permissions-description = 启动器需要超级用户权限来修改 hosts 文件。Flatpak 版无需此权限
wine-tools = Wine 工具
command-line = 命令行
registry-editor = 注册表编辑器
explorer = 资源管理器
task-manager = 任务管理器
configuration = wine 设置
configuration = Wine 设置
debugger = 调试器

View file

@ -2,7 +2,7 @@ custom = 自定义
none = 无
default = 默认
details = 详细
options = Options
options = 选项
width = 宽
height = 高
@ -20,11 +20,11 @@ about = 关于
close = 关闭
save = 保存
continue = 继续
resume = Resume
resume = 恢复
exit = 退出
check = 检查
restart = 重启
agree = Agree
agree = 同意
loading-data = 正在加载数据
@ -55,7 +55,7 @@ launch = 启动
migrate-folders = 迁移目录
migrate-folders-tooltip = 更新游戏目录结构
apply-patch = 安装补丁
disable-telemetry = Disable telemetry
disable-telemetry = 禁用监测
download-wine = 下载 Wine
create-prefix = 创建 Wine prefix
update = 更新

View file

@ -13,6 +13,7 @@ use tracing_subscriber::prelude::*;
use tracing_subscriber::filter::*;
use std::path::PathBuf;
use std::sync::atomic::{AtomicBool, Ordering};
pub mod move_folder;
pub mod i18n;
@ -27,13 +28,13 @@ pub const APP_VERSION: &str = env!("CARGO_PKG_VERSION");
pub const APP_DEBUG: bool = cfg!(debug_assertions);
/// Sets to `true` when the `App` component is ready (fully initialized)
pub static mut READY: bool = false;
pub static READY: AtomicBool = AtomicBool::new(false);
// TODO: get rid of using this function in all the components' events
// e.g. by converting preferences pages into Relm4 Components
/// Check if the app is ready
pub fn is_ready() -> bool {
unsafe { READY }
READY.load(Ordering::Relaxed)
}
lazy_static::lazy_static! {

View file

@ -104,10 +104,29 @@ impl SimpleComponent for AboutDialog {
set_release_notes_version: &APP_VERSION,
set_release_notes: &[
"<p>Added</p>",
"<ul>",
"<li>Added support to the new wishes url cache location</li>",
"</ul>",
"<p>Fixed</p>",
"<ul>",
"<li>Fixed main patch applying</li>",
"<li>Fixed telemetry disabling</li>",
"</ul>",
"<p>Changed</p>",
"<ul>",
"<li>Updated Italian</li>",
"<li>Updated Hungarian</li>",
"<li>Updated Japanese</li>",
"<li>Updated Indonesian</li>",
"<li>Updated Spanish</li>",
"<li>Updated Turkish</li>",
"<li>Updated Chinese</li>",
"<li>Disabled patch applying for new installations</li>",
"</ul>",
].join("\n"),

View file

@ -174,10 +174,10 @@ impl SimpleComponent for FirstRunApp {
unsafe {
MAIN_WINDOW = Some(widgets.window.clone());
crate::READY = true;
}
crate::READY.store(true, Ordering::Relaxed);
tracing::info!("First run window initialized. App is ready");
ComponentParts { model, widgets } // will return soon

View file

@ -16,26 +16,22 @@ pub fn disable_telemetry(sender: ComponentSender<App>) {
let telemetry = config.launcher.edition
.telemetry_servers()
.iter()
.map(|server| format!("0.0.0.0 {server}"))
.map(|server| format!("echo '0.0.0.0 {server}' >> /etc/hosts"))
.collect::<Vec<String>>()
.join("\\n");
.join(" ; ");
let output = if config.patch.root {
Command::new("pkexec")
.arg("echo")
.arg("-e")
.arg(format!("\\n{telemetry}\\n"))
.arg(">>")
.arg("/etc/hosts")
.arg("bash")
.arg("-c")
.arg(format!("echo '' >> /etc/hosts ; {telemetry} ; echo '' >> /etc/hosts"))
.spawn()
}
else {
Command::new("echo")
.arg("-e")
.arg(format!("\\n{telemetry}\\n"))
.arg(">>")
.arg("/etc/hosts")
Command::new("bash")
.arg("-c")
.arg(format!("echo '' >> /etc/hosts ; {telemetry} ; echo '' >> /etc/hosts"))
.spawn()
};

View file

@ -651,19 +651,28 @@ impl SimpleComponent for App {
let web_cache = config.game.path.for_edition(config.launcher.edition)
.join(config.launcher.edition.data_folder())
.join("webCaches/Cache/Cache_Data/data_2");
.join("webCaches");
if !web_cache.exists() {
tracing::error!("Couldn't find wishes URL: cache file doesn't exist");
// Find newest cache folder
let mut web_cache_id = None;
sender.input(AppMsg::Toast {
title: tr("wish-url-search-failed"),
description: None
});
if let Ok(entries) = web_cache.read_dir() {
for entry in entries.flatten() {
if entry.path().is_dir() &&
entry.file_name().to_string_lossy().trim_matches(|c| "0123456789.".contains(c)).is_empty() &&
Some(entry.file_name()) > web_cache_id
{
web_cache_id = Some(entry.file_name());
}
}
}
else {
match std::fs::read(&web_cache) {
if let Some(web_cache_id) = web_cache_id {
let web_cache = web_cache
.join(web_cache_id)
.join("Cache/Cache_Data/data_2");
match std::fs::read(web_cache) {
Ok(web_cache) => {
let web_cache = String::from_utf8_lossy(&web_cache);
@ -674,7 +683,7 @@ impl SimpleComponent for App {
if let Err(err) = open::that(format!("{}#/log", &url[url_begin_pos..url_end_pos])) {
tracing::error!("Failed to open wishes URL: {err}");
sender.input(AppMsg::Toast {
title: tr("wish-url-opening-error"),
description: Some(err.to_string())
@ -702,6 +711,15 @@ impl SimpleComponent for App {
}
}
}
else {
tracing::error!("Couldn't find wishes URL: cache file doesn't exist");
sender.input(AppMsg::Toast {
title: tr("wish-url-search-failed"),
description: None
});
}
}));
})));
@ -873,9 +891,7 @@ impl SimpleComponent for App {
});
// Mark app as loaded
unsafe {
crate::READY = true;
}
crate::READY.store(true, Ordering::Relaxed);
tracing::info!("App is ready");
});