Skip to content

Commit

Permalink
Added localization support from previous version
Browse files Browse the repository at this point in the history
  • Loading branch information
shyambhongle committed Mar 11, 2024
1 parent 9e58031 commit 4fd50c7
Show file tree
Hide file tree
Showing 131 changed files with 3,342 additions and 4 deletions.
4 changes: 2 additions & 2 deletions App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import {NavigationContainer} from '@react-navigation/native'
import RootNavigator from './src/navigation/RootNavigator'
import {SafeAreaProvider} from 'react-native-safe-area-context'
import {Provider} from 'react-redux'
import store, { persistor } from 'src/store'
import { PersistGate } from 'redux-persist/integration/react'
import store, {persistor} from 'src/store'
import {PersistGate} from 'redux-persist/integration/react'

export default function App() {
return (
Expand Down
3 changes: 2 additions & 1 deletion app.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
"**/*"
],
"plugins": [
"@maplibre/maplibre-react-native"
"@maplibre/maplibre-react-native",
"expo-localization"
],
"ios": {
"supportsTablet": true
Expand Down
1 change: 1 addition & 0 deletions metro.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ module.exports = (() => {
...transformer,
babelTransformerPath: require.resolve("react-native-svg-transformer")
};
config.resolver.sourceExts.push('mjs' );
config.resolver = {
...resolver,
assetExts: resolver.assetExts.filter((ext) => ext !== "svg"),
Expand Down
4 changes: 4 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,14 @@
"@realm/react": "^0.6.2",
"@reduxjs/toolkit": "^2.2.1",
"expo": "~49.0.23",
"expo-localization": "~14.3.0",
"expo-splash-screen": "~0.20.5",
"expo-status-bar": "~1.6.0",
"i18next": "^23.10.1",
"moment": "^2.30.1",
"react": "18.2.0",
"react-native": "0.72.10",
"react-native-dropdown-picker": "^5.4.6",
"react-native-safe-area-context": "4.6.3",
"react-native-screens": "~3.22.0",
"react-native-svg": "13.9.0",
Expand Down
29 changes: 29 additions & 0 deletions src/locales/languages/de/authentication/signUplabels.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"signup": "Vervollständige Anmeldung",
"email": "EMAIL",
"isPrivate": "Ich bin damit einverstanden, dass mein Name auf der Plant-for-the-Planet Website und App veröffentlicht wird.",
"getNews": "Ich bin damit einverstanden, dass ich von der Kinder- und Jugendorganisation Plant-for-the-Planet im Rahmen von Neuigkeiten und Herausforderungen im Zusammenhang mit Baumpflanzungen kontaktiert werden kann.",
"firstname": "VORNAME",
"lastname": "NACHNAME",
"tpo_title": "Wiederaufforstung-Organisation",
"education_title": "Schule",
"signup_confirm": "Bitte bestätige deine Angaben.",
"individual": "Einzelperson",
"company": "Unternehmen",
"tpo_title_organisation": "NAME VON {{roleText}}",
"create_profile": "Profil erstellen",
"city": "STADT",
"address": "ADRESSE",
"zipcode": "PLZ",
"account_type": "Kontotyp",
"select_country": "Land auswählen",
"select_role_type": "Kontotyp auswählen",
"enter_first_name": "Vorname eingeben",
"enter_last_name": "Nachname eingeben",
"enter_city_name": "Stadt eingeben",
"enter_zipcode": "PLZ eingeben",
"enter_address": "Adresse eingeben",
"enter_organisation_name": "Name der Organisation eingeben",
"country": "LAND",
"change": "wechseln"
}
43 changes: 43 additions & 0 deletions src/locales/languages/de/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import SignUp from './authentication/signUplabels.json';
import InitialScreen from './static/initialScreen.json';
import Permission from './static/permission.json';
import WelcomeScreen from './static/welcomeScreen.json';
import DownloadMap from './user/downloadMap.json';
import EditUserProfile from './user/editUserProfilelabels.json';
import InventoryOverview from './user/inventoryOverview.json';
import LocateTree from './user/locateTree.json';
import Logs from './user/logs.json';
import ManageUser from './user/manageUser.json';
import RegisterTree from './user/registerTreeslabels.json';
import SavedAreas from './user/savedAreas.json';
import SelectSpecies from './user/selectSpecies.json';
import MapMarking from './user/mapMarking.json';
import TreeInventory from './user/treeInventory.json';
import Review from './user/treeReview.json';
import SampleTrees from './user/sampleTrees.json';
import SpeciesSyncError from './user/speciesSyncError.json';
import AdditionalData from './user/additionalData.json';
import Projects from './user/projects.json';

export default {
...WelcomeScreen,
...SignUp,
...RegisterTree,
...LocateTree,
...TreeInventory,
...EditUserProfile,
...InventoryOverview,
...DownloadMap,
...ManageUser,
...SavedAreas,
...Permission,
...Review,
...SelectSpecies,
...InitialScreen,
...Logs,
...SampleTrees,
...MapMarking,
...SpeciesSyncError,
...AdditionalData,
...Projects,
};
11 changes: 11 additions & 0 deletions src/locales/languages/de/static/initialScreen.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"updating_species": "Arten aktualisieren",
"running_migration": "Ausführen einer Migration",
"migration_description": "Du hast deine App kürzlich aktualisiert. Bitte schließe die App nicht, da wir Änderungen vornehmen, um die Kompatibilität sicherzustellen.",
"species_data_status": "Statusüberprüfung der Artendatenbank.",
"downloading_archive": "Herunterladen des Artenarchivs.",
"unzipping_archive": "Entpacken des Artenarchivs.",
"fetch_and_add_species_to_database": "Hinzufügen von Arten in die Datenbank.",
"species_data_loaded": "Artendatenbank geladen.",
"please_wait": "Bitte warten ..."
}
10 changes: 10 additions & 0 deletions src/locales/languages/de/static/permission.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"permission_camera_title": "Erlaubnis zur Benutzung der Kamera",
"permission_camera_message": "Wir benötigen deine Erlaubnis zur Verwendung der Kamera.",
"permission_camera_ok": "OK",
"permission_camera_cancel": "Abbrechen",
"storage_permission_android_title": "Erlaubnis zur Speicherung",
"storage_permission_android_message": "App benötigt Zugriff auf den Speicher, um die Datei herunterzuladen",
"storage_permission_denied_header": "Erlaubnis verweigert!",
"storage_permission_denied_sub_header": "Um die geoJSON-Datei zu speichern, must du die Erlaubnis zum Speichern erteilen"
}
15 changes: 15 additions & 0 deletions src/locales/languages/de/static/welcomeScreen.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"login": "Anmelden / Registrieren",
"fetch_all_items": "Lade alle Einträge",
"fetch_necessary_items": "Lade notwendige Einträge",
"tree_mapper": "TreeMapper",
"tree_inventory": "Baumbestand",
"tree_inventory_sub_header": "von Entwürfen und offenen Registrierungen",
"download_maps": "Karten herunterladen",
"download_maps_sub_header": "zur Offline-Verwendung",
"register_tree": "Bäume registrieren",
"loading_content": "Lade Inhalte ...",
"add": "Hinzufügen",
"plots": "Grundstücke",
"map": "Karte"
}
92 changes: 92 additions & 0 deletions src/locales/languages/de/user/additionalData.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
{
"additional_data_form": "Formular",
"additional_data_metadata": "Metadaten",
"select_element": "Element auswählen",
"input": "Eingabe",
"yes_no": "Ja/Nein",
"gap": "Lücke",
"dropdown": "Dropdown",
"formula": "Formel",
"heading": "Überschrift",
"page": "Seite",
"add_field": "Feld hinzufügen",
"advance_mode": "Experten-Modus",
"add_element": "Element hinzufügen",
"update_element": "Element aktualisieren",
"add_input": "Eingabe hinzufügen",
"edit_input": "Eingabe bearbeiten",
"add_dropdown": "Dropdown hinzufügen",
"edit_dropdown": "Dropdown bearbeiten",
"add_heading": "Überschrift hinzufügen",
"edit_heading": "Überschrift bearbeiten",
"add_yes_no": "Ja/Nein hinzufügen",
"edit_yes_no": "Ja/Nein bearbeiten",
"add_gap_element": "Lücke hinzufügen",
"edit_gap_element": "Lücke bearbeiten",
"atleast_1_tree_type_required": "Mindestens ein Baumtyp ist erforderlich",
"atleast_1_registration_type_required": "Mindestens ein Registrierungstyp ist erforderlich",
"field_key_required": "Feldschlüssel ist erforderlich",
"invalid_key_error": "Feldschlüssel kann nur Buchstaben, Zahlen und Sonderzeichen (-, _ und Leerzeichen) enthalten",
"atleast_2_dropdown_option_required": "Mindestens zwei Dropdown-Optionen sind erforderlich",
"field_value_required": "Feldwert ist erforderlich",
"field_name_required": "Feldname ist erforderlich",
"get_started_forms": "Erste Schritte mit Formularen",
"get_started_forms_description": "- Dieses Formular hilft dir, zusätzliche Daten für jede Registrierung zu erfassen.\n- Du kannst die Formularelemente basierend auf dem Baumtyp anpassen, d. h. einzelne, mehrere oder Musterbäume.\n- Du kannst es auch basierend auf dem Ort der Registrierung anpassen, sei es außerhalb des Standorts oder vor Ort.",
"gap_element": "Lücken-Element",
"form_page": "Seite {{pageNo}}",
"loading_form": "Formular laden",
"loading_form_editor": "Formular-Editor laden",
"required_field": "Dies ist erforderlich",
"make_this_public": "Mache diese Daten öffentlich",
"single": "Einzeln",
"sample": "Muster",
"multiple": "Mehrere",
"on_site": "Vor Ort",
"off_site": "Außerhalb der Standorts",
"review": "Überprüfung",
"registrationType": "Typ der Registrierung",
"treeType": "Baumtyp",
"additional_data_field_name": "Feldname",
"additional_data_field_key": "Feldschlüssel",
"additional_data_field_type": "Feldtyp",
"additional_data_heading": "Überschrift",
"additional_data_field_key_placeholder": "Eingabetaste",
"additional_data_field_value": "Feldwert",
"additional_data_field_value_placeholder": "Wert eingeben",
"additional_data_default_value": "Standardwert",
"yes": "Ja",
"no": "Nein",
"dropdown_options": "Dropdown-Optionen",
"add_dropdown_option": "Dropdown-Option hinzufügen",
"text": "Text",
"number": "Nummer",
"all": "Alle",
"default_value_only_number": "Standardwert kann nur eine Zahl sein",
"create_metadata": "Metadaten erstellen",
"get_started_metadata": "Erste Schritte mit Metadaten",
"get_started_metadata_description": "- Hier kannst du die Daten hinzufügen, die in alle Baumregistrierungen aufgenommen werden sollen.\n- Du kannst als Zugriffsart für die einzelnen Daten festlegen, ob sie öffentlich oder privat sein können.",
"invalid_number_input": "Nur Zahlen sind erlaubt",
"add_metadata": "Metadaten hinzufügen",
"import_data": "Importieren",
"import_data_desc": "Importieren von Daten aus einer vom TreeMapper exportierten Datei",
"export_data": "Exportieren",
"export_data_desc": "Exportiere Daten, um deine Anpassungen zu sichern oder an andere weiterzugeben.",
"export_additional_data_title": "TreeMapper Zusatzdaten exportieren",
"export_additional_data_message": "JSON-Datei, um TreeMapper-Zusatzdaten mit wenigen Klicks in die App zu importieren.",
"share_additional_data_error": "Derzeit können die Zusatzdaten nicht geteilt werden.",
"create_form": "Formular erstellen",
"import_file_error": "Datei kann im Moment nicht importiert werden.",
"confirm_wipe_additional_data_import": "Daten löschen und importieren",
"current_additional_data_lost": "Alle aktuellen Daten in Formularen und Metadaten gehen verloren, um neue Daten zu importieren. Davon sind auch die unvollständigen Registrierungen betroffen. Bist du sicher, dass du fortfahren möchtest?",
"incorrect_format_additional_data_import": "Das Dateiformat stimmt nicht mit dem erforderlichen Format überein.",
"incorrect_file_format": "Falsches Dateiformat",
"do_you_want_to_delete_page": "Möchtest du die Seite {{pageTitle}} löschen?",
"import_export_data": "Daten importieren/exportieren",
"import_export_data_desc": "Du kannst eine vom TreeMapper exportierte Datei importieren oder deine Formular-Daten durch Exportieren speichern.",
"importing_additional_data": "Importieren zusätzlicher Daten für deine Formulare.\nDies kann einige Zeit in Anspruch nehmen",
"public": "Öffentlich",
"private": "Privat",
"app": "App",
"no_additional_data_available": "Keine zusätzlichen Daten verfügbar",
"no_form_redirect_next_screen": "Keine Formulardaten vorhanden.\nWeiterleitung zum nächsten Bildschirm."
}
10 changes: 10 additions & 0 deletions src/locales/languages/de/user/downloadMap.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"download_map_complete": "Karten-Download abgeschlossen",
"download_map_area": "Diesen Bereich herunterladen?",
"download_map": "Herunterladen",
"download_map_view": "Alle anzeigen",
"download_map_area_failed": "Die Karte konnte nicht geladen werden. Bitte versuche es später noch einmal.",
"download_map_area_exists": "Diese Karte wurde bereits heruntergeladen.",
"network_error": "Netzwerkfehler",
"network_error_message": "Keine Internetverbindung. Bitte versuche es später noch einmal."
}
23 changes: 23 additions & 0 deletions src/locales/languages/de/user/editUserProfilelabels.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"edit_profile": "Profil bearbeiten",
"logout": "Abmelden",
"logout_anyway": "Trotzdem abmelden",
"privacy_policy": "Datenschutzerklärung",
"terms_of_service": "AGB",
"imprint": "Impressum",
"legal_docs": "Rechtliches",
"open_source_license": "Open Source Lizenzen",
"edit": "Bearbeiten",
"manage_offline": "Offlinekarten verwalten",
"manage_species": "Arten verwalten",
"activity_logging": "Aktivität aufzeichnen",
"activity_logs": "Aktivitäten",
"all_backed_up": "Alle Änderungen gesichert",
"upload_pending": "{{count}} ausstehend",
"sync_remaining": "Synchronisiere - {{count}} verbleibend",
"support": "Unterstützung",
"complete_signup": "Registrierung vervollständigen",
"manage_projects": "Projekte verwalten",
"additional_data": "Zusätzliche Daten",
"login_signup": "Einloggen / Anmelden"
}
28 changes: 28 additions & 0 deletions src/locales/languages/de/user/inventoryOverview.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"inventory_overview_polygon_left_text": "Standorttyp: {{locationType}}",
"inventory_overview_title_coordinates": "Koordinaten {{alphabetindex}}",
"inventory_overview_view_location": "Standort anschauen",
"inventory_overview_select_species": "Wähle mindestens eine Art",
"inventory_overview_view_loc_modal_header": "Standort {{locationTitle}}",
"inventory_overview_loc": "{{locationTitle}}",
"inventory_overview_export_json_error": "GeoJSON Datei konnte nicht exportiert werden.",
"inventory_overview_export_json_success": "GeoJSON Datei wurde erfolgreich exportiert.",
"inventory_overview_export_json_message": "Wähle das Ziel für den Export",
"inventory_overview_export_json_title": "GeoJSON-Export",
"inventory_overview_add_species": "Gepflanzte Arten",
"inventory_overview_add_sample_tree": "Musterbäume",
"inventory_overview_header_text": "Überprüfung",
"inventory_overview_sub_header": "Bäume werden zu deinem Bestand hinzugefügt, um sie zu synchronisieren, wenn du Internet hast.",
"inventory_overview_left_text": "Pflanzdatum",
"inventory_overview_left_text_planted_species": "Gepflanzte Arten",
"inventory_overview_loc_left_text": "{{item.aliases}}",
"inventory_overview_loc_right_text": "{{item.treeCount}} Bäume",
"inventory_overview_loc_export_json": "GeoJson exportieren",
"inventory_overview_loc_next_tree": "Nächster Baum",
"inventory_overview_loc_save": "Speichern",
"inventory_overview_date": "{{date, ll}}",
"inventory_overview_cancel": "Abbrechen",
"inventory_overview_confirm": "Bestätigen",
"inventory_overview_pick_a_date": "Wähle ein Datum",
"error_saving_inventory": "Fehler beim Speichern des Bestands"
}
29 changes: 29 additions & 0 deletions src/locales/languages/de/user/locateTree.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"locate_tree_header": "Bäume lokalisieren",
"locate_tree_heading": "Vor Ort (bevorzugt)",
"locate_tree_sub_heading": "Sammelt Polygone und Bilder für hohe Genauigkeit und Überprüfbarkeit",
"locate_tree_off_site": "Off Site - Polygon",
"locate_tree_off_site_sub_heading": "Ermittelt Polygon. Am besten zu verwenden, wenn du vom Büro aus registrierst.",
"locate_tree_off_site_point_heading": "Off Site - Punkt",
"locate_tree_off_site_point_sub_heading": "Nur Längen- und Breitengrad",
"locate_tree_geo_json": "GeoJson hochladen",
"info_graphic_header_1": "In Ordnung!",
"info_graphic_sub_header_1": "Gehe nun bitte bis zur nächsten Ecke und tippe auf \"Weiter\", wenn du fertig bist",
"info_graphic_header_2": "Großartig!",
"info_graphic_header_3": "Großartig!",
"info_graphic_sub_header_2": "Gehe nun bitte bis zur nächsten Ecke und tippe auf \"Weiter\", wenn du fertig bist",
"info_graphic_sub_header_3": "Wenn die nächste Ecke dein Startpunkt ist, tippe auf \"Fertig\". Andernfalls gehe bitte bis zur nächsten Ecke.",
"locate_tree_map_marking_sub_header": "Bitte besuche die erste Ecke der Plantage und wähle deinen Standort",
"locate_tree_add_marker_valid": "Du befindest dich am selben Ort. Bitte gehe zum nächsten Standort.",
"locate_tree_add_marker_invalid": "Du bist sehr weit von deinem derzeitigen Standort entfernt.",
"locate_tree_cannot_mark_location": "Kann diese Stelle nicht markieren.",
"locate_tree_alphabets": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"locate_tree_location": "Standort",
"locate_tree_cannot_record_tree": "Musterbaum konnte nicht erfasst werden",
"locate_tree_cannot_record_tree_outside_polygon": "Der Musterbaum kann nur innerhalb der markierten Stelle aufgenommen werden.",
"locate_tree_unable_to_retrieve_location": "Standort kann nicht abgerufen werden.",
"distance_more_than_100_meter": "Die aktuelle Position der Markierung ist mehr als 100 Meter von den ursprünglichen Koordinaten entfernt.",
"cannot_update_polygon": "Polygon kann nicht aktualisiert werden!",
"sample_trees_outside_polygon": "Die Musterbäume sind außerhalb des Polygons. Bitte überprüfe und aktualisiere das Polygon.",
"cannot_mark_sample_tree_under_distance": "Es kann kein Musterbaum markiert werden, der weniger als 30 cm von einem anderen Musterbaum entfernt ist."
}
9 changes: 9 additions & 0 deletions src/locales/languages/de/user/logs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"logs_page_title": "Aktivitäten anschauen",
"logs_all": "Alle",
"logs_errors": "Fehler",
"logs_date": "{{date, YYYY-MM-DD hh:mm:ss}}",
"share_activity_logs_title": "Aktivitäten teilen",
"share_logs_file_name": "TreeMapper v{{version}} Logs",
"creating_logs_file_share": "Erzeuge Logdatei zum Teilen.\n Das kann eine Weile dauern."
}
4 changes: 4 additions & 0 deletions src/locales/languages/de/user/manageUser.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"manage_user_header": "Benutzer verwalten",
"manage_user_sub_header": "Liste aller Benutzer, die du zur Nutzung des Baumbestands eingeladen hast"
}
26 changes: 26 additions & 0 deletions src/locales/languages/de/user/mapMarking.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"permission_blocked": "Zugriffsberechtigung gesperrt",
"permission_blocked_message": "Du musst uns Zugriff auf deinen Standort erlauben, um einen Baum vor Ort zu registrieren.",
"open_settings": "Einstellungen öffnen",
"back": "Zurück",
"ok": "OK",
"permission_denied": "Zugriffsberechtigung verweigert",
"permission_denied_message": "Du musst uns Zugriff auf deinen Standort erlauben, um einen Baum vor Ort zu registrieren.",
"gps_accuracy": "GPS-Genauigkeit",
"accuracy_info": "So verbesserst du deine GPS-Genauigkeit:\n1. Stelle sicher, dass du im Freien bist.\n2. Gehe ein wenig herum.\nTreeMapper funktioniert nur richtig, wenn der Standort auf 30 Meter genau ist.",
"green": "Grün",
"green_info": "= Auf 10 Meter genau.",
"yellow": "Gelb",
"yellow_info": "= Auf 30 Meter genau.",
"red": "Rot",
"red_info": "= Mehr als 30 Meter.",
"close": "Schließen",
"poor_accuracy": "Schlechte Genauigkeit",
"poor_accuracy_message": "Deine Standortgenauigkeit ist SCHLECHT, was nicht empfehlenswert ist. Bist du sicher, dass du fortfahren möchtest?",
"try_again": "Erneut versuchen",
"continue": "Weiter",
"location_service": "Standortbestimmung",
"location_service_message": "Die Standorteinstellungen sind nicht ausreichend. Bitte vergewissere dich, dass du der App die Standortberechtigung erteilt und GPS eingeschaltet hast.",
"cancel": "Abbrechen",
"need_location_permission_to_continue": "Eine Standortfreigabe ist erforderlich um fortzufahren."
}
Loading

0 comments on commit 4fd50c7

Please sign in to comment.