[RFC] Feat(ui): Add Portuguese (Brazil) pt-BR translation + CODEOWNER#67567
[RFC] Feat(ui): Add Portuguese (Brazil) pt-BR translation + CODEOWNER#67567andreahlert wants to merge 14 commits into
Conversation
- Add pt-BR to PLURAL_SUFFIXES (same as pt) - Add pt-BR locale files (from pt as base for Brazilian Portuguese) - Add pt-BR to supportedLanguages in config.ts - Add CODEOWNERS entry for pt-BR (code owner: @potiuk, translation owner: @andreahlert) Signed-off-by: André Ahlert <andre@aex.partners>
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com> Signed-off-by: André Ahlert <andre@aex.partners>
Signed-off-by: André Ahlert <andre@aex.partners>
- Translate all TODO placeholders in pt-BR locale to Brazilian Portuguese - Add @jscheffl as CODEOWNER for pt-BR - Set pt-BR plural suffixes to MOST_COMMON_PLURAL_SUFFIXES (_one, _other) in breeze translation checker Signed-off-by: André Ahlert <andre@aex.partners>
Signed-off-by: André Ahlert <andre@aex.partners>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: André Ahlert <andre@aex.partners>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: André Ahlert <andre@aex.partners>
The pools key was removed from the English source (en/common.json) in upstream but remained in pt-BR, causing divergence from the canonical key set. Remove it to keep the locale in sync. Signed-off-by: André Ahlert <andre@aex.partners>
Remove orphaned keys no longer present in English source: - components.json: backfill.tooltip, dagWarnings.error_other, fileUpload.files_one - dag.json: (no orphaned keys found) Add missing keys from English source: - components.json: backfill.overrideExistingParams, backfill.scheduleNotBackfillable, graph.zoomToTask - dag.json: grid.buttons.newerRuns, grid.buttons.olderRuns, header.status.deactivated, logs.search.* Signed-off-by: André Ahlert <andre@aex.partners>
The check-translation-completeness script expects _one/_other plural
forms for any key containing {{count}}. Add missing plural keys:
- common.json: toaster.bulkClear/bulkDelete/bulkUpdate/import descriptions
- components.json: fileUpload.files, limitedList, limitedList.allItems,
limitedList.clickToOpenFull
- dags.json: assetSchedule, runAndTaskActions.affectedTasks.title
Signed-off-by: André Ahlert <andre@aex.partners>
Signed-off-by: André Ahlert <andre@aex.partners>
…21 extras) Signed-off-by: André Ahlert <andre@aex.partners>
93f374d to
eb46d1f
Compare
tatiana
left a comment
There was a problem hiding this comment.
Thanks for the contribution, @andreahlert! I reviewed only until admin.json (included). I'll try to review bit by bit, and will let you know once I finish.
| }, | ||
| "config": { | ||
| "columns": { | ||
| "section": "Secção" |
There was a problem hiding this comment.
| "section": "Secção" | |
| "section": "Seção" |
| "connectionIdRequired": "ID da Conexão é obrigatório", | ||
| "connectionIdRequirement": "ID da Conexão não pode conter somente espaços", | ||
| "connectionTypeRequired": "Tipo de Conexão é obrigatório", | ||
| "extraFields": "Campos Extra", |
There was a problem hiding this comment.
| "extraFields": "Campos Extra", | |
| "extraFields": "Campos Extras", |
https://g1.globo.com/educacao/blog/dicas-de-portugues/24.html
| "connectionIdRequirement": "ID da Conexão não pode conter somente espaços", | ||
| "connectionTypeRequired": "Tipo de Conexão é obrigatório", | ||
| "extraFields": "Campos Extra", | ||
| "extraFieldsJson": "Campos Extra JSON", |
There was a problem hiding this comment.
| "extraFieldsJson": "Campos Extra JSON", | |
| "extraFieldsJson": "Campos Extras JSON", |
https://g1.globo.com/educacao/blog/dicas-de-portugues/24.html
| "edit": "Editar Variável", | ||
| "form": { | ||
| "invalidJson": "JSON Inválido", | ||
| "keyMaxLength": "Chave pode conter um máximo de 250 caracteres", |
There was a problem hiding this comment.
| "keyMaxLength": "Chave pode conter um máximo de 250 caracteres", | |
| "keyMaxLength": "Chave pode conter no máximo 250 caracteres", |
| "uploadPlaceholder": "Upload um arquivo JSON contendo variáveis (exemplo: {\"key\": \"value\", ...})" | ||
| }, | ||
| "noRowsMessage": "Nenhuma variável encontrada", | ||
| "searchPlaceholder": "Pesquisar Chaves", |
There was a problem hiding this comment.
I was unsure about this one, is it meant to search for variables or keys?
| "searchPlaceholder": "Pesquisar Chaves", | |
| "searchPlaceholder": "Pesquisar variáveis", |
| }, | ||
| "title": "Importar Variáveis", | ||
| "upload": "Upload um Arquivo JSON", | ||
| "uploadPlaceholder": "Upload um arquivo JSON contendo variáveis (exemplo: {\"key\": \"value\", ...})" |
There was a problem hiding this comment.
Does this support uploading multiple variables in a single JSON, or is it a JSON per file? If the second, we should change to:
| "uploadPlaceholder": "Upload um arquivo JSON contendo variáveis (exemplo: {\"key\": \"value\", ...})" | |
| "uploadPlaceholder": "Upload um arquivo JSON contendo uma variável (exemplo: {\"key\": \"value\", ...})" |
| "title": "Ignorar" | ||
| } | ||
| }, | ||
| "title": "Importar Variáveis", |
There was a problem hiding this comment.
Is this intended to be plural?
| "errorParsingJsonFile": "Erro ao Analisar Arquivo JSON: Upload um arquivo JSON contendo variáveis (exemplo: {\"key\": \"value\", ...}).", | ||
| "options": { | ||
| "fail": { | ||
| "description": "Falha na importação se forem detetadas variáveis que já existem.", |
There was a problem hiding this comment.
| "description": "Falha na importação se forem detetadas variáveis que já existem.", | |
| "description": "Falha na importação se forem detectadas variáveis que já existem.", |
Co-authored-by: Tatiana Al-Chueyr <tatiana.alchueyr@gmail.com>
Co-authored-by: Tatiana Al-Chueyr <tatiana.alchueyr@gmail.com>
Add Portuguese (Brazil) - pt-BR - as a new supported UI locale.
Ownership (I am not an Apache Airflow committer):
Once a committer confirms they will act as code owner (and sponsor if applicable), the CODEOWNERS entry in this PR will be updated accordingly. After that, the usual approval and dev list steps from the i18n README can proceed.
Was generative AI tooling used to co-author this PR?
{pr_number}.significant.rstor{issue_number}.significant.rst, in airflow-core/newsfragments.