Update translations#28119
Conversation
Code Review ✅ ApprovedSynchronizes translation files with latest source strings. No issues found. OptionsDisplay: compact → Showing less information. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
There was a problem hiding this comment.
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. |
| "test-definition-parameters-description": "定义测试用例的可配置输入参数。每个参数包括名称、数据类型(字符串、整数、日期等)、显示名称和可选的验证规则。可以在 SQL 表达式中使用 {{paramName}} 语法引用参数,并允许用户在创建测试用例时自定义测试行为。", | ||
| "test-definition-sql-query-help": "用于基于自定义 SQL 的测试定义的 SQL 表达式模板。支持替换变量:{table} 和 {column} 用于运行时实体引用,{{paramName}} 用于用户定义的参数。此字段仅适用于 testPlatforms 设置为 'OpenMetadata' 的测试定义,用于执行自定义 SQL 查询以进行数据质量验证。", |
There was a problem hiding this comment.
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 formserver.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.
| "test-definition-parameters-description": "Определяет настраиваемые входные параметры для тестовых случаев. Каждый параметр включает имя, тип данных (строка, целое число, дата и т. д.), отображаемое имя и необязательные правила валидации. На параметры можно ссылаться в SQL-выражениях с помощью синтаксиса {{paramName}}, что позволяет пользователям настраивать поведение теста при создании тестовых случаев.", | ||
| "test-definition-sql-query-help": "Шаблон SQL-выражения для пользовательских определений тестов на основе SQL. Поддерживает переменные подстановки: {table} и {column} для ссылок на сущности во время выполнения, а также {{paramName}} для параметров, определённых пользователем. Это поле применимо только к определениям тестов с testPlatforms, установленным в 'OpenMetadata', и используется для выполнения пользовательских SQL-запросов для проверки качества данных.", |
There was a problem hiding this comment.
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 formserver.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.
| "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.", |
There was a problem hiding this comment.
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 formserver.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.
| "test-definition-parameters-description": "テストケース用の設定可能な入力パラメーターを定義します。各パラメーターには、名前、データ型(文字列、整数、日付など)、表示名、およびオプションの検証ルールが含まれます。パラメーターは {{paramName}} 構文を使用してSQL式で参照でき、テストケース作成時にユーザーがテスト動作をカスタマイズできます。", | ||
| "test-definition-sql-query-help": "カスタムSQLベースのテスト定義用のSQL式テンプレート。実行時のエンティティ参照用の {table} および {column}、ユーザー定義パラメーター用の {{paramName}} などの置換変数をサポートします。このフィールドはtestPlatformsが 'OpenMetadata' に設定されたテスト定義にのみ適用され、データ品質検証用のカスタムSQLクエリを実行するために使用されます。", |
There was a problem hiding this comment.
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 formserver.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.
| "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.", |
There was a problem hiding this comment.
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 formserver.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.
| "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.", |
There was a problem hiding this comment.
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 formserver.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": "访问请求", |
|
🔴 Playwright Results — 1 failure(s), 24 flaky✅ 4062 passed · ❌ 1 failed · 🟡 24 flaky · ⏭️ 86 skipped
Genuine Failures (failed on all attempts)❌
|
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>



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:
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
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-USkeys anddata-testidattributes, not localized strings; they continue to pass unchanged.Manual testing performed
en-us.json(no keys added or removed;4193insertions /4193deletions in the diff).UI screen recording / screenshots:
Not applicable — copy-only change. Behaviour is identical; only the user-facing language differs per selected locale.
Checklist: