Add German translation (#222)

* l10n: add German translation

* l10n: add German to supported locales

* l10n(german): improve translation of "none"

* l10n(german): change about title

* style: alphabetical sorting of languages
This commit is contained in:
Linus von Drenkmann 2025-03-22 11:23:18 +01:00 committed by GitHub
parent 0e45d98060
commit f0110e0edf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 170 additions and 1 deletions

View file

@ -1,10 +1,12 @@
enum SupportedLocale { en, fr, ru, zh }
enum SupportedLocale { de, en, fr, ru, zh }
extension SupportedLocaleExtension on SupportedLocale {
String get intlName => toString().replaceAll("SupportedLocale.", "");
String get localizedName {
switch (this) {
case SupportedLocale.de:
return 'Deutsch';
case SupportedLocale.en:
return 'English';
case SupportedLocale.fr:

165
lib/l10n/intl_de.arb Normal file
View file

@ -0,0 +1,165 @@
{
"@@locale": "de",
"fastestExposurePair": "Schnellstes",
"slowestExposurePair": "Langsamstes",
"ev": "EV",
"evValue": "{value} EV",
"@evValue": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"iso": "ISO",
"filmSpeed": "Film Empfindlichkeit",
"nd": "ND",
"ndFilterFactor": "Neutraldichtefilter-Faktor",
"noExposurePairs": "Es gibt keine Belichtungspaare für die ausgewählten Einstellungen.",
"noCamerasDetected": "Scheinbar sind keine Kameras an das Gerät angeschlossen.",
"noCameraPermission": "Kamera-Erlaubnis nicht erteilt.",
"otherCameraError": "Beim Verbinden der Kamera ist ein Fehler aufgetreten.",
"none": "Keiner",
"cancel": "Abbrechen",
"select": "Auswählen",
"save": "Speichern",
"settings": "Einstellungen",
"metering": "Messung",
"fractionalStops": "Zwischenstufen",
"showFractionalStops": "Zwischenstufen anzeigen",
"halfStops": "1/2",
"thirdStops": "1/3",
"calibration": "Kalibration",
"calibrationMessage": "Die Genauigkeit der Messungen sind vollständig von der Hardware des Geräts abhängig. Deshalb ist es empfehlenswert diese App zu testen und EV-Kalibrationswerte einzustellen, die korrekte Messungen produzieren.",
"calibrationMessageCameraOnly": "Die Genauigkeit der Messungen sind vollständig von der Kamera des Geräts abhängig. Deshalb ist es empfehlenswert diese App zu testen und EV-Kalibrationswerte einzustellen, die korrekte Messungen produzieren.",
"camera": "Kamera",
"lightSensor": "Lichtsensor",
"showEv100": "EV\u2081\u2080\u2080 anzeigen",
"meteringScreenLayout": "Messansicht Layout",
"meteringScreenLayoutHint": "Verstecke Elemente von der Messansicht, damit sie nicht den Platz für Belichtungspaare verschwenden.",
"meteringScreenLayoutHintEquipmentProfiles": "Ausrüstungsprofil Auswahl",
"meteringScreenFeatureExtremeExposurePairs": "Schnellste & langsamste Belichtungspaare",
"meteringScreenFeatureFilmPicker": "Film Auswahl",
"cameraFeatures": "Kamerafunktionen",
"cameraFeatureSpotMetering": "Punkt-Messung",
"cameraFeatureSpotMeteringHint": "Halte die Kameraansicht gedrückt um den Messpunkt zu entfernen",
"cameraFeatureHistogram": "Histogramm",
"cameraFeatureHistogramHint": "Verwendung des Histogramms kann den Batterieverbrauch erhöhen",
"film": "Film",
"filmPush": "Film (push)",
"filmPull": "Film (pull)",
"filmReciprocityHint": "Korrigiert Belichtungszeiten länger als 1 Sekunde",
"equipmentProfileName": "Ausrüstungsprofilname",
"equipmentProfileNameHint": "Praktica MTL5B",
"equipmentProfileAllValues": "Alle",
"apertureValues": "Blend-Werte",
"apertureValuesFilterDescription": "Wähle die anzuzeigenden Blend-Werte aus. Die Werte sind normalerweise von dem verwendeten Objektiv bestimmt.",
"ndFilters": "ND Filter",
"ndFiltersFilterDescription": "Wähle die anzuzeigenden ND Filter aus. (Beispielsweise die Meistverwendeten)",
"shutterSpeedValues": "Belichtungszeiten",
"shutterSpeedValuesFilterDescription": "Wähle die anzuzeigenden Belichtungszeiten aus. Die Werte sind normalerweise von der Kamera bestimmt.",
"shutterSpeedManualShort": "B",
"shutterSpeedManual": "Manuell",
"isoValues": "ISO Werte",
"isoValuesFilterDescription": "Wähle die anzuzeigenden ISO Werte aus. (Beispielsweise die Meistverwendeten)",
"lensZoom": "Objektiv-Zoom",
"lensZoomDescription": "Wähle den Zoom, relativ zur Handykamera, dass mit dem Sucher der Kamera übereinstimmt.",
"equipmentProfile": "Ausrüstungsprofil",
"equipmentProfiles": "Ausrüstungsprofile",
"tapToAdd": "Tippe zum Hinzufügen",
"general": "Allgemein",
"keepScreenOn": "Bildschirm anbehalten",
"haptics": "Haptik",
"autostartTimer": "Timer auto-starten",
"volumeKeysAction": "Auslösen durch Lautstärketasten",
"language": "Sprache",
"chooseLanguage": "Sprache auswählen",
"theme": "Theme",
"chooseTheme": "Theme auswählen",
"themeLight": "Hell",
"themeDark": "Dunkel",
"themeSystemDefault": "Systemeinstellung",
"dynamicColor": "Dynamische Farbe",
"primaryColor": "Akzentfarbe",
"choosePrimaryColor": "Akzentfarbe auswählen",
"about": "Info",
"restorePurchases": "Käufe wiederherstellen",
"sourceCode": "Source code",
"reportIssue": "Problem melden",
"writeEmail": "Email schreiben",
"youDontHaveMailApp": "Es ist keine Email App installiert.",
"copyEmail": "Email kopieren",
"version": "Version",
"versionNumber": "{version} ({buildNumber})",
"@versionNumber": {
"placeholders": {
"version": {
"type": "String"
},
"buildNumber": {
"type": "String"
}
}
},
"proFeaturesTitle": "Lightmeter Pro",
"getPro": "Pro kaufen",
"featuresFree": "Gratis",
"featuresPro": "Pro",
"proFeaturesPromoText": "Lightmeter Pro liefert alles, was Sie brauchen, um die besten Aufnahmen zu machen!",
"proFeaturesWhatsIncluded": "Was ist enthalten?",
"featureReflectedLightMetering": "Messung von reflektiertem Licht",
"featureIncidentLightMetering": "Messung von einfallendem Licht",
"featureIsoAndNdValues": "Große Auswahl von ISO und ND Filtern",
"featureTheme": "Theme Anpassung",
"featureSpotMetering": "Punktmessung",
"featureHistogram": "Histogramm",
"featureListOfFilms": "Liste von 20+ Filmen mit Reziprozitätsformeln",
"featureCustomFilms": "Eigene Filme erstellen",
"featureEquipmentProfiles": "Ausrüstungsprofile",
"featureTimer": "Eingebauter Timer für Langzeitbelichtungen",
"featureMeteringScreenLayout": "Anpassbare Messansicht",
"proFeaturesSupportText": "Durch den Kauf von Lightmeter Pro unterstützen Sie den Entwickler und ermöglichen das Hinzufügen weiterer Funktionen.",
"getNowFor": "Jetzt für {price} kaufen",
"@getNowFor": {
"price": {
"version": {
"type": "String"
}
}
},
"tooltipAdd": "Hinzufügen",
"tooltipClose": "Schließen",
"tooltipExpand": "Erweitern",
"tooltipCollapse": "Schrumpfen",
"tooltipCopy": "Kopieren",
"tooltipDelete": "Löschen",
"tooltipSelectAll": "Alle auswählen",
"tooltipDesecelectAll": "Keine auswählen",
"tooltipResetToZero": "Auf null zurücksetzen",
"tooltipUseLightSensor": "Lichtsensor verwenden",
"tooltipUseCamera": "Kamera verwenden",
"tooltipOpenSettings": "Einstellungen öffnen",
"exposurePair": "Belichtungspaar",
"whatsnew": "Was ist neu?",
"changesInVersion": "Änderungen in Version {version}:",
"@changesInVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"close": "Schließen",
"films": "Filme",
"filmsInUse": "Verwendete Filme",
"filmsCustom": "Eigene Filme",
"addFilmTitle": "Film hinzufügen",
"editFilmTitle": "Film bearbeiten",
"filmFormula": "Formel",
"filmFormulaExponential": "T=t^Rf",
"filmFormulaExponentialRf": "Rf",
"filmFormulaExponentialRfPlaceholder": "1.3",
"name": "Name",
"addEquipmentProfileTitle": "Ausrüstung hinzufügen",
"editEquipmentProfileTitle": "Ausrüstung bearbeiten"
}

View file

@ -7,6 +7,7 @@ void main() {
expect(SupportedLocale.fr.intlName, 'fr');
expect(SupportedLocale.ru.intlName, 'ru');
expect(SupportedLocale.zh.intlName, 'zh');
expect(SupportedLocale.de.intlName, 'de');
});
test('localizedName', () {
@ -14,5 +15,6 @@ void main() {
expect(SupportedLocale.fr.localizedName, 'Français');
expect(SupportedLocale.ru.localizedName, 'Русский');
expect(SupportedLocale.zh.localizedName, '简体中文');
expect(SupportedLocale.de.localizedName, 'Deutsch');
});
}