diff --git a/src/client/components/LanguageSelector.tsx b/src/client/components/LanguageSelector.tsx index f81f4e4..9f3d4e4 100644 --- a/src/client/components/LanguageSelector.tsx +++ b/src/client/components/LanguageSelector.tsx @@ -34,6 +34,11 @@ export const LanguageSelector: React.FC = React.memo(() => { key: 'jp', itemIcon: , }, + { + label: 'Português', + key: 'pt', + itemIcon: , + }, { label: 'Русский', key: 'ru', diff --git a/src/client/i18next-toolkit.config.cjs b/src/client/i18next-toolkit.config.cjs index ce05a00..d1336de 100644 --- a/src/client/i18next-toolkit.config.cjs +++ b/src/client/i18next-toolkit.config.cjs @@ -1,6 +1,6 @@ /** @type {import('@i18next-toolkit/cli').I18nextToolkitConfig} */ const config = { - locales: ['en', 'zh', 'jp', 'fr', 'de', 'ru'], + locales: ['en', 'zh', 'jp', 'fr', 'de', 'pt', 'ru'], verbose: true, translator: { type: 'openai', diff --git a/src/client/public/locales/pt/flag.png b/src/client/public/locales/pt/flag.png new file mode 100644 index 0000000..d405996 Binary files /dev/null and b/src/client/public/locales/pt/flag.png differ diff --git a/src/client/public/locales/pt/translation.json b/src/client/public/locales/pt/translation.json new file mode 100644 index 0000000..cbc52e5 --- /dev/null +++ b/src/client/public/locales/pt/translation.json @@ -0,0 +1,269 @@ +{ + "k10336b1": "Nada mais para carregar", + "k10c85f27": "Ignorar erro TLS", + "k112a7174": "Utilização", + "k1192dd43": "Por favor, seleccione a área de trabalho", + "k11e887ab": "É possível eliminar este item?", + "k11f09c87": "vistas", + "k1286421": "Nome de utilizador", + "k134e0d97": "Atual", + "k139b5f9a": "Mapa dos Visitantes", + "k14c6c425": "Resultado", + "k158336d6": "Tempo limite do pedido (s)", + "k1598e726": "visitante atual", + "k15ae36a6": "Navegador", + "k16c8909f": "Nome de apresentação", + "k172a09c3": "Sugestões", + "k1777bbf2": "Manual", + "k186365b3": "Gráfico de {{monitorName}}", + "k1964b988": "Parar", + "k1bd89236": "correr repórter com", + "k1c33c293": "Definições", + "k1eb5b3ed": "Visão geral", + "k20edf271": "24h", + "k21077124": "Editar", + "k2264aac": "Este ano", + "k246063be": "ID do chat", + "k2497052e": "Gráfico", + "k25b3dc00": "Código JS do script", + "k264de775": "A carregar mais...", + "k277e2626": "Disponível", + "k28059d49": "ID da área de trabalho atual", + "k2813d1f7": "Este mês", + "k2a6a7d8f": "DOWN", + "k2b2d40d4": "Código de teste", + "k2b463d4b": "Tem a certeza de que quer fazer isto?", + "k2c2712a4": "CPU", + "k2dad13e3": "Idioma", + "k2e6dbf02": "Para o e-mail", + "k2ea8a019": "Monitor", + "k30b5f01b": "Áreas de trabalho", + "k30e234ee": "Ainda não tem nenhum item no painel de controlo, entre no modo de edição e adicione o seu item", + "k310fee": "Últimos 30 dias", + "k32344f64": "Limpar dados", + "k3260f019": "Terminar sessão", + "k340547f0": "Desculpe, mas algo correu mal", + "k3471e956": "Repetir nova palavra-passe", + "k3542f88c": "Nome da telemetria: {{nome}} | eventos: {{num}}", + "k3834d1a6": "Adicionar página", + "k389db675": "Enviar", + "k38c62888": "Selecionar monitor", + "k3cedb797": "Segurança", + "k3d1822c5": "Confirmar ação", + "k3d3baf52": "tempo médio de visita", + "k3dbe79b1": "Apagar", + "k3de768a1": "Alterar palavra-passe", + "k3e757ddf": "Aqui ainda não há monitor", + "k3e8b13f8": "Aderir ao Discord", + "k3f36e17e": "Seguir o Twitter", + "k406e9ad8": "Confirmar", + "k42347b91": "Contagem de eventos do sítio Web", + "k42831fc1": "Adicionar Telemetria", + "k43e21ee9": "Descarregar Reportor de Cliente", + "k44186b66": "Contar", + "k44cad477": "(Atual)", + "k46f0adde": "Mapa de Visitantes", + "k47f43dbc": "Saúde de {{monitorName}}", + "k48186ce": "Voltar à página inicial", + "k4905ed7b": "NONE", + "k490ada32": "Adicionar sítio Web", + "k49e5f1d2": "1w", + "k4a369f75": "Elimina permanentemente os dados relevantes", + "k4ac4dd36": "Referenciadores", + "k4de48e75": "Máximo de tentativas", + "k4e08cf58": "Mostrar número de pormenor", + "k4eea9393": "Perfil", + "k4fe1b4de": "Telemetria", + "k506a90b2": "O domínio ou ip do seu servidor", + "k517747e1": "Últimas 24 horas", + "k51bac044": "Cancelar", + "k53ae02a5": "Novo", + "k542b527c": "Eventos", + "k56b4c80c": "Tema", + "k58267a45": "Tipo de Letra", + "k58f90514": "Token de Bot", + "k593cf342": "De certeza que eliminou este monitor?", + "k5a839f71": "Tempo de atividade", + "k5eb87a8b": "Início", + "k5ecf04b0": "Ver", + "k6067f0ff": "Ignorar erro TLS/SSL", + "k621317b5": "Nova página", + "k62e19375": "Última atualização em: {{date}}", + "k646a3a80": "Métricas de {{monitorName}}", + "k646c0ae2": "HDD", + "k67c5a895": "Ontem", + "k683be220": "Correr", + "k691b7170": "Parado", + "k6acf5248": "Recente", + "k6b36580f": "URL da empresa", + "k6bc9e414": "Iniciar sessão", + "k6ea11aff": "Obter!", + "k6f15bcc3": "Anfitrião", + "k717660a5": "RAM", + "k721589c1": "Hoje", + "k7350bd93": "Ao mesmo tempo, também podemos utilizá-lo em alguns cenários de aplicações do lado do cliente, como a recolha da frequência de utilização do cli, como a recolha da instalação de aplicações auto-hospedadas, etc.", + "k74a240": "Barra de Saúde", + "k75581e13": "CC", + "k75bfaaa6": "Adicionar este código ao script principal do seu sítio Web", + "k763816ac": "Pré-visualização", + "k784dd132": "Teste", + "k7927b824": "Tem a certeza de que pretende limpar todos os nós offline?", + "k7a132ce8": "Desculpe, mas esta página não foi encontrada", + "k7ac44a6e": "Chave de sessão", + "k7b74a43f": "visitantes", + "k7c95e6a5": "De certeza que eliminou esta página?", + "k7cac602a": "Estado", + "k7f01b47c": "Registo de auditoria", + "k7f4bcf6b": "Monitores", + "k8037cc6b": "Servidores", + "k8202c669": "Visitantes", + "k845abd5b": "Próximo passo", + "k84ce1618": "(24 horas)", + "k85344b23": "Carregar", + "k85c5fd4c": "Não foi definido qualquer monitor", + "k8746ec38": "Selecionar monitor", + "k887ae5cd": "Criar", + "k88a9bf01": "Mostrar crachá", + "k88d2647b": "Sítio Web", + "k89056082": "(30 dias)", + "k89d54f7a": "Contagem de Execução do Monitor", + "k8a44833f": "Serviços", + "k8bac6ae0": "6h", + "k8ef56a20": "Número máximo de tentativas antes de o serviço ser marcado como inativo e ser enviada uma notificação", + "k8f8fbf6": "Partilhar com...", + "k8ff3a55a": "Aviso", + "k9022468f": "Limpar offline", + "k90873752": "Palavra-passe antiga", + "k90a82c67": "Registar conta", + "k90b668e5": "Últimas 24 horas", + "k93374bc9": "Eliminar sítio Web", + "k951a939a": "Contagem de sites aceites", + "k97ddb155": "Mostrar resposta atual", + "k98f433ee": "Descarregar repórter de", + "k9991c290": "Comunidade", + "k9a272ecf": "Estes são os vossos servidores?", + "k9a3cc801": "Aceitar caracteres", + "k9add1fac": "Tráfego", + "k9be2209c": "Nome do sítio Web a apresentar", + "k9e32beea": "online", + "k9e759f8": "Lista de notificações", + "k9fa794aa": "Nome do sítio Web", + "ka0051b3d": "Domínio", + "ka0ddbfb": "Informações do sítio Web", + "ka2b9bc3c": "Período anterior", + "ka2fae1c6": "User Id", + "ka349cb17": "Não foram encontrados resultados", + "ka388d3bf": "Pode ligar um monitor que apresentará o estado de saúde na vista geral do sítio Web", + "ka3a22795": "Nome da Telemetria", + "ka40aea11": "Ou queres comunicar o estado do servidor no servidor Windows? muda para o separador Manual", + "ka44150a0": "Últimos 90 dias", + "ka68f2242": "Registar", + "ka6ee7455": "ID do sítio Web", + "ka71c12e1": "As duas palavras-passe não são consistentes", + "ka765ad32": "Notificação", + "ka8e41156": "Pesquisa e salto rápido", + "ka9d081ac": "Intervalo(s) de verificação", + "kaa0788e9": "Layout guardado com sucesso", + "kaa0ccaab": "De e-mail", + "kaadb73f3": "Luz", + "kab56db46": "Batimentos cardíacos", + "kab662431": "Caminho", + "kacbdae07": "Resposta média Resposta", + "kad9ea10d": "Confirmar a eliminação desta telemetria: [{{name}}]", + "kadef6c48": "Anterior {{label}}", + "kaf39be20": "Rede", + "kb01f4f95": "Concluído", + "kb0e351e0": "Atualizado", + "kb320aac4": "Monitorizado durante {{dayNum}} dias", + "kb35cde91": "Pesquisar", + "kb5673707": "Últimos 7 dias", + "kb659c1bc": "Exp. do certificado", + "kb8de8c50": "BCC", + "kbb31d3db": "Data da estatística", + "kbb4e12c5": "Escuro", + "kbb58c99c": "Eliminar com êxito", + "kbcf67f53": "Nova palavra-passe", + "kbd1e7dee": "Utilização: {{usage}}ms", + "kbd425e0e": "updatedAt", + "kc00cf2c7": "Isto mostra o resultado recente do seu monitor", + "kc0c6a913": "Nome do nó", + "kc1f1f6c9": "Tipo de notificação", + "kc45a417b": "SO", + "kc4910af7": "Alterar palavra-passe", + "kc4ab7848": "Limpar nó offline", + "kc4e91854": "Tem a certeza de que pretende apagar todos os batimentos cardíacos deste monitor?", + "kc5573507": "Adicionar", + "kc5f82d53": "Por exemplo: pushdeer://pushKey", + "kc6888ac4": "Auto", + "kc6cac621": "(Nenhum)", + "kc70d69ad": "Resposta", + "kc9b446d1": "Execução concluída", + "kcacbfde1": "Criar agora", + "kcaf5c873": "Acções", + "kcb8fd4ce": "Nenhum servidor online", + "kcbc00b39": "Seleccione o seu intervalo de datas", + "kcc3b034e": "Url", + "kcc50957": "Adicionar novo Monitor", + "kccaa732a": "Sem traços consecutivos", + "kccb42483": "Palavra-passe", + "kd031b383": "Vistas", + "kd1f7e695": "Confirmar para terminar a sessão", + "kd211e2d4": "Página de lançamentos", + "kd3262a4a": "Config", + "kd3396544": "Geralmente, utilizamos uma imagem em branco de um pixel para que não afecte a utilização normal do utilizador.", + "kd37efb26": "Notificações", + "kd46ab159": "Sem eventos", + "kd7279fa6": "Código", + "kd7985726": "{{num}} utilizadores", + "kd92fa3e7": "Nome do anfitrião", + "kdaa949e5": "Eventos de {{monitorName}}", + "kdb61adbb": "Ocultar offline", + "kdc51b5db": "Websites", + "kdd44ac01": "Nome de telemetria a apresentar", + "kdd55936a": "Porta do resolvedor", + "kde37bc27": "Voltar ao Administrador", + "kde657d5b": "Painel de controlo", + "kdeba7706": "Dispositivos", + "kdeecbfea": "Servidor de resolução", + "kdf5da1d2": "Nenhum / STARTTLS", + "kdf97690e": "Países", + "ke188f24b": "taxa de ressalto", + "ke1b5ca71": "Páginas", + "ke20a92c7": "Tipo de registo de recurso", + "ke2fe505b": "Esta semana", + "ke349bd66": "Confirmar a eliminação desta telemetria?", + "ke3a3f2f2": "Porto", + "ke46232fe": "Adicionar servidor", + "ke5b015e9": "Pode obter um token em https://t.me/BotFather.", + "ke6797c65": "Pode obter o seu ID de chat enviando uma mensagem para o bot e acedendo a este URL para ver o chat_id", + "ke9d2fef3": "Este mês", + "ke9dcaa64": "Não encontrei nenhuma notificação", + "kea954889": "Continuar", + "keaf7576f": "Título", + "ked37937b": "Métricas", + "ked7eea1a": "UP", + "ked8814bc": "Copiar", + "kedc69eb6": "Código de rastreio", + "kef701e50": "Adicionar Monitor", + "kefe27782": "A telemetria é uma tecnologia que reporta dados de acesso mesmo em páginas que não estão sob o seu controlo. Desde que o outro sítio Web permita a inserção de imagens de terceiros (por exemplo, fóruns, blogues e vários editores de texto rico), os dados podem ser recolhidos e utilizados para analisar as imagens quando estas são carregadas pelo utilizador.", + "kf19c917a": "Não existe nenhum sítio Web", + "kf1d60bfc": "À espera de receber pacote de relatórios", + "kf22813ad": "Personalizado", + "kf3b749ef": "ID de Chat Direto do Suporte / Grupo / Canal", + "kf55495e0": "Guardar", + "kf5bbb568": "'s visitor map", + "kf6bc1610": "Tipo de monitor", + "kf6db9ea5": "3h", + "kf7878d19": "Visão geral do sítio Web", + "kf7d5dbf8": "Ler mais", + "kf85b9b7d": "Introduzir um comando ou pesquisar...", + "kf8a5d26d": "Adicionar sítio Web agora", + "kf97b6f71": "Executar este comando na sua máquina linux", + "kf9877f28": "Ver detalhes", + "kfc98929b": "{{num}} dias", + "kfd33c459": "Cópia bem sucedida!", + "kfdaf0bb3": "Última vez online: {{tempo}}", + "kfe11d138": "Nome", + "kfedb6cd8": "Tem a certeza de que pretende eliminar todos os eventos deste monitor?", + "kff849f78": "Auto Fetch (Busca automática)" +} diff --git a/src/client/utils/constants.ts b/src/client/utils/constants.ts index 807df5a..f19622b 100644 --- a/src/client/utils/constants.ts +++ b/src/client/utils/constants.ts @@ -14,11 +14,16 @@ export const languages = [ { label: '日本語', key: 'jp', + }, + { + label: 'Português', + key: 'pt', }, { label: 'Русский', key: 'ru', }, + { label: '简体中文', key: 'zh',