diff --git a/lib/data/models/supported_locale.dart b/lib/data/models/supported_locale.dart index 0d93a50..f0aab98 100644 --- a/lib/data/models/supported_locale.dart +++ b/lib/data/models/supported_locale.dart @@ -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: diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb new file mode 100644 index 0000000..464656d --- /dev/null +++ b/lib/l10n/intl_de.arb @@ -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" +} \ No newline at end of file diff --git a/test/data/models/supported_locale_test.dart b/test/data/models/supported_locale_test.dart index 83f7489..d43fb20 100644 --- a/test/data/models/supported_locale_test.dart +++ b/test/data/models/supported_locale_test.dart @@ -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'); }); }