mirror of
https://github.com/hydralauncher/hydra.git
synced 2025-02-02 16:23:48 +03:00
Merge pull request #918 from thaleseuflauzino/main
Adding translation for Portuguese-Portugal and Portuguese-Brazil
This commit is contained in:
commit
02907d84e1
@ -32,6 +32,7 @@
|
|||||||
"knex:migrate:make": "knex --knexfile src/main/knexfile.ts migrate:make --esm"
|
"knex:migrate:make": "knex --knexfile src/main/knexfile.ts migrate:make --esm"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@cospired/i18n-iso-languages": "^4.2.0",
|
||||||
"@electron-toolkit/preload": "^3.0.0",
|
"@electron-toolkit/preload": "^3.0.0",
|
||||||
"@electron-toolkit/utils": "^3.0.0",
|
"@electron-toolkit/utils": "^3.0.0",
|
||||||
"@fontsource/noto-sans": "^5.0.22",
|
"@fontsource/noto-sans": "^5.0.22",
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
export { default as en } from "./en/translation.json";
|
export { default as en } from "./en/translation.json";
|
||||||
export { default as pt } from "./pt/translation.json";
|
export { default as ptPT } from "./pt-PT/translation.json";
|
||||||
|
export { default as ptBR } from "./pt-BR/translation.json";
|
||||||
export { default as es } from "./es/translation.json";
|
export { default as es } from "./es/translation.json";
|
||||||
export { default as nl } from "./nl/translation.json";
|
export { default as nl } from "./nl/translation.json";
|
||||||
export { default as fr } from "./fr/translation.json";
|
export { default as fr } from "./fr/translation.json";
|
||||||
|
@ -166,7 +166,7 @@
|
|||||||
"real_debrid_linked_message": "Conta \"{{username}}\" vinculada",
|
"real_debrid_linked_message": "Conta \"{{username}}\" vinculada",
|
||||||
"save_changes": "Salvar mudanças",
|
"save_changes": "Salvar mudanças",
|
||||||
"changes_saved": "Ajustes salvos com sucesso",
|
"changes_saved": "Ajustes salvos com sucesso",
|
||||||
"download_sources_description": "Hydra vai buscar links de download em todas as fonte habilitadas. A URL da fonte deve ser um link direto para um arquivo .json contendo uma lista de links.",
|
"download_sources_description": "Hydra vai buscar links de download em todas as fontes habilitadas. A URL da fonte deve ser um link direto para um arquivo .json contendo uma lista de links.",
|
||||||
"validate_download_source": "Validar",
|
"validate_download_source": "Validar",
|
||||||
"remove_download_source": "Remover",
|
"remove_download_source": "Remover",
|
||||||
"add_download_source": "Adicionar fonte",
|
"add_download_source": "Adicionar fonte",
|
280
src/locales/pt-PT/translation.json
Normal file
280
src/locales/pt-PT/translation.json
Normal file
@ -0,0 +1,280 @@
|
|||||||
|
{
|
||||||
|
"app": {
|
||||||
|
"successfully_signed_in": "Sessão iniciada com sucesso"
|
||||||
|
},
|
||||||
|
"home": {
|
||||||
|
"featured": "Destaques",
|
||||||
|
"trending": "Populares",
|
||||||
|
"surprise_me": "Surpreende-me",
|
||||||
|
"no_results": "Nenhum resultado encontrado"
|
||||||
|
},
|
||||||
|
"sidebar": {
|
||||||
|
"catalogue": "Catálogo",
|
||||||
|
"downloads": "Transferências",
|
||||||
|
"settings": "Definições",
|
||||||
|
"my_library": "Biblioteca",
|
||||||
|
"downloading_metadata": "{{title}} (A transferir metadados…)",
|
||||||
|
"paused": "{{title}} (Pausado)",
|
||||||
|
"downloading": "{{title}} ({{percentage}} - A transferir…)",
|
||||||
|
"filter": "Procurar",
|
||||||
|
"home": "Início",
|
||||||
|
"queued": "{{title}} (Na fila)",
|
||||||
|
"game_has_no_executable": "Jogo não tem executável selecionado",
|
||||||
|
"sign_in": "Iniciar sessão"
|
||||||
|
},
|
||||||
|
"header": {
|
||||||
|
"search": "Procurar jogos",
|
||||||
|
"catalogue": "Catálogo",
|
||||||
|
"downloads": "Transferências",
|
||||||
|
"search_results": "Resultados da pesquisa",
|
||||||
|
"settings": "Definições",
|
||||||
|
"home": "Início",
|
||||||
|
"version_available_install": "Versão {{version}} disponível. Clique aqui para reiniciar e instalar.",
|
||||||
|
"version_available_download": "Versão {{version}} disponível. Clique aqui para fazer o download."
|
||||||
|
},
|
||||||
|
"bottom_panel": {
|
||||||
|
"no_downloads_in_progress": "Sem transferências em andamento",
|
||||||
|
"downloading_metadata": "A transferir metadados de {{title}}…",
|
||||||
|
"downloading": "A transferir {{title}}… ({{percentage}} concluído) - Conclusão {{eta}} - {{speed}}",
|
||||||
|
"calculating_eta": "A transferir {{title}}… ({{percentage}} concluído) - A calcular tempo restante…",
|
||||||
|
"checking_files": "A verificar ficheiros de {{title}}…"
|
||||||
|
},
|
||||||
|
"game_details": {
|
||||||
|
"open_download_options": "Ver opções de transferência",
|
||||||
|
"download_options_zero": "Sem opções de transferência",
|
||||||
|
"download_options_one": "{{count}} opção de transferência",
|
||||||
|
"download_options_other": "{{count}} opções de transferência",
|
||||||
|
"updated_at": "Atualizado a {{updated_at}}",
|
||||||
|
"resume": "Retomar",
|
||||||
|
"pause": "Pausar",
|
||||||
|
"cancel": "Cancelar",
|
||||||
|
"remove": "Remover",
|
||||||
|
"space_left_on_disk": "{{space}} livres no disco",
|
||||||
|
"eta": "Conclusão {{eta}}",
|
||||||
|
"calculating_eta": "A calcular tempo restante…",
|
||||||
|
"downloading_metadata": "A transferir metadados…",
|
||||||
|
"filter": "Filtrar repacks",
|
||||||
|
"requirements": "Requisitos do sistema",
|
||||||
|
"minimum": "Mínimos",
|
||||||
|
"recommended": "Recomendados",
|
||||||
|
"paused": "Pausado",
|
||||||
|
"release_date": "Lançado em {{date}}",
|
||||||
|
"publisher": "Publicado por {{publisher}}",
|
||||||
|
"hours": "horas",
|
||||||
|
"minutes": "minutos",
|
||||||
|
"amount_hours": "{{amount}} horas",
|
||||||
|
"amount_minutes": "{{amount}} minutos",
|
||||||
|
"accuracy": "{{accuracy}}% de precisão",
|
||||||
|
"add_to_library": "Adicionar à biblioteca",
|
||||||
|
"remove_from_library": "Remover da biblioteca",
|
||||||
|
"no_downloads": "Nenhuma transferência disponível",
|
||||||
|
"play_time": "Jogou por {{amount}}",
|
||||||
|
"next_suggestion": "Próxima sugestão",
|
||||||
|
"install": "Instalar",
|
||||||
|
"last_time_played": "Última sessão {{period}}",
|
||||||
|
"play": "Jogar",
|
||||||
|
"not_played_yet": "Ainda não jogou {{title}}",
|
||||||
|
"close": "Fechar",
|
||||||
|
"deleting": "A eliminar instalador…",
|
||||||
|
"playing_now": "A jogar agora",
|
||||||
|
"change": "Explorar",
|
||||||
|
"repacks_modal_description": "Escolha o repack do jogo que deseja transferir",
|
||||||
|
"select_folder_hint": "Para trocar o diretório padrão, aceda à <0>Tela de Definições</0>",
|
||||||
|
"download_now": "Iniciar transferência",
|
||||||
|
"no_shop_details": "Não foi possível obter os detalhes da loja.",
|
||||||
|
"download_options": "Opções de transferência",
|
||||||
|
"download_path": "Diretório de transferência",
|
||||||
|
"previous_screenshot": "Captura de ecrã anterior",
|
||||||
|
"next_screenshot": "Próxima captura de ecrã",
|
||||||
|
"screenshot": "Captura de ecrã {{number}}",
|
||||||
|
"open_screenshot": "Ver captura de ecrã {{number}}",
|
||||||
|
"download_settings": "Definições de transferência",
|
||||||
|
"downloader": "Downloader",
|
||||||
|
"select_executable": "Explorar",
|
||||||
|
"no_executable_selected": "Nenhum executável selecionado",
|
||||||
|
"open_folder": "Abrir pasta",
|
||||||
|
"open_download_location": "Ver ficheiros transferidos",
|
||||||
|
"create_shortcut": "Criar atalho no ambiente de trabalho",
|
||||||
|
"remove_files": "Remover ficheiros",
|
||||||
|
"options": "Gerir",
|
||||||
|
"remove_from_library_description": "Isto irá remover {{game}} da sua biblioteca",
|
||||||
|
"remove_from_library_title": "Tem a certeza?",
|
||||||
|
"executable_section_title": "Executável",
|
||||||
|
"executable_section_description": "O caminho do ficheiro que será executado ao clicar em \"Jogar\"",
|
||||||
|
"downloads_secion_title": "Transferências",
|
||||||
|
"downloads_section_description": "Confira atualizações ou versões diferentes para este mesmo título",
|
||||||
|
"danger_zone_section_title": "Zona de perigo",
|
||||||
|
"danger_zone_section_description": "Remova o jogo da sua biblioteca ou os ficheiros que foram transferidos pelo Hydra",
|
||||||
|
"download_in_progress": "Transferência em andamento",
|
||||||
|
"download_paused": "Transferência pausada",
|
||||||
|
"last_downloaded_option": "Última opção transferida",
|
||||||
|
"create_shortcut_success": "Atalho criado com sucesso",
|
||||||
|
"create_shortcut_error": "Erro ao criar atalho"
|
||||||
|
},
|
||||||
|
"activation": {
|
||||||
|
"title": "Ativação",
|
||||||
|
"installation_id": "ID da instalação:",
|
||||||
|
"enter_activation_code": "Insira o seu código de ativação",
|
||||||
|
"message": "Se não sabe onde conseguir o código, talvez não devesse estar aqui.",
|
||||||
|
"activate": "Ativar",
|
||||||
|
"loading": "A carregar…"
|
||||||
|
},
|
||||||
|
"downloads": {
|
||||||
|
"resume": "Retomar",
|
||||||
|
"pause": "Pausar",
|
||||||
|
"eta": "Conclusão {{eta}}",
|
||||||
|
"paused": "Pausado",
|
||||||
|
"verifying": "A verificar…",
|
||||||
|
"completed": "Concluído",
|
||||||
|
"removed": "Cancelado",
|
||||||
|
"cancel": "Cancelar",
|
||||||
|
"filter": "Filtrar jogos transferidos",
|
||||||
|
"remove": "Remover",
|
||||||
|
"downloading_metadata": "A transferir metadados…",
|
||||||
|
"delete": "Remover instalador",
|
||||||
|
"delete_modal_description": "Isto removerá todos os ficheiros de instalação do seu computador",
|
||||||
|
"delete_modal_title": "Tem a certeza?",
|
||||||
|
"deleting": "A eliminar instalador…",
|
||||||
|
"install": "Instalar",
|
||||||
|
"download_in_progress": "A transferir agora",
|
||||||
|
"queued_downloads": "Na fila",
|
||||||
|
"downloads_completed": "Concluído",
|
||||||
|
"queued": "Na fila",
|
||||||
|
"no_downloads_title": "Nada por aqui…",
|
||||||
|
"no_downloads_description": "Ainda não transferiu nada pelo Hydra, mas nunca é tarde para começar.",
|
||||||
|
"checking_files": "A verificar ficheiros…"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"downloads_path": "Diretório das transferências",
|
||||||
|
"change": "Explorar...",
|
||||||
|
"notifications": "Notificações",
|
||||||
|
"enable_download_notifications": "Quando uma transferência for concluída",
|
||||||
|
"enable_repack_list_notifications": "Quando a lista de repacks for atualizada",
|
||||||
|
"real_debrid_api_token_label": "Token de API do Real-Debrid",
|
||||||
|
"quit_app_instead_hiding": "Encerrar o Hydra em vez de apenas minimizá-lo ao fechar.",
|
||||||
|
"launch_with_system": "Iniciar o Hydra com o sistema",
|
||||||
|
"general": "Geral",
|
||||||
|
"behavior": "Comportamento",
|
||||||
|
"download_sources": "Fontes de transferência",
|
||||||
|
"language": "Idioma",
|
||||||
|
"real_debrid_api_token": "Token de API",
|
||||||
|
"enable_real_debrid": "Ativar Real-Debrid",
|
||||||
|
"real_debrid_api_token_hint": "Pode obter o seu token de API <0>aqui</0>",
|
||||||
|
"real_debrid_description": "O Real-Debrid é um downloader sem restrições que permite transferir ficheiros instantaneamente e com a melhor velocidade da sua Internet.",
|
||||||
|
"real_debrid_invalid_token": "Token de API inválido",
|
||||||
|
"real_debrid_free_account_error": "A conta \"{{username}}\" é uma conta gratuita. Por favor, subscreva o Real-Debrid",
|
||||||
|
"real_debrid_linked_message": "Conta \"{{username}}\" vinculada",
|
||||||
|
"save_changes": "Guardar alterações",
|
||||||
|
"changes_saved": "Definições guardadas com sucesso",
|
||||||
|
"download_sources_description": "O Hydra vai procurar links de transferência em todas as fontes ativadas. A URL da página de detalhes da loja não é guardada no seu dispositivo. Utilizamos um sistema de metadados criado pela comunidade para fornecer suporte a mais fontes de transferência de jogos.",
|
||||||
|
"enable_source": "Ativar",
|
||||||
|
"disable_source": "Desativar",
|
||||||
|
"validate_download_source": "Validar",
|
||||||
|
"remove_download_source": "Remover",
|
||||||
|
"add_download_source": "Adicionar fonte",
|
||||||
|
"download_count_zero": "Sem transferências na lista",
|
||||||
|
"download_count_one": "{{countFormatted}} transferência na lista",
|
||||||
|
"download_count_other": "{{countFormatted}} transferências na lista",
|
||||||
|
"download_options_zero": "Sem transferências disponíveis",
|
||||||
|
"download_options_one": "{{countFormatted}} transferência disponível",
|
||||||
|
"download_options_other": "{{countFormatted}} transferências disponíveis",
|
||||||
|
"download_source_url": "URL da fonte",
|
||||||
|
"add_download_source_description": "Insira o URL contendo o arquivo .json",
|
||||||
|
"download_source_up_to_date": "Sincronizada",
|
||||||
|
"download_source_errored": "Falhou",
|
||||||
|
"sync_download_sources": "Sincronizar",
|
||||||
|
"removed_download_source": "Fonte removida",
|
||||||
|
"added_download_source": "Fonte adicionada",
|
||||||
|
"download_sources_synced": "As fontes foram sincronizadas",
|
||||||
|
"insert_valid_json_url": "Insira o URL de um JSON válido",
|
||||||
|
"found_download_option_zero": "Nenhuma opção de transferência encontrada",
|
||||||
|
"found_download_option_one": "{{countFormatted}} opção de transferência encontrada",
|
||||||
|
"found_download_option_other": "{{countFormatted}} opções de transferências encontradas",
|
||||||
|
"import": "Importar"
|
||||||
|
},
|
||||||
|
"notifications": {
|
||||||
|
"download_complete": "Transferência concluída",
|
||||||
|
"game_ready_to_install": "{{title}} está pronto para ser descarregado",
|
||||||
|
"repack_list_updated": "Lista de repacks atualizada",
|
||||||
|
"repack_count_one": "{{count}} novo repack",
|
||||||
|
"repack_count_other": "{{count}} novos repacks",
|
||||||
|
"new_update_available": "Versão {{version}} disponível",
|
||||||
|
"restart_to_install_update": "Reinicie o Hydra para instalar a nova versão"
|
||||||
|
},
|
||||||
|
"system_tray": {
|
||||||
|
"open": "Abrir Hydra",
|
||||||
|
"quit": "Fechar"
|
||||||
|
},
|
||||||
|
"game_card": {
|
||||||
|
"no_downloads": "Sem transferências disponíveis"
|
||||||
|
},
|
||||||
|
"binary_not_found_modal": {
|
||||||
|
"title": "Programas não instalados",
|
||||||
|
"description": "Os executáveis do Wine ou Lutris não foram encontrados em seu sistema.",
|
||||||
|
"instructions": "Verifique a forma correta de instalar algum deles na sua distro Linux, garantindo assim a execução normal do jogo."
|
||||||
|
},
|
||||||
|
"catalogue": {
|
||||||
|
"next_page": "Próxima página",
|
||||||
|
"previous_page": "Página anterior"
|
||||||
|
},
|
||||||
|
"modal": {
|
||||||
|
"close": "Botão de fechar"
|
||||||
|
},
|
||||||
|
"forms": {
|
||||||
|
"toggle_password_visibility": "Alternar visibilidade da palavra-passe"
|
||||||
|
},
|
||||||
|
"user_profile": {
|
||||||
|
"amount_hours": "{{amount}} horas",
|
||||||
|
"amount_minutes": "{{amount}} minutos",
|
||||||
|
"last_time_played": "Última sessão {{period}}",
|
||||||
|
"activity": "Atividades recentes",
|
||||||
|
"library": "Biblioteca",
|
||||||
|
"total_play_time": "Tempo total de jogo: {{amount}}",
|
||||||
|
"no_recent_activity_title": "Hmmm… nada por aqui",
|
||||||
|
"no_recent_activity_description": "Parece que não jogaste nada recentemente. Que tal começar agora?",
|
||||||
|
"display_name": "Nome de exibição",
|
||||||
|
"saving": "a guardar…",
|
||||||
|
"save": "Guardar",
|
||||||
|
"edit_profile": "Editar perfil",
|
||||||
|
"saved_successfully": "Guardado com sucesso",
|
||||||
|
"try_again": "Por favor, tenta novamente",
|
||||||
|
"cancel": "Cancelar",
|
||||||
|
"successfully_signed_out": "Terminado com sucesso",
|
||||||
|
"sign_out": "Terminar sessão",
|
||||||
|
"sign_out_modal_title": "Tens a certeza?",
|
||||||
|
"playing_for": "A jogar há {{amount}}",
|
||||||
|
"sign_out_modal_text": "A tua biblioteca de jogos está associada com a tua conta atual. Ao sair, a tua biblioteca não aparecerá mais no Hydra e qualquer progresso não será guardado. Desejas continuar?",
|
||||||
|
"add_friends": "Adicionar Amigos",
|
||||||
|
"friend_code": "Código de amigo",
|
||||||
|
"see_profile": "Ver perfil",
|
||||||
|
"friend_request_sent": "Pedido de amizade enviado",
|
||||||
|
"friends": "Amigos",
|
||||||
|
"add": "Adicionar",
|
||||||
|
"sending": "A enviar",
|
||||||
|
"friends_list": "Lista de amigos",
|
||||||
|
"user_not_found": "Utilizador não encontrado",
|
||||||
|
"block_user": "Bloquear",
|
||||||
|
"add_friend": "Adicionar amigo",
|
||||||
|
"request_sent": "Pedido enviado",
|
||||||
|
"request_received": "Pedido recebido",
|
||||||
|
"accept_request": "Aceitar pedido",
|
||||||
|
"ignore_request": "Ignorar pedido",
|
||||||
|
"cancel_request": "Cancelar pedido",
|
||||||
|
"undo_friendship": "Desfazer amizade",
|
||||||
|
"request_accepted": "Pedido de amizade aceito",
|
||||||
|
"user_blocked_successfully": "Utilizador bloqueado com sucesso",
|
||||||
|
"user_block_modal_text": "Bloquear {{displayName}}",
|
||||||
|
"settings": "Definições",
|
||||||
|
"privacy": "Privacidade",
|
||||||
|
"private": "Privado",
|
||||||
|
"friends_only": "Apenas amigos",
|
||||||
|
"public": "Público",
|
||||||
|
"blocked_users": "Utilizadores bloqueados",
|
||||||
|
"unblock": "Desbloquear",
|
||||||
|
"no_friends_added": "Ainda não adicionaste amigos",
|
||||||
|
"pending": "Pendentes",
|
||||||
|
"no_pending_invites": "Não tens convites de amizade pendentes",
|
||||||
|
"no_blocked_users": "Não tens nenhum utilizador bloqueado",
|
||||||
|
"friend_code_copied": "Código de amigo copiado"
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
import { useContext, useEffect, useState } from "react";
|
import { useContext, useEffect, useState } from "react";
|
||||||
import ISO6391 from "iso-639-1";
|
import languages from "@cospired/i18n-iso-languages";
|
||||||
|
import languagesEn from "@cospired/i18n-iso-languages/langs/en.json";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
TextField,
|
TextField,
|
||||||
@ -21,6 +22,13 @@ interface LanguageOption {
|
|||||||
nativeName: string;
|
nativeName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
languages.registerLocale(languagesEn);
|
||||||
|
|
||||||
|
const customLanguageNames = {
|
||||||
|
ptBR: "Português (Brasil)",
|
||||||
|
ptPT: "Português (Portugal)",
|
||||||
|
};
|
||||||
|
|
||||||
export function SettingsGeneral() {
|
export function SettingsGeneral() {
|
||||||
const { t } = useTranslation("settings");
|
const { t } = useTranslation("settings");
|
||||||
|
|
||||||
@ -52,7 +60,9 @@ export function SettingsGeneral() {
|
|||||||
orderBy(
|
orderBy(
|
||||||
Object.keys(languageResources).map((language) => {
|
Object.keys(languageResources).map((language) => {
|
||||||
return {
|
return {
|
||||||
nativeName: ISO6391.getNativeName(language),
|
nativeName:
|
||||||
|
customLanguageNames[language] ||
|
||||||
|
languages.getName(language, "en"),
|
||||||
option: language,
|
option: language,
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
@ -93,7 +103,7 @@ export function SettingsGeneral() {
|
|||||||
|
|
||||||
function updateFormWithUserPreferences() {
|
function updateFormWithUserPreferences() {
|
||||||
if (userPreferences) {
|
if (userPreferences) {
|
||||||
const parsedLanguage = userPreferences.language.split("-")[0];
|
const parsedLanguage = userPreferences.language;
|
||||||
|
|
||||||
setForm((prev) => ({
|
setForm((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
|
@ -579,6 +579,11 @@
|
|||||||
"@types/conventional-commits-parser" "^5.0.0"
|
"@types/conventional-commits-parser" "^5.0.0"
|
||||||
chalk "^5.3.0"
|
chalk "^5.3.0"
|
||||||
|
|
||||||
|
"@cospired/i18n-iso-languages@^4.2.0":
|
||||||
|
version "4.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@cospired/i18n-iso-languages/-/i18n-iso-languages-4.2.0.tgz#094418a72f250fd612b3fc856b12f674a10864eb"
|
||||||
|
integrity sha512-vy8cq1176MTxVwB1X9niQjcIYOH29F8Huxtx8hLmT5Uz3l1ztGDGri8KN/4zE7LV2mCT7JrcAoNV/I9yb+lNUw==
|
||||||
|
|
||||||
"@develar/schema-utils@~2.6.5":
|
"@develar/schema-utils@~2.6.5":
|
||||||
version "2.6.5"
|
version "2.6.5"
|
||||||
resolved "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz"
|
resolved "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz"
|
||||||
|
Loading…
Reference in New Issue
Block a user