Add German Translation (#997)

* Add German Translation

* Fix visibility description

* fix lint

* Registries or Registry

* Update web/src/assets/locales/de.json

* Apply suggestions from code review

Co-authored-by: Anbraten <anton@ju60.de>

* Update web/src/assets/locales/de.json

Co-authored-by: Anbraten <anton@ju60.de>

* Update web/src/assets/locales/de.json

Co-authored-by: Anbraten <anton@ju60.de>
This commit is contained in:
6543 2022-06-21 18:18:02 +02:00 committed by GitHub
parent 415dfb9c46
commit 716d55a370
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 225 additions and 5 deletions

View file

@ -0,0 +1,217 @@
{
"login": "Anmelden",
"welcome": "Willkommen bei Woodpecker",
"repos": "Repos",
"repositories": "Repositories",
"docs": "Docs",
"logout": "Abmelden",
"search": "Suche...",
"username": "Benutzername",
"password": "Passwort",
"url": "URL",
"unknown_error": "Ein unbekannter Fehler ist aufgetreten",
"not_found": {
"not_found": "Whoa 404, entweder haben wir etwas kaputt gemacht oder du hattest einen Tippfehler :-/",
"back_home": "Zurück zum Start"
},
"time": {
"tmpl": "DD.MM.YYYY, HH:mm z",
"weeks_short": "w",
"days_short": "t",
"hours_short": "h",
"min_short": "min",
"sec_short": "sek",
"not_started": "noch nicht gestartet"
},
"repo": {
"activity": "Aktivitäten",
"branches": "Branches",
"add": "Repository hinzufügen",
"user_none": "Diese Organisation / dieser Benutzer hat noch keine Repositories.",
"not_allowed": "Zugriff auf dieses Repository nicht erlaubt",
"enable": {
"reload": "Repositories neu laden",
"enable": "Aktivieren",
"enabled": "Bereits Aktiviert",
"success": "Repository aktiviert",
"list_reloaded": "Repository-Liste neu geladen"
},
"settings": {
"settings": "Einstellungen",
"not_allowed": "Zugriff auf die Einstellungen dieses Repositorys nicht erlaubt",
"general": {
"general": "Allgemein",
"project": "Projekt-Einstellungen",
"save": "Einstellungen speichern",
"success": "Repository-Einstellungen aktualisiert",
"pipeline_path": {
"path": "Pipeline-Pfad",
"default": "Standardmäßig: .woodpecker/*.yml -> .woodpecker.yml -> .drone.yml",
"desc": "Pfad zu deiner Pipeline-Konfiguration (z. B. <span class=\"bg-gray-300 dark:bg-dark-700 rounded-md px-1\">mein/pfad/</span>). Ordner sollten mit einem <span class=\"bg-gray-300 dark:bg-dark-700 rounded-md px-1\">/</span> enden."
},
"allow_pr": {
"allow": "Pull Requests zulassen",
"desc": "Pipelines können für Pull-Requests genutzt werden."
},
"protected": {
"protected": "Geschützt",
"desc": "Jede Pipeline muss genehmigt werden, bevor sie ausgeführt wird."
},
"trusted": {
"trusted": "Vertrauenswürdig",
"desc": "Die zugrundeliegenden Pipeline-Container erhalten Zugriff auf ausgeweitete Funktionen wie z. B. das Einhängen von Volumes."
},
"visibility": {
"visibility": "Sichtbarkeit des Projekts",
"public": {
"public": "Öffentlich",
"desc": "Jeder Benutzer kann Ihr Projekt sehen, ohne eingeloggt zu sein."
},
"private": {
"private": "Privat",
"desc": "Nur du und andere Besitzer des Repositorys können dieses Projekt sehen."
},
"internal": {
"internal": "Intern",
"desc": "Nur authentifizierte Benutzer der Woodpecker-Instanz können dieses Projekt sehen."
}
},
"timeout": {
"timeout": "Zeitlimit",
"minutes": "Minuten"
},
"cancel_prev": {
"cancel": "Breche ältere Pipelines ab",
"desc": "Aktiviere diese Option, um laufende Pipelines desselben Ereignisses und Kontexts abzubrechen, bevor die neue Pipeline startet."
}
},
"secrets": {
"secrets": "Secrets",
"desc": "Secrets können zur Laufzeit als Umgebungsvariablen an einzelne Pipelineschritte übergeben werden.",
"none": "Es gibt noch keine Secrets.",
"add": "Secret hinzufügen",
"save": "Secret speichern",
"show": "Secret anzeigen",
"name": "Name",
"value": "Wert",
"deleted": "Secret gelöscht",
"created": "Secret erstellt",
"saved": "Secret gespeichert",
"images": {
"images": "Verfügbar für folgende Images",
"desc": "Durch Kommata getrennte Liste der Images, für die dieses Secret verfügbar ist; leer lassen, um alle Images zuzulassen"
},
"events": {
"events": "Verfügbar bei folgenden Ereignissen",
"pr_warning": "Sei bitte vorsichtig mit dieser Option, da ein bösartiger Akteur eine bösartigen Pull Request erstellen kann, der deine Secrets preisgibt."
}
},
"registries": {
"registries": "Registries",
"creds": "Zugangsdaten für die Registry",
"desc": "Zugangsdaten für die Registry können hinzugefügt werden, um private Images für Ihre Pipeline zu verwenden.",
"show": "Registries anzeigen",
"add": "Registry hinzufügen",
"none": "Es gibt noch keine Zugangsdaten für die Registry.",
"save": "Registry speichern",
"created": "Registry-Zugangsdaten erstellt",
"saved": "Registry-Zugangsdaten gespeichert",
"deleted": "Registry-Zugangsdaten gelöscht",
"address": {
"address": "Adresse",
"placeholder": "Registry-Adresse (z. B. docker.io)"
}
},
"badge": {
"badge": "Abzeichen",
"url_branch": "URL für bestimmten Branch",
"markdown": "Markdown"
},
"actions": {
"actions": "Aktionen",
"repair": {
"repair": "Repository reparieren",
"success": "Repository repariert"
},
"disable": {
"disable": "Repository deaktivieren",
"success": "Repository deaktiviert"
},
"delete": {
"delete": "Repository löschen",
"confirm": "Alle Daten sind nach dieser Aktion verloren!!!\n\nMöchtest du wirklich fortfahren?",
"success": "Repository gelöscht"
}
}
},
"build": {
"created": "Erstellt",
"tasks": "Vorgänge",
"config": "Konfiguration",
"files": "Geänderte Dateien ({files})",
"no_files": "Es wurden keine Dateien geändert.",
"execution_error": "Ausführungsfehler",
"no_pipelines": "Bisher wurden noch keine Pipelines gestartet.",
"no_pipeline_steps": "Keine Schritte in der Pipeline vorhanden!",
"step_not_started": "Dieser Schritt hat noch nicht begonnen.",
"pipelines_for": "Pipelines für den Branch \"{branch}\"",
"exit_code": "Exit-Code {exitCode}",
"loading": "Laden ...",
"pipeline": "Pipeline #{buildId}",
"actions": {
"cancel": "Abbrechen",
"restart": "Neustarten",
"canceled": "Dieser Schritt wurde abgebrochen.",
"cancel_success": "Pipeline abgebrochen",
"restart_success": "Pipeline neu gestartet"
},
"protected": {
"awaits": "Diese Pipeline wartet auf die Genehmigung durch einen Maintainer!",
"approve": "Genehmigen",
"decline": "Ablehnen",
"declined": "Diese Pipeline ist abgelehnt worden!",
"approve_success": "Pipeline genehmigt",
"decline_success": "Pipeline abgelehnt"
},
"event": {
"push": "Push",
"tag": "Tag",
"pr": "Pull Request",
"deploy": "Deploy"
}
}
},
"user": {
"oauth_error": "Fehler bei der Authentifizierung gegen OAuth-Anbieter",
"internal_error": "Ein interner Fehler ist aufgetreten",
"access_denied": "Du bist nicht berechtigt, dich anzumelden",
"token": "Dein persönlicher Token",
"shell_setup": "Kommandozeilen-Einrichtung",
"api_usage": "Beispiel für die API-Nutzung",
"cli_usage": "Beispiel für die Kommandozeilen-Nutzung",
"dl_cli": "Download Kommando-Zeilen-Tool",
"shell_setup_before": "Führe bitte die Schritte zur Einrichtung der Kommandozeile vorher aus"
}
}

View file

@ -79,11 +79,11 @@
},
"private": {
"private": "Private",
"desc": "Only authenticated users of the Woodpecker instance can see this project."
"desc": "Only you and other owners of the repository can see this project."
},
"internal": {
"internal": "Internal",
"desc": "Only you and other owners of the repository can see this project."
"desc": "Only authenticated users of the Woodpecker instance can see this project."
}
},
@ -94,7 +94,7 @@
"cancel_prev": {
"cancel": "Cancel previous pipelines",
"desc": "Enable to cancel running pipelines of the same event and context before starting the newly triggered one."
"desc": "Enable to cancel pending and running pipelines of the same event and context before starting the newly triggered one."
}
},

