diff --git a/cmd/generate_changelog/incoming/1779.txt b/cmd/generate_changelog/incoming/1779.txt new file mode 100644 index 00000000..106b70ad --- /dev/null +++ b/cmd/generate_changelog/incoming/1779.txt @@ -0,0 +1,7 @@ +### PR [#1779](https://github.com/danielmiessler/Fabric/pull/1779) by [ksylvan](https://github.com/ksylvan): Improve pt-BR Translation - Thanks to @JuracyAmerico + +- Fix: improve PT-BR translation naturalness and fluency +- Replace "dos" with "entre" for better preposition usage +- Add definite articles where natural in Portuguese +- Clarify "configurações padrão" instead of just "padrões" +- Keep technical terms visible like "padrões/patterns" diff --git a/internal/i18n/i18n_variants_test.go b/internal/i18n/i18n_variants_test.go index 64ff2c13..d7593d1e 100644 --- a/internal/i18n/i18n_variants_test.go +++ b/internal/i18n/i18n_variants_test.go @@ -132,7 +132,7 @@ func TestPortugueseVariantDistinction(t *testing.T) { } // Check a key that should differ between variants - // "output_to_file" should be "Saída para arquivo" in pt-BR and "Saída para ficheiro" in pt-PT + // "output_to_file" should be "Exportar para arquivo" in pt-BR and "Saída para ficheiro" in pt-PT msgBR := localizerBR.MustLocalize(&goi18n.LocalizeConfig{MessageID: "output_to_file"}) msgPT := localizerPT.MustLocalize(&goi18n.LocalizeConfig{MessageID: "output_to_file"}) @@ -141,8 +141,8 @@ func TestPortugueseVariantDistinction(t *testing.T) { } // Verify specific expected values - if msgBR != "Saída para arquivo" { - t.Errorf("pt-BR 'output_to_file' = %q; want 'Saída para arquivo'", msgBR) + if msgBR != "Exportar para arquivo" { + t.Errorf("pt-BR 'output_to_file' = %q; want 'Exportar para arquivo'", msgBR) } if msgPT != "Saída para ficheiro" { t.Errorf("pt-PT 'output_to_file' = %q; want 'Saída para ficheiro'", msgPT) @@ -169,7 +169,7 @@ func TestBackwardCompatibility(t *testing.T) { t.Errorf("'pt' and 'pt-BR' returned different translations: %q vs %q", msgPT, msgBR) } - if msgPT != "Saída para arquivo" { - t.Errorf("'pt' did not default to Brazilian Portuguese. Got %q, want 'Saída para arquivo'", msgPT) + if msgPT != "Exportar para arquivo" { + t.Errorf("'pt' did not default to Brazilian Portuguese. Got %q, want 'Exportar para arquivo'", msgPT) } } diff --git a/internal/i18n/locales/de.json b/internal/i18n/locales/de.json index a245906f..37ad7c0b 100644 --- a/internal/i18n/locales/de.json +++ b/internal/i18n/locales/de.json @@ -133,4 +133,4 @@ "no_description_available": "Keine Beschreibung verfügbar", "i18n_download_failed": "Fehler beim Herunterladen der Übersetzung für Sprache '%s': %v", "i18n_load_failed": "Fehler beim Laden der Übersetzungsdatei: %v" -} \ No newline at end of file +} diff --git a/internal/i18n/locales/fa.json b/internal/i18n/locales/fa.json index 5ba406d2..611e44e3 100644 --- a/internal/i18n/locales/fa.json +++ b/internal/i18n/locales/fa.json @@ -133,4 +133,4 @@ "no_description_available": "توضیحی در دسترس نیست", "i18n_download_failed": "دانلود ترجمه برای زبان '%s' ناموفق بود: %v", "i18n_load_failed": "بارگذاری فایل ترجمه ناموفق بود: %v" -} \ No newline at end of file +} diff --git a/internal/i18n/locales/fr.json b/internal/i18n/locales/fr.json index 62345375..f90fb7a1 100644 --- a/internal/i18n/locales/fr.json +++ b/internal/i18n/locales/fr.json @@ -133,4 +133,4 @@ "no_description_available": "Aucune description disponible", "i18n_download_failed": "Échec du téléchargement de la traduction pour la langue '%s' : %v", "i18n_load_failed": "Échec du chargement du fichier de traduction : %v" -} \ No newline at end of file +} diff --git a/internal/i18n/locales/it.json b/internal/i18n/locales/it.json index ba917924..fbd4ab5d 100644 --- a/internal/i18n/locales/it.json +++ b/internal/i18n/locales/it.json @@ -133,4 +133,4 @@ "no_description_available": "Nessuna descrizione disponibile", "i18n_download_failed": "Fallito il download della traduzione per la lingua '%s': %v", "i18n_load_failed": "Fallito il caricamento del file di traduzione: %v" -} \ No newline at end of file +} diff --git a/internal/i18n/locales/ja.json b/internal/i18n/locales/ja.json index ad6f6834..293da069 100644 --- a/internal/i18n/locales/ja.json +++ b/internal/i18n/locales/ja.json @@ -133,4 +133,4 @@ "no_description_available": "説明がありません", "i18n_download_failed": "言語 '%s' の翻訳のダウンロードに失敗しました: %v", "i18n_load_failed": "翻訳ファイルの読み込みに失敗しました: %v" -} \ No newline at end of file +} diff --git a/internal/i18n/locales/pt-BR.json b/internal/i18n/locales/pt-BR.json index 54d51b69..4c162151 100644 --- a/internal/i18n/locales/pt-BR.json +++ b/internal/i18n/locales/pt-BR.json @@ -43,33 +43,33 @@ "command_completed_successfully": "Comando concluído com sucesso", "output_truncated": "Saída: %s...", "output_full": "Saída: %s", - "choose_pattern_from_available": "Escolha um padrão dos padrões disponíveis", - "pattern_variables_help": "Valores para variáveis de padrão, ex. -v=#role:expert -v=#points:30", - "choose_context_from_available": "Escolha um contexto dos contextos disponíveis", + "choose_pattern_from_available": "Escolha um padrão entre os padrões disponíveis", + "pattern_variables_help": "Valores para variáveis do padrão, ex. -v=#role:expert -v=#points:30", + "choose_context_from_available": "Escolha um contexto entre os contextos disponíveis", "choose_session_from_available": "Escolha uma sessão das sessões disponíveis", - "attachment_path_or_url_help": "Caminho do anexo ou URL (ex. para mensagens de reconhecimento de imagem do OpenAI)", - "run_setup_for_reconfigurable_parts": "Executar configuração para todas as partes reconfiguráveis do fabric", + "attachment_path_or_url_help": "Caminho para o anexo ou URL (ex. para mensagens de reconhecimento de imagem do OpenAI)", + "run_setup_for_reconfigurable_parts": "Executar a configuração para todas as partes reconfiguráveis do fabric", "set_temperature": "Definir temperatura", "set_top_p": "Definir top P", "stream_help": "Streaming", "set_presence_penalty": "Definir penalidade de presença", - "use_model_defaults_raw_help": "Usar os padrões do modelo sem enviar opções de chat (como temperatura, etc.) e usar o papel de usuário em vez do papel de sistema para padrões.", + "use_model_defaults_raw_help": "Usar as configurações padrão do modelo sem enviar opções de chat (como temperatura, etc.) e usar o papel de usuário em vez do papel de sistema para padrões.", "set_frequency_penalty": "Definir penalidade de frequência", - "list_all_patterns": "Listar todos os padrões", + "list_all_patterns": "Listar todos os padrões/patterns", "list_all_available_models": "Listar todos os modelos disponíveis", "list_all_contexts": "Listar todos os contextos", "list_all_sessions": "Listar todas as sessões", - "update_patterns": "Atualizar padrões", + "update_patterns": "Atualizar os padrões/patterns", "messages_to_send_to_chat": "Mensagens para enviar ao chat", - "copy_to_clipboard": "Copiar para área de transferência", + "copy_to_clipboard": "Copiar para a área de transferência", "choose_model": "Escolher modelo", "specify_vendor_for_model": "Especificar fornecedor para o modelo selecionado (ex. -V \"LM Studio\" -m openai/gpt-oss-20b)", "model_context_length_ollama": "Comprimento do contexto do modelo (afeta apenas ollama)", - "output_to_file": "Saída para arquivo", + "output_to_file": "Exportar para arquivo", "output_entire_session": "Saída de toda a sessão (incluindo temporária) para o arquivo de saída", "number_of_latest_patterns": "Número dos padrões mais recentes a listar", "change_default_model": "Mudar modelo padrão", - "youtube_url_help": "Vídeo do YouTube ou \"URL\" de playlist para obter transcrição, comentários e enviar ao chat ou imprimir no console e armazenar no arquivo de saída", + "youtube_url_help": "Vídeo do YouTube ou URL da playlist para obter transcrição, comentários e enviar ao chat ou imprimir no console e armazenar no arquivo de saída", "prefer_playlist_over_video": "Preferir playlist ao vídeo se ambos os IDs estiverem presentes na URL", "grab_transcript_from_youtube": "Obter transcrição do vídeo do YouTube e enviar ao chat (usado por padrão).", "grab_transcript_with_timestamps": "Obter transcrição do vídeo do YouTube com timestamps e enviar ao chat", diff --git a/internal/i18n/locales/zh.json b/internal/i18n/locales/zh.json index 95fb9938..b13f2d80 100644 --- a/internal/i18n/locales/zh.json +++ b/internal/i18n/locales/zh.json @@ -133,4 +133,4 @@ "no_description_available": "没有可用描述", "i18n_download_failed": "下载语言 '%s' 的翻译失败: %v", "i18n_load_failed": "加载翻译文件失败: %v" -} \ No newline at end of file +}