|
| 1 | +<!-- SPDX-License-Identifier: Apache-2.0 |
| 2 | + https://www.apache.org/licenses/LICENSE-2.0 --> |
| 3 | + |
| 4 | +# Portuguese (pt) Translation Agent Skill |
| 5 | + |
| 6 | +**Locale code:** `pt` |
| 7 | +**Preferred variant:** Mix of pt-BR / pt-PT as visible in existing files (Brazilian spelling often preferred, but some European forms like "Secção" appear) |
| 8 | + |
| 9 | +This file contains locale-specific guidelines so AI translation agents produce new Portuguese strings that stay 100% consistent with the existing translations in: |
| 10 | + |
| 11 | +`airflow-core/src/airflow/ui/public/i18n/locales/pt/*.json` |
| 12 | + |
| 13 | +## 1. Core Airflow Terminology |
| 14 | + |
| 15 | +- Keep these terms **in English unchanged** (case-sensitive): |
| 16 | + - Dag / Dags |
| 17 | + - Asset / Assets / Asset Events |
| 18 | + - Backfill / Backfills |
| 19 | + - XCom / XComs |
| 20 | + - TaskInstance, DagRun, Triggerer, Executor, Pool, Provider, etc. |
| 21 | +- Never use "DAG" – always "Dag" |
| 22 | +- Product names: "Airflow" stays "Airflow" |
| 23 | + |
| 24 | +## 2. Portuguese-Specific Guidelines |
| 25 | + |
| 26 | +- Use natural, fluent Portuguese. |
| 27 | +- Respect gender and number agreement (feminine/masculine, singular/plural). |
| 28 | +- Follow existing i18next plural keys: `_one`, `_many`, `_other`, `_zero` |
| 29 | +- Capitalization: Sentence case for descriptions, title-like for headers/buttons (match existing files). |
| 30 | +- Spelling/vocab: Follow patterns in current JSON (e.g. "Excluir", "Adicionar", "Executando", "Enfileirado", "Secção", "detetadas", "Sobreescreve"). |
| 31 | + |
| 32 | +## 3. Examples from Existing Translations |
| 33 | + |
| 34 | +**Always keep in English:** |
| 35 | + |
| 36 | +- "Dag" → "Dag" |
| 37 | +- "Asset" → "Asset" |
| 38 | +- "Backfill" → "Backfill" |
| 39 | +- "XCom" → "XCom" |
| 40 | + |
| 41 | +**Common translated patterns:** |
| 42 | + |
| 43 | +- "task_one" → "Tarefa" |
| 44 | +- "task_many" → "Tarefas" |
| 45 | +- "dagRun_one" → "Execução do Dag" |
| 46 | +- "dagRun_many" → "Execuções do Dag" |
| 47 | +- "allRuns" → "Todas as Execuções" |
| 48 | +- "running" → "Executando" |
| 49 | +- "failed" → "Falha" |
| 50 | +- "success" → "Sucesso" |
| 51 | +- "queued" → "Enfileirado" |
| 52 | +- "Add" → "Adicionar" |
| 53 | +- "Delete" → "Excluir" |
| 54 | +- "Edit" → "Editar" |
| 55 | +- "Save" → "Salvar" |
| 56 | +- "Test" → "Testar" |
| 57 | +- "Import" → "Importar" |
| 58 | +- "Config" → "Configuração do Airflow" |
| 59 | + |
| 60 | +## 4. Agent Instructions (DO / DON'T) |
| 61 | + |
| 62 | +**DO:** |
| 63 | + |
| 64 | +- Match tone, style, gender, casing from existing `pt/*.json` files |
| 65 | +- Use natural Portuguese readable by Brazilian & Portuguese users |
| 66 | +- Preserve all placeholders: `{{count}}`, `{{dagName}}`, etc. |
| 67 | +- For plurals: provide all needed suffixes if source has them |
| 68 | + |
| 69 | +**DON'T:** |
| 70 | + |
| 71 | +- Translate core terms listed in section 1 |
| 72 | +- Use inconsistent gender (e.g. "Execução de Dag" instead of "Execução do Dag") |
| 73 | +- Invent new vocabulary when equivalent already exists |
| 74 | +- Translate hotkeys, code references, or file paths |
| 75 | + |
| 76 | +--- |
| 77 | + |
| 78 | +**Version:** 1.0 – based directly on current `pt/` JSON files (Feb 2026) |
0 commit comments