View file

@ -79,11 +79,11 @@
},
"private": {
"private": "Privāts",
"desc": "Tikai autorizēti lietotāji var piekļūt šim projektam."
"desc": "Tikai lietotāji, kam ir tiesības uz repozitoriju, var piekļūt šim projektam."
},
"internal": {
"internal": "Iekšējs",
"desc": "Tikai lietotāji, kam ir tiesības uz repozitoriju, var piekļūt šim projektam."
"desc": "Tikai autorizēti lietotāji var piekļūt šim projektam."
}
},

View file

@ -1,5 +1,6 @@
import 'dayjs/locale/en';
import 'dayjs/locale/lv';
import 'dayjs/locale/de';
import dayjs from 'dayjs';
import advancedFormat from 'dayjs/plugin/advancedFormat';

View file

@ -1,10 +1,12 @@
import TimeAgo from 'javascript-time-ago';
import de from 'javascript-time-ago/locale/de.json';
import en from 'javascript-time-ago/locale/en.json';
import lv from 'javascript-time-ago/locale/lv.json';
import { getUserLanguage } from '~/utils/locale';
TimeAgo.addDefaultLocale(en);
TimeAgo.addLocale(de);
TimeAgo.addLocale(lv);
const timeAgo = new TimeAgo(getUserLanguage());