From 4fd50c7988422d44e9eba5659996126bb87ed5d7 Mon Sep 17 00:00:00 2001 From: shyambhongle Date: Mon, 11 Mar 2024 12:29:51 +0530 Subject: [PATCH] Added localization support from previous version --- App.tsx | 4 +- app.json | 3 +- metro.config.js | 1 + package.json | 4 + .../de/authentication/signUplabels.json | 29 ++++++ src/locales/languages/de/index.ts | 43 +++++++++ .../languages/de/static/initialScreen.json | 11 +++ .../languages/de/static/permission.json | 10 ++ .../languages/de/static/welcomeScreen.json | 15 +++ .../languages/de/user/additionalData.json | 92 +++++++++++++++++++ .../languages/de/user/downloadMap.json | 10 ++ .../de/user/editUserProfilelabels.json | 23 +++++ .../languages/de/user/inventoryOverview.json | 28 ++++++ src/locales/languages/de/user/locateTree.json | 29 ++++++ src/locales/languages/de/user/logs.json | 9 ++ src/locales/languages/de/user/manageUser.json | 4 + src/locales/languages/de/user/mapMarking.json | 26 ++++++ src/locales/languages/de/user/projects.json | 12 +++ .../de/user/registerTreeslabels.json | 28 ++++++ .../languages/de/user/sampleTrees.json | 12 +++ src/locales/languages/de/user/savedAreas.json | 6 ++ .../languages/de/user/selectSpecies.json | 78 ++++++++++++++++ .../languages/de/user/speciesSyncError.json | 10 ++ .../languages/de/user/treeInventory.json | 42 +++++++++ src/locales/languages/de/user/treeReview.json | 48 ++++++++++ .../en/authentication/signUplabels.json | 29 ++++++ src/locales/languages/en/index.ts | 43 +++++++++ .../languages/en/static/initialScreen.json | 11 +++ .../languages/en/static/permission.json | 10 ++ .../languages/en/static/welcomeScreen.json | 15 +++ .../languages/en/user/additionalData.json | 92 +++++++++++++++++++ .../languages/en/user/downloadMap.json | 10 ++ .../en/user/editUserProfilelabels.json | 25 +++++ .../languages/en/user/inventoryOverview.json | 28 ++++++ src/locales/languages/en/user/locateTree.json | 29 ++++++ src/locales/languages/en/user/logs.json | 9 ++ src/locales/languages/en/user/manageUser.json | 4 + src/locales/languages/en/user/mapMarking.json | 26 ++++++ src/locales/languages/en/user/projects.json | 12 +++ .../en/user/registerTreeslabels.json | 28 ++++++ .../languages/en/user/sampleTrees.json | 12 +++ src/locales/languages/en/user/savedAreas.json | 6 ++ .../languages/en/user/selectSpecies.json | 78 ++++++++++++++++ .../languages/en/user/speciesSyncError.json | 10 ++ .../languages/en/user/treeInventory.json | 51 ++++++++++ src/locales/languages/en/user/treeReview.json | 57 ++++++++++++ .../es/authentication/signUplabels.json | 29 ++++++ src/locales/languages/es/index.ts | 43 +++++++++ .../languages/es/static/initialScreen.json | 11 +++ .../languages/es/static/permission.json | 10 ++ .../languages/es/static/welcomeScreen.json | 13 +++ .../languages/es/user/additionalData.json | 92 +++++++++++++++++++ .../languages/es/user/downloadMap.json | 10 ++ .../es/user/editUserProfilelabels.json | 23 +++++ .../languages/es/user/inventoryOverview.json | 28 ++++++ src/locales/languages/es/user/locateTree.json | 25 +++++ src/locales/languages/es/user/logs.json | 9 ++ src/locales/languages/es/user/manageUser.json | 4 + src/locales/languages/es/user/mapMarking.json | 25 +++++ src/locales/languages/es/user/projects.json | 8 ++ .../es/user/registerTreeslabels.json | 28 ++++++ .../languages/es/user/sampleTrees.json | 12 +++ src/locales/languages/es/user/savedAreas.json | 6 ++ .../languages/es/user/selectSpecies.json | 77 ++++++++++++++++ .../languages/es/user/speciesSyncError.json | 10 ++ .../languages/es/user/treeInventory.json | 31 +++++++ src/locales/languages/es/user/treeReview.json | 38 ++++++++ .../fr/authentication/signUplabels.json | 29 ++++++ src/locales/languages/fr/index.ts | 43 +++++++++ .../languages/fr/static/initialScreen.json | 11 +++ .../languages/fr/static/permission.json | 10 ++ .../languages/fr/static/welcomeScreen.json | 13 +++ .../languages/fr/user/additionalData.json | 92 +++++++++++++++++++ .../languages/fr/user/downloadMap.json | 10 ++ .../fr/user/editUserProfilelabels.json | 23 +++++ .../languages/fr/user/inventoryOverview.json | 28 ++++++ src/locales/languages/fr/user/locateTree.json | 25 +++++ src/locales/languages/fr/user/logs.json | 9 ++ src/locales/languages/fr/user/manageUser.json | 4 + src/locales/languages/fr/user/mapMarking.json | 25 +++++ src/locales/languages/fr/user/projects.json | 8 ++ .../fr/user/registerTreeslabels.json | 28 ++++++ .../languages/fr/user/sampleTrees.json | 12 +++ src/locales/languages/fr/user/savedAreas.json | 6 ++ .../languages/fr/user/selectSpecies.json | 77 ++++++++++++++++ .../languages/fr/user/speciesSyncError.json | 10 ++ .../languages/fr/user/treeInventory.json | 31 +++++++ src/locales/languages/fr/user/treeReview.json | 38 ++++++++ .../it/authentication/signUplabels.json | 29 ++++++ .../languages/it/static/initialScreen.json | 11 +++ .../languages/it/static/permission.json | 10 ++ .../languages/it/static/welcomeScreen.json | 13 +++ .../languages/it/user/additionalData.json | 92 +++++++++++++++++++ .../languages/it/user/downloadMap.json | 10 ++ .../it/user/editUserProfilelabels.json | 23 +++++ .../languages/it/user/inventoryOverview.json | 28 ++++++ src/locales/languages/it/user/locateTree.json | 25 +++++ src/locales/languages/it/user/logs.json | 9 ++ src/locales/languages/it/user/manageUser.json | 4 + src/locales/languages/it/user/mapMarking.json | 25 +++++ src/locales/languages/it/user/projects.json | 8 ++ .../it/user/registerTreeslabels.json | 28 ++++++ .../languages/it/user/sampleTrees.json | 12 +++ src/locales/languages/it/user/savedAreas.json | 6 ++ .../languages/it/user/selectSpecies.json | 77 ++++++++++++++++ .../languages/it/user/speciesSyncError.json | 10 ++ .../languages/it/user/treeInventory.json | 31 +++++++ src/locales/languages/it/user/treeReview.json | 38 ++++++++ src/locales/languages/languages.ts | 68 ++++++++++++++ .../pt-BR/authentication/signUplabels.json | 29 ++++++ src/locales/languages/pt-BR/index.ts | 43 +++++++++ .../languages/pt-BR/static/initialScreen.json | 11 +++ .../languages/pt-BR/static/permission.json | 10 ++ .../languages/pt-BR/static/welcomeScreen.json | 13 +++ .../languages/pt-BR/user/additionalData.json | 92 +++++++++++++++++++ .../languages/pt-BR/user/downloadMap.json | 10 ++ .../pt-BR/user/editUserProfilelabels.json | 23 +++++ .../pt-BR/user/inventoryOverview.json | 28 ++++++ .../languages/pt-BR/user/locateTree.json | 25 +++++ src/locales/languages/pt-BR/user/logs.json | 9 ++ .../languages/pt-BR/user/manageUser.json | 4 + .../languages/pt-BR/user/mapMarking.json | 25 +++++ .../languages/pt-BR/user/projects.json | 8 ++ .../pt-BR/user/registerTreeslabels.json | 28 ++++++ .../languages/pt-BR/user/sampleTrees.json | 12 +++ .../languages/pt-BR/user/savedAreas.json | 6 ++ .../languages/pt-BR/user/selectSpecies.json | 77 ++++++++++++++++ .../pt-BR/user/speciesSyncError.json | 10 ++ .../languages/pt-BR/user/treeInventory.json | 31 +++++++ .../languages/pt-BR/user/treeReview.json | 38 ++++++++ yarn.lock | 31 ++++++- 131 files changed, 3342 insertions(+), 4 deletions(-) create mode 100644 src/locales/languages/de/authentication/signUplabels.json create mode 100644 src/locales/languages/de/index.ts create mode 100644 src/locales/languages/de/static/initialScreen.json create mode 100644 src/locales/languages/de/static/permission.json create mode 100644 src/locales/languages/de/static/welcomeScreen.json create mode 100644 src/locales/languages/de/user/additionalData.json create mode 100644 src/locales/languages/de/user/downloadMap.json create mode 100644 src/locales/languages/de/user/editUserProfilelabels.json create mode 100644 src/locales/languages/de/user/inventoryOverview.json create mode 100644 src/locales/languages/de/user/locateTree.json create mode 100644 src/locales/languages/de/user/logs.json create mode 100644 src/locales/languages/de/user/manageUser.json create mode 100644 src/locales/languages/de/user/mapMarking.json create mode 100644 src/locales/languages/de/user/projects.json create mode 100644 src/locales/languages/de/user/registerTreeslabels.json create mode 100644 src/locales/languages/de/user/sampleTrees.json create mode 100644 src/locales/languages/de/user/savedAreas.json create mode 100644 src/locales/languages/de/user/selectSpecies.json create mode 100644 src/locales/languages/de/user/speciesSyncError.json create mode 100644 src/locales/languages/de/user/treeInventory.json create mode 100644 src/locales/languages/de/user/treeReview.json create mode 100644 src/locales/languages/en/authentication/signUplabels.json create mode 100644 src/locales/languages/en/index.ts create mode 100644 src/locales/languages/en/static/initialScreen.json create mode 100644 src/locales/languages/en/static/permission.json create mode 100644 src/locales/languages/en/static/welcomeScreen.json create mode 100644 src/locales/languages/en/user/additionalData.json create mode 100644 src/locales/languages/en/user/downloadMap.json create mode 100644 src/locales/languages/en/user/editUserProfilelabels.json create mode 100644 src/locales/languages/en/user/inventoryOverview.json create mode 100644 src/locales/languages/en/user/locateTree.json create mode 100644 src/locales/languages/en/user/logs.json create mode 100644 src/locales/languages/en/user/manageUser.json create mode 100644 src/locales/languages/en/user/mapMarking.json create mode 100644 src/locales/languages/en/user/projects.json create mode 100644 src/locales/languages/en/user/registerTreeslabels.json create mode 100644 src/locales/languages/en/user/sampleTrees.json create mode 100644 src/locales/languages/en/user/savedAreas.json create mode 100644 src/locales/languages/en/user/selectSpecies.json create mode 100644 src/locales/languages/en/user/speciesSyncError.json create mode 100644 src/locales/languages/en/user/treeInventory.json create mode 100644 src/locales/languages/en/user/treeReview.json create mode 100644 src/locales/languages/es/authentication/signUplabels.json create mode 100644 src/locales/languages/es/index.ts create mode 100644 src/locales/languages/es/static/initialScreen.json create mode 100644 src/locales/languages/es/static/permission.json create mode 100644 src/locales/languages/es/static/welcomeScreen.json create mode 100644 src/locales/languages/es/user/additionalData.json create mode 100644 src/locales/languages/es/user/downloadMap.json create mode 100644 src/locales/languages/es/user/editUserProfilelabels.json create mode 100644 src/locales/languages/es/user/inventoryOverview.json create mode 100644 src/locales/languages/es/user/locateTree.json create mode 100644 src/locales/languages/es/user/logs.json create mode 100644 src/locales/languages/es/user/manageUser.json create mode 100644 src/locales/languages/es/user/mapMarking.json create mode 100644 src/locales/languages/es/user/projects.json create mode 100644 src/locales/languages/es/user/registerTreeslabels.json create mode 100644 src/locales/languages/es/user/sampleTrees.json create mode 100644 src/locales/languages/es/user/savedAreas.json create mode 100644 src/locales/languages/es/user/selectSpecies.json create mode 100644 src/locales/languages/es/user/speciesSyncError.json create mode 100644 src/locales/languages/es/user/treeInventory.json create mode 100644 src/locales/languages/es/user/treeReview.json create mode 100644 src/locales/languages/fr/authentication/signUplabels.json create mode 100644 src/locales/languages/fr/index.ts create mode 100644 src/locales/languages/fr/static/initialScreen.json create mode 100644 src/locales/languages/fr/static/permission.json create mode 100644 src/locales/languages/fr/static/welcomeScreen.json create mode 100644 src/locales/languages/fr/user/additionalData.json create mode 100644 src/locales/languages/fr/user/downloadMap.json create mode 100644 src/locales/languages/fr/user/editUserProfilelabels.json create mode 100644 src/locales/languages/fr/user/inventoryOverview.json create mode 100644 src/locales/languages/fr/user/locateTree.json create mode 100644 src/locales/languages/fr/user/logs.json create mode 100644 src/locales/languages/fr/user/manageUser.json create mode 100644 src/locales/languages/fr/user/mapMarking.json create mode 100644 src/locales/languages/fr/user/projects.json create mode 100644 src/locales/languages/fr/user/registerTreeslabels.json create mode 100644 src/locales/languages/fr/user/sampleTrees.json create mode 100644 src/locales/languages/fr/user/savedAreas.json create mode 100644 src/locales/languages/fr/user/selectSpecies.json create mode 100644 src/locales/languages/fr/user/speciesSyncError.json create mode 100644 src/locales/languages/fr/user/treeInventory.json create mode 100644 src/locales/languages/fr/user/treeReview.json create mode 100644 src/locales/languages/it/authentication/signUplabels.json create mode 100644 src/locales/languages/it/static/initialScreen.json create mode 100644 src/locales/languages/it/static/permission.json create mode 100644 src/locales/languages/it/static/welcomeScreen.json create mode 100644 src/locales/languages/it/user/additionalData.json create mode 100644 src/locales/languages/it/user/downloadMap.json create mode 100644 src/locales/languages/it/user/editUserProfilelabels.json create mode 100644 src/locales/languages/it/user/inventoryOverview.json create mode 100644 src/locales/languages/it/user/locateTree.json create mode 100644 src/locales/languages/it/user/logs.json create mode 100644 src/locales/languages/it/user/manageUser.json create mode 100644 src/locales/languages/it/user/mapMarking.json create mode 100644 src/locales/languages/it/user/projects.json create mode 100644 src/locales/languages/it/user/registerTreeslabels.json create mode 100644 src/locales/languages/it/user/sampleTrees.json create mode 100644 src/locales/languages/it/user/savedAreas.json create mode 100644 src/locales/languages/it/user/selectSpecies.json create mode 100644 src/locales/languages/it/user/speciesSyncError.json create mode 100644 src/locales/languages/it/user/treeInventory.json create mode 100644 src/locales/languages/it/user/treeReview.json create mode 100644 src/locales/languages/languages.ts create mode 100644 src/locales/languages/pt-BR/authentication/signUplabels.json create mode 100644 src/locales/languages/pt-BR/index.ts create mode 100644 src/locales/languages/pt-BR/static/initialScreen.json create mode 100644 src/locales/languages/pt-BR/static/permission.json create mode 100644 src/locales/languages/pt-BR/static/welcomeScreen.json create mode 100644 src/locales/languages/pt-BR/user/additionalData.json create mode 100644 src/locales/languages/pt-BR/user/downloadMap.json create mode 100644 src/locales/languages/pt-BR/user/editUserProfilelabels.json create mode 100644 src/locales/languages/pt-BR/user/inventoryOverview.json create mode 100644 src/locales/languages/pt-BR/user/locateTree.json create mode 100644 src/locales/languages/pt-BR/user/logs.json create mode 100644 src/locales/languages/pt-BR/user/manageUser.json create mode 100644 src/locales/languages/pt-BR/user/mapMarking.json create mode 100644 src/locales/languages/pt-BR/user/projects.json create mode 100644 src/locales/languages/pt-BR/user/registerTreeslabels.json create mode 100644 src/locales/languages/pt-BR/user/sampleTrees.json create mode 100644 src/locales/languages/pt-BR/user/savedAreas.json create mode 100644 src/locales/languages/pt-BR/user/selectSpecies.json create mode 100644 src/locales/languages/pt-BR/user/speciesSyncError.json create mode 100644 src/locales/languages/pt-BR/user/treeInventory.json create mode 100644 src/locales/languages/pt-BR/user/treeReview.json diff --git a/App.tsx b/App.tsx index 138325dfa..74432c337 100644 --- a/App.tsx +++ b/App.tsx @@ -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 ( diff --git a/app.json b/app.json index 96fb37be7..1d46ed407 100644 --- a/app.json +++ b/app.json @@ -15,7 +15,8 @@ "**/*" ], "plugins": [ - "@maplibre/maplibre-react-native" + "@maplibre/maplibre-react-native", + "expo-localization" ], "ios": { "supportsTablet": true diff --git a/metro.config.js b/metro.config.js index 694028035..891ff6164 100644 --- a/metro.config.js +++ b/metro.config.js @@ -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"), diff --git a/package.json b/package.json index 70d30caaa..444b92915 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/locales/languages/de/authentication/signUplabels.json b/src/locales/languages/de/authentication/signUplabels.json new file mode 100644 index 000000000..68ec6c363 --- /dev/null +++ b/src/locales/languages/de/authentication/signUplabels.json @@ -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" +} \ No newline at end of file diff --git a/src/locales/languages/de/index.ts b/src/locales/languages/de/index.ts new file mode 100644 index 000000000..6f6f570c0 --- /dev/null +++ b/src/locales/languages/de/index.ts @@ -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, +}; diff --git a/src/locales/languages/de/static/initialScreen.json b/src/locales/languages/de/static/initialScreen.json new file mode 100644 index 000000000..07f878b00 --- /dev/null +++ b/src/locales/languages/de/static/initialScreen.json @@ -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 ..." +} \ No newline at end of file diff --git a/src/locales/languages/de/static/permission.json b/src/locales/languages/de/static/permission.json new file mode 100644 index 000000000..9aa15c305 --- /dev/null +++ b/src/locales/languages/de/static/permission.json @@ -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" +} \ No newline at end of file diff --git a/src/locales/languages/de/static/welcomeScreen.json b/src/locales/languages/de/static/welcomeScreen.json new file mode 100644 index 000000000..590a0b7a4 --- /dev/null +++ b/src/locales/languages/de/static/welcomeScreen.json @@ -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" +} diff --git a/src/locales/languages/de/user/additionalData.json b/src/locales/languages/de/user/additionalData.json new file mode 100644 index 000000000..b0b6601a7 --- /dev/null +++ b/src/locales/languages/de/user/additionalData.json @@ -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." +} \ No newline at end of file diff --git a/src/locales/languages/de/user/downloadMap.json b/src/locales/languages/de/user/downloadMap.json new file mode 100644 index 000000000..f4d4077aa --- /dev/null +++ b/src/locales/languages/de/user/downloadMap.json @@ -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." +} \ No newline at end of file diff --git a/src/locales/languages/de/user/editUserProfilelabels.json b/src/locales/languages/de/user/editUserProfilelabels.json new file mode 100644 index 000000000..65ac45f9f --- /dev/null +++ b/src/locales/languages/de/user/editUserProfilelabels.json @@ -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" +} diff --git a/src/locales/languages/de/user/inventoryOverview.json b/src/locales/languages/de/user/inventoryOverview.json new file mode 100644 index 000000000..f1aa1174e --- /dev/null +++ b/src/locales/languages/de/user/inventoryOverview.json @@ -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" +} \ No newline at end of file diff --git a/src/locales/languages/de/user/locateTree.json b/src/locales/languages/de/user/locateTree.json new file mode 100644 index 000000000..e787db733 --- /dev/null +++ b/src/locales/languages/de/user/locateTree.json @@ -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." +} \ No newline at end of file diff --git a/src/locales/languages/de/user/logs.json b/src/locales/languages/de/user/logs.json new file mode 100644 index 000000000..6dd853bec --- /dev/null +++ b/src/locales/languages/de/user/logs.json @@ -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." +} \ No newline at end of file diff --git a/src/locales/languages/de/user/manageUser.json b/src/locales/languages/de/user/manageUser.json new file mode 100644 index 000000000..9a4ea4bc4 --- /dev/null +++ b/src/locales/languages/de/user/manageUser.json @@ -0,0 +1,4 @@ +{ + "manage_user_header": "Benutzer verwalten", + "manage_user_sub_header": "Liste aller Benutzer, die du zur Nutzung des Baumbestands eingeladen hast" +} \ No newline at end of file diff --git a/src/locales/languages/de/user/mapMarking.json b/src/locales/languages/de/user/mapMarking.json new file mode 100644 index 000000000..b854c9d55 --- /dev/null +++ b/src/locales/languages/de/user/mapMarking.json @@ -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." +} \ No newline at end of file diff --git a/src/locales/languages/de/user/projects.json b/src/locales/languages/de/user/projects.json new file mode 100644 index 000000000..f3e147778 --- /dev/null +++ b/src/locales/languages/de/user/projects.json @@ -0,0 +1,12 @@ +{ + "add_new_project": "Neues Projekt hinzufügen", + "add_new_project_desc": "Füge Projekte hinzu, um deine bisherigen Fortschritte zu zeigen oder um Spenden zu erhalten, um noch mehr zu pflanzen.", + "select_project": "Projekt aussuchen", + "select_project_desc": "Bäume, die du registrierst, können mit einem bestimmten Projekt verknüpft werden.", + "continue_without_project": "Weiter ohne Projekt", + "continue_without_project_desc": "Bäume werden nicht mit einem Projekt verbunden.", + "dropdownpicker_placeholder": "Wähle einen Eintrag", + "dropdownpicker_search_placeholder": "Suche nach ...", + "dropdownpicker_selected_items_count": "{count} Einträge wurden ausgewählt", + "dropdownpicker_nothing_to_show": "Keine Einträge gefunden!" +} \ No newline at end of file diff --git a/src/locales/languages/de/user/registerTreeslabels.json b/src/locales/languages/de/user/registerTreeslabels.json new file mode 100644 index 000000000..7dfebde14 --- /dev/null +++ b/src/locales/languages/de/user/registerTreeslabels.json @@ -0,0 +1,28 @@ +{ + "register_trees": "Bäume registrieren", + "register_trees_description": "Tipp: Unvollständige Registrierungen findest du in deinem Baumbestand.", + "tree_registration_type_1": "Einzelner Baum", + "tree_registration_type_2": "Mehrere Bäume", + "tree_registration_type_1_sub_header": "Ermöglicht hochpräzise Messungen", + "tree_registration_type_2_sub_header": "Viele Bäume mit unterschiedlicher Anzahl hinzufügen", + "tree_map_marking_header": "Standort des Baumes", + "tree_map_marking_btn": "Standort wählen & weiter", + "alright_modal_sub_header": "Bitte mache ein Bild, auf dem der ganze Baum sichtbar ist.", + "alright_modal_header": "Zeit für ein Bild!", + "alright_modal_white_btn": "Zurück", + "alright_modal_off_site_sub_header": "Wir sehen, dass du weit weg vom Baum bist. Bitte klicke auf \"Weiter\", um Details über den Baum hinzuzufügen.", + "alright_modal_off_site_header": "Off Site aktiviert!", + "image_capturing_header": "Bild", + "image_capturing_sub_header": "Nimm ein Bild des ganzen Baumes auf", + "image_capturing_required": "Bild ist erforderlich", + "coming_soon": "Demnächst!", + "image_click_picture": "Bild aufnehmen", + "image_retake": "Noch einmal", + "sample_tree_marking_heading": "Musterbaum {{ongoingSampleTreeNumber}} von {{sampleTreesCount}}", + "sample_tree_review_tree_number": "Überprüfe Baum {{ongoingSampleTreeNumber}} von {{sampleTreesCount}}", + "alright_modal_skip": "Überspringen", + "total_trees_header": "Bäume gesamt", + "add_all_trees_planted_on_site": "Bitte füge die Liste aller gepflanzten Bäume an diesem Standort hinzu.", + "select_species_and_add_sample": "Wähle eine der unteren Arten aus und füge einen Musterbaum für diese Art hinzu.", + "select_species": "Arten auswählen" +} \ No newline at end of file diff --git a/src/locales/languages/de/user/sampleTrees.json b/src/locales/languages/de/user/sampleTrees.json new file mode 100644 index 000000000..f4026d9b4 --- /dev/null +++ b/src/locales/languages/de/user/sampleTrees.json @@ -0,0 +1,12 @@ +{ + "sample_trees": "Musterbäume", + "tree": "Baum", + "trees": "Bäume", + "next_step_to_measure_sample_trees_text": "In den nächsten Schritten wirst du gebeten, Muster für gepflanzte Bäume am Standort zu bestimmen.", + "recommend_at_least_sample_trees": "Wir empfehlen, dass du zumindest 10-12 zufällige Musterbäume bestimmst.", + "how_many_sample_trees_to_record": "Wie viele Bäume möchtest du aufzeichnen?", + "invalid_tree_count": "Ungültige Baumzahl", + "enter_valid_tree_count": "Du solltest mindestens 5 und maximal 999 Musterbäume hinzufügen.", + "add_another": "Mehr hinzufügen", + "add_sample_tree": "Musterbaum hinzufügen" +} \ No newline at end of file diff --git a/src/locales/languages/de/user/savedAreas.json b/src/locales/languages/de/user/savedAreas.json new file mode 100644 index 000000000..c975f9275 --- /dev/null +++ b/src/locales/languages/de/user/savedAreas.json @@ -0,0 +1,6 @@ +{ + "save_areas_delete": "Löschen", + "save_areas_header": "Gespeicherte Bereiche", + "save_areas_offline": "Keine Offlinekarte gefunden", + "save_areas_add_area": "Bereich hinzufügen" +} \ No newline at end of file diff --git a/src/locales/languages/de/user/selectSpecies.json b/src/locales/languages/de/user/selectSpecies.json new file mode 100644 index 000000000..9000414e1 --- /dev/null +++ b/src/locales/languages/de/user/selectSpecies.json @@ -0,0 +1,78 @@ +{ + "select_species_local_name": "{{item.localName}}", + "select_species_name_of_tree": "{{item.aliases}}", + "select_species_tree_count": "{{count}} Bäume", + "select_species_tree_count_modal_header": "Wie viele", + "select_species_tree_count_modal_sub_header": "{{specieName}}", + "select_species_tree_count_modal_sub_header_2": "hast du gepflanzt?", + "select_species_modal_label": "Baumzahl", + "select_species_header": "Art wählen", + "select_species_sub_header": "Bitte wähle die Art, die gepflanzt wurde", + "select_species_btn_text": "Speichern & Weiter", + "select_species_search": "Suchen", + "select_species_card": "Artenkarte", + "select_species_add_measurements": "Messung hinzufügen", + "select_species_diameter": "Durchmesser", + "measurement_basal_diameter": "Basal-Durchmesser", + "measurement_DBH": "Durchmesser in Brusthöhe (DBH)", + "select_species_height": "Höhe", + "select_species_tree_tag": "Baum-Tag", + "select_species_inches": "Zoll", + "select_species_feet": "Fuß", + "select_species_continue": "Weiter", + "select_species_enter_name": "Bitte gibt den Namen der Pflanze ein", + "select_species_error": "Fehler", + "select_species_enter_valid_input": "Gibt gültigen Wert ein", + "select_species_ok": "OK", + "select_species_already_added": "Du hast {{scientificName}} schon hinzugefügt.", + "select_species_adding_species": "Arten hinzufügen...", + "select_species_add_species": "Arten hinzufügen", + "select_species_subheading": "Artenliste wird aktualisiert, wenn du tippst. Klicke +, um die Art deinem Profil hinzuzufügen.", + "select_species_species_selected": "{{length}} Arten ausgewählt", + "select_species_search_species": "Arten suchen", + "select_species_done": "Fertig", + "select_species_add_name": "Name hinzufügen", + "select_species_my_species": "Meine Arten", + "search_result": "Suchergebnis", + "select_species_diameter_more_than_error": "Durchmesser muss zwischen {{minValue}} und {{maxValue}} liegen.", + "select_species_height_more_than_error": "Höhe muss zwischen {{minValue}} und {{maxValue}} liegen.", + "select_species_diameter_invalid": "Durchmesser ist ungültig", + "select_species_height_invalid": "Höhe ist ungültig", + "select_species_tag_id_required": "Tag-ID wird benötigt", + "select_species_tagged_for_identification": "Dieser Baum wurde zur Identifizierung getaggt.", + "select_species_unknown": "Unbekannt", + "select_species_search_specie_not_present": "Die Art '{{searchText}}' ist nicht vorhanden", + "select_species_search_atleast_3_characters": "Gib mindestens 3 Zeichen ein, um ein besseres Ergebnis zu erhalten", + "select_species_looks_empty_here": "Sieht leer aus hier!", + "select_species_add_species_desscription": "Füge eine Art in die Liste hinzu, in dem du nach ihr suchst.", + "select_species_tree_species": "Baumarten", + "sample_one_tree_for_each_species": "Bitte bestimme mindestens einen Musterbaum für jede gepflanzte Art.", + "species_name": "Artenname", + "add_image": "Bild hinzufügen", + "species_description": "Beschreibung", + "type_description_here": "Beschreibung eingeben", + "sync": "Sync", + "species_sync_might_take_time": "Synchronisiere Arten - dies kann einige Zeit dauern.", + "all_species_synced": "Alle Arten wurden synchronisiert.", + "sync_required_message": "Deine Arten wurden nicht vollständig synchronisiert!\n\nDurch das Abmelden werden diese Arten entfernt, also synchronisiere sie bitte zuerst.", + "measurement_diameter_info": "Wenn ein Baum über {{height}} {{unit}} hoch ist, miss bitte den Stammdurchmesser bei {{height}} {{unit}} (DBH). Ansonsten miss bitte den Stammdurchmesser an der Basis des Baumes (Basaldurchmesser)", + "check_again": "Erneut prüfen", + "not_optimal_ratio": "Nicht optimales Verhältnis", + "not_optimal_ratio_message": "Das Verhältnis von Höhe zu Durchmesser fällt nicht in den optimalen Verhältnisbereich, der zwischen 2:1 (minimale Höhe:Durchmesser) und 160:1 (maximale Höhe:Durchmesser) liegt. Bist du sicher, dass du fortfahren möchtest?", + "delete_species": "Spezies löschen?", + "delete_species_delete_sample_tree_warning": "Wenn du diese Art löscht, werden auch die mit dieser Art verbundenen Musterbäume gelöscht. Bist du sicher, dass du sie löschen möchtest?", + "zero_tree_count_species_delete_sample_tree_warning": "Diese Art wird gelöscht, wenn die Baumanzahl auf 0 gesetzt wird, und die mit dieser Art verbundenen Musterbäume werden ebenfalls gelöscht. Bist du sicher, dass du die Baumanzahl auf Null setzen willst?", + "tree_is_still_alive": "Der Baum lebt noch", + "select_intensity_for_remeasurement": "Wählen Sie den Prozentsatz der Bäume aus, den Sie an der Gesamtzahl der gepflanzten Musterbäume erneut messen möchten", + "select_frequency_for_remeasurement": "Wählen Sie die Häufigkeit aus, nach der Sie die Probenbäume erneut messen.", + "cant_change_frequency": "Sie können die Frequenz derzeit nicht ändern.", + "cant_change_intensity": "Sie können die Intensität vorerst nicht ändern.", + "remove_species": "Arten entfernen", + "sure_remove_species": "Möchten Sie diese Art wirklich aus Ihren Favoriten entfernen?", + "remove": "Entfernen", + "cancel": "Stornieren", + "explore_and_manage_species": "Erkunden und verwalten Sie Arten", + "search": "Erkunden und verwalten Sie Arten ", + "number_species": "60.000 Arten", + "add_species_in_fav": "und Arten hinzufügen \n Ihre Favoriten" +} diff --git a/src/locales/languages/de/user/speciesSyncError.json b/src/locales/languages/de/user/speciesSyncError.json new file mode 100644 index 000000000..cd245bcbd --- /dev/null +++ b/src/locales/languages/de/user/speciesSyncError.json @@ -0,0 +1,10 @@ +{ + "species_sync_error_heading": "Artensynchronisation nicht vollständig!", + "species_sync_error_text": "Artensynchronisation is notwendig, um Arten in der Bestandsliste hinzuzufügen. Synchronisiere bei Verfügbarkeit einer Internetverbindung.", + "something_went_wrong": "Etwas ist schief gelaufen.", + "no_internet_connection": "Keine Internetverbindung!", + "verify_email": "Überprüfe deine E-Mail", + "verify_email_message": "Bitte verifiziere deine E-Mail, bevor du dich anmeldest.", + "species_sync_update_alert_title": "Arten aktualisieren", + "species_sync_update_alert_message": "Das Aktualisieren von Arten erfordert Internet und braucht eine Weile, bis es abgeschlossen ist. Bist du sicher, dass du fortfahren möchtest?" +} \ No newline at end of file diff --git a/src/locales/languages/de/user/treeInventory.json b/src/locales/languages/de/user/treeInventory.json new file mode 100644 index 000000000..dbc067cd1 --- /dev/null +++ b/src/locales/languages/de/user/treeInventory.json @@ -0,0 +1,42 @@ +{ + "tree_inventory_loading_modal": "Hochladen ...........", + "tree_inventory_left_text": "Ausstehender Upload", + "tree_inventory_left_text_uploading": "Upload läuft", + "tree_inventory_right_text": "Jetzt hochladen", + "tree_inventory_view_upload": "Zeige hochgeladene Elemente", + "tree_inventory_incomplete_registrations": "Unvollständige Registrierungen", + "tree_inventory_list_header": "Baumbestand", + "tree_inventory_list_sub_header": "Hier ist es leer, bitte registriere einige Bäume, um etwas zu sehen.", + "tree_inventory_empty_list_header": "Baumbestand", + "tree_inventory_list_container_sub_header": "Der Bestand wird nach Abschluss des Uploads gelöscht", + "tree_inventory_upload_list_header": "Hochgeladene Elemente", + "tree_inventory_upload_empty_btn_text": "Zurück zum Bestand", + "tree_inventory_alert_header": "Bist du sicher?", + "tree_inventory_alert_sub_header": "Die Registrierungen sind sicher in der Cloud. Sobald die Registrierungen gelöscht sind, ist es derzeit nicht möglich, sie über diese App abzurufen.", + "tree_inventory_alert_sub_header2": "Die Bilder werden aus dem Dateisystem gelöscht. Bei einer guten Internetverbindung kannst du die Bilder weiterhin sehen.", + "tree_inventory_alert_primary_btn_text": "Ich bin sicher!", + "tree_inventory_free_up_space": "Speicherplatz freigeben", + "tree_inventory_off_site": "Außerhalb des Standorts", + "tree_inventory_on_site": "Vor Ort", + "tree_inventory_tree": "Baum", + "tree_inventory_trees": "Bäume", + "tree_inventory_point": "Punkt", + "tree_inventory_polygon": "Polygon", + "tree_inventory_upload_inventory_list": "Bestandsliste hochladen", + "tree_inventory_inventory_list": "Bestandsliste", + "tree_inventory_overview_date": "{{date, ll}}", + "tree_inventory_input_error": "Eingabefehler", + "tree_inventory_input_error_message": "Gibt gültigen Wert ein", + "delete_incomplete_registrations_warning": "Diese Registrierungen wurden noch nicht hochgeladen und werden für immer gelöscht, wenn du fortfährst.", + "plant_location_fetch_in_progress": "Lade deine bisherigen Pflanzungen. Das kann etwas dauern.", + "edit_polygon": "Bearbeite Polygon", + "edit_point": "Bearbeite Punkt", + "edit_geometry_message": "Klicke und ziehe eine Markierung, um ihre Position zu ändern.", + "reset": "Zurücksetzen", + "save": "Speichern", + "uploading": "Hochladen", + "missing_data_found_registration": "Fehlende Daten in Registrierungen gefunden", + "tree_inventory_fix_needed": "Fehlende Daten in Registrierungen gefunden.", + "tree_inventory_fix_needed_sample": "Prüfe in der nachstehenden Karte die rot markierten Musterbäume, um die fehlenden Daten (falls vorhanden) zu sehen.", + "fix_before_uploading": "Bitte ergänze die fehlenden Daten vor dem Hochladen." +} \ No newline at end of file diff --git a/src/locales/languages/de/user/treeReview.json b/src/locales/languages/de/user/treeReview.json new file mode 100644 index 000000000..2535fcbb8 --- /dev/null +++ b/src/locales/languages/de/user/treeReview.json @@ -0,0 +1,48 @@ +{ + "tree_review_header": "Überprüfung", + "tree_review_next_btn": "Nächster Baum", + "tree_review_Save": "Speichern", + "tree_review_name_of_species": "Name der Art", + "tree_review_diameter": "Durchmesser", + "tree_review_height": "Höhe", + "tree_review_location": "Standort", + "tree_review_specie": "Art", + "tree_review_unable": "Nicht identifizierbar", + "tree_review_tree_tag_header": "Baum-Tag", + "tree_review_specie_text": "{{specieText}}", + "tree_review_specie_diameter": "{{specieDiameter}}cm", + "tree_review_plantation_date": "Pflanzdatum", + "tree_review_project": "Projekt", + "tree_review_unassigned": "Nicht zugewiesen", + "tree_review_plantation_date_text": "{{date, ll}}", + "tree_review_alrighty": "Vervollständige", + "tree_review_register_planting_date": "Registriere Pflanzdatum", + "tree_review_delete": "Löschen", + "tree_review_details": "Baumdetails", + "tree_review_not_tagged": "Nicht getaggt", + "tree_review_delete_not_yet_uploaded_registration": "Die Registrierung wurde noch nicht zu Plant-for-the-Planet hochgeladen. Sobald sie gelöscht wird, ist sie für immer verloren.", + "tree_review_delete_uploaded_registration": "Die Registrierungen sind sicher in der Cloud. Sobald die Registrierungen gelöscht sind, ist es derzeit nicht möglich, sie über diese App abzurufen.", + "tree_review_continue_to_species": "Weiter zu den Arten", + "tree_review_continue_to_review": "Weiter zur Überprüfung", + "tree_review_continue_to_sampleTrees": "Weiter zu Musterbäumen", + "tree_review_continue_to_additional_data": "Weiter mit zusätzlichen Daten", + "skip": "Überspringen & Speichern", + "add_more_sample_trees": "Weitere Musterbäume hinzufügen", + "recommend_at_least_one_sample": "Für einige der gepflanzten Arten gibt es kein Muster. Wir empfehlen Dir, für jede gepflanzte Art mindestens einen Musterbaum anzugeben.", + "no_species_found": "Keine Arten gefunden", + "at_least_one_species": "Du solltest mindestens eine Art auswählen, bevor du fortfährst.", + "need_more_sample_trees": "Benötigt mehr Musterbäume", + "at_least_five_sample_trees": "Du solltest mindestens 5 Musterbäume hinzufügen.", + "project_not_assigned": "Projekt nicht zugewiesen!", + "project_not_assigned_message": "Bist du sicher, dass du diese Registrierung speichern willst, ohne ihr ein Projekt zuzuordnen?", + "plantation_date": "Datum der Pflanzung: ", + "plantation_period": "Zeitraum der Pflanzung: ", + "more_details": "Mehr Details", + "view_sample_trees": "Musterbäume ansehen", + "planting_area": "Fläche der Pflanzung", + "planting_area_value": "{{plantingAreaInHa}} ha", + "planting_density": "Dichte der Pflanzung", + "planting_density_value": "{{plantingDensity}} per ha", + "missing_data_found": "Fehlende Daten!", + "missing_data_found_message": "In dieser Registrierung fehlen einige Daten. Bitte überprüfe die Registrierung inklusive aller Musterbäume noch einmal." +} \ No newline at end of file diff --git a/src/locales/languages/en/authentication/signUplabels.json b/src/locales/languages/en/authentication/signUplabels.json new file mode 100644 index 000000000..a9b2ac78d --- /dev/null +++ b/src/locales/languages/en/authentication/signUplabels.json @@ -0,0 +1,29 @@ +{ + "signup": "Complete Sign Up", + "email": "EMAIL", + "isPrivate": "I agree to have my name published on the Plant-for-the-Planet Website and App.", + "getNews": "I agree that I may be contacted by the children and youth organization Plant-for-the-Planet as part of tree planting news and challenges.", + "firstname": "FIRST NAME", + "lastname": "LAST NAME", + "tpo_title": "Tree Planting Organisation", + "education_title": "School", + "signup_confirm": "Please confirm your details.", + "individual": "Individual", + "company": "Company", + "tpo_title_organisation": "NAME OF {{roleText}}", + "create_profile": "Create Profile", + "city": "CITY", + "address": "ADDRESS", + "zipcode": "ZIP CODE", + "account_type": "Account Type", + "select_country": "Select Country", + "select_role_type": "Select account type", + "enter_first_name": "Enter first name", + "enter_last_name": "Enter last name", + "enter_city_name": "Enter city Name", + "enter_zipcode": "Enter zipcode", + "enter_address": "Enter address", + "enter_organisation_name": "Enter organisation name", + "country": "COUNTRY", + "change": "change" +} \ No newline at end of file diff --git a/src/locales/languages/en/index.ts b/src/locales/languages/en/index.ts new file mode 100644 index 000000000..6f6f570c0 --- /dev/null +++ b/src/locales/languages/en/index.ts @@ -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, +}; diff --git a/src/locales/languages/en/static/initialScreen.json b/src/locales/languages/en/static/initialScreen.json new file mode 100644 index 000000000..30840382e --- /dev/null +++ b/src/locales/languages/en/static/initialScreen.json @@ -0,0 +1,11 @@ +{ + "updating_species": "Updating species", + "running_migration": "Running a migration", + "migration_description": "You recently updated your app. Please do not close the app as we are applying changes to ensure compatibility.", + "species_data_status": "Checking species data status.", + "downloading_archive": "Downloading species archive.", + "unzipping_archive": "Unzipping the species archive.", + "fetch_and_add_species_to_database": "Fetching and adding species into database.", + "species_data_loaded": "Species data loaded.", + "please_wait": "Please wait ..." +} \ No newline at end of file diff --git a/src/locales/languages/en/static/permission.json b/src/locales/languages/en/static/permission.json new file mode 100644 index 000000000..5c8df3995 --- /dev/null +++ b/src/locales/languages/en/static/permission.json @@ -0,0 +1,10 @@ +{ + "permission_camera_title": "Permission to use camera", + "permission_camera_message": "We need your permission to use your camera.", + "permission_camera_ok": "OK", + "permission_camera_cancel": "Cancel", + "storage_permission_android_title": "Storage Permission", + "storage_permission_android_message": "App needs access to memory to download the file", + "storage_permission_denied_header": "Permission Denied!", + "storage_permission_denied_sub_header": "You need to give storage permission to save the geoJSON file" +} \ No newline at end of file diff --git a/src/locales/languages/en/static/welcomeScreen.json b/src/locales/languages/en/static/welcomeScreen.json new file mode 100644 index 000000000..b2c459967 --- /dev/null +++ b/src/locales/languages/en/static/welcomeScreen.json @@ -0,0 +1,15 @@ +{ + "login": "Log in / Sign Up", + "fetch_all_items": "Fetch all Items", + "fetch_necessary_items": "Fetch Necessary Items", + "tree_mapper": "TreeMapper", + "tree_inventory": "Tree Inventory", + "tree_inventory_sub_header": "of draft and pending registrations", + "download_maps": "Offline Maps", + "download_maps_sub_header": "for offline use", + "register_tree": "Register Trees", + "loading_content": "Loading content ...", + "add": "Add", + "plots": "Plots", + "map": "Map" +} diff --git a/src/locales/languages/en/user/additionalData.json b/src/locales/languages/en/user/additionalData.json new file mode 100644 index 000000000..d57a2f4c4 --- /dev/null +++ b/src/locales/languages/en/user/additionalData.json @@ -0,0 +1,92 @@ +{ + "additional_data_form": "Form", + "additional_data_metadata": "Metadata", + "select_element": "Select Element", + "input": "Input", + "yes_no": "Yes/No", + "gap": "Gap", + "dropdown": "Dropdown", + "formula": "Formula", + "heading": "Heading", + "page": "Page", + "add_field": "Add field", + "advance_mode": "Advance mode", + "add_element": "Add element", + "update_element": "Update element", + "add_input": "Add Input", + "edit_input": "Edit Input", + "add_dropdown": "Add Dropdown", + "edit_dropdown": "Edit Dropdown", + "add_heading": "Add Heading", + "edit_heading": "Edit Heading", + "add_yes_no": "Add Yes/No", + "edit_yes_no": "Edit Yes/No", + "add_gap_element": "Add Gap", + "edit_gap_element": "Edit Gap", + "atleast_1_tree_type_required": "At least one tree type is required", + "atleast_1_registration_type_required": "At least one registration type is required", + "field_key_required": "Field key is required", + "invalid_key_error": "Field key can only contain letter, numbers and special characters (-, _ and space)", + "atleast_2_dropdown_option_required": "Atleast two dropdown options are required", + "field_value_required": "Field value is required", + "field_name_required": "Field name is required", + "get_started_forms": "Get started with forms", + "get_started_forms_description": "• This form helps you to collect additional data for each registration.\n• You can customize the form elements based on the tree type i.e. single, multiple or sample.\n• You can also customize it based on location of registration, whether it's off-site or on-site.", + "gap_element": "Gap Element", + "form_page": "Page {{pageNo}}", + "loading_form": "Loading form", + "loading_form_editor": "Loading form editor", + "required_field": "This is required", + "make_this_public": "Make this data public", + "single": "Single", + "sample": "Sample", + "multiple": "Multiple", + "on_site": "On-site", + "off_site": "Off-site", + "review": "Review", + "registrationType": "Registration type", + "treeType": "Tree type", + "additional_data_field_name": "Field name", + "additional_data_field_key": "Field key", + "additional_data_field_type": "Field type", + "additional_data_heading": "Heading", + "additional_data_field_key_placeholder": "Enter key", + "additional_data_field_value": "Field value", + "additional_data_field_value_placeholder": "Enter value", + "additional_data_default_value": "Default value", + "yes": "Yes", + "no": "No", + "dropdown_options": "Dropdown options", + "add_dropdown_option": "Add dropdown option", + "text": "Text", + "number": "Number", + "all": "All", + "default_value_only_number": "Default value can only be number", + "create_metadata": "Create metadata", + "get_started_metadata": "Get started with metadata", + "get_started_metadata_description": "• Here you can add the data which will be included in all the tree registrations.\n• You can specify the access level for each data whether it can be public or private.", + "invalid_number_input": "Only numbers are allowed", + "add_metadata": "Add metadata", + "import_data": "Import", + "import_data_desc": "Import data from file exported from TreeMapper", + "export_data": "Export", + "export_data_desc": "Export data to make sure your changes are save or share it with others.", + "export_additional_data_title": "Export TreeMapper Additional Data", + "export_additional_data_message": "JSON file to easily import your TreeMapper additional data into the app in simple clicks.", + "share_additional_data_error": "Not able to share additional data at the moment.", + "create_form": "Create form", + "import_file_error": "Unable to import file at the moment.", + "confirm_wipe_additional_data_import": "Wipe data and import data", + "current_additional_data_lost": "All your current data in forms and metadata will be lost in order to import new data. This will also affect the incomplete registrations. Are you sure do you want to continue?", + "incorrect_format_additional_data_import": "File format does not match with the required format.", + "incorrect_file_format": "Incorrect file format", + "do_you_want_to_delete_page": "Do you want to delete page {{pageTitle}}?", + "import_export_data": "Import/Export data", + "import_export_data_desc": "You can import from file exported from TreeMapper or you can save your form builder data by exporting it.", + "importing_additional_data": "Importing additional data for form builder.\nThis might take some time", + "public": "Public", + "private": "Private", + "app": "App", + "no_additional_data_available": "No additional data available", + "no_form_redirect_next_screen": "No form data available.\nRedirecting to next screen." +} \ No newline at end of file diff --git a/src/locales/languages/en/user/downloadMap.json b/src/locales/languages/en/user/downloadMap.json new file mode 100644 index 000000000..ec7e4ccb0 --- /dev/null +++ b/src/locales/languages/en/user/downloadMap.json @@ -0,0 +1,10 @@ +{ + "download_map_complete": "Map download complete", + "download_map_area": "Download this area?", + "download_map": "Download", + "download_map_view": "View All", + "download_map_area_failed": "Could not download the map. Please try again later.", + "download_map_area_exists": "The map was already downloaded.", + "network_error": "Network Error", + "network_error_message": "No internet connection. Please try again later." +} \ No newline at end of file diff --git a/src/locales/languages/en/user/editUserProfilelabels.json b/src/locales/languages/en/user/editUserProfilelabels.json new file mode 100644 index 000000000..e847688ae --- /dev/null +++ b/src/locales/languages/en/user/editUserProfilelabels.json @@ -0,0 +1,25 @@ +{ + "edit_profile": "Edit Profile", + "logout": "Logout", + "logout_anyway": "Logout Anyway", + "privacy_policy": "Privacy Policy", + "terms_of_service": "Terms of Service", + "imprint": "Imprint", + "legal_docs": "Legal Docs", + "open_source_license": "Open Source License", + "edit": "Edit", + "manage_offline": "Offline Maps", + "manage_species": "Manage Species", + "activity_logging": "Activity Logging", + "activity_logs": "Activity Logs", + "all_backed_up": "All changes backed up", + "upload_pending": "{{count}} pending", + "sync_remaining": "Syncing · {{count}} remaining", + "support": "Support", + "complete_signup": "Complete Signup", + "manage_projects": "Manage Projects", + "additional_data": "Additional Data", + "project_config": "Project Configuration", + "login_signup": "Login / Signup", + "environment": "Environment" +} diff --git a/src/locales/languages/en/user/inventoryOverview.json b/src/locales/languages/en/user/inventoryOverview.json new file mode 100644 index 000000000..0cb10bb02 --- /dev/null +++ b/src/locales/languages/en/user/inventoryOverview.json @@ -0,0 +1,28 @@ +{ + "inventory_overview_polygon_left_text": "Location Type: {{locationType}}", + "inventory_overview_title_coordinates": "Coordinate {{alphabetindex}}", + "inventory_overview_view_location": "View location", + "inventory_overview_select_species": "Select at least one species", + "inventory_overview_view_loc_modal_header": "Location {{locationTitle}}", + "inventory_overview_loc": "{{locationTitle}}", + "inventory_overview_export_json_error": "GeoJSON file could not be exported.", + "inventory_overview_export_json_success": "GeoJSON file was successfully exported.", + "inventory_overview_export_json_message": "Choose target for export", + "inventory_overview_export_json_title": "GeoJSON export", + "inventory_overview_add_species": "Planted Species", + "inventory_overview_add_sample_tree": "Sample Trees", + "inventory_overview_header_text": "Review", + "inventory_overview_sub_header": "Trees will be added to your inventory to sync when you have internet.", + "inventory_overview_left_text": "Plant Date", + "inventory_overview_left_text_planted_species": "Planted Species", + "inventory_overview_loc_left_text": "{{item.aliases}}", + "inventory_overview_loc_right_text": "{{item.treeCount}} trees", + "inventory_overview_loc_export_json": "Export GeoJson", + "inventory_overview_loc_next_tree": "Next Tree", + "inventory_overview_loc_save": "Save", + "inventory_overview_date": "{{date, ll}}", + "inventory_overview_cancel": "Cancel", + "inventory_overview_confirm": "Confirm", + "inventory_overview_pick_a_date": "Pick a date", + "error_saving_inventory": "Error while saving inventory" +} \ No newline at end of file diff --git a/src/locales/languages/en/user/locateTree.json b/src/locales/languages/en/user/locateTree.json new file mode 100644 index 000000000..014aea6ef --- /dev/null +++ b/src/locales/languages/en/user/locateTree.json @@ -0,0 +1,29 @@ +{ + "locate_tree_header": "Locate Trees", + "locate_tree_heading": "On Site (Preferred)", + "locate_tree_sub_heading": "Collects Polygon and Images for high accuracy and verifiability", + "locate_tree_off_site": "Off Site – Polygon", + "locate_tree_off_site_sub_heading": "Collects Polygon. Best to use when registering from office.", + "locate_tree_off_site_point_heading": "Off Site – Point", + "locate_tree_off_site_point_sub_heading": "Latitude & Longitude only", + "locate_tree_geo_json": "Upload GeoJson", + "info_graphic_header_1": "Alrighty!", + "info_graphic_sub_header_1": "Now, please walk to the next corner and tap continue when ready", + "info_graphic_header_2": "Great!", + "info_graphic_header_3": "Great!", + "info_graphic_sub_header_2": "Now, please walk to the next corner and tap continue when ready", + "info_graphic_sub_header_3": "If the next corner is your starting point tap Complete. Otherwise please walk to the next corner.", + "locate_tree_map_marking_sub_header": "Please visit first corner of the plantation and select your location", + "locate_tree_add_marker_valid": "You are at the same location. Please walk to the next location.", + "locate_tree_add_marker_invalid": "You are very far from your current location.", + "locate_tree_cannot_mark_location": "Cannot mark this location.", + "locate_tree_alphabets": "ABCDEFGHIJKLMNOPQRSTUVWXYZ", + "locate_tree_location": "Location", + "locate_tree_cannot_record_tree": "Cannot record sample tree.", + "locate_tree_cannot_record_tree_outside_polygon": "Sample tree can only be recorded inside the marked site.", + "locate_tree_unable_to_retrieve_location": "Unable to retrieve location.", + "distance_more_than_100_meter": "Current marker position is more than 100 meter from original coordinate location.", + "cannot_update_polygon": "Cannot update polygon!", + "sample_trees_outside_polygon": "Sample trees are falling outside the polygon. Please check and update the polygon.", + "cannot_mark_sample_tree_under_distance": "Cannot mark sample tree under 30cm of another sample tree." +} \ No newline at end of file diff --git a/src/locales/languages/en/user/logs.json b/src/locales/languages/en/user/logs.json new file mode 100644 index 000000000..6c9305910 --- /dev/null +++ b/src/locales/languages/en/user/logs.json @@ -0,0 +1,9 @@ +{ + "logs_page_title": "View Activity Logs", + "logs_all": "All", + "logs_errors": "Errors", + "logs_date": "{{date, YYYY-MM-DD hh:mm:ss}}", + "share_activity_logs_title": "Share activity logs", + "share_logs_file_name": "TreeMapper v{{version}} Logs", + "creating_logs_file_share": "Creating logs file to share.\n This might take some time." +} \ No newline at end of file diff --git a/src/locales/languages/en/user/manageUser.json b/src/locales/languages/en/user/manageUser.json new file mode 100644 index 000000000..3a62f0e6c --- /dev/null +++ b/src/locales/languages/en/user/manageUser.json @@ -0,0 +1,4 @@ +{ + "manage_user_header": "Manage Users", + "manage_user_sub_header": "List of all users you’ve invited to use tree inventory" +} \ No newline at end of file diff --git a/src/locales/languages/en/user/mapMarking.json b/src/locales/languages/en/user/mapMarking.json new file mode 100644 index 000000000..ae37b4b3c --- /dev/null +++ b/src/locales/languages/en/user/mapMarking.json @@ -0,0 +1,26 @@ +{ + "permission_blocked": "Permission Blocked", + "permission_blocked_message": "You need to give location permission to register on-site tree.", + "open_settings": "Open Settings", + "back": "Back", + "ok": "Ok", + "permission_denied": "Permission Denied", + "permission_denied_message": "You need to give location permission to register on-site tree.", + "gps_accuracy": "GPS Accuracy", + "accuracy_info": "To improve your GPS Accuracy:\n1. Make sure you are outside.\n2. Walk around a little bit.\nTreeMapper only works properly when the location is accurate to 30 meter.", + "green": "Green", + "green_info": "= Accurate up to 10 meter.", + "yellow": "Yellow", + "yellow_info": "= Accurate up to 30 meter.", + "red": "Red", + "red_info": "= Greater than 30 meter.", + "close": "Close", + "poor_accuracy": "Poor Accuracy", + "poor_accuracy_message": "Your location accuracy is POOR, which is not recommended. Are you sure you want to continue?", + "try_again": "Try Again", + "continue": "Continue", + "location_service": "Location Service", + "location_service_message": "Location settings are not satisfied. Please make sure you have given location permission to the app and turned on GPS", + "cancel": "Cancel", + "need_location_permission_to_continue": "You need to give location permission to continue." +} \ No newline at end of file diff --git a/src/locales/languages/en/user/projects.json b/src/locales/languages/en/user/projects.json new file mode 100644 index 000000000..699366a8a --- /dev/null +++ b/src/locales/languages/en/user/projects.json @@ -0,0 +1,12 @@ +{ + "add_new_project": "Add new project", + "add_new_project_desc": "Add projects to showcase your past progress or to receive donations to plant more.", + "select_project": "Select Project", + "select_project_desc": "Trees you register can be associated to a specific project.", + "continue_without_project": "Continue without a Project", + "continue_without_project_desc": "Trees wont be associated with a project.", + "dropdownpicker_placeholder": "Select an item", + "dropdownpicker_search_placeholder": "Search for ...", + "dropdownpicker_selected_items_count": "{count} items have been selected", + "dropdownpicker_nothing_to_show": "No items found!" +} \ No newline at end of file diff --git a/src/locales/languages/en/user/registerTreeslabels.json b/src/locales/languages/en/user/registerTreeslabels.json new file mode 100644 index 000000000..6308aad49 --- /dev/null +++ b/src/locales/languages/en/user/registerTreeslabels.json @@ -0,0 +1,28 @@ +{ + "register_trees": "Register Trees", + "register_trees_description": "Tip: You can find incomplete registrations in your Tree Inventory", + "tree_registration_type_1": "Single Tree", + "tree_registration_type_2": "Multiple Trees", + "tree_registration_type_1_sub_header": "Allows high precision measurements", + "tree_registration_type_2_sub_header": "Add many trees with different counts", + "tree_map_marking_header": "Tree Location", + "tree_map_marking_btn": "Select location & Continue", + "alright_modal_sub_header": "Please take a picture in which the entire tree is visible", + "alright_modal_header": "Picture Time!", + "alright_modal_white_btn": "Go Back", + "alright_modal_off_site_sub_header": "We see that you're far away the tree. Please click continue to add details about the tree.", + "alright_modal_off_site_header": "Off Site Enabled!", + "image_capturing_header": "Take Picture", + "image_capturing_sub_header": "Take a picture of the entire tree", + "image_capturing_required": "Image is required", + "coming_soon": "Coming Soon!", + "image_click_picture": "Take picture", + "image_retake": "Retake", + "sample_tree_marking_heading": "Sample Tree {{ongoingSampleTreeNumber}} of {{sampleTreesCount}}", + "sample_tree_review_tree_number": "Review of Tree {{ongoingSampleTreeNumber}} of {{sampleTreesCount}}", + "alright_modal_skip": "Skip", + "total_trees_header": "Total Trees", + "add_all_trees_planted_on_site": "Please add the list of all trees planted in the site.", + "select_species_and_add_sample": "Select a species from below and add a sample tree for that species.", + "select_species": "Select Species" +} diff --git a/src/locales/languages/en/user/sampleTrees.json b/src/locales/languages/en/user/sampleTrees.json new file mode 100644 index 000000000..d3b4a62d9 --- /dev/null +++ b/src/locales/languages/en/user/sampleTrees.json @@ -0,0 +1,12 @@ +{ + "sample_trees": "Sample Trees", + "tree": "Tree", + "trees": "Trees", + "next_step_to_measure_sample_trees_text": "In the next steps you will be asked to measure sample trees for the planting site.", + "recommend_at_least_sample_trees": "We recommend you take at least 10-12 sample trees at random.", + "how_many_sample_trees_to_record": "How many trees would you like to record?", + "invalid_tree_count": "Invalid tree count", + "enter_valid_tree_count": "You should sample at least 5 and at the most 999 trees.", + "add_another": "Add Another", + "add_sample_tree": "Add Sample Tree" +} \ No newline at end of file diff --git a/src/locales/languages/en/user/savedAreas.json b/src/locales/languages/en/user/savedAreas.json new file mode 100644 index 000000000..85d86778b --- /dev/null +++ b/src/locales/languages/en/user/savedAreas.json @@ -0,0 +1,6 @@ +{ + "save_areas_delete": "Delete", + "save_areas_header": "Saved Areas", + "save_areas_offline": "No offline area found", + "save_areas_add_area": "Add Area" +} \ No newline at end of file diff --git a/src/locales/languages/en/user/selectSpecies.json b/src/locales/languages/en/user/selectSpecies.json new file mode 100644 index 000000000..8f362e77b --- /dev/null +++ b/src/locales/languages/en/user/selectSpecies.json @@ -0,0 +1,78 @@ +{ + "select_species_local_name": "​{{item.localName}}​", + "select_species_name_of_tree": "{{item.aliases}}", + "select_species_tree_count": "{{count}} Trees", + "select_species_tree_count_modal_header": "How many", + "select_species_tree_count_modal_sub_header": "{{specieName}}", + "select_species_tree_count_modal_sub_header_2": "did you plant?", + "select_species_modal_label": "Tree Count", + "select_species_header": "Select Species", + "select_species_sub_header": "Please select the species that has been planted", + "select_species_btn_text": "Save & Continue", + "select_species_search": "Search", + "select_species_card": "Species Card", + "select_species_add_measurements": "Add Measurements", + "select_species_diameter": "Diameter", + "measurement_basal_diameter": "Basal Diameter", + "measurement_DBH": "Diameter at Breast Height (DBH)", + "select_species_height": "Height", + "select_species_tree_tag": "Tree tag", + "select_species_inches": "Inches", + "select_species_feet": "Feet", + "select_species_continue": "Continue", + "select_species_enter_name": "Please enter the name of the plant", + "select_species_error": "Error", + "select_species_enter_valid_input": "Enter valid input", + "select_species_ok": "OK", + "select_species_already_added": "You have already added {{scientificName}}.", + "select_species_adding_species": "Adding Species...", + "select_species_add_species": "Add species", + "select_species_subheading": "Species list will update as you type. Click + to add it to your profile.", + "select_species_species_selected": "{{length}} species selected", + "select_species_search_species": "Search all species", + "select_species_done": "Done", + "select_species_add_name": "Add Name", + "select_species_my_species": "Favourite species", + "search_result": "Search Result", + "select_species_diameter_more_than_error": "Diameter should be between {{minValue}} to {{maxValue}}.", + "select_species_height_more_than_error": "Height should be between {{minValue}} to {{maxValue}}.", + "select_species_diameter_invalid": "Diameter is invalid", + "select_species_height_invalid": "Height is invalid", + "select_species_tag_id_required": "Tag id is required", + "select_species_tagged_for_identification": "This tree has been tagged for identification.", + "select_species_unknown": "Unknown", + "select_species_search_specie_not_present": "The '{{searchText}}' species is not present", + "select_species_search_atleast_3_characters": "Enter at least 3 characters to get a better result", + "select_species_looks_empty_here": "Looks Empty Here!", + "select_species_add_species_desscription": "Add species to your list by searching the species", + "select_species_tree_species": "Tree Species", + "sample_one_tree_for_each_species": "Please sample at least one tree for each species planted.", + "species_name": "Local common name", + "add_image": "Add Image", + "species_description": "Description", + "type_description_here": "Type description here", + "sync": "Sync", + "species_sync_might_take_time": "Syncing species, this might take some time.", + "all_species_synced": "All species are synced.", + "sync_required_message": "Your species haven’t fully synced online!\n\nLogging out will remove these species, so please consider syncing them first.", + "measurement_diameter_info": "If a tree is over {{height}} {{unit}} tall, please measure the stem diameter at {{height}} {{unit}} (DBH). Otherwise, please measure stem diameter at the base of the tree (Basal Diameter)", + "check_again": "Check again", + "not_optimal_ratio": "Not optimal ratio", + "not_optimal_ratio_message": "The height to diameter ratio does not fall between the optimal ratio range which is between 2:1 (minimum height:diameter) and 160:1 (maximum height:diameter). Are you sure do you want to continue?", + "delete_species": "Delete Species?", + "delete_species_delete_sample_tree_warning": "If you delete this species, the sample tree(s) related to this species will also get deleted. Are you sure, that you want to delete?", + "zero_tree_count_species_delete_sample_tree_warning": "This species will be deleted if tree count is set to 0 and the sample tree(s) related to this species will also get deleted. Are you sure, that you want to set tree count to zero?", + "tree_is_still_alive": "Tree is still alive", + "select_intensity_for_remeasurement": "Select the percentage of Trees you will re-measure from the total number of planted Sample Trees", + "select_frequency_for_remeasurement": "Select frequency after which you will re-measure the Sample Trees.", + "cant_change_frequency": "You can't change frequency for now.", + "cant_change_intensity": "You can't change intensity for now.", + "remove_species": "Remove Species", + "sure_remove_species": "Are you sure you want to remove this species from your favourites?", + "remove": "Remove", + "cancel": "Cancel", + "explore_and_manage_species": "Explore and manage species", + "search": "Search ", + "number_species": "60,000 species ", + "add_species_in_fav": "and add species to \n your favourites" +} diff --git a/src/locales/languages/en/user/speciesSyncError.json b/src/locales/languages/en/user/speciesSyncError.json new file mode 100644 index 000000000..5916f0c6e --- /dev/null +++ b/src/locales/languages/en/user/speciesSyncError.json @@ -0,0 +1,10 @@ +{ + "species_sync_error_heading": "Species sync is incomplete!", + "species_sync_error_text": "Species syncing is required to add species in inventory. Sync when internet connection is available.", + "something_went_wrong": "Something went wrong!", + "no_internet_connection": "No Internet Connection!", + "verify_email": "Verify your Email", + "verify_email_message": "Please verify your email before logging in.", + "species_sync_update_alert_title": "Update Species", + "species_sync_update_alert_message": "Updating species requires internet and take a while until it's completed. Are you sure you want to continue?" +} \ No newline at end of file diff --git a/src/locales/languages/en/user/treeInventory.json b/src/locales/languages/en/user/treeInventory.json new file mode 100644 index 000000000..8805c3adc --- /dev/null +++ b/src/locales/languages/en/user/treeInventory.json @@ -0,0 +1,51 @@ +{ + "tree_inventory_loading_modal": "Uploading .......", + "tree_inventory_left_text": "Pending Upload", + "pending_remeasurement_upload": "Pending Remeasurement Upload", + "tree_inventory_left_text_uploading": "Upload in progress", + "tree_inventory_right_text": "Upload now", + "tree_inventory_view_upload": "View all uploaded Items", + "tree_inventory_incomplete_registrations": "Incomplete Registrations", + "incomplete_remeasurement": "Incomplete Remeasurements", + "tree_inventory_list_header": "Tree Inventory", + "tree_inventory_list_sub_header": "It’s empty in here, please register some trees to view them.", + "tree_inventory_empty_list_header": "Tree Inventory", + "tree_inventory_list_container_sub_header": "Inventory will be cleared after upload is complete", + "tree_inventory_upload_list_header": "Uploaded Items", + "tree_inventory_upload_empty_btn_text": "Back to Inventory", + "tree_inventory_alert_header": "Are you sure?", + "tree_inventory_alert_sub_header": "The registrations are safe on cloud. Once the registrations are deleted, currently it is not possible to retrieve them on this app.", + "tree_inventory_alert_sub_header2": "The images will be deleted from the file system. You will still be able see the images with good internet connection.", + "tree_inventory_alert_primary_btn_text": "Sure Delete", + "tree_inventory_free_up_space": "Free Up Space", + "tree_inventory_off_site": "Off Site", + "tree_inventory_on_site": "On Site", + "tree_inventory_tree": "Tree", + "tree_inventory_trees": "Trees", + "tree_inventory_point": "Point", + "tree_inventory_polygon": "Polygon", + "tree_inventory_upload_inventory_list": "Upload Inventory List", + "tree_inventory_inventory_list": "Inventory List", + "tree_inventory_overview_date": "{{date, ll}}", + "tree_inventory_input_error": "Input Error", + "tree_inventory_input_error_message": "Please Enter Valid Input", + "delete_incomplete_registrations_warning": "These registrations are not yet uploaded and will be deleted forever if you continue.", + "plant_location_fetch_in_progress": "Retrieving your plant locations. This might take some time.", + "edit_polygon": "Edit polygon", + "edit_point": "Edit point", + "edit_geometry_message": "Click and drag a marker to change it's position.", + "reset": "Reset", + "save": "Save", + "uploading": "Uploading", + "missing_data_found_registration": "Missing data found in registrations", + "tree_inventory_fix_needed": "There are some missing data in this registration.", + "tree_inventory_fix_needed_sample": "Check in the map below for the sample trees in red to see the missing data (if any).", + "fix_before_uploading": "Please fix the missing data before uploading.", + "flood": "Flood", + "fire": "Fire", + "drought": "Drought", + "other": "Other", + "cause_of_mortality": "Likely cause of Mortality", + "status": "Status", + "dead": "Dead" +} diff --git a/src/locales/languages/en/user/treeReview.json b/src/locales/languages/en/user/treeReview.json new file mode 100644 index 000000000..eb0f7a88c --- /dev/null +++ b/src/locales/languages/en/user/treeReview.json @@ -0,0 +1,57 @@ +{ + "tree_review_header": "Review", + "tree_review_next_btn": "Next Tree", + "tree_review_Save": "Save", + "tree_review_name_of_species": "Name of Species", + "tree_review_diameter": "Diameter", + "tree_review_height": "Height", + "tree_review_location": "Location", + "tree_review_specie": "Species", + "tree_review_unable": "Unable to identify", + "tree_review_tree_tag_header": "Tree tag", + "tree_review_specie_text": "{{specieText}}", + "tree_review_specie_diameter": "{{specieDiameter}}cm", + "tree_review_plantation_date": "Plantation date", + "tree_review_project": "Project", + "tree_review_unassigned": "Unassigned", + "tree_review_plantation_date_text": "{{date, ll}}", + "tree_review_alrighty": "Complete", + "tree_review_register_planting_date": "Register Planting Date", + "tree_review_delete": "Delete", + "tree_review_details": "Tree Details", + "tree_review_not_tagged": "Not Tagged", + "tree_review_delete_not_yet_uploaded_registration": "The registration is not yet uploaded to Plant-for-the-Planet. Once deleted it will be lost forever.", + "tree_review_delete_uploaded_registration": "This registration is safe on cloud. Once this registration is deleted, currently it is not possible to retrieve it on this app.", + "tree_review_continue_to_species": "Continue to species", + "tree_review_continue_to_review": "Continue to review", + "tree_review_continue_to_sampleTrees": "Continue to Sample Trees", + "tree_review_continue_to_additional_data": "Continue to additional data", + "skip": "Skip & Save", + "add_more_sample_trees": "Add more Sample Trees", + "recommend_at_least_one_sample": "Some of the planted species are not sampled. We recommend you to sample at least one tree for each planted species.", + "no_species_found": "No species found", + "at_least_one_species": "You should have at least 1 species before proceeding.", + "need_more_sample_trees": "Need more Sample Trees", + "at_least_five_sample_trees": "You should add at least 5 Sample Trees.", + "project_not_assigned": "Project not assigned!", + "project_not_assigned_message": "Are you sure, you want to save this registration without assigning a project?", + "plantation_date": "Plantation date: ", + "plantation_period": "Plantation period: ", + "more_details": "More details", + "view_sample_trees": "View sample trees", + "planting_area": "Planting Area", + "planting_area_value": "{{plantingAreaInHa}} ha", + "planting_density": "Planting Density", + "planting_density_value": "{{plantingDensity}} per ha", + "missing_data_found": "Missing data!", + "missing_data_found_message": "There are some missing data in this registration. Please review the registration again, make sure to check sample trees as well.", + "remeasure": "Remeasure", + "view_remeasurement": "View Remeasurement", + "view_status": "View Status", + "view_plant_location": "View Plant Location", + "remeasurement": "Remeasurement", + "you_are_far_to_remeasure": "You are far from the tree location to remeasure the tree.", + "go_to_inventory": "Go to inventory", + "dead_reason_required": "Dead reason is required", + "dead_reason_required_message": "Please select a dead reason to continue." +} diff --git a/src/locales/languages/es/authentication/signUplabels.json b/src/locales/languages/es/authentication/signUplabels.json new file mode 100644 index 000000000..f89db15d3 --- /dev/null +++ b/src/locales/languages/es/authentication/signUplabels.json @@ -0,0 +1,29 @@ +{ + "signup": "Regístrate", + "email": "Correo electrónico", + "isPrivate": "Acepto que mi nombre se publique en el sitio web de Plant-for-the-Planet y en la aplicación.", + "getNews": "Acepto que la organización de niños y jóvenes Plant-for-the-Planet me contacte para actualizarme sobre los desafíos de plantar árboles.", + "firstname": "Nombre", + "lastname": "Apellidos", + "tpo_title": "Organización de plantación de árboles", + "education_title": "Escuela", + "signup_confirm": "Por favor, confirma tus datos.", + "individual": "Individual", + "company": "Empresa", + "tpo_title_organisation": "Nombre de {{roleText}}", + "create_profile": "Crear perfil", + "city": "Ciudad", + "address": "Dirección", + "zipcode": "Código Postal", + "account_type": "Tipo de cuenta", + "select_country": "Selecciona un país", + "select_role_type": "Seleccione el tipo de cuenta", + "enter_first_name": "Introduzca su nombre", + "enter_last_name": "Introduzca su apellido", + "enter_city_name": "Introduzca el nombre de la ciudad", + "enter_zipcode": "Introduzca el código postal", + "enter_address": "Introduzca la dirección", + "enter_organisation_name": "Introduzca el nombre de la organización", + "country": "PAÍS", + "change": "cambiar" +} \ No newline at end of file diff --git a/src/locales/languages/es/index.ts b/src/locales/languages/es/index.ts new file mode 100644 index 000000000..6f6f570c0 --- /dev/null +++ b/src/locales/languages/es/index.ts @@ -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, +}; diff --git a/src/locales/languages/es/static/initialScreen.json b/src/locales/languages/es/static/initialScreen.json new file mode 100644 index 000000000..5978befda --- /dev/null +++ b/src/locales/languages/es/static/initialScreen.json @@ -0,0 +1,11 @@ +{ + "updating_species": "Actualización de especies", + "running_migration": "Ejecutar una migración", + "migration_description": "Has actualizado tu aplicación recientemente. No cierres la aplicación porque estamos aplicando cambios para garantizar la compatibilidad.", + "species_data_status": "Comprobación del estado de los datos de las especies.", + "downloading_archive": "Descarga del archivo de especies.", + "unzipping_archive": "Descomprimir el archivo de especies.", + "fetch_and_add_species_to_database": "Buscando y agregando especies en la base de datos.", + "species_data_loaded": "Datos de las especies cargadas.", + "please_wait": "Por favor, espere..." +} \ No newline at end of file diff --git a/src/locales/languages/es/static/permission.json b/src/locales/languages/es/static/permission.json new file mode 100644 index 000000000..cfdeb771f --- /dev/null +++ b/src/locales/languages/es/static/permission.json @@ -0,0 +1,10 @@ +{ + "permission_camera_title": "Permiso para usar la cámara", + "permission_camera_message": "Necesitamos tu permiso para usar la cámara.", + "permission_camera_ok": "OK", + "permission_camera_cancel": "Cancelar", + "storage_permission_android_title": "Permiso de almacenamiento", + "storage_permission_android_message": "La aplicación necesita acceso a la memoria para descargar el archivo", + "storage_permission_denied_header": "Permiso denegado", + "storage_permission_denied_sub_header": "Necesitas dar permiso de almacenamiento para guardar el archivo geoJSON" +} \ No newline at end of file diff --git a/src/locales/languages/es/static/welcomeScreen.json b/src/locales/languages/es/static/welcomeScreen.json new file mode 100644 index 000000000..683123ec8 --- /dev/null +++ b/src/locales/languages/es/static/welcomeScreen.json @@ -0,0 +1,13 @@ +{ + "login": "Ingresar / Registrarse", + "tree_mapper": "TreeMapper", + "tree_inventory": "Inventario de arboles", + "tree_inventory_sub_header": "de los proyectos y registros pendientes", + "download_maps": "Mapas disponibles sin internet", + "download_maps_sub_header": "para uso offline", + "register_tree": "Registrar árboles", + "loading_content": "Cargando contenido...", + "add": "agregar", + "plots": "Parcelas", + "map": "Mapa" +} diff --git a/src/locales/languages/es/user/additionalData.json b/src/locales/languages/es/user/additionalData.json new file mode 100644 index 000000000..ce101356e --- /dev/null +++ b/src/locales/languages/es/user/additionalData.json @@ -0,0 +1,92 @@ +{ + "additional_data_form": "Formulario", + "additional_data_metadata": "Metadatos", + "select_element": "Seleccione el elemento", + "input": "Entrada", + "yes_no": "Sí/No", + "gap": "Espacio", + "dropdown": "Menú desplegable", + "formula": "Fórmula", + "heading": "Título", + "page": "Página", + "add_field": "Añadir campo", + "advance_mode": "Modo avanzado", + "add_element": "Añadir elemento", + "update_element": "Actualizar elemento.", + "add_input": "Añadir entrada", + "edit_input": "Editar entrada", + "add_dropdown": "Añadir menú desplegable", + "edit_dropdown": "Editar menú desplegable", + "add_heading": "Añadir título", + "edit_heading": "Editar título", + "add_yes_no": "Añadir Sí/No", + "edit_yes_no": "Editar Sí/No", + "add_gap_element": "Añadir espacio", + "edit_gap_element": "Editar espacio", + "atleast_1_tree_type_required": "Se requiere al menos un tipo de árbol", + "atleast_1_registration_type_required": "Se requiere al menos un tipo de registro", + "field_key_required": "El campo clave es obligatorio", + "invalid_key_error": "El campo clave sólo puede contener letras, números y caracteres especiales (-, _ y espacio)", + "atleast_2_dropdown_option_required": "Se necesitan al menos dos opciones desplegables", + "field_value_required": "El valor del campo es obligatorio", + "field_name_required": "El nombre del campo es obligatorio", + "get_started_forms": "Empezar con los formularios", + "get_started_forms_description": "- Este formulario le ayuda a recoger datos adicionales para cada registro.\n- Puede personalizar los elementos del formulario en función del tipo de árbol, es decir, único, múltiple o de muestra.\n- También puede personalizarlo en función de la ubicación del registro, es decir fuera del sitio o en el sitio.", + "gap_element": "Elemento de espacio", + "form_page": "Página {{pageNo}}", + "loading_form": "Cargando formulario", + "loading_form_editor": "Cargando el editor de formularios", + "required_field": "Este campo es obligatorio", + "make_this_public": "Hacer públicos estos datos", + "single": "Único", + "sample": "Muestra", + "multiple": "Múltiples", + "on_site": "En el sitio", + "off_site": "Fuera del sitio", + "review": "Revisar", + "registrationType": "Tipo de registro", + "treeType": "Tipo de árbol", + "additional_data_field_name": "Nombre del campo", + "additional_data_field_key": "Campo clave", + "additional_data_field_type": "Tipo de campo", + "additional_data_heading": "Título", + "additional_data_field_key_placeholder": "Tecla Enter", + "additional_data_field_value": "Valor del campo", + "additional_data_field_value_placeholder": "Introduzca el valor", + "additional_data_default_value": "Valor por defecto", + "yes": "Sí", + "no": "No", + "dropdown_options": "Opciones desplegables", + "add_dropdown_option": "Añadir opción desplegable", + "text": "Texto", + "number": "Número", + "all": "Todo", + "default_value_only_number": "El valor por defecto sólo puede ser un número", + "create_metadata": "Crear metadatos", + "get_started_metadata": "Introducción a los metadatos", + "get_started_metadata_description": "- Aquí puede añadir los datos que se incluirán en todos los registros de árboles.\n- Puede especificar el nivel de acceso para cada dato, si desea que sea público o privado.", + "invalid_number_input": "Sólo se permiten números", + "add_metadata": "Añadir metadatos", + "import_data": "Importar", + "import_data_desc": "Importar datos de un archivo exportado desde TreeMapper", + "export_data": "Exportar", + "export_data_desc": "Exporta los datos para asegurarte de que tus cambios se guarden o para compartirlos con otros.", + "export_additional_data_title": "Exportar datos adicionales de TreeMapper", + "export_additional_data_message": "Archivo JSON para importar fácilmente sus datos adicionales de TreeMapper a la aplicación con unos simples clics.", + "share_additional_data_error": "Por el momento no es posible compartir datos adicionales.", + "create_form": "Crear formulario", + "import_file_error": "No se puede importar el archivo por el momento.", + "confirm_wipe_additional_data_import": "Borrar datos e importar datos", + "current_additional_data_lost": "Todos los datos existentes en formularios y metadatos se perderán si importa nuevos datos. Esto también afectará a los registros incompletos. ¿Está seguro de que quiere continuar?", + "incorrect_format_additional_data_import": "El formato del archivo no coincide con el formato requerido.", + "incorrect_file_format": "Formato de archivo incorrecto", + "do_you_want_to_delete_page": "Desea eliminar la página {{pageTitle}}.", + "import_export_data": "Importar/exportar datos", + "import_export_data_desc": "Puede importar datos desde un archivo exportado desde TreeMapper o puede guardar sus datos del formulario exportándolos.", + "importing_additional_data": "Importar datos adicionales para el formulario.\nEsto puede llevar algún tiempo", + "public": "Público", + "private": "Privado", + "app": "App", + "no_additional_data_available": "No hay datos adicionales disponibles", + "no_form_redirect_next_screen": "No hay datos del formulario disponibles.\nRedirigiendo a la siguiente pantalla." +} \ No newline at end of file diff --git a/src/locales/languages/es/user/downloadMap.json b/src/locales/languages/es/user/downloadMap.json new file mode 100644 index 000000000..d60843374 --- /dev/null +++ b/src/locales/languages/es/user/downloadMap.json @@ -0,0 +1,10 @@ +{ + "download_map_complete": "Descarga completa del mapa", + "download_map_area": "¿Descargar esta área?", + "download_map": "Descargar", + "download_map_view": "Ver todo", + "download_map_area_failed": "No se ha podido descargar el mapa. Por favor, inténtalo más tarde.", + "download_map_area_exists": "El mapa ya fue descargado.", + "network_error": "Error de red", + "network_error_message": "No hay conexión a Internet. Por favor, inténtelo más tarde." +} \ No newline at end of file diff --git a/src/locales/languages/es/user/editUserProfilelabels.json b/src/locales/languages/es/user/editUserProfilelabels.json new file mode 100644 index 000000000..0ae3df7ba --- /dev/null +++ b/src/locales/languages/es/user/editUserProfilelabels.json @@ -0,0 +1,23 @@ +{ + "edit_profile": "Editar Perfil", + "logout": "Cerrar Sesión", + "logout_anyway": "Cerrar la sesión de todos modos", + "privacy_policy": "Política de privacidad", + "terms_of_service": "Condiciones de servicio", + "imprint": "Aviso Legal", + "legal_docs": "Documentos legales", + "open_source_license": "Licencia de código abierto", + "edit": "Editar", + "manage_offline": "Administrar los mapas fuera de línea", + "manage_species": "Administrar especies", + "activity_logging": "Registro de actividades", + "activity_logs": "Registro de actividades", + "all_backed_up": "Todos los cambios se han guardado", + "upload_pending": "{{count}}pendiente", + "sync_remaining": "Sincronización - {{count}} restante", + "support": "Ayuda", + "complete_signup": "Registro completo", + "manage_projects": "Administrar los proyectos", + "additional_data": "Datos adicionales", + "login_signup": "Iniciar sesión / Registrarse" +} diff --git a/src/locales/languages/es/user/inventoryOverview.json b/src/locales/languages/es/user/inventoryOverview.json new file mode 100644 index 000000000..c048bd923 --- /dev/null +++ b/src/locales/languages/es/user/inventoryOverview.json @@ -0,0 +1,28 @@ +{ + "inventory_overview_polygon_left_text": "Tipo de ubicación: {{locationType}}", + "inventory_overview_title_coordinates": "Coordenada {{alphabetindex}}", + "inventory_overview_view_location": "Ver ubicación", + "inventory_overview_select_species": "Seleccione al menos una especie", + "inventory_overview_view_loc_modal_header": "Ubicación {{locationTitle}}", + "inventory_overview_loc": "{{locationTitle}}", + "inventory_overview_export_json_error": "El archivo GeoJSON no ha podido exportarse", + "inventory_overview_export_json_success": "El archivo GeoJSON ha sido exportado con éxito.", + "inventory_overview_export_json_message": "Elija el archivo para exportar", + "inventory_overview_export_json_title": "Exportar GeoJson", + "inventory_overview_add_species": "Especies plantadas", + "inventory_overview_add_sample_tree": "Árbol de muestra", + "inventory_overview_header_text": "Revisar", + "inventory_overview_sub_header": "Los árboles se añadirán a tu inventario para sincronizarlos cuando tengas acceso a Internet.", + "inventory_overview_left_text": "Fecha de plantación", + "inventory_overview_left_text_planted_species": "Especies plantadas", + "inventory_overview_loc_left_text": "{{item.aliases}}", + "inventory_overview_loc_right_text": "{{item.treeCount}} árboles", + "inventory_overview_loc_export_json": "Exportar GeoJson", + "inventory_overview_loc_next_tree": "Próximo árbol", + "inventory_overview_loc_save": "Guardar", + "inventory_overview_date": "{{date, ll}}", + "inventory_overview_cancel": "Cancelar", + "inventory_overview_confirm": "Confirmar", + "inventory_overview_pick_a_date": "Selecciona una fecha", + "error_saving_inventory": "Error al guardar el inventario" +} \ No newline at end of file diff --git a/src/locales/languages/es/user/locateTree.json b/src/locales/languages/es/user/locateTree.json new file mode 100644 index 000000000..d933b3683 --- /dev/null +++ b/src/locales/languages/es/user/locateTree.json @@ -0,0 +1,25 @@ +{ + "locate_tree_header": "Localizar los árboles", + "locate_tree_heading": "Sobre el terreno (Preferido)", + "locate_tree_sub_heading": "Registrar Polígono e imágenes para una alta precisión y verificabilidad", + "locate_tree_off_site": "Fuera del sitio - Polígono", + "locate_tree_off_site_sub_heading": "Registrar Polígono. Es mejor utilizarlo cuando se registra desde la oficina.", + "locate_tree_off_site_point_heading": "Fuera del sitio - Punto", + "locate_tree_off_site_point_sub_heading": "Sólo latitud y longitud", + "locate_tree_geo_json": "Subir GeoJson", + "info_graphic_header_1": "¡Muy bien!", + "info_graphic_sub_header_1": "Ahora, por favor camina a la siguiente esquina y pulsa continuar cuando estés listo", + "info_graphic_header_2": "¡Muy bien!", + "info_graphic_header_3": "¡Muy bien!", + "info_graphic_sub_header_2": "Ahora, por favor camina a la siguiente esquina y pulsa continuar cuando estés listo", + "info_graphic_sub_header_3": "Si la siguiente esquina es tu punto de partida, pulsa Completar. De lo contrario, por favor camina a la siguiente esquina.", + "locate_tree_map_marking_sub_header": "Por favor, visita la primera esquina de la plantación y selecciona tu ubicación", + "locate_tree_add_marker_valid": "Estás en la misma ubicación. Por favor, camina a la siguiente ubicación.", + "locate_tree_add_marker_invalid": "Estás muy lejos de tu ubicación actual.", + "locate_tree_cannot_mark_location": "No se puede marcar esta ubicación", + "locate_tree_alphabets": "ABCDEFGHIJKLMNOPQRSTUVWXYZ", + "locate_tree_location": "Ubicación", + "locate_tree_cannot_record_tree": "No se puede registrar el árbol de muestra", + "locate_tree_cannot_record_tree_outside_polygon": "El árbol de muestra sólo puede registrarse dentro del lugar marcado.", + "locate_tree_unable_to_retrieve_location": "No se puede encontrar la ubicación." +} \ No newline at end of file diff --git a/src/locales/languages/es/user/logs.json b/src/locales/languages/es/user/logs.json new file mode 100644 index 000000000..9f9051800 --- /dev/null +++ b/src/locales/languages/es/user/logs.json @@ -0,0 +1,9 @@ +{ + "logs_page_title": "Registro de actividades", + "logs_all": "Todo", + "logs_errors": "Errores", + "logs_date": "{{item.title}}", + "share_activity_logs_title": "Compartir registros de actividad", + "share_logs_file_name": "Registros de TreeMapper v{{version}} ", + "creating_logs_file_share": "Crear archivos de registro para compartir.\n Esto puede llevar algún tiempo." +} \ No newline at end of file diff --git a/src/locales/languages/es/user/manageUser.json b/src/locales/languages/es/user/manageUser.json new file mode 100644 index 000000000..910e8c8b0 --- /dev/null +++ b/src/locales/languages/es/user/manageUser.json @@ -0,0 +1,4 @@ +{ + "manage_user_header": "Administrar usuarios", + "manage_user_sub_header": "Listado de todos los usuarios que has invitado a utilizar el inventario de árboles" +} \ No newline at end of file diff --git a/src/locales/languages/es/user/mapMarking.json b/src/locales/languages/es/user/mapMarking.json new file mode 100644 index 000000000..b60af2940 --- /dev/null +++ b/src/locales/languages/es/user/mapMarking.json @@ -0,0 +1,25 @@ +{ + "permission_blocked": "Permiso bloqueado", + "permission_blocked_message": "Es necesario dar permiso de localización para registrar el árbol in situ.", + "open_settings": "Abrir Configuración", + "back": "Volver", + "ok": "OK", + "permission_denied": "Permiso denegado", + "permission_denied_message": "Es necesario dar permiso de localización para registrar el árbol in situ.", + "gps_accuracy": "Precisión del GPS", + "accuracy_info": "Para mejorar la precisión de tu GPS:\n1. Asegúrate de que estás en el exterior.\n2. Camina un poco.\nTreeMapper sólo funciona correctamente cuando la ubicación tiene una precisión de al menos 30 metros.", + "green": "Verde", + "green_info": "= Precisión de hasta 10 metros", + "yellow": "Amarillo", + "yellow_info": "= Precisión de hasta 30 metros", + "red": "Rojo", + "red_info": "= Más de 30 metros", + "close": "Cerrar", + "poor_accuracy": "Poca precisión", + "poor_accuracy_message": "La precisión de localización es POBRE, lo cual no es recomendable. ¿Estás seguro de que quieres continuar?", + "try_again": "Inténtalo de nuevo", + "continue": "Continuar", + "location_service": "Servicio de ubicación", + "location_service_message": "La configuración de la ubicación no es correcta. Por favor, asegúrate de que has dado permiso de localización a la aplicación y has activado el GPS", + "cancel": "Cancelar" +} \ No newline at end of file diff --git a/src/locales/languages/es/user/projects.json b/src/locales/languages/es/user/projects.json new file mode 100644 index 000000000..b6955c329 --- /dev/null +++ b/src/locales/languages/es/user/projects.json @@ -0,0 +1,8 @@ +{ + "add_new_project": "Añadir un nuevo proyecto", + "add_new_project_desc": "Añade proyectos para mostrar avances pasados o para recibir donaciones para plantar más árboles.", + "select_project": "Seleccionar Proyecto", + "select_project_desc": "Los árboles que se registran pueden asociarse a un proyecto específico.", + "continue_without_project": "Continuar sin proyecto", + "continue_without_project_desc": "Los árboles no se asociarán a ningún proyecto." +} \ No newline at end of file diff --git a/src/locales/languages/es/user/registerTreeslabels.json b/src/locales/languages/es/user/registerTreeslabels.json new file mode 100644 index 000000000..b8c04050c --- /dev/null +++ b/src/locales/languages/es/user/registerTreeslabels.json @@ -0,0 +1,28 @@ +{ + "register_trees": "Registrar árboles ", + "register_trees_description": "Tip: Puedes encontrar registros incompletos en tu Inventario de Árboles", + "tree_registration_type_1": "Un solo Árbol", + "tree_registration_type_2": "Múltiples árboles", + "tree_registration_type_1_sub_header": "Permite mediciones de alta precisión", + "tree_registration_type_2_sub_header": "Agrega varios árboles con diferentes cuentas", + "tree_map_marking_header": "Ubicación del árbol", + "tree_map_marking_btn": "Selecciona la ubicación y continúa", + "alright_modal_sub_header": "Por favor, tome una foto en la que se vea todo el árbol", + "alright_modal_header": "¡Hora de la foto!", + "alright_modal_white_btn": "Regresar", + "alright_modal_off_site_sub_header": "Vemos que estás muy lejos del árbol. Por favor, haz clic en continuar para añadir detalles sobre el árbol.", + "alright_modal_off_site_header": "¡Fuera del sitio habilitado!", + "image_capturing_header": "Foto", + "image_capturing_sub_header": "Toma una foto de todo el árbol", + "image_capturing_required": "La imagen es necesaria", + "coming_soon": "¡Disponible en breve!", + "image_click_picture": "Toma una foto", + "image_retake": "Volver a tomar", + "sample_tree_marking_heading": "Árbol de muestra {{ongoingSampleTreeNumber}} de {{sampleTreesCount}}", + "sample_tree_review_tree_number": "Revisión del árbol {{ongoingSampleTreeNumber}} de {{sampleTreesCount}}", + "alright_modal_skip": "Saltar", + "total_trees_header": "Total de árboles", + "add_all_trees_planted_on_site": "Por favor, añade la lista de todos los árboles plantados en el sitio", + "select_species_and_add_sample": "Seleccione una especie de las que aparecen a continuación y añada un árbol de muestra para esa especie.", + "select_species": "Seleccione las especies" +} \ No newline at end of file diff --git a/src/locales/languages/es/user/sampleTrees.json b/src/locales/languages/es/user/sampleTrees.json new file mode 100644 index 000000000..c29e1a4c7 --- /dev/null +++ b/src/locales/languages/es/user/sampleTrees.json @@ -0,0 +1,12 @@ +{ + "sample_trees": "Árbol de muestra", + "tree": "Árbol", + "trees": "Árboles", + "next_step_to_measure_sample_trees_text": "En los siguientes pasos se te pedirá que midas los árboles de muestra para el sitio de plantación.", + "recommend_at_least_sample_trees": "Te recomendamos que tomes al menos 10-12 árboles de muestra al azar.", + "how_many_sample_trees_to_record": "¿Cuántos árboles te gustaría registrar?", + "invalid_tree_count": "Recuento de árboles no válido", + "enter_valid_tree_count": "Debes tomar mínimo 5 y máximo 999 árboles de muestra. ", + "add_another": "Añadir otro", + "add_sample_tree": "Añadir árbol de muestra" +} \ No newline at end of file diff --git a/src/locales/languages/es/user/savedAreas.json b/src/locales/languages/es/user/savedAreas.json new file mode 100644 index 000000000..54263c060 --- /dev/null +++ b/src/locales/languages/es/user/savedAreas.json @@ -0,0 +1,6 @@ +{ + "save_areas_delete": "Borrar", + "save_areas_header": "Áreas guardadas", + "save_areas_offline": "No se encontró ningún área disponible sin internet", + "save_areas_add_area": "Añadir área" +} \ No newline at end of file diff --git a/src/locales/languages/es/user/selectSpecies.json b/src/locales/languages/es/user/selectSpecies.json new file mode 100644 index 000000000..3c80526ab --- /dev/null +++ b/src/locales/languages/es/user/selectSpecies.json @@ -0,0 +1,77 @@ +{ + "select_species_local_name": "{{item.localName}}", + "select_species_name_of_tree": "{{item.aliases}}", + "select_species_tree_count": "{{item.treeCount}} árboles", + "select_species_tree_count_modal_header": "¿Cuántos?", + "select_species_tree_count_modal_sub_header": "{{specieName}}", + "select_species_tree_count_modal_sub_header_2": "¿has plantado?", + "select_species_modal_label": "Recuento de árboles", + "select_species_header": "Selecciona la especie", + "select_species_sub_header": "Por favor, selecciona la especie que se ha plantado", + "select_species_btn_text": "Guardar y continuar", + "select_species_search": "Buscar", + "select_species_card": "Ficha de la especie", + "select_species_add_measurements": "Agregar medidas", + "select_species_diameter": "Diámetro", + "measurement_basal_diameter": "Diámetro basal", + "measurement_DBH": "Diámetro a la altura del pecho (DAP)", + "select_species_height": "Altura", + "select_species_tree_tag": "Etiqueta del árbol", + "select_species_inches": "Pulgadas", + "select_species_feet": "Pies", + "select_species_continue": "Continuar", + "select_species_enter_name": "Por favor, introduce el nombre de la planta", + "select_species_error": "Error", + "select_species_enter_valid_input": "Introduce una entrada válida", + "select_species_ok": "OK", + "select_species_already_added": "Ya has añadido {{scientificName}}.", + "select_species_adding_species": "Añadiendo especies...", + "select_species_add_species": "Añadir especies", + "select_species_subheading": "La lista de especies se actualizará a medida que escribas. Haz clic en + para añadirla a tu perfil.", + "select_species_species_selected": "{{length}} especies seleccionadas", + "select_species_search_species": "Buscar especies", + "select_species_done": "Hecho", + "select_species_add_name": "Añadir nombre", + "select_species_my_species": "Mis especies", + "select_species_diameter_more_than_error": "El diámetro debe estar entre {{minValue}} y {{maxValue}}", + "select_species_height_more_than_error": "La altura debe estar entre {{minValue}} y {{maxValue}}", + "select_species_diameter_invalid": "El diámetro no es válido", + "select_species_height_invalid": "La altura no es válida", + "select_species_tag_id_required": "El ID de la etiqueta es obligatorio", + "select_species_tagged_for_identification": "Este árbol ha sido etiquetado para su identificación.", + "select_species_unknown": "Desconocido", + "select_species_search_specie_not_present": "La especie '{{searchText}}' no está presente", + "select_species_search_atleast_3_characters": "Introduce al menos 3 caracteres para obtener un mejor resultado", + "select_species_looks_empty_here": "¡Parece que está vacío!", + "select_species_add_species_desscription": "Añade especies a tu lista buscando en las especies", + "select_species_tree_species": "Especies de árboles", + "sample_one_tree_for_each_species": "Por favor, tome una muestra de al menos un árbol por cada especie plantada.", + "species_name": "Nombre de la especie", + "add_image": "Añadir imagen", + "species_description": "Descripción", + "type_description_here": "Escriba aquí la descripción", + "sync": "Sincronización", + "species_sync_might_take_time": "Sincronizando especies, esto puede llevar algún tiempo.", + "all_species_synced": "Todas las especies están sincronizadas.", + "sync_required_message": "¡Tus especies no se han sincronizado completamente en línea!\n\nAl cerrar la sesión se eliminarán estas especies, así que considera la posibilidad de sincronizarlas primero.", + "measurement_diameter_info": "Si un árbol tiene una altura superior a {{height}} {{unit}} , mida el diámetro del tronco en {{height}} {{unit}} (DAP). En caso contrario, mida el diámetro del tronco en la base del árbol (diámetro basal)", + "check_again": "Vuelve a comprobarlo", + "not_optimal_ratio": "Relación no óptima", + "not_optimal_ratio_message": "La relación altura-diámetro no se encuentra entre el rango de relación óptima que está entre 2:1 (altura-diámetro mínimo) y 160:1 (altura-diámetro máximo). ¿Está seguro de que desea continuar?", + "delete_species": "¿Borrar especies?", + "delete_species_delete_sample_tree_warning": "Si elimina esta especie, también se eliminarán los árboles de muestra relacionados con esta especie. ¿Está seguro de que quiere borrarla?", + "zero_tree_count_species_delete_sample_tree_warning": "Esta especie se eliminará si el recuento de árboles se establece en 0 y el árbol o árboles de muestra relacionados con esta especie también se eliminarán. ¿Está seguro de que quiere poner el número de árboles en cero?", + "tree_is_still_alive": "El árbol sigue vivo.", + "select_intensity_for_remeasurement": "Seleccione el porcentaje de árboles que volverá a medir del número total de árboles de muestra plantados", + "select_frequency_for_remeasurement": "Seleccione la frecuencia después de la cual volverá a medir los árboles de muestra.", + "cant_change_frequency": "No puedes cambiar la frecuencia por ahora.", + "cant_change_intensity": "No puedes cambiar la intensidad por ahora.", + "remove_species": "Eliminar especies", + "sure_remove_species": "¿Estás seguro de que quieres eliminar esta especie de tus favoritos?", + "remove": "Eliminar", + "cancel": "Cancelar", + "explore_and_manage_species": "Explorar y gestionar especies.", + "search": "Buscar ", + "number_species": "60.000 especies", + "add_species_in_fav": "y agregar especies a \n Tus favoritos" +} diff --git a/src/locales/languages/es/user/speciesSyncError.json b/src/locales/languages/es/user/speciesSyncError.json new file mode 100644 index 000000000..db86c9f12 --- /dev/null +++ b/src/locales/languages/es/user/speciesSyncError.json @@ -0,0 +1,10 @@ +{ + "species_sync_error_heading": "La sincronización de especies está incompleta", + "species_sync_error_text": "La sincronización de especies es necesaria para añadir especies en el inventario. Sincroniza cuando la conexión a Internet esté disponible.", + "something_went_wrong": "Algo salió mal.", + "no_internet_connection": "No hay conexión a Internet", + "verify_email": "Verifique su correo electrónico", + "verify_email_message": "Por favor, verifique su correo electrónico antes de iniciar sesión.", + "species_sync_update_alert_title": "Actualizar especies", + "species_sync_update_alert_message": "La actualización de las especies requiere Internet y puede tardar un poco en completarse. ¿Estás seguro de que quieres continuar?" +} \ No newline at end of file diff --git a/src/locales/languages/es/user/treeInventory.json b/src/locales/languages/es/user/treeInventory.json new file mode 100644 index 000000000..af29b15ee --- /dev/null +++ b/src/locales/languages/es/user/treeInventory.json @@ -0,0 +1,31 @@ +{ + "tree_inventory_loading_modal": "Cargando .......", + "tree_inventory_left_text": "Carga pendiente", + "tree_inventory_left_text_uploading": "Carga en curso", + "tree_inventory_right_text": "Subir ahora", + "tree_inventory_view_upload": "Ver todos los elementos subidos", + "tree_inventory_incomplete_registrations": "Registros incompletos", + "tree_inventory_list_header": "Inventario de arboles", + "tree_inventory_list_sub_header": "Campo vacío, por favor registra algunos árboles para verlos.", + "tree_inventory_empty_list_header": "Inventario de arboles", + "tree_inventory_list_container_sub_header": "El inventario se limpiará después de que se complete la carga", + "tree_inventory_upload_list_header": "Elementos cargados", + "tree_inventory_upload_empty_btn_text": "Volver al Inventario", + "tree_inventory_alert_header": "¿Estás seguro?", + "tree_inventory_alert_sub_header": "Los registros están seguros en la nube. Una vez que los registros son eliminados, actualmente no es posible recuperarlos en esta aplicación.", + "tree_inventory_alert_sub_header2": "Las imágenes se borrarán del sistema de archivos. Todavía podrá ver las imágenes con una buena conexión a Internet.", + "tree_inventory_alert_primary_btn_text": "Borrar ", + "tree_inventory_free_up_space": "Liberar espacio", + "tree_inventory_off_site": "Fuera de la ubicación", + "tree_inventory_on_site": "En la ubicación", + "tree_inventory_tree": "Árbol", + "tree_inventory_trees": "Árboles", + "tree_inventory_point": "Punto", + "tree_inventory_polygon": "Polígono", + "tree_inventory_upload_inventory_list": "Cargar lista de inventario", + "tree_inventory_inventory_list": "Lista de inventario", + "tree_inventory_overview_date": "{{item.title}}", + "tree_inventory_input_error": "Error de entrada", + "tree_inventory_input_error_message": "Por favor, introduzca una entrada válida", + "delete_incomplete_registrations_warning": "Estos registros aún no se han cargado y se borrarán para siempre si continúa." +} \ No newline at end of file diff --git a/src/locales/languages/es/user/treeReview.json b/src/locales/languages/es/user/treeReview.json new file mode 100644 index 000000000..c35b7ae29 --- /dev/null +++ b/src/locales/languages/es/user/treeReview.json @@ -0,0 +1,38 @@ +{ + "tree_review_header": "Revisar", + "tree_review_next_btn": "Próximo árbol", + "tree_review_Save": "Guardar", + "tree_review_name_of_species": "Nombre de la especie", + "tree_review_diameter": "Diámetro", + "tree_review_height": "Altura", + "tree_review_location": "Ubicación", + "tree_review_specie": "Especies", + "tree_review_unable": "Imposible de identificar", + "tree_review_tree_tag_header": "Etiqueta del árbol", + "tree_review_specie_text": "{{specieText}}", + "tree_review_specie_diameter": "{{specieDiameter}}cm", + "tree_review_plantation_date": "FECHA DE LA SIEMBRA", + "tree_review_project": "Proyecto", + "tree_review_unassigned": "No asignado", + "tree_review_plantation_date_text": "{{date, ll}}", + "tree_review_alrighty": "Completar", + "tree_review_register_planting_date": "Registrar la fecha de plantación", + "tree_review_delete": "Borrar", + "tree_review_details": "Detalles del árbol", + "tree_review_not_tagged": "No etiquetado", + "tree_review_delete_not_yet_uploaded_registration": "El registro aún no está cargado en Plant-for-the-Planet. Una vez eliminado se perderá para siempre.", + "tree_review_delete_uploaded_registration": "Los registros están seguros en la nube. Una vez que los registros son eliminados, actualmente no es posible recuperarlos en esta aplicación.", + "tree_review_continue_to_species": "Continuar con las especies", + "tree_review_continue_to_review": "Continuar con la revisión", + "tree_review_continue_to_sampleTrees": "Continuar con los árboles de muestra", + "tree_review_continue_to_additional_data": "Continuar con los datos adicionales", + "skip": "Saltar y guardar", + "add_more_sample_trees": "Añadir más árboles de muestra", + "recommend_at_least_one_sample": "Algunas de las especies plantadas no han sido muestreadas. Le recomendamos que tome muestra de al menos un árbol por cada especie plantada.", + "no_species_found": "No se han encontrado especies", + "at_least_one_species": "Debe tener al menos 1 especie antes de añadir árboles de muestra", + "need_more_sample_trees": "Necesita más árboles de muestra", + "at_least_five_sample_trees": "Debe añadir al menos 5 árboles de muestra", + "project_not_assigned": "¡Proyecto no asignado!", + "project_not_assigned_message": "¿Está seguro de que quiere guardar este registro sin asignar un proyecto?" +} \ No newline at end of file diff --git a/src/locales/languages/fr/authentication/signUplabels.json b/src/locales/languages/fr/authentication/signUplabels.json new file mode 100644 index 000000000..2e780950f --- /dev/null +++ b/src/locales/languages/fr/authentication/signUplabels.json @@ -0,0 +1,29 @@ +{ + "signup": "Inscription complète", + "email": "Email", + "isPrivate": "J'accepte que mon nom soit publié sur le site Web et l'application Plant-for-the-Planet.", + "getNews": "J'accepte d'être contacté par l'organisation d'enfants et de jeunes \"Plant-for-the-Planet\" dans le cadre de l'actualité et des défis de plantation d'arbres.", + "firstname": "Prénom", + "lastname": "Nom de famille", + "tpo_title": "Organisation pour la \"Plantation d'arbres\"", + "education_title": "Ecole", + "signup_confirm": "Confirmer vos coordonnées.", + "individual": "Personne", + "company": "Entreprise", + "tpo_title_organisation": "Nom de {{roleText}}", + "create_profile": "Créer un profil", + "city": "VILLE", + "address": "ADRESSE", + "zipcode": "CODE POSTAL", + "account_type": "Type de compte", + "select_country": "Sélectionner un pays", + "select_role_type": "Sélectionner le type de compte", + "enter_first_name": "Entrer votre prénom", + "enter_last_name": "Entrer votre nom", + "enter_city_name": "Entrer nom de la ville", + "enter_zipcode": "Entrer le code postal", + "enter_address": "Entrer l'adresse", + "enter_organisation_name": "Entrer le nom de l'organisation", + "country": "Pays", + "change": "Changer" +} \ No newline at end of file diff --git a/src/locales/languages/fr/index.ts b/src/locales/languages/fr/index.ts new file mode 100644 index 000000000..6f6f570c0 --- /dev/null +++ b/src/locales/languages/fr/index.ts @@ -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, +}; diff --git a/src/locales/languages/fr/static/initialScreen.json b/src/locales/languages/fr/static/initialScreen.json new file mode 100644 index 000000000..9631467d5 --- /dev/null +++ b/src/locales/languages/fr/static/initialScreen.json @@ -0,0 +1,11 @@ +{ + "updating_species": "Mise à jour de l'espèces", + "running_migration": "Lancer une migration", + "migration_description": "Vous avez récemment mis à jour votre application. Ne pas fermer l'application car nous appliquons des modifications pour assurer la compatibilité.", + "species_data_status": "Vérification de l'état des données sur les espèces.", + "downloading_archive": "Télécharger des archives des espèces.", + "unzipping_archive": "Décompressage de l'archive des espèces.", + "fetch_and_add_species_to_database": "Récupération et ajout d'espèces dans la base de données.", + "species_data_loaded": "Données sur les espèces chargées.", + "please_wait": "Veuillez patienter ..." +} \ No newline at end of file diff --git a/src/locales/languages/fr/static/permission.json b/src/locales/languages/fr/static/permission.json new file mode 100644 index 000000000..fc3807032 --- /dev/null +++ b/src/locales/languages/fr/static/permission.json @@ -0,0 +1,10 @@ +{ + "permission_camera_title": "Autorisation d'utiliser la caméra", + "permission_camera_message": "Nous avons besoin de votre autorisation pour utiliser votre appareil photo.", + "permission_camera_ok": "OK", + "permission_camera_cancel": "Annuler", + "storage_permission_android_title": "Autorisation de stockage", + "storage_permission_android_message": "L'application a besoin d'accéder à la mémoire pour télécharger le fichier", + "storage_permission_denied_header": "Permission refusée!", + "storage_permission_denied_sub_header": "Vous devez donner l'autorisation de stockage pour enregistrer le fichier geoJSON" +} \ No newline at end of file diff --git a/src/locales/languages/fr/static/welcomeScreen.json b/src/locales/languages/fr/static/welcomeScreen.json new file mode 100644 index 000000000..de67eba30 --- /dev/null +++ b/src/locales/languages/fr/static/welcomeScreen.json @@ -0,0 +1,13 @@ +{ + "login": "Se connecter / S'inscrire", + "tree_mapper": "TreeMapper", + "tree_inventory": "Inventaire forestier", + "tree_inventory_sub_header": "Inscriptions en projet et en attente", + "download_maps": "Télécharger les cartes", + "download_maps_sub_header": "pour une utilisation hors ligne", + "register_tree": "Enregistrer l'arbre", + "loading_content": "Chargement du contenu...", + "add": "Ajouter", + "plots": "Parcelles", + "map": "Carte" +} diff --git a/src/locales/languages/fr/user/additionalData.json b/src/locales/languages/fr/user/additionalData.json new file mode 100644 index 000000000..817f96baa --- /dev/null +++ b/src/locales/languages/fr/user/additionalData.json @@ -0,0 +1,92 @@ +{ + "additional_data_form": "Formulaire", + "additional_data_metadata": "Métadonnées", + "select_element": "Sélectionner l'élément", + "input": "Entrée", + "yes_no": "Oui/Non", + "gap": "Gap", + "dropdown": "Dropdown", + "formula": "Formule", + "heading": "Intitulé", + "page": "Page", + "add_field": "Ajouter un champ", + "advance_mode": "Mode avancé", + "add_element": "Ajouter un élément", + "update_element": "Élément de mise à jour", + "add_input": "Ajouter une entrée", + "edit_input": "Modifier l'entrée", + "add_dropdown": "Ajouter un menu déroulant", + "edit_dropdown": "Modifier la liste déroulante", + "add_heading": "Ajouter un titre", + "edit_heading": "Modifier l'en-tête", + "add_yes_no": "Ajouter Oui/Non", + "edit_yes_no": "Editer Oui/Non", + "add_gap_element": "Ajouter un écart", + "edit_gap_element": "Editer l'écart", + "atleast_1_tree_type_required": "Au moins un type d'arbre est requis", + "atleast_1_registration_type_required": "Au moins un type d'enregistrement est requis", + "field_key_required": "La clé du champ est obligatoire", + "invalid_key_error": "La clé du champ ne peut contenir que des lettres, des chiffres et des caractères spéciaux (-, _ et espace)", + "atleast_2_dropdown_option_required": "Au moins deux options de liste déroulante sont requises", + "field_value_required": "La valeur du champ est obligatoire", + "field_name_required": "Le nom du champ est obligatoire", + "get_started_forms": "Commencez avec les formulaires", + "get_started_forms_description": "- Ce formulaire vous permet de recueillir des données supplémentaires pour chaque enregistrement.\n- Vous pouvez personnaliser les éléments du formulaire en fonction du type d'arbre, c'est-à-dire unique, multiple ou échantillon.\n- Vous pouvez également le personnaliser en fonction du lieu d'enregistrement, qu'il soit hors site ou sur site.", + "gap_element": "Élément d'écart", + "form_page": "Page {{pageNo}}", + "loading_form": "Formulaire de chargement", + "loading_form_editor": "Chargement de l'éditeur de formulaire", + "required_field": "Ceci est nécessaire", + "make_this_public": "Rendre ces données publiques", + "single": "Simple", + "sample": "Echantillon", + "multiple": "Multiple", + "on_site": "Sur le site", + "off_site": "Hors site", + "review": "Compte rendu", + "registrationType": "Type d'enregistrement", + "treeType": "Type d'arbre", + "additional_data_field_name": "Nom du champ", + "additional_data_field_key": "Clé de champ", + "additional_data_field_type": "Type de champ", + "additional_data_heading": "Intitulé", + "additional_data_field_key_placeholder": "Touche Entrée", + "additional_data_field_value": "Valeur du champ", + "additional_data_field_value_placeholder": "Entrez la valeur", + "additional_data_default_value": "Valeur par défaut", + "yes": "Oui", + "no": "Non", + "dropdown_options": "Options de la liste déroulante", + "add_dropdown_option": "Ajouter une option de liste déroulante", + "text": "Texte", + "number": "Numéro", + "all": "Tous", + "default_value_only_number": "La valeur par défaut ne peut être qu'un nombre", + "create_metadata": "Créer des métadonnées", + "get_started_metadata": "Commencez avec les métadonnées", + "get_started_metadata_description": "- Ici, vous pouvez ajouter les données qui seront incluses dans tous les enregistrements d'arbres.\n- Vous pouvez spécifier le niveau d'accès pour chaque donnée, qu'elle soit publique ou privée.", + "invalid_number_input": "Seuls les chiffres sont autorisés", + "add_metadata": "Ajouter des métadonnées", + "import_data": "Importation", + "import_data_desc": "Importation de données à partir d'un fichier exporté par TreeMapper", + "export_data": "Exportation", + "export_data_desc": "Exportez les données pour vous assurer que vos modifications sont enregistrées ou partagez-les avec d'autres personnes.", + "export_additional_data_title": "Exportation des données supplémentaires du TreeMapper", + "export_additional_data_message": "JSON pour importer facilement vos données supplémentaires TreeMapper dans l'application en quelques clics.", + "share_additional_data_error": "Je ne suis pas en mesure de partager des données supplémentaires pour le moment.", + "create_form": "Créer un formulaire", + "import_file_error": "Impossible d'importer le fichier pour le moment.", + "confirm_wipe_additional_data_import": "Effacer les données et importer les données", + "current_additional_data_lost": "Toutes vos données actuelles dans les formulaires et les métadonnées seront perdues afin d'importer de nouvelles données. Cela affectera également les enregistrements incomplets. Êtes-vous sûr de vouloir continuer ?", + "incorrect_format_additional_data_import": "Le format du fichier ne correspond pas au format requis.", + "incorrect_file_format": "Format de fichier incorrect", + "do_you_want_to_delete_page": "Voulez-vous supprimer la page {{pageTitle}}.", + "import_export_data": "Importer/Exporter des données", + "import_export_data_desc": "Vous pouvez importer à partir d'un fichier exporté de TreeMapper ou vous pouvez sauvegarder les données de votre form builder en les exportant.", + "importing_additional_data": "Importation de données supplémentaires pour le constructeur de formulaires.\nCela peut prendre un certain temps", + "public": "Public", + "private": "Privé", + "app": "App", + "no_additional_data_available": "Aucune donnée supplémentaire disponible", + "no_form_redirect_next_screen": "Aucune donnée de formulaire disponible.\nRedirection vers l'écran suivant." +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/downloadMap.json b/src/locales/languages/fr/user/downloadMap.json new file mode 100644 index 000000000..25306f31a --- /dev/null +++ b/src/locales/languages/fr/user/downloadMap.json @@ -0,0 +1,10 @@ +{ + "download_map_complete": "Téléchargement de la carte terminé", + "download_map_area": "Télécharger cette zone?", + "download_map": "Télécharger", + "download_map_view": "Tout voir", + "download_map_area_failed": "Impossible de télécharger la carte. Veuillez réessayer plus tard.", + "download_map_area_exists": "La carte a déjà été téléchargée.", + "network_error": "Erreur de réseau", + "network_error_message": "Pas de connexion Internet. Réessayer plus tard." +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/editUserProfilelabels.json b/src/locales/languages/fr/user/editUserProfilelabels.json new file mode 100644 index 000000000..7b2073dac --- /dev/null +++ b/src/locales/languages/fr/user/editUserProfilelabels.json @@ -0,0 +1,23 @@ +{ + "edit_profile": "Editer le profil", + "logout": "Se déconnecter", + "logout_anyway": "Se déconnecter tout de même", + "privacy_policy": "Politique de confidentialité", + "terms_of_service": "Conditions d'utilisation", + "imprint": "Imprimer", + "legal_docs": "Documents légaux", + "open_source_license": "Licence Open Source", + "edit": "Éditer", + "manage_offline": "Gérer les cartes hors ligne", + "manage_species": "Gérer les espèces", + "activity_logging": "Enregistrement des activités", + "activity_logs": "Journaux d'activité", + "all_backed_up": "Tous les changements sauvegardés", + "upload_pending": "{{count}} en attente", + "sync_remaining": "Synchronisation - {{count}} restant(s)", + "support": "Soutien", + "complete_signup": "Inscription complète", + "manage_projects": "Gérer les projets", + "additional_data": "Données supplémentaires", + "login_signup": "Se connecter / S'inscrire" +} diff --git a/src/locales/languages/fr/user/inventoryOverview.json b/src/locales/languages/fr/user/inventoryOverview.json new file mode 100644 index 000000000..b259710b8 --- /dev/null +++ b/src/locales/languages/fr/user/inventoryOverview.json @@ -0,0 +1,28 @@ +{ + "inventory_overview_polygon_left_text": "Type d'emplacement: {{locationType}}", + "inventory_overview_title_coordinates": "Coordonnées {{alphabetindex}}", + "inventory_overview_view_location": "Afficher l'emplacement", + "inventory_overview_select_species": "Sélectionnez au moins une espèce", + "inventory_overview_view_loc_modal_header": "Emplacement {{locationTitle}}", + "inventory_overview_loc": "{{locationTitle}}", + "inventory_overview_export_json_error": "Impossible d'enregistrer le fichier GeoJSON.", + "inventory_overview_export_json_success": "Le fichier GeoJSON a été exporté avec succès.", + "inventory_overview_export_json_message": "Choisir la cible pour l'exportation", + "inventory_overview_export_json_title": "Exportation GeoJSON", + "inventory_overview_add_species": "Espèces plantées", + "inventory_overview_add_sample_tree": "Echantillon d'arbre", + "inventory_overview_header_text": "Compte rendu", + "inventory_overview_sub_header": "Les arbres seront ajoutés à votre inventaire pour synchroniser lorsque vous aurez accès à Internet.", + "inventory_overview_left_text": "Date de plantation", + "inventory_overview_left_text_planted_species": "Espèce plantée", + "inventory_overview_loc_left_text": "{{item.aliases}}", + "inventory_overview_loc_right_text": "{{item.treeCount}} arbres", + "inventory_overview_loc_export_json": "Exporter GeoJson", + "inventory_overview_loc_next_tree": "Arbre suivant", + "inventory_overview_loc_save": "Sauver", + "inventory_overview_date": "{{date, ll}}", + "inventory_overview_cancel": "Annuler", + "inventory_overview_confirm": "Confirmer", + "inventory_overview_pick_a_date": "Choisir une date", + "error_saving_inventory": "Erreur lors de la sauvegarde de l'inventaire" +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/locateTree.json b/src/locales/languages/fr/user/locateTree.json new file mode 100644 index 000000000..096089b60 --- /dev/null +++ b/src/locales/languages/fr/user/locateTree.json @@ -0,0 +1,25 @@ +{ + "locate_tree_header": "Localiser les arbres", + "locate_tree_heading": "Sur place (Préféré)", + "locate_tree_sub_heading": "Collecte des polygones et des images pour une précision et une vérifiabilité élevées", + "locate_tree_off_site": "Polygone - Hors site", + "locate_tree_off_site_sub_heading": "Collecte Polygon. Préférable lors de l'inscription depuis le bureau.", + "locate_tree_off_site_point_heading": "Point - Hors site ", + "locate_tree_off_site_point_sub_heading": "Latitude et longitude uniquement", + "locate_tree_geo_json": "Télécharger GeoJson", + "info_graphic_header_1": "Très bien!", + "info_graphic_sub_header_1": "Maintenant, passez au coin suivant et appuyez sur Continuer lorsque vous êtes prêt", + "info_graphic_header_2": "Génial!", + "info_graphic_header_3": "Génial!", + "info_graphic_sub_header_2": "Maintenant, passez au coin suivant et appuyez sur Continuer lorsque vous êtes prêt", + "info_graphic_sub_header_3": "Si le coin suivant est votre point de départ, appuyez sur Terminé. Sinon, veuillez marcher jusqu'au coin suivant.", + "locate_tree_map_marking_sub_header": "Veuillez visiter le premier coin de la plantation et sélectionnez votre emplacement.", + "locate_tree_add_marker_valid": "Vous êtes au même endroit. Veuillez marcher jusqu'à l'emplacement suivant.", + "locate_tree_add_marker_invalid": "Vous êtes très loin de votre position actuelle.", + "locate_tree_cannot_mark_location": "Impossible de marquer cet emplacement.", + "locate_tree_alphabets": "ABCDEFGHIJKLMNOPQRSTUVWXYZ", + "locate_tree_location": "Emplacement", + "locate_tree_cannot_record_tree": "Impossible d'enregistrer l'arbre échantillon.", + "locate_tree_cannot_record_tree_outside_polygon": "L'arbre échantillon ne peut être enregistré qu'à l'intérieur du site marqué.", + "locate_tree_unable_to_retrieve_location": "Impossible de récupérer l'emplacement." +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/logs.json b/src/locales/languages/fr/user/logs.json new file mode 100644 index 000000000..c9fb9f2cc --- /dev/null +++ b/src/locales/languages/fr/user/logs.json @@ -0,0 +1,9 @@ +{ + "logs_page_title": "Afficher les journaux d'activité", + "logs_all": "Tous", + "logs_errors": "Erreurs", + "logs_date": "{{item.title}}", + "share_activity_logs_title": "Partager les journaux d'activité", + "share_logs_file_name": "Journaux de TreeMapper v{{version}} ", + "creating_logs_file_share": "Création d'un fichier de logs à partager.\n Cela peut prendre un certain temps" +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/manageUser.json b/src/locales/languages/fr/user/manageUser.json new file mode 100644 index 000000000..2a99720c8 --- /dev/null +++ b/src/locales/languages/fr/user/manageUser.json @@ -0,0 +1,4 @@ +{ + "manage_user_header": "Gérer les utilisateurs", + "manage_user_sub_header": "Liste de tous les utilisateurs que vous avez invités à utiliser l'Inventaire Forestier" +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/mapMarking.json b/src/locales/languages/fr/user/mapMarking.json new file mode 100644 index 000000000..a3b795d1e --- /dev/null +++ b/src/locales/languages/fr/user/mapMarking.json @@ -0,0 +1,25 @@ +{ + "permission_blocked": "Autorisation bloquée", + "permission_blocked_message": "Donner l'autorisation de localisation pour vous inscrire un arbre sur le site.", + "open_settings": "Ouvrir les paramètres", + "back": "Retour", + "ok": "OK", + "permission_denied": "Permission refusée", + "permission_denied_message": "Donner l'autorisation de localisation pour vous inscrire un arbre sur le site.", + "gps_accuracy": "Précision GPS", + "accuracy_info": "Pour améliorer la précision de votre GPS: \n1. Assurez-vous que vous êtes à l'extérieur \n2. Marchez un peu, \nTreeMapper ne fonctionne correctement que lorsque l'emplacement est précis à 30 mètres.", + "green": "Vert", + "green_info": "= Précis à 10 mètres", + "yellow": "Jaune", + "yellow_info": "= Précis à 30 mètres", + "red": "Vert", + "red_info": "= Supérieur à 30 mètres", + "close": "Fermer", + "poor_accuracy": "Mauvaise précision", + "poor_accuracy_message": "La précision de votre position est FAIBLE, ce qui n'est pas recommandé. Es-tu sur de vouloir continuer?", + "try_again": "Essayer à nouveau", + "continue": "Pousuivre", + "location_service": "Service de localisation", + "location_service_message": "Les paramètres de localisation ne sont pas satisfaits. Assurez-vous d'avoir donné l'autorisation de localisation à l'application et d'avoir activé le GPS", + "cancel": "Annuler" +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/projects.json b/src/locales/languages/fr/user/projects.json new file mode 100644 index 000000000..5d09a40cf --- /dev/null +++ b/src/locales/languages/fr/user/projects.json @@ -0,0 +1,8 @@ +{ + "add_new_project": "Ajouter un nouveau projet", + "add_new_project_desc": "Ajouter des projets pour mettre en valeur vos progrès passés ou pour recevoir des dons pour en planter davantage.", + "select_project": "Sélectionner un Projet", + "select_project_desc": "Les arbres que vous pouvez enregistrer peuvent être associés à un projet spécifique.", + "continue_without_project": "Continuer sans projet", + "continue_without_project_desc": "Les arbres ne seront pas associés à un projet." +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/registerTreeslabels.json b/src/locales/languages/fr/user/registerTreeslabels.json new file mode 100644 index 000000000..473a598ea --- /dev/null +++ b/src/locales/languages/fr/user/registerTreeslabels.json @@ -0,0 +1,28 @@ +{ + "register_trees": "Enregistrer les arbres", + "register_trees_description": "Conseil: Vous pouvez trouver des inscriptions incomplètes sur l'Inventaire Forestier", + "tree_registration_type_1": "Arbre seul", + "tree_registration_type_2": "Arbres multiples", + "tree_registration_type_1_sub_header": "Permet des mesures de haute précision", + "tree_registration_type_2_sub_header": "Ajouter de nombreux arbres avec des nombres différents.", + "tree_map_marking_header": "Emplacement de l'arbre", + "tree_map_marking_btn": "Sélectionner l'emplacement et continuer", + "alright_modal_sub_header": "Prendre une photo sur laquelle l'arbre entier est visible", + "alright_modal_header": "Date/heure de la photo!", + "alright_modal_white_btn": "Retourner", + "alright_modal_off_site_sub_header": "Nous voyons que vous êtes loin de l’arbre. Cliquer sur continuer pour ajouter des détails sur l'arborescence.", + "alright_modal_off_site_header": "Hors site activé!", + "image_capturing_header": "Photo", + "image_capturing_sub_header": "Prendre une photo face à un arbre planté.", + "image_capturing_required": "La photo est requise.", + "coming_soon": "Arrive bientôt!", + "image_click_picture": "Prendre une photo", + "image_retake": "Reprendre", + "sample_tree_marking_heading": "Arbre échantillon {{ongoingSampleTreeNumber}} de {{sampleTreesCount}}", + "sample_tree_review_tree_number": "Arbre de révision {{ongoingSampleTreeNumber}} de {{sampleTreesCount}}", + "alright_modal_skip": "Sauter", + "total_trees_header": "Total des arbres", + "add_all_trees_planted_on_site": "Ajouter la liste de tous les arbres plantés sur le site.", + "select_species_and_add_sample": "Sélectionnez une espèce dans la liste ci-dessous et ajoutez un arbre échantillon pour cette espèce.", + "select_species": "Sélectionnez les espèces" +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/sampleTrees.json b/src/locales/languages/fr/user/sampleTrees.json new file mode 100644 index 000000000..0ce715c7f --- /dev/null +++ b/src/locales/languages/fr/user/sampleTrees.json @@ -0,0 +1,12 @@ +{ + "sample_trees": "Echantillon d'arbre", + "tree": "Arbre", + "trees": "Arbres", + "next_step_to_measure_sample_trees_text": "Dans les étapes suivantes, il vous sera demandé de mesurer des échantillons d'arbres pour le site de plantation.", + "recommend_at_least_sample_trees": "Nous recommandons de prélever au moins de 5 à 10 échantillons d'arbres au hasard.", + "how_many_sample_trees_to_record": "Combien d'arbres souhaitez-vous enregistrer?", + "invalid_tree_count": "Nombre d'arbres invalide", + "enter_valid_tree_count": "Vous devez échantillonner au moins 5 arbres.", + "add_another": "Ajouter un autre", + "add_sample_tree": "Ajouter un arbre échantillon" +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/savedAreas.json b/src/locales/languages/fr/user/savedAreas.json new file mode 100644 index 000000000..1f56a7dbb --- /dev/null +++ b/src/locales/languages/fr/user/savedAreas.json @@ -0,0 +1,6 @@ +{ + "save_areas_delete": "Effacer", + "save_areas_header": "Zones enregistrées", + "save_areas_offline": "Aucune zone hors connexion trouvée", + "save_areas_add_area": "Ajouter une zone" +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/selectSpecies.json b/src/locales/languages/fr/user/selectSpecies.json new file mode 100644 index 000000000..96305116a --- /dev/null +++ b/src/locales/languages/fr/user/selectSpecies.json @@ -0,0 +1,77 @@ +{ + "select_species_local_name": "{{item.localName}}", + "select_species_name_of_tree": "{{item.aliases}}", + "select_species_tree_count": "{{count}} Arbres", + "select_species_tree_count_modal_header": "Combien", + "select_species_tree_count_modal_sub_header": "{{specieName}}", + "select_species_tree_count_modal_sub_header_2": "Avez-vous planté?", + "select_species_modal_label": "Nombre d'arbres", + "select_species_header": "Sélectionner l'espèce", + "select_species_sub_header": "Veuillez sélectionner les espèces qui ont été plantées.", + "select_species_btn_text": "Enregistrer & Continuer", + "select_species_search": "Rechercher", + "select_species_card": "Carte des espèces", + "select_species_add_measurements": "Ajouter des mesures", + "select_species_diameter": "Diamètre", + "measurement_basal_diameter": "Diamètre basal", + "measurement_DBH": "Diamètre à hauteur de poitrine (DBH)", + "select_species_height": "Hauteur", + "select_species_tree_tag": "Balise d'arbre", + "select_species_inches": "Pouce", + "select_species_feet": "Pied", + "select_species_continue": "Poursuivre", + "select_species_enter_name": "Saisir l'espèce", + "select_species_error": "Erreur", + "select_species_enter_valid_input": "Entrer une donnée valide", + "select_species_ok": "OK", + "select_species_already_added": "Vous avez déjà ajouté {{scientificName}}.", + "select_species_adding_species": "Ajout d'espèces...", + "select_species_add_species": "Ajouter des espèces", + "select_species_subheading": "La liste des espèces sera mise à jour à mesure que vous tapez. Click + pour l'ajouter à votre profil.", + "select_species_species_selected": "{{length}} espèces sélectionnées", + "select_species_search_species": "Rechercher des espèces", + "select_species_done": "Terminé", + "select_species_add_name": "Ajouter un nom", + "select_species_my_species": "Mes espèces", + "select_species_diameter_more_than_error": "Le diamètre doit être compris entre {{minValue}} et {{maxValue}}.", + "select_species_height_more_than_error": "La hauteur doit être comprise {{minValue}} et {{maxValue}}. ", + "select_species_diameter_invalid": "Le diamètre n'est pas valide", + "select_species_height_invalid": "La hauteur n'est pas valide", + "select_species_tag_id_required": "L'identifiant de balise est requis", + "select_species_tagged_for_identification": "Cet arbre a été étiqueté pour identification.", + "select_species_unknown": "Inconnu", + "select_species_search_specie_not_present": "L'espèce '{{searchText}}' n'est pas présente", + "select_species_search_atleast_3_characters": "Entrer au moins 3 caractères pour obtenir un meilleur résultat", + "select_species_looks_empty_here": "Ça a l'air vide ici!", + "select_species_add_species_desscription": "Ajouter des espèces à votre liste par recherche", + "select_species_tree_species": "Espèces d'Arbres", + "sample_one_tree_for_each_species": "Veuillez échantillonner au moins un arbre pour chaque espèce plantée.", + "species_name": "Nom d'espèce", + "add_image": "Ajouter une image", + "species_description": "Description", + "type_description_here": "Saisisr la description ici", + "sync": "Synchronisarion", + "species_sync_might_take_time": "Synchroniser les espèces, peut prendre un certain temps.", + "all_species_synced": "Toutes les espèces sont synchronisées.", + "sync_required_message": "Votre espèce n'est pas entièrement synchronisée en ligne! \n\nLa déconnexion entraînera la suppression de cet espèce. Veuillez donc commencer par les synchroniser.", + "measurement_diameter_info": "Si un arbre a une hauteur supérieure à {{height}} {{unit}} , veuillez mesurer le diamètre du tronc à {{height}} {{unit}} (DBH). Sinon, veuillez mesurer le diamètre du tronc à la base de l'arbre (diamètre basal)", + "check_again": "Vérifiez à nouveau", + "not_optimal_ratio": "Rapport non optimal", + "not_optimal_ratio_message": "Le rapport hauteur/diamètre ne se situe pas dans la fourchette optimale, qui va de 2:1 (hauteur/diamètre minimum) à 160:1 (hauteur/diamètre maximum). Êtes-vous sûr de vouloir continuer ?", + "delete_species": "Supprimer les espèces ?", + "delete_species_delete_sample_tree_warning": "Si vous supprimez cette espèce, le ou les arbres échantillons liés à cette espèce seront également supprimés. Etes-vous sûr que vous voulez supprimer ?", + "zero_tree_count_species_delete_sample_tree_warning": "Cette espèce sera supprimée si le nombre d'arbres est fixé à 0 et le ou les arbres échantillons liés à cette espèce seront également supprimés. Êtes-vous sûr de vouloir fixer le nombre d'arbres à zéro ?", + "tree_is_still_alive": "L'arbre est toujours vivant", + "select_intensity_for_remeasurement": "Sélectionnez le pourcentage d'arbres que vous mesurerez à nouveau par rapport au nombre total d'arbres échantillons plantés.", + "select_frequency_for_remeasurement": "Sélectionnez la fréquence après laquelle vous mesurerez à nouveau les arbres d'échantillonnage.", + "cant_change_frequency": "Vous ne pouvez pas changer de fréquence pour l'instant.", + "cant_change_intensity": "Vous ne pouvez pas modifier l'intensité pour l'instant.", + "remove_species": "Supprimer des espèces", + "sure_remove_species": "Etes-vous sûr de vouloir supprimer cette espèce de vos favoris ?", + "remove": "Retirer", + "cancel": "Annuler", + "explore_and_manage_species": "Explorer et gérer les espèces", + "search": "Recherche ", + "number_species": "60 000 espèces ", + "add_species_in_fav": "et ajouter des espèces à \n vos favoris" +} diff --git a/src/locales/languages/fr/user/speciesSyncError.json b/src/locales/languages/fr/user/speciesSyncError.json new file mode 100644 index 000000000..2c9e21d70 --- /dev/null +++ b/src/locales/languages/fr/user/speciesSyncError.json @@ -0,0 +1,10 @@ +{ + "species_sync_error_heading": "La synchronisation des espèces est incomplète!", + "species_sync_error_text": "La synchronisation des espèces est nécessaire pour ajouter des espèces à l'inventaire. Synchroniser lorsque la connexion Internet est disponible.", + "something_went_wrong": "Un problème est survenu!", + "no_internet_connection": "Pas de connexion Internet!", + "verify_email": "Vérifier votre e-mail", + "verify_email_message": "Vérifier votre adresse e-mail avant de vous connecter.", + "species_sync_update_alert_title": "Mise à jour de l'espèces", + "species_sync_update_alert_message": "La mise à jour des espèces nécessite l'utilisation d'Internet et prend un certain temps jusqu'à ce qu'elle soit terminée. Êtes-vous sûr de vouloir continuer ?" +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/treeInventory.json b/src/locales/languages/fr/user/treeInventory.json new file mode 100644 index 000000000..558226157 --- /dev/null +++ b/src/locales/languages/fr/user/treeInventory.json @@ -0,0 +1,31 @@ +{ + "tree_inventory_loading_modal": "Téléchargement ...", + "tree_inventory_left_text": "En attente de téléchargement", + "tree_inventory_left_text_uploading": "Téléchargement en cours", + "tree_inventory_right_text": "Télécharger maintenant", + "tree_inventory_view_upload": "Afficher tous les éléments téléchargés", + "tree_inventory_incomplete_registrations": "Inscriptions incomplètes", + "tree_inventory_list_header": "Inventaire des arbres", + "tree_inventory_list_sub_header": "C'est vide. Enregistrer quelques arbres pour les afficher.", + "tree_inventory_empty_list_header": "Inventaire des arbres", + "tree_inventory_list_container_sub_header": "L'inventaire sera effacé une fois le téléchargement terminé", + "tree_inventory_upload_list_header": "Éléments téléchargés", + "tree_inventory_upload_empty_btn_text": "Retour à l'inventaire", + "tree_inventory_alert_header": "Êtes-vous sûr?", + "tree_inventory_alert_sub_header": "Les inscriptions sont sécurisées sur le cloud. Une fois les inscriptions supprimées, il n'est actuellement pas possible de les récupérer sur cette application.", + "tree_inventory_alert_sub_header2": "Les images seront supprimées du système de fichiers. Vous pourrez toujours voir les images avec une bonne connexion Internet.", + "tree_inventory_alert_primary_btn_text": "Suppression sécurisée", + "tree_inventory_free_up_space": "Libérer de l'espace", + "tree_inventory_off_site": "Hors site", + "tree_inventory_on_site": "Sur site", + "tree_inventory_tree": "Arbre", + "tree_inventory_trees": "Arbres", + "tree_inventory_point": "Point", + "tree_inventory_polygon": "Polygone", + "tree_inventory_upload_inventory_list": "Télécharger la liste d'inventaire", + "tree_inventory_inventory_list": "Liste d'inventaire", + "tree_inventory_overview_date": "{{item.title}}", + "tree_inventory_input_error": "Erreur d'entrée", + "tree_inventory_input_error_message": "Saisir une entrée valide", + "delete_incomplete_registrations_warning": "Ces enregistrements ne sont pas encore téléchargés et seront supprimés pour toujours si vous continuez." +} \ No newline at end of file diff --git a/src/locales/languages/fr/user/treeReview.json b/src/locales/languages/fr/user/treeReview.json new file mode 100644 index 000000000..2fe6e21f8 --- /dev/null +++ b/src/locales/languages/fr/user/treeReview.json @@ -0,0 +1,38 @@ +{ + "tree_review_header": "Compte rendu", + "tree_review_next_btn": "Arbre suivant", + "tree_review_Save": "Sauvegarder", + "tree_review_name_of_species": "Nom de l'espèce", + "tree_review_diameter": "Diamètre", + "tree_review_height": "Hauteur", + "tree_review_location": "EMPLACEMENT", + "tree_review_specie": "ESPÈCE", + "tree_review_unable": "Impossible d'identifier", + "tree_review_tree_tag_header": "ÉTIQUETTE D'ARBRE ", + "tree_review_specie_text": "{{specieText}}", + "tree_review_specie_diameter": "{{specieDiameter}}cm", + "tree_review_plantation_date": "DATE DE PLANTATION", + "tree_review_project": "Projet", + "tree_review_unassigned": "Non attribué", + "tree_review_plantation_date_text": "{{date, ll}}", + "tree_review_alrighty": "Compléter", + "tree_review_register_planting_date": "Enregistrer la date de plantation", + "tree_review_delete": "Effacer", + "tree_review_details": "Détails de l'arbre", + "tree_review_not_tagged": "Non étiqueté", + "tree_review_delete_not_yet_uploaded_registration": "L'enregistrement n'est pas encore téléchargé sur Plant-for-the-Planet. Une fois supprimé, il sera perdu à jamais.", + "tree_review_delete_uploaded_registration": "Cet enregistrement est sécurisé sur le cloud. Une fois cet enregistrement supprimé, il n'est actuellement pas possible de le récupérer sur cette application", + "tree_review_continue_to_species": "Continuer vers les espèces", + "tree_review_continue_to_review": "Poursuivre la révision", + "tree_review_continue_to_sampleTrees": "Continuer à échantillonner les arbres", + "tree_review_continue_to_additional_data": "Continuer vers des données supplémentaires", + "skip": "Skip & Save", + "add_more_sample_trees": "Ajouter d'autres arbres échantillons", + "recommend_at_least_one_sample": "Certaines des espèces plantées ne sont pas échantillonnées. Nous vous recommandons d'échantillonner au moins un arbre pour chaque espèce plantée.", + "no_species_found": "Aucune espèce trouvée", + "at_least_one_species": "Vous devez avoir au moins 1 espèce avant d'ajouter des arbres échantillons", + "need_more_sample_trees": "Besoin de plus d'arbres échantillons", + "at_least_five_sample_trees": "Vous devez ajouter au moins 5 arbres échantillons", + "project_not_assigned": "Projet non attribué !", + "project_not_assigned_message": "Êtes-vous sûr de vouloir enregistrer cet enregistrement sans attribuer de projet ?" +} \ No newline at end of file diff --git a/src/locales/languages/it/authentication/signUplabels.json b/src/locales/languages/it/authentication/signUplabels.json new file mode 100644 index 000000000..a69effaa8 --- /dev/null +++ b/src/locales/languages/it/authentication/signUplabels.json @@ -0,0 +1,29 @@ +{ + "signup": "Iscrizione completa", + "email": "EMAIL", + "isPrivate": "Accetto che il mio nome venga pubblicato sul sito web e sull'App di Plant-for-the-Planet.", + "getNews": "Sono d'accordo che potrei essere contattato dall'organizzazione per bambini e giovani Plant-for-the-Planet come parte delle notizie e delle sfide della piantagione di alberi.", + "firstname": "NOME", + "lastname": "COGNOME", + "tpo_title": "Organizzazione per la piantagione di alberi", + "education_title": "Scuola", + "signup_confirm": "Per favore, confermate i vostri dati.", + "individual": "Individuale", + "company": "Azienda", + "tpo_title_organisation": "NOME DI {{roleText}}", + "create_profile": "Creare un profilo", + "city": "CITTÀ", + "address": "INDIRIZZO", + "zipcode": "CODICE POSTALE", + "account_type": "Tipo di conto", + "select_country": "Seleziona il paese", + "select_role_type": "Seleziona il tipo di account", + "enter_first_name": "Inserisci il nome", + "enter_last_name": "Inserisci il cognome", + "enter_city_name": "Inserisci il nome della città", + "enter_zipcode": "Inserisci il codice postale", + "enter_address": "Inserire l'indirizzo", + "enter_organisation_name": "Inserisci il nome dell'organizzazione", + "country": "PAESE", + "change": "cambiare" +} \ No newline at end of file diff --git a/src/locales/languages/it/static/initialScreen.json b/src/locales/languages/it/static/initialScreen.json new file mode 100644 index 000000000..ae5db5bd0 --- /dev/null +++ b/src/locales/languages/it/static/initialScreen.json @@ -0,0 +1,11 @@ +{ + "updating_species": "Aggiornamento delle specie", + "running_migration": "Eseguire una migrazione", + "migration_description": "Hai recentemente aggiornato la tua app. Si prega di non chiudere l'app perché stiamo applicando le modifiche per garantire la compatibilità.", + "species_data_status": "Controllo dello stato dei dati delle specie.", + "downloading_archive": "Scaricare l'archivio delle specie.", + "unzipping_archive": "Decomprimere l'archivio delle specie.", + "fetch_and_add_species_to_database": "Recupero e aggiunta di specie nel database.", + "species_data_loaded": "Dati della specie caricati.", + "please_wait": "Si prega di attendere ..." +} \ No newline at end of file diff --git a/src/locales/languages/it/static/permission.json b/src/locales/languages/it/static/permission.json new file mode 100644 index 000000000..23f3ac473 --- /dev/null +++ b/src/locales/languages/it/static/permission.json @@ -0,0 +1,10 @@ +{ + "permission_camera_title": "Permesso di usare la macchina fotografica", + "permission_camera_message": "Abbiamo bisogno del suo permesso per usare la sua macchina fotografica.", + "permission_camera_ok": "OK", + "permission_camera_cancel": "Cancella", + "storage_permission_android_title": "Permesso di stoccaggio", + "storage_permission_android_message": "L'app ha bisogno di accedere alla memoria per scaricare il file", + "storage_permission_denied_header": "Permesso negato!", + "storage_permission_denied_sub_header": "È necessario dare il permesso di memorizzazione per salvare il file geoJSON" +} \ No newline at end of file diff --git a/src/locales/languages/it/static/welcomeScreen.json b/src/locales/languages/it/static/welcomeScreen.json new file mode 100644 index 000000000..8f6e8a07b --- /dev/null +++ b/src/locales/languages/it/static/welcomeScreen.json @@ -0,0 +1,13 @@ +{ + "login": "Accedi / Iscriviti", + "tree_mapper": "TreeMapper", + "tree_inventory": "Inventario degli alberi", + "tree_inventory_sub_header": "di progetti e registrazioni in sospeso", + "download_maps": "Scarica le mappe", + "download_maps_sub_header": "per uso offline", + "register_tree": "Registra alberi", + "loading_content": "Caricamento del contenuto...", + "add": "Aggiungere", + "plots": "Trame", + "map": "Carta geografica" +} diff --git a/src/locales/languages/it/user/additionalData.json b/src/locales/languages/it/user/additionalData.json new file mode 100644 index 000000000..6cbdf03c1 --- /dev/null +++ b/src/locales/languages/it/user/additionalData.json @@ -0,0 +1,92 @@ +{ + "additional_data_form": "Modulo", + "additional_data_metadata": "Metadati", + "select_element": "Seleziona l'elemento", + "input": "Ingresso", + "yes_no": "Sì/No", + "gap": "Gap", + "dropdown": "Dropdown", + "formula": "Formula", + "heading": "Direzione", + "page": "Pagina", + "add_field": "Aggiungi campo", + "advance_mode": "Modalità di avanzamento", + "add_element": "Aggiungere elemento", + "update_element": "Elemento di aggiornamento", + "add_input": "Aggiungere l'ingresso", + "edit_input": "Modifica ingresso", + "add_dropdown": "Aggiungi a discesa", + "edit_dropdown": "Modifica a discesa", + "add_heading": "Aggiungi intestazione", + "edit_heading": "Modifica intestazione", + "add_yes_no": "Aggiungere Sì/No", + "edit_yes_no": "Modifica Sì/No", + "add_gap_element": "Aggiungi Gap", + "edit_gap_element": "Modifica Gap", + "atleast_1_tree_type_required": "È richiesto almeno un tipo di albero", + "atleast_1_registration_type_required": "È richiesto almeno un tipo di registrazione", + "field_key_required": "La chiave del campo è richiesta", + "invalid_key_error": "La chiave di campo può contenere solo lettere, numeri e caratteri speciali (-, _ e spazio)", + "atleast_2_dropdown_option_required": "Sono necessarie almeno due opzioni a discesa", + "field_value_required": "Il valore del campo è richiesto", + "field_name_required": "Il nome del campo è richiesto", + "get_started_forms": "Iniziare con i moduli", + "get_started_forms_description": "- Questo modulo vi aiuta a raccogliere dati aggiuntivi per ogni registrazione.\n- Potete personalizzare gli elementi del modulo in base al tipo di albero, cioè singolo, multiplo o campione.\n- Potete anche personalizzarlo in base al luogo di registrazione, se è fuori sede o in loco.", + "gap_element": "Elemento Gap", + "form_page": "Pagina {{pageNo}}", + "loading_form": "Modulo di caricamento", + "loading_form_editor": "Caricamento dell'editor di moduli", + "required_field": "Questo è richiesto", + "make_this_public": "Rendere pubblici questi dati", + "single": "Singolo", + "sample": "Campione", + "multiple": "Multiplo", + "on_site": "Sul sito", + "off_site": "Fuori sede", + "review": "Recensire", + "registrationType": "Tipo di registrazione", + "treeType": "Tipo di albero", + "additional_data_field_name": "Nome del campo", + "additional_data_field_key": "Chiave di campo", + "additional_data_field_type": "Tipo di campo", + "additional_data_heading": "Direzione", + "additional_data_field_key_placeholder": "Tasto Invio", + "additional_data_field_value": "Valore del campo", + "additional_data_field_value_placeholder": "Inserire il valore", + "additional_data_default_value": "Valore predefinito", + "yes": "Sì", + "no": "No", + "dropdown_options": "Opzioni a discesa", + "add_dropdown_option": "Aggiungi un'opzione a discesa", + "text": "Testo", + "number": "Numero", + "all": "Tutti", + "default_value_only_number": "Il valore predefinito può essere solo numero", + "create_metadata": "Creare metadati", + "get_started_metadata": "Iniziare con i metadati", + "get_started_metadata_description": "- Qui puoi aggiungere i dati che saranno inclusi in tutte le registrazioni dell'albero.\n- Puoi specificare il livello di accesso per ogni dato, se può essere pubblico o privato.", + "invalid_number_input": "Sono ammessi solo i numeri", + "add_metadata": "Aggiungere metadati", + "import_data": "Importazione", + "import_data_desc": "Importazione di dati da un file esportato da TreeMapper", + "export_data": "Esportazione", + "export_data_desc": "Esporta i dati per assicurarti che le tue modifiche siano salvate o per condividerle con altri.", + "export_additional_data_title": "Esportare dati aggiuntivi TreeMapper", + "export_additional_data_message": "JSON per importare facilmente i tuoi dati aggiuntivi TreeMapper nell'app in semplici clic.", + "share_additional_data_error": "Non sono in grado di condividere ulteriori dati al momento.", + "create_form": "Creare un modulo", + "import_file_error": "Impossibile importare il file al momento.", + "confirm_wipe_additional_data_import": "Cancellare i dati e importare i dati", + "current_additional_data_lost": "Tutti i tuoi dati attuali nei moduli e nei metadati saranno persi per importare i nuovi dati. Questo riguarderà anche le registrazioni incomplete. Sei sicuro di voler continuare?", + "incorrect_format_additional_data_import": "Il formato del file non corrisponde al formato richiesto.", + "incorrect_file_format": "Formato di file errato", + "do_you_want_to_delete_page": "Vuoi cancellare la pagina {{pageTitle}}.", + "import_export_data": "Importazione/esportazione di dati", + "import_export_data_desc": "Puoi importare da un file esportato da TreeMapper o puoi salvare i dati del tuo costruttore di moduli esportandoli.", + "importing_additional_data": "Importare dati aggiuntivi per il costruttore di moduli.\nQuesto potrebbe richiedere del tempo", + "public": "Pubblico", + "private": "Privato", + "app": "App", + "no_additional_data_available": "Nessun dato aggiuntivo disponibile", + "no_form_redirect_next_screen": "Nessun dato del modulo disponibile.\nReindirizzamento alla schermata successiva." +} \ No newline at end of file diff --git a/src/locales/languages/it/user/downloadMap.json b/src/locales/languages/it/user/downloadMap.json new file mode 100644 index 000000000..f99d5d999 --- /dev/null +++ b/src/locales/languages/it/user/downloadMap.json @@ -0,0 +1,10 @@ +{ + "download_map_complete": "Scaricamento della mappa completo", + "download_map_area": "Scaricare quest'area?", + "download_map": "Scaricare", + "download_map_view": "Vedi tutto", + "download_map_area_failed": "Impossibile scaricare la mappa. Si prega di riprovare più tardi.", + "download_map_area_exists": "La mappa era già stata scaricata.", + "network_error": "Errore di rete", + "network_error_message": "Nessuna connessione internet. Si prega di riprovare più tardi." +} \ No newline at end of file diff --git a/src/locales/languages/it/user/editUserProfilelabels.json b/src/locales/languages/it/user/editUserProfilelabels.json new file mode 100644 index 000000000..e71ac5fbf --- /dev/null +++ b/src/locales/languages/it/user/editUserProfilelabels.json @@ -0,0 +1,23 @@ +{ + "edit_profile": "Modifica il profilo", + "logout": "Logout", + "logout_anyway": "Disconnettersi comunque", + "privacy_policy": "Politica sulla privacy", + "terms_of_service": "Condizioni di servizio", + "imprint": "Impronta", + "legal_docs": "Documenti legali", + "open_source_license": "Licenza Open Source", + "edit": "Modifica", + "manage_offline": "Gestire le mappe offline", + "manage_species": "Gestire le specie", + "activity_logging": "Registrazione delle attività", + "activity_logs": "Registri di attività", + "all_backed_up": "Tutte le modifiche hanno fatto il backup", + "upload_pending": "{{count}} in attesa", + "sync_remaining": "Sincronizzazione - {{count}} rimanente", + "support": "Supporto", + "complete_signup": "Completa l'iscrizione", + "manage_projects": "Gestire progetti", + "additional_data": "Dati aggiuntivi", + "login_signup": "Entra / registrati" +} diff --git a/src/locales/languages/it/user/inventoryOverview.json b/src/locales/languages/it/user/inventoryOverview.json new file mode 100644 index 000000000..94305de00 --- /dev/null +++ b/src/locales/languages/it/user/inventoryOverview.json @@ -0,0 +1,28 @@ +{ + "inventory_overview_polygon_left_text": "Tipo di posizione {{locationType}}", + "inventory_overview_title_coordinates": "Coordinate {{alphabetindex}}", + "inventory_overview_view_location": "Visualizza posizione", + "inventory_overview_select_species": "Seleziona almeno una specie", + "inventory_overview_view_loc_modal_header": "Posizione {{locationTitle}}", + "inventory_overview_loc": "{{locationTitle}}", + "inventory_overview_export_json_error": "Il file GeoJSON non può essere esportato.", + "inventory_overview_export_json_success": "Il file GeoJSON è stato esportato con successo.", + "inventory_overview_export_json_message": "Scegliere la destinazione per l'esportazione", + "inventory_overview_export_json_title": "Esportazione GeoJSON", + "inventory_overview_add_species": "Specie piantate", + "inventory_overview_add_sample_tree": "Alberi campione", + "inventory_overview_header_text": "Recensire", + "inventory_overview_sub_header": "Gli alberi saranno aggiunti al tuo inventario per sincronizzarsi quando hai internet.", + "inventory_overview_left_text": "Data dell'impianto", + "inventory_overview_left_text_planted_species": "Specie piantate", + "inventory_overview_loc_left_text": "{{item.aliases}}", + "inventory_overview_loc_right_text": "{{item.treeCount}} alberi", + "inventory_overview_loc_export_json": "Esportare GeoJson", + "inventory_overview_loc_next_tree": "Albero successivo", + "inventory_overview_loc_save": "Salva", + "inventory_overview_date": "{{date, ll}}", + "inventory_overview_cancel": "Cancellare", + "inventory_overview_confirm": "Confermare", + "inventory_overview_pick_a_date": "Scegli una data", + "error_saving_inventory": "Errore durante il salvataggio dell'inventario" +} \ No newline at end of file diff --git a/src/locales/languages/it/user/locateTree.json b/src/locales/languages/it/user/locateTree.json new file mode 100644 index 000000000..cb8488a1b --- /dev/null +++ b/src/locales/languages/it/user/locateTree.json @@ -0,0 +1,25 @@ +{ + "locate_tree_header": "Individuare gli alberi", + "locate_tree_heading": "Sul posto (preferito)", + "locate_tree_sub_heading": "Raccoglie poligoni e immagini per un'elevata precisione e verificabilità", + "locate_tree_off_site": "Fuori sede - Poligono", + "locate_tree_off_site_sub_heading": "Raccoglie Polygon. Meglio usare quando si registra dall'ufficio.", + "locate_tree_off_site_point_heading": "Fuori sede - Punto", + "locate_tree_off_site_point_sub_heading": "Solo latitudine e longitudine", + "locate_tree_geo_json": "Caricare GeoJson", + "info_graphic_header_1": "Bene!", + "info_graphic_sub_header_1": "Ora, per favore cammina fino al prossimo angolo e tocca continua quando sei pronto", + "info_graphic_header_2": "Grande!", + "info_graphic_header_3": "Grande!", + "info_graphic_sub_header_2": "Ora, per favore cammina fino al prossimo angolo e tocca continua quando sei pronto", + "info_graphic_sub_header_3": "Se il prossimo angolo è il tuo punto di partenza, tocca Complete. Altrimenti cammina fino al prossimo angolo.", + "locate_tree_map_marking_sub_header": "Visita il primo angolo della piantagione e seleziona la tua posizione", + "locate_tree_add_marker_valid": "Siete nella stessa posizione. Si prega di camminare fino alla prossima posizione.", + "locate_tree_add_marker_invalid": "Siete molto lontani dalla vostra posizione attuale.", + "locate_tree_cannot_mark_location": "Non è possibile contrassegnare questa posizione.", + "locate_tree_alphabets": "ABCDEFGHIJKLMNOPQRSTUVWXYZ", + "locate_tree_location": "Posizione", + "locate_tree_cannot_record_tree": "Impossibile registrare l'albero dei campioni.", + "locate_tree_cannot_record_tree_outside_polygon": "L'albero campione può essere registrato solo all'interno del sito segnato.", + "locate_tree_unable_to_retrieve_location": "Impossibile recuperare la posizione." +} \ No newline at end of file diff --git a/src/locales/languages/it/user/logs.json b/src/locales/languages/it/user/logs.json new file mode 100644 index 000000000..4dc2968b3 --- /dev/null +++ b/src/locales/languages/it/user/logs.json @@ -0,0 +1,9 @@ +{ + "logs_page_title": "Visualizza i registri di attività", + "logs_all": "Tutti", + "logs_errors": "Errori", + "logs_date": "{{item.title}}", + "share_activity_logs_title": "Condividere i registri delle attività", + "share_logs_file_name": "TreeMapper v{{version}} Logs", + "creating_logs_file_share": "Creazione di un file di log da condividere.\n Questo potrebbe richiedere del tempo" +} \ No newline at end of file diff --git a/src/locales/languages/it/user/manageUser.json b/src/locales/languages/it/user/manageUser.json new file mode 100644 index 000000000..c2b314ab6 --- /dev/null +++ b/src/locales/languages/it/user/manageUser.json @@ -0,0 +1,4 @@ +{ + "manage_user_header": "Gestire gli utenti", + "manage_user_sub_header": "Elenco di tutti gli utenti che hai invitato a usare l'inventario dell'albero" +} \ No newline at end of file diff --git a/src/locales/languages/it/user/mapMarking.json b/src/locales/languages/it/user/mapMarking.json new file mode 100644 index 000000000..706186c74 --- /dev/null +++ b/src/locales/languages/it/user/mapMarking.json @@ -0,0 +1,25 @@ +{ + "permission_blocked": "Permesso bloccato", + "permission_blocked_message": "È necessario dare il permesso di registrare l'albero in loco.", + "open_settings": "Aprire le impostazioni", + "back": "Indietro", + "ok": "Ok", + "permission_denied": "Permesso negato", + "permission_denied_message": "È necessario dare il permesso di registrare l'albero in loco.", + "gps_accuracy": "Precisione del GPS", + "accuracy_info": "Per migliorare la precisione del vostro GPS:\n1. Si assicuri di essere all'aperto.\n2. Cammina un po' in giro.\nTreeMapper funziona correttamente solo quando la posizione è precisa a 30 metri.", + "green": "Verde", + "green_info": "Preciso fino a 10 metri.", + "yellow": "Giallo", + "yellow_info": "Accurato fino a 30 metri.", + "red": "Rosso", + "red_info": "= Maggiore di 30 metri.", + "close": "Chiudere", + "poor_accuracy": "Scarsa precisione", + "poor_accuracy_message": "La precisione della tua posizione è POOR, il che non è raccomandato. Sei sicuro di voler continuare?", + "try_again": "Prova ancora", + "continue": "Continua", + "location_service": "Servizio di localizzazione", + "location_service_message": "Le impostazioni di localizzazione non sono soddisfatte. Assicurati di aver dato il permesso di localizzazione all'app e di aver attivato il GPS", + "cancel": "Cancellare" +} \ No newline at end of file diff --git a/src/locales/languages/it/user/projects.json b/src/locales/languages/it/user/projects.json new file mode 100644 index 000000000..3a2fbce82 --- /dev/null +++ b/src/locales/languages/it/user/projects.json @@ -0,0 +1,8 @@ +{ + "add_new_project": "Aggiungere un nuovo progetto", + "add_new_project_desc": "Aggiungi progetti per mostrare i tuoi progressi passati o per ricevere donazioni per piantarne altri.", + "select_project": "Seleziona Progetto", + "select_project_desc": "Gli alberi registrati possono essere associati a un progetto specifico.", + "continue_without_project": "Continuare senza un progetto", + "continue_without_project_desc": "Gli alberi non saranno associati a un progetto." +} \ No newline at end of file diff --git a/src/locales/languages/it/user/registerTreeslabels.json b/src/locales/languages/it/user/registerTreeslabels.json new file mode 100644 index 000000000..238113086 --- /dev/null +++ b/src/locales/languages/it/user/registerTreeslabels.json @@ -0,0 +1,28 @@ +{ + "register_trees": "Registrare gli alberi", + "register_trees_description": "Suggerimento: puoi trovare registrazioni incomplete nel tuo Inventario degli alberi", + "tree_registration_type_1": "Albero singolo", + "tree_registration_type_2": "Alberi multipli", + "tree_registration_type_1_sub_header": "Permette misure di alta precisione", + "tree_registration_type_2_sub_header": "Aggiungere molti alberi con conteggi diversi", + "tree_map_marking_header": "Posizione dell'albero", + "tree_map_marking_btn": "Seleziona la posizione e continua", + "alright_modal_sub_header": "Si prega di fare una foto in cui sia visibile l'intero albero", + "alright_modal_header": "Tempo di immagini!", + "alright_modal_white_btn": "Torna indietro", + "alright_modal_off_site_sub_header": "Vediamo che sei lontano dall'albero. Per favore clicca su continua per aggiungere dettagli sull'albero.", + "alright_modal_off_site_header": "Fuori dal sito abilitato!", + "image_capturing_header": "Immagine", + "image_capturing_sub_header": "Si prega di prendere una foto di fronte albero piantato.", + "image_capturing_required": "L'immagine è richiesta", + "coming_soon": "Prossimamente!", + "image_click_picture": "Scattare una foto", + "image_retake": "Retake", + "sample_tree_marking_heading": "Albero campione #{{ongoingSampleTreeNumber}} di{{sampleTreesCount}} ", + "sample_tree_review_tree_number": "Revisione dell'albero #{{ongoingSampleTreeNumber}} di{{sampleTreesCount}} ", + "alright_modal_skip": "Salta", + "total_trees_header": "Alberi Totali", + "add_all_trees_planted_on_site": "Si prega di aggiungere la lista di tutti gli alberi piantati nel sito.", + "select_species_and_add_sample": "Seleziona una specie dal basso e aggiungi un albero campione per quella specie.", + "select_species": "Selezionare le specie" +} \ No newline at end of file diff --git a/src/locales/languages/it/user/sampleTrees.json b/src/locales/languages/it/user/sampleTrees.json new file mode 100644 index 000000000..f54e19f66 --- /dev/null +++ b/src/locales/languages/it/user/sampleTrees.json @@ -0,0 +1,12 @@ +{ + "sample_trees": "Alberi campione", + "tree": "Albero", + "trees": "Alberi", + "next_step_to_measure_sample_trees_text": "Nei prossimi passi ti verrà chiesto di misurare degli alberi campione per il sito di piantagione.", + "recommend_at_least_sample_trees": "Si consiglia di prendere almeno 10-12 alberi campione a caso.", + "how_many_sample_trees_to_record": "Quanti alberi vorresti registrare?", + "invalid_tree_count": "Conteggio degli alberi non valido", + "enter_valid_tree_count": "Dovresti campionare almeno 5 alberi.", + "add_another": "Aggiungi un altro", + "add_sample_tree": "Aggiungi albero campione" +} \ No newline at end of file diff --git a/src/locales/languages/it/user/savedAreas.json b/src/locales/languages/it/user/savedAreas.json new file mode 100644 index 000000000..44fe6d101 --- /dev/null +++ b/src/locales/languages/it/user/savedAreas.json @@ -0,0 +1,6 @@ +{ + "save_areas_delete": "Cancellare", + "save_areas_header": "Aree salvate", + "save_areas_offline": "Nessuna area offline trovata", + "save_areas_add_area": "Aggiungi area" +} \ No newline at end of file diff --git a/src/locales/languages/it/user/selectSpecies.json b/src/locales/languages/it/user/selectSpecies.json new file mode 100644 index 000000000..2a3d9d3cc --- /dev/null +++ b/src/locales/languages/it/user/selectSpecies.json @@ -0,0 +1,77 @@ +{ + "select_species_local_name": "{{item.localName}}", + "select_species_name_of_tree": "{{item.aliases}}", + "select_species_tree_count": "{{count}} Alberi", + "select_species_tree_count_modal_header": "Quanti", + "select_species_tree_count_modal_sub_header": "{{specieName}}", + "select_species_tree_count_modal_sub_header_2": "hai piantato?", + "select_species_modal_label": "Conteggio degli alberi", + "select_species_header": "Selezionare le specie", + "select_species_sub_header": "Seleziona la specie che è stata piantata", + "select_species_btn_text": "Salva e continua", + "select_species_search": "Ricerca", + "select_species_card": "Scheda delle specie", + "select_species_add_measurements": "Aggiungi misure", + "select_species_diameter": "Diametro", + "measurement_basal_diameter": "Diametro basale", + "measurement_DBH": "Diametro all'altezza del seno (DBH)", + "select_species_height": "Altezza", + "select_species_tree_tag": "Etichetta dell'albero", + "select_species_inches": "Pollici", + "select_species_feet": "Piedi", + "select_species_continue": "CONTINUA", + "select_species_enter_name": "Inserisci il nome della pianta", + "select_species_error": "Errore", + "select_species_enter_valid_input": "Inserisci un input valido", + "select_species_ok": "OK", + "select_species_already_added": "Hai già aggiunto {{scientificName}}.", + "select_species_adding_species": "Aggiungere specie...", + "select_species_add_species": "Aggiungi specie", + "select_species_subheading": "L'elenco delle specie si aggiornerà man mano che digiti. Clicca per aggiungerla al tuo profilo.", + "select_species_species_selected": "{{length}} specie selezionate", + "select_species_search_species": "Cerca specie", + "select_species_done": "Fatto", + "select_species_add_name": "Aggiungi nome", + "select_species_my_species": "La mia specie", + "select_species_diameter_more_than_error": "Il diametro dovrebbe essere compreso tra {{minValue}} e {{maxValue}} .", + "select_species_height_more_than_error": "L'altezza dovrebbe essere compresa tra {{minValue}} e {{maxValue}} .", + "select_species_diameter_invalid": "Il diametro non è valido", + "select_species_height_invalid": "L'altezza non è valida", + "select_species_tag_id_required": "L'id del tag è richiesto", + "select_species_tagged_for_identification": "Questo albero è stato etichettato per l'identificazione.", + "select_species_unknown": "Sconosciuto", + "select_species_search_specie_not_present": "La specie '{{searchText}}' non è presente", + "select_species_search_atleast_3_characters": "Inserisci almeno 3 caratteri per ottenere un risultato migliore", + "select_species_looks_empty_here": "Sembra vuoto qui!", + "select_species_add_species_desscription": "Aggiungi delle specie alla tua lista cercando le specie", + "select_species_tree_species": "Specie di alberi", + "sample_one_tree_for_each_species": "Si prega di campionare almeno un albero per ogni specie piantata.", + "species_name": "Nome della specie", + "add_image": "Aggiungi immagine", + "species_description": "Digitare una descrizione (si espande con il testo)", + "type_description_here": "Scrivi qui la descrizione", + "sync": "Sync", + "species_sync_might_take_time": "Specie di sincronizzazione, questo potrebbe richiedere un po' di tempo.", + "all_species_synced": "Tutte le specie sono sincronizzate.", + "sync_required_message": "Le tue specie non si sono sincronizzate completamente online!\n\nIl logout rimuoverà queste specie, quindi considera di sincronizzarle prima.", + "measurement_diameter_info": "Se un albero è alto più di {{height}} {{unit}} , si prega di misurare il diametro del fusto a {{height}} {{unit}} (DBH). Altrimenti, si prega di misurare il diametro del fusto alla base dell'albero (Basal Diameter)", + "check_again": "Controlla di nuovo", + "not_optimal_ratio": "Rapporto non ottimale", + "not_optimal_ratio_message": "Il rapporto altezza/diametro non rientra nell'intervallo di rapporti ottimali che è compreso tra 2:1 (altezza/diametro minimo) e 160:1 (altezza/diametro massimo). Sei sicuro di voler continuare?", + "delete_species": "Cancellare le specie?", + "delete_species_delete_sample_tree_warning": "Se cancelli questa specie, anche gli alberi campione relativi a questa specie saranno cancellati. Sei sicuro di voler cancellare?", + "zero_tree_count_species_delete_sample_tree_warning": "Questa specie sarà cancellata se il conteggio degli alberi è impostato a 0 e anche gli alberi campione relativi a questa specie saranno cancellati. Sei sicuro di voler impostare il conteggio degli alberi a zero?", + "tree_is_still_alive": "L'albero è ancora vivo", + "select_intensity_for_remeasurement": "Seleziona la percentuale di alberi che rimisurerai dal numero totale di alberi campione piantati", + "select_frequency_for_remeasurement": "Seleziona la frequenza dopo la quale misurerai nuovamente gli alberi campione.", + "cant_change_frequency": "Per il momento non puoi modificare la frequenza.", + "cant_change_intensity": "Per il momento non è possibile modificare l'intensità.", + "remove_species": "Rimuovi specie", + "sure_remove_species": "Sei sicuro di voler rimuovere questa specie dai tuoi preferiti?", + "remove": "Rimuovere", + "cancel": "Annulla", + "explore_and_manage_species": "Esplora e gestisci le specie", + "search": "Ricerca ", + "number_species": "60.000 specie", + "add_species_in_fav": "e aggiungere specie a \n i tuoi preferiti" +} diff --git a/src/locales/languages/it/user/speciesSyncError.json b/src/locales/languages/it/user/speciesSyncError.json new file mode 100644 index 000000000..c0c719108 --- /dev/null +++ b/src/locales/languages/it/user/speciesSyncError.json @@ -0,0 +1,10 @@ +{ + "species_sync_error_heading": "La sincronizzazione delle specie è incompleta!", + "species_sync_error_text": "La sincronizzazione delle specie è necessaria per aggiungere le specie nell'inventario. Sincronizza quando la connessione internet è disponibile.", + "something_went_wrong": "Qualcosa è andato storto!", + "no_internet_connection": "Nessuna connessione Internet!", + "verify_email": "Verifica la tua e-mail", + "verify_email_message": "Per favore, verifica la tua email prima di accedere.", + "species_sync_update_alert_title": "Aggiornamento delle specie", + "species_sync_update_alert_message": "L'aggiornamento delle specie richiede internet e ci vorrà un po' prima che sia completato. Sei sicuro di voler continuare?" +} \ No newline at end of file diff --git a/src/locales/languages/it/user/treeInventory.json b/src/locales/languages/it/user/treeInventory.json new file mode 100644 index 000000000..8635d657f --- /dev/null +++ b/src/locales/languages/it/user/treeInventory.json @@ -0,0 +1,31 @@ +{ + "tree_inventory_loading_modal": "Caricamento di .......", + "tree_inventory_left_text": "In attesa di essere caricato", + "tree_inventory_left_text_uploading": "Caricamento in corso", + "tree_inventory_right_text": "Carica ora", + "tree_inventory_view_upload": "Visualizza tutti gli articoli caricati", + "tree_inventory_incomplete_registrations": "Registrazioni incomplete", + "tree_inventory_list_header": "Inventario degli alberi", + "tree_inventory_list_sub_header": "Qui è vuoto, per favore registrate degli alberi per vederli.", + "tree_inventory_empty_list_header": "Inventario degli alberi", + "tree_inventory_list_container_sub_header": "L'inventario sarà cancellato dopo che il caricamento è stato completato", + "tree_inventory_upload_list_header": "Articoli caricati", + "tree_inventory_upload_empty_btn_text": "Torna all'inventario", + "tree_inventory_alert_header": "Sei sicuro?", + "tree_inventory_alert_sub_header": "Le registrazioni sono al sicuro su cloud. Una volta cancellate le registrazioni, attualmente non è possibile recuperarle su questa applicazione.", + "tree_inventory_alert_sub_header2": "Le immagini saranno cancellate dal file system. Sarai ancora in grado di vedere le immagini con una buona connessione internet.", + "tree_inventory_alert_primary_btn_text": "Sicuro Cancellare", + "tree_inventory_free_up_space": "Liberare spazio", + "tree_inventory_off_site": "Fuori sede", + "tree_inventory_on_site": "Sul posto", + "tree_inventory_tree": "Albero", + "tree_inventory_trees": "Alberi", + "tree_inventory_point": "Punto", + "tree_inventory_polygon": "Poligono", + "tree_inventory_upload_inventory_list": "Carica l'elenco dell'inventario", + "tree_inventory_inventory_list": "Elenco dell'inventario", + "tree_inventory_overview_date": "{{item.title}}", + "tree_inventory_input_error": "Errore di ingresso", + "tree_inventory_input_error_message": "Si prega di inserire un input valido", + "delete_incomplete_registrations_warning": "Queste registrazioni non sono ancora caricate e saranno cancellate per sempre se continui." +} \ No newline at end of file diff --git a/src/locales/languages/it/user/treeReview.json b/src/locales/languages/it/user/treeReview.json new file mode 100644 index 000000000..00d1c812a --- /dev/null +++ b/src/locales/languages/it/user/treeReview.json @@ -0,0 +1,38 @@ +{ + "tree_review_header": "Recensire", + "tree_review_next_btn": "Albero successivo", + "tree_review_Save": "Salva", + "tree_review_name_of_species": "Nome della specie", + "tree_review_diameter": "Diametro", + "tree_review_height": "Altezza", + "tree_review_location": "POSIZIONE", + "tree_review_specie": "SPECIE", + "tree_review_unable": "Impossibile identificare", + "tree_review_tree_tag_header": "TAG DELL'ALBERO", + "tree_review_specie_text": "{{specieText}}", + "tree_review_specie_diameter": "{{specieDiameter}}cm", + "tree_review_plantation_date": "DATA DI PIANTAGIONE", + "tree_review_project": "Progetto", + "tree_review_unassigned": "Non assegnato", + "tree_review_plantation_date_text": "{{date, ll}}", + "tree_review_alrighty": "Completa", + "tree_review_register_planting_date": "Registra la data di semina", + "tree_review_delete": "Cancellare", + "tree_review_details": "Dettagli dell'albero", + "tree_review_not_tagged": "Non etichettato", + "tree_review_delete_not_yet_uploaded_registration": "La registrazione non è ancora stata caricata su Plant-for-the-Planet. Una volta cancellata sarà persa per sempre.", + "tree_review_delete_uploaded_registration": "Questa registrazione è al sicuro su cloud. Una volta che questa registrazione viene cancellata, attualmente non è possibile recuperarla su questa applicazione.", + "tree_review_continue_to_species": "Continuare alle specie", + "tree_review_continue_to_review": "Continuare a rivedere", + "tree_review_continue_to_sampleTrees": "Continuare a Campione di alberi", + "tree_review_continue_to_additional_data": "Continua a dati aggiuntivi", + "skip": "Salta e risparmia", + "add_more_sample_trees": "Aggiungere altri alberi campione", + "recommend_at_least_one_sample": "Alcune delle specie piantate non vengono campionate. Si consiglia di campionare almeno un albero per ogni specie piantata.", + "no_species_found": "Nessuna specie trovata", + "at_least_one_species": "Dovresti avere almeno 1 specie prima di aggiungere Sample Trees", + "need_more_sample_trees": "Bisogno di altri alberi campione", + "at_least_five_sample_trees": "Dovresti aggiungere almeno 5 alberi campione", + "project_not_assigned": "Progetto non assegnato!", + "project_not_assigned_message": "Sei sicuro di voler salvare questa registrazione senza assegnare un progetto?" +} \ No newline at end of file diff --git a/src/locales/languages/languages.ts b/src/locales/languages/languages.ts new file mode 100644 index 000000000..aeff3757e --- /dev/null +++ b/src/locales/languages/languages.ts @@ -0,0 +1,68 @@ +import i18next from 'i18next'; +import { getLocales } from 'expo-localization'; +import moment from 'moment/min/moment-with-locales'; +import DropDownPicker from 'react-native-dropdown-picker'; + + +import delabels from './de'; +import enlabels from './en'; +import eslabels from './es'; +import frlabels from './fr'; +import ptBRlabels from './pt-BR'; + +let userLang = undefined; +const lang = getLocales()[0]; +userLang = lang && lang.languageCode; + + +i18next.init({ + interpolation: { + // React already does escaping + escapeValue: false, + format: function (value, format) { + if (value instanceof Date) return moment(value).format(format); + return value; + }, + }, + lng: userLang, // 'en' | 'es', + fallbackLng: 'en', // If language detector fails + resources: { + de: { + translation: { + label: delabels, + }, + }, + en: { + translation: { + label: enlabels, + }, + }, + es: { + translation: { + label: eslabels, + }, + }, + fr: { + translation: { + label: frlabels, + }, + }, + pt: { + translation: { + label: ptBRlabels, + }, + }, + }, +}); +i18next.on('languageChanged', function (lng) { + moment.locale(lng); + DropDownPicker.addTranslation(lng.toUpperCase(), { + PLACEHOLDER: i18next.t('label.dropdownpicker_placeholder', { lng: lng }), + SEARCH_PLACEHOLDER: i18next.t('label.dropdownpicker_search_placeholder', { lng: lng }), + SELECTED_ITEMS_COUNT_TEXT: i18next.t('label.dropdownpicker_selected_items_count', { lng: lng }), + NOTHING_TO_SHOW: i18next.t('label.dropdownpicker_nothing_to_show', { lng: lng }), + }); +}); +i18next.changeLanguage(userLang); + +export default i18next; diff --git a/src/locales/languages/pt-BR/authentication/signUplabels.json b/src/locales/languages/pt-BR/authentication/signUplabels.json new file mode 100644 index 000000000..652344bba --- /dev/null +++ b/src/locales/languages/pt-BR/authentication/signUplabels.json @@ -0,0 +1,29 @@ +{ + "signup": "Complete seu cadastro", + "email": "Email", + "isPrivate": "Eu concordo em ter meu nome publicado no site e no app Plant for-the-Planet.", + "getNews": "Concordo em possivelmente ser contatado pela organização de crianças e jovens Plant-for-the-Planet para receber novidades e desafios do plantio de árvores.", + "firstname": "Primeiro Nome", + "lastname": "Sobrenome", + "tpo_title": "Organização de Plantio de Árvores", + "education_title": "Escola", + "signup_confirm": "Por favor, confirme seus dados.", + "individual": "Indivíduo", + "company": "Empresa", + "tpo_title_organisation": "Nome do {{roleText}}", + "create_profile": "Criar Perfil", + "city": "CIDADE", + "address": "ENDEREÇO", + "zipcode": "CÓDIGO POSTAL", + "account_type": "TIPO DE CONTA", + "select_country": "Selecione o país", + "select_role_type": "Selecione o tipo de conta", + "enter_first_name": "Digite o primeiro nome", + "enter_last_name": "Digite o sobrenome", + "enter_city_name": "Nome da cidade", + "enter_zipcode": "Zipcode", + "enter_address": "Endereço", + "enter_organisation_name": "Nome da organização", + "country": "PAÍS", + "change": "alteração" +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/index.ts b/src/locales/languages/pt-BR/index.ts new file mode 100644 index 000000000..6f6f570c0 --- /dev/null +++ b/src/locales/languages/pt-BR/index.ts @@ -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, +}; diff --git a/src/locales/languages/pt-BR/static/initialScreen.json b/src/locales/languages/pt-BR/static/initialScreen.json new file mode 100644 index 000000000..aa6ece3bf --- /dev/null +++ b/src/locales/languages/pt-BR/static/initialScreen.json @@ -0,0 +1,11 @@ +{ + "updating_species": "Atualizando espécies", + "running_migration": "Executando uma migração", + "migration_description": "Você atualizou recentemente o seu aplicativo. Por favor, não feche o aplicativo, pois estamos aplicando alterações para garantir a compatibilidade.", + "species_data_status": "Verificando o status dos dados das espécies.", + "downloading_archive": "Fazendo download do arquivo de espécies", + "unzipping_archive": "Extraindo o arquivo de espécies", + "fetch_and_add_species_to_database": "Obtendo e adicionando espécies à base de dados.", + "species_data_loaded": "Dados das espécies carregados.", + "please_wait": "Por favor, espere..." +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/static/permission.json b/src/locales/languages/pt-BR/static/permission.json new file mode 100644 index 000000000..c3d72695c --- /dev/null +++ b/src/locales/languages/pt-BR/static/permission.json @@ -0,0 +1,10 @@ +{ + "permission_camera_title": "Permissão para usar a câmera", + "permission_camera_message": "Precisamos da sua permissão para usar a sua câmera.", + "permission_camera_ok": "OK", + "permission_camera_cancel": "Cancelar", + "storage_permission_android_title": "Permissão de armazenamento", + "storage_permission_android_message": "App precisa de acesso à memória para fazer o download do arquivo", + "storage_permission_denied_header": "Permissão negada!", + "storage_permission_denied_sub_header": "Você precisa dar permissão de armazenamento para salvar o arquivo geoJSON" +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/static/welcomeScreen.json b/src/locales/languages/pt-BR/static/welcomeScreen.json new file mode 100644 index 000000000..ccb1a5f37 --- /dev/null +++ b/src/locales/languages/pt-BR/static/welcomeScreen.json @@ -0,0 +1,13 @@ +{ + "login": "Iniciar Sessão / Registar", + "tree_mapper": "TreeMapper", + "tree_inventory": "Inventário de Árvores", + "tree_inventory_sub_header": "de rascunhos e inscrições pendentes", + "download_maps": "Mapas off-line", + "download_maps_sub_header": "para utilização offline", + "register_tree": "Registrar Árvores", + "loading_content": "Carregando conteúdo...", + "add": "Adicionar", + "plots": "Parcelas", + "map": "Mapa" +} diff --git a/src/locales/languages/pt-BR/user/additionalData.json b/src/locales/languages/pt-BR/user/additionalData.json new file mode 100644 index 000000000..edea8976b --- /dev/null +++ b/src/locales/languages/pt-BR/user/additionalData.json @@ -0,0 +1,92 @@ +{ + "additional_data_form": "Formulário", + "additional_data_metadata": "Metadados", + "select_element": "Selecione Elemento", + "input": "Entrada", + "yes_no": "Sim/Não", + "gap": "Diferença", + "dropdown": "Dropdown", + "formula": "Fórmula", + "heading": "Título", + "page": "Página", + "add_field": "Adicionar campo", + "advance_mode": "Modo de avanço", + "add_element": "Adicionar elemento", + "update_element": "Elemento de atualização", + "add_input": "Adicionar Entrada", + "edit_input": "Editar Entrada", + "add_dropdown": "Adicionar Dropdown", + "edit_dropdown": "Editar Dropdown", + "add_heading": "Adicionar Título", + "edit_heading": "Editar Título", + "add_yes_no": "Adicionar Sim/Não", + "edit_yes_no": "Editar Sim/Não", + "add_gap_element": "Adicionar Intervalo", + "edit_gap_element": "Editar Intervalo", + "atleast_1_tree_type_required": "É necessário ao menos um tipo de árvore", + "atleast_1_registration_type_required": "É necessário ao menos um tipo de registro", + "field_key_required": "A chave de campo é necessária", + "invalid_key_error": "A chave de campo só pode conter letra, números e caracteres especiais (-, _ e espaço)", + "atleast_2_dropdown_option_required": "São necessárias duas opções de dropdown", + "field_value_required": "O valor do campo é obrigatório", + "field_name_required": "O nome do campo é obrigatório", + "get_started_forms": "Comece com os formulários", + "get_started_forms_description": "- Este formulário ajuda-o a recolher dados adicionais para cada registo.\n- Você pode personalizar os elementos do formulário com base no tipo de árvore, ou seja, única, múltipla ou amostra.\n- Você também pode personalizá-lo com base na localização do registro, seja ele fora do local (off-site) ou no local (on-site).", + "gap_element": "Elemento de Lacuna", + "form_page": "Página {{pageNo}}", + "loading_form": "Carregando formulário", + "loading_form_editor": "Carregando editor de formulários", + "required_field": "Isto é obrigatório", + "make_this_public": "Tornar estes dados públicos", + "single": "Individual", + "sample": "Amostra", + "multiple": "Múltiplos", + "on_site": "No local", + "off_site": "Fora do local", + "review": "Revisão", + "registrationType": "Tipo de inscrição", + "treeType": "Tipo de árvore", + "additional_data_field_name": "Nome do campo/local", + "additional_data_field_key": "Chave de campo", + "additional_data_field_type": "Tipo de campo/local", + "additional_data_heading": "Título", + "additional_data_field_key_placeholder": "Digite a chave", + "additional_data_field_value": "Valor do campo", + "additional_data_field_value_placeholder": "Introduzir valor", + "additional_data_default_value": "Valor padrão", + "yes": "Sim", + "no": "Não", + "dropdown_options": "Opções de dropdown", + "add_dropdown_option": "Adicionar opção dropdown", + "text": "Texto", + "number": "Número", + "all": "Todos", + "default_value_only_number": "O valor padrão só pode ser no formato número", + "create_metadata": "Criar metadados", + "get_started_metadata": "Comece com os metadados", + "get_started_metadata_description": "- Aqui você pode adicionar os dados que serão incluídos em todos os cadastros de árvores.\n- Você pode especificar o nível de acesso para cada dado, se ele pode ser público ou privado.", + "invalid_number_input": "Somente números são permitidos", + "add_metadata": "Adicionar metadados", + "import_data": "Importar", + "import_data_desc": "Importar dados do arquivo exportado do TreeMapper", + "export_data": "Exportar", + "export_data_desc": "Exportar dados para garantir que as suas alterações estejam salvas ou compartilhadas com outros.", + "export_additional_data_title": "Exportar dados adicionais do TreeMapper", + "export_additional_data_message": "Arquivo JSON para importar facilmente dados adicionais do seu TreeMapper para o aplicativo em poucos cliques.", + "share_additional_data_error": "Não é possível compartilhar dados adicionais no momento.", + "create_form": "Criar formulário", + "import_file_error": "Impossível importar arquivo no momento.", + "confirm_wipe_additional_data_import": "Limpar dados e importar dados", + "current_additional_data_lost": "Todos os seus dados atuais em formulários e metadados serão perdidos a fim de importar novos dados. Isto também afetará os registros incompletos. Você tem certeza de que quer continuar?", + "incorrect_format_additional_data_import": "O formato do arquivo não coincide com o formato requerido.", + "incorrect_file_format": "Formato de arquivo incorreto", + "do_you_want_to_delete_page": "Você quer excluir a página {{pageTitle}}.", + "import_export_data": "Dados de importação/exportação", + "import_export_data_desc": "Você pode importar de um arquivo exportado do TreeMapper ou pode salvar os dados de construtor de formulários, exportando-o.", + "importing_additional_data": "Importação de dados adicionais para o construtor de formulários.\nIsto pode levar algum tempo", + "public": "Público", + "private": "Particular", + "app": "App", + "no_additional_data_available": "Não há dados adicionais disponíveis", + "no_form_redirect_next_screen": "Não há dados de formulário disponíveis.\nRedirecionando para a próxima tela." +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/downloadMap.json b/src/locales/languages/pt-BR/user/downloadMap.json new file mode 100644 index 000000000..04afa6bf0 --- /dev/null +++ b/src/locales/languages/pt-BR/user/downloadMap.json @@ -0,0 +1,10 @@ +{ + "download_map_complete": "Download do mapa completo", + "download_map_area": "Fazer download dessa área?", + "download_map": "Download", + "download_map_view": "Ver tudo", + "download_map_area_failed": "Não foi possível fazer download do mapa. Tente novamente mais tarde.", + "download_map_area_exists": "O download do mapa já foi realizado.", + "network_error": "Erro da rede", + "network_error_message": "Sem conexão com internet. Por favor, tente novamente mais tarde." +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/editUserProfilelabels.json b/src/locales/languages/pt-BR/user/editUserProfilelabels.json new file mode 100644 index 000000000..0f08eb879 --- /dev/null +++ b/src/locales/languages/pt-BR/user/editUserProfilelabels.json @@ -0,0 +1,23 @@ +{ + "edit_profile": "Editar perfil", + "logout": "Sair", + "logout_anyway": "Confirmar Logout", + "privacy_policy": "Política de Privacidade", + "terms_of_service": "Termos de Serviço", + "imprint": "Impresso", + "legal_docs": "Documentos legais", + "open_source_license": "Licença de código aberto (open source)", + "edit": "Editar", + "manage_offline": "Gerenciar mapas off-line", + "manage_species": "Administrar espécies", + "activity_logging": "Registro de Atividades", + "activity_logs": "Registros de atividades", + "all_backed_up": "Todas as mudanças salvas", + "upload_pending": "{{count}}pendente", + "sync_remaining": "Sincronizando - {{count}} restantes", + "support": "Suporte", + "complete_signup": "Inscrição completa", + "manage_projects": "Gerenciar Projetos", + "additional_data": "Dados adicionais", + "login_signup": "Entrar / Inscrever-se" +} diff --git a/src/locales/languages/pt-BR/user/inventoryOverview.json b/src/locales/languages/pt-BR/user/inventoryOverview.json new file mode 100644 index 000000000..13dc96dfd --- /dev/null +++ b/src/locales/languages/pt-BR/user/inventoryOverview.json @@ -0,0 +1,28 @@ +{ + "inventory_overview_polygon_left_text": "Tipo de Localização: {{locationType}}", + "inventory_overview_title_coordinates": "Coordenada {{alphabetindex}}", + "inventory_overview_view_location": "Ver localização", + "inventory_overview_select_species": "Selecione pelo menos uma espécie", + "inventory_overview_view_loc_modal_header": "Localização {{locationTitle}}", + "inventory_overview_loc": "{{locationTitle}}", + "inventory_overview_export_json_error": "O arquivo GeoJSON não pôde ser exportado.", + "inventory_overview_export_json_success": "O arquivo GeoJSON foi exportado com sucesso.", + "inventory_overview_export_json_message": "Escolher destino para exportação", + "inventory_overview_export_json_title": "Exportar GeoJson", + "inventory_overview_add_species": "Espécies Plantadas", + "inventory_overview_add_sample_tree": "Árvore de Amostra", + "inventory_overview_header_text": "Revisão", + "inventory_overview_sub_header": "As árvores serão adicionadas ao seu inventário para sincronizar quando você tiver internet.", + "inventory_overview_left_text": "Data do Plantio", + "inventory_overview_left_text_planted_species": "Espécies Plantadas", + "inventory_overview_loc_left_text": "{{item.aliases}}", + "inventory_overview_loc_right_text": "{{item.treeCount}}árvores", + "inventory_overview_loc_export_json": "Exportar GeoJson", + "inventory_overview_loc_next_tree": "Próxima árvore", + "inventory_overview_loc_save": "Salvar", + "inventory_overview_date": "{{date, ll}}", + "inventory_overview_cancel": "Cancelar", + "inventory_overview_confirm": "Confirmar", + "inventory_overview_pick_a_date": "Escolha uma data", + "error_saving_inventory": "Erro ao salvar o inventário" +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/locateTree.json b/src/locales/languages/pt-BR/user/locateTree.json new file mode 100644 index 000000000..851fa6b22 --- /dev/null +++ b/src/locales/languages/pt-BR/user/locateTree.json @@ -0,0 +1,25 @@ +{ + "locate_tree_header": "Localizar Árvores", + "locate_tree_heading": "No Local (Preferido)", + "locate_tree_sub_heading": "Coleta Polígono e Imagens para alta precisão e verificabilidade", + "locate_tree_off_site": "Fora do local - Polígono", + "locate_tree_off_site_sub_heading": "Coleta o polígono. Melhor para usar ao registrar-se do escritório.", + "locate_tree_off_site_point_heading": "Fora do local - Ponto", + "locate_tree_off_site_point_sub_heading": "Latitude e Longitude somente", + "locate_tree_geo_json": "Carregar GeoJson", + "info_graphic_header_1": "Muito bem!", + "info_graphic_sub_header_1": "Agora, por favor, caminhe para o próximo ponto e toque em continuar quando estiver pronto", + "info_graphic_header_2": "Ótimo!", + "info_graphic_header_3": "Ótimo!", + "info_graphic_sub_header_2": "Agora, por favor, caminhe para o próximo ponto e toque em continuar quando estiver pronto", + "info_graphic_sub_header_3": "Se o próximo ponto for o seu ponto de partida clique em \"Completo\". Caso contrário, caminhe para o próximo ponto.", + "locate_tree_map_marking_sub_header": "Por favor, vá até o primeiro ponto do polígono do plantio e selecione sua localização.", + "locate_tree_add_marker_valid": "Você está no mesmo local. Por favor, caminhe até ao próximo local.", + "locate_tree_add_marker_invalid": "Você está muito longe de sua localização atual.", + "locate_tree_cannot_mark_location": "Não foi possível marcar este local", + "locate_tree_alphabets": "ABCDEFGHIJKLMNOPQRSTUVWXYZ", + "locate_tree_location": "Localização", + "locate_tree_cannot_record_tree": "Não foi possível registrar árvore de amostra", + "locate_tree_cannot_record_tree_outside_polygon": "A árvore de amostra só pode ser registada dentro do local marcado.", + "locate_tree_unable_to_retrieve_location": "Incapaz de recuperar a localização." +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/logs.json b/src/locales/languages/pt-BR/user/logs.json new file mode 100644 index 000000000..3a98fcc89 --- /dev/null +++ b/src/locales/languages/pt-BR/user/logs.json @@ -0,0 +1,9 @@ +{ + "logs_page_title": "Ver Registos de Atividades", + "logs_all": "Todos", + "logs_errors": "Erros", + "logs_date": "{{item.title}}", + "share_activity_logs_title": "Partilhar registros de atividade", + "share_logs_file_name": "TreeMapper v{{version}} Logs", + "creating_logs_file_share": "Criar arquivo de logs para compartilhar.\n Isto pode levar algum tempo" +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/manageUser.json b/src/locales/languages/pt-BR/user/manageUser.json new file mode 100644 index 000000000..cc6ffbce5 --- /dev/null +++ b/src/locales/languages/pt-BR/user/manageUser.json @@ -0,0 +1,4 @@ +{ + "manage_user_header": "Gerenciar Usuários", + "manage_user_sub_header": "Lista de todos os usuários que você convidou para usar o inventário de árvore" +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/mapMarking.json b/src/locales/languages/pt-BR/user/mapMarking.json new file mode 100644 index 000000000..03185e369 --- /dev/null +++ b/src/locales/languages/pt-BR/user/mapMarking.json @@ -0,0 +1,25 @@ +{ + "permission_blocked": "Permissão Bloqueada", + "permission_blocked_message": "Você precisa dar permissão de localização para registrar a árvore no local.", + "open_settings": "Configurações Abertas", + "back": "Voltar", + "ok": "OK", + "permission_denied": "Permissão negada", + "permission_denied_message": "Você precisa dar permissão de localização para registrar a árvore no local.", + "gps_accuracy": "Precisão do GPS", + "accuracy_info": "Para melhorar a sua precisão de GPS:\n1. Certifique-se que você está do lado de fora.\n2. Anda ao redor do local um pouco.\nO TreeMapper só funciona corretamente quando a localização possui precisão de até 30 metros.", + "green": "Verde", + "green_info": "= Precisão de até 10 metros", + "yellow": "Amarelo", + "yellow_info": "= Precisão até 30 metros", + "red": "Vermelho", + "red_info": "= Maior do que 30 metros", + "close": "Fechar", + "poor_accuracy": "Baixa Precisão", + "poor_accuracy_message": "A sua precisão de localização está classificada como RUIM, o que não é recomendado. Tem a certeza que quer continuar?", + "try_again": "Tente novamente", + "continue": "Continuar", + "location_service": "Localização", + "location_service_message": "As configurações de localização não são suficientes. Por favor, certifique-se de ter dado permissão de localização ao aplicativo e ligado o GPS", + "cancel": "Cancelar" +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/projects.json b/src/locales/languages/pt-BR/user/projects.json new file mode 100644 index 000000000..f603957a2 --- /dev/null +++ b/src/locales/languages/pt-BR/user/projects.json @@ -0,0 +1,8 @@ +{ + "add_new_project": "Adicionar novo projeto", + "add_new_project_desc": "Adicione projetos para mostrar o seu progresso até o momento ou para receber doações para plantar mais.", + "select_project": "Selecione o projeto", + "select_project_desc": "As árvores que você cadastra podem ser associadas a um projeto específico.", + "continue_without_project": "Continuar sem um projeto", + "continue_without_project_desc": "As árvores não serão associadas a um projeto." +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/registerTreeslabels.json b/src/locales/languages/pt-BR/user/registerTreeslabels.json new file mode 100644 index 000000000..edf70e551 --- /dev/null +++ b/src/locales/languages/pt-BR/user/registerTreeslabels.json @@ -0,0 +1,28 @@ +{ + "register_trees": "Registrar Árvores", + "register_trees_description": "Dica: Você pode encontrar registros incompletos no seu Inventário de Árvores", + "tree_registration_type_1": "Árvore única", + "tree_registration_type_2": "Várias árvores", + "tree_registration_type_1_sub_header": "Permite medições de alta precisão", + "tree_registration_type_2_sub_header": "Adicione muitas árvores com diferentes contagens", + "tree_map_marking_header": "Localização da Árvore", + "tree_map_marking_btn": "Selecione localização & Continue", + "alright_modal_sub_header": "Por favor, tire uma foto na qual apareça a árvore inteira", + "alright_modal_header": "Hora da foto!", + "alright_modal_white_btn": "Voltar", + "alright_modal_off_site_sub_header": "Percebemos que está muito longe da árvore. Por favor, clique em continuar para adicionar dados sobre a árvore.", + "alright_modal_off_site_header": "Fora do Local Ativado!", + "image_capturing_header": "Foto", + "image_capturing_sub_header": "Por favor, tire uma foto da árvore inteira", + "image_capturing_required": "Imagem é necessária", + "coming_soon": "Em breve!", + "image_click_picture": "Tirar foto", + "image_retake": "Tirar novamente", + "sample_tree_marking_heading": "Árvore de Amostra {{ongoingSampleTreeNumber}} de {{sampleTreesCount}}", + "sample_tree_review_tree_number": "Revisão da Árvore {{ongoingSampleTreeNumber}} de {{sampleTreesCount}}", + "alright_modal_skip": "Pular", + "total_trees_header": "Total de Árvores", + "add_all_trees_planted_on_site": "Por favor, adicione a lista de todas as árvores plantadas no local.", + "select_species_and_add_sample": "Selecione uma espécie abaixo e adicione uma árvore de amostra para essa espécie.", + "select_species": "Selecione a Espécie" +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/sampleTrees.json b/src/locales/languages/pt-BR/user/sampleTrees.json new file mode 100644 index 000000000..a4a11c175 --- /dev/null +++ b/src/locales/languages/pt-BR/user/sampleTrees.json @@ -0,0 +1,12 @@ +{ + "sample_trees": "Árvore de Amostra", + "tree": "Árvore", + "trees": "Árvores", + "next_step_to_measure_sample_trees_text": "Nos próximos passos, você será solicitado a medir as amostras de árvores para o local de plantio.", + "recommend_at_least_sample_trees": "Recomendamos que você pegue aleatoriamente pelo menos 5-10 árvores de amostra.", + "how_many_sample_trees_to_record": "Quantas árvores você gostaria de registrar?", + "invalid_tree_count": "Contagem de árvores inválidas", + "enter_valid_tree_count": "Você deve amostrar pelo menos 5 árvores e no máximo 999 árvores.", + "add_another": "Adicione outro", + "add_sample_tree": "Adicionar árvore de amostra" +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/savedAreas.json b/src/locales/languages/pt-BR/user/savedAreas.json new file mode 100644 index 000000000..699cb7630 --- /dev/null +++ b/src/locales/languages/pt-BR/user/savedAreas.json @@ -0,0 +1,6 @@ +{ + "save_areas_delete": "Excluir", + "save_areas_header": "Áreas Salvas", + "save_areas_offline": "Nenhuma área offline encontrada", + "save_areas_add_area": "Adicionar área" +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/selectSpecies.json b/src/locales/languages/pt-BR/user/selectSpecies.json new file mode 100644 index 000000000..88d869d44 --- /dev/null +++ b/src/locales/languages/pt-BR/user/selectSpecies.json @@ -0,0 +1,77 @@ +{ + "select_species_local_name": "{{item.localName}}", + "select_species_name_of_tree": "{{item.aliases}}", + "select_species_tree_count": "{{count}} Árvores", + "select_species_tree_count_modal_header": "Quantos", + "select_species_tree_count_modal_sub_header": "{{specieName}}", + "select_species_tree_count_modal_sub_header_2": "Você plantou?", + "select_species_modal_label": "Contagem de árvores", + "select_species_header": "Selecione a Espécie", + "select_species_sub_header": "Por favor, selecione as espécies que foram plantadas", + "select_species_btn_text": "Salvar e Continuar", + "select_species_search": "Pesquisar", + "select_species_card": "Cartão da espécie (Species Card)", + "select_species_add_measurements": "Adicionar medidas", + "select_species_diameter": "Diâmetro", + "measurement_basal_diameter": "Diâmetro Basal", + "measurement_DBH": "Diâmetro à Altura do peito (DAP)", + "select_species_height": "Altura", + "select_species_tree_tag": "Etiqueta da árvore", + "select_species_inches": "Polegadas", + "select_species_feet": "Pés", + "select_species_continue": "Continuar", + "select_species_enter_name": "Por favor adicione o nome da planta", + "select_species_error": "Erro", + "select_species_enter_valid_input": "Adicione dados válidos", + "select_species_ok": "OK", + "select_species_already_added": "Você já adicionou {{scientificName}}.", + "select_species_adding_species": "Adicionando espécies...", + "select_species_add_species": "Adicione espécies", + "select_species_subheading": "A lista de espécies será atualizada à medida que você digitar. Clique + para adicioná-la ao seu perfil.", + "select_species_species_selected": "{{length}} espécies selecionadas", + "select_species_search_species": "Pesquisar espécies", + "select_species_done": "Feito", + "select_species_add_name": "Adicionar Nome", + "select_species_my_species": "Minhas espécies", + "select_species_diameter_more_than_error": "O diâmetro deve ser entre {{minValue}} e {{maxValue}}", + "select_species_height_more_than_error": "A altura deve ser entre {{minValue}} e {{maxValue}}", + "select_species_diameter_invalid": "O diâmetro é inválido", + "select_species_height_invalid": "A altura é inválida", + "select_species_tag_id_required": "É necessária a identificação da etiqueta", + "select_species_tagged_for_identification": "Esta árvore foi etiquetada para identificação.", + "select_species_unknown": "Desconhecido", + "select_species_search_specie_not_present": "A espécie '{{searchText}}' não está presente", + "select_species_search_atleast_3_characters": "Digite pelo menos 3 caracteres para obter um resultado melhor", + "select_species_looks_empty_here": "Aqui está vazio!", + "select_species_add_species_desscription": "Adicione espécies à sua lista, pesquisando as espécies", + "select_species_tree_species": "Espécies de Árvores", + "sample_one_tree_for_each_species": "Por favor, amostre pelo menos uma árvore para cada espécie plantada.", + "species_name": "Nome da Espécie", + "add_image": "Adicionar imagem", + "species_description": "Descrição", + "type_description_here": "Descrição do tipo aqui", + "sync": "Sincronizar", + "species_sync_might_take_time": "Sincronizando espécies, isso pode levar um tempo.", + "all_species_synced": "Todas as espécies estão sincronizadas.", + "sync_required_message": "A sua espécie não sincronizou completamente online!\n\nA desconexão irá remover estas espécies, por isso, considere sincronizá-las primeiro.", + "measurement_diameter_info": "Se uma árvore tiver mais de {{height}} {{unit}} de altura, por favor meça o diâmetro do caule em {{height}} {{unit}} (DAP). Caso contrário, por favor, meça o diâmetro do caule na base da árvore (Diâmetro Basal).", + "check_again": "Verifique novamente", + "not_optimal_ratio": "Razão não óptima", + "not_optimal_ratio_message": "A relação altura/diâmetro não se situa entre o intervalo ideal da relação que se situa entre 2:1 (altura mínima:diâmetro) e 160:1 (altura máxima:diâmetro). Você tem certeza de que quer continuar?", + "delete_species": "Deletar Espécie?", + "delete_species_delete_sample_tree_warning": "Se você apagar esta espécie, a(s) árvore(s) de amostra relacionada(s) com esta espécie também será(ão) apagada(s). Você tem certeza de que quer excluir?", + "zero_tree_count_species_delete_sample_tree_warning": "Esta espécie será eliminada se a contagem de árvores estiver em 0 e a(s) árvore(s) de amostra relacionada(s) com esta espécie será(ão) também eliminada(s). Você tem certeza de que quer definir a contagem de árvores como zero?", + "tree_is_still_alive": "A árvore ainda está viva", + "select_intensity_for_remeasurement": "Selecione a porcentagem de árvores que você irá medir novamente a partir do número total de árvores de amostra plantadas", + "select_frequency_for_remeasurement": "Selecione a frequência após a qual você medirá novamente as Árvores de Amostra.", + "cant_change_frequency": "Você não pode alterar a frequência por enquanto.", + "cant_change_intensity": "Você não pode alterar a intensidade por enquanto.", + "remove_species": "Remover espécies", + "sure_remove_species": "Tem certeza de que deseja remover esta espécie dos seus favoritos?", + "remove": "Remover", + "cancel": "Cancelar", + "explore_and_manage_species": "Explorar e gerenciar espécies", + "search": "Procurar ", + "number_species": "60.000 espécies ", + "add_species_in_fav": "e adicionar espécies \n seus favoritos" +} diff --git a/src/locales/languages/pt-BR/user/speciesSyncError.json b/src/locales/languages/pt-BR/user/speciesSyncError.json new file mode 100644 index 000000000..02431a5e3 --- /dev/null +++ b/src/locales/languages/pt-BR/user/speciesSyncError.json @@ -0,0 +1,10 @@ +{ + "species_sync_error_heading": "A sincronização das espécies está incompleta!", + "species_sync_error_text": "A sincronização das espécies é necessária para adicionar espécies no inventário. Sincronize quando a conexão com a internet estiver disponível.", + "something_went_wrong": "Alguma coisa deu errado. ", + "no_internet_connection": "Sem conexão com a Internet!", + "verify_email": "Verifique o seu e-mail", + "verify_email_message": "Por favor, verifique o seu e-mail antes de fazer o login.", + "species_sync_update_alert_title": "Atualizando espécies", + "species_sync_update_alert_message": "A atualização das espécies requer internet e demora um pouco até ser concluída. Você tem certeza de que quer continuar?" +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/treeInventory.json b/src/locales/languages/pt-BR/user/treeInventory.json new file mode 100644 index 000000000..9e56df7ec --- /dev/null +++ b/src/locales/languages/pt-BR/user/treeInventory.json @@ -0,0 +1,31 @@ +{ + "tree_inventory_loading_modal": "Uploading......", + "tree_inventory_left_text": "Upload Pendente", + "tree_inventory_left_text_uploading": "Upload em andamento", + "tree_inventory_right_text": "Faça upload agora", + "tree_inventory_view_upload": "Ver todos os itens carregados", + "tree_inventory_incomplete_registrations": "Inscrições Incompletas", + "tree_inventory_list_header": "Inventário de Árvores", + "tree_inventory_list_sub_header": "Está vazio aqui, por favor registe algumas árvores para vê-las.", + "tree_inventory_empty_list_header": "Inventário de Árvores", + "tree_inventory_list_container_sub_header": "O inventário será limpo após a conclusão do upload", + "tree_inventory_upload_list_header": "Itens Carregados", + "tree_inventory_upload_empty_btn_text": "Voltar para Inventário.", + "tree_inventory_alert_header": "Tem certeza?", + "tree_inventory_alert_sub_header": "Os registos estão seguros na nuvem. Uma vez eliminados os registos, atualmente não é possível recuperá-los neste app.", + "tree_inventory_alert_sub_header2": "As imagens serão apagadas do sistema de arquivo. Você ainda poderá ver as imagens com boa conexão à internet.", + "tree_inventory_alert_primary_btn_text": "Confirmar exclusão", + "tree_inventory_free_up_space": "Libere espaço", + "tree_inventory_off_site": "Fora do local", + "tree_inventory_on_site": "No local", + "tree_inventory_tree": "Árvore", + "tree_inventory_trees": "Árvores", + "tree_inventory_point": "Ponto", + "tree_inventory_polygon": "Polígono", + "tree_inventory_upload_inventory_list": "Faça Upload do inventário", + "tree_inventory_inventory_list": "Inventário", + "tree_inventory_overview_date": "{{item.title}}", + "tree_inventory_input_error": "Input Error", + "tree_inventory_input_error_message": "Por favor, introduza dados válidos", + "delete_incomplete_registrations_warning": "Estes registos ainda não estão carregados e serão apagados para sempre se continuar." +} \ No newline at end of file diff --git a/src/locales/languages/pt-BR/user/treeReview.json b/src/locales/languages/pt-BR/user/treeReview.json new file mode 100644 index 000000000..f00e91899 --- /dev/null +++ b/src/locales/languages/pt-BR/user/treeReview.json @@ -0,0 +1,38 @@ +{ + "tree_review_header": "Revisão", + "tree_review_next_btn": "Próxima árvore", + "tree_review_Save": "Salvar", + "tree_review_name_of_species": "Nome da Espécie", + "tree_review_diameter": "Diâmetro", + "tree_review_height": "Altura", + "tree_review_location": "Localização", + "tree_review_specie": "ESPÉCIE", + "tree_review_unable": "Incapaz de identificar", + "tree_review_tree_tag_header": "ETIQUETA DA ÁRVORE", + "tree_review_specie_text": "{{specieText}}", + "tree_review_specie_diameter": "{{specieDiameter}}cm", + "tree_review_plantation_date": "DIA DO PLANTIO", + "tree_review_project": "Projeto", + "tree_review_unassigned": "Não atribuído", + "tree_review_plantation_date_text": "{{date, ll}}", + "tree_review_alrighty": "Completo", + "tree_review_register_planting_date": "Registrar data do plantio", + "tree_review_delete": "Excluir", + "tree_review_details": "Detalhes da Árvore", + "tree_review_not_tagged": "Não etiquetado", + "tree_review_delete_not_yet_uploaded_registration": "Ainda não foi feito o upload de registro para Plant-for-the-Planet. Uma vez apagado, ele será perdido para sempre.", + "tree_review_delete_uploaded_registration": "Este registo está seguro na nuvem. Uma vez eliminado este registro, atualmente não é possível recuperá-lo neste aplicativo.", + "tree_review_continue_to_species": "Continuar com as espécies", + "tree_review_continue_to_review": "Continuar a revisão", + "tree_review_continue_to_sampleTrees": "Continuar para Árvores de Amostra", + "tree_review_continue_to_additional_data": "Continuar para dados adicionais", + "skip": "Pular e Salvar", + "add_more_sample_trees": "Adicionar mais Árvores de Amostra", + "recommend_at_least_one_sample": "Algumas das espécies plantadas não estão amostradas. Recomendamos que você amostre pelo menos uma árvore para cada espécie plantada.", + "no_species_found": "Nenhuma espécie encontrada", + "at_least_one_species": "Você deve ter pelo menos 1 espécie antes de continuar.", + "need_more_sample_trees": "Precisa de mais Árvores de Amostra", + "at_least_five_sample_trees": "Você deve adicionar pelo menos 5 Árvores de Amostra", + "project_not_assigned": "Projeto não atribuído!", + "project_not_assigned_message": "Tem a certeza que quer salvar este registro sem atribuir um projeto?" +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c2441fbcc..662a6a0de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1148,7 +1148,7 @@ resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@>=7", "@babel/runtime@^7.0.0", "@babel/runtime@^7.20.0", "@babel/runtime@^7.8.4": +"@babel/runtime@>=7", "@babel/runtime@^7.0.0", "@babel/runtime@^7.20.0", "@babel/runtime@^7.23.2", "@babel/runtime@^7.8.4": version "7.24.0" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz" integrity sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw== @@ -4480,6 +4480,13 @@ expo-keep-awake@~12.3.0: resolved "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-12.3.0.tgz" integrity sha512-ujiJg1p9EdCOYS05jh5PtUrfiZnK0yyLy+UewzqrjUqIT8eAGMQbkfOn3C3fHE7AKd5AefSMzJnS3lYZcZYHDw== +expo-localization@~14.3.0: + version "14.3.0" + resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-14.3.0.tgz#a7614114079658000f46c7e3029703c8508e0678" + integrity sha512-TML3TeVtwpfuSNwbhBspC9XsGJaa0TWJNh+UaR/35YP9fQiaJfVWUMSrAq84ba6rY1Pm3kti07LV8UUa505oqg== + dependencies: + rtl-detect "^1.0.2" + expo-modules-autolinking@1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.5.1.tgz" @@ -5136,6 +5143,13 @@ husky@^9.0.11: resolved "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz" integrity sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw== +i18next@^23.10.1: + version "23.10.1" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.10.1.tgz#217ce93b75edbe559ac42be00a20566b53937df6" + integrity sha512-NDiIzFbcs3O9PXpfhkjyf7WdqFn5Vq6mhzhtkXzj51aOcNuPNcTwuYNuXCpHsanZGHlHKL35G7huoFeVic1hng== + dependencies: + "@babel/runtime" "^7.23.2" + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" @@ -6561,6 +6575,11 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +moment@^2.30.1: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" @@ -7380,6 +7399,11 @@ react-is@^18.0.0: resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +react-native-dropdown-picker@^5.4.6: + version "5.4.6" + resolved "https://registry.yarnpkg.com/react-native-dropdown-picker/-/react-native-dropdown-picker-5.4.6.tgz#3736fc468de4a295e4df8d1f65ed2eadaf9b445f" + integrity sha512-T1XBHbE++M6aRU3wFYw3MvcOuabhWZ29RK/Ivdls2r1ZkZ62iEBZknLUPeVLMX3x6iUxj4Zgr3X2DGlEGXeHsA== + react-native-safe-area-context@4.6.3: version "4.6.3" resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.6.3.tgz#f06cfea05b1c4b018aa9758667a109f619c62b55" @@ -7763,6 +7787,11 @@ rimraf@~2.6.2: dependencies: glob "^7.1.3" +rtl-detect@^1.0.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.1.2.tgz#ca7f0330af5c6bb626c15675c642ba85ad6273c6" + integrity sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"