Skip to content

Refactor UI translation files to use nested keys for DRYness#68285

Open
pranampagi wants to merge 5 commits into
apache:mainfrom
pranampagi:simplify_translation
Open

Refactor UI translation files to use nested keys for DRYness#68285
pranampagi wants to merge 5 commits into
apache:mainfrom
pranampagi:simplify_translation

Conversation

@pranampagi

@pranampagi pranampagi commented Jun 9, 2026

Copy link
Copy Markdown

This PR modifies the Airflow UI translation files in the English (en) locale to utilize the $t() function for nested text references.

What and Why:
Previously, core concepts (like "Dag", "Task", "Connection") were repeated verbatim across hundreds of keys. This creates a large maintenance surface area and leaves room for translation inconsistencies across languages.
To make the localization files more DRY (Don't Repeat Yourself), this PR:

  1. Establishes base concepts in common.json.
  2. Implements internal nesting within common.json and admin.json (e.g., "$t(connections.connection_one)").
  3. Implements cross-namespace nesting in dags.json (e.g., "$t(common:dag_one)") to prove that base concepts can be centralized and accessed from separate JSON files.

Closes: #68252


Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

pranampagi and others added 2 commits June 9, 2026 18:02
This commit modifies the English translation files to utilize the $t() function for nested text references, significantly reducing translation duplication and making the localization files more DRY.

Specific changes include:
- Establishing base concepts (Dag, Task, Asset, etc.) in `common.json`.
- Implementing internal nesting within `common.json` and `admin.json` (for connection, pool, and variable strings).
- Implementing cross-namespace nesting (e.g., using `$t(common:dag_one)`) in `dags.json` to prove that base concepts can be centralized and accessed from separate JSON files.

This ensures consistency across the UI and reduces the maintenance surface area for translating future languages.
@boring-cyborg boring-cyborg Bot added area:translations area:UI Related to UI/UX. For Frontend Developers. translation:default labels Jun 9, 2026
@boring-cyborg

boring-cyborg Bot commented Jun 9, 2026

Copy link
Copy Markdown

Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contributors' Guide
Here are some useful points:

  • Pay attention to the quality of your code (ruff, mypy and type annotations). Our prek-hooks will help you with that.
  • In case of a new feature add useful documentation (in docstrings or in docs/ directory). Adding a new operator? Check this short guide Consider adding an example Dag that shows how users should use it.
  • Consider using Breeze environment for testing locally, it's a heavy docker but it ships with a working Airflow and a lot of integrations.
  • Be patient and persistent. It might take some time to get a review or get the final approval from Committers.
  • Please follow ASF Code of Conduct for all communication including (but not limited to) comments on Pull Requests, Mailing list and Slack.
  • Be sure to read the Airflow Coding style.
  • Always keep your Pull Requests rebased, otherwise your build might fail due to changes not related to your commits.
    Apache Airflow is a community-driven project and together we are making it better 🚀.
    In case of doubts contact the developers at:
    Mailing List: dev@airflow.apache.org
    Slack: https://s.apache.org/airflow-slack

@pranampagi

Copy link
Copy Markdown
Author

Validation performed:

  • Ran a local Node script utilizing Airflow's exact i18next configuration to verify resolution paths.
  • Confirmed $t(common:dag_one) resolves to Dag across namespaces.
  • Confirmed $t(connections.connection_one) resolves to Connection internally.
  • Verified pnpm build completes successfully with the updated translation files.
  • Verified pre-commit passes specifically for the modified .json files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:translations area:UI Related to UI/UX. For Frontend Developers. translation:default

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Simplify translation files by using nesting

1 participant