From 4eeca926a1d5e39d20ad8300d204c9d410a90a85 Mon Sep 17 00:00:00 2001 From: Lokananda Prabhu Date: Thu, 26 Feb 2026 18:26:03 +0530 Subject: [PATCH 1/5] Add de/es translations and sync JSON locales Wire de/es translation resources, add locale files, and align JSON names and overrides for backstage and rhdh translations. Made-with: Cursor --- .../catalog/translations/catalog.ts | 2 + .../src/components/catalog/translations/de.ts | 26 + .../src/components/catalog/translations/es.ts | 26 + .../catalog-import/catalog-import.ts | 2 + .../app/src/translations/catalog-import/de.ts | 33 + .../app/src/translations/catalog-import/es.ts | 33 + .../core-components/core-components.ts | 2 + .../src/translations/core-components/de.ts | 45 + .../src/translations/core-components/es.ts | 45 + packages/app/src/translations/rhdh/de.ts | 83 +- packages/app/src/translations/rhdh/es.ts | 88 +- .../app/src/translations/scaffolder/de.ts | 37 + .../app/src/translations/scaffolder/es.ts | 37 + .../src/translations/scaffolder/scaffolder.ts | 2 + .../app/src/translations/search/search-de.ts | 20 + .../app/src/translations/search/search-es.ts | 20 + .../user-settings/user-settings-de.ts | 22 +- .../user-settings/user-settings-es.ts | 22 +- translations/backstage-de.json | 878 ++++++++++++++++++ translations/backstage-es.json | 878 ++++++++++++++++++ translations/community-plugins-de.json | 795 ++++++++++++++++ translations/community-plugins-es.json | 795 ++++++++++++++++ translations/rhdh-de.json | 134 +++ translations/rhdh-es.json | 134 +++ 24 files changed, 4062 insertions(+), 97 deletions(-) create mode 100644 packages/app/src/components/catalog/translations/de.ts create mode 100644 packages/app/src/components/catalog/translations/es.ts create mode 100644 packages/app/src/translations/catalog-import/de.ts create mode 100644 packages/app/src/translations/catalog-import/es.ts create mode 100644 packages/app/src/translations/core-components/de.ts create mode 100644 packages/app/src/translations/core-components/es.ts create mode 100644 packages/app/src/translations/scaffolder/de.ts create mode 100644 packages/app/src/translations/scaffolder/es.ts create mode 100644 translations/backstage-de.json create mode 100644 translations/backstage-es.json create mode 100644 translations/community-plugins-de.json create mode 100644 translations/community-plugins-es.json create mode 100644 translations/rhdh-de.json create mode 100644 translations/rhdh-es.json diff --git a/packages/app/src/components/catalog/translations/catalog.ts b/packages/app/src/components/catalog/translations/catalog.ts index d93f8e846c..ba4f78d730 100644 --- a/packages/app/src/components/catalog/translations/catalog.ts +++ b/packages/app/src/components/catalog/translations/catalog.ts @@ -5,6 +5,8 @@ export const catalogTranslations = createTranslationResource({ ref: catalogTranslationRef, translations: { en: () => import('./catalog-en'), + de: () => import('./de'), + es: () => import('./es'), fr: () => import('./fr'), it: () => import('./it'), ja: () => import('./ja'), diff --git a/packages/app/src/components/catalog/translations/de.ts b/packages/app/src/components/catalog/translations/de.ts new file mode 100644 index 0000000000..ff4f51bc8f --- /dev/null +++ b/packages/app/src/components/catalog/translations/de.ts @@ -0,0 +1,26 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; +import { catalogTranslationRef } from '@backstage/plugin-catalog/alpha'; + +export default createTranslationMessages({ + ref: catalogTranslationRef, + full: false, + messages: { + 'indexPage.createButtonTitle': 'Self-Service', + }, +}); diff --git a/packages/app/src/components/catalog/translations/es.ts b/packages/app/src/components/catalog/translations/es.ts new file mode 100644 index 0000000000..c2ddd2510e --- /dev/null +++ b/packages/app/src/components/catalog/translations/es.ts @@ -0,0 +1,26 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; +import { catalogTranslationRef } from '@backstage/plugin-catalog/alpha'; + +export default createTranslationMessages({ + ref: catalogTranslationRef, + full: false, + messages: { + 'indexPage.createButtonTitle': 'Autoservicio', + }, +}); diff --git a/packages/app/src/translations/catalog-import/catalog-import.ts b/packages/app/src/translations/catalog-import/catalog-import.ts index e80bfa0864..0e17b73945 100644 --- a/packages/app/src/translations/catalog-import/catalog-import.ts +++ b/packages/app/src/translations/catalog-import/catalog-import.ts @@ -5,6 +5,8 @@ export const catalogImportTranslations = createTranslationResource({ ref: catalogImportTranslationRef, translations: { en: () => import('./catalog-import-en'), + de: () => import('./de'), + es: () => import('./es'), fr: () => import('./fr'), it: () => import('./it'), ja: () => import('./ja'), diff --git a/packages/app/src/translations/catalog-import/de.ts b/packages/app/src/translations/catalog-import/de.ts new file mode 100644 index 0000000000..ea2456eafe --- /dev/null +++ b/packages/app/src/translations/catalog-import/de.ts @@ -0,0 +1,33 @@ +/* + * Copyright Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; +import { catalogImportTranslationRef } from '@backstage/plugin-catalog-import/alpha'; + +/** + * de translation for catalog-import. + * @public + */ +const de = createTranslationMessages({ + ref: catalogImportTranslationRef, + full: false, + messages: { + 'defaultImportPage.headerTitle': 'Vorhandenes Git-Repository importieren', + 'importInfoCard.title': 'Vorhandenes Git-Repository importieren', + }, +}); + +export default de; diff --git a/packages/app/src/translations/catalog-import/es.ts b/packages/app/src/translations/catalog-import/es.ts new file mode 100644 index 0000000000..b2661ecae8 --- /dev/null +++ b/packages/app/src/translations/catalog-import/es.ts @@ -0,0 +1,33 @@ +/* + * Copyright Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; +import { catalogImportTranslationRef } from '@backstage/plugin-catalog-import/alpha'; + +/** + * es translation for catalog-import. + * @public + */ +const es = createTranslationMessages({ + ref: catalogImportTranslationRef, + full: false, + messages: { + 'defaultImportPage.headerTitle': 'Importar un repositorio Git existente', + 'importInfoCard.title': 'Importar un repositorio Git existente', + }, +}); + +export default es; diff --git a/packages/app/src/translations/core-components/core-components.ts b/packages/app/src/translations/core-components/core-components.ts index 588beb8880..5cfe2a0b04 100644 --- a/packages/app/src/translations/core-components/core-components.ts +++ b/packages/app/src/translations/core-components/core-components.ts @@ -5,6 +5,8 @@ export const coreComponentsTranslations = createTranslationResource({ ref: coreComponentsTranslationRef, translations: { en: () => import('./core-components-en'), + de: () => import('./de'), + es: () => import('./es'), fr: () => import('./fr'), it: () => import('./it'), ja: () => import('./ja'), diff --git a/packages/app/src/translations/core-components/de.ts b/packages/app/src/translations/core-components/de.ts new file mode 100644 index 0000000000..173948e322 --- /dev/null +++ b/packages/app/src/translations/core-components/de.ts @@ -0,0 +1,45 @@ +/* + * Copyright Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; +import { coreComponentsTranslationRef } from '@backstage/core-components/alpha'; + +/** + * de translation for core-components. + * @public + */ +const de = createTranslationMessages({ + ref: coreComponentsTranslationRef, + full: false, + messages: { + 'table.filter.placeholder': 'Alle Ergebnisse', + 'table.body.emptyDataSourceMessage': 'Keine Datensätze zum Anzeigen vorhanden', + 'table.pagination.firstTooltip': 'Erste Seite', + 'table.pagination.labelDisplayedRows': '{von}-{bis} von {Anzahl}', + 'table.pagination.labelRowsSelect': 'Zeilen', + 'table.pagination.lastTooltip': 'Letzte Seite', + 'table.pagination.nextTooltip': 'Nächste Seite', + 'table.pagination.previousTooltip': 'Vorherige Seite', + 'table.toolbar.search': 'Filter', + 'alertDisplay.message_one': '({{ count }} neuere Nachricht)', + 'alertDisplay.message_other': '({{ count }} neuere Nachrichten)', + 'table.header.actions': 'Aktionen', + 'oauthRequestDialog.message': + 'Melden Sie sich an, um {{appTitle}} Zugriff auf die APIs und Identitäten von {{provider}} zu erlauben.', + }, +}); + +export default de; diff --git a/packages/app/src/translations/core-components/es.ts b/packages/app/src/translations/core-components/es.ts new file mode 100644 index 0000000000..c911ee1c88 --- /dev/null +++ b/packages/app/src/translations/core-components/es.ts @@ -0,0 +1,45 @@ +/* + * Copyright Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; +import { coreComponentsTranslationRef } from '@backstage/core-components/alpha'; + +/** + * es translation for core-components. + * @public + */ +const es = createTranslationMessages({ + ref: coreComponentsTranslationRef, + full: false, + messages: { + 'table.filter.placeholder': 'Todos los resultados', + 'table.body.emptyDataSourceMessage': 'No hay registros para mostrar', + 'table.pagination.firstTooltip': 'Primera página', + 'table.pagination.labelDisplayedRows': '{from}-{to} de {count}', + 'table.pagination.labelRowsSelect': 'filas', + 'table.pagination.lastTooltip': 'Última página', + 'table.pagination.nextTooltip': 'Página siguiente', + 'table.pagination.previousTooltip': 'Página anterior', + 'table.toolbar.search': 'Filtrar', + 'alertDisplay.message_one': '({{ count }} mensaje nuevo)', + 'alertDisplay.message_other': '({{ count }} mensajes nuevos)', + 'table.header.actions': 'Acciones', + 'oauthRequestDialog.message': + 'Inicie sesión para permitir que {{appTitle}} acceda a las API e identidades de {{provider}}.', + }, +}); + +export default es; diff --git a/packages/app/src/translations/rhdh/de.ts b/packages/app/src/translations/rhdh/de.ts index ec326bf41d..59867d20a0 100644 --- a/packages/app/src/translations/rhdh/de.ts +++ b/packages/app/src/translations/rhdh/de.ts @@ -15,14 +15,15 @@ */ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; - import { rhdhTranslationRef } from './ref'; -export default createTranslationMessages({ +/** + * de translation for rhdh. + * @public + */ +const rhdhTranslationDe = createTranslationMessages({ ref: rhdhTranslationRef, - full: true, // False means that this is a partial translation messages: { - // Default main menu items from consts.ts 'menuItem.home': 'Startseite', 'menuItem.myGroup_one': 'Meine Gruppe', 'menuItem.myGroup_other': 'Meine Gruppen', @@ -33,40 +34,18 @@ export default createTranslationMessages({ 'menuItem.userSettings': 'Benutzereinstellungen', 'menuItem.administration': 'Administration', 'menuItem.extensions': 'Erweiterungen', - - // dynamic-plugins.default.main-menu-items 'menuItem.clusters': 'Cluster', 'menuItem.rbac': 'RBAC', 'menuItem.bulkImport': 'Massenimport', - 'menuItem.docs': 'Dokumentation', + 'menuItem.docs': 'Dokumente', 'menuItem.lighthouse': 'Lighthouse', - 'menuItem.techRadar': 'Tech-Radar', + 'menuItem.techRadar': 'Tech Radar', 'menuItem.orchestrator': 'Orchestrator', - 'menuItem.adoptionInsights': 'Einführungseinblicke', - - 'catalog.entityPage.overview.title': 'Übersicht', - 'catalog.entityPage.topology.title': 'Topologie', - 'catalog.entityPage.issues.title': 'Issues', - 'catalog.entityPage.pullRequests.title': 'Pull/Merge Requests', - 'catalog.entityPage.ci.title': 'CI', - 'catalog.entityPage.cd.title': 'CD', - 'catalog.entityPage.kubernetes.title': 'Kubernetes', - 'catalog.entityPage.imageRegistry.title': 'Image Registry', - 'catalog.entityPage.monitoring.title': 'Überwachung', - 'catalog.entityPage.lighthouse.title': 'Lighthouse', - 'catalog.entityPage.api.title': 'API', - 'catalog.entityPage.dependencies.title': 'Abhängigkeiten', - 'catalog.entityPage.docs.title': 'Dokumentation', - 'catalog.entityPage.definition.title': 'Definition', - 'catalog.entityPage.diagram.title': 'Systemdiagramm', - 'catalog.entityPage.workflows.title': 'Workflows', - + 'menuItem.adoptionInsights': 'Adoption Insights', 'sidebar.menu': 'Menü', 'sidebar.home': 'Startseite', - 'sidebar.homeLogo': 'Startseite-Logo', - - // SignIn page translations - 'signIn.page.title': 'Anmeldeverfahren auswählen', + 'sidebar.homeLogo': 'Startseitenlogo', + 'signIn.page.title': 'Wählen Sie eine Anmeldemethode aus', 'signIn.providers.auth0.title': 'Auth0', 'signIn.providers.auth0.message': 'Mit Auth0 anmelden', 'signIn.providers.atlassian.title': 'Atlassian', @@ -91,32 +70,44 @@ export default createTranslationMessages({ 'signIn.providers.onelogin.message': 'Mit OneLogin anmelden', 'signIn.providers.saml.title': 'SAML', 'signIn.providers.saml.message': 'Mit SAML anmelden', - - // App translations + 'catalog.entityPage.overview.title': 'Übersicht', + 'catalog.entityPage.topology.title': 'Topologie', + 'catalog.entityPage.issues.title': 'Probleme', + 'catalog.entityPage.pullRequests.title': 'Pull-/Merge-Anforderungen', + 'catalog.entityPage.ci.title': 'CI', + 'catalog.entityPage.cd.title': 'CD', + 'catalog.entityPage.kubernetes.title': 'Kubernetes', + 'catalog.entityPage.imageRegistry.title': 'Image-Registry', + 'catalog.entityPage.monitoring.title': 'Monitoring', + 'catalog.entityPage.lighthouse.title': 'Lighthouse', + 'catalog.entityPage.api.title': 'API', + 'catalog.entityPage.dependencies.title': 'Abhängigkeiten', + 'catalog.entityPage.docs.title': 'Dokumente', + 'catalog.entityPage.definition.title': 'Definition', + 'catalog.entityPage.diagram.title': 'Systemdiagramm', + 'catalog.entityPage.workflows.title': 'Workflows', 'app.search.title': 'Suchen', 'app.search.resultType': 'Ergebnistyp', - 'app.search.softwareCatalog': 'Software-Katalog', + 'app.search.softwareCatalog': 'Softwarekatalog', 'app.search.filters.kind': 'Art', - 'app.search.filters.lifecycle': 'Lebenszyklus', + 'app.search.filters.lifecycle': 'Lifecycle', 'app.search.filters.component': 'Komponente', - 'app.search.filters.template': 'Vorlage', - 'app.search.filters.experimental': 'experimentell', - 'app.search.filters.production': 'produktionsreif', + 'app.search.filters.template': 'Template', + 'app.search.filters.experimental': 'Experimentell', + 'app.search.filters.production': 'Produktion', 'app.learningPaths.title': 'Lernpfade', 'app.learningPaths.error.title': 'Daten konnten nicht abgerufen werden.', 'app.learningPaths.error.unknownError': 'Unbekannter Fehler', 'app.userSettings.infoCard.title': 'RHDH-Metadaten', - 'app.userSettings.infoCard.metadataCopied': - 'Metadaten in die Zwischenablage kopiert', - 'app.userSettings.infoCard.copyMetadata': - 'Metadaten in die Zwischenablage kopieren', + 'app.userSettings.infoCard.metadataCopied': 'Metadaten in die Zwischenablage kopiert', + 'app.userSettings.infoCard.copyMetadata': 'Metadaten in die Zwischenablage kopieren', 'app.userSettings.infoCard.showLess': 'Weniger anzeigen', 'app.userSettings.infoCard.showMore': 'Mehr anzeigen', 'app.errors.contactSupport': 'Support kontaktieren', 'app.errors.goBack': 'Zurück', - 'app.errors.notFound.message': 'Diese Seite konnten wir nicht finden', - 'app.errors.notFound.additionalInfo': - 'Die gesuchte Seite wurde möglicherweise entfernt, umbenannt oder ist vorübergehend nicht verfügbar.', - 'app.table.createdAt': 'Erstellt am', + 'app.errors.notFound.message': 'Wir konnten diese Seite nicht finden.', + 'app.errors.notFound.additionalInfo': 'Die gesuchte Seite wurde möglicherweise entfernt, umbenannt oder ist vorübergehend nicht verfügbar.', }, }); + +export default rhdhTranslationDe; diff --git a/packages/app/src/translations/rhdh/es.ts b/packages/app/src/translations/rhdh/es.ts index cacc7a1012..617d2fbcc4 100644 --- a/packages/app/src/translations/rhdh/es.ts +++ b/packages/app/src/translations/rhdh/es.ts @@ -15,57 +15,36 @@ */ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; - import { rhdhTranslationRef } from './ref'; -export default createTranslationMessages({ +/** + * es translation for rhdh. + * @public + */ +const rhdhTranslationEs = createTranslationMessages({ ref: rhdhTranslationRef, - full: true, // False means that this is a partial translation messages: { - // Default main menu items from consts.ts 'menuItem.home': 'Inicio', - 'menuItem.myGroup_one': 'Mi Grupo', - 'menuItem.myGroup_other': 'Mis Grupos', + 'menuItem.myGroup_one': 'Mi grupo', + 'menuItem.myGroup_other': 'Mis grupos', 'menuItem.catalog': 'Catálogo', - 'menuItem.apis': 'APIs', - 'menuItem.learningPaths': 'Rutas de Aprendizaje', + 'menuItem.apis': 'API', + 'menuItem.learningPaths': 'Rutas de aprendizaje', 'menuItem.selfService': 'Autoservicio', 'menuItem.userSettings': 'Configuración de usuario', 'menuItem.administration': 'Administración', 'menuItem.extensions': 'Extensiones', - - // dynamic-plugins.default.main-menu-items 'menuItem.clusters': 'Clústeres', 'menuItem.rbac': 'RBAC', 'menuItem.bulkImport': 'Importación masiva', - 'menuItem.docs': 'Documentación', + 'menuItem.docs': 'Documentos', 'menuItem.lighthouse': 'Lighthouse', - 'menuItem.techRadar': 'Radar tecnológico', + 'menuItem.techRadar': 'Tech Radar', 'menuItem.orchestrator': 'Orquestador', - 'menuItem.adoptionInsights': 'Insights de adopción', - - 'catalog.entityPage.overview.title': 'Resumen', - 'catalog.entityPage.topology.title': 'Topología', - 'catalog.entityPage.issues.title': 'Problemas', - 'catalog.entityPage.pullRequests.title': 'Pull/Merge Requests', - 'catalog.entityPage.ci.title': 'CI', - 'catalog.entityPage.cd.title': 'CD', - 'catalog.entityPage.kubernetes.title': 'Kubernetes', - 'catalog.entityPage.imageRegistry.title': 'Registro de Imágenes', - 'catalog.entityPage.monitoring.title': 'Monitoreo', - 'catalog.entityPage.lighthouse.title': 'Lighthouse', - 'catalog.entityPage.api.title': 'API', - 'catalog.entityPage.dependencies.title': 'Dependencias', - 'catalog.entityPage.docs.title': 'Documentación', - 'catalog.entityPage.definition.title': 'Definición', - 'catalog.entityPage.diagram.title': 'Diagrama del Sistema', - 'catalog.entityPage.workflows.title': 'Flujos de trabajo', - + 'menuItem.adoptionInsights': 'Adoption Insights', 'sidebar.menu': 'Menú', 'sidebar.home': 'Inicio', - 'sidebar.homeLogo': 'Logo de inicio', - - // SignIn page translations + 'sidebar.homeLogo': 'Logotipo de inicio', 'signIn.page.title': 'Seleccionar un método de inicio de sesión', 'signIn.providers.auth0.title': 'Auth0', 'signIn.providers.auth0.message': 'Iniciar sesión con Auth0', @@ -75,9 +54,8 @@ export default createTranslationMessages({ 'signIn.providers.microsoft.message': 'Iniciar sesión con Microsoft', 'signIn.providers.bitbucket.title': 'Bitbucket', 'signIn.providers.bitbucket.message': 'Iniciar sesión con Bitbucket', - 'signIn.providers.bitbucketServer.title': 'Bitbucket Server', - 'signIn.providers.bitbucketServer.message': - 'Iniciar sesión con Bitbucket Server', + 'signIn.providers.bitbucketServer.title': 'Servidor de Bitbucket', + 'signIn.providers.bitbucketServer.message': 'Iniciar sesión con el servidor de Bitbucket', 'signIn.providers.github.title': 'GitHub', 'signIn.providers.github.message': 'Iniciar sesión con GitHub', 'signIn.providers.gitlab.title': 'GitLab', @@ -92,8 +70,22 @@ export default createTranslationMessages({ 'signIn.providers.onelogin.message': 'Iniciar sesión con OneLogin', 'signIn.providers.saml.title': 'SAML', 'signIn.providers.saml.message': 'Iniciar sesión con SAML', - - // App translations + 'catalog.entityPage.overview.title': 'Visión general', + 'catalog.entityPage.topology.title': 'Topología', + 'catalog.entityPage.issues.title': 'Problemas', + 'catalog.entityPage.pullRequests.title': 'Solicitudes de extracción/fusión', + 'catalog.entityPage.ci.title': 'CI', + 'catalog.entityPage.cd.title': 'CD', + 'catalog.entityPage.kubernetes.title': 'Kubernetes', + 'catalog.entityPage.imageRegistry.title': 'Registro de imágenes', + 'catalog.entityPage.monitoring.title': 'Monitoreo', + 'catalog.entityPage.lighthouse.title': 'Lighthouse', + 'catalog.entityPage.api.title': 'API', + 'catalog.entityPage.dependencies.title': 'Dependencias', + 'catalog.entityPage.docs.title': 'Documentos', + 'catalog.entityPage.definition.title': 'Definición', + 'catalog.entityPage.diagram.title': 'Diagrama del sistema', + 'catalog.entityPage.workflows.title': 'Flujos de trabajo', 'app.search.title': 'Buscar', 'app.search.resultType': 'Tipo de resultado', 'app.search.softwareCatalog': 'Catálogo de software', @@ -104,20 +96,18 @@ export default createTranslationMessages({ 'app.search.filters.experimental': 'experimental', 'app.search.filters.production': 'producción', 'app.learningPaths.title': 'Rutas de aprendizaje', - 'app.learningPaths.error.title': 'No se pudieron obtener los datos.', + 'app.learningPaths.error.title': 'No se pudieron extraer los datos.', 'app.learningPaths.error.unknownError': 'Error desconocido', - 'app.userSettings.infoCard.title': 'Metadatos RHDH', - 'app.userSettings.infoCard.metadataCopied': - 'Metadatos copiados al portapapeles', - 'app.userSettings.infoCard.copyMetadata': - 'Copiar metadatos al portapapeles', + 'app.userSettings.infoCard.title': 'Metadatos de RHDH', + 'app.userSettings.infoCard.metadataCopied': 'Metadatos copiados en el portapapeles', + 'app.userSettings.infoCard.copyMetadata': 'Copiar metadatos al portapapeles', 'app.userSettings.infoCard.showLess': 'Mostrar menos', 'app.userSettings.infoCard.showMore': 'Mostrar más', - 'app.errors.contactSupport': 'Contactar soporte', + 'app.errors.contactSupport': 'Comuníquese con Soporte', 'app.errors.goBack': 'Volver', 'app.errors.notFound.message': 'No pudimos encontrar esa página', - 'app.errors.notFound.additionalInfo': - 'La página que buscas pudo haber sido eliminada, renombrada o está temporalmente no disponible.', - 'app.table.createdAt': 'Creado el', + 'app.errors.notFound.additionalInfo': 'Es posible que la página que busca se haya eliminado, haya cambiado de nombre o no esté disponible temporalmente.', }, }); + +export default rhdhTranslationEs; diff --git a/packages/app/src/translations/scaffolder/de.ts b/packages/app/src/translations/scaffolder/de.ts new file mode 100644 index 0000000000..8e3681a14f --- /dev/null +++ b/packages/app/src/translations/scaffolder/de.ts @@ -0,0 +1,37 @@ +/* + * Copyright Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; +import { scaffolderTranslationRef } from '@backstage/plugin-scaffolder/alpha'; + +/** + * de translation for scaffolder. + * @public + */ +const de = createTranslationMessages({ + ref: scaffolderTranslationRef, + full: false, + messages: { + 'templateListPage.title': 'Self-Service', + 'templateListPage.pageTitle': 'Self-Service', + 'templateWizardPage.title': 'Self-Service', + 'templateWizardPage.pageTitle': 'Self-Service', + 'templateListPage.contentHeader.registerExistingButtonTitle': + 'Vorhandenes Git-Repository importieren', + }, +}); + +export default de; diff --git a/packages/app/src/translations/scaffolder/es.ts b/packages/app/src/translations/scaffolder/es.ts new file mode 100644 index 0000000000..822eca63b0 --- /dev/null +++ b/packages/app/src/translations/scaffolder/es.ts @@ -0,0 +1,37 @@ +/* + * Copyright Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; +import { scaffolderTranslationRef } from '@backstage/plugin-scaffolder/alpha'; + +/** + * es translation for scaffolder. + * @public + */ +const es = createTranslationMessages({ + ref: scaffolderTranslationRef, + full: false, + messages: { + 'templateListPage.title': 'Autoservicio', + 'templateListPage.pageTitle': 'Autoservicio', + 'templateWizardPage.title': 'Autoservicio', + 'templateWizardPage.pageTitle': 'Autoservicio', + 'templateListPage.contentHeader.registerExistingButtonTitle': + 'Importar un repositorio Git existente', + }, +}); + +export default es; diff --git a/packages/app/src/translations/scaffolder/scaffolder.ts b/packages/app/src/translations/scaffolder/scaffolder.ts index 22dc0f0d3c..473ca61bf1 100644 --- a/packages/app/src/translations/scaffolder/scaffolder.ts +++ b/packages/app/src/translations/scaffolder/scaffolder.ts @@ -5,6 +5,8 @@ export const scaffolderTranslations = createTranslationResource({ ref: scaffolderTranslationRef, translations: { en: () => import('./scaffolder-en'), + de: () => import('./de'), + es: () => import('./es'), fr: () => import('./fr'), it: () => import('./it'), ja: () => import('./ja'), diff --git a/packages/app/src/translations/search/search-de.ts b/packages/app/src/translations/search/search-de.ts index 38530e9563..4927a1cd40 100644 --- a/packages/app/src/translations/search/search-de.ts +++ b/packages/app/src/translations/search/search-de.ts @@ -1,6 +1,26 @@ +/* + * Copyright Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { searchTranslationRef } from '@backstage/plugin-search/alpha'; +/** + * de translation for search. + * @public + */ const de = createTranslationMessages({ ref: searchTranslationRef, full: false, diff --git a/packages/app/src/translations/search/search-es.ts b/packages/app/src/translations/search/search-es.ts index 23f0e6277e..d596c05f77 100644 --- a/packages/app/src/translations/search/search-es.ts +++ b/packages/app/src/translations/search/search-es.ts @@ -1,6 +1,26 @@ +/* + * Copyright Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { searchTranslationRef } from '@backstage/plugin-search/alpha'; +/** + * es translation for search. + * @public + */ const es = createTranslationMessages({ ref: searchTranslationRef, full: false, diff --git a/packages/app/src/translations/user-settings/user-settings-de.ts b/packages/app/src/translations/user-settings/user-settings-de.ts index 8c31c88321..6e476a6dd5 100644 --- a/packages/app/src/translations/user-settings/user-settings-de.ts +++ b/packages/app/src/translations/user-settings/user-settings-de.ts @@ -1,11 +1,31 @@ +/* + * Copyright Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { userSettingsTranslationRef } from '@backstage/plugin-user-settings/alpha'; +/** + * de translation for user-settings. + * @public + */ const de = createTranslationMessages({ ref: userSettingsTranslationRef, full: false, messages: { - sidebarTitle: 'Einstellungen', + 'sidebarTitle': 'Einstellungen', }, }); diff --git a/packages/app/src/translations/user-settings/user-settings-es.ts b/packages/app/src/translations/user-settings/user-settings-es.ts index d21f1de512..e0aee9a8a5 100644 --- a/packages/app/src/translations/user-settings/user-settings-es.ts +++ b/packages/app/src/translations/user-settings/user-settings-es.ts @@ -1,11 +1,31 @@ +/* + * Copyright Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { userSettingsTranslationRef } from '@backstage/plugin-user-settings/alpha'; +/** + * es translation for user-settings. + * @public + */ const es = createTranslationMessages({ ref: userSettingsTranslationRef, full: false, messages: { - sidebarTitle: 'Configuración', + 'sidebarTitle': 'Configuración', }, }); diff --git a/translations/backstage-de.json b/translations/backstage-de.json new file mode 100644 index 0000000000..e827561125 --- /dev/null +++ b/translations/backstage-de.json @@ -0,0 +1,878 @@ +{ + "api-docs": { + "en": { + "apiDefinitionCard.error.title": "API konnte nicht abgerufen werden", + "apiDefinitionCard.rawButtonTitle": "Roh", + "apiDefinitionDialog.closeButtonTitle": "Schließen", + "apiDefinitionDialog.rawButtonTitle": "Roh", + "apiDefinitionDialog.tabsAriaLabel": "API-Definitionsoptionen", + "apiDefinitionDialog.toggleButtonAriaLabel": "API-Definitionsdialog umschalten", + "apiEntityColumns.apiDefinitionTitle": "API-Definition", + "apiEntityColumns.typeTitle": "Typ", + "apisCardHelpLinkTitle": "Erfahren Sie, wie Sie dies ändern können", + "consumedApisCard.emptyContent.title": "Diese {{entity}} nutzt keine APIs.", + "consumedApisCard.error.title": "APIs konnten nicht geladen werden", + "consumedApisCard.title": "Genutzte APIs", + "consumingComponentsCard.emptyContent.title": "Diese API wird von keiner Komponente genutzt.", + "consumingComponentsCard.error.title": "Komponenten konnten nicht geladen werden", + "consumingComponentsCard.title": "Nutzer", + "defaultApiExplorerPage.createButtonTitle": "Vorhandene API registrieren", + "defaultApiExplorerPage.pageTitleOverride": "APIs", + "defaultApiExplorerPage.subtitle": "{{orgName}} API-Explorer", + "defaultApiExplorerPage.supportButtonTitle": "Alle Ihre APIs", + "defaultApiExplorerPage.title": "APIs", + "hasApisCard.emptyContent.title": "Diese {{entity}} enthält keine APIs.", + "hasApisCard.error.title": "APIs konnten nicht geladen werden", + "hasApisCard.title": "APIs", + "providedApisCard.emptyContent.title": "Diese {{entity}} stellt keine APIs bereit.", + "providedApisCard.error.title": "APIs konnten nicht geladen werden", + "providedApisCard.title": "Bereitgestellte APIs", + "providingComponentsCard.emptyContent.title": "Diese API wird von keiner Komponente bereitgestellt.", + "providingComponentsCard.error.title": "Komponenten konnten nicht geladen werden", + "providingComponentsCard.title": "Provider" + } + }, + "catalog": { + "en": { + "aboutCard.createSimilarButtonTitle": "Etwas Ähnliches erstellen", + "aboutCard.descriptionField.label": "Beschreibung", + "aboutCard.descriptionField.value": "Keine Beschreibung", + "aboutCard.domainField.label": "Domain", + "aboutCard.domainField.value": "Keine Domain", + "aboutCard.editButtonTitle": "Metadaten bearbeiten", + "aboutCard.launchTemplate": "Template starten", + "aboutCard.lifecycleField.label": "Lifecycle", + "aboutCard.ownerField.label": "Eigentümer", + "aboutCard.ownerField.value": "Kein Eigentümer", + "aboutCard.parentComponentField.label": "Übergeordnete Komponente", + "aboutCard.parentComponentField.value": "Keine übergeordnete Komponente", + "aboutCard.refreshButtonTitle": "Aktualisierung des Elements planen", + "aboutCard.refreshScheduledMessage": "Geplante aktualisieren", + "aboutCard.systemField.label": "System", + "aboutCard.systemField.value": "Kein System", + "aboutCard.tagsField.label": "Tags", + "aboutCard.tagsField.value": "Keine Tags", + "aboutCard.targetsField.label": "Ziele", + "aboutCard.title": "Info", + "aboutCard.typeField.label": "Typ", + "aboutCard.viewSource": "Quelle anzeigen", + "aboutCard.viewTechdocs": "TechDocs ansehen", + "catalogTable.editActionTitle": "Bearbeiten", + "catalogTable.starActionTitle": "Zu Favoriten hinzufügen", + "catalogTable.unStarActionTitle": "Aus Favoriten entfernen", + "catalogTable.viewActionTitle": "Anzeigen", + "catalogTable.warningPanelTitle": "Katalogelemente konnten nicht abgerufen werden.", + "deleteEntity.cancelButtonTitle": "Abbrechen", + "deleteEntity.deleteButtonTitle": "Löschen", + "deleteEntity.description": "Dieses Element wird von keinem Speicherort referenziert und erhält daher keine Updates. Hier klicken zum Löschen.", + "deleteEntity.dialogTitle": "Möchten Sie dieses Element wirklich löschen?", + "dependencyOfComponentsCard.emptyMessage": "Von dieser Komponente ist keine Komponente abhängig", + "dependencyOfComponentsCard.title": "Abhängigkeit von Komponenten", + "dependsOnComponentsCard.emptyMessage": "Keine Komponente ist eine Abhängigkeit dieser Komponente", + "dependsOnComponentsCard.title": "Abhängig von Komponenten", + "dependsOnResourcesCard.emptyMessage": "Keine Ressource ist eine Abhängigkeit von dieser Komponente.", + "dependsOnResourcesCard.title": "Abhängig von Ressourcen", + "entityContextMenu.copiedMessage": "Kopiert!", + "entityContextMenu.copyURLMenuTitle": "Element-URL kopieren", + "entityContextMenu.inspectMenuTitle": "Element prüfen", + "entityContextMenu.moreButtonTitle": "Mehr", + "entityContextMenu.unregisterMenuTitle": "Registrierung des Elements aufheben", + "entityLabels.lifecycleLabel": "Lifecycle", + "entityLabels.ownerLabel": "Eigentümer", + "entityLabels.warningPanelTitle": "Element nicht gefunden", + "entityLabelsCard.emptyDescription": "Für dieses Element sind keine Bezeichnungen definiert. Sie können Ihrem Element-YAML Bezeichnungen hinzufügen, wie im Beispiel unten Beispiel gezeigt:", + "entityLabelsCard.readMoreButtonTitle": "Mehr lesen", + "entityLabelsCard.title": "Bezeichnungen", + "entityLinksCard.emptyDescription": "Für dieses Element sind keine Verknüpfungen definiert. Sie können Verknüpfungen zu Ihrem Element-YAML hinzufügen, wie im Beispiel unten Beispiel gezeigt:", + "entityLinksCard.readMoreButtonTitle": "Mehr lesen", + "entityLinksCard.title": "Verknüpfungen", + "entityNotFound.description": "Sie möchten, dass wir Ihnen bei der Erstellung helfen? Sehen Sie sich unsere Dokumentation für den Einstieg an.", + "entityNotFound.docButtonTitle": "DOKUMENTE", + "entityNotFound.title": "Element nicht gefunden", + "entityProcessingErrorsDescription": "Der folgende Fehler hat seinen Ursprung in", + "entityRelationWarningDescription": "Dieses Element steht in Beziehung zu anderen Elementen, die nicht im Katalog gefunden werden können. Folgende Elemente wurden nicht gefunden: ", + "hasComponentsCard.emptyMessage": "Keine Komponente ist Teil dieses Systems", + "hasComponentsCard.title": "Hat Komponenten", + "hasResourcesCard.emptyMessage": "Keine Ressource ist Teil dieses Systems", + "hasResourcesCard.title": "Hat Ressourcen", + "hasSubcomponentsCard.emptyMessage": "Keine Unterkomponente ist Teil dieser Komponente", + "hasSubcomponentsCard.title": "Hat Unterkomponenten", + "hasSubdomainsCard.emptyMessage": "Keine Subdomain ist Teil dieser Domain", + "hasSubdomainsCard.title": "Hat Subdomains", + "hasSystemsCard.emptyMessage": "Kein System ist Teil dieser Domain", + "hasSystemsCard.title": "Hat Systeme", + "indexPage.createButtonTitle": "Self-Service", + "indexPage.supportButtonContent": "Alle Ihre Softwarekatalogelemente", + "indexPage.title": "Katalog von {{orgName}}", + "relatedEntitiesCard.emptyHelpLinkTitle": "Erfahren Sie, wie Sie dies ändern können", + "searchResultItem.Owner": "Eigentümer", + "searchResultItem.lifecycle": "Lifecycle", + "systemDiagramCard.description": "Verwenden Sie Pinch&Zoom, um sich im Diagramm zu bewegen.", + "systemDiagramCard.edgeLabels.dependsOn": "hängt ab von", + "systemDiagramCard.edgeLabels.partOf": "Teil von", + "systemDiagramCard.edgeLabels.provides": "bietet", + "systemDiagramCard.title": "Systemdiagramm" + } + }, + "catalog-graph": { + "en": { + "catalogGraphCard.deepLinkTitle": "Diagramm anzeigen", + "catalogGraphCard.title": "Beziehungen", + "catalogGraphPage.curveFilter.curveMonotoneX": "Monotone X", + "catalogGraphPage.curveFilter.curveStepBefore": "Schritt vor", + "catalogGraphPage.curveFilter.title": "Kurve", + "catalogGraphPage.directionFilter.bottomToTop": "Von unten nach oben", + "catalogGraphPage.directionFilter.leftToRight": "Von links nach rechts", + "catalogGraphPage.directionFilter.rightToLeft": "Von rechts nach links", + "catalogGraphPage.directionFilter.title": "Richtung", + "catalogGraphPage.directionFilter.topToBottom": "Von oben nach unten", + "catalogGraphPage.filterToggleButtonTitle": "Filter", + "catalogGraphPage.maxDepthFilter.clearButtonAriaLabel": "Maximale Tiefe löschen", + "catalogGraphPage.maxDepthFilter.inputPlaceholder": "∞ Unendlich", + "catalogGraphPage.maxDepthFilter.title": "Maximale Tiefe", + "catalogGraphPage.mergeRelationsSwitchLabel": "Beziehungen zusammenführen", + "catalogGraphPage.selectedKindsFilter.title": "Arten", + "catalogGraphPage.selectedRelationsFilter.title": "Beziehungen", + "catalogGraphPage.simplifiedSwitchLabel": "Vereinfacht", + "catalogGraphPage.supportButtonDescription": "Beginnen Sie mit der Erfassung Ihrer Komponente, indem Sie sie dem Softwarekatalog hinzufügen.", + "catalogGraphPage.title": "Katalogdiagramm", + "catalogGraphPage.zoomOutDescription": "Verwenden Sie Pinch&Zoom, um sich im Diagramm zu bewegen. Klicken, um den aktiven Knoten zu wechseln; mit gedrückter Umschalttaste klicken, um zum Element zu navigieren." + } + }, + "catalog-import": { + "en": { + "buttons.back": "Zurück", + "defaultImportPage.contentHeaderTitle": "Beginnen Sie mit der Verfolgung Ihrer Komponente in {{appTitle}}", + "defaultImportPage.headerTitle": "Vorhandenes Git-Repository importieren", + "defaultImportPage.supportTitle": "Beginnen Sie mit der Verfolgung Ihrer Komponente in {{appTitle}}, indem Sie sie dem Softwarekatalog hinzufügen.", + "importInfoCard.deepLinkTitle": "Erfahren Sie mehr über den Softwarekatalog", + "importInfoCard.exampleDescription": "Der Assistent findet alle {{catalogFilename}}-Dateien im Repository, zeigt eine Vorschau der Elemente an und fügt sie dem {{appTitle}}-Katalog hinzu.", + "importInfoCard.examplePrefix": "Beispiel: ", + "importInfoCard.fileLinkDescription": "Der Assistent analysiert die Datei, zeigt eine Vorschau der Elemente an und fügt sie dem {{appTitle}}-Katalog hinzu.", + "importInfoCard.fileLinkTitle": "Verknüpfung zu einer vorhandenen Elementdatei", + "importInfoCard.githubIntegration.label": "Nur GitHub", + "importInfoCard.githubIntegration.title": "Verknüpfung zu einem Repository", + "importInfoCard.linkDescription": "Geben Sie die URL zu Ihrem Quellcode-Repository ein, um es {{appTitle}} hinzuzufügen.", + "importInfoCard.preparePullRequestDescription": "Falls keine Elemente gefunden werden, erstellt der Assistent eine Pull-Anforderung, die einen Beispiel-{{catalogFilename}} hinzufügt und den Katalog {{appTitle}} so vorbereitet, dass alle Elemente geladen werden, sobald die Pull-Anforderung zusammengeführt wird.", + "importInfoCard.title": "Vorhandenes Git-Repository importieren", + "importStepper.analyze.title": "URL auswählen", + "importStepper.finish.title": "Beenden", + "importStepper.multipleLocations.description": "Gefundene Speicherorte: {{length, number}}", + "importStepper.multipleLocations.title": "Speicherorte auswählen", + "importStepper.noLocation.createPr.bodyLabel": "Textkörper der Pull-Anforderung", + "importStepper.noLocation.createPr.bodyPlaceholder": "Beschreibender Text mit Markdown-Unterstützung", + "importStepper.noLocation.createPr.codeownersHelperText": "WARNUNG: Dies kann fehlschlagen, wenn am Zielort keine CODEOWNERS-Datei gefunden wird.", + "importStepper.noLocation.createPr.componentNameLabel": "Name der erstellten Komponente", + "importStepper.noLocation.createPr.componentNamePlaceholder": "my-component", + "importStepper.noLocation.createPr.configurationTitle": "Elementkonfiguration", + "importStepper.noLocation.createPr.detailsTitle": "Details der Pull-Anforderung", + "importStepper.noLocation.createPr.ownerErrorHelperText": "erforderlicher Wert", + "importStepper.noLocation.createPr.ownerHelperText": "Wählen Sie einen Eigentümer aus der Liste aus, oder geben Sie einen Verweis auf eine Gruppe oder einen Benutzer ein.", + "importStepper.noLocation.createPr.ownerLabel": "Elementeigentümer", + "importStepper.noLocation.createPr.ownerLoadingText": "Gruppen werden geladen…", + "importStepper.noLocation.createPr.ownerPlaceholder": "my-group", + "importStepper.noLocation.createPr.titleLabel": "Titel der Pull-Anforderung", + "importStepper.noLocation.createPr.titlePlaceholder": "Backstage-Katalogelement-Beschreibungsdateien hinzufügen", + "importStepper.noLocation.title": "Pull-Anforderung erstellen", + "importStepper.prepare.description": "Optional", + "importStepper.prepare.title": "Importaktionen", + "importStepper.review.title": "Überprüfen", + "importStepper.singleLocation.description": "Erkannte Speicherorte: 1", + "importStepper.singleLocation.title": "Speicherorte auswählen", + "stepFinishImportLocation.backButtonText": "Registrieren Sie weitere", + "stepFinishImportLocation.locations.backButtonText": "Weitere registrieren", + "stepFinishImportLocation.locations.existing": "Für die folgenden Orte wurde eine Aktualisierung ausgelöst:", + "stepFinishImportLocation.locations.new": "Folgende Elemente wurden dem Katalog hinzugefügt:", + "stepFinishImportLocation.locations.viewButtonText": "Komponente anzeigen", + "stepFinishImportLocation.repository.description": "Ihre Elemente werden importiert, sobald die Pull-Anforderung zusammengeführt wurde.", + "stepFinishImportLocation.repository.title": "Folgende Pull-Anforderung wurde geöffnet: ", + "stepInitAnalyzeUrl.error.default": "Es wurde ein unbekanntes Analyseergebnis vom Typ {{type}} empfangen. Bitte kontaktieren Sie das Support-Team.", + "stepInitAnalyzeUrl.error.locations": "An diesem Speicherort sind keine Elemente vorhanden", + "stepInitAnalyzeUrl.error.repository": "Es konnten keine Elemente für Ihr Repository generiert werden", + "stepInitAnalyzeUrl.error.url": "Muss mit http:// oder https:// beginnen.", + "stepInitAnalyzeUrl.nextButtonText": "Analysieren", + "stepInitAnalyzeUrl.urlHelperText": "Geben Sie den vollständigen Pfad zu Ihrer Elementdatei ein, um mit der Verfolgung Ihrer Komponente zu beginnen.", + "stepPrepareCreatePullRequest.description": "Sie haben eine Verknüpfung zu einem {{integrationType}}-Repository eingegeben, aber es wurde kein {{catalogFilename}} gefunden. Verwenden Sie dieses Formular, um eine Pull-Anforderung zu öffnen, die eines erstellt.", + "stepPrepareCreatePullRequest.nextButtonText": "Pull-Anforderung erstellen", + "stepPrepareCreatePullRequest.previewCatalogInfo.title": "Vorschau der Elemente anzeigen", + "stepPrepareCreatePullRequest.previewPr.subheader": "Neue Pull-Anforderung erstellen", + "stepPrepareCreatePullRequest.previewPr.title": "Vorschau der Pull-Anforderung anzeigen", + "stepPrepareSelectLocations.existingLocations.description": "Diese Speicherorte sind bereits im Katalog vorhanden:", + "stepPrepareSelectLocations.locations.description": "Wählen Sie einen oder mehrere Speicherorte aus, die in Ihrem Git-Repository vorhanden sind:", + "stepPrepareSelectLocations.locations.selectAll": "Alle auswählen", + "stepPrepareSelectLocations.nextButtonText": "Überprüfen", + "stepReviewLocation.catalog.exists": "Folgende Speicherorte sind bereits im Katalog vorhanden:", + "stepReviewLocation.catalog.new": "Folgende Elemente werden dem Katalog hinzugefügt:", + "stepReviewLocation.import": "Importieren", + "stepReviewLocation.prepareResult.description": "Sie können den Speicherort bereits importieren. {{appTitle}} ruft die Elemente ab, sobald die Pull-Anforderung zusammengeführt wurde.", + "stepReviewLocation.prepareResult.title": "Folgende Pull-Anforderung wurde geöffnet: ", + "stepReviewLocation.refresh": "Aktualisieren" + } + }, + "catalog-react": { + "en": { + "catalogFilter.buttonTitle": "Filter", + "catalogFilter.title": "Filter", + "entityKindPicker.errorMessage": "Fehler beim Laden der Elementarten", + "entityKindPicker.title": "Art", + "entityLifecyclePicker.title": "Lifecycle", + "entityNamespacePicker.title": "Namespace", + "entityOwnerPicker.title": "Eigentümer", + "entityPeekAheadPopover.emailCardAction.ariaLabel": "E-Mail", + "entityPeekAheadPopover.emailCardAction.subTitle": "mailto {{email}}", + "entityPeekAheadPopover.emailCardAction.title": "E-Mail {{email}}", + "entityPeekAheadPopover.entityCardActionsAriaLabel": "Anzeigen", + "entityPeekAheadPopover.entityCardActionsTitle": "Details anzeigen", + "entityPeekAheadPopover.title": "Verzweigen Sie in das Element, um alle Tags anzuzeigen.", + "entityProcessingStatusPicker.title": "Bearbeitungsstatus", + "entitySearchBar.placeholder": "Suchen", + "entityTableColumnTitle.description": "Beschreibung", + "entityTableColumnTitle.domain": "Domain", + "entityTableColumnTitle.label": "Bezeichnung", + "entityTableColumnTitle.lifecycle": "Lifecycle", + "entityTableColumnTitle.name": "Name", + "entityTableColumnTitle.namespace": "Namespace", + "entityTableColumnTitle.owner": "Eigentümer", + "entityTableColumnTitle.system": "System", + "entityTableColumnTitle.tags": "Tags", + "entityTableColumnTitle.targets": "Ziele", + "entityTableColumnTitle.title": "Titel", + "entityTableColumnTitle.type": "Typ", + "entityTagPicker.title": "Tags", + "entityTypePicker.errorMessage": "Fehler beim Laden der Elementtypen", + "entityTypePicker.optionAllTitle": "alle", + "entityTypePicker.title": "Typ", + "favoriteEntity.addToFavorites": "Zu Favoriten hinzufügen", + "favoriteEntity.removeFromFavorites": "Aus Favoriten entfernen", + "inspectEntityDialog.ancestryPage.description": "Dies ist die Abstammung der Elemente oberhalb des aktuellen Elements – also die Kette(n) von Elementen bis hin zum aktuellen Element, wobei untergeordnete {{processorsLink}} Elemente letztendlich zum aktuell vorhandenen Element geführt haben. Beachten Sie, dass es sich hierbei um einen völlig anderen Mechanismus als bei Beziehungen handelt.", + "inspectEntityDialog.ancestryPage.processorsLink": "Prozessoren ausgegeben", + "inspectEntityDialog.ancestryPage.title": "Abstammung", + "inspectEntityDialog.closeButtonTitle": "Schließen", + "inspectEntityDialog.colocatedPage.alertNoEntity": "Es befanden sich keine anderen Elemente an diesem Speicherort.", + "inspectEntityDialog.colocatedPage.alertNoLocation": "Für das Element lagen keine Speicherortsinformationen vor.", + "inspectEntityDialog.colocatedPage.description": "Dies sind die Elemente, die mit diesem Element zusammengelegt werden – das heißt, sie stammen aus derselben Datenquelle (z. B. derselben YAML-Datei) oder vom selben Ursprung (z. B. der ursprünglich registrierten URL).", + "inspectEntityDialog.colocatedPage.locationHeader": "Am selben Speicherort", + "inspectEntityDialog.colocatedPage.originHeader": "Am selben Ursprung", + "inspectEntityDialog.colocatedPage.title": "Zusammengelegt", + "inspectEntityDialog.jsonPage.description": "Dies sind die Elementrohdaten, wie sie aus dem Katalog empfangen wurden (JSON-Format).", + "inspectEntityDialog.jsonPage.title": "Element als JSON", + "inspectEntityDialog.overviewPage.annotations": "Anmerkungen", + "inspectEntityDialog.overviewPage.identity.title": "Identität", + "inspectEntityDialog.overviewPage.labels": "Bezeichnungen", + "inspectEntityDialog.overviewPage.metadata.title": "Metadaten", + "inspectEntityDialog.overviewPage.relation.title": "Beziehungen", + "inspectEntityDialog.overviewPage.status.title": "Status", + "inspectEntityDialog.overviewPage.tags": "Tags", + "inspectEntityDialog.overviewPage.title": "Übersicht", + "inspectEntityDialog.tabNames.ancestry": "Abstammung", + "inspectEntityDialog.tabNames.colocated": "Zusammengelegt", + "inspectEntityDialog.tabNames.json": "Rohes JSON", + "inspectEntityDialog.tabNames.overview": "Übersicht", + "inspectEntityDialog.tabNames.yaml": "Rohes YAML", + "inspectEntityDialog.tabsAriaLabel": "Inspektionsoptionen", + "inspectEntityDialog.title": "Elementprüfer", + "inspectEntityDialog.yamlPage.description": "Dies sind die Elementrohdaten, wie sie aus dem Katalog empfangen wurden (YAML-Format).", + "inspectEntityDialog.yamlPage.title": "Element als YAML", + "missingAnnotationEmptyState.annotationYaml": "Fügen Sie die Anmerkung zu Ihrem {{entityKind}}-YAML hinzu, wie im unten hervorgehobenen Beispiel gezeigt:", + "missingAnnotationEmptyState.generateDescription_one": "Die Anmerkung {{annotations}} fehlt. Sie müssen die Anmerkung zu Ihrer {{entityKind}} hinzufügen, wenn Sie dieses Tool aktivieren möchten.", + "missingAnnotationEmptyState.generateDescription_other": "Die Anmerkungen {{annotations}} fehlen. Sie müssen die Anmerkungen zu Ihrer {{entityKind}} hinzufügen, wenn Sie dieses Tool aktivieren möchten.", + "missingAnnotationEmptyState.readMore": "Mehr lesen", + "missingAnnotationEmptyState.title": "Fehlende Anmerkung", + "unregisterEntityDialog.bootstrapState.advancedDescription": "Sie haben die Möglichkeit, das Element selbst aus dem Katalog zu löschen. Beachten Sie, dass dies nur dann erfolgen sollte, wenn Sie wissen, dass die Katalogdatei an ihrem ursprünglichen Speicherort gelöscht oder von dort verschoben wurde. Sollte dies nicht der Fall sein, wird das Element in Kürze wieder angezeigt, sobald der Katalog die nächste Aktualisierung durchführt.", + "unregisterEntityDialog.bootstrapState.advancedOptions": "Erweiterte Optionen", + "unregisterEntityDialog.bootstrapState.title": "Die Registrierung dieses Elements kann nicht aufgehoben werden, da es aus einer geschützten Backstage-Konfiguration (Speicherort \"{{location}}\") stammt. Wenn Sie der Meinung sind, dass dies ein Fehler ist, wenden Sie sich bitte an den {{appTitle}}-Integrator.", + "unregisterEntityDialog.cancelButtonTitle": "Abbrechen", + "unregisterEntityDialog.deleteButtonTitle": "Element löschen", + "unregisterEntityDialog.deleteEntitySuccessMessage": "Element {{entityName}} entfernt", + "unregisterEntityDialog.errorStateTitle": "Interner Fehler: Unbekannter Status", + "unregisterEntityDialog.onlyDeleteStateTitle": "Dieses Element scheint nicht von einem registrierten Speicherort zu stammen. Sie haben daher nur die Möglichkeit, es komplett aus dem Katalog zu löschen.", + "unregisterEntityDialog.title": "Sind Sie sicher, dass Sie die Registrierung dieses Elements aufheben möchten?", + "unregisterEntityDialog.unregisterState.advancedDescription": "Sie haben auch die Möglichkeit, das Element selbst aus dem Katalog zu löschen. Beachten Sie, dass dies nur dann erfolgen sollte, wenn Sie wissen, dass die Katalogdatei an ihrem ursprünglichen Speicherort gelöscht oder von dort verschoben wurde. Sollte dies nicht der Fall sein, wird das Element in Kürze wieder angezeigt, sobald der Katalog die nächste Aktualisierung durchführt.", + "unregisterEntityDialog.unregisterState.advancedOptions": "Erweiterte Optionen", + "unregisterEntityDialog.unregisterState.description": "Um dies rückgängig zu machen, registrieren Sie das Element einfach erneut in {{appTitle}}.", + "unregisterEntityDialog.unregisterState.subTitle": "Am folgenden Speicherort:", + "unregisterEntityDialog.unregisterState.title": "Durch diese Aktion wird die Registrierung der folgenden Elemente aufgehoben:", + "unregisterEntityDialog.unregisterState.unregisterButtonTitle": "Registrierung Speicherort aufheben", + "userListPicker.defaultOrgName": "Unternehmen", + "userListPicker.orgFilterAllLabel": "Alle", + "userListPicker.personalFilter.ownedLabel": "Im Besitz", + "userListPicker.personalFilter.starredLabel": "Mit Sternchen versehen", + "userListPicker.personalFilter.title": "Persönlich" + } + }, + "core-components": { + "en": { + "alertDisplay.message_one": "({{ count }} neuere Nachricht)", + "alertDisplay.message_other": "({{ count }} neuere Nachrichten)", + "autoLogout.stillTherePrompt.buttonText": "Ja! Mich nicht abmelden", + "autoLogout.stillTherePrompt.title": "Abmeldung aufgrund von Inaktivität", + "copyTextButton.tooltipText": "Text in Zwischenablage kopiert", + "dependencyGraph.fullscreenTooltip": "Vollbildmodus umschalten", + "emptyState.missingAnnotation.actionTitle": "Fügen Sie die Anmerkung wie im Beispiel unten gezeigt zu Ihrem Komponenten-YAML hinzu:", + "emptyState.missingAnnotation.readMore": "Mehr lesen", + "emptyState.missingAnnotation.title": "Fehlende Anmerkung", + "errorBoundary.title": "Wenden Sie sich an {{slackChannel}}, um Hilfe zu erhalten.", + "errorPage.goBack": "Zurück", + "errorPage.showLessDetails": "Weniger Details anzeigen", + "errorPage.showMoreDetails": "Weitere Details anzeigen", + "errorPage.subtitle": "FEHLER {{status}}: {{statusMessage}}", + "errorPage.title": "Sieht so aus, als hätte jemand das Mikrofon fallen lassen!", + "logViewer.searchField.placeholder": "Suchen", + "oauthRequestDialog.authRedirectTitle": "Dies löst eine HTTP-Weiterleitung zur OAuth-Anmeldung aus.", + "oauthRequestDialog.login": "Anmelden", + "oauthRequestDialog.message": "Melden Sie sich an, um {{appTitle}} Zugriff auf die APIs und Identitäten von {{provider}} zu erlauben.", + "oauthRequestDialog.rejectAll": "Alle ablehnen", + "oauthRequestDialog.title": "Anmeldung erforderlich", + "proxiedSignInPage.title": "Sie scheinen nicht angemeldet zu sein. Versuchen Sie, die Browserseite neu zu laden.", + "signIn.customProvider.continue": "Weiter", + "signIn.customProvider.idToken": "ID-Token (optional)", + "signIn.customProvider.subtitle": "Geben Sie Ihre Benutzer-ID und Ihre Zugangsdaten ein. Diese Auswahl wird nicht gespeichert.", + "signIn.customProvider.title": "Benutzerdefinierter Benutzer", + "signIn.customProvider.tokenInvalid": "Das Token ist kein gültiges OpenID Connect JWT-Token.", + "signIn.customProvider.userId": "Benutzer-ID", + "signIn.guestProvider.enter": "Eingabe", + "signIn.guestProvider.subtitle": "Melden Sie sich als Gastbenutzer an. Sie verfügen über keine verifizierte Identität. Dies bedeutet, dass einige Funktionen möglicherweise nicht verfügbar sind.", + "signIn.guestProvider.title": "Gast", + "signIn.loginFailed": "Anmeldung fehlgeschlagen", + "signIn.title": "Anmelden", + "simpleStepper.back": "Zurück", + "simpleStepper.finish": "Beenden", + "simpleStepper.next": "Weiter", + "simpleStepper.reset": "Zurücksetzen", + "simpleStepper.skip": "Überspringen", + "skipToContent": "Direkt zum Inhalt", + "supportButton.close": "Schließen", + "supportButton.title": "Support", + "supportConfig.default.linkTitle": "Fügen Sie den Konfigurationsschlüssel 'app.support' hinzu.", + "supportConfig.default.title": "Unterstützung nicht konfiguriert", + "table.body.emptyDataSourceMessage": "Keine Datensätze zum Anzeigen vorhanden", + "table.filter.clearAll": "Alles löschen", + "table.filter.placeholder": "Alle Ergebnisse", + "table.filter.title": "Filter", + "table.header.actions": "Aktionen", + "table.pagination.firstTooltip": "Erste Seite", + "table.pagination.labelDisplayedRows": "{von}-{bis} von {Anzahl}", + "table.pagination.labelRowsSelect": "Zeilen", + "table.pagination.lastTooltip": "Letzte Seite", + "table.pagination.nextTooltip": "Nächste Seite", + "table.pagination.previousTooltip": "Vorherige Seite", + "table.toolbar.search": "Filter" + } + }, + "home": { + "en": { + "addWidgetDialog.title": "Neues Widget zum Dashboard hinzufügen", + "customHomepage.noWidgets": "Keine Widgets hinzugefügt. Beginnen Sie, indem Sie auf die Schaltfläche 'Widget hinzufügen' klicken.", + "customHomepageButtons.addWidget": "Widget hinzufügen", + "customHomepageButtons.cancel": "Abbrechen", + "customHomepageButtons.clearAll": "Alles löschen", + "customHomepageButtons.edit": "Bearbeiten", + "customHomepageButtons.restoreDefaults": "Standardeinstellungen wiederherstellen", + "customHomepageButtons.save": "Speichern", + "featuredDocsCard.empty.description": "Erstellen Sie Ihr eigenes Dokument. Schauen Sie sich unsere Informationen für den Einstieg an.", + "featuredDocsCard.empty.learnMoreLinkTitle": "DOKUMENTE", + "featuredDocsCard.empty.title": "Keine Dokumente zum Anzeigen", + "featuredDocsCard.learnMoreTitle": "MEHR ERFAHREN", + "quickStart.description": "Erste Schritte mit Backstage", + "quickStart.learnMoreLinkTitle": "Mehr erfahren", + "quickStart.title": "Onboarding", + "starredEntities.noStarredEntitiesMessage": "Klicken Sie auf das Sternchen neben dem Namen eines Elements, um es dieser Liste hinzuzufügen!", + "starredEntityListItem.removeFavoriteEntityTitle": "Element aus Favoriten entfernen", + "visitList.empty.description": "Sobald Sie Backstage nutzen, werden Ihre Besuche hier als Quick-Link angezeigt, sodass Sie dort weitermachen können, wo Sie aufgehört haben.", + "visitList.empty.title": "Es sind noch keine Besuche zum Anzeigen vorhanden.", + "visitList.few.title": "Je mehr Seiten Sie besuchen, desto mehr Seiten werden hier angezeigt.", + "visitedByType.action.viewLess": "Weniger anzeigen", + "visitedByType.action.viewMore": "Mehr anzeigen", + "widgetSettingsOverlay.cancelButtonTitle": "Abbrechen", + "widgetSettingsOverlay.deleteWidgetTooltip": "Widget löschen", + "widgetSettingsOverlay.editSettingsTooptip": "Einstellungen bearbeiten", + "widgetSettingsOverlay.submitButtonTitle": "Absenden" + } + }, + "home-react": { + "en": { + "cardExtension.settingsButtonTitle": "Einstellungen", + "settingsModal.closeButtonTitle": "Schließen", + "settingsModal.title": "Einstellungen" + } + }, + "kubernetes": { + "en": { + "entityContent.title": "Kubernetes", + "kubernetesContentPage.emptyState.description": "Für {{entityName}} sind auf keinem bekannten Cluster Ressourcen verfügbar.", + "kubernetesContentPage.emptyState.title": "Keine Kubernetes-Ressourcen", + "kubernetesContentPage.permissionAlert.message": "Wenn Sie Kubernetes-Objekte anzeigen möchten, wenden Sie sich an den Portaladministrator, um die Berechtigungen 'kubernetes.clusters.read' und 'kubernetes.resources.read' zu erhalten.", + "kubernetesContentPage.permissionAlert.title": "Berechtigung erforderlich", + "kubernetesContentPage.title": "Ihre Cluster" + } + }, + "kubernetes-cluster": { + "en": { + "kubernetesClusterContentPage.permissionAlert.message": "Wenn Sie Kubernetes-Objekte anzeigen möchten, wenden Sie sich an Ihren Portaladministrator, um die Berechtigung 'kubernetes.clusters.read' zu erhalten.", + "kubernetesClusterContentPage.permissionAlert.title": "Berechtigung erforderlich" + } + }, + "kubernetes-react": { + "en": { + "cluster.label": "Cluster", + "cluster.noPodsWithErrors": "Keine Pods mit Fehlern", + "cluster.pods": "Pods", + "cluster.podsWithErrors": "Pods mit Fehlern", + "cluster.podsWithErrors_one": "{{count}} Pod mit Fehlern", + "cluster.podsWithErrors_other": "{{count}} Pods mit Fehlern", + "cluster.pods_one": "{{count}} Pod", + "cluster.pods_other": "{{count}} Pods", + "errorPanel.clusterLabel": "Cluster", + "errorPanel.clusterLabelValue": "Cluster: {{cluster}}", + "errorPanel.errorsLabel": "Fehler", + "errorPanel.fetchError": "Fehler bei der Kommunikation mit Kubernetes: {{errorType}}, Meldung: {{message}}", + "errorPanel.message": "Es gab ein Problem beim Abrufen einiger Kubernetes-Ressourcen für das Element: {{entityName}}. Dies könnte bedeuten, dass die Karte mit den Fehlerberichten nicht ganz korrekt ist.", + "errorPanel.resourceError": "Fehler beim Abrufen der Kubernetes-Ressource: '{{resourcePath}}', Fehler: {{errorType}}, Statuscode: {{statusCode}}", + "errorPanel.title": "Problem beim Abrufen von Kubernetes-Objekten", + "errorReporting.columns.cluster": "Cluster", + "errorReporting.columns.kind": "Art", + "errorReporting.columns.messages": "Nachrichten", + "errorReporting.columns.name": "Name", + "errorReporting.columns.namespace": "Namespace", + "errorReporting.title": "Fehlerberichte", + "events.eventTooltip": "{{eventType}}-Ereignis", + "events.firstEvent": "Erstes Ereignis {{timeAgo}} (Anzahl: {{count}})", + "events.noEventsFound": "Keine Ereignisse gefunden", + "fixDialog.ariaLabels.close": "schließen", + "fixDialog.ariaLabels.fixIssue": "Problem beheben", + "fixDialog.causeExplanation": "Ursachenerklärung:", + "fixDialog.crashLogs": "Absturz-Logs:", + "fixDialog.detectedError": "Fehler erkannt:", + "fixDialog.events": "Ereignisse:", + "fixDialog.fix": "Korrektur:", + "fixDialog.helpButton": "Hilfe", + "fixDialog.openDocs": "Dokumente öffnen", + "fixDialog.title": "{{podName}} – {{errorType}}", + "hpa.currentCpuUsage": "Aktuelle CPU-Auslastung:", + "hpa.currentCpuUsageLabel": "Aktuelle CPU-Auslastung: {{value}}%", + "hpa.maxReplicas": "Max. Replikate", + "hpa.minReplicas": "Min. Replikate", + "hpa.replicasSummary": "Min. Replikate {{min}} / Max. Replikate {{max}}", + "hpa.targetCpuUsage": "Anvisierte CPU-Auslastung:", + "hpa.targetCpuUsageLabel": "Anvisierte CPU-Auslastung: {{value}}%", + "kubernetesDialog.closeAriaLabel": "schließen", + "kubernetesDrawer.closeDrawer": "Drawer schließen", + "kubernetesDrawer.managedFields": "Verwaltete Felder", + "kubernetesDrawer.unknownName": "unbekannter Name", + "kubernetesDrawer.yaml": "YAML", + "linkErrorPanel.errorsLabel": "Fehler:", + "linkErrorPanel.message": "Die Verknüpfung zum Dashboard Ihres Clusters mit dem Namen '{{clusterName}}' konnte nicht formatiert werden. Die dashboardApp-Eigenschaft wurde auf '{{dashboardApp}}' gesetzt.", + "linkErrorPanel.title": "Problem beim Formatieren der Verknüpfung zum Kubernetes-Dashboard", + "namespace.label": "Namespace:", + "namespace.labelWithValue": "Namespace: {{namespace}}", + "podDrawer.buttons.delete": "Pod löschen", + "podDrawer.cpuLimits": "CPU-Limits", + "podDrawer.cpuRequests": "CPU-Anforderungen", + "podDrawer.memoryLimits": "Arbeitsspeicherlimits", + "podDrawer.memoryRequests": "Arbeitsspeicheranforderungen", + "podDrawer.resourceUtilization": "Ressourcennutzung", + "podExecTerminal.buttonAriaLabel": "Terminal öffnen", + "podExecTerminal.buttonText": "Terminal", + "podExecTerminal.titleTemplate": "{{podName}} – {{containerName}} Terminal-Shell auf Cluster {{clusterName}}", + "podLogs.buttonAriaLabel": "Logs abrufen", + "podLogs.buttonText": "Logs", + "podLogs.description": "Der Container hat keine Logs ausgegeben", + "podLogs.title": "Keine Logs ausgegeben", + "podLogs.titleTemplate": "{{podName}} – {{containerName}} Logs auf Cluster {{clusterName}}", + "pods.pods_one": "{{count}} Pod", + "pods.pods_other": "{{count}} Pods", + "podsTable.columns.containersReady": "Container bereit", + "podsTable.columns.cpuUsage": "CPU-Auslastung %", + "podsTable.columns.id": "ID", + "podsTable.columns.memoryUsage": "Arbeitsspeicherauslastung %", + "podsTable.columns.name": "Name", + "podsTable.columns.phase": "Phase", + "podsTable.columns.status": "Status", + "podsTable.columns.totalRestarts": "Neustarts insgesamt", + "podsTable.status.ok": "OK", + "podsTable.status.running": "Wird ausgeführt", + "podsTable.unknown": "unbekannt" + } + }, + "org": { + "en": { + "groupProfileCard.editIconButtonTitle": "Metadaten bearbeiten", + "groupProfileCard.groupNotFound": "Gruppe nicht gefunden", + "groupProfileCard.listItemTitle.childGroups": "Untergeordnete Gruppen", + "groupProfileCard.listItemTitle.email": "E-Mail", + "groupProfileCard.listItemTitle.entityRef": "Elementref.", + "groupProfileCard.listItemTitle.parentGroup": "Übergeordnete Gruppe", + "groupProfileCard.refreshIconButtonAriaLabel": "Aktualisieren", + "groupProfileCard.refreshIconButtonTitle": "Aktualisierung des Elements planen", + "membersListCard.aggregateMembersToggle.aggregatedMembers": "Aggregierte Mitglieder", + "membersListCard.aggregateMembersToggle.ariaLabel": "Schalter für Benutzertyp", + "membersListCard.aggregateMembersToggle.directMembers": "Direkte Mitglieder", + "membersListCard.noMembersDescription": "Diese Gruppe hat keine Mitglieder.", + "membersListCard.paginationLabel": ", Seite {{page}} von {{nbPages}}", + "membersListCard.subtitle": "von {{groupName}}", + "membersListCard.title": "Mitglieder", + "ownershipCard.aggregateRelationsToggle.aggregatedRelations": "Aggregierte Beziehungen", + "ownershipCard.aggregateRelationsToggle.ariaLabel": "Schalter für Eigentümertyp", + "ownershipCard.aggregateRelationsToggle.directRelations": "Direkte Beziehungen", + "ownershipCard.title": "Eigentum", + "userProfileCard.allGroupDialog.closeButtonTitle": "Schließen", + "userProfileCard.allGroupDialog.title": "Alle Gruppen von {{name}}:", + "userProfileCard.editIconButtonTitle": "Metadaten bearbeiten", + "userProfileCard.listItemTitle.email": "E-Mail", + "userProfileCard.listItemTitle.memberOf": "Mitglied von", + "userProfileCard.moreGroupButtonTitle": "...Mehr ({{number}})", + "userProfileCard.userNotFound": "Benutzer nicht gefunden" + } + }, + "plugin.notifications": { + "en": { + "filters.createdAfter.anyTime": "Jederzeit", + "filters.createdAfter.label": "Gesendet", + "filters.createdAfter.last24h": "Letzte 24 Stunden", + "filters.createdAfter.lastWeek": "Letzte Woche", + "filters.createdAfter.placeholder": "Benachrichtigungen seit", + "filters.severity.critical": "Kritisch", + "filters.severity.high": "Hoch", + "filters.severity.label": "Min. Schweregrad", + "filters.severity.low": "Niedrig", + "filters.severity.normal": "Normal", + "filters.sortBy.label": "Sortieren nach", + "filters.sortBy.newest": "Neueste ganz oben", + "filters.sortBy.oldest": "Älteste ganz oben", + "filters.sortBy.origin": "Herkunft", + "filters.sortBy.placeholder": "Feld, nach dem sortiert werden soll", + "filters.sortBy.topic": "Thema", + "filters.title": "Filter", + "filters.topic.anyTopic": "Beliebiges Thema", + "filters.topic.label": "Thema", + "filters.view.all": "Alle", + "filters.view.label": "Anzeigen", + "filters.view.read": "Gelesene Benachrichtigungen", + "filters.view.saved": "Gespeichert", + "filters.view.unread": "Ungelesene Benachrichtigungen", + "notificationsPage.tableTitle.all_one": "Alle Benachrichtigungen ({{count}})", + "notificationsPage.tableTitle.all_other": "Alle Benachrichtigungen ({{count}})", + "notificationsPage.tableTitle.read_one": "Gelesene Benachrichtigungen ({{count}})", + "notificationsPage.tableTitle.read_other": "Gelesene Benachrichtigungen ({{count}})", + "notificationsPage.tableTitle.saved_one": "Gespeicherte Benachrichtigungen ({{count}})", + "notificationsPage.tableTitle.saved_other": "Gespeicherte Benachrichtigungen ({{count}})", + "notificationsPage.tableTitle.unread_one": "Ungelesene Benachrichtigungen ({{count}})", + "notificationsPage.tableTitle.unread_other": "Ungelesene Benachrichtigungen ({{count}})", + "notificationsPage.title": "Benachrichtigungen", + "settings.errorTitle": "Einstellungen konnten nicht geladen werden", + "settings.errors.useNotificationFormat": "useNotificationFormat muss innerhalb eines NotificationFormatProvider verwendet werden.", + "settings.noSettingsAvailable": "Keine Benachrichtigungseinstellungen verfügbar. Bitte versuchen Sie es später erneut.", + "settings.table.origin": "Herkunft", + "settings.table.topic": "Thema", + "settings.title": "Benachrichtigungseinstellungen", + "sidebar.errors.fetchNotificationFailed": "Benachrichtigung konnte nicht abgerufen werden", + "sidebar.errors.markAsReadFailed": "Benachrichtigung konnte nicht als gelesen markiert werden", + "sidebar.title": "Benachrichtigungen", + "table.bulkActions.markAllRead": "Alle als gelesen markieren", + "table.bulkActions.markSelectedAsRead": "Ausgewählte als gelesen markieren", + "table.bulkActions.returnSelectedAmongUnread": "Zurück zur Auswahl unter ungelesenen Elementen", + "table.bulkActions.saveSelectedForLater": "Auswahl für später speichern", + "table.bulkActions.undoSaveForSelected": "Speichern für Auswahl rückgängig machen", + "table.confirmDialog.markAllReadConfirmation": "Alle markieren", + "table.confirmDialog.markAllReadDescription": "Alle Benachrichtigungen als gelesen markieren.", + "table.confirmDialog.title": "Sind Sie sicher?", + "table.emptyMessage": "Keine Datensätze zum Anzeigen vorhanden", + "table.errors.markAllReadFailed": "Fehler beim Markieren aller Benachrichtigungen als gelesen", + "table.pagination.firstTooltip": "Erste Seite", + "table.pagination.labelDisplayedRows": "{von}-{bis} von {Anzahl}", + "table.pagination.labelRowsSelect": "Zeilen", + "table.pagination.lastTooltip": "Letzte Seite", + "table.pagination.nextTooltip": "Nächste Seite", + "table.pagination.previousTooltip": "Vorherige Seite" + } + }, + "scaffolder": { + "en": { + "aboutCard.launchTemplate": "Template starten", + "actionsPage.action.examples": "Beispiele", + "actionsPage.action.input": "Eingabe", + "actionsPage.action.output": "Ausgabe", + "actionsPage.content.emptyState.description": "Es wurden keine Aktionen installiert oder es gab ein Problem bei der Kommunikation mit dem Backend.", + "actionsPage.content.emptyState.title": "Keine Informationen zum Anzeigen", + "actionsPage.content.searchFieldPlaceholder": "Nach einer Aktion suchen", + "actionsPage.pageTitle": "Neue Komponente erstellen", + "actionsPage.subtitle": "Dies ist die Sammlung aller installierten Aktionen", + "actionsPage.title": "Installierte Aktionen", + "fields.azureRepoPicker.organization.description": "Die Organisation, zu der dieses Repository gehören wird", + "fields.azureRepoPicker.organization.title": "Organisation", + "fields.azureRepoPicker.project.description": "Das Projekt, zu dem dieses Repository gehören wird", + "fields.azureRepoPicker.project.title": "Projekt", + "fields.bitbucketRepoPicker.project.description": "Das Projekt, zu dem dieses Repository gehören wird", + "fields.bitbucketRepoPicker.project.inputTitle": "Projekte", + "fields.bitbucketRepoPicker.project.title": "Zulässige Projekte", + "fields.bitbucketRepoPicker.workspaces.description": "Der Arbeitsbereich, zu dem dieses Repository gehören wird", + "fields.bitbucketRepoPicker.workspaces.inputTitle": "Arbeitsbereiche", + "fields.bitbucketRepoPicker.workspaces.title": "Zulässige Arbeitsbereiche", + "fields.entityNamePicker.description": "Eindeutiger Name der Komponente", + "fields.entityNamePicker.title": "Name", + "fields.entityPicker.description": "Ein Element aus dem Katalog", + "fields.entityPicker.title": "Element", + "fields.entityTagsPicker.description": "Fügen Sie ggf. relevante Tags hinzu und drücken Sie die Eingabetaste, um neue Tags hinzuzufügen. Gültiges Format: [a-z0-9+#] getrennt durch [-], max. 63 Zeichen", + "fields.entityTagsPicker.title": "Tags", + "fields.gerritRepoPicker.owner.description": "Der Eigentümer des Projekts (optional)", + "fields.gerritRepoPicker.owner.title": "Eigentümer", + "fields.gerritRepoPicker.parent.description": "Das übergeordnete Projekt, zu dem das Repository gehören wird", + "fields.gerritRepoPicker.parent.title": "Übergeordnet", + "fields.giteaRepoPicker.owner.description": "Gitea-Namespace, zu dem dieses Repository gehören wird. Kann der Name einer Organisation, Gruppe, Untergruppe, eines Benutzers oder eines Projekts sein.", + "fields.giteaRepoPicker.owner.inputTitle": "Eigentümer", + "fields.giteaRepoPicker.owner.title": "Eigentümer verfügbar", + "fields.githubRepoPicker.owner.description": "Die Organisation, der Benutzer oder das Projekt, zu der/dem das Repository gehören wird", + "fields.githubRepoPicker.owner.inputTitle": "Eigentümer", + "fields.githubRepoPicker.owner.title": "Eigentümer verfügbar", + "fields.gitlabRepoPicker.owner.description": "GitLab-Namespace, zu dem dieses Repository gehören wird. Kann der Name einer Organisation, Gruppe, Untergruppe, eines Benutzers oder eines Projekts sein.", + "fields.gitlabRepoPicker.owner.inputTitle": "Eigentümer", + "fields.gitlabRepoPicker.owner.title": "Eigentümer verfügbar", + "fields.multiEntityPicker.description": "Ein Element aus dem Katalog", + "fields.multiEntityPicker.title": "Element", + "fields.myGroupsPicker.description": "Ein Element aus dem Katalog", + "fields.myGroupsPicker.title": "Element", + "fields.ownedEntityPicker.description": "Ein Element aus dem Katalog", + "fields.ownedEntityPicker.title": "Element", + "fields.ownerPicker.description": "Der Eigentümer der Komponente", + "fields.ownerPicker.title": "Eigentümer", + "fields.repoOwnerPicker.description": "Der Eigentümer des Repositorys", + "fields.repoOwnerPicker.title": "Eigentümer", + "fields.repoUrlPicker.host.description": "Der Host, auf dem das Repository erstellt wird", + "fields.repoUrlPicker.host.title": "Host", + "fields.repoUrlPicker.repository.description": "Der Name des Repositorys", + "fields.repoUrlPicker.repository.inputTitle": "Repository", + "fields.repoUrlPicker.repository.title": "Repositorys verfügbar", + "listTaskPage.content.emptyState.description": "Es sind keine Aufgaben vorhanden oder es gab ein Problem bei der Kommunikation mit dem Backend.", + "listTaskPage.content.emptyState.title": "Keine Informationen zum Anzeigen", + "listTaskPage.content.tableCell.created": "Erstellt", + "listTaskPage.content.tableCell.owner": "Eigentümer", + "listTaskPage.content.tableCell.status": "Status", + "listTaskPage.content.tableCell.taskID": "Aufgaben-ID", + "listTaskPage.content.tableCell.template": "Template", + "listTaskPage.content.tableTitle": "Aufgaben", + "listTaskPage.pageTitle": "Template-Aufgaben", + "listTaskPage.subtitle": "Alle begonnenen Aufgaben", + "listTaskPage.title": "Liste der Template-Aufgaben", + "ongoingTask.cancelButtonTitle": "Abbrechen", + "ongoingTask.contextMenu.cancel": "Abbrechen", + "ongoingTask.contextMenu.hideButtonBar": "Schaltflächenleiste ausblenden", + "ongoingTask.contextMenu.hideLogs": "Logs ausblenden", + "ongoingTask.contextMenu.retry": "Wiederholen", + "ongoingTask.contextMenu.showButtonBar": "Schaltflächenleiste anzeigen", + "ongoingTask.contextMenu.showLogs": "Logs anzeigen", + "ongoingTask.contextMenu.startOver": "Von vorne beginnen", + "ongoingTask.hideLogsButtonTitle": "Logs ausblenden", + "ongoingTask.pageTitle.hasTemplateName": "Ausführung von {{templateName}}", + "ongoingTask.pageTitle.noTemplateName": "Scaffolder-Ausführung", + "ongoingTask.retryButtonTitle": "Wiederholen", + "ongoingTask.showLogsButtonTitle": "Logs anzeigen", + "ongoingTask.startOverButtonTitle": "Von vorne beginnen", + "ongoingTask.subtitle": "Aufgabe {{taskId}}", + "ongoingTask.title": "Ausführung von", + "ownerListPicker.options.all": "Alle", + "ownerListPicker.options.owned": "Im Besitz", + "ownerListPicker.title": "Aufgabeneigentümer", + "renderSchema.tableCell.description": "Beschreibung", + "renderSchema.tableCell.name": "Name", + "renderSchema.tableCell.title": "Titel", + "renderSchema.tableCell.type": "Typ", + "renderSchema.undefined": "Kein Schema definiert", + "templateCustomFieldPage.subtitle": "Benutzerdefinierte Felder bearbeiten, in der Vorschau anzeigen und ausprobieren", + "templateCustomFieldPage.title": "Explorer für benutzerdefinierte Felder", + "templateEditorForm.stepper.emptyText": "Im Template sind keine Spezifikationsparameter zur Vorschau vorhanden.", + "templateEditorPage.customFieldExplorer.fieldForm.applyButtonTitle": "Anwenden", + "templateEditorPage.customFieldExplorer.fieldForm.title": "Feldoptionen", + "templateEditorPage.customFieldExplorer.fieldPreview.title": "Feldvorschau", + "templateEditorPage.customFieldExplorer.preview.title": "Template-Spezifikation", + "templateEditorPage.customFieldExplorer.selectFieldLabel": "Wählen Sie die benutzerdefinierte Felderweiterung aus.", + "templateEditorPage.dryRunResults.title": "Ergebnisse des Trockenlaufs", + "templateEditorPage.dryRunResultsList.deleteButtonTitle": "Ergebnis löschen", + "templateEditorPage.dryRunResultsList.downloadButtonTitle": "Als ZIP herunterladen", + "templateEditorPage.dryRunResultsList.title": "Ergebnis {{resultId}}", + "templateEditorPage.dryRunResultsView.tab.files": "Dateien", + "templateEditorPage.dryRunResultsView.tab.log": "Protokoll", + "templateEditorPage.dryRunResultsView.tab.output": "Ausgabe", + "templateEditorPage.subtitle": "Templates und Template-Formulare bearbeiten, in der Vorschau anzeigen und ausprobieren", + "templateEditorPage.taskStatusStepper.skippedStepTitle": "Übersprungen", + "templateEditorPage.templateEditorBrowser.closeConfirmMessage": "Sind Sie sicher? Nicht gespeicherte Änderungen gehen verloren.", + "templateEditorPage.templateEditorBrowser.closeIconTooltip": "Verzeichnis schließen", + "templateEditorPage.templateEditorBrowser.reloadIconTooltip": "Verzeichnis neu laden", + "templateEditorPage.templateEditorBrowser.saveIconTooltip": "Alle Dateien speichern", + "templateEditorPage.templateEditorIntro.createLocal.description": "Erstellen Sie ein lokales Template-Verzeichnis, damit Sie Ihr eigenes Template bearbeiten und ausführen können.", + "templateEditorPage.templateEditorIntro.createLocal.title": "Neues Template erstellen", + "templateEditorPage.templateEditorIntro.createLocal.unsupportedTooltip": "Wird nur von einigen Chromium-basierten Browsern unterstützt, wenn die Seite über HTTPS geladen wird.", + "templateEditorPage.templateEditorIntro.fieldExplorer.description": "Sehen Sie sich die verfügbaren installierten benutzerdefinierten Felderweiterungen an, und probieren Sie sie aus.", + "templateEditorPage.templateEditorIntro.fieldExplorer.title": "Explorer für benutzerdefinierte Felder", + "templateEditorPage.templateEditorIntro.formEditor.description": "Vorschau und Bearbeitung eines Template-Formulars entweder mithilfe eines Beispiel-Templates oder durch Laden eines Templates aus dem Katalog.", + "templateEditorPage.templateEditorIntro.formEditor.title": "Playground für Template-Formular", + "templateEditorPage.templateEditorIntro.loadLocal.description": "Laden Sie ein lokales Template-Verzeichnis, sodass Sie Ihr eigenes Template bearbeiten und ausführen können.", + "templateEditorPage.templateEditorIntro.loadLocal.title": "Template-Verzeichnis laden", + "templateEditorPage.templateEditorIntro.loadLocal.unsupportedTooltip": "Wird nur von einigen Chromium-basierten Browsern unterstützt, wenn die Seite über HTTPS geladen wird.", + "templateEditorPage.templateEditorIntro.title": "Beginnen Sie, indem Sie eine der folgenden Optionen auswählen", + "templateEditorPage.templateEditorTextArea.emptyStateParagraph": "Bitte wählen Sie eine Aktion im Menü 'Datei' aus.", + "templateEditorPage.templateEditorTextArea.refreshIconTooltip": "Datei neu laden", + "templateEditorPage.templateEditorTextArea.saveIconTooltip": "Datei speichern", + "templateEditorPage.templateFormPreviewer.title": "Vorhandenes Template laden", + "templateEditorPage.title": "Template-Editor", + "templateEditorToolbar.addToCatalogButton": "Veröffentlichen", + "templateEditorToolbar.addToCatalogDialogActions.documentationButton": "Zur Dokumentation", + "templateEditorToolbar.addToCatalogDialogActions.documentationUrl": "https://backstage.io/docs/features/software-templates/adding-templates/", + "templateEditorToolbar.addToCatalogDialogContent.stepsIntroduction": "Gehen Sie wie folgt vor, um ein Template zu erstellen oder zu aktualisieren:", + "templateEditorToolbar.addToCatalogDialogContent.stepsListItems": "Speichern Sie die Template-Dateien in einem lokalen Verzeichnis. Erstellen Sie eine Pull-Anforderung für ein neues oder vorhandenes Git-Repository. Existiert das Template bereits, werden die Änderungen nach dem Zusammenführen der Pull-Anforderung in den Softwarekatalog übernommen. Erstellen Sie hingegen ein neues Template, folgen Sie der unten verlinkten Dokumentation, um das neue Template-Repository im Softwarekatalog zu registrieren.", + "templateEditorToolbar.addToCatalogDialogTitle": "Änderungen veröffentlichen", + "templateEditorToolbar.customFieldExplorerTooltip": "Explorer für benutzerdefinierte Felder", + "templateEditorToolbar.installedActionsDocumentationTooltip": "Dokumentation für installierte Aktionen", + "templateEditorToolbar.templatingExtensionsDocumentationTooltip": "Dokumentation zu Erweiterungen zur Template-Erstellung", + "templateEditorToolbarFileMenu.button": "Datei", + "templateEditorToolbarFileMenu.options.closeEditor": "Template-Editor schließen", + "templateEditorToolbarFileMenu.options.createDirectory": "Template-Verzeichnis erstellen", + "templateEditorToolbarFileMenu.options.openDirectory": "Template-Verzeichnis öffnen", + "templateEditorToolbarTemplatesMenu.button": "Templates", + "templateFormPage.subtitle": "Template-Formulare bearbeiten, in der Vorschau anzeigen und ausprobieren", + "templateFormPage.title": "Template-Editor", + "templateIntroPage.subtitle": "Templates, Formulare und benutzerdefinierte Felder bearbeiten, in der Vorschau anzeigen und ausprobieren", + "templateIntroPage.title": "Templates verwalten", + "templateListPage.additionalLinksForEntity.viewTechDocsTitle": "TechDocs ansehen", + "templateListPage.contentHeader.registerExistingButtonTitle": "Vorhandenes Git-Repository importieren", + "templateListPage.contentHeader.supportButtonTitle": "Erstellen Sie neue Softwarekomponenten mithilfe von Standard-Templates. Unterschiedliche Templates erzeugen unterschiedliche Arten von Komponenten (Dienste, Websites, Dokumentationen usw.).", + "templateListPage.pageTitle": "Neue Komponente erstellen", + "templateListPage.subtitle": "Erstellen Sie neue Softwarekomponenten mithilfe von Standard-Templates in Ihrer Organisation.", + "templateListPage.templateGroups.defaultTitle": "Templates", + "templateListPage.templateGroups.otherTitle": "Andere Templates", + "templateListPage.title": "Neue Komponente erstellen", + "templateTypePicker.title": "Kategorien", + "templateWizardPage.pageContextMenu.editConfigurationTitle": "Konfiguration bearbeiten", + "templateWizardPage.pageTitle": "Neue Komponente erstellen", + "templateWizardPage.subtitle": "Erstellen Sie neue Softwarekomponenten mithilfe von Standard-Templates in Ihrer Organisation.", + "templateWizardPage.title": "Neue Komponente erstellen", + "templatingExtensions.content.emptyState.description": "Es sind keine Erweiterungen für die Template-Erstellung verfügbar oder es gab ein Problem bei der Kommunikation mit dem Backend.", + "templatingExtensions.content.emptyState.title": "Keine Informationen zum Anzeigen", + "templatingExtensions.content.filters.examples": "Beispiele", + "templatingExtensions.content.filters.metadataAbsent": "Filtermetadaten nicht verfügbar", + "templatingExtensions.content.filters.notAvailable": "Es sind keine Template-Filter definiert.", + "templatingExtensions.content.filters.schema.arguments": "Argumente", + "templatingExtensions.content.filters.schema.input": "Eingabe", + "templatingExtensions.content.filters.schema.output": "Ausgabe", + "templatingExtensions.content.filters.title": "Filter", + "templatingExtensions.content.functions.examples": "Beispiele", + "templatingExtensions.content.functions.metadataAbsent": "Funktionsmetadaten nicht verfügbar", + "templatingExtensions.content.functions.notAvailable": "Es sind keine globalen Template-Funktionen definiert.", + "templatingExtensions.content.functions.schema.arguments": "Argumente", + "templatingExtensions.content.functions.schema.output": "Ausgabe", + "templatingExtensions.content.functions.title": "Funktionen", + "templatingExtensions.content.searchFieldPlaceholder": "Nach einer Erweiterung suchen", + "templatingExtensions.content.values.notAvailable": "Es sind keine globalen Template-Werte definiert.", + "templatingExtensions.content.values.title": "Werte", + "templatingExtensions.pageTitle": "Erweiterungen für Template-Erstellung", + "templatingExtensions.subtitle": "Dies ist die Sammlung der verfügbaren Erweiterungen für die Template-Erstellung.", + "templatingExtensions.title": "Erweiterungen für Template-Erstellung" + } + }, + "scaffolder-react": { + "en": { + "cardHeader.detailBtnTitle": "Details des Template-Elements anzeigen", + "passwordWidget.content": "Dieses Widget ist unsicher. Bitte verwenden Sie ['ui:field: Secret'](https://backstage.io/docs/features/software-templates/writing-templates/#using-secrets) anstelle von 'ui:widget: password'.", + "scaffolderPageContextMenu.actionsLabel": "Installierte Aktionen", + "scaffolderPageContextMenu.createLabel": "Erstellen", + "scaffolderPageContextMenu.editorLabel": "Templates verwalten", + "scaffolderPageContextMenu.moreLabel": "mehr", + "scaffolderPageContextMenu.tasksLabel": "Aufgabenliste", + "scaffolderPageContextMenu.templatingExtensionsLabel": "Erweiterungen für Template-Erstellung", + "stepper.backButtonText": "Zurück", + "stepper.createButtonText": "Erstellen", + "stepper.nextButtonText": "Weiter", + "stepper.reviewButtonText": "Überprüfen", + "stepper.stepIndexLabel": "Schritt {{index, number}}", + "templateCard.chooseButtonText": "Auswählen", + "templateCard.noDescription": "Keine Beschreibung", + "templateCategoryPicker.title": "Kategorien", + "templateOutputs.title": "Textausgabe", + "workflow.noDescription": "Keine Beschreibung" + } + }, + "search": { + "en": { + "searchModal.viewFullResults": "Vollständige Ergebnisse anzeigen", + "searchType.accordion.allTitle": "Alle", + "searchType.accordion.collapse": "Komprimieren", + "searchType.accordion.numberOfResults": "{{number}} Ergebnisse", + "searchType.allResults": "Alle Ergebnisse", + "searchType.tabs.allTitle": "Alle", + "sidebarSearchModal.title": "Suchen" + } + }, + "search-react": { + "en": { + "noResultsDescription": "Leider wurden keine Ergebnisse gefunden", + "searchBar.clearButtonTitle": "Löschen", + "searchBar.placeholder": "Suchen in {{org}}", + "searchBar.title": "Suchen", + "searchFilter.allOptionTitle": "Alle", + "searchPagination.limitLabel": "Ergebnisse pro Seite:", + "searchPagination.limitText": "von {{num}}", + "searchResultGroup.addFilterButtonTitle": "Filter hinzufügen", + "searchResultGroup.linkTitle": "Alle anzeigen", + "searchResultPager.next": "Weiter", + "searchResultPager.previous": "Zurück" + } + }, + "techdocs": { + "en": { + "aboutCard.viewTechdocs": "TechDocs ansehen" + } + }, + "user-settings": { + "en": { + "appearanceCard.title": "Erscheinungsbild", + "authProviders.title": "Verfügbare Provider", + "defaultProviderSettings.description": "Bietet Authentifizierung für {{provider}}-APIs und -Identitäten", + "defaultSettingsPage.tabsTitle.authProviders": "Authentifizierungs-Provider", + "defaultSettingsPage.tabsTitle.featureFlags": "Feature-Flags", + "defaultSettingsPage.tabsTitle.general": "Allgemein", + "emptyProviders.action.readMoreButtonTitle": "Mehr lesen", + "emptyProviders.action.title": "Öffnen Sie 'app-config.yaml', und nehmen Sie Änderungen wie unten dargestellt vor:", + "emptyProviders.description": "Sie können Authentifizierungs-Provider zu Backstage hinzufügen, sodass Sie diese Provider für Ihre eigene Authentifizierung verwenden können.", + "emptyProviders.title": "Keine Authentifizierungs-Provider", + "featureFlags.clearFilter": "Filter löschen", + "featureFlags.description": "Aktualisieren Sie die Seite, wenn Sie die Feature-Flags ein- bzw. ausschalten.", + "featureFlags.emptyFlags.action.readMoreButtonTitle": "Mehr lesen", + "featureFlags.emptyFlags.action.title": "Ein Beispiel für das Hinzufügen eines Feature-Flags finden Sie unten:", + "featureFlags.emptyFlags.description": "Feature-Flags ermöglichen es Plugins, Funktionen im Backstage-Bereich zu registrieren, die Benutzer optional aktivieren können. Sie können dies nutzen, um die Logik in Ihrem Code für manuelle A/B-Tests usw. auszulagern.", + "featureFlags.emptyFlags.title": "Keine Feature-Flags", + "featureFlags.filterTitle": "Filter", + "featureFlags.flagItem.subtitle.registeredInApplication": "In der Anwendung registriert", + "featureFlags.flagItem.subtitle.registeredInPlugin": "Im Plugin {{pluginId}} registriert", + "featureFlags.flagItem.title.disable": "Deaktivieren", + "featureFlags.flagItem.title.enable": "Aktivieren", + "featureFlags.title": "Feature-Flags", + "identityCard.noIdentityTitle": "Keine Backstage-Identität", + "identityCard.ownershipEntities": "Eigentumsentitäten", + "identityCard.title": "Backstage-Identität", + "identityCard.userEntity": "Benutzerentität", + "languageToggle.description": "Sprache ändern", + "languageToggle.select": "Sprache {{language}} auswählen", + "languageToggle.title": "Sprache", + "pinToggle.ariaLabelTitle": "Schalter für 'Seitenleiste anheften'", + "pinToggle.description": "Verhindert, dass die Seitenleiste komprimiert wird", + "pinToggle.switchTitles.pin": "Seitenleiste anheften", + "pinToggle.switchTitles.unpin": "Seitenleiste lösen", + "pinToggle.title": "Seitenleiste anheften", + "profileCard.title": "Profil", + "providerSettingsItem.buttonTitle.signIn": "Anmelden", + "providerSettingsItem.buttonTitle.signOut": "Abmelden", + "providerSettingsItem.title.signIn": "Bei {{title}} anmelden", + "providerSettingsItem.title.signOut": "Bei {{title}} abmelden", + "settingsLayout.title": "Einstellungen", + "sidebarTitle": "Einstellungen", + "signOutMenu.moreIconTitle": "mehr", + "signOutMenu.title": "Abmelden", + "themeToggle.description": "Designmodus ändern", + "themeToggle.names.auto": "Autom.", + "themeToggle.names.dark": "Dunkel", + "themeToggle.names.light": "Hell", + "themeToggle.select": "{{theme}} auswählen", + "themeToggle.selectAuto": "Automatisches Design auswählen", + "themeToggle.title": "Design" + } + } +} diff --git a/translations/backstage-es.json b/translations/backstage-es.json new file mode 100644 index 0000000000..493886e6a3 --- /dev/null +++ b/translations/backstage-es.json @@ -0,0 +1,878 @@ +{ + "api-docs": { + "en": { + "apiDefinitionCard.error.title": "No se pudo extraer la API", + "apiDefinitionCard.rawButtonTitle": "Sin procesar", + "apiDefinitionDialog.closeButtonTitle": "Cerrar", + "apiDefinitionDialog.rawButtonTitle": "Sin procesar", + "apiDefinitionDialog.tabsAriaLabel": "Opciones de definición de API", + "apiDefinitionDialog.toggleButtonAriaLabel": "Alternar diálogo de definición de API", + "apiEntityColumns.apiDefinitionTitle": "Definición de API", + "apiEntityColumns.typeTitle": "Tipo", + "apisCardHelpLinkTitle": "Aprenda cómo cambiar esto", + "consumedApisCard.emptyContent.title": "Esta {{entity}} no consume ninguna API.", + "consumedApisCard.error.title": "No se pudieron cargar las API", + "consumedApisCard.title": "API consumidas", + "consumingComponentsCard.emptyContent.title": "Ningún componente consume esta API.", + "consumingComponentsCard.error.title": "No se pudieron cargar los componentes", + "consumingComponentsCard.title": "Consumidores", + "defaultApiExplorerPage.createButtonTitle": "Registrar API existente", + "defaultApiExplorerPage.pageTitleOverride": "API", + "defaultApiExplorerPage.subtitle": "Explorador de API de {{orgName}}", + "defaultApiExplorerPage.supportButtonTitle": "Todas sus API", + "defaultApiExplorerPage.title": "API", + "hasApisCard.emptyContent.title": "Esta {{entity}} no contiene ninguna API.", + "hasApisCard.error.title": "No se pudieron cargar las API", + "hasApisCard.title": "API", + "providedApisCard.emptyContent.title": "Esta {{entity}} no proporciona ninguna API.", + "providedApisCard.error.title": "No se pudieron cargar las API", + "providedApisCard.title": "API proporcionadas", + "providingComponentsCard.emptyContent.title": "Ningún componente proporciona esta API.", + "providingComponentsCard.error.title": "No se pudieron cargar los componentes", + "providingComponentsCard.title": "Proveedores" + } + }, + "catalog": { + "en": { + "aboutCard.createSimilarButtonTitle": "Crear algo similar", + "aboutCard.descriptionField.label": "Descripción", + "aboutCard.descriptionField.value": "Sin descripción", + "aboutCard.domainField.label": "Dominio", + "aboutCard.domainField.value": "Sin dominio", + "aboutCard.editButtonTitle": "Modificar metadatos", + "aboutCard.launchTemplate": "Plantilla de lanzamiento", + "aboutCard.lifecycleField.label": "Ciclo de vida", + "aboutCard.ownerField.label": "Propietario", + "aboutCard.ownerField.value": "Sin propietario", + "aboutCard.parentComponentField.label": "Componente principal", + "aboutCard.parentComponentField.value": "Sin componente principal", + "aboutCard.refreshButtonTitle": "Programar actualización de entidad", + "aboutCard.refreshScheduledMessage": "Actualización programada", + "aboutCard.systemField.label": "Sistema", + "aboutCard.systemField.value": "Sin sistema", + "aboutCard.tagsField.label": "Etiquetas", + "aboutCard.tagsField.value": "Sin etiquetas", + "aboutCard.targetsField.label": "Objetivos", + "aboutCard.title": "Acerca de", + "aboutCard.typeField.label": "Tipo", + "aboutCard.viewSource": "Ver fuente", + "aboutCard.viewTechdocs": "Ver TechDocs", + "catalogTable.editActionTitle": "Modificar", + "catalogTable.starActionTitle": "Agregar a favoritos", + "catalogTable.unStarActionTitle": "Eliminar de favoritos", + "catalogTable.viewActionTitle": "Ver", + "catalogTable.warningPanelTitle": "No se pudieron extraer las entidades del catálogo.", + "deleteEntity.cancelButtonTitle": "Cancelar", + "deleteEntity.deleteButtonTitle": "Eliminar", + "deleteEntity.description": "Ninguna ubicación hace referencia a esta entidad y, por lo tanto, no recibe actualizaciones. Haga clic aquí para eliminarla.", + "deleteEntity.dialogTitle": "¿Confirma que desea eliminar esta entidad?", + "dependencyOfComponentsCard.emptyMessage": "Ningún componente depende de este componente", + "dependencyOfComponentsCard.title": "Dependencia de componentes", + "dependsOnComponentsCard.emptyMessage": "Ningún componente es una dependencia de este componente", + "dependsOnComponentsCard.title": "Depende de los componentes", + "dependsOnResourcesCard.emptyMessage": "Ningún recurso es una dependencia de este componente", + "dependsOnResourcesCard.title": "Depende de los recursos", + "entityContextMenu.copiedMessage": "¡Copiado!", + "entityContextMenu.copyURLMenuTitle": "Copiar URL de la entidad", + "entityContextMenu.inspectMenuTitle": "Inspeccionar entidad", + "entityContextMenu.moreButtonTitle": "Más", + "entityContextMenu.unregisterMenuTitle": "Anular el registro de la entidad", + "entityLabels.lifecycleLabel": "Ciclo de vida", + "entityLabels.ownerLabel": "Propietario", + "entityLabels.warningPanelTitle": "No se encontró la entidad", + "entityLabelsCard.emptyDescription": "No hay etiquetas definidas para esta entidad. Puede agregar etiquetas al YAML de su entidad como se muestra en el ejemplo a continuación:", + "entityLabelsCard.readMoreButtonTitle": "Leer más", + "entityLabelsCard.title": "Etiquetas", + "entityLinksCard.emptyDescription": "No hay enlaces definidos para esta entidad. Puede agregar enlaces al YAML de su entidad como se muestra en el ejemplo a continuación:", + "entityLinksCard.readMoreButtonTitle": "Leer más", + "entityLinksCard.title": "Enlaces", + "entityNotFound.description": "¿Desea ayudarnos a construir esto? Consulte nuestra documentación para empezar.", + "entityNotFound.docButtonTitle": "DOCUMENTOS", + "entityNotFound.title": "No se encontró la entidad", + "entityProcessingErrorsDescription": "El siguiente error se origina de", + "entityRelationWarningDescription": "Esta entidad tiene relaciones con otras entidades, que no se pueden encontrar en el catálogo. Estas son las entidades no encontradas: ", + "hasComponentsCard.emptyMessage": "Ningún componente es parte de este sistema", + "hasComponentsCard.title": "Tiene componentes", + "hasResourcesCard.emptyMessage": "Ningún recurso es parte de este sistema", + "hasResourcesCard.title": "Tiene recursos", + "hasSubcomponentsCard.emptyMessage": "Ningún subcomponente es parte de este componente", + "hasSubcomponentsCard.title": "Tiene subcomponentes", + "hasSubdomainsCard.emptyMessage": "Ningún subdominio es parte de este dominio", + "hasSubdomainsCard.title": "Tiene subdominios", + "hasSystemsCard.emptyMessage": "Ningún sistema es parte de este dominio", + "hasSystemsCard.title": "Tiene sistemas", + "indexPage.createButtonTitle": "Autoservicio", + "indexPage.supportButtonContent": "Todas las entidades de su catálogo de software", + "indexPage.title": "Catálogo de {{orgName}}", + "relatedEntitiesCard.emptyHelpLinkTitle": "Aprenda cómo cambiar esto", + "searchResultItem.Owner": "Propietario", + "searchResultItem.lifecycle": "Ciclo de vida", + "systemDiagramCard.description": "Utilice las funciones de pellizco y zoom para moverse por el diagrama.", + "systemDiagramCard.edgeLabels.dependsOn": "depende de", + "systemDiagramCard.edgeLabels.partOf": "parte de", + "systemDiagramCard.edgeLabels.provides": "proporciona", + "systemDiagramCard.title": "Diagrama del sistema" + } + }, + "catalog-graph": { + "en": { + "catalogGraphCard.deepLinkTitle": "Ver gráfico", + "catalogGraphCard.title": "Relaciones", + "catalogGraphPage.curveFilter.curveMonotoneX": "Monótona en X", + "catalogGraphPage.curveFilter.curveStepBefore": "Paso anterior", + "catalogGraphPage.curveFilter.title": "Curva", + "catalogGraphPage.directionFilter.bottomToTop": "De abajo arriba", + "catalogGraphPage.directionFilter.leftToRight": "De izquierda a derecha", + "catalogGraphPage.directionFilter.rightToLeft": "De derecha a izquierda", + "catalogGraphPage.directionFilter.title": "Dirección", + "catalogGraphPage.directionFilter.topToBottom": "De arriba abajo", + "catalogGraphPage.filterToggleButtonTitle": "Filtros", + "catalogGraphPage.maxDepthFilter.clearButtonAriaLabel": "borrar profundidad máxima", + "catalogGraphPage.maxDepthFilter.inputPlaceholder": "∞ Infinito", + "catalogGraphPage.maxDepthFilter.title": "Profundidad máxima", + "catalogGraphPage.mergeRelationsSwitchLabel": "Fusionar relaciones", + "catalogGraphPage.selectedKindsFilter.title": "Tipos", + "catalogGraphPage.selectedRelationsFilter.title": "Relaciones", + "catalogGraphPage.simplifiedSwitchLabel": "Simplificado", + "catalogGraphPage.supportButtonDescription": "Agregue su componente al catálogo de software y comience hacer el seguimiento de este.", + "catalogGraphPage.title": "Gráfico del catálogo", + "catalogGraphPage.zoomOutDescription": "Utilice las funciones de pellizco y zoom para moverse por el diagrama. Haga clic para cambiar el nodo activo, mantenga presionada la tecla Mayús y haga clic para ir a la entidad." + } + }, + "catalog-import": { + "en": { + "buttons.back": "Atrás", + "defaultImportPage.contentHeaderTitle": "Comience a hacer un seguimiento de su componente en {{appTitle}}", + "defaultImportPage.headerTitle": "Importar un repositorio Git existente", + "defaultImportPage.supportTitle": "Agregue su componente al catálogo de software y comience hacer el seguimiento de este en {{appTitle}}.", + "importInfoCard.deepLinkTitle": "Aprenda más sobre el Catálogo de software", + "importInfoCard.exampleDescription": "El asistente encuentra todos los archivos {{catalogFilename}} en el repositorio, obtiene una vista previa de las entidades y las agrega al catálogo de {{appTitle}}.", + "importInfoCard.examplePrefix": "Ejemplo: ", + "importInfoCard.fileLinkDescription": "El asistente analiza el archivo, obtiene una vista previa de las entidades y las agrega al catálogo de {{appTitle}}.", + "importInfoCard.fileLinkTitle": "Enlace a un archivo de entidad existente", + "importInfoCard.githubIntegration.label": "Solo GitHub", + "importInfoCard.githubIntegration.title": "Enlace a un repositorio", + "importInfoCard.linkDescription": "Ingrese la URL de su repositorio de código fuente para agregarlo a {{appTitle}}.", + "importInfoCard.preparePullRequestDescription": "Si no se encuentran entidades, el asistente preparará una solicitud de extracción que agrega un {{catalogFilename}} de ejemplo y prepara el catálogo de {{appTitle}} para cargar todas las entidades cuando se fusione la solicitud de extracción.", + "importInfoCard.title": "Importar un repositorio Git existente", + "importStepper.analyze.title": "Seleccionar URL", + "importStepper.finish.title": "Finalizar", + "importStepper.multipleLocations.description": "Ubicaciones encontradas: {{length, number}}", + "importStepper.multipleLocations.title": "Seleccionar ubicaciones", + "importStepper.noLocation.createPr.bodyLabel": "Texto de la solicitud de extracción", + "importStepper.noLocation.createPr.bodyPlaceholder": "Un texto descriptivo con soporte para Markdown", + "importStepper.noLocation.createPr.codeownersHelperText": "ADVERTENCIA: Esto puede fallar si no se encuentra ningún archivo CODEOWNERS en la ubicación de destino.", + "importStepper.noLocation.createPr.componentNameLabel": "Nombre del componente creado", + "importStepper.noLocation.createPr.componentNamePlaceholder": "my-component", + "importStepper.noLocation.createPr.configurationTitle": "Configuración de entidad", + "importStepper.noLocation.createPr.detailsTitle": "Detalles de la solicitud de extracción", + "importStepper.noLocation.createPr.ownerErrorHelperText": "valor requerido", + "importStepper.noLocation.createPr.ownerHelperText": "Seleccionar un propietario de la lista o ingresar una referencia a un grupo o un usuario", + "importStepper.noLocation.createPr.ownerLabel": "Propietario de la entidad", + "importStepper.noLocation.createPr.ownerLoadingText": "Cargando grupos…", + "importStepper.noLocation.createPr.ownerPlaceholder": "my-group", + "importStepper.noLocation.createPr.titleLabel": "Título de la solicitud de extracción", + "importStepper.noLocation.createPr.titlePlaceholder": "Agregar archivos descriptores de entidades del catálogo de Backstage", + "importStepper.noLocation.title": "Crear solicitud de extracción", + "importStepper.prepare.description": "Opcional", + "importStepper.prepare.title": "Acciones de importación", + "importStepper.review.title": "Revisar", + "importStepper.singleLocation.description": "Ubicaciones encontradas: 1", + "importStepper.singleLocation.title": "Seleccionar ubicaciones", + "stepFinishImportLocation.backButtonText": "Registrar otra", + "stepFinishImportLocation.locations.backButtonText": "Registrar otra", + "stepFinishImportLocation.locations.existing": "Se activó una actualización para las siguientes ubicaciones:", + "stepFinishImportLocation.locations.new": "Se agregaron al catálogo las siguientes entidades:", + "stepFinishImportLocation.locations.viewButtonText": "Ver componente", + "stepFinishImportLocation.repository.description": "Sus entidades se importarán cuando se fusione la solicitud de extracción.", + "stepFinishImportLocation.repository.title": "Se abrió la siguiente solicitud de extracción: ", + "stepInitAnalyzeUrl.error.default": "Se recibió un resultado de análisis desconocido de tipo {{type}}. Comuníquese con el equipo de soporte.", + "stepInitAnalyzeUrl.error.locations": "No hay entidades en esta ubicación", + "stepInitAnalyzeUrl.error.repository": "No se pudieron generar entidades para su repositorio", + "stepInitAnalyzeUrl.error.url": "Debe comenzar con http:// o https://.", + "stepInitAnalyzeUrl.nextButtonText": "Analizar", + "stepInitAnalyzeUrl.urlHelperText": "Ingrese la ruta completa a su archivo de entidad para comenzar a hacer el seguimiento de su componente", + "stepPrepareCreatePullRequest.description": "Ingresó un enlace a un repositorio {{integrationType}}, pero no se pudo encontrar un {{catalogFilename}}. Utilice este formulario para abrir una solicitud de extracción que cree uno de estos archivos.", + "stepPrepareCreatePullRequest.nextButtonText": "Crear PR", + "stepPrepareCreatePullRequest.previewCatalogInfo.title": "Previsualizar entidades", + "stepPrepareCreatePullRequest.previewPr.subheader": "Crear una nueva solicitud de extracción", + "stepPrepareCreatePullRequest.previewPr.title": "Previsualizar la solicitud de extracción", + "stepPrepareSelectLocations.existingLocations.description": "Estas ubicaciones ya existen en el catálogo:", + "stepPrepareSelectLocations.locations.description": "Seleccione una o más ubicaciones que estén presentes en su repositorio Git:", + "stepPrepareSelectLocations.locations.selectAll": "Seleccionar todas", + "stepPrepareSelectLocations.nextButtonText": "Revisar", + "stepReviewLocation.catalog.exists": "Las siguientes ubicaciones ya existen en el catálogo:", + "stepReviewLocation.catalog.new": "Se agregarán al catálogo las siguientes entidades:", + "stepReviewLocation.import": "Importar", + "stepReviewLocation.prepareResult.description": "Ya puede importar la ubicación y {{appTitle}} extraerá las entidades cuando se fusione la solicitud de extracción.", + "stepReviewLocation.prepareResult.title": "Se abrió la siguiente solicitud de extracción: ", + "stepReviewLocation.refresh": "Actualizar" + } + }, + "catalog-react": { + "en": { + "catalogFilter.buttonTitle": "Filtros", + "catalogFilter.title": "Filtros", + "entityKindPicker.errorMessage": "No se pudieron cargar los tipos de entidad", + "entityKindPicker.title": "Tipo", + "entityLifecyclePicker.title": "Ciclo de vida", + "entityNamespacePicker.title": "Espacio de nombres", + "entityOwnerPicker.title": "Propietario", + "entityPeekAheadPopover.emailCardAction.ariaLabel": "Correo electrónico", + "entityPeekAheadPopover.emailCardAction.subTitle": "Enviar a {{email}}", + "entityPeekAheadPopover.emailCardAction.title": "Correo electrónico {{email}}", + "entityPeekAheadPopover.entityCardActionsAriaLabel": "Mostrar", + "entityPeekAheadPopover.entityCardActionsTitle": "Mostrar detalles", + "entityPeekAheadPopover.title": "Profundice en la entidad para ver todas las etiquetas.", + "entityProcessingStatusPicker.title": "Estado de procesamiento", + "entitySearchBar.placeholder": "Buscar", + "entityTableColumnTitle.description": "Descripción", + "entityTableColumnTitle.domain": "Dominio", + "entityTableColumnTitle.label": "Etiqueta", + "entityTableColumnTitle.lifecycle": "Ciclo de vida", + "entityTableColumnTitle.name": "Nombre", + "entityTableColumnTitle.namespace": "Espacio de nombres", + "entityTableColumnTitle.owner": "Propietario", + "entityTableColumnTitle.system": "Sistema", + "entityTableColumnTitle.tags": "Etiquetas", + "entityTableColumnTitle.targets": "Objetivos", + "entityTableColumnTitle.title": "Título", + "entityTableColumnTitle.type": "Tipo", + "entityTagPicker.title": "Etiquetas", + "entityTypePicker.errorMessage": "No se pudieron cargar los tipos de entidad", + "entityTypePicker.optionAllTitle": "todas", + "entityTypePicker.title": "Tipo", + "favoriteEntity.addToFavorites": "Agregar a favoritos", + "favoriteEntity.removeFromFavorites": "Eliminar de favoritos", + "inspectEntityDialog.ancestryPage.description": "Esta es la jerarquía de entidades que conducen a la entidad actual, incluidas las entidades secundarias de {{processorLink}} que, en última instancia, dieron lugar a su existencia. Tenga en cuenta que este es un mecanismo completamente diferente al de las relaciones.", + "inspectEntityDialog.ancestryPage.processorsLink": "procesadores emitidos", + "inspectEntityDialog.ancestryPage.title": "Jerarquía", + "inspectEntityDialog.closeButtonTitle": "Cerrar", + "inspectEntityDialog.colocatedPage.alertNoEntity": "No había otras entidades en esta ubicación.", + "inspectEntityDialog.colocatedPage.alertNoLocation": "La entidad no tenía información de ubicación.", + "inspectEntityDialog.colocatedPage.description": "Estas son las entidades que están ubicadas junto con esta entidad, es decir, se originaron a partir de la misma fuente de datos (p. ej., provienen del mismo archivo YAML) o del mismo origen (p. ej., la URL registrada originalmente).", + "inspectEntityDialog.colocatedPage.locationHeader": "En la misma ubicación", + "inspectEntityDialog.colocatedPage.originHeader": "En el mismo origen", + "inspectEntityDialog.colocatedPage.title": "Coubicadas", + "inspectEntityDialog.jsonPage.description": "Estos son los datos de entidad sin procesar, tal como se recibieron del catálogo, en formato JSON.", + "inspectEntityDialog.jsonPage.title": "Entidad como JSON", + "inspectEntityDialog.overviewPage.annotations": "Anotaciones", + "inspectEntityDialog.overviewPage.identity.title": "Identidad", + "inspectEntityDialog.overviewPage.labels": "Etiquetas", + "inspectEntityDialog.overviewPage.metadata.title": "Metadatos", + "inspectEntityDialog.overviewPage.relation.title": "Relaciones", + "inspectEntityDialog.overviewPage.status.title": "Estado", + "inspectEntityDialog.overviewPage.tags": "Etiquetas", + "inspectEntityDialog.overviewPage.title": "Visión general", + "inspectEntityDialog.tabNames.ancestry": "Jerarquía", + "inspectEntityDialog.tabNames.colocated": "Coubicadas", + "inspectEntityDialog.tabNames.json": "JSON sin procesar", + "inspectEntityDialog.tabNames.overview": "Visión general", + "inspectEntityDialog.tabNames.yaml": "YAML sin procesar", + "inspectEntityDialog.tabsAriaLabel": "Opciones del inspector", + "inspectEntityDialog.title": "Inspector de entidades", + "inspectEntityDialog.yamlPage.description": "Estos son los datos de entidad sin procesar, tal como se recibieron del catálogo, en formato YAML.", + "inspectEntityDialog.yamlPage.title": "Entidad como YAML", + "missingAnnotationEmptyState.annotationYaml": "Agregue la anotación a su YAML {{entityKind}} como se muestra en el ejemplo a continuación:", + "missingAnnotationEmptyState.generateDescription_one": "Falta la anotación {{annotations}}. Debe agregar la anotación a su {{entityKind}} si desea habilitar esta herramienta.", + "missingAnnotationEmptyState.generateDescription_other": "Faltan las anotaciones {{annotations}}. Debe agregar las anotaciones a su {{entityKind}} si desea habilitar esta herramienta.", + "missingAnnotationEmptyState.readMore": "Leer más", + "missingAnnotationEmptyState.title": "Anotación faltante", + "unregisterEntityDialog.bootstrapState.advancedDescription": "Tiene la opción de eliminar la entidad misma del catálogo. Tenga en cuenta que esto solo debe hacerse si sabe que el archivo de catálogo se ha eliminado o movido de su ubicación de origen. Si ese no es el caso, la entidad volverá a aparecer cuando el catálogo realice la siguiente ronda de actualización.", + "unregisterEntityDialog.bootstrapState.advancedOptions": "Opciones avanzadas", + "unregisterEntityDialog.bootstrapState.title": "No puede anular el registro de esta entidad, ya que se origina en una configuración de Backstage protegida (ubicación \"{{location}}\"). Si cree que esto es un error, comuníquese con el integrador de {{appTitle}}.", + "unregisterEntityDialog.cancelButtonTitle": "Cancelar", + "unregisterEntityDialog.deleteButtonTitle": "Eliminar entidad", + "unregisterEntityDialog.deleteEntitySuccessMessage": "Entidad {{entityName}} eliminada", + "unregisterEntityDialog.errorStateTitle": "Error interno: Estado desconocido", + "unregisterEntityDialog.onlyDeleteStateTitle": "Esta entidad no parece tener su origen en una ubicación registrada. Por lo tanto, solo tiene la opción de eliminarla directamente del catálogo.", + "unregisterEntityDialog.title": "¿Confirma que desea anular el registro de esta entidad?", + "unregisterEntityDialog.unregisterState.advancedDescription": "También tiene la opción de eliminar la entidad misma del catálogo. Tenga en cuenta que esto solo debe hacerse si sabe que el archivo de catálogo se ha eliminado o movido de su ubicación de origen. Si ese no es el caso, la entidad volverá a aparecer cuando el catálogo realice la siguiente ronda de actualización.", + "unregisterEntityDialog.unregisterState.advancedOptions": "Opciones avanzadas", + "unregisterEntityDialog.unregisterState.description": "Para deshacerlo, simplemente vuelva a registrar la entidad en {{appTitle}}.", + "unregisterEntityDialog.unregisterState.subTitle": "Ubicada en la siguiente ubicación:", + "unregisterEntityDialog.unregisterState.title": "Esta acción anulará el registro de las siguientes entidades:", + "unregisterEntityDialog.unregisterState.unregisterButtonTitle": "Anular el registro de ubicación", + "userListPicker.defaultOrgName": "Empresa", + "userListPicker.orgFilterAllLabel": "Todas", + "userListPicker.personalFilter.ownedLabel": "De mi propiedad", + "userListPicker.personalFilter.starredLabel": "Favoritas", + "userListPicker.personalFilter.title": "Personal" + } + }, + "core-components": { + "en": { + "alertDisplay.message_one": "({{ count }} mensaje nuevo)", + "alertDisplay.message_other": "({{ count }} mensajes nuevos)", + "autoLogout.stillTherePrompt.buttonText": "¡Sí! No cerrar mi sesión", + "autoLogout.stillTherePrompt.title": "Cerrar sesión por inactividad", + "copyTextButton.tooltipText": "Texto copiado en el portapapeles", + "dependencyGraph.fullscreenTooltip": "Cambiar a pantalla completa", + "emptyState.missingAnnotation.actionTitle": "Agregue la anotación al YAML de su componente como se muestra en el ejemplo a continuación:", + "emptyState.missingAnnotation.readMore": "Leer más", + "emptyState.missingAnnotation.title": "Anotación faltante", + "errorBoundary.title": "Comuníquese con {{slackChannel}} para obtener ayuda.", + "errorPage.goBack": "Volver", + "errorPage.showLessDetails": "Mostrar menos detalles", + "errorPage.showMoreDetails": "Mostrar más detalles", + "errorPage.subtitle": "ERROR {{status}}: {{statusMessage}}", + "errorPage.title": "¡Parece que alguien dejó caer el micrófono!", + "logViewer.searchField.placeholder": "Buscar", + "oauthRequestDialog.authRedirectTitle": "Esto activará una redirección http al inicio de sesión de OAuth.", + "oauthRequestDialog.login": "Iniciar sesión", + "oauthRequestDialog.message": "Inicie sesión para permitir que {{appTitle}} acceda a las API e identidades de {{provider}}.", + "oauthRequestDialog.rejectAll": "Rechazar todo", + "oauthRequestDialog.title": "Se requiere iniciar sesión", + "proxiedSignInPage.title": "Parece que no inició sesión. Vuelva a cargar la página del navegador.", + "signIn.customProvider.continue": "Continuar", + "signIn.customProvider.idToken": "Token de identificación (opcional)", + "signIn.customProvider.subtitle": "Ingrese su ID de usuario y sus credenciales. Esta selección no se almacenará.", + "signIn.customProvider.title": "Usuario personalizado", + "signIn.customProvider.tokenInvalid": "El token no es un token JWT de OpenID Connect válido", + "signIn.customProvider.userId": "ID de usuario", + "signIn.guestProvider.enter": "Ingresar", + "signIn.guestProvider.subtitle": "Ingresar como usuario invitado. No tendrá una identidad verificada, lo que significa que algunas funcionalidades podrían no estar disponibles.", + "signIn.guestProvider.title": "Invitado", + "signIn.loginFailed": "Error de inicio de sesión", + "signIn.title": "Iniciar sesión", + "simpleStepper.back": "Atrás", + "simpleStepper.finish": "Finalizar", + "simpleStepper.next": "Siguiente", + "simpleStepper.reset": "Reiniciar", + "simpleStepper.skip": "Omitir", + "skipToContent": "Saltar al contenido", + "supportButton.close": "Cerrar", + "supportButton.title": "Soporte", + "supportConfig.default.linkTitle": "Agregar la clave de configuración `app.support`", + "supportConfig.default.title": "Soporte no configurado", + "table.body.emptyDataSourceMessage": "No hay registros para mostrar", + "table.filter.clearAll": "Borrar todo", + "table.filter.placeholder": "Todos los resultados", + "table.filter.title": "Filtros", + "table.header.actions": "Acciones", + "table.pagination.firstTooltip": "Primera página", + "table.pagination.labelDisplayedRows": "{from}-{to} de {count}", + "table.pagination.labelRowsSelect": "filas", + "table.pagination.lastTooltip": "Última página", + "table.pagination.nextTooltip": "Página siguiente", + "table.pagination.previousTooltip": "Página anterior", + "table.toolbar.search": "Filtrar" + } + }, + "home": { + "en": { + "addWidgetDialog.title": "Agregar nuevo asistente al panel", + "customHomepage.noWidgets": "No se agregaron asistentes. Haga clic en el botón \"Agregar asistente\" para comenzar.", + "customHomepageButtons.addWidget": "Agregar asistente", + "customHomepageButtons.cancel": "Cancelar", + "customHomepageButtons.clearAll": "Borrar todo", + "customHomepageButtons.edit": "Modificar", + "customHomepageButtons.restoreDefaults": "Restaurar valores predeterminados", + "customHomepageButtons.save": "Guardar", + "featuredDocsCard.empty.description": "Cree su propio documento. Consulte nuestra información para empezar", + "featuredDocsCard.empty.learnMoreLinkTitle": "DOCUMENTOS", + "featuredDocsCard.empty.title": "No hay documentos para mostrar", + "featuredDocsCard.learnMoreTitle": "APRENDA MÁS", + "quickStart.description": "Primeros pasos con Backstage", + "quickStart.learnMoreLinkTitle": "Aprenda más", + "quickStart.title": "Incorporación", + "starredEntities.noStarredEntitiesMessage": "Haga clic en la estrella junto al nombre de una entidad para agregarla a esta lista.", + "starredEntityListItem.removeFavoriteEntityTitle": "Eliminar entidad de favoritos", + "visitList.empty.description": "Una vez que comience a usar Backstage, sus visitas aparecerán aquí como un enlace rápido para continuar donde las dejó.", + "visitList.empty.title": "Aún no hay visitas para mostrar.", + "visitList.few.title": "Cuanto más páginas visite, más páginas aparecerán aquí.", + "visitedByType.action.viewLess": "Ver menos", + "visitedByType.action.viewMore": "Ver más", + "widgetSettingsOverlay.cancelButtonTitle": "Cancelar", + "widgetSettingsOverlay.deleteWidgetTooltip": "Eliminar asistente", + "widgetSettingsOverlay.editSettingsTooptip": "Modificar configuración", + "widgetSettingsOverlay.submitButtonTitle": "Enviar" + } + }, + "home-react": { + "en": { + "cardExtension.settingsButtonTitle": "Configuración", + "settingsModal.closeButtonTitle": "Cerrar", + "settingsModal.title": "Configuración" + } + }, + "kubernetes": { + "en": { + "entityContent.title": "Kubernetes", + "kubernetesContentPage.emptyState.description": "No hay recursos en ningún clúster conocido para {{entityName}}", + "kubernetesContentPage.emptyState.title": "No hay recursos de Kubernetes", + "kubernetesContentPage.permissionAlert.message": "Para ver los objetos de Kubernetes, comuníquese con el administrador de su portal para que le otorgue los permisos 'kubernetes.clusters.read' y 'kubernetes.resources.read'.", + "kubernetesContentPage.permissionAlert.title": "Permiso requerido", + "kubernetesContentPage.title": "Sus clústeres" + } + }, + "kubernetes-cluster": { + "en": { + "kubernetesClusterContentPage.permissionAlert.message": "Para ver los objetos de Kubernetes, comuníquese con el administrador de su portal para que le otorgue el permiso 'kubernetes.clusters.read'.", + "kubernetesClusterContentPage.permissionAlert.title": "Permiso requerido" + } + }, + "kubernetes-react": { + "en": { + "cluster.label": "Clúster", + "cluster.noPodsWithErrors": "No hay pods con errores", + "cluster.pods": "pods", + "cluster.podsWithErrors": "pods con errores", + "cluster.podsWithErrors_one": "{{count}} pod con errores", + "cluster.podsWithErrors_other": "{{count}} pods con errores", + "cluster.pods_one": "{{count}} pod", + "cluster.pods_other": "{{count}} pods", + "errorPanel.clusterLabel": "Clúster", + "errorPanel.clusterLabelValue": "Clúster: {{cluster}}", + "errorPanel.errorsLabel": "Errores", + "errorPanel.fetchError": "Error al comunicarse con Kubernetes: {{errorType}}, mensaje: {{message}}", + "errorPanel.message": "Ocurrió un problema al recuperar algunos recursos de Kubernetes para la entidad: {{entityName}}. Esto podría significar que la tarjeta de informe de errores no es completamente precisa.", + "errorPanel.resourceError": "Error al extraer el recurso de Kubernetes: '{{resourcePath}}', error: {{errorType}}, código de estado: {{statusCode}}", + "errorPanel.title": "Ocurrió un problema al recuperar objetos de Kubernetes", + "errorReporting.columns.cluster": "clúster", + "errorReporting.columns.kind": "tipo", + "errorReporting.columns.messages": "mensajes", + "errorReporting.columns.name": "nombre", + "errorReporting.columns.namespace": "espacio de nombres", + "errorReporting.title": "Informe de errores", + "events.eventTooltip": "evento {{eventType}}", + "events.firstEvent": "Primer evento {{timeAgo}} (recuento: {{count}})", + "events.noEventsFound": "No se encontraron eventos", + "fixDialog.ariaLabels.close": "cerrar", + "fixDialog.ariaLabels.fixIssue": "solucionar problema", + "fixDialog.causeExplanation": "Explicación de la causa:", + "fixDialog.crashLogs": "Registros de fallos:", + "fixDialog.detectedError": "Error detectado:", + "fixDialog.events": "Eventos:", + "fixDialog.fix": "Solucionar:", + "fixDialog.helpButton": "Ayuda", + "fixDialog.openDocs": "Abrir documentos", + "fixDialog.title": "{{podName}}: {{errorType}}", + "hpa.currentCpuUsage": "uso actual de la CPU:", + "hpa.currentCpuUsageLabel": "uso actual de la CPU: {{value}} %", + "hpa.maxReplicas": "réplicas máximas", + "hpa.minReplicas": "réplicas mínimas", + "hpa.replicasSummary": "{{min}} réplicas mínimas/{{max}} réplicas máximas", + "hpa.targetCpuUsage": "uso objetivo de la CPU:", + "hpa.targetCpuUsageLabel": "uso objetivo de CPU: {{value}} %", + "kubernetesDialog.closeAriaLabel": "cerrar", + "kubernetesDrawer.closeDrawer": "Cerrar el panel", + "kubernetesDrawer.managedFields": "Campos gestionados", + "kubernetesDrawer.unknownName": "nombre desconocido", + "kubernetesDrawer.yaml": "YAML", + "linkErrorPanel.errorsLabel": "Errores:", + "linkErrorPanel.message": "No se pudo formatear el enlace al panel de su clúster llamado '{{clusterName}}'. Su propiedad dashboardApp se configuró en '{{dashboardApp}}'.", + "linkErrorPanel.title": "Ocurrió un problema al formatear el enlace al panel de Kubernetes", + "namespace.label": "espacio de nombres:", + "namespace.labelWithValue": "espacio de nombres: {{namespace}}", + "podDrawer.buttons.delete": "Eliminar pod", + "podDrawer.cpuLimits": "Límites de CPU", + "podDrawer.cpuRequests": "Solicitudes de CPU", + "podDrawer.memoryLimits": "Límites de memoria", + "podDrawer.memoryRequests": "Solicitudes de memoria", + "podDrawer.resourceUtilization": "Utilización de recursos", + "podExecTerminal.buttonAriaLabel": "abrir terminal", + "podExecTerminal.buttonText": "Terminal", + "podExecTerminal.titleTemplate": "{{podName}}: terminal de shell {{containerName}} en el clúster {{clusterName}}", + "podLogs.buttonAriaLabel": "obtener registros", + "podLogs.buttonText": "Registros", + "podLogs.description": "El contenedor no emitió ningún registro", + "podLogs.title": "No se emitieron registros", + "podLogs.titleTemplate": "{{podName}}: registros de {{containerName}} en el clúster {{clusterName}}", + "pods.pods_one": "{{count}} pod", + "pods.pods_other": "{{count}} pods", + "podsTable.columns.containersReady": "contenedores listos", + "podsTable.columns.cpuUsage": "Uso de CPU (%)", + "podsTable.columns.id": "ID", + "podsTable.columns.memoryUsage": "Uso de memoria (%)", + "podsTable.columns.name": "nombre", + "podsTable.columns.phase": "fase", + "podsTable.columns.status": "estado", + "podsTable.columns.totalRestarts": "reinicios totales", + "podsTable.status.ok": "Aceptar", + "podsTable.status.running": "En ejecución", + "podsTable.unknown": "desconocido" + } + }, + "org": { + "en": { + "groupProfileCard.editIconButtonTitle": "Modificar metadatos", + "groupProfileCard.groupNotFound": "No se encontró el grupo", + "groupProfileCard.listItemTitle.childGroups": "Grupos secundarios", + "groupProfileCard.listItemTitle.email": "Correo electrónico", + "groupProfileCard.listItemTitle.entityRef": "Referencia de entidad", + "groupProfileCard.listItemTitle.parentGroup": "Grupo principal", + "groupProfileCard.refreshIconButtonAriaLabel": "Actualizar", + "groupProfileCard.refreshIconButtonTitle": "Programar actualización de entidad", + "membersListCard.aggregateMembersToggle.aggregatedMembers": "Miembros agregados", + "membersListCard.aggregateMembersToggle.ariaLabel": "Cambio de tipo de usuario", + "membersListCard.aggregateMembersToggle.directMembers": "Miembros directos", + "membersListCard.noMembersDescription": "Este grupo no tiene miembros.", + "membersListCard.paginationLabel": ", página {{page}} de {{nbPages}}", + "membersListCard.subtitle": "de {{groupName}}", + "membersListCard.title": "Miembros", + "ownershipCard.aggregateRelationsToggle.aggregatedRelations": "Relaciones agregadas", + "ownershipCard.aggregateRelationsToggle.ariaLabel": "Cambio de tipo de propiedad", + "ownershipCard.aggregateRelationsToggle.directRelations": "Relaciones directas", + "ownershipCard.title": "Propiedad", + "userProfileCard.allGroupDialog.closeButtonTitle": "Cerrar", + "userProfileCard.allGroupDialog.title": "Todos los grupos de {{name}}:", + "userProfileCard.editIconButtonTitle": "Modificar metadatos", + "userProfileCard.listItemTitle.email": "Correo electrónico", + "userProfileCard.listItemTitle.memberOf": "Miembro de", + "userProfileCard.moreGroupButtonTitle": "...Más ({{number}})", + "userProfileCard.userNotFound": "No se encontró el usuario" + } + }, + "plugin.notifications": { + "en": { + "filters.createdAfter.anyTime": "Cualquier momento", + "filters.createdAfter.label": "Enviadas", + "filters.createdAfter.last24h": "Últimas 24 horas", + "filters.createdAfter.lastWeek": "La semana pasada", + "filters.createdAfter.placeholder": "Notificaciones desde", + "filters.severity.critical": "Crítica", + "filters.severity.high": "Alta", + "filters.severity.label": "Gravedad mínima", + "filters.severity.low": "Baja", + "filters.severity.normal": "Normal", + "filters.sortBy.label": "Ordenar por", + "filters.sortBy.newest": "Más recientes", + "filters.sortBy.oldest": "Más antiguas", + "filters.sortBy.origin": "Origen", + "filters.sortBy.placeholder": "Campo para ordenar por", + "filters.sortBy.topic": "Tema", + "filters.title": "Filtros", + "filters.topic.anyTopic": "Cualquier tema", + "filters.topic.label": "Tema", + "filters.view.all": "Todas", + "filters.view.label": "Ver", + "filters.view.read": "Notificaciones leídas", + "filters.view.saved": "Guardadas", + "filters.view.unread": "Notificaciones no leídas", + "notificationsPage.tableTitle.all_one": "Todas las notificaciones ({{count}})", + "notificationsPage.tableTitle.all_other": "Todas las notificaciones ({{count}})", + "notificationsPage.tableTitle.read_one": "Notificaciones leídas ({{count}})", + "notificationsPage.tableTitle.read_other": "Notificaciones leídas ({{count}})", + "notificationsPage.tableTitle.saved_one": "Notificaciones guardadas ({{count}})", + "notificationsPage.tableTitle.saved_other": "Notificaciones guardadas ({{count}})", + "notificationsPage.tableTitle.unread_one": "Notificaciones no leídas ({{count}})", + "notificationsPage.tableTitle.unread_other": "Notificaciones no leídas ({{count}})", + "notificationsPage.title": "Notificaciones", + "settings.errorTitle": "No se pudo cargar la configuración", + "settings.errors.useNotificationFormat": "useNotificationFormat debe usarse dentro de un NotificationFormatProvider", + "settings.noSettingsAvailable": "No hay configuración de notificaciones disponible; vuelva a consultar más tarde", + "settings.table.origin": "Origen", + "settings.table.topic": "Tema", + "settings.title": "Configuración de notificaciones", + "sidebar.errors.fetchNotificationFailed": "No se pudo extraer la notificación", + "sidebar.errors.markAsReadFailed": "No se pudo marcar la notificación como leída", + "sidebar.title": "Notificaciones", + "table.bulkActions.markAllRead": "Marcar todas como leídas", + "table.bulkActions.markSelectedAsRead": "Marcar seleccionadas como leídas", + "table.bulkActions.returnSelectedAmongUnread": "Mostrar solo las seleccionadas no leídas", + "table.bulkActions.saveSelectedForLater": "Guardar seleccionadas para más tarde", + "table.bulkActions.undoSaveForSelected": "Deshacer guardado para las seleccionadas", + "table.confirmDialog.markAllReadConfirmation": "Marcar todas", + "table.confirmDialog.markAllReadDescription": "Marcar todas las notificaciones como leídas.", + "table.confirmDialog.title": "¿Está seguro?", + "table.emptyMessage": "No hay registros para mostrar", + "table.errors.markAllReadFailed": "No se pudieron marcar todas las notificaciones como leídas", + "table.pagination.firstTooltip": "Primera página", + "table.pagination.labelDisplayedRows": "{from}-{to} de {count}", + "table.pagination.labelRowsSelect": "filas", + "table.pagination.lastTooltip": "Última página", + "table.pagination.nextTooltip": "Página siguiente", + "table.pagination.previousTooltip": "Página anterior" + } + }, + "scaffolder": { + "en": { + "aboutCard.launchTemplate": "Plantilla de lanzamiento", + "actionsPage.action.examples": "Ejemplos", + "actionsPage.action.input": "Entrada", + "actionsPage.action.output": "Salida", + "actionsPage.content.emptyState.description": "No hay acciones instaladas o hubo un problema de comunicación con el sistema back-end.", + "actionsPage.content.emptyState.title": "No hay información para mostrar", + "actionsPage.content.searchFieldPlaceholder": "Buscar una acción", + "actionsPage.pageTitle": "Crear un nuevo componente", + "actionsPage.subtitle": "Esta es la colección de todas las acciones instaladas", + "actionsPage.title": "Acciones instaladas", + "fields.azureRepoPicker.organization.description": "La organización a la que pertenecerá este repositorio", + "fields.azureRepoPicker.organization.title": "Organización", + "fields.azureRepoPicker.project.description": "El proyecto al que pertenecerá este repositorio", + "fields.azureRepoPicker.project.title": "Proyecto", + "fields.bitbucketRepoPicker.project.description": "El proyecto al que pertenecerá este repositorio", + "fields.bitbucketRepoPicker.project.inputTitle": "Proyectos", + "fields.bitbucketRepoPicker.project.title": "Proyectos permitidos", + "fields.bitbucketRepoPicker.workspaces.description": "El espacio de trabajo al que pertenecerá este repositorio", + "fields.bitbucketRepoPicker.workspaces.inputTitle": "Espacios de trabajo", + "fields.bitbucketRepoPicker.workspaces.title": "Espacios de trabajo permitidos", + "fields.entityNamePicker.description": "Nombre único del componente", + "fields.entityNamePicker.title": "Nombre", + "fields.entityPicker.description": "Una entidad del catálogo", + "fields.entityPicker.title": "Entidad", + "fields.entityTagsPicker.description": "Agregue cualquier etiqueta relevante y presione \"Intro\" para agregar nuevas etiquetas. Formato válido: [a-z0-9+#] separados por [-], máximo de 63 caracteres", + "fields.entityTagsPicker.title": "Etiquetas", + "fields.gerritRepoPicker.owner.description": "El propietario del proyecto (opcional)", + "fields.gerritRepoPicker.owner.title": "Propietario", + "fields.gerritRepoPicker.parent.description": "El proyecto principal al que pertenecerá el repositorio", + "fields.gerritRepoPicker.parent.title": "Principal", + "fields.giteaRepoPicker.owner.description": "Espacio de nombres de Gitea al que pertenecerá este repositorio. Puede ser el nombre de la organización, grupo, subgrupo, usuario o proyecto.", + "fields.giteaRepoPicker.owner.inputTitle": "Propietario", + "fields.giteaRepoPicker.owner.title": "Propietario disponible", + "fields.githubRepoPicker.owner.description": "La organización, usuario o proyecto al que pertenecerá este repositorio", + "fields.githubRepoPicker.owner.inputTitle": "Propietario", + "fields.githubRepoPicker.owner.title": "Propietario disponible", + "fields.gitlabRepoPicker.owner.description": "Espacio de nombres de GitLab al que pertenecerá este repositorio. Puede ser el nombre de la organización, grupo, subgrupo, usuario o proyecto.", + "fields.gitlabRepoPicker.owner.inputTitle": "Propietario", + "fields.gitlabRepoPicker.owner.title": "Propietario disponible", + "fields.multiEntityPicker.description": "Una entidad del catálogo", + "fields.multiEntityPicker.title": "Entidad", + "fields.myGroupsPicker.description": "Una entidad del catálogo", + "fields.myGroupsPicker.title": "Entidad", + "fields.ownedEntityPicker.description": "Una entidad del catálogo", + "fields.ownedEntityPicker.title": "Entidad", + "fields.ownerPicker.description": "El propietario del componente", + "fields.ownerPicker.title": "Propietario", + "fields.repoOwnerPicker.description": "El propietario del repositorio", + "fields.repoOwnerPicker.title": "Propietario", + "fields.repoUrlPicker.host.description": "El host donde se creará el repositorio", + "fields.repoUrlPicker.host.title": "Host", + "fields.repoUrlPicker.repository.description": "El nombre del repositorio", + "fields.repoUrlPicker.repository.inputTitle": "Repositorio", + "fields.repoUrlPicker.repository.title": "Repositorios disponibles", + "listTaskPage.content.emptyState.description": "No hay tareas o hubo un problema de comunicación con el sistema back-end.", + "listTaskPage.content.emptyState.title": "No hay información para mostrar", + "listTaskPage.content.tableCell.created": "Creada", + "listTaskPage.content.tableCell.owner": "Propietario", + "listTaskPage.content.tableCell.status": "Estado", + "listTaskPage.content.tableCell.taskID": "ID de la tarea", + "listTaskPage.content.tableCell.template": "Plantilla", + "listTaskPage.content.tableTitle": "Tareas", + "listTaskPage.pageTitle": "Tareas de plantillas", + "listTaskPage.subtitle": "Todas las tareas que se iniciaron", + "listTaskPage.title": "Tareas de plantilla de lista", + "ongoingTask.cancelButtonTitle": "Cancelar", + "ongoingTask.contextMenu.cancel": "Cancelar", + "ongoingTask.contextMenu.hideButtonBar": "Ocultar barra de botones", + "ongoingTask.contextMenu.hideLogs": "Ocultar registros", + "ongoingTask.contextMenu.retry": "Reintentar", + "ongoingTask.contextMenu.showButtonBar": "Mostrar barra de botones", + "ongoingTask.contextMenu.showLogs": "Mostrar registros", + "ongoingTask.contextMenu.startOver": "Empezar de nuevo", + "ongoingTask.hideLogsButtonTitle": "Ocultar registros", + "ongoingTask.pageTitle.hasTemplateName": "Ejecución de {{templateName}}", + "ongoingTask.pageTitle.noTemplateName": "Ejecución de Scaffolder", + "ongoingTask.retryButtonTitle": "Reintentar", + "ongoingTask.showLogsButtonTitle": "Mostrar registros", + "ongoingTask.startOverButtonTitle": "Empezar de nuevo", + "ongoingTask.subtitle": "Tarea {{taskId}}", + "ongoingTask.title": "Ejecución de", + "ownerListPicker.options.all": "Todas", + "ownerListPicker.options.owned": "De mi propiedad", + "ownerListPicker.title": "Propietario de la tarea", + "renderSchema.tableCell.description": "Descripción", + "renderSchema.tableCell.name": "Nombre", + "renderSchema.tableCell.title": "Título", + "renderSchema.tableCell.type": "Tipo", + "renderSchema.undefined": "No hay esquema definido", + "templateCustomFieldPage.subtitle": "Modificar, previsualizar y probar campos personalizados", + "templateCustomFieldPage.title": "Explorador de campos personalizados", + "templateEditorForm.stepper.emptyText": "No hay parámetros de especificación en la plantilla para previsualizar.", + "templateEditorPage.customFieldExplorer.fieldForm.applyButtonTitle": "Aplicar", + "templateEditorPage.customFieldExplorer.fieldForm.title": "Opciones de campo", + "templateEditorPage.customFieldExplorer.fieldPreview.title": "Vista previa del campo", + "templateEditorPage.customFieldExplorer.preview.title": "Especificación de plantilla", + "templateEditorPage.customFieldExplorer.selectFieldLabel": "Elija la extensión de campo personalizado", + "templateEditorPage.dryRunResults.title": "Resultados de la ejecución simulada", + "templateEditorPage.dryRunResultsList.deleteButtonTitle": "Eliminar resultado", + "templateEditorPage.dryRunResultsList.downloadButtonTitle": "Descargar como .zip", + "templateEditorPage.dryRunResultsList.title": "Resultado {{resultId}}", + "templateEditorPage.dryRunResultsView.tab.files": "Archivos", + "templateEditorPage.dryRunResultsView.tab.log": "Registro", + "templateEditorPage.dryRunResultsView.tab.output": "Salida", + "templateEditorPage.subtitle": "Modificar, previsualizar y probar plantillas y formularios de plantillas", + "templateEditorPage.taskStatusStepper.skippedStepTitle": "Omitido", + "templateEditorPage.templateEditorBrowser.closeConfirmMessage": "¿Está seguro? Los cambios no guardados se perderán", + "templateEditorPage.templateEditorBrowser.closeIconTooltip": "Cerrar directorio", + "templateEditorPage.templateEditorBrowser.reloadIconTooltip": "Volver a cargar directorio", + "templateEditorPage.templateEditorBrowser.saveIconTooltip": "Guardar todos los archivos", + "templateEditorPage.templateEditorIntro.createLocal.description": "Cree un directorio de plantillas local que le permita modificar y ejecutar su propia plantilla.", + "templateEditorPage.templateEditorIntro.createLocal.title": "Crear nueva plantilla", + "templateEditorPage.templateEditorIntro.createLocal.unsupportedTooltip": "Solo compatible con algunos navegadores basados en Chromium con la página cargada a través de HTTPS", + "templateEditorPage.templateEditorIntro.fieldExplorer.description": "Vea y pruebe las extensiones de campo personalizado instaladas disponibles.", + "templateEditorPage.templateEditorIntro.fieldExplorer.title": "Explorador de campos personalizados", + "templateEditorPage.templateEditorIntro.formEditor.description": "Previsualice y modifique un formulario de plantilla; para ello, use una plantilla de muestra o cargue una plantilla del catálogo.", + "templateEditorPage.templateEditorIntro.formEditor.title": "Entorno de prueba de formularios de plantilla", + "templateEditorPage.templateEditorIntro.loadLocal.description": "Cargue un directorio de plantillas local, lo que le permitirá modificar y ejecutar su propia plantilla.", + "templateEditorPage.templateEditorIntro.loadLocal.title": "Cargar directorio de plantillas", + "templateEditorPage.templateEditorIntro.loadLocal.unsupportedTooltip": "Solo compatible con algunos navegadores basados en Chromium con la página cargada a través de HTTPS", + "templateEditorPage.templateEditorIntro.title": "Elegir una de las siguientes opciones para empezar", + "templateEditorPage.templateEditorTextArea.emptyStateParagraph": "Seleccione una acción en el menú de archivo.", + "templateEditorPage.templateEditorTextArea.refreshIconTooltip": "Volver a cargar archivo", + "templateEditorPage.templateEditorTextArea.saveIconTooltip": "Guardar archivo", + "templateEditorPage.templateFormPreviewer.title": "Cargar plantilla existente", + "templateEditorPage.title": "Editor de plantillas", + "templateEditorToolbar.addToCatalogButton": "Publicar", + "templateEditorToolbar.addToCatalogDialogActions.documentationButton": "Ir a la documentación", + "templateEditorToolbar.addToCatalogDialogActions.documentationUrl": "https://backstage.io/docs/features/software-templates/adding-templates/", + "templateEditorToolbar.addToCatalogDialogContent.stepsIntroduction": "Siga las instrucciones a continuación para crear o actualizar una plantilla:", + "templateEditorToolbar.addToCatalogDialogContent.stepsListItems": "Guarde los archivos de plantilla en un directorio local Cree una solicitud de extracción a un repositorio Git nuevo o existente Si la plantilla ya existe, los cambios se verán reflejados en el catálogo de software una vez que se fusione la solicitud de extracción Sin embargo, si desea crear una nueva plantilla, siga las indicaciones en la documentación vinculada a continuación para registrar el nuevo repositorio de plantillas en el catálogo de software", + "templateEditorToolbar.addToCatalogDialogTitle": "Publicar cambios", + "templateEditorToolbar.customFieldExplorerTooltip": "Explorador de campos personalizados", + "templateEditorToolbar.installedActionsDocumentationTooltip": "Documentación de acciones instaladas", + "templateEditorToolbar.templatingExtensionsDocumentationTooltip": "Documentación de extensiones de plantillas", + "templateEditorToolbarFileMenu.button": "Archivo", + "templateEditorToolbarFileMenu.options.closeEditor": "Cerrar editor de plantillas", + "templateEditorToolbarFileMenu.options.createDirectory": "Crear directorio de plantillas", + "templateEditorToolbarFileMenu.options.openDirectory": "Abrir directorio de plantillas", + "templateEditorToolbarTemplatesMenu.button": "Plantillas", + "templateFormPage.subtitle": "Modificar, previsualizar y probar plantillas de formularios", + "templateFormPage.title": "Editor de plantillas", + "templateIntroPage.subtitle": "Modificar, previsualizar y probar plantillas, formularios y campos personalizados", + "templateIntroPage.title": "Gestionar plantillas", + "templateListPage.additionalLinksForEntity.viewTechDocsTitle": "Ver TechDocs", + "templateListPage.contentHeader.registerExistingButtonTitle": "Importar un repositorio Git existente", + "templateListPage.contentHeader.supportButtonTitle": "Cree nuevos componentes de software mediante plantillas estándar. Diferentes plantillas crean diferentes tipos de componentes (servicios, sitios web, documentación, etc.).", + "templateListPage.pageTitle": "Crear un nuevo componente", + "templateListPage.subtitle": "Crear nuevos componentes de software mediante plantillas estándar de su organización", + "templateListPage.templateGroups.defaultTitle": "Plantillas", + "templateListPage.templateGroups.otherTitle": "Otras plantillas", + "templateListPage.title": "Crear un nuevo componente", + "templateTypePicker.title": "Categorías", + "templateWizardPage.pageContextMenu.editConfigurationTitle": "Modificar configuración", + "templateWizardPage.pageTitle": "Crear un nuevo componente", + "templateWizardPage.subtitle": "Crear nuevos componentes de software mediante plantillas estándar de su organización", + "templateWizardPage.title": "Crear un nuevo componente", + "templatingExtensions.content.emptyState.description": "No hay extensiones de plantilla disponibles o hubo un problema de comunicación con el sistema back-end.", + "templatingExtensions.content.emptyState.title": "No hay información para mostrar", + "templatingExtensions.content.filters.examples": "Ejemplos", + "templatingExtensions.content.filters.metadataAbsent": "Metadatos de filtro no disponibles", + "templatingExtensions.content.filters.notAvailable": "No hay filtros de plantilla definidos.", + "templatingExtensions.content.filters.schema.arguments": "Argumentos", + "templatingExtensions.content.filters.schema.input": "Entrada", + "templatingExtensions.content.filters.schema.output": "Salida", + "templatingExtensions.content.filters.title": "Filtros", + "templatingExtensions.content.functions.examples": "Ejemplos", + "templatingExtensions.content.functions.metadataAbsent": "Metadatos de función no disponibles", + "templatingExtensions.content.functions.notAvailable": "No hay funciones de plantilla globales definidas.", + "templatingExtensions.content.functions.schema.arguments": "Argumentos", + "templatingExtensions.content.functions.schema.output": "Salida", + "templatingExtensions.content.functions.title": "Funciones", + "templatingExtensions.content.searchFieldPlaceholder": "Buscar una extensión", + "templatingExtensions.content.values.notAvailable": "No hay valores de plantilla globales definidos.", + "templatingExtensions.content.values.title": "Valores", + "templatingExtensions.pageTitle": "Extensiones de plantillas", + "templatingExtensions.subtitle": "Esta es la colección de extensiones de plantillas disponibles", + "templatingExtensions.title": "Extensiones de plantillas" + } + }, + "scaffolder-react": { + "en": { + "cardHeader.detailBtnTitle": "Mostrar detalles de la entidad de plantilla", + "passwordWidget.content": "Este asistente no es seguro. Utilice [`ui:field: Secret`](https://backstage.io/docs/features/software-templates/writing-templates/#using-secrets) en lugar de `ui:widget: password`", + "scaffolderPageContextMenu.actionsLabel": "Acciones instaladas", + "scaffolderPageContextMenu.createLabel": "Crear", + "scaffolderPageContextMenu.editorLabel": "Gestionar plantillas", + "scaffolderPageContextMenu.moreLabel": "más", + "scaffolderPageContextMenu.tasksLabel": "Lista de tareas", + "scaffolderPageContextMenu.templatingExtensionsLabel": "Extensiones de plantillas", + "stepper.backButtonText": "Atrás", + "stepper.createButtonText": "Crear", + "stepper.nextButtonText": "Siguiente", + "stepper.reviewButtonText": "Revisar", + "stepper.stepIndexLabel": "Paso {{index, number}}", + "templateCard.chooseButtonText": "Elegir", + "templateCard.noDescription": "Sin descripción", + "templateCategoryPicker.title": "Categorías", + "templateOutputs.title": "Salida de texto", + "workflow.noDescription": "Sin descripción" + } + }, + "search": { + "en": { + "searchModal.viewFullResults": "Ver resultados completos", + "searchType.accordion.allTitle": "Todos", + "searchType.accordion.collapse": "Contraer", + "searchType.accordion.numberOfResults": "{{number}} resultados", + "searchType.allResults": "Todos los resultados", + "searchType.tabs.allTitle": "Todas", + "sidebarSearchModal.title": "Buscar" + } + }, + "search-react": { + "en": { + "noResultsDescription": "Lo sentimos, no se encontraron resultados", + "searchBar.clearButtonTitle": "Borrar", + "searchBar.placeholder": "Buscar en {{org}}", + "searchBar.title": "Buscar", + "searchFilter.allOptionTitle": "Todas", + "searchPagination.limitLabel": "Resultados por página:", + "searchPagination.limitText": "de {{num}}", + "searchResultGroup.addFilterButtonTitle": "Agregar filtro", + "searchResultGroup.linkTitle": "Ver todos", + "searchResultPager.next": "Siguiente", + "searchResultPager.previous": "Anterior" + } + }, + "techdocs": { + "en": { + "aboutCard.viewTechdocs": "Ver TechDocs" + } + }, + "user-settings": { + "en": { + "appearanceCard.title": "Apariencia", + "authProviders.title": "Proveedores disponibles", + "defaultProviderSettings.description": "Proporciona autenticación a las API e identidades de {{provider}}", + "defaultSettingsPage.tabsTitle.authProviders": "Proveedores de autenticación", + "defaultSettingsPage.tabsTitle.featureFlags": "Indicadores de funcionalidades", + "defaultSettingsPage.tabsTitle.general": "General", + "emptyProviders.action.readMoreButtonTitle": "Leer más", + "emptyProviders.action.title": "Abra app-config.yaml y realice los cambios como se indica a continuación:", + "emptyProviders.description": "Puede agregar proveedores de autenticación a Backstage, lo que le permitirá utilizarlos para su propia autenticación.", + "emptyProviders.title": "No hay proveedores de autenticación", + "featureFlags.clearFilter": "Borrar filtro", + "featureFlags.description": "Actualice la página cuando alterne los indicadores de funcionalidades", + "featureFlags.emptyFlags.action.readMoreButtonTitle": "Leer más", + "featureFlags.emptyFlags.action.title": "A continuación, se muestra un ejemplo de cómo agregar un indicador de funcionalidad:", + "featureFlags.emptyFlags.description": "Los indicadores de funcionalidades permiten que los complementos registren funcionalidades en Backstage que los usuarios puedan elegir. Puede usar esto para dividir la lógica en su código a fin de realizar pruebas A/B manuales, etc.", + "featureFlags.emptyFlags.title": "No hay indicadores de funcionalidades", + "featureFlags.filterTitle": "Filtrar", + "featureFlags.flagItem.subtitle.registeredInApplication": "Registrado en la aplicación", + "featureFlags.flagItem.subtitle.registeredInPlugin": "Registrado en el complemento {{pluginId}}", + "featureFlags.flagItem.title.disable": "Deshabilitar", + "featureFlags.flagItem.title.enable": "Habilitar", + "featureFlags.title": "Indicadores de funcionalidades", + "identityCard.noIdentityTitle": "No hay identidad de Backstage", + "identityCard.ownershipEntities": "Entidades de propiedad", + "identityCard.title": "Identidad de Backstage", + "identityCard.userEntity": "Entidad de usuario", + "languageToggle.description": "Cambiar el idioma", + "languageToggle.select": "Seleccionar idioma {{language}}", + "languageToggle.title": "Idioma", + "pinToggle.ariaLabelTitle": "Anclar interruptor de barra lateral", + "pinToggle.description": "Evitar que la barra lateral se contraiga", + "pinToggle.switchTitles.pin": "Fijar barra lateral", + "pinToggle.switchTitles.unpin": "Desanclar la barra lateral", + "pinToggle.title": "Fijar barra lateral", + "profileCard.title": "Perfil", + "providerSettingsItem.buttonTitle.signIn": "Iniciar sesión", + "providerSettingsItem.buttonTitle.signOut": "Cerrar sesión", + "providerSettingsItem.title.signIn": "Iniciar sesión en {{title}}", + "providerSettingsItem.title.signOut": "Cerrar sesión en {{title}}", + "settingsLayout.title": "Configuración", + "sidebarTitle": "Configuración", + "signOutMenu.moreIconTitle": "más", + "signOutMenu.title": "Cerrar sesión", + "themeToggle.description": "Cambiar el modo del tema", + "themeToggle.names.auto": "Automático", + "themeToggle.names.dark": "Oscuro", + "themeToggle.names.light": "Claro", + "themeToggle.select": "Seleccionar {{theme}}", + "themeToggle.selectAuto": "Seleccionar tema automático", + "themeToggle.title": "Tema" + } + } +} diff --git a/translations/community-plugins-de.json b/translations/community-plugins-de.json new file mode 100644 index 0000000000..de731488dc --- /dev/null +++ b/translations/community-plugins-de.json @@ -0,0 +1,795 @@ +{ + "plugin.acr": { + "en": { + "page.title": "Azure Container Registry-Repository: {{image}}", + "table.searchPlaceholder": "Filter", + "table.labelRowsSelect": "Zeilen", + "table.columns.tag": "Tag", + "table.columns.created": "Erstellt", + "table.columns.lastModified": "Zuletzt geändert", + "table.columns.manifest": "Manifest" + } + }, + "adr": { + "en": { + "contentHeaderTitle": "Architecture Decision Records", + "failedToFetch": "ADRs konnten nicht abgerufen werden", + "notFound": "Keine ADRs gefunden" + } + }, + "announcements": { + "en": { + "announcementForm.title": "Titel", + "announcementForm.excerpt": "Auszug", + "announcementForm.active": "Aktiv", + "announcementForm.submit": "Absenden", + "announcementForm.editAnnouncement": "Ankündigung bearbeiten", + "announcementForm.newAnnouncement": "Neue Ankündigung", + "announcementForm.startAt": "Startdatum der Ankündigung", + "announcementForm.untilDate": "Enddatum der Ankündigung", + "announcementForm.onBehalfOf": "Im Namen von", + "announcementForm.categoryInput.create": "Erstellen", + "announcementForm.categoryInput.label": "Kategorie", + "announcementForm.tagsInput.create": "Erstellen", + "announcementForm.tagsInput.label": "Tags", + "announcementForm.tagsLabel": "Tags", + "announcementsPage.announcements": "Ankündigungen", + "announcementsPage.newAnnouncement": "Neue Ankündigung", + "announcementsPage.genericNew": "Neu", + "announcementsPage.card.by": "Von", + "announcementsPage.card.in": "in", + "announcementsPage.card.edit": "Bearbeiten", + "announcementsPage.card.delete": "Löschen", + "announcementsPage.card.occurred": "Aufgetreten ", + "announcementsPage.card.scheduled": "Geplant ", + "announcementsPage.card.today": "Heute", + "announcementsPage.contextMenu.admin": "Ankündigungen verwalten", + "announcementsPage.filter.label": "Filter:", + "announcementsPage.filter.category": "Kategorie", + "announcementsPage.filter.categoryPlaceholder": "Wählen Sie eine Kategorie aus", + "announcementsPage.filter.categorySearchPlaceholder": "Kategorien durchsuchen...", + "announcementsPage.filter.tags": "Tags", + "announcementsPage.filter.tagsPlaceholder": "Tags auswählen", + "announcementsPage.filter.tagsSearchPlaceholder": "Tags suchen...", + "announcementsPage.filter.clear": "Filter löschen", + "announcementsPage.filter.noFilteredAnnouncementsFound": "Mit den ausgewählten Filtern wurden keine Ankündigungen gefunden.", + "announcementsPage.errorLoadingAnnouncements": "Fehler beim Laden der Ankündigungen.", + "announcementsPage.noAnnouncementsFound": "Keine Ankündigungen gefunden.", + "confirmDeleteDialog.title": "Möchten Sie den Löschvorgang wirklich ausführen?", + "confirmDeleteDialog.cancel": "Abbrechen", + "confirmDeleteDialog.delete": "Löschen", + "announcementsCard.seeAll": "Alle anzeigen", + "announcementsCard.announcements": "Ankündigungen", + "announcementsCard.new": "Neu", + "announcementsCard.in": "in", + "announcementsCard.noAnnouncements": "Noch keine Ankündigungen, möchte", + "announcementsCard.addOne": "eine hinzufügen", + "announcementsCard.occurred": "Aufgetreten", + "announcementsCard.scheduled": "Geplant", + "announcementsCard.today": "Heute", + "announcementSearchResultListItem.published": "Veröffentlicht", + "announcementSearchResultListItem.announcement": "Ankündigung", + "announcementsTimeline.noAnnouncements": "Keine Ankündigungen", + "announcementsTimeline.error": "Fehler", + "categoriesForm.newCategory": "Neue Kategorie", + "categoriesForm.editCategory": "Kategorie bearbeiten", + "categoriesForm.titleLabel": "Titel", + "categoriesForm.submit": "Absenden", + "categoriesTable.categoryDeleted": "Kategorie gelöscht.", + "categoriesTable.slug": "Slug", + "categoriesTable.title": "Titel", + "categoriesTable.actions": "Aktionen", + "categoriesTable.addTooltip": "Hinzufügen", + "categoriesTable.noCategoriesFound": "Keine Kategorien gefunden.", + "categoriesPage.title": "Kategorien", + "categoriesPage.subtitle": "Ankündigungskategorien verwalten", + "tagsForm.newTag": "Neues Tag", + "tagsForm.editTag": "Tag bearbeiten", + "tagsForm.titleLabel": "Titel", + "tagsForm.submit": "Absenden", + "tagsForm.errors.alreadyExists": "Ein Tag mit diesem Namen existiert bereits.", + "tagsForm.errors.invalidTitle": "Titel ist erforderlich.", + "tagsForm.errors.tooLong": "Der Titel überschreitet die zulässige Länge.", + "newTagDialog.createdMessage": "Tag erstellt.", + "newTagDialog.newTag": "Neues Tag", + "newTagDialog.title": "Titel", + "newTagDialog.cancelButton": "Abbrechen", + "newTagDialog.createButton": "Erstellen", + "tagsPage.title": "Tags", + "tagsPage.subtitle": "Ankündigungs-Tags verwalten", + "tagsTable.tagDeleted": "Tag gelöscht.", + "tagsTable.slug": "Slug", + "tagsTable.title": "Titel", + "tagsTable.actions": "Aktionen", + "tagsTable.addTooltip": "Hinzufügen", + "tagsTable.noTagsFound": "Keine Tags gefunden.", + "createAnnouncementPage.alertMessage": "Ankündigung erstellt.", + "createAnnouncementPage.alertMessageWithNewCategory": "mit neuer Kategorie", + "editAnnouncementPage.updatedMessage": "Ankündigung aktualisiert.", + "editAnnouncementPage.updatedMessageWithNewCategory": "mit neuer Kategorie", + "editAnnouncementPage.notFoundMessage": "Ankündigung nicht gefunden", + "editAnnouncementPage.edit": "Bearbeiten", + "viewAnnouncementPage.backToAnnouncements": "Zurück zu Ankündigungen", + "viewAnnouncementPage.backToAdmin": "Zurück zur Administration", + "viewAnnouncementPage.notFound": "Ankündigung nicht gefunden", + "viewAnnouncementPage.tagsAriaLabel": "Ankündigungs-Tags", + "viewAnnouncementPage.by": "Von", + "viewAnnouncementPage.announcements": "Ankündigungen", + "newAnnouncementBanner.markAsSeen": "Wie gesehen markieren", + "newCategoryDialog.createdMessage": "Kategorie erstellt.", + "newCategoryDialog.newCategory": "Neue Kategorie", + "newCategoryDialog.title": "Titel", + "newCategoryDialog.cancelButton": "Abbrechen", + "newCategoryDialog.createButton": "Erstellen", + "admin.adminPortal.announcementsLabels": "Ankündigungen", + "admin.adminPortal.categoriesLabel": "Kategorien", + "admin.adminPortal.tagsLabel": "Tags", + "admin.adminPortal.title": "Admin-Portal für Ankündigungen", + "admin.adminPortal.subtitle": "Ankündigungen und Kategorien verwalten", + "admin.announcementsContent.alertMessage": "Ankündigung erstellt.", + "admin.announcementsContent.alertMessageWithNewCategory": "mit neuer Kategorie", + "admin.announcementsContent.cancelButton": "Abbrechen", + "admin.announcementsContent.createButton": "Ankündigung erstellen", + "admin.announcementsContent.deletedMessage": "Ankündigung gelöscht.", + "admin.announcementsContent.announcements": "Ankündigungen", + "admin.announcementsContent.noAnnouncementsFound": "Keine Ankündigungen gefunden", + "admin.announcementsContent.table.title": "Titel", + "admin.announcementsContent.table.body": "Textkörper", + "admin.announcementsContent.table.publisher": "Herausgeber", + "admin.announcementsContent.table.onBehalfOf": "Im Namen von", + "admin.announcementsContent.table.category": "Kategorie", + "admin.announcementsContent.table.tags": "Tags", + "admin.announcementsContent.table.status": "Status", + "admin.announcementsContent.table.actions": "Aktionen", + "admin.announcementsContent.table.active": "Aktiv", + "admin.announcementsContent.table.inactive": "Inaktiv", + "admin.announcementsContent.table.created_at": "Erstellt", + "admin.announcementsContent.table.start_at": "Start", + "admin.announcementsContent.table.until_date": "Bis", + "admin.categoriesContent.createdMessage": "erstellt", + "admin.categoriesContent.deletedMessage": "Kategorie gelöscht.", + "admin.categoriesContent.cancelButton": "Abbrechen", + "admin.categoriesContent.createButton": "Kategorie erstellen", + "admin.categoriesContent.table.categoryDeleted": "Kategorie gelöscht.", + "admin.categoriesContent.table.slug": "Slug", + "admin.categoriesContent.table.title": "Titel", + "admin.categoriesContent.table.actions": "Aktionen", + "admin.categoriesContent.table.addTooltip": "Hinzufügen", + "admin.categoriesContent.table.noCategoriesFound": "Keine Kategorien gefunden.", + "admin.tagsContent.createdMessage": "erstellt", + "admin.tagsContent.deletedMessage": "Tag gelöscht.", + "admin.tagsContent.cancelButton": "Abbrechen", + "admin.tagsContent.createButton": "Tag erstellen", + "admin.tagsContent.table.tagDeleted": "Tag gelöscht.", + "admin.tagsContent.table.slug": "Slug", + "admin.tagsContent.table.title": "Titel", + "admin.tagsContent.table.actions": "Aktionen", + "admin.tagsContent.table.addTooltip": "Hinzufügen", + "admin.tagsContent.table.noTagsFound": "Keine Tags gefunden.", + "admin.tagsContent.errors.by": "Von", + "admin.tagsContent.errors.announcements": "Ankündigungen", + "admin.tagsContent.errors.alreadyExists": "Ein Tag mit diesem Namen existiert bereits." + } + }, + "plugin.argocd": { + "en": { + "appStatus.appHealthStatus.Healthy": "Fehlerfrei", + "appStatus.appHealthStatus.Suspended": "Ausgesetzt", + "appStatus.appHealthStatus.Degraded": "Herabgesetzt", + "appStatus.appHealthStatus.Progressing": "Wird verarbeitet", + "appStatus.appHealthStatus.Missing": "Fehlt", + "appStatus.appHealthStatus.Unknown": "Unbekannt", + "appStatus.appSyncStatus.Unknown": "Unbekannt", + "appStatus.appSyncStatus.Synced": "Synchronisiert", + "appStatus.appSyncStatus.OutOfSync": "OutOfSync", + "common.appServer.title": "Dies ist der lokale Cluster, auf dem Argo CD installiert ist.", + "common.permissionAlert.alertTitle": "Berechtigung erforderlich", + "common.permissionAlert.alertText": "Zum Anzeigen des Argo CD-Plugins wenden Sie sich an den Administrator, um die Berechtigung 'argocd.view.read' zu erhalten.", + "deploymentLifecycle.sidebar.resources.resourcesColumnHeader.name": "Name", + "deploymentLifecycle.sidebar.resources.resourcesColumnHeader.kind": "Art", + "deploymentLifecycle.sidebar.resources.resourcesColumnHeader.createdAt": "Erstellt um", + "deploymentLifecycle.sidebar.resources.resourcesColumnHeader.syncStatus": "Synchronisierungsstatus", + "deploymentLifecycle.sidebar.resources.resourcesColumnHeader.healthStatus": "Integritätsstatus", + "deploymentLifecycle.sidebar.resources.resourcesTable.ariaLabelledBy": "Ressourcen", + "deploymentLifecycle.sidebar.resources.resourcesTable.noneFound": "Keine Ressourcen gefunden", + "deploymentLifecycle.sidebar.resources.resourcesTableRow.ariaLabel": "Zeile erweitern", + "deploymentLifecycle.sidebar.resources.resource.deploymentHistory.bodyText": "Deployment-Verlauf", + "deploymentLifecycle.sidebar.resources.resource.deploymentHistoryCommit.deployedText": "deployt", + "deploymentLifecycle.sidebar.resources.resource.deploymentMetadata.metadataItemWithTooltip.title": "Images", + "deploymentLifecycle.sidebar.resources.resource.deploymentMetadata.metadataItemWithTooltip.tooltipText": "Dies sind die Images für alle Deployments in der Argo CD-Anwendung.", + "deploymentLifecycle.sidebar.resources.resource.deploymentMetadata.namespace": "Namespace", + "deploymentLifecycle.sidebar.resources.resource.deploymentMetadata.commit": "Commit", + "deploymentLifecycle.sidebar.resources.resource.rolloutMetadata.namespace": "Namespace", + "deploymentLifecycle.sidebar.resources.resource.rolloutMetadata.strategy": "Strategie", + "deploymentLifecycle.sidebar.resources.resource.rolloutMetadata.status": "Status", + "deploymentLifecycle.sidebar.resources.resource.resourceMetadata.namespace": "Namespace", + "deploymentLifecycle.sidebar.resources.resourcesKebabMenuOptions.iconButton.ariaLabel": "mehr", + "deploymentLifecycle.sidebar.resources.resourcesKebabMenuOptions.refresh": "Aktualisieren", + "deploymentLifecycle.sidebar.resources.resourcesKebabMenuOptions.sync": "Synchronisieren", + "deploymentLifecycle.sidebar.resources.resourcesSearchBar.placeholder": "Suchen nach Art", + "deploymentLifecycle.sidebar.resources.resourcesSearchBar.ariaLabel": "Suche löschen", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.SearchByName": "Name", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.Kind": "Art", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.SyncStatus": "Synchronisierungsstatus", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.HealthStatus": "Integritätsstatus", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.Unset": "Filtern nach", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.searchByNameInput": "Suchen nach Name", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusInput": "Filtern nach Integritätsstatus", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.syncStatusInput": "Filtern nach Synchronisierungsstatus", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.kindInput": "Filtern nach Art", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.ariaLabels.resourceFilters": "Ressourcenfilter", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.ariaLabels.syncStatus": "Synchronisierungsstatus", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.ariaLabels.kind": "Art", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Healthy": "Fehlerfrei", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Suspended": "Ausgesetzt", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Degraded": "Herabgesetzt", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Progressing": "Wird verarbeitet", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Missing": "Fehlt", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Unknown": "Unbekannt", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.syncStatusSelectOptions.Synced": "Synchronisiert", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.syncStatusSelectOptions.Unknown": "Unbekannt", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.syncStatusSelectOptions.OutOfSync": "OutOfSync", + "deploymentLifecycle.sidebar.rollouts.revisions.analysisRuns.analysisRuns.textPrimary": "Analyseläufe", + "deploymentLifecycle.sidebar.rollouts.revisions.analysisRuns.analysisRuns.name": "Name:", + "deploymentLifecycle.sidebar.rollouts.revisions.analysisRuns.analysisRuns.createdAt": "Erstellt um:", + "deploymentLifecycle.sidebar.rollouts.revisions.analysisRuns.analysisRuns.status": "Status:", + "deploymentLifecycle.sidebar.rollouts.revisions.analysisRuns.analysisRuns.chipLabel": "Analyse", + "deploymentLifecycle.sidebar.rollouts.revisions.blueGreenRevision.revision": "Revision", + "deploymentLifecycle.sidebar.rollouts.revisions.blueGreenRevision.stable": "Stabil", + "deploymentLifecycle.sidebar.rollouts.revisions.blueGreenRevision.active": "Aktiv", + "deploymentLifecycle.sidebar.rollouts.revisions.blueGreenRevision.preview": "Vorschau", + "deploymentLifecycle.sidebar.rollouts.revisions.canaryRevision.revision": "Revision", + "deploymentLifecycle.sidebar.rollouts.revisions.canaryRevision.revisionType.stable": "Stabil", + "deploymentLifecycle.sidebar.rollouts.revisions.canaryRevision.revisionType.canary": "Canary", + "deploymentLifecycle.sidebar.rollouts.revisions.revisionImage.textPrimary": "Datenverkehr zum Image", + "deploymentLifecycle.sidebar.rollouts.rollOut.title": "Revisionen", + "deploymentLifecycle.deploymentLifecycle.title": "Deployment-Lifecycle", + "deploymentLifecycle.deploymentLifecycle.subtitle": "Überprüfen Sie die bereitgestellten Komponenten/Systeme im Namespace mithilfe des Argo CD-Plugins.", + "deploymentLifecycle.deploymentLifecycleCard.instance": "Instanz", + "deploymentLifecycle.deploymentLifecycleCard.server": "Server", + "deploymentLifecycle.deploymentLifecycleCard.namespace": "Namespace", + "deploymentLifecycle.deploymentLifecycleCard.commit": "Commit", + "deploymentLifecycle.deploymentLifecycleCard.tooltipText": "Die unten angezeigte Commit-SHA ist der letzte Commit aus der ersten definierten Anwendungsquelle.", + "deploymentLifecycle.deploymentLifecycleCard.resources": "Ressourcen", + "deploymentLifecycle.deploymentLifecycleCard.resourcesDeployed": "Deployte Ressourcen", + "deploymentLifecycle.deploymentLifecycleDrawer.iconButtonTitle": "Drawer schließen", + "deploymentLifecycle.deploymentLifecycleDrawer.instance": "Instanz", + "deploymentLifecycle.deploymentLifecycleDrawer.cluster": "Cluster", + "deploymentLifecycle.deploymentLifecycleDrawer.namespace": "Namespace", + "deploymentLifecycle.deploymentLifecycleDrawer.commit": "Commit", + "deploymentLifecycle.deploymentLifecycleDrawer.revision": "Revision", + "deploymentLifecycle.deploymentLifecycleDrawer.resources": "Ressourcen", + "deploymentLifecycle.deploymentLifecycleDrawer.instanceDefaultValue": "Standard", + "deploymentSummary.deploymentSummary.tableTitle": "Deployment-Übersicht", + "deploymentSummary.deploymentSummary.columns.instance": "Instanz", + "deploymentSummary.deploymentSummary.columns.server": "Server", + "deploymentSummary.deploymentSummary.columns.revision": "Revision", + "deploymentSummary.deploymentSummary.columns.lastDeployed": "Zuletzt deployt", + "deploymentSummary.deploymentSummary.columns.syncStatus": "Synchronisierungsstatus", + "deploymentSummary.deploymentSummary.columns.healthStatus": "Integritätsstatus" + } + }, + "bookmarks": { + "en": { + "bookmarkViewer.newTab": "In neuer Registerkarte öffnen", + "bookmarkViewer.navButton.next": "Weiter", + "bookmarkViewer.navButton.previous": "Zurück", + "bookmarkViewer.mobileView.toc": "Inhaltsverzeichnis", + "bookmarkViewerFrame.devModeWarning": "Möglicherweise müssen Sie die Seite neu laden, damit der iFrame im Entwicklermodus korrekt geladen wird.", + "entityBookmarksContent.invalid.title": "Ungültiges Lesezeichenformat", + "entityBookmarksContent.invalid.description": "Stellen Sie sicher, dass Ihre Lesezeichen korrekt strukturiert sind.", + "entityBookmarksContent.notFound.title": "Keine Lesezeichen gefunden", + "entityBookmarksContent.notFound.description": "Fügen Sie den Metadaten Ihres Elements Lesezeichen hinzu, um sie hier anzuzeigen." + } + }, + "flux": { + "en": { + "fluxContentCard.permissionAlert.title": "Berechtigung erforderlich", + "fluxContentCard.permissionAlert.message": "Für Flux-Inhalte ist eine Autorisierung für Kubernetes-Objekte erforderlich. Wenden Sie sich an den Portaladministrator, um die Berechtigungen 'kubernetes.clusters.read' und 'kubernetes.resources.read' zu erhalten." + } + }, + "plugin.jfrog-artifactory": { + "en": { + "page.title": "JFrog Artifactory-Repository: {{image}}", + "table.searchPlaceholder": "Filter", + "table.labelRowsSelect": "Zeilen", + "table.columns.version": "Version", + "table.columns.repositories": "Repositorys", + "table.columns.manifest": "Manifest", + "table.columns.modified": "Geändert", + "table.columns.size": "Größe", + "table.emptyContent.message": "Es wurden noch keine Daten hinzugefügt.", + "table.emptyContent.learnMore": "Erfahren Sie, wie man Daten hinzufügt.", + "manifest.sha256": "SHA256" + } + }, + "linguist": { + "en": { + "entityCard.title": "Sprachen", + "entityCard.noData": "Für dieses Element liegen derzeit keine Sprachdaten vor." + } + }, + "plugin.nexus-repository-manager": { + "en": { + "table.title": "Nexus Repository Manager: {{title}}", + "table.searchPlaceholder": "Filter", + "table.labelRowsSelect": "Zeilen", + "table.columns.version": "Version", + "table.columns.artifact": "Artefakt", + "table.columns.repositoryType": "Repository-Typ", + "table.columns.checksum": "Prüfsumme", + "table.columns.modified": "Geändert", + "table.columns.size": "Größe", + "table.emptyValue": "Nicht zutreffend", + "table.emptyContent.message": "Es wurden noch keine Daten hinzugefügt.", + "table.emptyContent.linkText": "Erfahren Sie, wie man Daten hinzufügt.", + "entityContent.title": "Artefakte erstellen" + } + }, + "plugin.npm.translation-ref": { + "en": { + "infoCard.title": "NPM-Paket {{packageName}}", + "infoCard.latestVersion": "Neueste Version", + "infoCard.publishedAt": "Veröffentlicht am", + "infoCard.license": "Lizenz", + "infoCard.description": "Beschreibung", + "infoCard.keywords": "Schlüsselwörter", + "infoCard.registryName": "Registry-Name", + "infoCard.npmRepository": "NPM-Repository", + "infoCard.codeRepository": "Code-Repository", + "infoCard.issueTracker": "Problemverfolgung", + "infoCard.homepage": "Startseite", + "releaseOverviewCard.title": "Aktuelle Tags", + "releaseOverviewCard.toolbar.searchPlaceholder": "Suchen", + "releaseOverviewCard.columns.tag": "Tag", + "releaseOverviewCard.columns.version": "Version", + "releaseOverviewCard.columns.published": "Veröffentlicht", + "releaseTableCard.title": "Aktuelle Tags", + "releaseTableCard.toolbar.searchPlaceholder": "Suchen", + "releaseTableCard.columns.tag": "Tag", + "releaseTableCard.columns.version": "Version", + "releaseTableCard.columns.published": "Veröffentlicht", + "versionHistoryCard.title": "Versionsverlauf", + "versionHistoryCard.toolbar.searchPlaceholder": "Suchen", + "versionHistoryCard.columns.version": "Version", + "versionHistoryCard.columns.published": "Veröffentlicht" + } + }, + "plugin.rbac": { + "en": { + "page.title": "RBAC", + "page.createRole": "Rolle erstellen", + "page.editRole": "Rolle bearbeiten", + "table.searchPlaceholder": "Filter", + "table.labelRowsSelect": "Zeilen", + "table.title": "Alle Rollen", + "table.titleWithCount": "Alle Rollen ({{count}})", + "table.headers.name": "Name", + "table.headers.usersAndGroups": "Benutzer und Gruppen", + "table.headers.accessiblePlugins": "Barrierefreie Plugins", + "table.headers.actions": "Aktionen", + "table.emptyContent": "Keine Datensätze gefunden", + "toolbar.createButton": "Erstellen", + "toolbar.warning.title": "Rolle konnte nicht erstellt werden.", + "toolbar.warning.message": "Um die Schaltfläche 'Rolle erstellen/bearbeiten' zu aktivieren, stellen Sie sicher, dass die erforderlichen Benutzer/Gruppen im Katalog vorhanden sind, da eine Rolle nicht ohne Benutzer/Gruppen erstellt werden kann. Außerdem muss die Ihrem Benutzer zugeordnete Rolle über die genannten Berechtigungsrichtlinien verfügen. hier.", + "toolbar.warning.linkText": "hier", + "toolbar.warning.note": "Hinweis", + "toolbar.warning.noteText": "Wenn selbst nach der Aufnahme von Benutzern/Gruppen in den Katalog und nach Anwendung der o. g. Berechtigungen die Schaltfläche 'Erstellen/Bearbeiten' weiterhin deaktiviert ist, wenden Sie sich an den Administrator, da Ihr Zugriff auf die Schaltfläche 'Erstellen/Bearbeiten' möglicherweise bedingt eingeschränkt ist.", + "errors.notFound": "Nicht gefunden", + "errors.unauthorized": "Keine Berechtigung zum Erstellen der Rolle", + "errors.rbacDisabled": "Aktivieren Sie das RBAC-Backend-Plugin, um diese Funktion zu nutzen.", + "errors.rbacDisabledInfo": "Um RBAC zu aktivieren, setzen Sie 'permission.enabled' in der 'app-config'-Datei auf 'true'.", + "errors.fetchRoles": "Beim Abrufen der Rollen ist ein Fehler aufgetreten", + "errors.fetchRole": "Beim Abrufen der Rolle ist ein Fehler aufgetreten", + "errors.fetchPoliciesErr": "Fehler beim Abrufen der Richtlinien. {{error}}", + "errors.fetchPolicies": "Beim Abrufen der Berechtigungsrichtlinien ist ein Fehler aufgetreten", + "errors.fetchPlugins": "Fehler beim Abrufen der Plugins. {{error}}", + "errors.fetchConditionalPermissionPolicies": "Fehler beim Abrufen der bedingten Berechtigungsrichtlinien. {{error}}", + "errors.fetchConditions": "Beim Abrufen der Rollenbedingungen ist ein Fehler aufgetreten", + "errors.fetchUsersAndGroups": "Beim Abrufen der Benutzer und Gruppen ist ein Fehler aufgetreten", + "errors.createRole": "Die Rolle kann nicht erstellt werden.", + "errors.editRole": "Die Rolle kann nicht bearbeitet werden.", + "errors.deleteRole": "Die Rolle kann nicht gelöscht werden.", + "errors.roleCreatedSuccess": "Die Rolle wurde erfolgreich erstellt, es können jedoch keine Berechtigungsrichtlinien zur Rolle hinzugefügt werden.", + "errors.roleCreatedConditionsSuccess": "Die Rolle wurde erfolgreich erstellt, es können jedoch keine Bedingungen zur Rolle hinzugefügt werden.", + "roleForm.titles.createRole": "Rolle erstellen", + "roleForm.titles.editRole": "Rolle bearbeiten", + "roleForm.titles.nameAndDescription": "Name und Beschreibung der Rolle eingeben", + "roleForm.titles.usersAndGroups": "Benutzer und Gruppen hinzufügen", + "roleForm.titles.permissionPolicies": "Berechtigungsrichtlinien hinzufügen", + "roleForm.review.reviewAndCreate": "Überprüfen und erstellen", + "roleForm.review.reviewAndSave": "Überprüfen und speichern", + "roleForm.review.nameDescriptionOwner": "Name, Beschreibung und Eigentümer der Rolle", + "roleForm.review.permissionPoliciesWithCount": "Berechtigungsrichtlinien ({{count}})", + "roleForm.steps.next": "Weiter", + "roleForm.steps.back": "Zurück", + "roleForm.steps.cancel": "Abbrechen", + "roleForm.steps.reset": "Zurücksetzen", + "roleForm.steps.create": "Erstellen", + "roleForm.steps.save": "Speichern", + "roleForm.fields.name.label": "Name", + "roleForm.fields.name.helperText": "Geben Sie den Namen der Rolle ein", + "roleForm.fields.description.label": "Beschreibung", + "roleForm.fields.description.helperText": "Geben Sie eine kurze Beschreibung der Rolle ein (Zweck der Rolle)", + "roleForm.fields.owner.label": "Eigentümer", + "roleForm.fields.owner.helperText": "Optional: Geben Sie einen Benutzer oder eine Gruppe ein, der bzw. die die Berechtigung haben soll, diese Rolle zu bearbeiten und zusätzliche Rollen zu erstellen. Im nächsten Schritt legen Sie fest, welchen Benutzern sie ihre Rollen zuweisen können und auf welche Plugins sie Zugriff erteilen können. Wird hier keine Angabe gemacht, wird bei der Erstellung automatisch der Autor zugewiesen.", + "deleteDialog.title": "Rolle löschen", + "deleteDialog.question": "Diese Rolle löschen?", + "deleteDialog.confirmation": "Möchten Sie die Rolle **{{roleName}}** wirklich löschen? Das Löschen dieser Rolle ist unumkehrbar und entfernt deren Funktionalität aus dem System. Gehen Sie mit Vorsicht vor. Das mit dieser Rolle verbundene **{{member}}** verliert den Zugriff auf alle in dieser Rolle festgelegten **{{permissions}}-Berechtigungsrichtlinien**.", + "deleteDialog.roleNameLabel": "Rollenname", + "deleteDialog.roleNameHelper": "Geben Sie den Namen der Rolle ein, um zu bestätigen", + "deleteDialog.deleteButton": "Löschen", + "deleteDialog.cancelButton": "Abbrechen", + "deleteDialog.successMessage": "Rolle {{roleName}} erfolgreich gelöscht", + "snackbar.success": "Erfolg", + "dialog.cancelRoleCreation": "Rollenerstellung abbrechen", + "dialog.exitRoleCreation": "Rollenerstellung beenden?", + "dialog.exitRoleEditing": "Rollenbearbeitung beenden?", + "dialog.exitWarning": "\n\nWenn Sie diese Seite verlassen, werden die von Ihnen eingegebenen Informationen endgültig verworfen. Möchten Sie wirklich beenden?", + "dialog.discard": "Verwerfen", + "dialog.cancel": "Abbrechen", + "conditionalAccess.condition": "Bedingung", + "conditionalAccess.allOf": "Alle von", + "conditionalAccess.anyOf": "Beliebige von", + "conditionalAccess.not": "Nicht", + "conditionalAccess.addNestedCondition": "Verschachtelte Bedingungen hinzufügen", + "conditionalAccess.addRule": "Regel hinzufügen", + "conditionalAccess.nestedConditionTooltip": "Verschachtelte Bedingungen sind **Regeln der Ebene 1 innerhalb einer Hauptbedingung**. Dies ermöglicht es Ihnen, entsprechenden Zugriff durch detaillierte Berechtigungen auf Basis verschiedener Bedingungen zu gewähren. Sie können mehrere verschachtelte Bedingungen hinzufügen.", + "conditionalAccess.nestedConditionExample": "Beispielsweise können Sie in der Hauptbedingung den Zugriff auf alle Elementtypen erlauben und mithilfe einer verschachtelten Bedingung den Zugriff auf die dem Benutzer gehörenden Elemente beschränken.", + "permissionPolicies.helperText": "Standardmäßig haben Benutzer keinen Zugriff auf Plugins. Um Benutzern Zugriff zu gewähren, wählen Sie die Plugins aus, die Sie ermöglichen möchten. Wählen Sie anschließend aus, für welche Aktionen Sie dem Benutzer die Berechtigung erteilen möchten.", + "permissionPolicies.allPlugins": "Alle Plugins ({{count}})", + "permissionPolicies.errorFetchingPolicies": "Fehler beim Abrufen der Berechtigungsrichtlinien: {{error}}", + "permissionPolicies.resourceTypeTooltip": "Ressourcentyp: {{resourceType}}", + "permissionPolicies.advancedPermissionsTooltip": "Verwenden Sie erweiterte, angepasste Berechtigungen, um den Zugriff auf bestimmte Teile des ausgewählten Ressourcentyps zu ermöglichen.", + "permissionPolicies.noAdvancedPermissionsTooltip": "Erweiterte Anpassungsmöglichkeiten werden für diesen Ressourcentyp nicht unterstützt.", + "permissionPolicies.pluginsSelected": "{{count}} Plugins", + "permissionPolicies.noPluginsSelected": "Keine Plugins ausgewählt", + "permissionPolicies.search": "Suchen", + "permissionPolicies.noRecordsToDisplay": "Keine Datensätze zum Anzeigen vorhanden.", + "permissionPolicies.selectedPluginsAppearHere": "Ausgewählte Plugins werden hier angezeigt.", + "permissionPolicies.selectPlugins": "Plugins auswählen", + "permissionPolicies.noPluginsFound": "Keine Plugins gefunden.", + "permissionPolicies.plugin": "Plugin", + "permissionPolicies.permission": "Berechtigung", + "permissionPolicies.policies": "Richtlinien", + "permissionPolicies.conditional": "Bedingt", + "permissionPolicies.rules": "Regeln", + "permissionPolicies.rule": "Regel", + "permissionPolicies.permissionPolicies": "Berechtigungsrichtlinien", + "permissionPolicies.permissions": "Berechtigungen", + "common.noResults": "Für diesen Datumsbereich wurden keine Ergebnisse gefunden.", + "common.exportCSV": "CSV exportieren", + "common.csvFilename": "data-export.csv", + "common.noMembers": "Keine Mitglieder", + "common.groups": "Gruppen", + "common.group": "Gruppe", + "common.users": "Benutzer", + "common.user": "Benutzer", + "common.use": "Verwenden", + "common.refresh": "Aktualisieren", + "common.edit": "Bearbeiten", + "common.unauthorizedToEdit": "Keine Berechtigung zum Bearbeiten", + "common.noRecordsFound": "Keine Datensätze gefunden", + "common.selectUsersAndGroups": "Benutzer und Gruppen auswählen", + "common.clearSearch": "Suche löschen", + "common.closeDrawer": "Drawer schließen", + "common.remove": "Entfernen", + "common.addRule": "Regel hinzufügen", + "common.selectRule": "Wählen Sie eine Regel aus", + "common.rule": "Regel", + "common.removeNestedCondition": "Verschachtelte Bedingung entfernen", + "common.overview": "Übersicht", + "common.about": "Info", + "common.description": "Beschreibung", + "common.modifiedBy": "Geändert von", + "common.lastModified": "Zuletzt geändert", + "common.owner": "Eigentümer", + "common.noUsersAndGroupsSelected": "Keine Benutzer und Gruppen ausgewählt", + "common.selectedUsersAndGroupsAppearHere": "Ausgewählte Benutzer und Gruppen werden hier angezeigt.", + "common.name": "Name", + "common.type": "Typ", + "common.members": "Mitglieder", + "common.actions": "Aktionen", + "common.removeMember": "Mitglied entfernen", + "common.delete": "Löschen", + "common.deleteRole": "Rolle löschen", + "common.update": "Aktualisieren", + "common.editRole": "Rolle bearbeiten", + "common.checkingPermissions": "Berechtigungen werden überprüft…", + "common.unauthorizedTo": "Nicht berechtigt für {{action}}", + "common.performThisAction": "Ausführen dieser Aktion", + "common.unableToCreatePermissionPolicies": "Die Berechtigungsrichtlinien konnten nicht erstellt werden.", + "common.unableToDeletePermissionPolicies": "Die Berechtigungsrichtlinien konnten nicht gelöscht werden.", + "common.unableToRemoveConditions": "Die Bedingungen konnten nicht aus der Rolle entfernt werden.", + "common.unableToUpdateConditions": "Die Bedingungen konnten nicht aktualisiert werden.", + "common.unableToAddConditions": "Der Rolle konnten keine Bedingungen hinzugefügt werden.", + "common.roleActionSuccessfully": "{{action}} für Rolle {{roleName}} erfolgreich", + "common.unableToFetchRole": "Rolle konnte nicht abgerufen werden: {{error}}", + "common.unableToFetchMembers": "Mitglieder konnten nicht abgerufen werden: {{error}}", + "common.roleAction": "{{action}} für Rolle", + "common.membersCount": "{{count}} Mitglieder", + "common.parentGroupCount": "{{count}} übergeordnete Gruppe", + "common.childGroupsCount": "{{count}} untergeordnete Gruppen", + "common.searchAndSelectUsersGroups": "Suchen und wählen Sie Benutzer und Gruppen aus, die hinzugefügt werden sollen. Ausgewählte Benutzer und Gruppen werden in der folgenden Tabelle angezeigt.", + "common.noUsersAndGroupsFound": "Keine Benutzer und Gruppen gefunden.", + "common.errorFetchingUserGroups": "Fehler beim Abrufen von Benutzern und Gruppen: {{error}}", + "common.nameRequired": "Name ist erforderlich", + "common.noMemberSelected": "Kein Mitglied ausgewählt", + "common.noPluginSelected": "Kein Plugin ausgewählt", + "common.pluginRequired": "Plugin ist erforderlich", + "common.permissionRequired": "Berechtigung ist erforderlich", + "common.editCell": "Bearbeiten...", + "common.selectCell": "Auswählen...", + "common.expandRow": "Zeile erweitern", + "common.configureAccessFor": "Zugriff konfigurieren für", + "common.defaultResourceTypeVisible": "Standardmäßig ist der ausgewählte Ressourcentyp für alle hinzugefügten Benutzer sichtbar. Wenn Sie bestimmte Plugin-Regeln einschränken oder Berechtigungen dafür erteilen möchten, wählen Sie diese aus, und fügen Sie die Parameter hinzu." + } + }, + "plugin.servicenow": { + "en": { + "page.title": "ServiceNow-Tickets", + "page.titleWithCount": "ServiceNow-Tickets ({{count}})", + "table.searchPlaceholder": "Suchen", + "table.labelRowsSelect": "{{count}} Zeilen", + "table.columns.incidentNumber": "Vorfallnummer", + "table.columns.description": "Beschreibung", + "table.columns.created": "Erstellt", + "table.columns.priority": "Priorität", + "table.columns.state": "Status", + "table.columns.actions": "Aktionen", + "table.emptyContent": "Keine Datensätze gefunden", + "filter.state": "Status", + "filter.priority": "Priorität", + "priority.critical": "Kritisch", + "priority.high": "Hoch", + "priority.moderate": "Mäßig", + "priority.low": "Niedrig", + "priority.planning": "Planung", + "incidentState.new": "Neu", + "incidentState.inProgress": "Wird verarbeitet", + "incidentState.onHold": "Angehalten", + "incidentState.resolved": "Gelöst", + "incidentState.closed": "Geschlossen", + "incidentState.cancelled": "Abgebrochen", + "errors.loadingIncidents": "Fehler beim Laden der Vorfälle: {{error}}", + "actions.openInServicenow": "In ServiceNow öffnen" + } + }, + "sonarqube": { + "en": { + "title": "SonarQube-Dashboard", + "sonarQubeCard.title": "Codequalität", + "sonarQubeCard.deepLinkTitle": "Mehr anzeigen", + "sonarQubeCard.emptyState.title": "Keine Informationen zum Anzeigen", + "sonarQubeCard.emptyState.description": "Es existiert kein SonarQube-Projekt mit dem Schlüssel '{{ projectTitle }}'. Überprüfen Sie, ob das Projekt und entsprechende Berechtigungen vorhanden sind.", + "sonarQubeCard.noSonarQubeError.hasAnnotation": "Es existiert kein SonarQube-Projekt mit dem Schlüssel '{{project}}'.", + "sonarQubeCard.noSonarQubeError.noAnnotation": "Keine SonarQube-Anmerkung gefunden", + "sonarQubeCard.bugReportRatingCardTitle": "Fehler", + "sonarQubeCard.vulnerabilitiesRatingCardTitle": "Schwachstellen", + "sonarQubeCard.codeSmellsRatingCardTitle": "Code-Smells", + "sonarQubeCard.hotspotsReviewedTitle": "Hotspots überprüft", + "sonarQubeCard.coverageRatingCardTitle": "Abdeckung", + "sonarQubeCard.duplicationsRatingCard": "Duplikate", + "sonarQubeCard.qualityBadgeLabel.notComputed": "Nicht berechnet", + "sonarQubeCard.qualityBadgeLabel.gatePassed": "Prüfpunkt bestanden", + "sonarQubeCard.qualityBadgeLabel.gateFailed": "Prüfpunkt nicht bestanden", + "sonarQubeCard.qualityBadgeTooltip": "SonarQube-Dashboard anzeigen", + "sonarQubeTable.columnsTitle.name": "Name", + "sonarQubeTable.columnsTitle.qualityGate": "Qualitätsprüfpunkt", + "sonarQubeTable.columnsTitle.lastAnalysis": "Letzte Analyse", + "sonarQubeTable.columnsTitle.bugs": "Fehler", + "sonarQubeTable.columnsTitle.vulnerabilities": "Schwachstellen", + "sonarQubeTable.columnsTitle.codeSmells": "Code-Smells", + "sonarQubeTable.columnsTitle.hotspotsReviewed": "Hotspots überprüft", + "sonarQubeTable.columnsTitle.coverage": "Abdeckung", + "sonarQubeTable.columnsTitle.duplications": "Duplikate" + } + }, + "tekton": { + "en": { + "errorPanel.title": "Problem beim Abrufen von Kubernetes-Objekten", + "errorPanel.description": "Es gab ein Problem beim Abrufen einiger Kubernetes-Ressourcen für das Element: {{entityName}}. Dies könnte bedeuten, dass die Karte mit den Fehlerberichten nicht ganz korrekt ist.", + "permissionAlert.title": "Berechtigung erforderlich", + "permissionAlert.description": "Zum Anzeigen von Tekton-Pipeline-Ausführungen wenden Sie sich an den Administrator, um die folgende(n) Berechtigung(en) zu erhalten: {{permissions}}.", + "statusSelector.label": "Status", + "clusterSelector.label": "Cluster", + "tableExpandCollapse.collapseAll": "Alle komprimieren", + "tableExpandCollapse.expandAll": "Alle erweitern", + "pipelineVisualization.emptyState.description": "Keine Pipeline-Ausführung zur Visualisierung", + "pipelineVisualization.noTasksDescription": "Diese Pipeline-Ausführung enthält keine zu visualisierenden Aufgaben.", + "pipelineVisualization.stepList.finallyTaskTitle": "Abschließende Aufgabe", + "pipelineRunList.title": "Pipeline-Ausführungen", + "pipelineRunList.noPipelineRuns": "Keine Pipeline-Ausführungen gefunden", + "pipelineRunList.searchBarPlaceholder": "Suchen", + "pipelineRunList.rowActions.viewParamsAndResults": "Parameter und Ergebnisse anzeigen", + "pipelineRunList.rowActions.viewLogs": "Logs anzeigen", + "pipelineRunList.rowActions.unauthorizedViewLogs": "Keine Berechtigung zum Anzeigen von Logs", + "pipelineRunList.rowActions.viewSBOM": "SBOM anzeigen", + "pipelineRunList.rowActions.SBOMNotApplicable": "'SBOM anzeigen' ist für diese Pipeline-Ausführung nicht anwendbar.", + "pipelineRunList.rowActions.viewOutput": "Ausgabe anzeigen", + "pipelineRunList.rowActions.outputNotApplicable": "'Ausgabe anzeigen' ist für diese Pipeline-Ausführung nicht anwendbar.", + "pipelineRunList.vulnerabilitySeverityTitle.critical": "Kritisch", + "pipelineRunList.vulnerabilitySeverityTitle.high": "Hoch", + "pipelineRunList.vulnerabilitySeverityTitle.medium": "Mittel", + "pipelineRunList.vulnerabilitySeverityTitle.low": "Niedrig", + "pipelineRunList.tableHeaderTitle.name": "NAME", + "pipelineRunList.tableHeaderTitle.vulnerabilities": "SCHWACHSTELLEN", + "pipelineRunList.tableHeaderTitle.status": "STATUS", + "pipelineRunList.tableHeaderTitle.taskStatus": "AUFGABENSTATUS", + "pipelineRunList.tableHeaderTitle.startTime": "GESTARTET", + "pipelineRunList.tableHeaderTitle.duration": "DAUER", + "pipelineRunList.tableHeaderTitle.actions": "AKTIONEN", + "pipelineRunList.tablePagination.rowsPerPageOptionLabel": "{{num}} Zeilen", + "pipelineRunLogs.title": "Logs der Pipeline-Ausführung", + "pipelineRunLogs.noLogs": "Keine Logs gefunden", + "pipelineRunLogs.downloader.downloadTaskLogs": "Herunterladen", + "pipelineRunLogs.downloader.downloadPipelineRunLogs": "Alle Aufgaben-Logs herunterladen", + "pipelineRunLogs.podLogsDownloadLink.title": "Herunterladen", + "pipelineRunLogs.podLogsDownloadLink.downloading": "Logs werden heruntergeladen", + "pipelineRunLogs.taskStatusStepper.skipped": "Übersprungen", + "pipelineRunOutput.title": "Ausgabe der Pipeline-Ausführung", + "pipelineRunOutput.noOutput": "Keine Ausgabe", + "pipelineRunStatus.All": "Alle", + "pipelineRunStatus.Cancelling": "Wird abgebrochen", + "pipelineRunStatus.Succeeded": "Erfolgreich", + "pipelineRunStatus.Failed": "Fehlgeschlagen", + "pipelineRunStatus.Running": "Wird ausgeführt", + "pipelineRunStatus.FailedToStart": "Start fehlgeschlagen", + "pipelineRunStatus.PipelineNotStarted": "Pipeline nicht gestartet", + "pipelineRunStatus.Skipped": "Übersprungen", + "pipelineRunStatus.Cancelled": "Abgebrochen", + "pipelineRunStatus.Pending": "Ausstehend", + "pipelineRunStatus.Idle": "Leerlauf", + "pipelineRunStatus.Other": "Andere", + "pipelineRunDuration.lessThanSec": "weniger als eine Sekunde", + "pipelineRunDuration.hour_one": "{{count}} Stunde", + "pipelineRunDuration.hour_other": "{{count}} Stunden", + "pipelineRunDuration.minute_one": "{{count}} Minute", + "pipelineRunDuration.minute_other": "{{count}} Minuten", + "pipelineRunDuration.second_one": "{{count}} Sekunde", + "pipelineRunDuration.second_other": "{{count}} Sekunden", + "pipelineRunParamsAndResults.title": "Parameter und Ergebnisse für Pipeline-Ausführung", + "pipelineRunParamsAndResults.noParams": "Keine Parameter gefunden", + "pipelineRunParamsAndResults.noResults": "Keine Ergebnisse gefunden", + "pipelineRunParamsAndResults.params": "Parameter", + "pipelineRunParamsAndResults.results": "Ergebnisse", + "pipelineRunParamsAndResults.outputTableColumn.name": "Name", + "pipelineRunParamsAndResults.outputTableColumn.value": "Wert" + } + }, + "plugin.topology": { + "en": { + "page.title": "Topologie", + "page.subtitle": "Visualisierung der Kubernetes-Workload-Topologie", + "toolbar.cluster": "Cluster", + "toolbar.selectCluster": "Cluster auswählen", + "toolbar.displayOptions": "Anzeigeoptionen", + "toolbar.currentDisplayOptions": "Aktuelle Anzeigeoptionen", + "controlBar.zoomIn": "Vergrößern", + "controlBar.zoomOut": "Verkleinern", + "controlBar.fitToScreen": "An Bildschirm anpassen", + "controlBar.resetView": "Ansicht zurücksetzen", + "emptyState.noResourcesFound": "Keine Ressourcen gefunden", + "emptyState.noResourcesDescription": "Im ausgewählten Cluster wurden keine Kubernetes-Ressourcen gefunden.", + "permissions.missingPermission": "Fehlende Berechtigung", + "permissions.missingPermissionDescription": "Um die Topologie anzuzeigen, muss Ihr Administrator Ihnen {{permissions}} {{permissionText}} erteilen.", + "permissions.missingPermissionDescription_plural": "Um die Topologie anzuzeigen, muss Ihr Administrator Ihnen {{permissions}} {{permissionText}} erteilen.", + "permissions.permission": "Berechtigung", + "permissions.permissions": "Berechtigungen", + "permissions.goBack": "Zurück", + "sideBar.details": "Details", + "sideBar.resources": "Ressourcen", + "status.running": "Wird ausgeführt", + "status.pending": "Ausstehend", + "status.succeeded": "Erfolgreich", + "status.failed": "Fehlgeschlagen", + "status.unknown": "Unbekannt", + "status.terminating": "Beendigung", + "status.crashLoopBackOff": "CrashLoopBackOff", + "status.error": "Fehler", + "status.warning": "Warnung", + "status.ready": "Bereit", + "status.notReady": "Nicht bereit", + "status.active": "Aktiv", + "status.inactive": "Inaktiv", + "status.updating": "Aktualisierung", + "status.evicted": "Entfernt", + "status.cancelled": "Abgebrochen", + "details.name": "Name", + "details.namespace": "Namespace", + "details.labels": "Bezeichnungen", + "details.annotations": "Anmerkungen", + "details.createdAt": "Erstellt", + "details.age": "Alter", + "details.replicas": "Replikate", + "details.availableReplicas": "Verfügbare Replikate", + "details.readyReplicas": "Fertige Replikate", + "details.updatedReplicas": "Aktualisierte Replikate", + "details.selector": "Auswahl", + "details.strategy": "Strategie", + "details.image": "Image", + "details.ports": "Ports", + "details.volumes": "Volumes", + "details.volumeMounts": "Volume-Mounts", + "details.environmentVariables": "Umgebungsvariablen", + "details.resourceRequirements": "Ressourcenanforderungen", + "details.limits": "Limits", + "details.requests": "Anforderungen", + "details.cpu": "CPU", + "details.memory": "Arbeitsspeicher", + "details.storage": "Storage", + "details.noLabels": "Keine Bezeichnungen", + "details.noAnnotations": "Keine Anmerkungen", + "details.noOwner": "Kein Eigentümer", + "details.notAvailable": "Nicht verfügbar", + "details.notConfigured": "Nicht konfiguriert", + "details.updateStrategy": "Strategie aktualisieren", + "details.maxUnavailable": "Max. nicht verfügbar", + "details.maxSurge": "Max. plötzlicher Anstieg", + "details.progressDeadlineSeconds": "Fortschrittsfrist in Sekunden", + "details.minReadySeconds": "Mind. bereit in Sekunden", + "details.desiredCompletions": "Gewünschte Fertigstellungen", + "details.parallelism": "Parallelität", + "details.activeDeadlineSeconds": "Aktive Frist Sekunden", + "details.currentCount": "Aktuelle Anzahl", + "details.desiredCount": "Gewünschte Anzahl", + "details.schedule": "Zeitplan", + "details.concurrencyPolicy": "Parallelitätsrichtlinie", + "details.startingDeadlineSeconds": "Startfrist Sekunden", + "details.lastScheduleTime": "Letzte Planzeit", + "details.maxSurgeDescription": "{{maxSurge}} größer als {{replicas}} Pod", + "details.maxUnavailableDescription": "{{maxUnavailable}} von {{replicas}} Pod", + "logs.download": "Herunterladen", + "logs.noLogsFound": "Keine Logs gefunden", + "logs.selectContainer": "Container auswählen", + "logs.container": "Container", + "logs.pod": "Pod", + "logs.showPrevious": "Vorherige anzeigen", + "logs.follow": "Folgen", + "logs.refresh": "Aktualisieren", + "logs.timestamps": "Zeitstempel", + "logs.wrapLines": "Zeilenumbruch", + "logs.clearLogs": "Logs löschen", + "logs.logLevel": "Log-Ebene", + "logs.search": "Suchen", + "logs.noMatchingLogs": "Keine passenden Logs gefunden", + "resources.noResourcesFound": "Für diese Ressource wurde kein {{resourceType}} gefunden.", + "resources.showingLatest": "Anzeige der neuesten {{count}} {{resourceType}}", + "time.seconds": "Sekunden", + "time.minutes": "Minuten", + "time.hours": "Stunden", + "time.days": "Tage", + "events.type": "Typ", + "events.reason": "Ursache", + "events.message": "Nachricht", + "events.source": "Quelle", + "events.firstSeen": "Zuerst gesehen", + "events.lastSeen": "Zuletzt gesehen", + "events.count": "Anzahl", + "events.noEventsFound": "Keine Ereignisse gefunden", + "filters.showLabels": "Bezeichnungen anzeigen", + "filters.showPodCount": "Pod-Anzahl anzeigen", + "filters.expandApplicationGroups": "Anwendungsgruppen erweitern", + "filters.showConnectors": "Konnektoren anzeigen", + "common.status": "Status", + "common.owner": "Eigentümer", + "common.location": "Speicherort", + "common.viewLogs": "Logs anzeigen", + "bootOrder.summary": "Zusammenfassung der Bootreihenfolge", + "bootOrder.emptySummary": "Keine Bootreihenfolge konfiguriert", + "bootOrder.disk": "Disk", + "bootOrder.network": "Netzwerk", + "bootOrder.cdrom": "CD-ROM", + "vm.status.starting": "Wird gestartet", + "vm.status.stopping": "Wird beendet", + "vm.status.stopped": "Beendet", + "vm.status.paused": "Pausiert", + "vm.status.migrating": "Migration", + "vm.status.provisioning": "Bereitstellung", + "vm.status.errorUnschedulable": "ErrorUnschedulable", + "vm.status.errorImagePull": "ErrorImagePull", + "vm.status.imageNotReady": "ImageNotReady", + "vm.status.waitingForVolumeBinding": "WaitingForVolumeBinding" + } + } +} diff --git a/translations/community-plugins-es.json b/translations/community-plugins-es.json new file mode 100644 index 0000000000..b33751b781 --- /dev/null +++ b/translations/community-plugins-es.json @@ -0,0 +1,795 @@ +{ + "plugin.acr": { + "en": { + "page.title": "Repositorio de Azure Container Registry: {{image}}", + "table.searchPlaceholder": "Filtrar", + "table.labelRowsSelect": "Filas", + "table.columns.tag": "Etiqueta", + "table.columns.created": "Creadas", + "table.columns.lastModified": "Última modificación", + "table.columns.manifest": "Manifiesto" + } + }, + "adr": { + "en": { + "contentHeaderTitle": "Registros de decisiones de arquitectura", + "failedToFetch": "No se pudieron extraer ADR", + "notFound": "No se encontraron ADR" + } + }, + "announcements": { + "en": { + "announcementForm.title": "Título", + "announcementForm.excerpt": "Fragmento", + "announcementForm.active": "Activo", + "announcementForm.submit": "Enviar", + "announcementForm.editAnnouncement": "Modificar anuncio", + "announcementForm.newAnnouncement": "Nuevo anuncio", + "announcementForm.startAt": "Fecha de inicio del anuncio", + "announcementForm.untilDate": "Fecha de finalización del anuncio", + "announcementForm.onBehalfOf": "En nombre de", + "announcementForm.categoryInput.create": "Crear", + "announcementForm.categoryInput.label": "Categoría", + "announcementForm.tagsInput.create": "Crear", + "announcementForm.tagsInput.label": "Etiquetas", + "announcementForm.tagsLabel": "Etiquetas", + "announcementsPage.announcements": "Anuncios", + "announcementsPage.newAnnouncement": "Nuevo anuncio", + "announcementsPage.genericNew": "Nuevo", + "announcementsPage.card.by": "Por", + "announcementsPage.card.in": "en", + "announcementsPage.card.edit": "Modificar", + "announcementsPage.card.delete": "Eliminar", + "announcementsPage.card.occurred": "Ocurrió ", + "announcementsPage.card.scheduled": "Programado ", + "announcementsPage.card.today": "Hoy", + "announcementsPage.contextMenu.admin": "Gestionar anuncios", + "announcementsPage.filter.label": "Filtros:", + "announcementsPage.filter.category": "Categoría", + "announcementsPage.filter.categoryPlaceholder": "Seleccionar una categoría", + "announcementsPage.filter.categorySearchPlaceholder": "Buscar categorías...", + "announcementsPage.filter.tags": "Etiquetas", + "announcementsPage.filter.tagsPlaceholder": "Seleccionar etiquetas", + "announcementsPage.filter.tagsSearchPlaceholder": "Buscar etiquetas...", + "announcementsPage.filter.clear": "Borrar filtros", + "announcementsPage.filter.noFilteredAnnouncementsFound": "No se encontraron anuncios con los filtros seleccionados.", + "announcementsPage.errorLoadingAnnouncements": "Error al cargar anuncios.", + "announcementsPage.noAnnouncementsFound": "No se encontraron anuncios.", + "confirmDeleteDialog.title": "¿Confirma que desea eliminarlo?", + "confirmDeleteDialog.cancel": "Cancelar", + "confirmDeleteDialog.delete": "Eliminar", + "announcementsCard.seeAll": "Ver todos", + "announcementsCard.announcements": "Anuncios", + "announcementsCard.new": "Nuevo", + "announcementsCard.in": "en", + "announcementsCard.noAnnouncements": "Aún no hay anuncios, quiere", + "announcementsCard.addOne": "agregar uno", + "announcementsCard.occurred": "Ocurrió", + "announcementsCard.scheduled": "Programado", + "announcementsCard.today": "Hoy", + "announcementSearchResultListItem.published": "Publicado", + "announcementSearchResultListItem.announcement": "Anuncio", + "announcementsTimeline.noAnnouncements": "No hay anuncios", + "announcementsTimeline.error": "Error", + "categoriesForm.newCategory": "Nueva categoría", + "categoriesForm.editCategory": "Modificar categoría", + "categoriesForm.titleLabel": "Título", + "categoriesForm.submit": "Enviar", + "categoriesTable.categoryDeleted": "Se eliminó la categoría.", + "categoriesTable.slug": "Slug", + "categoriesTable.title": "Título", + "categoriesTable.actions": "Acciones", + "categoriesTable.addTooltip": "Agregar", + "categoriesTable.noCategoriesFound": "No se encontraron categorías.", + "categoriesPage.title": "Categorías", + "categoriesPage.subtitle": "Gestionar categorías de anuncios", + "tagsForm.newTag": "Nueva etiqueta", + "tagsForm.editTag": "Modificar etiqueta", + "tagsForm.titleLabel": "Título", + "tagsForm.submit": "Enviar", + "tagsForm.errors.alreadyExists": "Ya existe una etiqueta con este nombre.", + "tagsForm.errors.invalidTitle": "Se requiere título.", + "tagsForm.errors.tooLong": "El título supera la longitud máxima.", + "newTagDialog.createdMessage": "Se creó la etiqueta.", + "newTagDialog.newTag": "Nueva etiqueta", + "newTagDialog.title": "Título", + "newTagDialog.cancelButton": "Cancelar", + "newTagDialog.createButton": "Crear", + "tagsPage.title": "Etiquetas", + "tagsPage.subtitle": "Gestionar etiquetas de anuncios", + "tagsTable.tagDeleted": "Se eliminó la etiqueta.", + "tagsTable.slug": "Slug", + "tagsTable.title": "Título", + "tagsTable.actions": "Acciones", + "tagsTable.addTooltip": "Agregar", + "tagsTable.noTagsFound": "No se encontraron etiquetas.", + "createAnnouncementPage.alertMessage": "Se creó un anuncio.", + "createAnnouncementPage.alertMessageWithNewCategory": "con nueva categoría", + "editAnnouncementPage.updatedMessage": "Se actualizó el anuncio.", + "editAnnouncementPage.updatedMessageWithNewCategory": "con nueva categoría", + "editAnnouncementPage.notFoundMessage": "No se puede encontrar el anuncio", + "editAnnouncementPage.edit": "Modificar", + "viewAnnouncementPage.backToAnnouncements": "Volver a los anuncios", + "viewAnnouncementPage.backToAdmin": "Volver a la administración", + "viewAnnouncementPage.notFound": "No se encontró el anuncio", + "viewAnnouncementPage.tagsAriaLabel": "Etiquetas de anuncio", + "viewAnnouncementPage.by": "Por", + "viewAnnouncementPage.announcements": "Anuncios", + "newAnnouncementBanner.markAsSeen": "Marcar como visto", + "newCategoryDialog.createdMessage": "Se creó una categoría.", + "newCategoryDialog.newCategory": "Nueva categoría", + "newCategoryDialog.title": "Título", + "newCategoryDialog.cancelButton": "Cancelar", + "newCategoryDialog.createButton": "Crear", + "admin.adminPortal.announcementsLabels": "Anuncios", + "admin.adminPortal.categoriesLabel": "Categorías", + "admin.adminPortal.tagsLabel": "Etiquetas", + "admin.adminPortal.title": "Portal de administración para anuncios", + "admin.adminPortal.subtitle": "Gestionar anuncios y categorías", + "admin.announcementsContent.alertMessage": "Se creó un anuncio.", + "admin.announcementsContent.alertMessageWithNewCategory": "con nueva categoría", + "admin.announcementsContent.cancelButton": "Cancelar", + "admin.announcementsContent.createButton": "Crear anuncio", + "admin.announcementsContent.deletedMessage": "Se eliminó el anuncio.", + "admin.announcementsContent.announcements": "Anuncios", + "admin.announcementsContent.noAnnouncementsFound": "No se encontraron anuncios", + "admin.announcementsContent.table.title": "Título", + "admin.announcementsContent.table.body": "Texto", + "admin.announcementsContent.table.publisher": "Editor", + "admin.announcementsContent.table.onBehalfOf": "En nombre de", + "admin.announcementsContent.table.category": "Categoría", + "admin.announcementsContent.table.tags": "Etiquetas", + "admin.announcementsContent.table.status": "Estado", + "admin.announcementsContent.table.actions": "Acciones", + "admin.announcementsContent.table.active": "Activo", + "admin.announcementsContent.table.inactive": "Inactivo", + "admin.announcementsContent.table.created_at": "Creado", + "admin.announcementsContent.table.start_at": "Iniciar", + "admin.announcementsContent.table.until_date": "Hasta", + "admin.categoriesContent.createdMessage": "creado", + "admin.categoriesContent.deletedMessage": "Se eliminó la categoría.", + "admin.categoriesContent.cancelButton": "Cancelar", + "admin.categoriesContent.createButton": "Crear categoría", + "admin.categoriesContent.table.categoryDeleted": "Se eliminó la categoría.", + "admin.categoriesContent.table.slug": "Slug", + "admin.categoriesContent.table.title": "Título", + "admin.categoriesContent.table.actions": "Acciones", + "admin.categoriesContent.table.addTooltip": "Agregar", + "admin.categoriesContent.table.noCategoriesFound": "No se encontraron categorías.", + "admin.tagsContent.createdMessage": "creado", + "admin.tagsContent.deletedMessage": "Se eliminó la etiqueta.", + "admin.tagsContent.cancelButton": "Cancelar", + "admin.tagsContent.createButton": "Crear etiqueta", + "admin.tagsContent.table.tagDeleted": "Se eliminó la etiqueta.", + "admin.tagsContent.table.slug": "Slug", + "admin.tagsContent.table.title": "Título", + "admin.tagsContent.table.actions": "Acciones", + "admin.tagsContent.table.addTooltip": "Agregar", + "admin.tagsContent.table.noTagsFound": "No se encontraron etiquetas.", + "admin.tagsContent.errors.by": "Por", + "admin.tagsContent.errors.announcements": "Anuncios", + "admin.tagsContent.errors.alreadyExists": "Ya existe una etiqueta con este nombre." + } + }, + "plugin.argocd": { + "en": { + "appStatus.appHealthStatus.Healthy": "En buen estado", + "appStatus.appHealthStatus.Suspended": "Suspendida", + "appStatus.appHealthStatus.Degraded": "Degradada", + "appStatus.appHealthStatus.Progressing": "En curso", + "appStatus.appHealthStatus.Missing": "Faltante", + "appStatus.appHealthStatus.Unknown": "Desconocida", + "appStatus.appSyncStatus.Unknown": "Desconocida", + "appStatus.appSyncStatus.Synced": "Sincronizada", + "appStatus.appSyncStatus.OutOfSync": "Fuera de sincronización", + "common.appServer.title": "Este es el clúster local donde está instalado Argo CD.", + "common.permissionAlert.alertTitle": "Permiso requerido", + "common.permissionAlert.alertText": "Para ver el complemento Argo CD, comuníquese con su administrador para que le otorgue el permiso argocd.view.read.", + "deploymentLifecycle.sidebar.resources.resourcesColumnHeader.name": "Nombre", + "deploymentLifecycle.sidebar.resources.resourcesColumnHeader.kind": "Tipo", + "deploymentLifecycle.sidebar.resources.resourcesColumnHeader.createdAt": "Creado en", + "deploymentLifecycle.sidebar.resources.resourcesColumnHeader.syncStatus": "Estado de sincronización", + "deploymentLifecycle.sidebar.resources.resourcesColumnHeader.healthStatus": "Estado", + "deploymentLifecycle.sidebar.resources.resourcesTable.ariaLabelledBy": "Recursos", + "deploymentLifecycle.sidebar.resources.resourcesTable.noneFound": "No se encontraron recursos", + "deploymentLifecycle.sidebar.resources.resourcesTableRow.ariaLabel": "expandir fila", + "deploymentLifecycle.sidebar.resources.resource.deploymentHistory.bodyText": "Historial de implementación", + "deploymentLifecycle.sidebar.resources.resource.deploymentHistoryCommit.deployedText": "implementado", + "deploymentLifecycle.sidebar.resources.resource.deploymentMetadata.metadataItemWithTooltip.title": "Imágenes", + "deploymentLifecycle.sidebar.resources.resource.deploymentMetadata.metadataItemWithTooltip.tooltipText": "Estas son las imágenes para todas las implementaciones en la aplicación Argo CD.", + "deploymentLifecycle.sidebar.resources.resource.deploymentMetadata.namespace": "Espacio de nombres", + "deploymentLifecycle.sidebar.resources.resource.deploymentMetadata.commit": "Confirmar", + "deploymentLifecycle.sidebar.resources.resource.rolloutMetadata.namespace": "Espacio de nombres", + "deploymentLifecycle.sidebar.resources.resource.rolloutMetadata.strategy": "Estrategia", + "deploymentLifecycle.sidebar.resources.resource.rolloutMetadata.status": "Estado", + "deploymentLifecycle.sidebar.resources.resource.resourceMetadata.namespace": "Espacio de nombres", + "deploymentLifecycle.sidebar.resources.resourcesKebabMenuOptions.iconButton.ariaLabel": "más", + "deploymentLifecycle.sidebar.resources.resourcesKebabMenuOptions.refresh": "Actualizar", + "deploymentLifecycle.sidebar.resources.resourcesKebabMenuOptions.sync": "Sincronizar", + "deploymentLifecycle.sidebar.resources.resourcesSearchBar.placeholder": "Buscar por tipo", + "deploymentLifecycle.sidebar.resources.resourcesSearchBar.ariaLabel": "borrar búsqueda", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.SearchByName": "Nombre", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.Kind": "Tipo", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.SyncStatus": "Estado de sincronización", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.HealthStatus": "Estado", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.Unset": "Filtrar por", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.searchByNameInput": "Buscar por nombre", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusInput": "Filtrar por estado", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.syncStatusInput": "Filtrar por estado de sincronización", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.kindInput": "Filtrar por tipo", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.ariaLabels.resourceFilters": "Filtros de recursos", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.ariaLabels.syncStatus": "Estado de sincronización", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.ariaLabels.kind": "Tipo", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Healthy": "En buen estado", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Suspended": "Suspendida", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Degraded": "Degradada", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Progressing": "En curso", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Missing": "Faltante", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.healthStatusSelectOptions.Unknown": "Desconocida", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.syncStatusSelectOptions.Synced": "Sincronizada", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.syncStatusSelectOptions.Unknown": "Desconocida", + "deploymentLifecycle.sidebar.resources.filters.resourcesFilterBy.syncStatusSelectOptions.OutOfSync": "Fuera de sincronización", + "deploymentLifecycle.sidebar.rollouts.revisions.analysisRuns.analysisRuns.textPrimary": "Ejecuciones de análisis", + "deploymentLifecycle.sidebar.rollouts.revisions.analysisRuns.analysisRuns.name": "Nombre:", + "deploymentLifecycle.sidebar.rollouts.revisions.analysisRuns.analysisRuns.createdAt": "Creado en:", + "deploymentLifecycle.sidebar.rollouts.revisions.analysisRuns.analysisRuns.status": "Estado:", + "deploymentLifecycle.sidebar.rollouts.revisions.analysisRuns.analysisRuns.chipLabel": "Análisis", + "deploymentLifecycle.sidebar.rollouts.revisions.blueGreenRevision.revision": "Revisión", + "deploymentLifecycle.sidebar.rollouts.revisions.blueGreenRevision.stable": "Estable", + "deploymentLifecycle.sidebar.rollouts.revisions.blueGreenRevision.active": "Activo", + "deploymentLifecycle.sidebar.rollouts.revisions.blueGreenRevision.preview": "Vista previa", + "deploymentLifecycle.sidebar.rollouts.revisions.canaryRevision.revision": "Revisión", + "deploymentLifecycle.sidebar.rollouts.revisions.canaryRevision.revisionType.stable": "Estable", + "deploymentLifecycle.sidebar.rollouts.revisions.canaryRevision.revisionType.canary": "Canario", + "deploymentLifecycle.sidebar.rollouts.revisions.revisionImage.textPrimary": "Tráfico a la imagen", + "deploymentLifecycle.sidebar.rollouts.rollOut.title": "Revisiones", + "deploymentLifecycle.deploymentLifecycle.title": "Ciclo de vida de la implementación", + "deploymentLifecycle.deploymentLifecycle.subtitle": "Revisar los componentes/sistemas implementados en el espacio de nombres mediante el complemento Argo CD", + "deploymentLifecycle.deploymentLifecycleCard.instance": "Instancia", + "deploymentLifecycle.deploymentLifecycleCard.server": "Servidor", + "deploymentLifecycle.deploymentLifecycleCard.namespace": "Espacio de nombres", + "deploymentLifecycle.deploymentLifecycleCard.commit": "Confirmar", + "deploymentLifecycle.deploymentLifecycleCard.tooltipText": "La confirmación SHA que se muestra a continuación es la última confirmación de la primera fuente de aplicación definida.", + "deploymentLifecycle.deploymentLifecycleCard.resources": "Recursos", + "deploymentLifecycle.deploymentLifecycleCard.resourcesDeployed": "recursos implementados", + "deploymentLifecycle.deploymentLifecycleDrawer.iconButtonTitle": "Cerrar el panel", + "deploymentLifecycle.deploymentLifecycleDrawer.instance": "Instancia", + "deploymentLifecycle.deploymentLifecycleDrawer.cluster": "Clúster", + "deploymentLifecycle.deploymentLifecycleDrawer.namespace": "Espacio de nombres", + "deploymentLifecycle.deploymentLifecycleDrawer.commit": "Confirmar", + "deploymentLifecycle.deploymentLifecycleDrawer.revision": "Revisión", + "deploymentLifecycle.deploymentLifecycleDrawer.resources": "Recursos", + "deploymentLifecycle.deploymentLifecycleDrawer.instanceDefaultValue": "predeterminado", + "deploymentSummary.deploymentSummary.tableTitle": "Resumen de implementación", + "deploymentSummary.deploymentSummary.columns.instance": "Instancia", + "deploymentSummary.deploymentSummary.columns.server": "Servidor", + "deploymentSummary.deploymentSummary.columns.revision": "Revisión", + "deploymentSummary.deploymentSummary.columns.lastDeployed": "Última implementación", + "deploymentSummary.deploymentSummary.columns.syncStatus": "Estado de sincronización", + "deploymentSummary.deploymentSummary.columns.healthStatus": "Estado" + } + }, + "bookmarks": { + "en": { + "bookmarkViewer.newTab": "Abrir en nueva pestaña", + "bookmarkViewer.navButton.next": "Siguiente", + "bookmarkViewer.navButton.previous": "Anterior", + "bookmarkViewer.mobileView.toc": "Tabla de contenido", + "bookmarkViewerFrame.devModeWarning": "Es posible que tenga que volver a cargar la página para que el iframe se cargue correctamente en el modo de desarrollo", + "entityBookmarksContent.invalid.title": "Formato de marcadores no válido", + "entityBookmarksContent.invalid.description": "Asegúrese de que sus marcadores estén estructurados correctamente.", + "entityBookmarksContent.notFound.title": "No se encontraron marcadores", + "entityBookmarksContent.notFound.description": "Agregue marcadores a los metadatos de su entidad para verlos aquí." + } + }, + "flux": { + "en": { + "fluxContentCard.permissionAlert.title": "Permiso requerido", + "fluxContentCard.permissionAlert.message": "El contenido de Flux requiere autorización en los objetos de Kubernetes; comuníquese con el administrador de su portal para que le otorgue los permisos 'kubernetes.clusters.read' y 'kubernetes.resources.read'." + } + }, + "plugin.jfrog-artifactory": { + "en": { + "page.title": "Repositorio de JFrog Artifactory: {{image}}", + "table.searchPlaceholder": "Filtrar", + "table.labelRowsSelect": "Filas", + "table.columns.version": "Versión", + "table.columns.repositories": "Repositorios", + "table.columns.manifest": "Manifiesto", + "table.columns.modified": "Modificado", + "table.columns.size": "Tamaño", + "table.emptyContent.message": "Aún no se agregaron datos,", + "table.emptyContent.learnMore": "aprenda a agregar datos.", + "manifest.sha256": "sha256" + } + }, + "linguist": { + "en": { + "entityCard.title": "Idiomas", + "entityCard.noData": "En la actualidad, no hay datos de idioma para esta entidad." + } + }, + "plugin.nexus-repository-manager": { + "en": { + "table.title": "Administrador del repositorio de Nexus: {{title}}", + "table.searchPlaceholder": "Filtrar", + "table.labelRowsSelect": "Filas", + "table.columns.version": "Versión", + "table.columns.artifact": "Artefacto", + "table.columns.repositoryType": "Tipo de repositorio", + "table.columns.checksum": "Suma de verificación", + "table.columns.modified": "Modificado", + "table.columns.size": "Tamaño", + "table.emptyValue": "N/A", + "table.emptyContent.message": "Aún no se agregaron datos,", + "table.emptyContent.linkText": "aprenda a agregar datos", + "entityContent.title": "Construir artefactos" + } + }, + "plugin.npm.translation-ref": { + "en": { + "infoCard.title": "Paquete NPM {{packageName}}", + "infoCard.latestVersion": "Última versión", + "infoCard.publishedAt": "Publicado en", + "infoCard.license": "Licencia", + "infoCard.description": "Descripción", + "infoCard.keywords": "Palabras clave", + "infoCard.registryName": "Nombre de registro", + "infoCard.npmRepository": "Repositorio NPM", + "infoCard.codeRepository": "Repositorio de código", + "infoCard.issueTracker": "Seguimiento de problemas", + "infoCard.homepage": "Página de inicio", + "releaseOverviewCard.title": "Etiquetas actuales", + "releaseOverviewCard.toolbar.searchPlaceholder": "Buscar", + "releaseOverviewCard.columns.tag": "Etiqueta", + "releaseOverviewCard.columns.version": "Versión", + "releaseOverviewCard.columns.published": "Publicado", + "releaseTableCard.title": "Etiquetas actuales", + "releaseTableCard.toolbar.searchPlaceholder": "Buscar", + "releaseTableCard.columns.tag": "Etiqueta", + "releaseTableCard.columns.version": "Versión", + "releaseTableCard.columns.published": "Publicado", + "versionHistoryCard.title": "Historial de versiones", + "versionHistoryCard.toolbar.searchPlaceholder": "Buscar", + "versionHistoryCard.columns.version": "Versión", + "versionHistoryCard.columns.published": "Publicado" + } + }, + "plugin.rbac": { + "en": { + "page.title": "RBAC", + "page.createRole": "Crear rol", + "page.editRole": "Modificar rol", + "table.searchPlaceholder": "Filtrar", + "table.labelRowsSelect": "Filas", + "table.title": "Todos los roles", + "table.titleWithCount": "Todos los roles ({{count}})", + "table.headers.name": "Nombre", + "table.headers.usersAndGroups": "Usuarios y grupos", + "table.headers.accessiblePlugins": "Complementos accesibles", + "table.headers.actions": "Acciones", + "table.emptyContent": "No se encontraron registros", + "toolbar.createButton": "Crear", + "toolbar.warning.title": "No se puede crear el rol.", + "toolbar.warning.message": "Para habilitar el botón crear/modificar rol, asegúrese de que los usuarios/grupos requeridos estén disponibles en el catálogo, ya que no se puede crear un rol sin usuarios/grupos, y el rol asociado con su usuario debe tener las políticas de permisos mencionadas aquí.", + "toolbar.warning.linkText": "aquí", + "toolbar.warning.note": "Nota", + "toolbar.warning.noteText": "Incluso después de importar usuarios/grupos en el catálogo y aplicar los permisos anteriores, si el botón crear/modificar aún está deshabilitado, comuníquese con su administrador, ya que es posible que tenga restringido de forma condicional el acceso al botón crear/modificar.", + "errors.notFound": "No encontrado", + "errors.unauthorized": "No tiene autorización para crear el rol", + "errors.rbacDisabled": "Habilite el complemento RBAC de back-end para utilizar esta funcionalidad.", + "errors.rbacDisabledInfo": "Para habilitar RBAC, configure `permission.enabled` en `true` en el archivo app-config.", + "errors.fetchRoles": "Algo salió mal al extraer los roles", + "errors.fetchRole": "Algo salió mal al extraer el rol", + "errors.fetchPoliciesErr": "Error al extraer las políticas. {{error}}", + "errors.fetchPolicies": "Algo salió mal al extraer las políticas de permisos", + "errors.fetchPlugins": "Error al extraer los complementos. {{error}}", + "errors.fetchConditionalPermissionPolicies": "Error al extraer las políticas de permisos condicionales. {{error}}", + "errors.fetchConditions": "Algo salió mal al extraer las condiciones del rol", + "errors.fetchUsersAndGroups": "Algo salió mal al extraer los usuarios y grupos", + "errors.createRole": "No se puede crear el rol.", + "errors.editRole": "No se puede modificar el rol.", + "errors.deleteRole": "No se puede eliminar el rol.", + "errors.roleCreatedSuccess": "El rol se creó correctamente, pero no se pueden agregar políticas de permisos a él.", + "errors.roleCreatedConditionsSuccess": "El rol se creó correctamente, pero no se pueden agregar condiciones a él.", + "roleForm.titles.createRole": "Crear rol", + "roleForm.titles.editRole": "Modificar rol", + "roleForm.titles.nameAndDescription": "Ingresar el nombre y la descripción del rol", + "roleForm.titles.usersAndGroups": "Agregar usuarios y grupos", + "roleForm.titles.permissionPolicies": "Agregar políticas de permisos", + "roleForm.review.reviewAndCreate": "Revisar y crear", + "roleForm.review.reviewAndSave": "Revisar y guardar", + "roleForm.review.nameDescriptionOwner": "Nombre, descripción y propietario del rol", + "roleForm.review.permissionPoliciesWithCount": "Políticas de permisos ({{count}})", + "roleForm.steps.next": "Siguiente", + "roleForm.steps.back": "Atrás", + "roleForm.steps.cancel": "Cancelar", + "roleForm.steps.reset": "Reiniciar", + "roleForm.steps.create": "Crear", + "roleForm.steps.save": "Guardar", + "roleForm.fields.name.label": "Nombre", + "roleForm.fields.name.helperText": "Ingresar el nombre del rol", + "roleForm.fields.description.label": "Descripción", + "roleForm.fields.description.helperText": "Ingrese una breve descripción sobre el rol (el propósito del rol)", + "roleForm.fields.owner.label": "Propietario", + "roleForm.fields.owner.helperText": "Opcional: Ingrese un usuario o grupo que tenga permiso para modificar este rol y crear roles adicionales. En el siguiente paso, especifique a qué usuarios pueden asignar sus roles y a qué complementos pueden conceder acceso. Si se deja en blanco, se asigna automáticamente el autor en el momento de la creación.", + "deleteDialog.title": "Eliminar rol", + "deleteDialog.question": "¿Eliminar este rol?", + "deleteDialog.confirmation": "¿Confirma que desea eliminar el rol **{{roleName}}**? Esta acción no se puede deshacer y eliminará la funcionalidad del rol del sistema. Proceda con precaución. Los **{{members}}** asociados con este rol perderán acceso a todas las **políticas de permisos de {{permissions}}** especificadas en este rol.", + "deleteDialog.roleNameLabel": "Nombre del rol", + "deleteDialog.roleNameHelper": "Escriba el nombre del rol para confirmar", + "deleteDialog.deleteButton": "Eliminar", + "deleteDialog.cancelButton": "Cancelar", + "deleteDialog.successMessage": "Rol {{roleName}} eliminado correctamente", + "snackbar.success": "Éxito", + "dialog.cancelRoleCreation": "Cancelar la creación del rol", + "dialog.exitRoleCreation": "¿Salir de la creación de roles?", + "dialog.exitRoleEditing": "¿Salir de la modificación de roles?", + "dialog.exitWarning": "\n\nAl salir de esta página, se descartará la información ingresada de forma permanente. ¿Confirma que desea salir?", + "dialog.discard": "Descartar", + "dialog.cancel": "Cancelar", + "conditionalAccess.condition": "Condición", + "conditionalAccess.allOf": "Todas", + "conditionalAccess.anyOf": "Cualquiera de", + "conditionalAccess.not": "No", + "conditionalAccess.addNestedCondition": "Agregar condición anidada", + "conditionalAccess.addRule": "Agregar regla", + "conditionalAccess.nestedConditionTooltip": "Las condiciones anidadas son **reglas de una capa dentro de una condición principal**. Le permite habilitar el acceso apropiado mediante el uso de permisos detallados basados en diversas condiciones. Puede agregar varias condiciones anidadas.", + "conditionalAccess.nestedConditionExample": "Por ejemplo, puede permitir el acceso a todos los tipos de entidades en la condición principal y usar una condición anidada para limitar el acceso a las entidades que son propiedad del usuario.", + "permissionPolicies.helperText": "De forma predeterminada, a los usuarios no se les concede acceso a ningún complemento. Para otorgar acceso a los usuarios, seleccione los complementos que desea habilitar. Luego, seleccione las acciones a las que desea otorgarle permiso al usuario.", + "permissionPolicies.allPlugins": "Todos los complementos ({{count}})", + "permissionPolicies.errorFetchingPolicies": "Error al extraer las políticas de permisos: {{error}}", + "permissionPolicies.resourceTypeTooltip": "tipo de recurso: {{resourceType}}", + "permissionPolicies.advancedPermissionsTooltip": "Utilice permisos personalizados avanzados para permitir el acceso a partes específicas del tipo de recurso seleccionado.", + "permissionPolicies.noAdvancedPermissionsTooltip": "No se admite la personalización avanzada para este tipo de recurso.", + "permissionPolicies.pluginsSelected": "{{count}} complementos", + "permissionPolicies.noPluginsSelected": "No hay complementos seleccionados", + "permissionPolicies.search": "Buscar", + "permissionPolicies.noRecordsToDisplay": "No hay registros para mostrar.", + "permissionPolicies.selectedPluginsAppearHere": "Los complementos seleccionados aparecen aquí.", + "permissionPolicies.selectPlugins": "Seleccionar complementos", + "permissionPolicies.noPluginsFound": "No se encontraron complementos.", + "permissionPolicies.plugin": "Complemento", + "permissionPolicies.permission": "Permiso", + "permissionPolicies.policies": "Políticas", + "permissionPolicies.conditional": "Condicional", + "permissionPolicies.rules": "reglas", + "permissionPolicies.rule": "regla", + "permissionPolicies.permissionPolicies": "Políticas de permisos", + "permissionPolicies.permissions": "permisos", + "common.noResults": "No hay resultados para este rango de fechas.", + "common.exportCSV": "Exportar CSV", + "common.csvFilename": "data-export.csv", + "common.noMembers": "No hay miembros", + "common.groups": "grupos", + "common.group": "grupo", + "common.users": "usuarios", + "common.user": "usuario", + "common.use": "Usar", + "common.refresh": "Actualizar", + "common.edit": "Modificar", + "common.unauthorizedToEdit": "No tiene autorización para modificar", + "common.noRecordsFound": "No se encontraron registros", + "common.selectUsersAndGroups": "Seleccionar usuarios y grupos", + "common.clearSearch": "borrar búsqueda", + "common.closeDrawer": "Cerrar el panel", + "common.remove": "Eliminar", + "common.addRule": "Agregar regla", + "common.selectRule": "Seleccionar una regla", + "common.rule": "Regla", + "common.removeNestedCondition": "Eliminar condición anidada", + "common.overview": "Visión general", + "common.about": "Acerca de", + "common.description": "Descripción", + "common.modifiedBy": "Modificado por", + "common.lastModified": "Última modificación", + "common.owner": "Propietario", + "common.noUsersAndGroupsSelected": "No hay usuarios ni grupos seleccionados", + "common.selectedUsersAndGroupsAppearHere": "Aquí aparecen los usuarios y grupos seleccionados.", + "common.name": "Nombre", + "common.type": "Tipo", + "common.members": "Miembros", + "common.actions": "Acciones", + "common.removeMember": "Eliminar miembro", + "common.delete": "Eliminar", + "common.deleteRole": "Eliminar rol", + "common.update": "Actualizar", + "common.editRole": "Modificar rol", + "common.checkingPermissions": "Comprobando permisos…", + "common.unauthorizedTo": "No tiene autorización para {{acción}}", + "common.performThisAction": "realizar esta acción", + "common.unableToCreatePermissionPolicies": "No se pueden crear las políticas de permisos.", + "common.unableToDeletePermissionPolicies": "No se pueden eliminar las políticas de permisos.", + "common.unableToRemoveConditions": "No se pueden eliminar las condiciones del rol.", + "common.unableToUpdateConditions": "No se pueden actualizar las condiciones.", + "common.unableToAddConditions": "No se pueden agregar condiciones al rol.", + "common.roleActionSuccessfully": "El rol {{roleName}} {{action}} correctamente", + "common.unableToFetchRole": "No se puede extraer el rol: {{error}}", + "common.unableToFetchMembers": "No se pueden extraer los miembros: {{error}}", + "common.roleAction": "{{action}} rol", + "common.membersCount": "{{count}} miembros", + "common.parentGroupCount": "{{count}} grupo principal", + "common.childGroupsCount": "{{count}} grupos secundarios", + "common.searchAndSelectUsersGroups": "Busque y seleccione los usuarios y grupos que desea agregar. Los usuarios y grupos seleccionados aparecerán en la tabla a continuación.", + "common.noUsersAndGroupsFound": "No se encontraron usuarios ni grupos.", + "common.errorFetchingUserGroups": "Error al extraer usuarios y grupos: {{error}}", + "common.nameRequired": "El nombre es obligatorio", + "common.noMemberSelected": "No se seleccionaron miembros", + "common.noPluginSelected": "No hay complementos seleccionados", + "common.pluginRequired": "Se requiere complemento", + "common.permissionRequired": "Se requiere permiso", + "common.editCell": "Modificar...", + "common.selectCell": "Seleccionar...", + "common.expandRow": "expandir fila", + "common.configureAccessFor": "Configurar acceso para", + "common.defaultResourceTypeVisible": "De forma predeterminada, todos los usuarios agregados pueden visualizar el tipo de recurso seleccionado. Si desea restringir u otorgar permiso a reglas de complementos específicas, selecciónelas y agregue los parámetros." + } + }, + "plugin.servicenow": { + "en": { + "page.title": "Tickets de ServiceNow", + "page.titleWithCount": "Tickets de ServiceNow ({{count}})", + "table.searchPlaceholder": "Buscar", + "table.labelRowsSelect": "{{count}} filas", + "table.columns.incidentNumber": "Número de incidente", + "table.columns.description": "Descripción", + "table.columns.created": "Creado", + "table.columns.priority": "Prioridad", + "table.columns.state": "Estado", + "table.columns.actions": "Acciones", + "table.emptyContent": "No se encontraron registros", + "filter.state": "Estado", + "filter.priority": "Prioridad", + "priority.critical": "Crítica", + "priority.high": "Alta", + "priority.moderate": "Moderada", + "priority.low": "Baja", + "priority.planning": "Planificación", + "incidentState.new": "Nuevo", + "incidentState.inProgress": "En curso", + "incidentState.onHold": "En espera", + "incidentState.resolved": "Resuelto", + "incidentState.closed": "Cerrado", + "incidentState.cancelled": "Cancelado", + "errors.loadingIncidents": "Error al cargar incidentes: {{error}}", + "actions.openInServicenow": "Abrir en ServiceNow" + } + }, + "sonarqube": { + "en": { + "title": "Panel de SonarQube", + "sonarQubeCard.title": "Calidad del código", + "sonarQubeCard.deepLinkTitle": "Ver más", + "sonarQubeCard.emptyState.title": "No hay información para mostrar", + "sonarQubeCard.emptyState.description": "No hay ningún proyecto de SonarQube con la clave '{{ projectTitle }}'; verifique que el proyecto exista y tenga permisos.", + "sonarQubeCard.noSonarQubeError.hasAnnotation": "No existe ningún proyecto de SonarQube con la clave '{{project}}'", + "sonarQubeCard.noSonarQubeError.noAnnotation": "No se encontró ninguna anotación de SonarQube", + "sonarQubeCard.bugReportRatingCardTitle": "Errores", + "sonarQubeCard.vulnerabilitiesRatingCardTitle": "Vulnerabilidades", + "sonarQubeCard.codeSmellsRatingCardTitle": "Malas prácticas de código", + "sonarQubeCard.hotspotsReviewedTitle": "Puntos de acceso revisados", + "sonarQubeCard.coverageRatingCardTitle": "Cobertura", + "sonarQubeCard.duplicationsRatingCard": "Duplicaciones", + "sonarQubeCard.qualityBadgeLabel.notComputed": "No calculado", + "sonarQubeCard.qualityBadgeLabel.gatePassed": "Control superado", + "sonarQubeCard.qualityBadgeLabel.gateFailed": "Falló el control", + "sonarQubeCard.qualityBadgeTooltip": "Ver el panel de SonarQube", + "sonarQubeTable.columnsTitle.name": "Nombre", + "sonarQubeTable.columnsTitle.qualityGate": "Control de calidad", + "sonarQubeTable.columnsTitle.lastAnalysis": "Último análisis", + "sonarQubeTable.columnsTitle.bugs": "Errores", + "sonarQubeTable.columnsTitle.vulnerabilities": "Vulnerabilidades", + "sonarQubeTable.columnsTitle.codeSmells": "Malas prácticas de código", + "sonarQubeTable.columnsTitle.hotspotsReviewed": "Puntos de acceso revisados", + "sonarQubeTable.columnsTitle.coverage": "Cobertura", + "sonarQubeTable.columnsTitle.duplications": "Duplicaciones" + } + }, + "tekton": { + "en": { + "errorPanel.title": "Ocurrió un problema al recuperar objetos de Kubernetes", + "errorPanel.description": "Ocurrió un problema al recuperar algunos recursos de Kubernetes para la entidad: {{entityName}}. Esto podría significar que la tarjeta de informe de errores no es completamente precisa.", + "permissionAlert.title": "Permiso requerido", + "permissionAlert.description": "Para ver las ejecuciones de pipeline de Tekton, comuníquese con su administrador para que le otorgue los siguientes permisos: {{permissions}}.", + "statusSelector.label": "Estado", + "clusterSelector.label": "Clúster", + "tableExpandCollapse.collapseAll": "Contraer todo", + "tableExpandCollapse.expandAll": "Expandir todo", + "pipelineVisualization.emptyState.description": "No hay ejecución de pipeline para visualizar", + "pipelineVisualization.noTasksDescription": "Esta ejecución de pipeline no tiene tareas para visualizar", + "pipelineVisualization.stepList.finallyTaskTitle": "Tarea final", + "pipelineRunList.title": "Ejecuciones de pipeline", + "pipelineRunList.noPipelineRuns": "No se encontraron ejecuciones de pipeline", + "pipelineRunList.searchBarPlaceholder": "Buscar", + "pipelineRunList.rowActions.viewParamsAndResults": "Ver parámetros y resultados", + "pipelineRunList.rowActions.viewLogs": "Ver registros", + "pipelineRunList.rowActions.unauthorizedViewLogs": "No tiene autorización para ver los registros", + "pipelineRunList.rowActions.viewSBOM": "Ver SBOM", + "pipelineRunList.rowActions.SBOMNotApplicable": "Ver SBOM no es aplicable a esta ejecución de pipeline", + "pipelineRunList.rowActions.viewOutput": "Ver salida", + "pipelineRunList.rowActions.outputNotApplicable": "Ver salida no es aplicable para esta ejecución de pipeline", + "pipelineRunList.vulnerabilitySeverityTitle.critical": "Crítica", + "pipelineRunList.vulnerabilitySeverityTitle.high": "Alta", + "pipelineRunList.vulnerabilitySeverityTitle.medium": "Media", + "pipelineRunList.vulnerabilitySeverityTitle.low": "Baja", + "pipelineRunList.tableHeaderTitle.name": "NOMBRE", + "pipelineRunList.tableHeaderTitle.vulnerabilities": "VULNERABILIDADES", + "pipelineRunList.tableHeaderTitle.status": "ESTADO", + "pipelineRunList.tableHeaderTitle.taskStatus": "ESTADO DE LA TAREA", + "pipelineRunList.tableHeaderTitle.startTime": "INICIADA", + "pipelineRunList.tableHeaderTitle.duration": "DURACIÓN", + "pipelineRunList.tableHeaderTitle.actions": "ACCIONES", + "pipelineRunList.tablePagination.rowsPerPageOptionLabel": "{{num}} filas", + "pipelineRunLogs.title": "Registros de ejecuciones de pipeline", + "pipelineRunLogs.noLogs": "No se encontraron registros", + "pipelineRunLogs.downloader.downloadTaskLogs": "Descargar", + "pipelineRunLogs.downloader.downloadPipelineRunLogs": "Descargar todos los registros de tareas", + "pipelineRunLogs.podLogsDownloadLink.title": "Descargar", + "pipelineRunLogs.podLogsDownloadLink.downloading": "descargando registros", + "pipelineRunLogs.taskStatusStepper.skipped": "Omitida", + "pipelineRunOutput.title": "Salida de la ejecución de pipeline", + "pipelineRunOutput.noOutput": "Sin salida", + "pipelineRunStatus.All": "Todos", + "pipelineRunStatus.Cancelling": "Cancelada", + "pipelineRunStatus.Succeeded": "Ejecución exitosa", + "pipelineRunStatus.Failed": "Fallida", + "pipelineRunStatus.Running": "En ejecución", + "pipelineRunStatus.FailedToStart": "Error al iniciar", + "pipelineRunStatus.PipelineNotStarted": "Pipeline no iniciado", + "pipelineRunStatus.Skipped": "Omitida", + "pipelineRunStatus.Cancelled": "Cancelada", + "pipelineRunStatus.Pending": "Pendiente", + "pipelineRunStatus.Idle": "Inactiva", + "pipelineRunStatus.Other": "Otro", + "pipelineRunDuration.lessThanSec": "menos de un segundo", + "pipelineRunDuration.hour_one": "{{count}} hora", + "pipelineRunDuration.hour_other": "{{count}} horas", + "pipelineRunDuration.minute_one": "{{count}} minuto", + "pipelineRunDuration.minute_other": "{{count}} minutos", + "pipelineRunDuration.second_one": "{{count}} segundo", + "pipelineRunDuration.second_other": "{{count}} segundos", + "pipelineRunParamsAndResults.title": "Parámetros y resultados de la ejecución de pipeline", + "pipelineRunParamsAndResults.noParams": "No se encontraron parámetros", + "pipelineRunParamsAndResults.noResults": "No se encontraron resultados", + "pipelineRunParamsAndResults.params": "Parámetros", + "pipelineRunParamsAndResults.results": "Resultados", + "pipelineRunParamsAndResults.outputTableColumn.name": "Nombre", + "pipelineRunParamsAndResults.outputTableColumn.value": "Valor" + } + }, + "plugin.topology": { + "en": { + "page.title": "Topología", + "page.subtitle": "Visualización de la topología de la carga de trabajo de Kubernetes", + "toolbar.cluster": "Clúster", + "toolbar.selectCluster": "Seleccionar clúster", + "toolbar.displayOptions": "Opciones de visualización", + "toolbar.currentDisplayOptions": "Opciones de visualización actuales", + "controlBar.zoomIn": "Acercar", + "controlBar.zoomOut": "Alejar", + "controlBar.fitToScreen": "Ajustar a la pantalla", + "controlBar.resetView": "Restablecer vista", + "emptyState.noResourcesFound": "No se encontraron recursos", + "emptyState.noResourcesDescription": "No se encontraron recursos de Kubernetes en el clúster seleccionado.", + "permissions.missingPermission": "Permiso faltante", + "permissions.missingPermissionDescription": "Para ver la topología, su administrador debe otorgarle {{permissions}} {{permissionText}}.", + "permissions.missingPermissionDescription_plural": "Para ver la topología, su administrador debe otorgarle {{permissions}} {{permissionText}}.", + "permissions.permission": "permiso", + "permissions.permissions": "permisos", + "permissions.goBack": "Volver", + "sideBar.details": "Detalles", + "sideBar.resources": "Recursos", + "status.running": "En ejecución", + "status.pending": "Pendiente", + "status.succeeded": "Ejecución exitosa", + "status.failed": "Fallido", + "status.unknown": "Desconocido", + "status.terminating": "Terminando", + "status.crashLoopBackOff": "CrashLoopBackOff", + "status.error": "Error", + "status.warning": "Advertencia", + "status.ready": "Listo", + "status.notReady": "No está listo", + "status.active": "Activo", + "status.inactive": "Inactivo", + "status.updating": "Actualizando", + "status.evicted": "Desalojado", + "status.cancelled": "Cancelado", + "details.name": "Nombre", + "details.namespace": "Espacio de nombres", + "details.labels": "Etiquetas", + "details.annotations": "Anotaciones", + "details.createdAt": "Creado", + "details.age": "Edad", + "details.replicas": "Réplicas", + "details.availableReplicas": "Réplicas disponibles", + "details.readyReplicas": "Réplicas listas", + "details.updatedReplicas": "Réplicas actualizadas", + "details.selector": "Selector", + "details.strategy": "Estrategia", + "details.image": "Imagen", + "details.ports": "Puertos", + "details.volumes": "Volúmenes", + "details.volumeMounts": "Montajes de volumen", + "details.environmentVariables": "Variables de entorno", + "details.resourceRequirements": "Requisitos de recursos", + "details.limits": "Límites", + "details.requests": "Solicitudes", + "details.cpu": "CPU", + "details.memory": "Memoria", + "details.storage": "Almacenamiento", + "details.noLabels": "Sin etiquetas", + "details.noAnnotations": "Sin anotaciones", + "details.noOwner": "Sin propietario", + "details.notAvailable": "No disponible", + "details.notConfigured": "No configurado", + "details.updateStrategy": "Estrategia de actualización", + "details.maxUnavailable": "Máximo no disponible", + "details.maxSurge": "Aumento máximo", + "details.progressDeadlineSeconds": "Segundos de la fecha límite de progreso", + "details.minReadySeconds": "Segundos mínimos de preparación", + "details.desiredCompletions": "Finalizaciones deseadas", + "details.parallelism": "Paralelismo", + "details.activeDeadlineSeconds": "Segundos de fecha límite activa", + "details.currentCount": "Recuento actual", + "details.desiredCount": "Recuento deseado", + "details.schedule": "Cronograma", + "details.concurrencyPolicy": "Política de concurrencia", + "details.startingDeadlineSeconds": "Segundos de fecha límite de inicio", + "details.lastScheduleTime": "Última hora programada", + "details.maxSurgeDescription": "{{maxSurge}} mayor que {{replicas}} pod", + "details.maxUnavailableDescription": "{{maxUnavailable}} de {{replicas}} pod", + "logs.download": "Descargar", + "logs.noLogsFound": "No se encontraron registros", + "logs.selectContainer": "Seleccionar contenedor", + "logs.container": "Contenedor", + "logs.pod": "Pod", + "logs.showPrevious": "Mostrar anterior", + "logs.follow": "Seguir", + "logs.refresh": "Actualizar", + "logs.timestamps": "Marcas de tiempo", + "logs.wrapLines": "Envolver líneas", + "logs.clearLogs": "Borrar registros", + "logs.logLevel": "Nivel de registro", + "logs.search": "Buscar", + "logs.noMatchingLogs": "No se encontraron registros coincidentes", + "resources.noResourcesFound": "No se encontró {{resourceType}} para este recurso.", + "resources.showingLatest": "Se muestran los últimos {{count}} {{resourceType}}", + "time.seconds": "segundos", + "time.minutes": "minutos", + "time.hours": "horas", + "time.days": "días", + "events.type": "Tipo", + "events.reason": "Razón", + "events.message": "Mensaje", + "events.source": "Fuente", + "events.firstSeen": "Visto por primera vez", + "events.lastSeen": "Visto por última vez", + "events.count": "Recuento", + "events.noEventsFound": "No se encontraron eventos", + "filters.showLabels": "Mostrar etiquetas", + "filters.showPodCount": "Mostrar recuento de pods", + "filters.expandApplicationGroups": "Expandir grupos de aplicaciones", + "filters.showConnectors": "Mostrar conectores", + "common.status": "Estado", + "common.owner": "Propietario", + "common.location": "Ubicación", + "common.viewLogs": "Ver registros", + "bootOrder.summary": "Resumen del orden de arranque", + "bootOrder.emptySummary": "No hay orden de arranque configurado", + "bootOrder.disk": "Disco", + "bootOrder.network": "Red", + "bootOrder.cdrom": "CD-ROM", + "vm.status.starting": "Iniciada", + "vm.status.stopping": "Detenida", + "vm.status.stopped": "Interrumpida", + "vm.status.paused": "En pausa", + "vm.status.migrating": "En migración", + "vm.status.provisioning": "En aprovisionamiento", + "vm.status.errorUnschedulable": "ErrorUnschedulable", + "vm.status.errorImagePull": "ErrorImagePull", + "vm.status.imageNotReady": "ImageNotReady", + "vm.status.waitingForVolumeBinding": "WaitingForVolumeBinding" + } + } +} diff --git a/translations/rhdh-de.json b/translations/rhdh-de.json new file mode 100644 index 0000000000..cbb7c3d755 --- /dev/null +++ b/translations/rhdh-de.json @@ -0,0 +1,134 @@ +{ + "catalog": { + "en": { + "indexPage.createButtonTitle": "Self-Service" + } + }, + "catalog-import": { + "en": { + "defaultImportPage.headerTitle": "Vorhandenes Git-Repository importieren", + "importInfoCard.title": "Vorhandenes Git-Repository importieren" + } + }, + "core-components": { + "en": { + "table.filter.placeholder": "Alle Ergebnisse", + "table.body.emptyDataSourceMessage": "Keine Datensätze zum Anzeigen vorhanden", + "table.pagination.firstTooltip": "Erste Seite", + "table.pagination.labelDisplayedRows": "{von}-{bis} von {Anzahl}", + "table.pagination.labelRowsSelect": "Zeilen", + "table.pagination.lastTooltip": "Letzte Seite", + "table.pagination.nextTooltip": "Nächste Seite", + "table.pagination.previousTooltip": "Vorherige Seite", + "table.toolbar.search": "Filter", + "alertDisplay.message_one": "({{ count }} neuere Nachricht)", + "alertDisplay.message_other": "({{ count }} neuere Nachrichten)", + "table.header.actions": "Aktionen", + "oauthRequestDialog.message": "Melden Sie sich an, um {{appTitle}} Zugriff auf die APIs und Identitäten von {{provider}} zu erlauben." + } + }, + "rhdh": { + "en": { + "menuItem.home": "Startseite", + "menuItem.myGroup_one": "Meine Gruppe", + "menuItem.myGroup_other": "Meine Gruppen", + "menuItem.catalog": "Katalog", + "menuItem.apis": "APIs", + "menuItem.learningPaths": "Lernpfade", + "menuItem.selfService": "Self-Service", + "menuItem.userSettings": "Benutzereinstellungen", + "menuItem.administration": "Administration", + "menuItem.extensions": "Erweiterungen", + "menuItem.clusters": "Cluster", + "menuItem.rbac": "RBAC", + "menuItem.bulkImport": "Massenimport", + "menuItem.docs": "Dokumente", + "menuItem.lighthouse": "Lighthouse", + "menuItem.techRadar": "Tech Radar", + "menuItem.orchestrator": "Orchestrator", + "menuItem.adoptionInsights": "Adoption Insights", + "sidebar.menu": "Menü", + "sidebar.home": "Startseite", + "sidebar.homeLogo": "Startseitenlogo", + "signIn.page.title": "Wählen Sie eine Anmeldemethode aus", + "signIn.providers.auth0.title": "Auth0", + "signIn.providers.auth0.message": "Mit Auth0 anmelden", + "signIn.providers.atlassian.title": "Atlassian", + "signIn.providers.atlassian.message": "Mit Atlassian anmelden", + "signIn.providers.microsoft.title": "Microsoft", + "signIn.providers.microsoft.message": "Mit Microsoft anmelden", + "signIn.providers.bitbucket.title": "Bitbucket", + "signIn.providers.bitbucket.message": "Mit Bitbucket anmelden", + "signIn.providers.bitbucketServer.title": "Bitbucket Server", + "signIn.providers.bitbucketServer.message": "Mit Bitbucket Server anmelden", + "signIn.providers.github.title": "GitHub", + "signIn.providers.github.message": "Mit GitHub anmelden", + "signIn.providers.gitlab.title": "GitLab", + "signIn.providers.gitlab.message": "Mit GitLab anmelden", + "signIn.providers.google.title": "Google", + "signIn.providers.google.message": "Mit Google anmelden", + "signIn.providers.oidc.title": "OIDC", + "signIn.providers.oidc.message": "Mit OIDC anmelden", + "signIn.providers.okta.title": "Okta", + "signIn.providers.okta.message": "Mit Okta anmelden", + "signIn.providers.onelogin.title": "OneLogin", + "signIn.providers.onelogin.message": "Mit OneLogin anmelden", + "signIn.providers.saml.title": "SAML", + "signIn.providers.saml.message": "Mit SAML anmelden", + "catalog.entityPage.overview.title": "Übersicht", + "catalog.entityPage.topology.title": "Topologie", + "catalog.entityPage.issues.title": "Probleme", + "catalog.entityPage.pullRequests.title": "Pull-/Merge-Anforderungen", + "catalog.entityPage.ci.title": "CI", + "catalog.entityPage.cd.title": "CD", + "catalog.entityPage.kubernetes.title": "Kubernetes", + "catalog.entityPage.imageRegistry.title": "Image-Registry", + "catalog.entityPage.monitoring.title": "Monitoring", + "catalog.entityPage.lighthouse.title": "Lighthouse", + "catalog.entityPage.api.title": "API", + "catalog.entityPage.dependencies.title": "Abhängigkeiten", + "catalog.entityPage.docs.title": "Dokumente", + "catalog.entityPage.definition.title": "Definition", + "catalog.entityPage.diagram.title": "Systemdiagramm", + "catalog.entityPage.workflows.title": "Workflows", + "app.scaffolder.title": "Self-Service", + "app.search.title": "Suchen", + "app.search.resultType": "Ergebnistyp", + "app.search.softwareCatalog": "Softwarekatalog", + "app.search.filters.kind": "Art", + "app.search.filters.lifecycle": "Lifecycle", + "app.search.filters.component": "Komponente", + "app.search.filters.template": "Template", + "app.search.filters.experimental": "Experimentell", + "app.search.filters.production": "Produktion", + "app.learningPaths.title": "Lernpfade", + "app.learningPaths.error.title": "Daten konnten nicht abgerufen werden.", + "app.learningPaths.error.unknownError": "Unbekannter Fehler", + "app.userSettings.infoCard.title": "RHDH-Metadaten", + "app.userSettings.infoCard.metadataCopied": "Metadaten in die Zwischenablage kopiert", + "app.userSettings.infoCard.copyMetadata": "Metadaten in die Zwischenablage kopieren", + "app.userSettings.infoCard.showLess": "Weniger anzeigen", + "app.userSettings.infoCard.showMore": "Mehr anzeigen", + "app.errors.contactSupport": "Support kontaktieren", + "app.errors.goBack": "Zurück", + "app.errors.notFound.message": "Wir konnten diese Seite nicht finden.", + "app.errors.notFound.additionalInfo": "Die gesuchte Seite wurde möglicherweise entfernt, umbenannt oder ist vorübergehend nicht verfügbar.", + "app.table.createdAt": "Erstellt um" + } + }, + "scaffolder": { + "en": { + "templateListPage.contentHeader.registerExistingButtonTitle": "Vorhandenes Git-Repository importieren" + } + }, + "search": { + "en": { + "sidebarSearchModal.title": "Suchen" + } + }, + "user-settings": { + "en": { + "sidebarTitle": "Einstellungen" + } + } +} diff --git a/translations/rhdh-es.json b/translations/rhdh-es.json new file mode 100644 index 0000000000..81311de1fa --- /dev/null +++ b/translations/rhdh-es.json @@ -0,0 +1,134 @@ +{ + "catalog": { + "en": { + "indexPage.createButtonTitle": "Autoservicio" + } + }, + "catalog-import": { + "en": { + "defaultImportPage.headerTitle": "Importar un repositorio Git existente", + "importInfoCard.title": "Importar un repositorio Git existente" + } + }, + "core-components": { + "en": { + "table.filter.placeholder": "Todos los resultados", + "table.body.emptyDataSourceMessage": "No hay registros para mostrar", + "table.pagination.firstTooltip": "Primera página", + "table.pagination.labelDisplayedRows": "{from}-{to} de {count}", + "table.pagination.labelRowsSelect": "filas", + "table.pagination.lastTooltip": "Última página", + "table.pagination.nextTooltip": "Página siguiente", + "table.pagination.previousTooltip": "Página anterior", + "table.toolbar.search": "Filtrar", + "alertDisplay.message_one": "({{ count }} mensaje nuevo)", + "alertDisplay.message_other": "({{ count }} mensajes nuevos)", + "table.header.actions": "Acciones", + "oauthRequestDialog.message": "Inicie sesión para permitir que {{appTitle}} acceda a las API e identidades de {{provider}}." + } + }, + "rhdh": { + "en": { + "menuItem.home": "Inicio", + "menuItem.myGroup_one": "Mi grupo", + "menuItem.myGroup_other": "Mis grupos", + "menuItem.catalog": "Catálogo", + "menuItem.apis": "API", + "menuItem.learningPaths": "Rutas de aprendizaje", + "menuItem.selfService": "Autoservicio", + "menuItem.userSettings": "Configuración de usuario", + "menuItem.administration": "Administración", + "menuItem.extensions": "Extensiones", + "menuItem.clusters": "Clústeres", + "menuItem.rbac": "RBAC", + "menuItem.bulkImport": "Importación masiva", + "menuItem.docs": "Documentos", + "menuItem.lighthouse": "Lighthouse", + "menuItem.techRadar": "Tech Radar", + "menuItem.orchestrator": "Orquestador", + "menuItem.adoptionInsights": "Adoption Insights", + "sidebar.menu": "Menú", + "sidebar.home": "Inicio", + "sidebar.homeLogo": "Logotipo de inicio", + "signIn.page.title": "Seleccionar un método de inicio de sesión", + "signIn.providers.auth0.title": "Auth0", + "signIn.providers.auth0.message": "Iniciar sesión con Auth0", + "signIn.providers.atlassian.title": "Atlassian", + "signIn.providers.atlassian.message": "Iniciar sesión con Atlassian", + "signIn.providers.microsoft.title": "Microsoft", + "signIn.providers.microsoft.message": "Iniciar sesión con Microsoft", + "signIn.providers.bitbucket.title": "Bitbucket", + "signIn.providers.bitbucket.message": "Iniciar sesión con Bitbucket", + "signIn.providers.bitbucketServer.title": "Servidor de Bitbucket", + "signIn.providers.bitbucketServer.message": "Iniciar sesión con el servidor de Bitbucket", + "signIn.providers.github.title": "GitHub", + "signIn.providers.github.message": "Iniciar sesión con GitHub", + "signIn.providers.gitlab.title": "GitLab", + "signIn.providers.gitlab.message": "Iniciar sesión con GitLab", + "signIn.providers.google.title": "Google", + "signIn.providers.google.message": "Iniciar sesión con Google", + "signIn.providers.oidc.title": "OIDC", + "signIn.providers.oidc.message": "Iniciar sesión con OIDC", + "signIn.providers.okta.title": "Okta", + "signIn.providers.okta.message": "Iniciar sesión con Okta", + "signIn.providers.onelogin.title": "OneLogin", + "signIn.providers.onelogin.message": "Iniciar sesión con OneLogin", + "signIn.providers.saml.title": "SAML", + "signIn.providers.saml.message": "Iniciar sesión con SAML", + "catalog.entityPage.overview.title": "Visión general", + "catalog.entityPage.topology.title": "Topología", + "catalog.entityPage.issues.title": "Problemas", + "catalog.entityPage.pullRequests.title": "Solicitudes de extracción/fusión", + "catalog.entityPage.ci.title": "CI", + "catalog.entityPage.cd.title": "CD", + "catalog.entityPage.kubernetes.title": "Kubernetes", + "catalog.entityPage.imageRegistry.title": "Registro de imágenes", + "catalog.entityPage.monitoring.title": "Monitoreo", + "catalog.entityPage.lighthouse.title": "Lighthouse", + "catalog.entityPage.api.title": "API", + "catalog.entityPage.dependencies.title": "Dependencias", + "catalog.entityPage.docs.title": "Documentos", + "catalog.entityPage.definition.title": "Definición", + "catalog.entityPage.diagram.title": "Diagrama del sistema", + "catalog.entityPage.workflows.title": "Flujos de trabajo", + "app.scaffolder.title": "Autoservicio", + "app.search.title": "Buscar", + "app.search.resultType": "Tipo de resultado", + "app.search.softwareCatalog": "Catálogo de software", + "app.search.filters.kind": "Tipo", + "app.search.filters.lifecycle": "Ciclo de vida", + "app.search.filters.component": "Componente", + "app.search.filters.template": "Plantilla", + "app.search.filters.experimental": "experimental", + "app.search.filters.production": "producción", + "app.learningPaths.title": "Rutas de aprendizaje", + "app.learningPaths.error.title": "No se pudieron extraer los datos.", + "app.learningPaths.error.unknownError": "Error desconocido", + "app.userSettings.infoCard.title": "Metadatos de RHDH", + "app.userSettings.infoCard.metadataCopied": "Metadatos copiados en el portapapeles", + "app.userSettings.infoCard.copyMetadata": "Copiar metadatos al portapapeles", + "app.userSettings.infoCard.showLess": "Mostrar menos", + "app.userSettings.infoCard.showMore": "Mostrar más", + "app.errors.contactSupport": "Comuníquese con Soporte", + "app.errors.goBack": "Volver", + "app.errors.notFound.message": "No pudimos encontrar esa página", + "app.errors.notFound.additionalInfo": "Es posible que la página que busca se haya eliminado, haya cambiado de nombre o no esté disponible temporalmente.", + "app.table.createdAt": "Creado a" + } + }, + "scaffolder": { + "en": { + "templateListPage.contentHeader.registerExistingButtonTitle": "Importar un repositorio Git existente" + } + }, + "search": { + "en": { + "sidebarSearchModal.title": "Buscar" + } + }, + "user-settings": { + "en": { + "sidebarTitle": "Configuración" + } + } +} From 2574db54c554e52ab34ed8e47be73b72ce7c1449 Mon Sep 17 00:00:00 2001 From: Lokananda Prabhu Date: Thu, 26 Feb 2026 18:40:50 +0530 Subject: [PATCH 2/5] Format de/es translation files Run prettier on updated translation files to satisfy lint checks. Made-with: Cursor --- packages/app/src/translations/core-components/de.ts | 5 +++-- packages/app/src/translations/core-components/es.ts | 2 +- packages/app/src/translations/rhdh/de.ts | 10 +++++++--- packages/app/src/translations/rhdh/es.ts | 13 +++++++++---- .../translations/user-settings/user-settings-de.ts | 2 +- .../translations/user-settings/user-settings-es.ts | 2 +- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/packages/app/src/translations/core-components/de.ts b/packages/app/src/translations/core-components/de.ts index 173948e322..579f37a38e 100644 --- a/packages/app/src/translations/core-components/de.ts +++ b/packages/app/src/translations/core-components/de.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { coreComponentsTranslationRef } from '@backstage/core-components/alpha'; +import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; /** * de translation for core-components. @@ -26,7 +26,8 @@ const de = createTranslationMessages({ full: false, messages: { 'table.filter.placeholder': 'Alle Ergebnisse', - 'table.body.emptyDataSourceMessage': 'Keine Datensätze zum Anzeigen vorhanden', + 'table.body.emptyDataSourceMessage': + 'Keine Datensätze zum Anzeigen vorhanden', 'table.pagination.firstTooltip': 'Erste Seite', 'table.pagination.labelDisplayedRows': '{von}-{bis} von {Anzahl}', 'table.pagination.labelRowsSelect': 'Zeilen', diff --git a/packages/app/src/translations/core-components/es.ts b/packages/app/src/translations/core-components/es.ts index c911ee1c88..2490d6de81 100644 --- a/packages/app/src/translations/core-components/es.ts +++ b/packages/app/src/translations/core-components/es.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { coreComponentsTranslationRef } from '@backstage/core-components/alpha'; +import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; /** * es translation for core-components. diff --git a/packages/app/src/translations/rhdh/de.ts b/packages/app/src/translations/rhdh/de.ts index 59867d20a0..0fefd0de91 100644 --- a/packages/app/src/translations/rhdh/de.ts +++ b/packages/app/src/translations/rhdh/de.ts @@ -15,6 +15,7 @@ */ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; + import { rhdhTranslationRef } from './ref'; /** @@ -99,14 +100,17 @@ const rhdhTranslationDe = createTranslationMessages({ 'app.learningPaths.error.title': 'Daten konnten nicht abgerufen werden.', 'app.learningPaths.error.unknownError': 'Unbekannter Fehler', 'app.userSettings.infoCard.title': 'RHDH-Metadaten', - 'app.userSettings.infoCard.metadataCopied': 'Metadaten in die Zwischenablage kopiert', - 'app.userSettings.infoCard.copyMetadata': 'Metadaten in die Zwischenablage kopieren', + 'app.userSettings.infoCard.metadataCopied': + 'Metadaten in die Zwischenablage kopiert', + 'app.userSettings.infoCard.copyMetadata': + 'Metadaten in die Zwischenablage kopieren', 'app.userSettings.infoCard.showLess': 'Weniger anzeigen', 'app.userSettings.infoCard.showMore': 'Mehr anzeigen', 'app.errors.contactSupport': 'Support kontaktieren', 'app.errors.goBack': 'Zurück', 'app.errors.notFound.message': 'Wir konnten diese Seite nicht finden.', - 'app.errors.notFound.additionalInfo': 'Die gesuchte Seite wurde möglicherweise entfernt, umbenannt oder ist vorübergehend nicht verfügbar.', + 'app.errors.notFound.additionalInfo': + 'Die gesuchte Seite wurde möglicherweise entfernt, umbenannt oder ist vorübergehend nicht verfügbar.', }, }); diff --git a/packages/app/src/translations/rhdh/es.ts b/packages/app/src/translations/rhdh/es.ts index 617d2fbcc4..0ac5fa09d7 100644 --- a/packages/app/src/translations/rhdh/es.ts +++ b/packages/app/src/translations/rhdh/es.ts @@ -15,6 +15,7 @@ */ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; + import { rhdhTranslationRef } from './ref'; /** @@ -55,7 +56,8 @@ const rhdhTranslationEs = createTranslationMessages({ 'signIn.providers.bitbucket.title': 'Bitbucket', 'signIn.providers.bitbucket.message': 'Iniciar sesión con Bitbucket', 'signIn.providers.bitbucketServer.title': 'Servidor de Bitbucket', - 'signIn.providers.bitbucketServer.message': 'Iniciar sesión con el servidor de Bitbucket', + 'signIn.providers.bitbucketServer.message': + 'Iniciar sesión con el servidor de Bitbucket', 'signIn.providers.github.title': 'GitHub', 'signIn.providers.github.message': 'Iniciar sesión con GitHub', 'signIn.providers.gitlab.title': 'GitLab', @@ -99,14 +101,17 @@ const rhdhTranslationEs = createTranslationMessages({ 'app.learningPaths.error.title': 'No se pudieron extraer los datos.', 'app.learningPaths.error.unknownError': 'Error desconocido', 'app.userSettings.infoCard.title': 'Metadatos de RHDH', - 'app.userSettings.infoCard.metadataCopied': 'Metadatos copiados en el portapapeles', - 'app.userSettings.infoCard.copyMetadata': 'Copiar metadatos al portapapeles', + 'app.userSettings.infoCard.metadataCopied': + 'Metadatos copiados en el portapapeles', + 'app.userSettings.infoCard.copyMetadata': + 'Copiar metadatos al portapapeles', 'app.userSettings.infoCard.showLess': 'Mostrar menos', 'app.userSettings.infoCard.showMore': 'Mostrar más', 'app.errors.contactSupport': 'Comuníquese con Soporte', 'app.errors.goBack': 'Volver', 'app.errors.notFound.message': 'No pudimos encontrar esa página', - 'app.errors.notFound.additionalInfo': 'Es posible que la página que busca se haya eliminado, haya cambiado de nombre o no esté disponible temporalmente.', + 'app.errors.notFound.additionalInfo': + 'Es posible que la página que busca se haya eliminado, haya cambiado de nombre o no esté disponible temporalmente.', }, }); diff --git a/packages/app/src/translations/user-settings/user-settings-de.ts b/packages/app/src/translations/user-settings/user-settings-de.ts index 6e476a6dd5..b2d26b4e98 100644 --- a/packages/app/src/translations/user-settings/user-settings-de.ts +++ b/packages/app/src/translations/user-settings/user-settings-de.ts @@ -25,7 +25,7 @@ const de = createTranslationMessages({ ref: userSettingsTranslationRef, full: false, messages: { - 'sidebarTitle': 'Einstellungen', + sidebarTitle: 'Einstellungen', }, }); diff --git a/packages/app/src/translations/user-settings/user-settings-es.ts b/packages/app/src/translations/user-settings/user-settings-es.ts index e0aee9a8a5..736610cb3b 100644 --- a/packages/app/src/translations/user-settings/user-settings-es.ts +++ b/packages/app/src/translations/user-settings/user-settings-es.ts @@ -25,7 +25,7 @@ const es = createTranslationMessages({ ref: userSettingsTranslationRef, full: false, messages: { - 'sidebarTitle': 'Configuración', + sidebarTitle: 'Configuración', }, }); From ad11074f43a12ef0cce6d3a48c2d284b0fe49488 Mon Sep 17 00:00:00 2001 From: Lokananda Prabhu Date: Wed, 4 Mar 2026 14:58:08 +0530 Subject: [PATCH 3/5] Use locale keys in de/es JSONs Replace en locale blocks with de/es in translation JSONs for backstage, community-plugins, and rhdh. Made-with: Cursor --- translations/backstage-de.json | 38 +++++++++++++------------- translations/backstage-es.json | 38 +++++++++++++------------- translations/community-plugins-de.json | 30 ++++++++++---------- translations/community-plugins-es.json | 30 ++++++++++---------- translations/rhdh-de.json | 14 +++++----- translations/rhdh-es.json | 14 +++++----- 6 files changed, 82 insertions(+), 82 deletions(-) diff --git a/translations/backstage-de.json b/translations/backstage-de.json index e827561125..bb04fe4e81 100644 --- a/translations/backstage-de.json +++ b/translations/backstage-de.json @@ -1,6 +1,6 @@ { "api-docs": { - "en": { + "de": { "apiDefinitionCard.error.title": "API konnte nicht abgerufen werden", "apiDefinitionCard.rawButtonTitle": "Roh", "apiDefinitionDialog.closeButtonTitle": "Schließen", @@ -33,7 +33,7 @@ } }, "catalog": { - "en": { + "de": { "aboutCard.createSimilarButtonTitle": "Etwas Ähnliches erstellen", "aboutCard.descriptionField.label": "Beschreibung", "aboutCard.descriptionField.value": "Keine Beschreibung", @@ -115,7 +115,7 @@ } }, "catalog-graph": { - "en": { + "de": { "catalogGraphCard.deepLinkTitle": "Diagramm anzeigen", "catalogGraphCard.title": "Beziehungen", "catalogGraphPage.curveFilter.curveMonotoneX": "Monotone X", @@ -140,7 +140,7 @@ } }, "catalog-import": { - "en": { + "de": { "buttons.back": "Zurück", "defaultImportPage.contentHeaderTitle": "Beginnen Sie mit der Verfolgung Ihrer Komponente in {{appTitle}}", "defaultImportPage.headerTitle": "Vorhandenes Git-Repository importieren", @@ -210,7 +210,7 @@ } }, "catalog-react": { - "en": { + "de": { "catalogFilter.buttonTitle": "Filter", "catalogFilter.title": "Filter", "entityKindPicker.errorMessage": "Fehler beim Laden der Elementarten", @@ -301,7 +301,7 @@ } }, "core-components": { - "en": { + "de": { "alertDisplay.message_one": "({{ count }} neuere Nachricht)", "alertDisplay.message_other": "({{ count }} neuere Nachrichten)", "autoLogout.stillTherePrompt.buttonText": "Ja! Mich nicht abmelden", @@ -360,7 +360,7 @@ } }, "home": { - "en": { + "de": { "addWidgetDialog.title": "Neues Widget zum Dashboard hinzufügen", "customHomepage.noWidgets": "Keine Widgets hinzugefügt. Beginnen Sie, indem Sie auf die Schaltfläche 'Widget hinzufügen' klicken.", "customHomepageButtons.addWidget": "Widget hinzufügen", @@ -390,14 +390,14 @@ } }, "home-react": { - "en": { + "de": { "cardExtension.settingsButtonTitle": "Einstellungen", "settingsModal.closeButtonTitle": "Schließen", "settingsModal.title": "Einstellungen" } }, "kubernetes": { - "en": { + "de": { "entityContent.title": "Kubernetes", "kubernetesContentPage.emptyState.description": "Für {{entityName}} sind auf keinem bekannten Cluster Ressourcen verfügbar.", "kubernetesContentPage.emptyState.title": "Keine Kubernetes-Ressourcen", @@ -407,13 +407,13 @@ } }, "kubernetes-cluster": { - "en": { + "de": { "kubernetesClusterContentPage.permissionAlert.message": "Wenn Sie Kubernetes-Objekte anzeigen möchten, wenden Sie sich an Ihren Portaladministrator, um die Berechtigung 'kubernetes.clusters.read' zu erhalten.", "kubernetesClusterContentPage.permissionAlert.title": "Berechtigung erforderlich" } }, "kubernetes-react": { - "en": { + "de": { "cluster.label": "Cluster", "cluster.noPodsWithErrors": "Keine Pods mit Fehlern", "cluster.pods": "Pods", @@ -495,7 +495,7 @@ } }, "org": { - "en": { + "de": { "groupProfileCard.editIconButtonTitle": "Metadaten bearbeiten", "groupProfileCard.groupNotFound": "Gruppe nicht gefunden", "groupProfileCard.listItemTitle.childGroups": "Untergeordnete Gruppen", @@ -525,7 +525,7 @@ } }, "plugin.notifications": { - "en": { + "de": { "filters.createdAfter.anyTime": "Jederzeit", "filters.createdAfter.label": "Gesendet", "filters.createdAfter.last24h": "Letzte 24 Stunden", @@ -587,7 +587,7 @@ } }, "scaffolder": { - "en": { + "de": { "aboutCard.launchTemplate": "Template starten", "actionsPage.action.examples": "Beispiele", "actionsPage.action.input": "Eingabe", @@ -769,7 +769,7 @@ } }, "scaffolder-react": { - "en": { + "de": { "cardHeader.detailBtnTitle": "Details des Template-Elements anzeigen", "passwordWidget.content": "Dieses Widget ist unsicher. Bitte verwenden Sie ['ui:field: Secret'](https://backstage.io/docs/features/software-templates/writing-templates/#using-secrets) anstelle von 'ui:widget: password'.", "scaffolderPageContextMenu.actionsLabel": "Installierte Aktionen", @@ -791,7 +791,7 @@ } }, "search": { - "en": { + "de": { "searchModal.viewFullResults": "Vollständige Ergebnisse anzeigen", "searchType.accordion.allTitle": "Alle", "searchType.accordion.collapse": "Komprimieren", @@ -802,7 +802,7 @@ } }, "search-react": { - "en": { + "de": { "noResultsDescription": "Leider wurden keine Ergebnisse gefunden", "searchBar.clearButtonTitle": "Löschen", "searchBar.placeholder": "Suchen in {{org}}", @@ -817,12 +817,12 @@ } }, "techdocs": { - "en": { + "de": { "aboutCard.viewTechdocs": "TechDocs ansehen" } }, "user-settings": { - "en": { + "de": { "appearanceCard.title": "Erscheinungsbild", "authProviders.title": "Verfügbare Provider", "defaultProviderSettings.description": "Bietet Authentifizierung für {{provider}}-APIs und -Identitäten", diff --git a/translations/backstage-es.json b/translations/backstage-es.json index 493886e6a3..235ec59817 100644 --- a/translations/backstage-es.json +++ b/translations/backstage-es.json @@ -1,6 +1,6 @@ { "api-docs": { - "en": { + "es": { "apiDefinitionCard.error.title": "No se pudo extraer la API", "apiDefinitionCard.rawButtonTitle": "Sin procesar", "apiDefinitionDialog.closeButtonTitle": "Cerrar", @@ -33,7 +33,7 @@ } }, "catalog": { - "en": { + "es": { "aboutCard.createSimilarButtonTitle": "Crear algo similar", "aboutCard.descriptionField.label": "Descripción", "aboutCard.descriptionField.value": "Sin descripción", @@ -115,7 +115,7 @@ } }, "catalog-graph": { - "en": { + "es": { "catalogGraphCard.deepLinkTitle": "Ver gráfico", "catalogGraphCard.title": "Relaciones", "catalogGraphPage.curveFilter.curveMonotoneX": "Monótona en X", @@ -140,7 +140,7 @@ } }, "catalog-import": { - "en": { + "es": { "buttons.back": "Atrás", "defaultImportPage.contentHeaderTitle": "Comience a hacer un seguimiento de su componente en {{appTitle}}", "defaultImportPage.headerTitle": "Importar un repositorio Git existente", @@ -210,7 +210,7 @@ } }, "catalog-react": { - "en": { + "es": { "catalogFilter.buttonTitle": "Filtros", "catalogFilter.title": "Filtros", "entityKindPicker.errorMessage": "No se pudieron cargar los tipos de entidad", @@ -301,7 +301,7 @@ } }, "core-components": { - "en": { + "es": { "alertDisplay.message_one": "({{ count }} mensaje nuevo)", "alertDisplay.message_other": "({{ count }} mensajes nuevos)", "autoLogout.stillTherePrompt.buttonText": "¡Sí! No cerrar mi sesión", @@ -360,7 +360,7 @@ } }, "home": { - "en": { + "es": { "addWidgetDialog.title": "Agregar nuevo asistente al panel", "customHomepage.noWidgets": "No se agregaron asistentes. Haga clic en el botón \"Agregar asistente\" para comenzar.", "customHomepageButtons.addWidget": "Agregar asistente", @@ -390,14 +390,14 @@ } }, "home-react": { - "en": { + "es": { "cardExtension.settingsButtonTitle": "Configuración", "settingsModal.closeButtonTitle": "Cerrar", "settingsModal.title": "Configuración" } }, "kubernetes": { - "en": { + "es": { "entityContent.title": "Kubernetes", "kubernetesContentPage.emptyState.description": "No hay recursos en ningún clúster conocido para {{entityName}}", "kubernetesContentPage.emptyState.title": "No hay recursos de Kubernetes", @@ -407,13 +407,13 @@ } }, "kubernetes-cluster": { - "en": { + "es": { "kubernetesClusterContentPage.permissionAlert.message": "Para ver los objetos de Kubernetes, comuníquese con el administrador de su portal para que le otorgue el permiso 'kubernetes.clusters.read'.", "kubernetesClusterContentPage.permissionAlert.title": "Permiso requerido" } }, "kubernetes-react": { - "en": { + "es": { "cluster.label": "Clúster", "cluster.noPodsWithErrors": "No hay pods con errores", "cluster.pods": "pods", @@ -495,7 +495,7 @@ } }, "org": { - "en": { + "es": { "groupProfileCard.editIconButtonTitle": "Modificar metadatos", "groupProfileCard.groupNotFound": "No se encontró el grupo", "groupProfileCard.listItemTitle.childGroups": "Grupos secundarios", @@ -525,7 +525,7 @@ } }, "plugin.notifications": { - "en": { + "es": { "filters.createdAfter.anyTime": "Cualquier momento", "filters.createdAfter.label": "Enviadas", "filters.createdAfter.last24h": "Últimas 24 horas", @@ -587,7 +587,7 @@ } }, "scaffolder": { - "en": { + "es": { "aboutCard.launchTemplate": "Plantilla de lanzamiento", "actionsPage.action.examples": "Ejemplos", "actionsPage.action.input": "Entrada", @@ -769,7 +769,7 @@ } }, "scaffolder-react": { - "en": { + "es": { "cardHeader.detailBtnTitle": "Mostrar detalles de la entidad de plantilla", "passwordWidget.content": "Este asistente no es seguro. Utilice [`ui:field: Secret`](https://backstage.io/docs/features/software-templates/writing-templates/#using-secrets) en lugar de `ui:widget: password`", "scaffolderPageContextMenu.actionsLabel": "Acciones instaladas", @@ -791,7 +791,7 @@ } }, "search": { - "en": { + "es": { "searchModal.viewFullResults": "Ver resultados completos", "searchType.accordion.allTitle": "Todos", "searchType.accordion.collapse": "Contraer", @@ -802,7 +802,7 @@ } }, "search-react": { - "en": { + "es": { "noResultsDescription": "Lo sentimos, no se encontraron resultados", "searchBar.clearButtonTitle": "Borrar", "searchBar.placeholder": "Buscar en {{org}}", @@ -817,12 +817,12 @@ } }, "techdocs": { - "en": { + "es": { "aboutCard.viewTechdocs": "Ver TechDocs" } }, "user-settings": { - "en": { + "es": { "appearanceCard.title": "Apariencia", "authProviders.title": "Proveedores disponibles", "defaultProviderSettings.description": "Proporciona autenticación a las API e identidades de {{provider}}", diff --git a/translations/community-plugins-de.json b/translations/community-plugins-de.json index de731488dc..5a3d32b8cc 100644 --- a/translations/community-plugins-de.json +++ b/translations/community-plugins-de.json @@ -1,6 +1,6 @@ { "plugin.acr": { - "en": { + "de": { "page.title": "Azure Container Registry-Repository: {{image}}", "table.searchPlaceholder": "Filter", "table.labelRowsSelect": "Zeilen", @@ -11,14 +11,14 @@ } }, "adr": { - "en": { + "de": { "contentHeaderTitle": "Architecture Decision Records", "failedToFetch": "ADRs konnten nicht abgerufen werden", "notFound": "Keine ADRs gefunden" } }, "announcements": { - "en": { + "de": { "announcementForm.title": "Titel", "announcementForm.excerpt": "Auszug", "announcementForm.active": "Aktiv", @@ -172,7 +172,7 @@ } }, "plugin.argocd": { - "en": { + "de": { "appStatus.appHealthStatus.Healthy": "Fehlerfrei", "appStatus.appHealthStatus.Suspended": "Ausgesetzt", "appStatus.appHealthStatus.Degraded": "Herabgesetzt", @@ -270,7 +270,7 @@ } }, "bookmarks": { - "en": { + "de": { "bookmarkViewer.newTab": "In neuer Registerkarte öffnen", "bookmarkViewer.navButton.next": "Weiter", "bookmarkViewer.navButton.previous": "Zurück", @@ -283,13 +283,13 @@ } }, "flux": { - "en": { + "de": { "fluxContentCard.permissionAlert.title": "Berechtigung erforderlich", "fluxContentCard.permissionAlert.message": "Für Flux-Inhalte ist eine Autorisierung für Kubernetes-Objekte erforderlich. Wenden Sie sich an den Portaladministrator, um die Berechtigungen 'kubernetes.clusters.read' und 'kubernetes.resources.read' zu erhalten." } }, "plugin.jfrog-artifactory": { - "en": { + "de": { "page.title": "JFrog Artifactory-Repository: {{image}}", "table.searchPlaceholder": "Filter", "table.labelRowsSelect": "Zeilen", @@ -304,13 +304,13 @@ } }, "linguist": { - "en": { + "de": { "entityCard.title": "Sprachen", "entityCard.noData": "Für dieses Element liegen derzeit keine Sprachdaten vor." } }, "plugin.nexus-repository-manager": { - "en": { + "de": { "table.title": "Nexus Repository Manager: {{title}}", "table.searchPlaceholder": "Filter", "table.labelRowsSelect": "Zeilen", @@ -327,7 +327,7 @@ } }, "plugin.npm.translation-ref": { - "en": { + "de": { "infoCard.title": "NPM-Paket {{packageName}}", "infoCard.latestVersion": "Neueste Version", "infoCard.publishedAt": "Veröffentlicht am", @@ -356,7 +356,7 @@ } }, "plugin.rbac": { - "en": { + "de": { "page.title": "RBAC", "page.createRole": "Rolle erstellen", "page.editRole": "Rolle bearbeiten", @@ -526,7 +526,7 @@ } }, "plugin.servicenow": { - "en": { + "de": { "page.title": "ServiceNow-Tickets", "page.titleWithCount": "ServiceNow-Tickets ({{count}})", "table.searchPlaceholder": "Suchen", @@ -556,7 +556,7 @@ } }, "sonarqube": { - "en": { + "de": { "title": "SonarQube-Dashboard", "sonarQubeCard.title": "Codequalität", "sonarQubeCard.deepLinkTitle": "Mehr anzeigen", @@ -586,7 +586,7 @@ } }, "tekton": { - "en": { + "de": { "errorPanel.title": "Problem beim Abrufen von Kubernetes-Objekten", "errorPanel.description": "Es gab ein Problem beim Abrufen einiger Kubernetes-Ressourcen für das Element: {{entityName}}. Dies könnte bedeuten, dass die Karte mit den Fehlerberichten nicht ganz korrekt ist.", "permissionAlert.title": "Berechtigung erforderlich", @@ -658,7 +658,7 @@ } }, "plugin.topology": { - "en": { + "de": { "page.title": "Topologie", "page.subtitle": "Visualisierung der Kubernetes-Workload-Topologie", "toolbar.cluster": "Cluster", diff --git a/translations/community-plugins-es.json b/translations/community-plugins-es.json index b33751b781..fc507ef2fa 100644 --- a/translations/community-plugins-es.json +++ b/translations/community-plugins-es.json @@ -1,6 +1,6 @@ { "plugin.acr": { - "en": { + "es": { "page.title": "Repositorio de Azure Container Registry: {{image}}", "table.searchPlaceholder": "Filtrar", "table.labelRowsSelect": "Filas", @@ -11,14 +11,14 @@ } }, "adr": { - "en": { + "es": { "contentHeaderTitle": "Registros de decisiones de arquitectura", "failedToFetch": "No se pudieron extraer ADR", "notFound": "No se encontraron ADR" } }, "announcements": { - "en": { + "es": { "announcementForm.title": "Título", "announcementForm.excerpt": "Fragmento", "announcementForm.active": "Activo", @@ -172,7 +172,7 @@ } }, "plugin.argocd": { - "en": { + "es": { "appStatus.appHealthStatus.Healthy": "En buen estado", "appStatus.appHealthStatus.Suspended": "Suspendida", "appStatus.appHealthStatus.Degraded": "Degradada", @@ -270,7 +270,7 @@ } }, "bookmarks": { - "en": { + "es": { "bookmarkViewer.newTab": "Abrir en nueva pestaña", "bookmarkViewer.navButton.next": "Siguiente", "bookmarkViewer.navButton.previous": "Anterior", @@ -283,13 +283,13 @@ } }, "flux": { - "en": { + "es": { "fluxContentCard.permissionAlert.title": "Permiso requerido", "fluxContentCard.permissionAlert.message": "El contenido de Flux requiere autorización en los objetos de Kubernetes; comuníquese con el administrador de su portal para que le otorgue los permisos 'kubernetes.clusters.read' y 'kubernetes.resources.read'." } }, "plugin.jfrog-artifactory": { - "en": { + "es": { "page.title": "Repositorio de JFrog Artifactory: {{image}}", "table.searchPlaceholder": "Filtrar", "table.labelRowsSelect": "Filas", @@ -304,13 +304,13 @@ } }, "linguist": { - "en": { + "es": { "entityCard.title": "Idiomas", "entityCard.noData": "En la actualidad, no hay datos de idioma para esta entidad." } }, "plugin.nexus-repository-manager": { - "en": { + "es": { "table.title": "Administrador del repositorio de Nexus: {{title}}", "table.searchPlaceholder": "Filtrar", "table.labelRowsSelect": "Filas", @@ -327,7 +327,7 @@ } }, "plugin.npm.translation-ref": { - "en": { + "es": { "infoCard.title": "Paquete NPM {{packageName}}", "infoCard.latestVersion": "Última versión", "infoCard.publishedAt": "Publicado en", @@ -356,7 +356,7 @@ } }, "plugin.rbac": { - "en": { + "es": { "page.title": "RBAC", "page.createRole": "Crear rol", "page.editRole": "Modificar rol", @@ -526,7 +526,7 @@ } }, "plugin.servicenow": { - "en": { + "es": { "page.title": "Tickets de ServiceNow", "page.titleWithCount": "Tickets de ServiceNow ({{count}})", "table.searchPlaceholder": "Buscar", @@ -556,7 +556,7 @@ } }, "sonarqube": { - "en": { + "es": { "title": "Panel de SonarQube", "sonarQubeCard.title": "Calidad del código", "sonarQubeCard.deepLinkTitle": "Ver más", @@ -586,7 +586,7 @@ } }, "tekton": { - "en": { + "es": { "errorPanel.title": "Ocurrió un problema al recuperar objetos de Kubernetes", "errorPanel.description": "Ocurrió un problema al recuperar algunos recursos de Kubernetes para la entidad: {{entityName}}. Esto podría significar que la tarjeta de informe de errores no es completamente precisa.", "permissionAlert.title": "Permiso requerido", @@ -658,7 +658,7 @@ } }, "plugin.topology": { - "en": { + "es": { "page.title": "Topología", "page.subtitle": "Visualización de la topología de la carga de trabajo de Kubernetes", "toolbar.cluster": "Clúster", diff --git a/translations/rhdh-de.json b/translations/rhdh-de.json index cbb7c3d755..0636c460c9 100644 --- a/translations/rhdh-de.json +++ b/translations/rhdh-de.json @@ -1,17 +1,17 @@ { "catalog": { - "en": { + "de": { "indexPage.createButtonTitle": "Self-Service" } }, "catalog-import": { - "en": { + "de": { "defaultImportPage.headerTitle": "Vorhandenes Git-Repository importieren", "importInfoCard.title": "Vorhandenes Git-Repository importieren" } }, "core-components": { - "en": { + "de": { "table.filter.placeholder": "Alle Ergebnisse", "table.body.emptyDataSourceMessage": "Keine Datensätze zum Anzeigen vorhanden", "table.pagination.firstTooltip": "Erste Seite", @@ -28,7 +28,7 @@ } }, "rhdh": { - "en": { + "de": { "menuItem.home": "Startseite", "menuItem.myGroup_one": "Meine Gruppe", "menuItem.myGroup_other": "Meine Gruppen", @@ -117,17 +117,17 @@ } }, "scaffolder": { - "en": { + "de": { "templateListPage.contentHeader.registerExistingButtonTitle": "Vorhandenes Git-Repository importieren" } }, "search": { - "en": { + "de": { "sidebarSearchModal.title": "Suchen" } }, "user-settings": { - "en": { + "de": { "sidebarTitle": "Einstellungen" } } diff --git a/translations/rhdh-es.json b/translations/rhdh-es.json index 81311de1fa..07be78995e 100644 --- a/translations/rhdh-es.json +++ b/translations/rhdh-es.json @@ -1,17 +1,17 @@ { "catalog": { - "en": { + "es": { "indexPage.createButtonTitle": "Autoservicio" } }, "catalog-import": { - "en": { + "es": { "defaultImportPage.headerTitle": "Importar un repositorio Git existente", "importInfoCard.title": "Importar un repositorio Git existente" } }, "core-components": { - "en": { + "es": { "table.filter.placeholder": "Todos los resultados", "table.body.emptyDataSourceMessage": "No hay registros para mostrar", "table.pagination.firstTooltip": "Primera página", @@ -28,7 +28,7 @@ } }, "rhdh": { - "en": { + "es": { "menuItem.home": "Inicio", "menuItem.myGroup_one": "Mi grupo", "menuItem.myGroup_other": "Mis grupos", @@ -117,17 +117,17 @@ } }, "scaffolder": { - "en": { + "es": { "templateListPage.contentHeader.registerExistingButtonTitle": "Importar un repositorio Git existente" } }, "search": { - "en": { + "es": { "sidebarSearchModal.title": "Buscar" } }, "user-settings": { - "en": { + "es": { "sidebarTitle": "Configuración" } } From 84311914047dc3b87457afe19fcbe889863ac32c Mon Sep 17 00:00:00 2001 From: Lokananda Prabhu Date: Wed, 4 Mar 2026 20:47:13 +0530 Subject: [PATCH 4/5] Align translations and local catalog data Move catalog translations into translations folder, normalize locale ordering, update JSON namespaces, and add local catalog entities/config to enable pagination checks. Made-with: Cursor --- .../catalog-import/catalog-import.ts | 2 +- .../app/src/translations/catalog-import/de.ts | 4 -- .../app/src/translations/catalog-import/es.ts | 4 -- .../catalog}/catalog-en.ts | 0 .../catalog}/catalog.ts | 2 +- .../catalog}/de.ts | 2 +- .../catalog}/es.ts | 2 +- .../catalog}/fr.ts | 0 .../catalog}/it.ts | 0 .../catalog}/ja.ts | 0 .../core-components/core-components.ts | 2 +- .../src/translations/core-components/de.ts | 4 -- .../src/translations/core-components/es.ts | 4 -- packages/app/src/translations/rhdh/de.ts | 4 -- packages/app/src/translations/rhdh/es.ts | 4 -- packages/app/src/translations/rhdh/index.ts | 2 +- .../app/src/translations/scaffolder/de.ts | 4 -- .../app/src/translations/scaffolder/es.ts | 4 -- .../src/translations/scaffolder/scaffolder.ts | 2 +- .../app/src/translations/search/search-de.ts | 4 -- .../app/src/translations/search/search-es.ts | 4 -- .../app/src/translations/search/search.ts | 6 +-- .../user-settings/user-settings-de.ts | 4 -- .../user-settings/user-settings-es.ts | 4 -- .../user-settings/user-settings.ts | 6 +-- .../translations/staticTranslationConfigs.ts | 2 +- translations/community-plugins-de.json | 12 +++--- translations/community-plugins-es.json | 12 +++--- translations/rhdh-de.json | 43 ------------------- translations/rhdh-es.json | 43 ------------------- 30 files changed, 26 insertions(+), 160 deletions(-) rename packages/app/src/{components/catalog/translations => translations/catalog}/catalog-en.ts (100%) rename packages/app/src/{components/catalog/translations => translations/catalog}/catalog.ts (100%) rename packages/app/src/{components/catalog/translations => translations/catalog}/de.ts (95%) rename packages/app/src/{components/catalog/translations => translations/catalog}/es.ts (95%) rename packages/app/src/{components/catalog/translations => translations/catalog}/fr.ts (100%) rename packages/app/src/{components/catalog/translations => translations/catalog}/it.ts (100%) rename packages/app/src/{components/catalog/translations => translations/catalog}/ja.ts (100%) diff --git a/packages/app/src/translations/catalog-import/catalog-import.ts b/packages/app/src/translations/catalog-import/catalog-import.ts index 0e17b73945..4a6bddba57 100644 --- a/packages/app/src/translations/catalog-import/catalog-import.ts +++ b/packages/app/src/translations/catalog-import/catalog-import.ts @@ -4,8 +4,8 @@ import { catalogImportTranslationRef } from '@backstage/plugin-catalog-import/al export const catalogImportTranslations = createTranslationResource({ ref: catalogImportTranslationRef, translations: { - en: () => import('./catalog-import-en'), de: () => import('./de'), + en: () => import('./catalog-import-en'), es: () => import('./es'), fr: () => import('./fr'), it: () => import('./it'), diff --git a/packages/app/src/translations/catalog-import/de.ts b/packages/app/src/translations/catalog-import/de.ts index ea2456eafe..c9934589f8 100644 --- a/packages/app/src/translations/catalog-import/de.ts +++ b/packages/app/src/translations/catalog-import/de.ts @@ -17,10 +17,6 @@ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { catalogImportTranslationRef } from '@backstage/plugin-catalog-import/alpha'; -/** - * de translation for catalog-import. - * @public - */ const de = createTranslationMessages({ ref: catalogImportTranslationRef, full: false, diff --git a/packages/app/src/translations/catalog-import/es.ts b/packages/app/src/translations/catalog-import/es.ts index b2661ecae8..bc688dc609 100644 --- a/packages/app/src/translations/catalog-import/es.ts +++ b/packages/app/src/translations/catalog-import/es.ts @@ -17,10 +17,6 @@ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { catalogImportTranslationRef } from '@backstage/plugin-catalog-import/alpha'; -/** - * es translation for catalog-import. - * @public - */ const es = createTranslationMessages({ ref: catalogImportTranslationRef, full: false, diff --git a/packages/app/src/components/catalog/translations/catalog-en.ts b/packages/app/src/translations/catalog/catalog-en.ts similarity index 100% rename from packages/app/src/components/catalog/translations/catalog-en.ts rename to packages/app/src/translations/catalog/catalog-en.ts diff --git a/packages/app/src/components/catalog/translations/catalog.ts b/packages/app/src/translations/catalog/catalog.ts similarity index 100% rename from packages/app/src/components/catalog/translations/catalog.ts rename to packages/app/src/translations/catalog/catalog.ts index ba4f78d730..90db1bd65d 100644 --- a/packages/app/src/components/catalog/translations/catalog.ts +++ b/packages/app/src/translations/catalog/catalog.ts @@ -4,8 +4,8 @@ import { catalogTranslationRef } from '@backstage/plugin-catalog/alpha'; export const catalogTranslations = createTranslationResource({ ref: catalogTranslationRef, translations: { - en: () => import('./catalog-en'), de: () => import('./de'), + en: () => import('./catalog-en'), es: () => import('./es'), fr: () => import('./fr'), it: () => import('./it'), diff --git a/packages/app/src/components/catalog/translations/de.ts b/packages/app/src/translations/catalog/de.ts similarity index 95% rename from packages/app/src/components/catalog/translations/de.ts rename to packages/app/src/translations/catalog/de.ts index ff4f51bc8f..780565e4b4 100644 --- a/packages/app/src/components/catalog/translations/de.ts +++ b/packages/app/src/translations/catalog/de.ts @@ -1,5 +1,5 @@ /* - * Copyright 2024 The Backstage Authors + * Copyright Red Hat, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/packages/app/src/components/catalog/translations/es.ts b/packages/app/src/translations/catalog/es.ts similarity index 95% rename from packages/app/src/components/catalog/translations/es.ts rename to packages/app/src/translations/catalog/es.ts index c2ddd2510e..f5a8568cbf 100644 --- a/packages/app/src/components/catalog/translations/es.ts +++ b/packages/app/src/translations/catalog/es.ts @@ -1,5 +1,5 @@ /* - * Copyright 2024 The Backstage Authors + * Copyright Red Hat, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/packages/app/src/components/catalog/translations/fr.ts b/packages/app/src/translations/catalog/fr.ts similarity index 100% rename from packages/app/src/components/catalog/translations/fr.ts rename to packages/app/src/translations/catalog/fr.ts diff --git a/packages/app/src/components/catalog/translations/it.ts b/packages/app/src/translations/catalog/it.ts similarity index 100% rename from packages/app/src/components/catalog/translations/it.ts rename to packages/app/src/translations/catalog/it.ts diff --git a/packages/app/src/components/catalog/translations/ja.ts b/packages/app/src/translations/catalog/ja.ts similarity index 100% rename from packages/app/src/components/catalog/translations/ja.ts rename to packages/app/src/translations/catalog/ja.ts diff --git a/packages/app/src/translations/core-components/core-components.ts b/packages/app/src/translations/core-components/core-components.ts index 5cfe2a0b04..488f9aa760 100644 --- a/packages/app/src/translations/core-components/core-components.ts +++ b/packages/app/src/translations/core-components/core-components.ts @@ -4,8 +4,8 @@ import { createTranslationResource } from '@backstage/core-plugin-api/alpha'; export const coreComponentsTranslations = createTranslationResource({ ref: coreComponentsTranslationRef, translations: { - en: () => import('./core-components-en'), de: () => import('./de'), + en: () => import('./core-components-en'), es: () => import('./es'), fr: () => import('./fr'), it: () => import('./it'), diff --git a/packages/app/src/translations/core-components/de.ts b/packages/app/src/translations/core-components/de.ts index 579f37a38e..dc883db43a 100644 --- a/packages/app/src/translations/core-components/de.ts +++ b/packages/app/src/translations/core-components/de.ts @@ -17,10 +17,6 @@ import { coreComponentsTranslationRef } from '@backstage/core-components/alpha'; import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; -/** - * de translation for core-components. - * @public - */ const de = createTranslationMessages({ ref: coreComponentsTranslationRef, full: false, diff --git a/packages/app/src/translations/core-components/es.ts b/packages/app/src/translations/core-components/es.ts index 2490d6de81..d21e9a68e9 100644 --- a/packages/app/src/translations/core-components/es.ts +++ b/packages/app/src/translations/core-components/es.ts @@ -17,10 +17,6 @@ import { coreComponentsTranslationRef } from '@backstage/core-components/alpha'; import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; -/** - * es translation for core-components. - * @public - */ const es = createTranslationMessages({ ref: coreComponentsTranslationRef, full: false, diff --git a/packages/app/src/translations/rhdh/de.ts b/packages/app/src/translations/rhdh/de.ts index 0fefd0de91..b5b7955e68 100644 --- a/packages/app/src/translations/rhdh/de.ts +++ b/packages/app/src/translations/rhdh/de.ts @@ -18,10 +18,6 @@ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { rhdhTranslationRef } from './ref'; -/** - * de translation for rhdh. - * @public - */ const rhdhTranslationDe = createTranslationMessages({ ref: rhdhTranslationRef, messages: { diff --git a/packages/app/src/translations/rhdh/es.ts b/packages/app/src/translations/rhdh/es.ts index 0ac5fa09d7..61ceb9ed85 100644 --- a/packages/app/src/translations/rhdh/es.ts +++ b/packages/app/src/translations/rhdh/es.ts @@ -18,10 +18,6 @@ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { rhdhTranslationRef } from './ref'; -/** - * es translation for rhdh. - * @public - */ const rhdhTranslationEs = createTranslationMessages({ ref: rhdhTranslationRef, messages: { diff --git a/packages/app/src/translations/rhdh/index.ts b/packages/app/src/translations/rhdh/index.ts index e48880daa9..a119bfa77f 100644 --- a/packages/app/src/translations/rhdh/index.ts +++ b/packages/app/src/translations/rhdh/index.ts @@ -25,10 +25,10 @@ export const rhdhTranslations = createTranslationResource({ ref: rhdhTranslationRef, translations: { de: () => import('./de') as any, + es: () => import('./es') as any, fr: () => import('./fr') as any, it: () => import('./it') as any, ja: () => import('./ja') as any, - es: () => import('./es') as any, }, }); diff --git a/packages/app/src/translations/scaffolder/de.ts b/packages/app/src/translations/scaffolder/de.ts index 8e3681a14f..b13b9104fc 100644 --- a/packages/app/src/translations/scaffolder/de.ts +++ b/packages/app/src/translations/scaffolder/de.ts @@ -17,10 +17,6 @@ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { scaffolderTranslationRef } from '@backstage/plugin-scaffolder/alpha'; -/** - * de translation for scaffolder. - * @public - */ const de = createTranslationMessages({ ref: scaffolderTranslationRef, full: false, diff --git a/packages/app/src/translations/scaffolder/es.ts b/packages/app/src/translations/scaffolder/es.ts index 822eca63b0..0d7be1b7e3 100644 --- a/packages/app/src/translations/scaffolder/es.ts +++ b/packages/app/src/translations/scaffolder/es.ts @@ -17,10 +17,6 @@ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { scaffolderTranslationRef } from '@backstage/plugin-scaffolder/alpha'; -/** - * es translation for scaffolder. - * @public - */ const es = createTranslationMessages({ ref: scaffolderTranslationRef, full: false, diff --git a/packages/app/src/translations/scaffolder/scaffolder.ts b/packages/app/src/translations/scaffolder/scaffolder.ts index 473ca61bf1..66743f6558 100644 --- a/packages/app/src/translations/scaffolder/scaffolder.ts +++ b/packages/app/src/translations/scaffolder/scaffolder.ts @@ -4,8 +4,8 @@ import { scaffolderTranslationRef } from '@backstage/plugin-scaffolder/alpha'; export const scaffolderTranslations = createTranslationResource({ ref: scaffolderTranslationRef, translations: { - en: () => import('./scaffolder-en'), de: () => import('./de'), + en: () => import('./scaffolder-en'), es: () => import('./es'), fr: () => import('./fr'), it: () => import('./it'), diff --git a/packages/app/src/translations/search/search-de.ts b/packages/app/src/translations/search/search-de.ts index 4927a1cd40..b562b9fafd 100644 --- a/packages/app/src/translations/search/search-de.ts +++ b/packages/app/src/translations/search/search-de.ts @@ -17,10 +17,6 @@ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { searchTranslationRef } from '@backstage/plugin-search/alpha'; -/** - * de translation for search. - * @public - */ const de = createTranslationMessages({ ref: searchTranslationRef, full: false, diff --git a/packages/app/src/translations/search/search-es.ts b/packages/app/src/translations/search/search-es.ts index d596c05f77..95f1cc429e 100644 --- a/packages/app/src/translations/search/search-es.ts +++ b/packages/app/src/translations/search/search-es.ts @@ -17,10 +17,6 @@ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { searchTranslationRef } from '@backstage/plugin-search/alpha'; -/** - * es translation for search. - * @public - */ const es = createTranslationMessages({ ref: searchTranslationRef, full: false, diff --git a/packages/app/src/translations/search/search.ts b/packages/app/src/translations/search/search.ts index e2d1d142f9..13a8d63091 100644 --- a/packages/app/src/translations/search/search.ts +++ b/packages/app/src/translations/search/search.ts @@ -4,11 +4,11 @@ import { searchTranslationRef } from '@backstage/plugin-search/alpha'; export const searchTranslations = createTranslationResource({ ref: searchTranslationRef, translations: { - en: () => import('./search-en'), de: () => import('./search-de'), - fr: () => import('./search-fr'), - ja: () => import('./ja'), + en: () => import('./search-en'), es: () => import('./search-es'), + fr: () => import('./search-fr'), it: () => import('./search-it'), + ja: () => import('./ja'), }, }); diff --git a/packages/app/src/translations/user-settings/user-settings-de.ts b/packages/app/src/translations/user-settings/user-settings-de.ts index b2d26b4e98..f6e0d0926f 100644 --- a/packages/app/src/translations/user-settings/user-settings-de.ts +++ b/packages/app/src/translations/user-settings/user-settings-de.ts @@ -17,10 +17,6 @@ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { userSettingsTranslationRef } from '@backstage/plugin-user-settings/alpha'; -/** - * de translation for user-settings. - * @public - */ const de = createTranslationMessages({ ref: userSettingsTranslationRef, full: false, diff --git a/packages/app/src/translations/user-settings/user-settings-es.ts b/packages/app/src/translations/user-settings/user-settings-es.ts index 736610cb3b..1a1b287f6c 100644 --- a/packages/app/src/translations/user-settings/user-settings-es.ts +++ b/packages/app/src/translations/user-settings/user-settings-es.ts @@ -17,10 +17,6 @@ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha'; import { userSettingsTranslationRef } from '@backstage/plugin-user-settings/alpha'; -/** - * es translation for user-settings. - * @public - */ const es = createTranslationMessages({ ref: userSettingsTranslationRef, full: false, diff --git a/packages/app/src/translations/user-settings/user-settings.ts b/packages/app/src/translations/user-settings/user-settings.ts index bd463e5b37..9438fb99e5 100644 --- a/packages/app/src/translations/user-settings/user-settings.ts +++ b/packages/app/src/translations/user-settings/user-settings.ts @@ -4,11 +4,11 @@ import { userSettingsTranslationRef } from '@backstage/plugin-user-settings/alph export const userSettingsTranslations = createTranslationResource({ ref: userSettingsTranslationRef, translations: { - en: () => import('./user-settings-en'), de: () => import('./user-settings-de'), - fr: () => import('./user-settings-fr'), - ja: () => import('./ja'), + en: () => import('./user-settings-en'), es: () => import('./user-settings-es'), + fr: () => import('./user-settings-fr'), it: () => import('./user-settings-it'), + ja: () => import('./ja'), }, }); diff --git a/packages/app/src/utils/translations/staticTranslationConfigs.ts b/packages/app/src/utils/translations/staticTranslationConfigs.ts index 2a993ebe64..963c80db09 100644 --- a/packages/app/src/utils/translations/staticTranslationConfigs.ts +++ b/packages/app/src/utils/translations/staticTranslationConfigs.ts @@ -21,8 +21,8 @@ import { translationsPluginTranslations, } from '@red-hat-developer-hub/backstage-plugin-translations/alpha'; -import { catalogTranslations } from '../../components/catalog/translations/catalog'; import { catalogImportTranslations } from '../../translations/catalog-import/catalog-import'; +import { catalogTranslations } from '../../translations/catalog/catalog'; import { coreComponentsTranslations } from '../../translations/core-components/core-components'; import { rhdhTranslationRef, rhdhTranslations } from '../../translations/rhdh'; import { scaffolderTranslations } from '../../translations/scaffolder/scaffolder'; diff --git a/translations/community-plugins-de.json b/translations/community-plugins-de.json index 5a3d32b8cc..2af470075d 100644 --- a/translations/community-plugins-de.json +++ b/translations/community-plugins-de.json @@ -10,14 +10,14 @@ "table.columns.manifest": "Manifest" } }, - "adr": { + "plugin.adr": { "de": { "contentHeaderTitle": "Architecture Decision Records", "failedToFetch": "ADRs konnten nicht abgerufen werden", "notFound": "Keine ADRs gefunden" } }, - "announcements": { + "plugin.announcements-react": { "de": { "announcementForm.title": "Titel", "announcementForm.excerpt": "Auszug", @@ -269,7 +269,7 @@ "deploymentSummary.deploymentSummary.columns.healthStatus": "Integritätsstatus" } }, - "bookmarks": { + "plugin.bookmarks": { "de": { "bookmarkViewer.newTab": "In neuer Registerkarte öffnen", "bookmarkViewer.navButton.next": "Weiter", @@ -282,7 +282,7 @@ "entityBookmarksContent.notFound.description": "Fügen Sie den Metadaten Ihres Elements Lesezeichen hinzu, um sie hier anzuzeigen." } }, - "flux": { + "plugin.flux": { "de": { "fluxContentCard.permissionAlert.title": "Berechtigung erforderlich", "fluxContentCard.permissionAlert.message": "Für Flux-Inhalte ist eine Autorisierung für Kubernetes-Objekte erforderlich. Wenden Sie sich an den Portaladministrator, um die Berechtigungen 'kubernetes.clusters.read' und 'kubernetes.resources.read' zu erhalten." @@ -303,7 +303,7 @@ "manifest.sha256": "SHA256" } }, - "linguist": { + "plugin.linguist": { "de": { "entityCard.title": "Sprachen", "entityCard.noData": "Für dieses Element liegen derzeit keine Sprachdaten vor." @@ -555,7 +555,7 @@ "actions.openInServicenow": "In ServiceNow öffnen" } }, - "sonarqube": { + "plugin.sonarqube": { "de": { "title": "SonarQube-Dashboard", "sonarQubeCard.title": "Codequalität", diff --git a/translations/community-plugins-es.json b/translations/community-plugins-es.json index fc507ef2fa..e0737aa8c8 100644 --- a/translations/community-plugins-es.json +++ b/translations/community-plugins-es.json @@ -10,14 +10,14 @@ "table.columns.manifest": "Manifiesto" } }, - "adr": { + "plugin.adr": { "es": { "contentHeaderTitle": "Registros de decisiones de arquitectura", "failedToFetch": "No se pudieron extraer ADR", "notFound": "No se encontraron ADR" } }, - "announcements": { + "plugin.announcements-react": { "es": { "announcementForm.title": "Título", "announcementForm.excerpt": "Fragmento", @@ -269,7 +269,7 @@ "deploymentSummary.deploymentSummary.columns.healthStatus": "Estado" } }, - "bookmarks": { + "plugin.bookmarks": { "es": { "bookmarkViewer.newTab": "Abrir en nueva pestaña", "bookmarkViewer.navButton.next": "Siguiente", @@ -282,7 +282,7 @@ "entityBookmarksContent.notFound.description": "Agregue marcadores a los metadatos de su entidad para verlos aquí." } }, - "flux": { + "plugin.flux": { "es": { "fluxContentCard.permissionAlert.title": "Permiso requerido", "fluxContentCard.permissionAlert.message": "El contenido de Flux requiere autorización en los objetos de Kubernetes; comuníquese con el administrador de su portal para que le otorgue los permisos 'kubernetes.clusters.read' y 'kubernetes.resources.read'." @@ -303,7 +303,7 @@ "manifest.sha256": "sha256" } }, - "linguist": { + "plugin.linguist": { "es": { "entityCard.title": "Idiomas", "entityCard.noData": "En la actualidad, no hay datos de idioma para esta entidad." @@ -555,7 +555,7 @@ "actions.openInServicenow": "Abrir en ServiceNow" } }, - "sonarqube": { + "plugin.sonarqube": { "es": { "title": "Panel de SonarQube", "sonarQubeCard.title": "Calidad del código", diff --git a/translations/rhdh-de.json b/translations/rhdh-de.json index 0636c460c9..32542c1a7b 100644 --- a/translations/rhdh-de.json +++ b/translations/rhdh-de.json @@ -1,32 +1,4 @@ { - "catalog": { - "de": { - "indexPage.createButtonTitle": "Self-Service" - } - }, - "catalog-import": { - "de": { - "defaultImportPage.headerTitle": "Vorhandenes Git-Repository importieren", - "importInfoCard.title": "Vorhandenes Git-Repository importieren" - } - }, - "core-components": { - "de": { - "table.filter.placeholder": "Alle Ergebnisse", - "table.body.emptyDataSourceMessage": "Keine Datensätze zum Anzeigen vorhanden", - "table.pagination.firstTooltip": "Erste Seite", - "table.pagination.labelDisplayedRows": "{von}-{bis} von {Anzahl}", - "table.pagination.labelRowsSelect": "Zeilen", - "table.pagination.lastTooltip": "Letzte Seite", - "table.pagination.nextTooltip": "Nächste Seite", - "table.pagination.previousTooltip": "Vorherige Seite", - "table.toolbar.search": "Filter", - "alertDisplay.message_one": "({{ count }} neuere Nachricht)", - "alertDisplay.message_other": "({{ count }} neuere Nachrichten)", - "table.header.actions": "Aktionen", - "oauthRequestDialog.message": "Melden Sie sich an, um {{appTitle}} Zugriff auf die APIs und Identitäten von {{provider}} zu erlauben." - } - }, "rhdh": { "de": { "menuItem.home": "Startseite", @@ -115,20 +87,5 @@ "app.errors.notFound.additionalInfo": "Die gesuchte Seite wurde möglicherweise entfernt, umbenannt oder ist vorübergehend nicht verfügbar.", "app.table.createdAt": "Erstellt um" } - }, - "scaffolder": { - "de": { - "templateListPage.contentHeader.registerExistingButtonTitle": "Vorhandenes Git-Repository importieren" - } - }, - "search": { - "de": { - "sidebarSearchModal.title": "Suchen" - } - }, - "user-settings": { - "de": { - "sidebarTitle": "Einstellungen" - } } } diff --git a/translations/rhdh-es.json b/translations/rhdh-es.json index 07be78995e..50b58ebca2 100644 --- a/translations/rhdh-es.json +++ b/translations/rhdh-es.json @@ -1,32 +1,4 @@ { - "catalog": { - "es": { - "indexPage.createButtonTitle": "Autoservicio" - } - }, - "catalog-import": { - "es": { - "defaultImportPage.headerTitle": "Importar un repositorio Git existente", - "importInfoCard.title": "Importar un repositorio Git existente" - } - }, - "core-components": { - "es": { - "table.filter.placeholder": "Todos los resultados", - "table.body.emptyDataSourceMessage": "No hay registros para mostrar", - "table.pagination.firstTooltip": "Primera página", - "table.pagination.labelDisplayedRows": "{from}-{to} de {count}", - "table.pagination.labelRowsSelect": "filas", - "table.pagination.lastTooltip": "Última página", - "table.pagination.nextTooltip": "Página siguiente", - "table.pagination.previousTooltip": "Página anterior", - "table.toolbar.search": "Filtrar", - "alertDisplay.message_one": "({{ count }} mensaje nuevo)", - "alertDisplay.message_other": "({{ count }} mensajes nuevos)", - "table.header.actions": "Acciones", - "oauthRequestDialog.message": "Inicie sesión para permitir que {{appTitle}} acceda a las API e identidades de {{provider}}." - } - }, "rhdh": { "es": { "menuItem.home": "Inicio", @@ -115,20 +87,5 @@ "app.errors.notFound.additionalInfo": "Es posible que la página que busca se haya eliminado, haya cambiado de nombre o no esté disponible temporalmente.", "app.table.createdAt": "Creado a" } - }, - "scaffolder": { - "es": { - "templateListPage.contentHeader.registerExistingButtonTitle": "Importar un repositorio Git existente" - } - }, - "search": { - "es": { - "sidebarSearchModal.title": "Buscar" - } - }, - "user-settings": { - "es": { - "sidebarTitle": "Configuración" - } } } From 0610243dd9368303806588c3703ff709329fa52c Mon Sep 17 00:00:00 2001 From: Lokananda Prabhu Date: Wed, 11 Mar 2026 15:26:39 +0530 Subject: [PATCH 5/5] Filter templates before selecting in RBAC test Use the search input to narrow templates to Greeting Test Picker for more reliable selection. Made-with: Cursor --- .../plugins/orchestrator/orchestrator-entity-rbac.spec.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/e2e-tests/playwright/e2e/plugins/orchestrator/orchestrator-entity-rbac.spec.ts b/e2e-tests/playwright/e2e/plugins/orchestrator/orchestrator-entity-rbac.spec.ts index 8f750161cf..e212c192c4 100644 --- a/e2e-tests/playwright/e2e/plugins/orchestrator/orchestrator-entity-rbac.spec.ts +++ b/e2e-tests/playwright/e2e/plugins/orchestrator/orchestrator-entity-rbac.spec.ts @@ -133,6 +133,9 @@ test.describe.serial("Orchestrator Entity-Workflow RBAC", () => { await uiHelper.selectMuiBox("Kind", "Template"); // Find the "Greeting Test Picker" template (greeting_w_component.yaml) + await page + .getByRole("textbox", { name: "Search" }) + .fill("Greeting Test Picker"); const templateLink = page.getByRole("link", { name: /Greeting Test Picker/i, }); @@ -327,6 +330,9 @@ test.describe.serial("Orchestrator Entity-Workflow RBAC", () => { await uiHelper.selectMuiBox("Kind", "Template"); // Find the "Greeting Test Picker" template (greeting_w_component.yaml) + await page + .getByRole("textbox", { name: "Search" }) + .fill("Greeting Test Picker"); const templateLink = page.getByRole("link", { name: /Greeting Test Picker/i, });