Skip to content

Update translations#28119

Merged
harshach merged 1 commit into
mainfrom
translations
May 15, 2026
Merged

Update translations#28119
harshach merged 1 commit into
mainfrom
translations

Conversation

@harshach
Copy link
Copy Markdown
Collaborator

@harshach harshach commented May 14, 2026

Describe your changes:

Translates ~4,883 keys across 18 non-English locale files that were still falling back to English after recent UI additions (Context Center, governance workflows, ODCS contract import, permission debugger, search insights, etc.).

Languages updated: ar-sa, de-de, es-es, fr-fr, gl-es, he-he, ja-jp, ko-kr, mr-in, nl-nl, pr-pr, pt-br, pt-pt, ru-ru, th-th, tr-tr, zh-cn, zh-tw.

Brand names / acronyms (API, URL, SQL, dbt, OpenMetadata, Auth0, Okta, Azure, Storylane, etc.) and placeholders ({{variable}}, <0>...</0>, {table}, {column}) are preserved verbatim.

Type of change:

  • Improvement

High-level design:

N/A — locale-file value updates only. No schema, code, or API changes. Key structure and ordering are unchanged; only the localized values are different.

Tests:

Use cases covered

  • Switching the UI to each of the 18 supported locales should now show translated copy on screens recently added (Context Center, Marketplace, governance workflows, ODCS import, permission debugger, search insights, knowledge articles, etc.) rather than English fallbacks.

Unit tests

N/A — no logic changes.

Backend integration tests

N/A — no backend changes.

Ingestion integration tests

N/A — no ingestion changes.

Playwright (UI) tests

N/A — existing tests assert on en-US keys and data-testid attributes, not localized strings; they continue to pass unchanged.

Manual testing performed

  1. Verified all 18 files parse as valid JSON.
  2. Confirmed no actual duplicate keys exist in any locale (programmatic scan).
  3. Verified key counts match en-us.json (no keys added or removed; 4193 insertions / 4193 deletions in the diff).
  4. Spot-checked translated strings for major locales (es, fr, de, pt-br, ja, ko, zh-cn, ru, ar, nl, tr).

UI screen recording / screenshots:

Not applicable — copy-only change. Behaviour is identical; only the user-facing language differs per selected locale.

Checklist:

  • I have read the CONTRIBUTING document.
  • For UI changes: not applicable (copy-only; no behavioural change).
  • No JSON Schema changes.

@harshach harshach requested a review from a team as a code owner May 14, 2026 15:52
Copilot AI review requested due to automatic review settings May 14, 2026 15:52
@github-actions github-actions Bot added backend safe to test Add this label to run secure Github workflows on PRs labels May 14, 2026
@gitar-bot
Copy link
Copy Markdown

gitar-bot Bot commented May 14, 2026

Code Review ✅ Approved

Synchronizes translation files with latest source strings. No issues found.

Options

Display: compact → Showing less information.

Comment with these commands to change:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates OpenMetadata UI localization strings across multiple languages, replacing remaining English fallbacks with translated values to improve the non-English UI experience.

Changes:

  • Updated numerous locale entries to translated equivalents (e.g., workflow/marketplace/knowledge-center strings).
  • Improved/expanded longer help/tooltip translations for test-definition and workflow-related UI copy.
  • Standardized several commonly reused labels (bookmarks, save-and-next, etc.) across locales.

Reviewed changes

Copilot reviewed 12 out of 18 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json Updates Simplified Chinese translations for many UI labels/tooltips.
openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json Updates Russian translations for many UI labels/tooltips.
openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json Updates Brazilian Portuguese translations for many UI labels/tooltips.
openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json Updates Japanese translations for many UI labels/tooltips.
openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json Updates Hebrew translations for many UI labels/tooltips.
openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json Updates French translations for many UI labels/tooltips.
openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json Updates Spanish translations for many UI labels/tooltips.

Comment on lines +3286 to +3287
"test-definition-parameters-description": "定义测试用例的可配置输入参数。每个参数包括名称、数据类型(字符串、整数、日期等)、显示名称和可选的验证规则。可以在 SQL 表达式中使用 {{paramName}} 语法引用参数,并允许用户在创建测试用例时自定义测试行为。",
"test-definition-sql-query-help": "用于基于自定义 SQL 的测试定义的 SQL 表达式模板。支持替换变量:{table} {column} 用于运行时实体引用,{{paramName}} 用于用户定义的参数。此字段仅适用于 testPlatforms 设置为 'OpenMetadata' 的测试定义,用于执行自定义 SQL 查询以进行数据质量验证。",
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

