Skip to content

[RFC] Feat(ui): Add Portuguese (Brazil) pt-BR translation + CODEOWNER#67567

Draft
andreahlert wants to merge 14 commits into
apache:mainfrom
andreahlert:feat/add-pt-br-translation
Draft

[RFC] Feat(ui): Add Portuguese (Brazil) pt-BR translation + CODEOWNER#67567
andreahlert wants to merge 14 commits into
apache:mainfrom
andreahlert:feat/add-pt-br-translation

Conversation

@andreahlert
Copy link
Copy Markdown
Contributor

Add Portuguese (Brazil) - pt-BR - as a new supported UI locale.

Reopening of #62965 (closed; reopen disabled). Same branch, same scope.

Ownership (I am not an Apache Airflow committer):

  • Translation owner (proposed): @andreahlert.
  • Code owner / translation sponsor (requested): I am asking a committer to act as code owner and, if needed, translation sponsor for this locale, so that the approval process in section 6.1 can be carried out (including the dev list thread and PMC vote if the translation owner is a non-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?
  • Yes

@boring-cyborg boring-cyborg Bot added area:dev-tools area:translations area:UI Related to UI/UX. For Frontend Developers. backport-to-v3-2-test Mark PR with this label to backport to v3-2-test branch labels May 26, 2026
@andreahlert
Copy link
Copy Markdown
Contributor Author

Resuming this work after #62965 was closed.

@tatiana kindly agreed to support the review of the pt-BR translation. Thanks!

andreahlert and others added 12 commits May 26, 2026 14:11
- 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>
@andreahlert andreahlert force-pushed the feat/add-pt-br-translation branch from 93f374d to eb46d1f Compare May 26, 2026 18:07
Copy link
Copy Markdown
Contributor

@tatiana tatiana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"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",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"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",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"extraFieldsJson": "Campos Extra JSON",
"extraFieldsJson": "Campos Extras JSON",

https://g1.globo.com/educacao/blog/dicas-de-portugues/24.html

Comment thread airflow-core/src/airflow/ui/public/i18n/locales/pt-BR/admin.json Outdated
Comment thread airflow-core/src/airflow/ui/public/i18n/locales/pt-BR/admin.json Outdated
"edit": "Editar Variável",
"form": {
"invalidJson": "JSON Inválido",
"keyMaxLength": "Chave pode conter um máximo de 250 caracteres",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"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",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was unsure about this one, is it meant to search for variables or keys?

Suggested change
"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\", ...})"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this support uploading multiple variables in a single JSON, or is it a JSON per file? If the second, we should change to:

Suggested change
"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",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"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.",

andreahlert and others added 2 commits May 26, 2026 16:15
Co-authored-by: Tatiana Al-Chueyr <tatiana.alchueyr@gmail.com>
Co-authored-by: Tatiana Al-Chueyr <tatiana.alchueyr@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:dev-tools area:translations area:UI Related to UI/UX. For Frontend Developers. backport-to-v3-2-test Mark PR with this label to backport to v3-2-test branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants