1
Fork 0

Merge pull request #330 from robin-moser/add-german-translation

Add german translation
This commit is contained in:
Viktor Strate Kløvedal 2021-04-20 10:18:47 +02:00 committed by GitHub
commit 98c1722dcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 268 additions and 2 deletions

View File

@ -1849,6 +1849,7 @@ enum LanguageTranslation {
Danish,
Spanish,
Polish,
German,
}
type UserPreferences {

View File

@ -78,6 +78,7 @@ const (
LanguageTranslationDanish LanguageTranslation = "Danish"
LanguageTranslationSpanish LanguageTranslation = "Spanish"
LanguageTranslationPolish LanguageTranslation = "Polish"
LanguageTranslationGerman LanguageTranslation = "German"
)
var AllLanguageTranslation = []LanguageTranslation{
@ -88,11 +89,12 @@ var AllLanguageTranslation = []LanguageTranslation{
LanguageTranslationDanish,
LanguageTranslationSpanish,
LanguageTranslationPolish,
LanguageTranslationGerman,
}
func (e LanguageTranslation) IsValid() bool {
switch e {
case LanguageTranslationEnglish, LanguageTranslationFrench, LanguageTranslationItalian, LanguageTranslationSwedish, LanguageTranslationDanish, LanguageTranslationSpanish, LanguageTranslationPolish:
case LanguageTranslationEnglish, LanguageTranslationFrench, LanguageTranslationItalian, LanguageTranslationSwedish, LanguageTranslationDanish, LanguageTranslationSpanish, LanguageTranslationPolish, LanguageTranslationGerman:
return true
}
return false

View File

@ -229,6 +229,7 @@ enum LanguageTranslation {
Danish,
Spanish,
Polish,
German,
}
type UserPreferences {

View File

@ -11,6 +11,7 @@ export enum LanguageTranslation {
Danish = 'Danish',
English = 'English',
French = 'French',
German = 'German',
Italian = 'Italian',
Polish = 'Polish',
Spanish = 'Spanish',

View File

@ -13,7 +13,7 @@ module.exports = function (api) {
plugins.push([
'i18next-extract',
{
locales: ['en', 'da', 'fr', 'sv', 'es', 'it', 'pl'],
locales: ['en', 'da', 'fr', 'sv', 'es', 'it', 'pl', 'de'],
defaultValue: null,
},
])

View File

@ -0,0 +1,254 @@
{
"album_filter": {
"only_favorites": "Nur Favoriten anzeigen",
"sort_by": "Sortieren nach",
"sorting_options": {
"date_imported": "Importdatum",
"date_shot": "Aufnahmedatum",
"title": "Titel",
"type": "Typ"
}
},
"albums_page": {
"title": "Alben"
},
"general": {
"action": {
"add": "Hinzufügen",
"cancel": "Abbrechen",
"delete": "Löschen",
"more": "Mehr",
"remove": "Entfernen",
"save": "Speichern"
},
"loading": {
"album": "Lade Album",
"default": "Lade...",
"media": "Lade Medien",
"page": "Lade Seite",
"paginate": {
"faces": "Lade mehr Personen",
"media": "Lade mehr Medien"
},
"shares": "Lade Freigaben...",
"timeline": "Lade Timeline"
}
},
"header": {
"search": {
"loading": "Lade Ergebnisse...",
"no_results": "Keine Ergebnisse gefunden",
"placeholder": "Suche",
"result_type": {
"albums": "Alben",
"photos": "Fotos"
}
}
},
"login_page": {
"field": {
"password": "Passwort",
"submit": "Einloggen",
"username": "Benutzername"
},
"initial_setup": {
"field": {
"photo_path": {
"label": "Foto Pfad",
"placeholder": "/pfad/zu/fotos"
},
"submit": "Photoview einrichten"
},
"title": "Einrichtung"
},
"welcome": "Willkommen zu Photoview"
},
"meta": {
"description": "Einfache und nutzerfreundliche Fotogallerie für Homeserver"
},
"people_page": {
"face_group": {
"label_placeholder": "Zuordnung",
"unlabeled": "Nicht zugeordnet"
},
"recognize_unlabeled_faces_button": "Nicht zugeordnete Gesichter erkennen"
},
"photos_page": {
"title": "Fotos"
},
"places_page": {
"title": "Orte"
},
"routes": {
"page_not_found": "Seite nicht gefunden"
},
"settings": {
"concurrent_workers": {
"description": "Die maximale erlaubte Anzahl an gleichzeitig laufenden Scanner Jobs",
"title": "Anzahl an Workern"
},
"logout": "Ausloggen",
"periodic_scanner": {
"checkbox_label": "Kontinuierlichen Scanner aktivieren",
"field": {
"description": "Intervall, in dem automatische Scans aller Nutzer wiederholt werden",
"label": "Intervall - kontinuierlicher Scanner"
},
"interval_unit": {
"days": "Tage",
"hour": "Stunden",
"minutes": "Minuten",
"months": "Monate",
"seconds": "Sekunden"
},
"title": "Kontinuierlicher Scanner"
},
"scanner": {
"description": "Neue und aktualisierte Medien aller Benutzer scannen",
"scan_all_users": "Alle Benutzer scannen",
"title": "Scanner"
},
"user_preferences": {
"change_language": {
"description": "Ändert die Spracheinstellungen der Website für diesen Benutzer",
"label": "Sprache"
},
"language_selector": {
"placeholder": "Sprache auswählen"
},
"title": "Persönliche Einstelungen"
},
"users": {
"add_user": {
"submit": "Benutzer hinzufügen"
},
"confirm_delete_user": {
"action": "Lösche {{user}}",
"description": "<0>Du bist dabei, den Nutzer <1></1> endgültig zu löschen.</0><p>Diese Aktion kann nicht rückgängig gemacht werden. Bist du sicher?</p>",
"title": "Benutzer löschen"
},
"password_reset": {
"description": "Passwort von Benutzer <1></1> aktualisieren",
"form": {
"label": "Neues Passwort",
"placeholder": "Passwort",
"submit": "Passwört aktualisieren"
},
"title": "Passwort aktualisieren"
},
"table": {
"column_names": {
"action": "Aktion",
"admin": "Administrator",
"photo_path": "Pfad der Medien",
"username": "Benutzername"
},
"new_user": "Neuer Benutzer",
"row": {
"action": {
"change_password": "Passwort aktualisieren",
"delete": "Löschen",
"edit": "Bearbeiten",
"scan": "Scannen"
}
}
},
"title": "Benutzer"
}
},
"share_page": {
"media": {
"title": "Freigegebene Medien"
},
"protected_share": {
"description": "Diese Freigabe ist passwortgeschützt.",
"title": "Passwortgeschützte Freigabe"
},
"share_not_found": "Freigabe nicht gefunden",
"share_not_found_description": "Möglicherweise ist die Freigabe abgelaufen oder wurde gelöscht.",
"wrong_password": "Falsches Passwort, bitte erneut probieren."
},
"sidebar": {
"album": {
"title": "Album Optionen"
},
"download": {
"filesize": {
"byte": "{{count}} Byte",
"byte_plural": "{{count}} Bytes",
"giga_byte": "{{count}} GB",
"kilo_byte": "{{count}} KB",
"mega_byte": "{{count}} MB",
"tera_byte": "{{count}} TB"
},
"table_columns": {
"dimensions": "Dimension",
"file_size": "Dateigröße",
"file_type": "Typ",
"name": "Name"
},
"title": "Download"
},
"media": {
"exif": {
"exposure_program": {
"action_program": "Action (kurze Verschlusszeit)",
"aperture_priority": "Blende Priorität",
"bulb": "Glühbirne",
"creative_program": "Creative (lange Verschlusszeit)",
"landscape_mode": "Querformat",
"manual": "Manuell",
"normal_program": "Normalprogramm",
"not_defined": "Nicht definiert",
"portrait_mode": "Hochformat",
"shutter_priority": "Verschlusszeit Priorität"
},
"flash": {
"auto": "Auto",
"did_not_fire": "Nicht gezündet",
"fired": "Gezündet",
"no_flash": "Kein Blitz",
"no_flash_function": "Keine Blitz Funktionalität",
"off": "Aus",
"on": "An",
"red_eye_reduction": "Rote-Augen-Korrektur",
"return_detected": "Reflektion erkannt",
"return_not_detected": "Reflektion nicht erkannt"
},
"name": {
"aperture": "Blende",
"camera": "Kamera",
"date_shot": "Aufnahmedatum",
"exposure": "Belichtung",
"exposure_program": "Programm",
"flash": "Blitz",
"focal_length": "Brennweite",
"iso": "ISO",
"lens": "Objektiv",
"maker": "Hersteller"
}
}
},
"sharing": {
"add_share": "Freigabe hinzufügen",
"copy_link": "Link kopieren",
"no_shares_found": "Keine Freigaben gefunden",
"public_link": "Öffentlicher Link",
"table_header": "Öffentliche Freigabe",
"title": "Freigabeoptionen"
}
},
"sidemenu": {
"albums": "Alben",
"people": "Personen",
"photos": "Fotos",
"places": "Orte",
"settings": "Einstellungen"
},
"title": {
"loading_album": "Lade Album",
"login": "Login",
"people": "Personen",
"settings": "Einstellungen"
}
}

View File

@ -24,6 +24,7 @@ const languagePreferences = [
{ key: 5, text: 'Español', flag: 'es', value: LanguageTranslation.Spanish },
{ key: 6, text: 'polski', flag: 'pl', value: LanguageTranslation.Polish },
{ key: 7, text: 'Italiano', flag: 'it', value: LanguageTranslation.Italian },
{ key: 8, text: 'Deutsch', flag: 'de', value: LanguageTranslation.German },
]
const CHANGE_USER_PREFERENCES = gql`

View File

@ -100,6 +100,12 @@ export const loadTranslations = () => {
i18n.changeLanguage('pl')
})
return
case LanguageTranslation.German:
import('../extractedTranslations/de/translation.json').then(german => {
i18n.addResourceBundle('de', 'translation', german)
i18n.changeLanguage('de')
})
return
}
exhaustiveCheck(language)