Skip to content

Commit 4d49785

Browse files
author
Chubby Granny Chaser
committed
fix: translate compatibility UI and prepare 3.9.2
1 parent bbbb2d2 commit 4d49785

17 files changed

Lines changed: 224 additions & 67 deletions

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "hydralauncher",
3-
"version": "3.9.1",
3+
"version": "3.9.2",
44
"description": "Hydra",
55
"main": "./out/main/index.js",
66
"author": "Los Broxas",

src/locales/en/translation.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,13 @@
203203
"protondb_tier": "Tier",
204204
"protondb_score": "Score",
205205
"protondb_reports": "Based on {{count}} reports",
206+
"protondb_tier_borked": "Borked",
207+
"protondb_tier_bronze": "Bronze",
208+
"protondb_tier_silver": "Silver",
209+
"protondb_tier_gold": "Gold",
210+
"protondb_tier_platinum": "Platinum",
211+
"protondb_tier_unknown": "Unknown",
212+
"protondb_badge_title": "ProtonDB {{tier}}",
206213
"deck_compatibility": "Steam Deck",
207214
"deck_verified": "Verified",
208215
"deck_playable": "Playable",

src/locales/es/translation.json

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,18 @@
139139
"genres": "Géneros",
140140
"tags": "Etiquetas",
141141
"publishers": "Editores",
142+
"protondb": "ProtonDB",
142143
"download_sources": "Descargando fuentes",
144+
"compatibility_requirements": "Compatibilidad con Linux",
145+
"protondb_minimum": "Nivel mínimo de ProtonDB",
146+
"steam_deck_minimum": "Compatibilidad mínima con Steam Deck",
147+
"steam_deck_compatible": "Compatible con Steam Deck",
148+
"compatibility_any": "Cualquiera",
149+
"protondb_silver_plus": "Plata+",
150+
"protondb_gold_plus": "Oro+",
151+
"protondb_platinum_only": "Solo platino",
152+
"deck_playable_plus": "Jugable+",
153+
"deck_verified_only": "Solo verificado",
143154
"result_count": "{{resultCount}} resultados",
144155
"filter_count": "{{filterCount}} disponible",
145156
"clear_filters": "Limpiar {{filterCount}} seleccionados"
@@ -170,6 +181,22 @@
170181
"minutes": "minutos",
171182
"amount_hours": "{{amount}} horas",
172183
"amount_minutes": "{{amount}} minutos",
184+
"protondb_tier": "Nivel",
185+
"protondb_score": "Puntuación",
186+
"protondb_reports": "Basado en {{count}} reportes",
187+
"protondb_tier_borked": "Roto",
188+
"protondb_tier_bronze": "Bronce",
189+
"protondb_tier_silver": "Plata",
190+
"protondb_tier_gold": "Oro",
191+
"protondb_tier_platinum": "Platino",
192+
"protondb_tier_unknown": "Desconocido",
193+
"protondb_badge_title": "ProtonDB {{tier}}",
194+
"deck_compatibility": "Steam Deck",
195+
"deck_verified": "Verificado",
196+
"deck_playable": "Jugable",
197+
"deck_unsupported": "No compatible",
198+
"deck_unknown": "Desconocido",
199+
"view_on_protondb": "Ver en ProtonDB",
173200
"accuracy": "{{accuracy}}% completista",
174201
"add_to_library": "Añadir a la librería",
175202
"already_in_library": "Ya está en la librería",
@@ -507,6 +534,9 @@
507534
"quit_app_instead_hiding": "No ocultar Hydra cuando se cierra",
508535
"launch_with_system": "Iniciar Hydra con el sistema",
509536
"general": "General",
537+
"content_gameplay": "Contenido y jugabilidad",
538+
"integrations": "Integraciones",
539+
"compatibility": "Compatibilidad",
510540
"behavior": "Comportamiento",
511541
"app_basics": "Básicos de la aplicación",
512542
"startup_behavior": "Comportamiento al iniciar",
@@ -531,16 +561,25 @@
531561
"validate_download_source": "Validar",
532562
"remove_download_source": "Remover",
533563
"add_download_source": "Añadir fuente",
564+
"failed_add_download_source": "No se pudo agregar la fuente de descarga. Intentá de nuevo.",
565+
"download_source_already_exists": "Esta URL de fuente de descarga ya existe.",
534566
"download_count_zero": "Sin opciones de descarga",
535567
"download_count_one": "{{countFormatted}} opción de descarga",
536568
"download_count_other": "{{countFormatted}} opciones de descarga",
537569
"download_source_url": "Añadir URL de una fuente",
538570
"add_download_source_description": "Introducí la URL del archivo .json",
539571
"download_source_up_to_date": "Actualizado",
540572
"download_source_errored": "Error",
573+
"download_source_pending_matching": "Se actualizará pronto",
574+
"download_source_matched": "Actualizada",
575+
"download_source_matching": "Actualizando",
576+
"download_source_failed": "Error",
577+
"download_source_no_information": "Sin información disponible",
541578
"sync_download_sources": "Sincronizar fuentes",
542579
"removed_download_source": "Fuente de descarga eliminada",
543580
"removed_download_sources": "Fuente de descarga eliminadas",
581+
"removed_all_download_sources": "Se eliminaron todas las fuentes de descarga",
582+
"download_sources_synced_successfully": "Todas las fuentes de descarga están sincronizadas",
544583
"cancel_button_confirmation_delete_all_sources": "No",
545584
"confirm_button_confirmation_delete_all_sources": "Si, eliminar todo",
546585
"title_confirmation_delete_all_sources": "Eliminar todas las fuentes de descarga",
@@ -573,6 +612,7 @@
573612
"seed_after_download_complete": "Sembrar después de completar una descarga",
574613
"show_hidden_achievement_description": "Mostrar logros ocultos antes de desbloquearlos",
575614
"account": "Cuenta",
615+
"hydra_cloud": "Hydra Cloud",
576616
"no_users_blocked": "No has bloqueado a ningún usuario",
577617
"subscription_active_until": "Tu Hydra Cloud está activo hasta {{date}}",
578618
"manage_subscription": "Administrar suscripción",
@@ -635,11 +675,18 @@
635675
"theme_imported": "Tema importado correctamente",
636676
"enable_friend_request_notifications": "Cuando recibís una solicitud de amistad",
637677
"enable_auto_install": "Descargar actualizaciones automáticamente",
678+
"run_games_with_gamemode": "Ejecutar juegos con GameMode por defecto",
679+
"run_games_with_mangohud": "Ejecutar juegos con MangoHud por defecto",
638680
"common_redist": "Common redistributables",
639681
"common_redist_description": "Los common redistributables son requeridos para algunos juegos. Es recomendable instalarlos para evitar algunos problemas.",
640682
"install_common_redist": "Instalar",
641683
"installing_common_redist": "Instalando…",
642684
"show_download_speed_in_megabytes": "Mostrar velocidad de descarga en megabytes por segundo",
685+
"max_download_speed": "Velocidad máxima de descarga ({{unit}})",
686+
"max_download_speed_hint": "Indicá 0 o dejalo vacío para velocidad de descarga ilimitada en {{unit}}.",
687+
"max_download_speed_unit_megabytes": "MB/s",
688+
"max_download_speed_unit_megabits": "Mbps",
689+
"max_download_speed_unlimited": "Ilimitada",
643690
"extract_files_by_default": "Extraer archivos por defecto después de descargar",
644691
"enable_steam_achievements": "Habilitar búsqueda de logros de Steam",
645692
"enable_new_download_options_badges": "Mostrar badges de nuevas opciones de descarga",
@@ -681,6 +728,7 @@
681728
"proton_source_steam": "Instalado por Steam",
682729
"proton_source_compatibility_tools": "Instalado en compatibilitytools.d de Steam",
683730
"change_achievement_sound": "Cambiar sonido de logro",
731+
"remove_achievement_sound": "Quitar sonido de logro",
684732
"preview_sound": "Vista previa del sonido"
685733
},
686734
"notifications": {

src/locales/pt-BR/translation.json

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,22 @@
158158
"minutes": "minutos",
159159
"amount_hours": "{{amount}} horas",
160160
"amount_minutes": "{{amount}} minutos",
161+
"protondb_tier": "Nível",
162+
"protondb_score": "Pontuação",
163+
"protondb_reports": "Com base em {{count}} relatos",
164+
"protondb_tier_borked": "Quebrado",
165+
"protondb_tier_bronze": "Bronze",
166+
"protondb_tier_silver": "Prata",
167+
"protondb_tier_gold": "Ouro",
168+
"protondb_tier_platinum": "Platina",
169+
"protondb_tier_unknown": "Desconhecido",
170+
"protondb_badge_title": "ProtonDB {{tier}}",
171+
"deck_compatibility": "Steam Deck",
172+
"deck_verified": "Verificado",
173+
"deck_playable": "Jogável",
174+
"deck_unsupported": "Não compatível",
175+
"deck_unknown": "Desconhecido",
176+
"view_on_protondb": "Ver no ProtonDB",
161177
"accuracy": "{{accuracy}}% de precisão",
162178
"add_to_library": "Adicionar à biblioteca",
163179
"already_in_library": "Já está na biblioteca",
@@ -324,7 +340,7 @@
324340
"save_changes": "Salvar mudanças",
325341
"required_field": "Este campo é obrigatório",
326342
"max_length_field": "Este campo deve ter menos de {{length}} caracteres",
327-
"freeze_backup": "Fixar para não ser apagado por backups automáticos",
343+
"freeze_backup": "Fixar",
328344
"unfreeze_backup": "Remover dos fixados",
329345
"backup_frozen": "Backup fixado",
330346
"backup_unfrozen": "Backup removido dos fixados",
@@ -501,6 +517,9 @@
501517
"quit_app_instead_hiding": "Encerrar o Hydra em vez de apenas minimizá-lo ao fechar",
502518
"launch_with_system": "Iniciar o Hydra junto com o sistema",
503519
"general": "Geral",
520+
"content_gameplay": "Conteúdo e jogabilidade",
521+
"integrations": "Integrações",
522+
"compatibility": "Compatibilidade",
504523
"behavior": "Comportamento",
505524
"app_basics": "Noções básicas do aplicativo",
506525
"startup_behavior": "Comportamento na inicialização",
@@ -641,11 +660,18 @@
641660
"theme_imported": "Tema importado com sucesso",
642661
"enable_friend_request_notifications": "Quando um pedido de amizade é recebido",
643662
"enable_auto_install": "Baixar atualizações automaticamente",
663+
"run_games_with_gamemode": "Executar jogos com GameMode por padrão",
664+
"run_games_with_mangohud": "Executar jogos com MangoHud por padrão",
644665
"common_redist": "Componentes recomendados",
645666
"common_redist_description": "Componentes recomendados são necessários para executar alguns jogos. A instalação deles é recomendada para evitar problemas.",
646667
"install_common_redist": "Instalar",
647668
"installing_common_redist": "Instalando…",
648669
"show_download_speed_in_megabytes": "Exibir taxas de download em megabytes por segundo",
670+
"max_download_speed": "Velocidade máxima de download ({{unit}})",
671+
"max_download_speed_hint": "Defina 0 ou deixe em branco para velocidade de download ilimitada em {{unit}}.",
672+
"max_download_speed_unit_megabytes": "MB/s",
673+
"max_download_speed_unit_megabits": "Mbps",
674+
"max_download_speed_unlimited": "Ilimitada",
649675
"extract_files_by_default": "Extrair arquivos automaticamente após o download",
650676
"enable_steam_achievements": "Habilitar busca por conquistas da Steam",
651677
"enable_new_download_options_badges": "Mostrar badges de novas opções de download",
@@ -731,7 +757,18 @@
731757
"genres": "Gêneros",
732758
"tags": "Marcadores",
733759
"publishers": "Distribuidoras",
760+
"protondb": "ProtonDB",
734761
"download_sources": "Fontes de download",
762+
"compatibility_requirements": "Compatibilidade com Linux",
763+
"protondb_minimum": "Nível mínimo do ProtonDB",
764+
"steam_deck_minimum": "Suporte mínimo ao Steam Deck",
765+
"steam_deck_compatible": "Compatível com Steam Deck",
766+
"compatibility_any": "Qualquer",
767+
"protondb_silver_plus": "Prata+",
768+
"protondb_gold_plus": "Ouro+",
769+
"protondb_platinum_only": "Somente platina",
770+
"deck_playable_plus": "Jogável+",
771+
"deck_verified_only": "Somente verificado",
735772
"result_count": "{{resultCount}} resultados",
736773
"filter_count": "{{filterCount}} disponíveis",
737774
"clear_filters": "Limpar {{filterCount}} selecionados"

src/locales/pt-PT/translation.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@
367367
"save_changes": "Guardar alterações",
368368
"required_field": "Este campo é obrigatório",
369369
"max_length_field": "Este campo deve ter menos de {{length}} caracteres",
370-
"freeze_backup": "Fixar para não ser substituído por backups automáticos",
370+
"freeze_backup": "Fixar",
371371
"unfreeze_backup": "Desafixar",
372372
"backup_frozen": "Backup fixado",
373373
"backup_unfrozen": "Backup desafixado",

src/locales/ru/translation.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,18 @@
139139
"genres": "Жанры",
140140
"tags": "Теги",
141141
"publishers": "Издательства",
142+
"protondb": "ProtonDB",
142143
"download_sources": "Источники загрузки",
144+
"compatibility_requirements": "Совместимость с Linux",
145+
"protondb_minimum": "Минимальный уровень ProtonDB",
146+
"steam_deck_minimum": "Минимальная поддержка Steam Deck",
147+
"steam_deck_compatible": "Совместимо со Steam Deck",
148+
"compatibility_any": "Любая",
149+
"protondb_silver_plus": "Серебро+",
150+
"protondb_gold_plus": "Золото+",
151+
"protondb_platinum_only": "Только платина",
152+
"deck_playable_plus": "Играбельно+",
153+
"deck_verified_only": "Только подтверждено",
143154
"result_count": "{{resultCount}} результатов",
144155
"filter_count": "{{filterCount}} доступных",
145156
"clear_filters": "Очистить {{filterCount}} выбранных"
@@ -170,6 +181,22 @@
170181
"minutes": "минут",
171182
"amount_hours": "{{amount}} часов",
172183
"amount_minutes": "{{amount}} минут",
184+
"protondb_tier": "Уровень",
185+
"protondb_score": "Оценка",
186+
"protondb_reports": "На основе {{count}} отчетов",
187+
"protondb_tier_borked": "Сломано",
188+
"protondb_tier_bronze": "Бронза",
189+
"protondb_tier_silver": "Серебро",
190+
"protondb_tier_gold": "Золото",
191+
"protondb_tier_platinum": "Платина",
192+
"protondb_tier_unknown": "Неизвестно",
193+
"protondb_badge_title": "ProtonDB {{tier}}",
194+
"deck_compatibility": "Steam Deck",
195+
"deck_verified": "Подтверждено",
196+
"deck_playable": "Играбельно",
197+
"deck_unsupported": "Не поддерживается",
198+
"deck_unknown": "Неизвестно",
199+
"view_on_protondb": "Открыть в ProtonDB",
173200
"accuracy": "точность {{accuracy}}%",
174201
"add_to_library": "Добавить в библиотеку",
175202
"already_in_library": "Уже в библиотеке",
@@ -507,6 +534,9 @@
507534
"quit_app_instead_hiding": "Закрывать приложение вместо сворачивания в трей",
508535
"launch_with_system": "Запускать Hydra вместе с системой",
509536
"general": "Основные",
537+
"content_gameplay": "Контент и игровой процесс",
538+
"integrations": "Интеграции",
539+
"compatibility": "Совместимость",
510540
"behavior": "Поведение",
511541
"app_basics": "Основные настройки приложения",
512542
"startup_behavior": "Поведение при запуске",
@@ -647,11 +677,18 @@
647677
"theme_imported": "Тема успешно импортирована",
648678
"enable_friend_request_notifications": "При получении запроса на добавление в друзья",
649679
"enable_auto_install": "Загружать обновления автоматически",
680+
"run_games_with_gamemode": "Запускать игры с GameMode по умолчанию",
681+
"run_games_with_mangohud": "Запускать игры с MangoHud по умолчанию",
650682
"common_redist": "Библиотеки",
651683
"common_redist_description": "Для запуска некоторых игр требуются библиотеки. Во избежание проблем рекомендуется установить их.",
652684
"install_common_redist": "Установить",
653685
"installing_common_redist": "Установка…",
654686
"show_download_speed_in_megabytes": "Показать скорость загрузки в мегабайтах в секунду",
687+
"max_download_speed": "Максимальная скорость загрузки ({{unit}})",
688+
"max_download_speed_hint": "Укажите 0 или оставьте поле пустым для неограниченной скорости загрузки в {{unit}}.",
689+
"max_download_speed_unit_megabytes": "MB/s",
690+
"max_download_speed_unit_megabits": "Mbps",
691+
"max_download_speed_unlimited": "Без ограничений",
655692
"extract_files_by_default": "Извлекать файлы по умолчанию после загрузки",
656693
"enable_steam_achievements": "Включить поиск достижений Steam",
657694
"enable_new_download_options_badges": "Показывать значки новых вариантов загрузки",

src/main/events/cloud-save/download-game-artifact.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import { CloudSync, HydraApi, logger, WindowManager } from "@main/services";
1+
import {
2+
CloudSync,
3+
HydraApi,
4+
logger,
5+
WindowManager,
6+
Wine,
7+
} from "@main/services";
28
import fs from "node:fs";
39
import * as tar from "tar";
410
import { registerEvent } from "../register-event";
@@ -98,6 +104,10 @@ const downloadGameArtifact = async (
98104
) => {
99105
try {
100106
const game = await gamesSublevel.get(levelKeys.game(shop, objectId));
107+
const effectiveWinePrefixPath = Wine.getEffectivePrefixPath(
108+
game?.winePrefixPath,
109+
objectId
110+
);
101111

102112
const {
103113
downloadUrl,
@@ -152,7 +162,7 @@ const downloadGameArtifact = async (
152162
backupPath,
153163
objectId,
154164
normalizePath(homeDir),
155-
game?.winePrefixPath,
165+
effectiveWinePrefixPath,
156166
artifactWinePrefixPath
157167
);
158168

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { registerEvent } from "../register-event";
22
import type { GameShop } from "@types";
3-
import { Ludusavi } from "@main/services";
3+
import { Ludusavi, Wine } from "@main/services";
44
import { gamesSublevel, levelKeys } from "@main/level";
55

66
const getGameBackupPreview = async (
@@ -10,7 +10,11 @@ const getGameBackupPreview = async (
1010
) => {
1111
const game = await gamesSublevel.get(levelKeys.game(shop, objectId));
1212

13-
return Ludusavi.getBackupPreview(shop, objectId, game?.winePrefixPath);
13+
return Ludusavi.getBackupPreview(
14+
shop,
15+
objectId,
16+
Wine.getEffectivePrefixPath(game?.winePrefixPath, objectId)
17+
);
1418
};
1519

1620
registerEvent("getGameBackupPreview", getGameBackupPreview);

src/main/events/library/close-game.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { registerEvent } from "../register-event";
2-
import { logger } from "@main/services";
2+
import { logger, Wine } from "@main/services";
33
import sudo from "sudo-prompt";
44
import { app } from "electron";
55
import { PythonRPC } from "@main/services/python-rpc";
@@ -51,7 +51,10 @@ const closeGame = async (
5151
return false;
5252
}
5353

54-
const expectedPrefix = game.winePrefixPath?.toLowerCase();
54+
const expectedPrefix = Wine.getEffectivePrefixPath(
55+
game.winePrefixPath,
56+
game.objectId
57+
)?.toLowerCase();
5558
const processPrefix =
5659
runningProcess.environ?.STEAM_COMPAT_DATA_PATH?.toLowerCase();
5760

src/main/events/library/get-library.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,22 @@ const getLibrary = async (): Promise<LibraryGame[]> => {
2121
.map(async ([key, game]) => {
2222
const download = await downloadsSublevel.get(key);
2323
const gameAssets = await gamesShopAssetsSublevel.get(key);
24-
const achievements = await gameAchievementsSublevel.get(key).catch(() => null);
24+
const achievements = await gameAchievementsSublevel
25+
.get(key)
26+
.catch(() => null);
2527

2628
const validAchievementNames = new Set(
27-
achievements?.achievements?.map((a) => (a.name ?? "").toUpperCase()) || []
29+
achievements?.achievements?.map((a) =>
30+
(a.name ?? "").toUpperCase()
31+
) || []
2832
);
2933

3034
const unlockedAchievementCount =
3135
achievements?.unlockedAchievements?.filter(
3236
(unlocked) =>
33-
validAchievementNames.has((unlocked.name ?? "").toUpperCase()) && unlocked.unlockTime > 0
37+
validAchievementNames.has(
38+
(unlocked.name ?? "").toUpperCase()
39+
) && unlocked.unlockTime > 0
3440
).length ??
3541
game.unlockedAchievementCount ??
3642
0;

0 commit comments

Comments
 (0)