Skip to content

Commit 1c59b53

Browse files
karanh37claude
andcommitted
fix(ui): add missing i18n keys and fix mistyped key references
Several t() calls referenced translation keys that do not exist in the locale files, so they rendered the raw key string in the UI. - Add 29 genuinely-missing keys to en-us.json with proper translations for all supported locales (label.*, message.*, server.api-error). - Fix references that were typos for existing keys in another namespace: message.entity-fetch-error -> server.entity-fetch-error message.unexpected-error -> server.unexpected-error message.no-application-schema-found -> server.no-application-schema-found message.no-entity-available -> label.no-entity-available message.paste-odps-yaml-here -> server.paste-odps-yaml-here message.please-select-user-first -> message.select-user-first label.user-verified-successfully -> message.user-verified-successfully Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 7cb9ffb commit 1c59b53

33 files changed

Lines changed: 598 additions & 18 deletions

File tree

openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityThreadPanel/ActivityThread.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ const ActivityThread: FC<ActivityThreadProp> = ({
6060
.catch((err: AxiosError) => {
6161
showErrorToast(
6262
err,
63-
t('message.entity-fetch-error', {
63+
t('server.entity-fetch-error', {
6464
entity: t('label.message-lowercase-plural'),
6565
})
6666
);

openmetadata-ui/src/main/resources/ui/src/components/DataProducts/ODPSImportModal/ODPSImportModal.component.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ const ODPSImportModal = ({
248248

249249
<TextArea
250250
data-testid="odps-yaml-content"
251-
placeholder={t('message.paste-odps-yaml-here')}
251+
placeholder={t('server.paste-odps-yaml-here')}
252252
rows={10}
253253
value={yamlContent}
254254
onChange={handleTextChange}

openmetadata-ui/src/main/resources/ui/src/components/Domain/AddDomainForm/AddDomainForm.component.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -780,7 +780,7 @@ const AddDomainForm = ({
780780
options: iconOptions,
781781
labels: {
782782
customIconUrl: t('label.icon-url'),
783-
emptyState: t('message.no-entity-available', {
783+
emptyState: t('label.no-entity-available', {
784784
entity: t('label.icon-plural'),
785785
}),
786786
enterIconUrl: t('label.enter-entity', {

openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityExportModalProvider/EntityExportModalProvider.component.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ export const EntityExportModalProvider = ({
227227
...activeJob,
228228
...response,
229229
error: isTerminalFailure
230-
? t('message.unexpected-error')
230+
? t('server.unexpected-error')
231231
: response.error,
232232
jobId: activeJob.jobId,
233233
fileName: activeJob.fileName,
@@ -269,7 +269,7 @@ export const EntityExportModalProvider = ({
269269
csvExportJobRef.current = undefined;
270270
pendingCSVExportResponsesRef.current.clear();
271271
if (isBulkEdit) {
272-
setCSVExportError(t('message.unexpected-error'));
272+
setCSVExportError(t('server.unexpected-error'));
273273
}
274274
})
275275
.finally(() => {
@@ -294,7 +294,7 @@ export const EntityExportModalProvider = ({
294294
csvExportJobRef.current = undefined;
295295
pendingCSVExportResponsesRef.current.clear();
296296
if (isBulkEdit) {
297-
setCSVExportError(t('message.unexpected-error'));
297+
setCSVExportError(t('server.unexpected-error'));
298298
}
299299
}
300300
},
@@ -561,7 +561,7 @@ export const EntityExportModalProvider = ({
561561
showErrorToast(error as AxiosError);
562562
setDownloading(false);
563563
if (isBulkEdit) {
564-
setCSVExportError(t('message.unexpected-error'));
564+
setCSVExportError(t('server.unexpected-error'));
565565
}
566566
exportData.onError?.();
567567
exportOnErrorRef.current = undefined;

openmetadata-ui/src/main/resources/ui/src/components/NavBar/NavBar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ const NavBar = () => {
274274
isAxiosError: true,
275275
message: 'Invalid job arguments: entityType is required',
276276
} as AxiosError,
277-
t('message.unexpected-error')
277+
t('server.unexpected-error')
278278
);
279279

280280
break;

openmetadata-ui/src/main/resources/ui/src/components/Settings/Applications/AppDetails/AppDetails.component.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ const AppDetails = () => {
121121
} catch {
122122
setJsonSchema(undefined);
123123
showErrorToast(
124-
t('message.no-application-schema-found', { appName: fqn })
124+
t('server.no-application-schema-found', { appName: fqn })
125125
);
126126
}
127127
} catch (error) {

openmetadata-ui/src/main/resources/ui/src/components/Settings/Users/AdminPermissionDebugger/AdminPermissionDebugger.component.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ const AdminPermissionDebugger: React.FC = () => {
146146

147147
const handleEvaluate = async (values: EvaluationFormValues) => {
148148
if (!selectedUsername) {
149-
showErrorToast(t('message.please-select-user-first'));
149+
showErrorToast(t('message.select-user-first'));
150150

151151
return;
152152
}

openmetadata-ui/src/main/resources/ui/src/locale/languages/ar-sa.json

Lines changed: 29 additions & 0 deletions
Large diffs are not rendered by default.

openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,7 @@
345345
"change-parent-entity": "Eltern-{{entity}} ändern",
346346
"change-password": "Kommentare",
347347
"change-plural": "Änderungen",
348+
"change-provider": "Anbieter wechseln",
348349
"character-budget": "Zeichenbudget",
349350
"chars": "Zeichen",
350351
"chart": "Diagramm",
@@ -551,6 +552,7 @@
551552
"created-by-user-time-ago": "Erstellt von {{user}} {{time}}",
552553
"created-date": "Erstellungsdatum",
553554
"created-lowercase": "erstellt",
555+
"created-on": "Erstellt am",
554556
"created-time": "Erstellungszeit",
555557
"creating-account": "Konto erstellen",
556558
"creating-lowercase": "erstelle",
@@ -1155,6 +1157,7 @@
11551157
"general": "General",
11561158
"generate": "Generieren",
11571159
"generate-new-token": "Neuen Token generieren",
1160+
"generate-token": "Token generieren",
11581161
"generated": "Generiert",
11591162
"generated-by": "Erstellt von",
11601163
"get-app-support": "App-Support erhalten",
@@ -1307,6 +1310,7 @@
13071310
"ingestion-pipeline-name": "Name der Erfassungspipeline",
13081311
"ingestion-plural": "Erfassungen",
13091312
"ingestion-runner": "Erfassungsläufer",
1313+
"ingestion-workflow": "Erfassungsworkflow",
13101314
"ingestion-workflow-lowercase": "erfassungsworkflow",
13111315
"inherited": "geerbt",
13121316
"inherited-entity": "Geerbt {{entity}}",
@@ -1435,6 +1439,7 @@
14351439
"learning-resources": "Lernressourcen",
14361440
"leave": "Leave",
14371441
"leave-team": "Team verlassen",
1442+
"left": "Links",
14381443
"legend": "Legende",
14391444
"less": "Weniger",
14401445
"less-lowercase": "weniger",
@@ -1687,6 +1692,7 @@
16871692
"no-entity-available": "Keine {{entity}} sind verfügbar",
16881693
"no-entity-selected": "Keine {{entity}} ausgewählt",
16891694
"no-folder": "Kein Ordner",
1695+
"no-glossary-found": "Kein Glossar gefunden",
16901696
"no-knowledge-articles-available": "Keine Wissensartikel verfügbar",
16911697
"no-kpis-yet": "Beginnen Sie damit, das Wichtige zu verfolgen",
16921698
"no-matching-data-asset": "Keine passenden Datenanlagen gefunden",
@@ -1703,6 +1709,7 @@
17031709
"no-results-for-filters": "Keine Ergebnisse für diese Filter",
17041710
"no-reviewer": "Kein Prüfer",
17051711
"no-status": "Kein Status",
1712+
"no-tags": "Keine Tags",
17061713
"no-tags-added": "Keine Tags hinzugefügt",
17071714
"no-tasks-yet": "Noch keine Aufgaben",
17081715
"no-tests-run": "Keine Tests ausgeführt",
@@ -1721,6 +1728,7 @@
17211728
"not-null": "Nicht null",
17221729
"not-set": "Nicht festgelegt",
17231730
"not-set-up": "Nicht eingerichtet",
1731+
"not-specified": "Nicht angegeben",
17241732
"not-used": "Nicht verwendet",
17251733
"note": "Hinweis",
17261734
"notification": "Benachrichtigung",
@@ -1905,6 +1913,7 @@
19051913
"pipeline-service-name": "Name des Pipeline-Dienstes",
19061914
"pipeline-service-type": "Pipeline Service Typ",
19071915
"pipeline-state": "Pipeline-Status",
1916+
"pipeline-status-changed": "Pipeline-Status geändert",
19081917
"pipeline-type": "Pipeline Typ",
19091918
"pipeline-view-mode": "Pipeline-Ansichtsmodus",
19101919
"placeholder": "Platzhalter",
@@ -2043,6 +2052,7 @@
20432052
"recently-created-entity": "Kürzlich erstellte {{entity}}",
20442053
"recently-updated": "Kürzlich aktualisiert",
20452054
"recently-viewed": "Kürzlich angesehen",
2055+
"recognizer": "Recognizer",
20462056
"record-plural": "Einträge",
20472057
"records": "Datensätze",
20482058
"records-processed": "Datensätze verarbeitet",
@@ -2095,6 +2105,7 @@
20952105
"remove-lowercase": "entfernen",
20962106
"removed": "Entfernt",
20972107
"removed-entity": "{{entity}} entfernt",
2108+
"removed-lowercase": "entfernt",
20982109
"removing-user": "Benutzer entfernen",
20992110
"rename": "Umbenennen",
21002111
"rename-entity": "{{entity}} umbenennen",
@@ -2118,6 +2129,7 @@
21182129
"requested-by": "Angefordert von",
21192130
"required": "Erforderlich",
21202131
"required-field": "Pflichtfeld",
2132+
"required-field-plural": "Pflichtfelder",
21212133
"required-fields": "Pflichtfelder",
21222134
"requirement-plural": "Anforderungen",
21232135
"reset": "Zurücksetzen",
@@ -2240,6 +2252,7 @@
22402252
"schema-text": "Schematext",
22412253
"schema-type": "Schematyp",
22422254
"schema-validation": "Schemavalidierung",
2255+
"scim-token": "SCIM-Token",
22432256
"scope": "Bereich",
22442257
"scope-and-behaviour": "Umfang und Verhalten",
22452258
"scope-and-option-plural": "Scope & Options",
@@ -2248,6 +2261,7 @@
22482261
"score-label": "Bewertung : ",
22492262
"score-mode": "Score-Modus",
22502263
"scoring-levels": "Bewertungsstufen",
2264+
"scroll": "Scrollen",
22512265
"search": "Suchen",
22522266
"search-assets-by-name-or-path": "Assets nach Name oder Pfad suchen...",
22532267
"search-assets-to-link": "Assets zum Verknüpfen suchen...",
@@ -2479,6 +2493,7 @@
24792493
"submit": "Einreichen",
24802494
"submitted-by": "Eingereicht von",
24812495
"submitted-on": "Eingereicht am",
2496+
"submitting": "Wird gesendet",
24822497
"subscription": "Abonnement",
24832498
"success": "Erfolg",
24842499
"successful": "Erfolgreich",
@@ -2723,6 +2738,7 @@
27232738
"updated-at": "Aktualisiert unter",
27242739
"updated-by": "Aktualisiert von",
27252740
"updated-by-user-time-ago": "Aktualisiert von {{user}} {{time}}",
2741+
"updated-field-for-lowercase": "{{field}} aktualisiert",
27262742
"updated-lowercase": "aktualisiert",
27272743
"updated-on": "Aktualisiert am",
27282744
"updating-lowercase": "aktualisiere",
@@ -2963,6 +2979,7 @@
29632979
"are-you-sure-delete-entity": "Sind Sie sicher, dass Sie die Eigenschaft {{entity}} dauerhaft löschen möchten?",
29642980
"are-you-sure-delete-property": "Sind Sie sicher, dass Sie die Eigenschaft {{propertyName}} dauerhaft löschen möchten?",
29652981
"are-you-sure-delete-tag": "Sind Sie sicher, dass Sie den {{type}} \"{{tagName}}\" dauerhaft löschen möchten?",
2982+
"are-you-sure-to-delete-scim-token": "Möchten Sie dieses SCIM-Token wirklich löschen?",
29662983
"are-you-sure-to-revoke-access": "Sind Sie sicher, dass Sie den Zugriff für das JWT-Token widerrufen möchten?",
29672984
"are-you-sure-to-revoke-access-personal-access": "Sind Sie sicher, dass Sie den Zugriff für das Personal Access Token widerrufen möchten?",
29682985
"are-you-sure-want-to-enable": "Sind Sie sicher, dass Sie {{entity}} aktivieren möchten?",
@@ -2991,6 +3008,7 @@
29913008
"auto-pilot-agents-running-message": "AutoPilot-Agenten laufen.",
29923009
"auto-pilot-already-running": "Die AutoPilot-Anwendung läuft bereits. Bitte warten Sie, bis der aktuelle Durchlauf abgeschlossen ist, bevor Sie einen neuen starten.",
29933010
"auto-pilot-no-agents-message": "Keine AutoPilot-Agenten vorhanden.",
3011+
"automate-provisioning-with-scim": "Provisionierung mit SCIM automatisieren",
29943012
"automate-your-tasks-by-creating-custom-workflows": "Automatisieren Sie Ihre Aufgaben durch das Erstellen benutzerdefinierter Workflows.",
29953013
"availability-time-contract-description": "Tageszeit, zu der die Daten erwartungsgemäß verfügbar sein sollen",
29963014
"available-on-global-view": "In der globalen Ansicht verfügbar",
@@ -3072,6 +3090,7 @@
30723090
"completeness-sla-description": "<0>{{label}}</0>: Die Datenverfügbarkeit ist für <0>{{data}}</0> pro Tag geplant",
30733091
"compute-row-count-helper-text": "Berechnen Sie die Anzahl der bestandenen und fehlgeschlagenen Zeilen für den Testfall.",
30743092
"confidence-percentage-message": "Legen Sie den Vertrauensgrad für das NLP-Modell fest, um zu bestimmen, ob eine Spalte PII-Daten enthält oder nicht.",
3093+
"configuration-save-failed": "Konfiguration konnte nicht gespeichert werden.",
30753094
"configuration-save-success": "Konfiguration erfolgreich gespeichert",
30763095
"configure-a-service-description": "Geben Sie einen eindeutigen Dienstnamen ein. Der Name muss eindeutig innerhalb der Dienstkategorie sein. Beispielsweise können sowohl MySQL als auch Snowflake nicht denselben Dienstnamen (z. B. customer_data) haben, aber unterschiedliche Dienstkategorien (Dashboard, Pipeline) können denselben Dienstnamen haben. Leerzeichen im Dienstnamen werden nicht unterstützt. Zeichen wie - _ werden unterstützt. Fügen Sie außerdem eine Beschreibung hinzu.",
30773096
"configure-airflow": "Um die Metadatengewinnung über die Benutzeroberfläche einzurichten, müssen Sie zuerst Airflow konfigurieren und damit verbinden. Weitere Details finden Sie in unserer <0>{{text}}</0>.",
@@ -3221,6 +3240,7 @@
32213240
"delete-message-question-mark": "Nachricht löschen?",
32223241
"delete-metrics-warning": "This will permanently remove these metrics and all associated definitions, lineage, and tasks. This action can't be undone.",
32233242
"delete-persona-context-rule-confirmation": "Diese KI-Kontextregel löschen?",
3243+
"delete-scim-token": "SCIM-Token löschen",
32243244
"delete-team-message": "Alle Teams unter \"{{teamName}}\" werden ebenfalls {{deleteType}} gelöscht.",
32253245
"delete-webhook-permanently": "Möchten Sie den Webhook \"{{webhookName}}\" dauerhaft löschen? Diese Aktion kann nicht rückgängig gemacht werden.",
32263246
"derived-tag-warning": "Dieses Tag wird automatisch abgeleitet und kann nur entfernt werden, indem der zugehörige Glossarbegriff gelöscht wird.",
@@ -3315,10 +3335,12 @@
33153335
"entity-created-but-cover-image-failed": "{{entity}} erfolgreich erstellt, aber das Hochladen des Titelbilds ist fehlgeschlagen.",
33163336
"entity-customize-description": "Passen Sie die {{entity}}-Detailseite mit Widgets und Tabs an, die für Ihren Anwendungsfall am nützlichsten sind.",
33173337
"entity-delimiters-not-allowed": "Namen mit Trennzeichen sind nicht erlaubt.",
3338+
"entity-details-required": "Entitätsdetails sind erforderlich.",
33183339
"entity-details-updated": "{{entityType}} {{fqn}} Details erfolgreich aktualisiert",
33193340
"entity-does-not-have-followers": "{{entityName}} hat bisher keine Follower.",
33203341
"entity-enabled-success": "{{entity}} erfolgreich aktiviert",
33213342
"entity-exported-successfully": "{{entity}} erfolgreich exportiert",
3343+
"entity-id-required": "Entitäts-ID ist erforderlich.",
33223344
"entity-imported-successfully": "{{entity}} erfolgreich importiert",
33233345
"entity-ingestion-added-successfully": "{{entity}} Erfassung erfolgreich hinzugefügt.",
33243346
"entity-is-not-valid": "{{entity}} ist ungültig.",
@@ -3340,9 +3362,11 @@
33403362
"entity-size-must-be-between-2-and-64": "{{entity}} Größe muss zwischen 2 und 64 liegen.",
33413363
"entity-transfer-confirmation-message": "Um fortzufahren, bestätigen Sie, dass Sie verstehen, dass sich der Status von <0>{{from}}</0> ändern wird zu",
33423364
"entity-transfer-message": "Klicken Sie auf Bestätigen, wenn Sie {{entity}} von <0>{{from}}</0> unter <0>{{to}}</0> {{entity}} verschieben möchten.",
3365+
"entity-type-required": "Entitätstyp ist erforderlich.",
33433366
"entity-with-name-already-exists": "{{entity}} mit diesem Namen existiert bereits.",
33443367
"enum-property-update-message": "Die Aktualisierung der Enum-Werte wurde gestartet. Sie werden benachrichtigt, sobald sie abgeschlossen ist.",
33453368
"enum-with-description-update-note": "Das Aktualisieren bestehender Werteschlüssel ist nicht erlaubt; nur die Beschreibung kann bearbeitet werden. Das Hinzufügen neuer Werte ist jedoch möglich.",
3369+
"error": "Fehler",
33463370
"error-generating-export-type": "Fehler beim Erzeugen der {{exportType}}",
33473371
"error-self-signup-disabled": "Die Selbstregistrierung ist derzeit deaktiviert. Um fortzufahren, wenden Sie sich bitte an Ihren Administrator, um Unterstützung zu erhalten oder Zugriff anzufordern.",
33483372
"error-team-transfer-message": "Sie können nicht zu diesem Team wechseln, da der Teamtyp {{dragTeam}} keine Untereinheit von {{dropTeam}} sein kann.",
@@ -3390,12 +3414,14 @@
33903414
"feed-test-case-header": "hat <0>Testergebnisse</0> zugefügt",
33913415
"fetch-data-product-list-error": "Beim Abrufen von Datenprodukten ist ein Fehler aufgetreten",
33923416
"fetch-dbt-files": "Hier sind die verfügbaren Quellen zum Abrufen von dbt-Katalog- und Manifestdateien.",
3417+
"fetch-domain-list-error": "Beim Abrufen der Bereiche ist ein Fehler aufgetreten",
33933418
"fetch-pipeline-status-error": "Fehler beim Abrufen des Pipeline-Status.",
33943419
"field-ca-certs-description": "Der Zertifikatpfad muss in der Konfiguration hinzugefügt werden. Der Pfad sollte lokal im Ingestion-Container sein.",
33953420
"field-count-required": "{{count}} required",
33963421
"field-data-is-not-available-for-deleted-entities": "{{field}}-Daten sind für gelöschte Entitäten nicht verfügbar.",
33973422
"field-insight": "Zeigen Sie den Prozentsatz der Datenressourcen mit {{field}} nach Typ an.",
33983423
"field-region-name-description": "Der Regionsname ist erforderlich, wenn AWS-Anmeldeinformationen verwendet werden.",
3424+
"field-required": "Dieses Feld ist erforderlich",
33993425
"field-text-is-invalid": "{{fieldText}} ist ungültig.",
34003426
"field-text-is-required": "{{fieldText}} ist erforderlich.",
34013427
"field-timeout-description": "Verbindungszeitüberschreitung",
@@ -3980,6 +4006,7 @@
39804006
"pii-distribution-widget-description": "PII-Datenverteilung für alle Datenvermögenswerte im Dienst. <0>Mehr erfahren.</0>",
39814007
"pipeline-action-failed-message": "Das {{action}} der Pipeline ist fehlgeschlagen!",
39824008
"pipeline-action-success-message": "Pipeline {{action}} erfolgreich!",
4009+
"pipeline-deployed-successfully": "{{pipelineName}} erfolgreich bereitgestellt",
39834010
"pipeline-description-message": "Beschreibung der Pipeline.",
39844011
"pipeline-disabled-ingestion-deployment": "Um Ingestionsdaten anzuzeigen, führen Sie die Metadaten-Ingestion in Ihrer eigenen Umgebung gemäß diesen <0>{{link}}</0> aus.",
39854012
"pipeline-entity-description": "Richten Sie eine Pipeline ein, um zu konfigurieren, wie diese {{entity}} ausgeführt werden soll.",
@@ -4246,6 +4273,7 @@
42464273
"uninstall-app": "Durch die Deinstallation dieser {{app}}-Anwendung wird sie aus {{brandName}} entfernt.",
42474274
"uniqueness-profile-metric-description": "Prozentsatz der eindeutigen Werte in der Spalte",
42484275
"unix-epoch-time-in-ms": "{{prefix}} Unix-Epochenzeit in Millisekunden.",
4276+
"unsaved-change-in-page": "Sie haben nicht gespeicherte Änderungen. Wenn Sie die Seite verlassen, geht Ihr gesamter Fortschritt verloren.",
42494277
"unsaved-changes": "Nicht gespeicherte Änderungen",
42504278
"unsaved-changes-description": "Möchten Sie die Änderungen speichern oder verwerfen?",
42514279
"unsaved-changes-discard": "Verwerfen",
@@ -4326,6 +4354,7 @@
43264354
"server": {
43274355
"account-verify-success": "E-Mail erfolgreich verifiziert",
43284356
"add-entity-error": "Fehler beim Hinzufügen von {{entity}}!",
4357+
"api-error": "Es ist ein Problem aufgetreten, bitte versuchen Sie es erneut!",
43294358
"article-fetch-error": "Fehler beim Abrufen des Artikelinhalts",
43304359
"auth-provider-not-supported-renewing": "Authentifizierungsanbieter {{provider}} wird nicht für die Erneuerung von Tokens unterstützt.",
43314360
"bulk-update-initiated": "Massenaktualisierung für {{count}} {{entity}} abgeschlossen.",

0 commit comments

Comments
 (0)