These are not JSON duplicates — test-definition-parameters-description exists under both the top-level message object and the top-level server object, which are distinct namespaces with intentionally different content in en-us.json:

  • message.test-definition-parameters-description — long help text shown in the UI form
  • server.test-definition-parameters-description — shorter description used as a schema tooltip

Same for test-definition-sql-query-help. A programmatic scan of all 18 locale files (and en-us.json) confirms there are no real duplicate keys within any single object.

Comment on lines +3286 to +3287
"test-definition-parameters-description": "Определяет настраиваемые входные параметры для тестовых случаев. Каждый параметр включает имя, тип данных (строка, целое число, дата и т. д.), отображаемое имя и необязательные правила валидации. На параметры можно ссылаться в SQL-выражениях с помощью синтаксиса {{paramName}}, что позволяет пользователям настраивать поведение теста при создании тестовых случаев.",
"test-definition-sql-query-help": "Шаблон SQL-выражения для пользовательских определений тестов на основе SQL. Поддерживает переменные подстановки: {table} и {column} для ссылок на сущности во время выполнения, а также {{paramName}} для параметров, определённых пользователем. Это поле применимо только к определениям тестов с testPlatforms, установленным в 'OpenMetadata', и используется для выполнения пользовательских SQL-запросов для проверки качества данных.",
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

These are not JSON duplicates — test-definition-parameters-description exists under both the top-level message object and the top-level server object, which are distinct namespaces with intentionally different content in en-us.json:

  • message.test-definition-parameters-description — long help text shown in the UI form
  • server.test-definition-parameters-description — shorter description used as a schema tooltip

Same for test-definition-sql-query-help. A programmatic scan of all 18 locale files (and en-us.json) confirms there are no real duplicate keys within any single object.

Comment on lines +3286 to +3287
"test-definition-parameters-description": "Define parâmetros de entrada configuráveis para casos de teste. Cada parâmetro inclui um nome, tipo de dado (string, inteiro, data, etc.), nome de exibição e regras de validação opcionais. Os parâmetros podem ser referenciados em expressões SQL usando a sintaxe {{paramName}} e permitem que os usuários personalizem o comportamento do teste ao criar casos de teste.",
"test-definition-sql-query-help": "Modelo de expressão SQL para definições de teste personalizadas baseadas em SQL. Suporta variáveis de substituição: {table} e {column} para referências de entidade em tempo de execução, e {{paramName}} para parâmetros definidos pelo usuário. Este campo só é aplicável a definições de teste com testPlatforms definido como 'OpenMetadata' e é usado para executar consultas SQL personalizadas para validação de qualidade de dados.",
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

These are not JSON duplicates — test-definition-parameters-description exists under both the top-level message object and the top-level server object, which are distinct namespaces with intentionally different content in en-us.json:

  • message.test-definition-parameters-description — long help text shown in the UI form
  • server.test-definition-parameters-description — shorter description used as a schema tooltip

Same for test-definition-sql-query-help. A programmatic scan of all 18 locale files (and en-us.json) confirms there are no real duplicate keys within any single object.

Comment on lines +3286 to +3287
"test-definition-parameters-description": "テストケース用の設定可能な入力パラメーターを定義します。各パラメーターには、名前、データ型(文字列、整数、日付など)、表示名、およびオプションの検証ルールが含まれます。パラメーターは {{paramName}} 構文を使用してSQL式で参照でき、テストケース作成時にユーザーがテスト動作をカスタマイズできます。",
"test-definition-sql-query-help": "カスタムSQLベースのテスト定義用のSQL式テンプレート。実行時のエンティティ参照用の {table} および {column}、ユーザー定義パラメーター用の {{paramName}} などの置換変数をサポートします。このフィールドはtestPlatformsが 'OpenMetadata' に設定されたテスト定義にのみ適用され、データ品質検証用のカスタムSQLクエリを実行するために使用されます。",
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

These are not JSON duplicates — test-definition-parameters-description exists under both the top-level message object and the top-level server object, which are distinct namespaces with intentionally different content in en-us.json:

  • message.test-definition-parameters-description — long help text shown in the UI form
  • server.test-definition-parameters-description — shorter description used as a schema tooltip

Same for test-definition-sql-query-help. A programmatic scan of all 18 locale files (and en-us.json) confirms there are no real duplicate keys within any single object.

Comment on lines +3286 to +3287
"test-definition-parameters-description": "Définit les paramètres d'entrée configurables pour les cas de test. Chaque paramètre inclut un nom, un type de données (chaîne, entier, date, etc.), un nom d'affichage et des règles de validation optionnelles. Les paramètres peuvent être référencés dans des expressions SQL via la syntaxe {{paramName}} et permettent aux utilisateurs de personnaliser le comportement des tests lors de la création de cas de test.",
"test-definition-sql-query-help": "Modèle d'expression SQL pour les définitions de tests personnalisées basées sur SQL. Prend en charge les variables de substitution : {table} et {column} pour les références d'entités à l'exécution, et {{paramName}} pour les paramètres définis par l'utilisateur. Ce champ ne s'applique qu'aux définitions de test dont testPlatforms est défini sur 'OpenMetadata' et est utilisé pour exécuter des requêtes SQL personnalisées de validation de la qualité des données.",
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

These are not JSON duplicates — test-definition-parameters-description exists under both the top-level message object and the top-level server object, which are distinct namespaces with intentionally different content in en-us.json:

  • message.test-definition-parameters-description — long help text shown in the UI form
  • server.test-definition-parameters-description — shorter description used as a schema tooltip

Same for test-definition-sql-query-help. A programmatic scan of all 18 locale files (and en-us.json) confirms there are no real duplicate keys within any single object.

Comment on lines +3286 to +3287
"test-definition-parameters-description": "Define los parámetros de entrada configurables para los casos de prueba. Cada parámetro incluye un nombre, un tipo de dato (cadena, entero, fecha, etc.), un nombre de visualización y reglas de validación opcionales. Los parámetros pueden referenciarse en expresiones SQL usando la sintaxis {{paramName}} y permiten a los usuarios personalizar el comportamiento de la prueba al crear casos de prueba.",
"test-definition-sql-query-help": "Plantilla de expresión SQL para definiciones de prueba personalizadas basadas en SQL. Admite variables de sustitución: {table} y {column} para referencias de entidad en tiempo de ejecución, y {{paramName}} para parámetros definidos por el usuario. Este campo solo es aplicable a las definiciones de prueba con testPlatforms establecido en 'OpenMetadata' y se utiliza para ejecutar consultas SQL personalizadas para la validación de la calidad de los datos.",
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

These are not JSON duplicates — test-definition-parameters-description exists under both the top-level message object and the top-level server object, which are distinct namespaces with intentionally different content in en-us.json:

  • message.test-definition-parameters-description — long help text shown in the UI form
  • server.test-definition-parameters-description — shorter description used as a schema tooltip

Same for test-definition-sql-query-help. A programmatic scan of all 18 locale files (and en-us.json) confirms there are no real duplicate keys within any single object.

"access-policy": "访问策略",
"access-policy-name": "访问策略名称",
"access-request-plural": "Access Requests",
"access-request-plural": "访问请求",
@github-actions
Copy link
Copy Markdown
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 62%
62.54% (64746/103520) 43.25% (35263/81531) 46.06% (10377/22529)

@sonarqubecloud
Copy link
Copy Markdown

@github-actions
Copy link
Copy Markdown
Contributor

🔴 Playwright Results — 1 failure(s), 24 flaky

✅ 4062 passed · ❌ 1 failed · 🟡 24 flaky · ⏭️ 86 skipped

Shard Passed Failed Flaky Skipped
✅ Shard 1 299 0 0 4
🔴 Shard 2 758 1 8 8
🟡 Shard 3 778 0 6 7
🟡 Shard 4 786 0 4 18
✅ Shard 5 709 0 0 41
🟡 Shard 6 732 0 6 8

Genuine Failures (failed on all attempts)

Features/Glossary/GlossaryWorkflow.spec.ts › should display correct status badge color and icon (shard 2)
Error: �[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoHaveText�[2m(�[22m�[32mexpected�[39m�[2m)�[22m failed

Locator:  locator('[data-row-key*="StatusBadgeTerm1778780892827"]').locator('.status-badge')
Expected: �[32m"Draft"�[39m
Received: �[31m"In Review"�[39m
Timeout:  15000ms

Call log:
�[2m  - Expect "toHaveText" with timeout 15000ms�[22m
�[2m  - waiting for locator('[data-row-key*="StatusBadgeTerm1778780892827"]').locator('.status-badge')�[22m
�[2m    19 × locator resolved to <div class="status-badge inReview" data-testid=""PW%'2f62c0e1.Jolly9f8a476e".StatusBadgeTerm1778780892827-status">…</div>�[22m
�[2m       - unexpected value "In Review"�[22m

🟡 24 flaky test(s) (passed on retry)
  • Features/BulkEditEntity.spec.ts › Glossary (shard 2, 1 retry)
  • Features/ColumnBulkOperations.spec.ts › should show disabled edit button when no columns are selected (shard 2, 1 retry)
  • Features/ColumnBulkOperations.spec.ts › should not count aggregate parent row in drawer selected count (shard 2, 1 retry)
  • Features/ColumnSorting.spec.ts › Clicking Alphabetical option should sort columns by name (shard 2, 1 retry)
  • Features/KnowledgeCenter.spec.ts › Article mentions in description should working for Knowledge Center (shard 2, 1 retry)
  • Features/KnowledgeCenterTextEditor.spec.ts › Rich Text Editor - Text Formatting (shard 2, 1 retry)
  • Features/KnowledgeCenterTextEditor.spec.ts › Rich Text Editor - Text Formatting (shard 2, 1 retry)
  • Features/KnowledgeCenterTextEditor.spec.ts › Rich Text Editor - Text Formatting (shard 2, 1 retry)
  • Features/RTL.spec.ts › Verify Following widget functionality (shard 3, 1 retry)
  • Features/UserProfileOnlineStatus.spec.ts › Should show online status badge on user profile for active users (shard 3, 1 retry)
  • Flow/ConditionalPermissions.spec.ts › User with owner permission can only view owned Storage Services (shard 3, 1 retry)
  • Flow/ConditionalPermissions.spec.ts › User with matchAnyTag permission can only view Pipeline Services with the tag (shard 3, 1 retry)
  • Flow/ConditionalPermissions.spec.ts › User with owner permission can only view owned Database (shard 3, 1 retry)
  • Flow/PersonaFlow.spec.ts › Set default persona for team should work properly (shard 3, 1 retry)
  • Pages/CustomProperties.spec.ts › Set & Update all CP types on apiCollection (shard 4, 1 retry)
  • Pages/DataContracts.spec.ts › Create Data Contract and validate for Pipeline (shard 4, 1 retry)
  • Pages/DataProductAndSubdomains.spec.ts › Subdomain assets count reflects in parent domain (shard 4, 1 retry)
  • Pages/DomainUIInteractions.spec.ts › Delete data product via UI (shard 4, 1 retry)
  • Pages/Lineage/DataAssetLineage.spec.ts › Column lineage for mlModel -> searchIndex (shard 6, 1 retry)
  • Pages/Lineage/LineageFilters.spec.ts › Verify lineage schema filter selection (shard 6, 1 retry)
  • Pages/Lineage/LineageRightPanel.spec.ts › Verify custom properties tab IS visible for supported type: searchIndex (shard 6, 1 retry)
  • Pages/ServiceEntity.spec.ts › Update description (shard 6, 1 retry)
  • Pages/ServiceEntity.spec.ts › Tag Add, Update and Remove (shard 6, 1 retry)
  • Pages/Users.spec.ts › Should add, remove, and navigate to persona pages for Personas section (shard 6, 1 retry)

📦 Download artifacts

How to debug locally
# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip    # view trace

@harshach harshach merged commit e5accb3 into main May 15, 2026
64 of 65 checks passed
@harshach harshach deleted the translations branch May 15, 2026 20:18
harshach added a commit that referenced this pull request May 16, 2026
Conflicts: 10 locale files (ar-sa, gl-es, ko-kr, mr-in, nl-nl, pr-pr, pt-pt,
th-th, tr-tr, zh-tw). main rev e5accb3 shipped a translation update via
PR #28119 that overlapped the DAR keys this branch added in en-us. Took
main's per-locale versions verbatim, then re-ran `yarn i18n` to repropagate
the 14 DAR keys (access-type, approver, data-access-request*, grant-access,
granted, mark-as-granted, requested-by, sort-{ascending,descending,order})
from en-us across all 17 locales.

No code conflicts; the merge is purely an i18n refresh.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend safe to test Add this label to run secure Github workflows on PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants