diff --git a/App.tsx b/App.tsx index 359bc8cd..47bfc6c3 100644 --- a/App.tsx +++ b/App.tsx @@ -32,6 +32,7 @@ const supportedLanguages: string[] = [ "ms", "es", "it", + "ar", ]; const defaultLanguage = "en"; const defaultLocale = "en-us"; @@ -56,7 +57,7 @@ const App: React.FC = () => { enableScreens(); let lang = localeExpo.substring(0, 2); - + if (!includes(lang, supportedLanguages)) { lang = defaultLanguage; } diff --git a/app/components/NoEmission/translations/ar.json b/app/components/NoEmission/translations/ar.json new file mode 100644 index 00000000..f78a5b3a --- /dev/null +++ b/app/components/NoEmission/translations/ar.json @@ -0,0 +1,6 @@ +{ + "NO_EMISSION_COMPONENT_TITLE": "مرحبًا 👋", + "NO_EMISSION_COMPONENT_THANKS": "شكرًا لانضمامك إلى معركتنا ضد تغير المناخ!", + "NO_EMISSION_COMPONENT_START_USING_APP": "لبدء تتبع انبعاثات ثاني أكسيد الكربون لديك، اضغط على الزر أدناه", + "NO_EMISSION_COMPONENT_ADD_FIRST_EMISSION": "أضف انبعاثي الأول" +} \ No newline at end of file diff --git a/app/components/NoEmission/translations/index.ts b/app/components/NoEmission/translations/index.ts index b3083bea..71142f09 100644 --- a/app/components/NoEmission/translations/index.ts +++ b/app/components/NoEmission/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { NO_EMISSION_COMPONENT_TITLE: string; @@ -18,4 +19,4 @@ interface TranslationKeys { NO_EMISSION_COMPONENT_ADD_FIRST_EMISSION: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/components/OpenFoodFacts/translations/ar.json b/app/components/OpenFoodFacts/translations/ar.json new file mode 100644 index 00000000..dbc00e91 --- /dev/null +++ b/app/components/OpenFoodFacts/translations/ar.json @@ -0,0 +1,3 @@ +{ + "OPEN_FOOD_FACTS_COMPONENT_DATA_FROM": "بيانات من حقائق الغذاء المفتوحة" +} \ No newline at end of file diff --git a/app/components/OpenFoodFacts/translations/index.ts b/app/components/OpenFoodFacts/translations/index.ts index a4d25a3d..b1dac792 100644 --- a/app/components/OpenFoodFacts/translations/index.ts +++ b/app/components/OpenFoodFacts/translations/index.ts @@ -10,9 +10,10 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { OPEN_FOOD_FACTS_COMPONENT_DATA_FROM: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/components/PermissionsRequest/translations/ar.json b/app/components/PermissionsRequest/translations/ar.json new file mode 100644 index 00000000..3ebffb27 --- /dev/null +++ b/app/components/PermissionsRequest/translations/ar.json @@ -0,0 +1,7 @@ +{ + "PERMISSIONS_REQUEST_COMPONENT_OPEN_SETTINGS": "أفتح الإعدادات", + "PERMISSIONS_REQUEST_COMPONENT_CAMERA_TITLE": "لا يمكن الوصول إلى الكاميرا", + "PERMISSIONS_REQUEST_COMPONENT_CAMERA_SUBTITLE": "يرجى منح تطبيق NMF.earth حق الوصول إلى الكاميرا في إعدادات هاتفك لاستخدام هذه الميزة.", + "PERMISSIONS_REQUEST_COMPONENT_NOTIFICATION_TITLE": "لا يوجد إذن لإرسال الإخطارات", + "PERMISSIONS_REQUEST_COMPONENT_NOTIFICATION_SUBTITLE": "يرجى منح تطبيق NMF.earth الإذن لإرسال إشعارات إليك في إعدادات هاتفك لاستخدام هذه الميزة." +} \ No newline at end of file diff --git a/app/components/PermissionsRequest/translations/index.ts b/app/components/PermissionsRequest/translations/index.ts index 9bfa039c..a1819ec7 100644 --- a/app/components/PermissionsRequest/translations/index.ts +++ b/app/components/PermissionsRequest/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { PERMISSIONS_REQUEST_COMPONENT_OPEN_SETTINGS: string; @@ -19,4 +20,4 @@ interface TranslationKeys { PERMISSIONS_REQUEST_COMPONENT_NOTIFICATION_SUBTITLE: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/About/translations/ar.json b/app/screens/About/translations/ar.json new file mode 100644 index 00000000..beb4ab8a --- /dev/null +++ b/app/screens/About/translations/ar.json @@ -0,0 +1,14 @@ +{ + "ABOUT_SCREEN_TITLE": "عن", + "ABOUT_SCREEN_INTRO": "نحن فريق صغير مهتم بالتأثير البشري على الكوكب. نحن لسنا شركة ناشئة مدفوعة بالنمو أو الربح لدفع الأرباح للمستثمرين. نحن نتحلى بالشفافية ويمكنك إلقاء نظرة على أرقامنا على Indie Hackers. يمكنك الانضمام إلى فريقنا إذا كنت تريد مساعدة المشروع. أو ببساطة تحدث من حولك عن مشروعنا، أعطنا 5 نجوم في المتجر وأرسل لنا تعليقاتك على التطبيق ستساعدنا كثيرًا. شكرا لك ✌️", + "ABOUT_SCREEN_CARE_HEADER": "نحن نهتم بك", + "ABOUT_SCREEN_PRIVACY": "الخصوصية حسب التصميم", + "ABOUT_SCREEN_ETHIC": "الأخلاق حسب التصميم", + "ABOUT_SCREEN_OPEN_SOURCE": "100% مفتوح المصدر", + "ABOUT_SCREEN_PRIVACY_BODY": "لن يتم أبدًا بيع أو مشاركة جميع البيانات المقدمة في التطبيق إلى أي شركة ولا نتتبع ما تفعله في التطبيق ", + "ABOUT_SCREEN_ETHIC_BODY": "نحن لا نستغل نقاط الضعف النفسية مثل الخلاصات التي لا نهاية لها أو التشغيل التلقائي لمنع المستخدمين من المغادرة ", + "ABOUT_SCREEN_OPEN_SOURCE_BODY": "سيتمكن الجميع من إضافة محتوى إلى التطبيق والتحقق من نماذج الانبعاثات وإصلاح أي معلومات غير صحيحة", + "ABOUT_SCREEN_LIBRARIES_AND_CONTRIBUTORS": "المكتبات والمساهمين", + "ABOUT_SCREEN_CAN_BE_FOUND": "يمكن العثور عليها على ", + "ABOUT_SCREEN_GITHUB": "جيثب" +} \ No newline at end of file diff --git a/app/screens/About/translations/index.ts b/app/screens/About/translations/index.ts index effed389..8589e6f1 100644 --- a/app/screens/About/translations/index.ts +++ b/app/screens/About/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { ABOUT_SCREEN_TITLE: string; @@ -26,4 +27,4 @@ interface TranslationKeys { ABOUT_SCREEN_GITHUB: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/Act/translations/ar.json b/app/screens/Act/translations/ar.json new file mode 100644 index 00000000..03ea9627 --- /dev/null +++ b/app/screens/Act/translations/ar.json @@ -0,0 +1,8 @@ +{ + "ACT_SCREEN_TAB_NAME": "يمثل", + "ACT_SCREEN_TITLE": "الدليل المستدام", + "ACT_SCREEN_HABITS": "العادات", + "ACT_SCREEN_FOOD": "طعام", + "ACT_SCREEN_KITCHEN": "مطبخ", + "ACT_SCREEN_TECHNOLOGY": "تكنولوجيا" +} \ No newline at end of file diff --git a/app/screens/Act/translations/index.ts b/app/screens/Act/translations/index.ts index c70f6235..d9f02d72 100644 --- a/app/screens/Act/translations/index.ts +++ b/app/screens/Act/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { ACT_SCREEN_TAB_NAME: string; @@ -20,4 +21,4 @@ interface TranslationKeys { ACT_SCREEN_TECHNOLOGY: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/ActDetail/translations/ar.json b/app/screens/ActDetail/translations/ar.json new file mode 100644 index 00000000..1460bf5b --- /dev/null +++ b/app/screens/ActDetail/translations/ar.json @@ -0,0 +1,3 @@ +{ + "ACT_DETAIL_SCREEN_TITLE": "يمثل" +} \ No newline at end of file diff --git a/app/screens/ActDetail/translations/index.ts b/app/screens/ActDetail/translations/index.ts index 982e4ffe..56893e44 100644 --- a/app/screens/ActDetail/translations/index.ts +++ b/app/screens/ActDetail/translations/index.ts @@ -10,9 +10,10 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { ACT_DETAIL_SCREEN_TITLE: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/AddEmission/translations/ar.json b/app/screens/AddEmission/translations/ar.json new file mode 100644 index 00000000..95e93fca --- /dev/null +++ b/app/screens/AddEmission/translations/ar.json @@ -0,0 +1,21 @@ +{ + "ADD_EMISSION_SCREEN_TAB_NAME": "يضيف", + "ADD_EMISSION_SCREEN_TITLE": "إضافة الانبعاثات", + "ADD_EMISSION_SCREEN_ELECTRICITY_CONSUMPTION": "استهلاك الكهرباء", + "ADD_EMISSION_SCREEN_DURATION": "مدة", + "ADD_EMISSION_SCREEN_DISTANCE": "مسافة", + "ADD_EMISSION_SCREEN_TOTAL": "المجموع", + "ADD_EMISSION_SCREEN_QUANTITY": "كمية", + "ADD_EMISSION_SCREEN_QUANTITY_OF_EMISSION": "كمية الانبعاثات", + "ADD_EMISSION_SCREEN_ADD_THIS_EMISSION": "أضف هذا الانبعاث", + "ADD_EMISSION_SCREEN_TEXTINPUT_PLACEHOLDER": "على سبيل المثال، برجر، رحلة طيران من باريس إلى روما...", + "ADD_EMISSION_SCREEN_NAME_EMISSION": "اسم هذا الانبعاث ", + "ADD_EMISSION_SCREEN_DATE": "تاريخ", + "ADD_EMISSION_SCREEN_PICKER_MODAL_CONFIRM": "يتأكد", + "ADD_EMISSION_SCREEN_PICKER_MODAL_CANCEL": "يلغي", + "ADD_EMISSION_SCREEN_ITEMS": "أغراض)", + "ADD_EMISSION_SCREEN_MEALS": "وجبات)", + "ADD_EMISSION_SCREEN_PERIODICITY": "الدورية", + "ADD_EMISSION_SCREEN_NON_RECURRING": "غير متكررة", + "ADD_EMISSION_SCREEN_NAME": "اسم" +} \ No newline at end of file diff --git a/app/screens/AddEmission/translations/index.ts b/app/screens/AddEmission/translations/index.ts index 36d88834..121ac3e6 100644 --- a/app/screens/AddEmission/translations/index.ts +++ b/app/screens/AddEmission/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { ADD_EMISSION_SCREEN_TAB_NAME: string; @@ -33,4 +34,4 @@ interface TranslationKeys { ADD_EMISSION_SCREEN_NAME: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/BarCodeScan/translations/ar.json b/app/screens/BarCodeScan/translations/ar.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/app/screens/BarCodeScan/translations/ar.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/app/screens/BarCodeScan/translations/index.ts b/app/screens/BarCodeScan/translations/index.ts index fb2ec2b1..52634687 100644 --- a/app/screens/BarCodeScan/translations/index.ts +++ b/app/screens/BarCodeScan/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { BAR_CODE_SCAN_SCREEN_TITLE: string; @@ -23,4 +24,4 @@ interface TranslationKeys { BAR_CODE_SCAN_SCREEN_NO_CARBON_DATA_MESSAGE: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/Budget/translations/ar.json b/app/screens/Budget/translations/ar.json new file mode 100644 index 00000000..7d074037 --- /dev/null +++ b/app/screens/Budget/translations/ar.json @@ -0,0 +1,22 @@ +{ + "BUDGET_SCREEN_TAB_NAME": "ميزانية", + "BUDGET_SCREEN_TITLE": "ميزانية الكربون", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_TOTAL": "المجموع", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_FOOD": "طعام", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_MEAL": "وجبة", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_TRANSPORT": "ينقل", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_STREAMING": "تدفق", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_PURCHASE": "شراء", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_FASHION": "موضة", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_ELECTRICITY": "كهرباء", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_PRODUCT_SCANNED": "تم مسح المنتج", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_CUSTOM": "مخصص", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_PERIOD_BUDGET": "ميزانية ", + "BUDGET_SCREEN_SET_MONTHLY_BUDGET": "تحديد الميزانية الشهرية", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_RECENT_MEAT": "أوه لا، لقد أكلت مؤخرًا اللحوم أو الأسماك 🥺", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_NICE_START": "هذه بداية جميلة! 👌", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_WELL_DONE": "أحسنت! 🎉", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_NO_MEAT_SO_FAR": "يبدو أنك لم تأكل أي لحم أو سمك منذ استخدام التطبيق، عمل جيد! 🍾", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_DAYS": "أيام", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_WITHOUT_MEAT": "بدون لحم أو سمك." +} \ No newline at end of file diff --git a/app/screens/Budget/translations/index.ts b/app/screens/Budget/translations/index.ts index dd526425..0ba2b0a3 100644 --- a/app/screens/Budget/translations/index.ts +++ b/app/screens/Budget/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { BUDGET_SCREEN_TAB_NAME: string; @@ -34,4 +35,4 @@ interface TranslationKeys { BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_WITHOUT_MEAT: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/CategorySelection/translations/ar.json b/app/screens/CategorySelection/translations/ar.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/app/screens/CategorySelection/translations/ar.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/app/screens/CategorySelection/translations/index.ts b/app/screens/CategorySelection/translations/index.ts index e1245de8..cabd9c14 100644 --- a/app/screens/CategorySelection/translations/index.ts +++ b/app/screens/CategorySelection/translations/index.ts @@ -10,10 +10,11 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { CATEGORY_SELECTION_SCREEN_TITLE: string; CATEGORY_SELECTION_SCREEN_SELECT_CATEGORY: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/ComingSoon/translations/ar.json b/app/screens/ComingSoon/translations/ar.json new file mode 100644 index 00000000..1a669766 --- /dev/null +++ b/app/screens/ComingSoon/translations/ar.json @@ -0,0 +1,5 @@ +{ + "COMING_SOON_SCREEN_TITLE": "قريباً!", + "COMING_SOON_SCREEN_UNDER_DEVELOPMENT": "هذه الميزة قيد التطوير وستكون متاحة قريبًا.", + "COMING_SOON_SCREEN_START_FOLLOW_US": "في هذه الأثناء، تابعونا على وسائل التواصل الاجتماعي!" +} \ No newline at end of file diff --git a/app/screens/ComingSoon/translations/index.ts b/app/screens/ComingSoon/translations/index.ts index bd32b30e..aa05a33a 100644 --- a/app/screens/ComingSoon/translations/index.ts +++ b/app/screens/ComingSoon/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { COMING_SOON_SCREEN_TITLE: string; @@ -17,4 +18,4 @@ interface TranslationKeys { COMING_SOON_SCREEN_START_FOLLOW_US: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/EmissionItem/translations/ar.json b/app/screens/EmissionItem/translations/ar.json new file mode 100644 index 00000000..7125cad4 --- /dev/null +++ b/app/screens/EmissionItem/translations/ar.json @@ -0,0 +1,16 @@ +{ + "EMISSION_ITEM_SCREEN_EMISSION": "انبعاث", + "EMISSION_ITEM_SCREEN_RECURRING_EMISSION": "الانبعاث المتكرر", + "EMISSION_ITEM_SCREEN_TYPE": "يكتب", + "EMISSION_ITEM_SCREEN_QUANTITY": "كمية", + "EMISSION_ITEM_SCREEN_PRICE": "سعر", + "EMISSION_ITEM_SCREEN_DATE": "تاريخ", + "EMISSION_ITEM_SCREEN_DELETE": "يمسح", + "EMISSION_ITEM_SCREEN_NAME": "اسم", + "EMISSION_ITEM_SCREEN_MITIGATED": "تخفيف", + "EMISSION_ITEM_SCREEN_IS_MITIGATED": "وقد تم تخفيف هذا الانبعاث", + "EMISSION_ITEM_SCREEN_IS_NOT_MITIGATED": "ولم يتم تخفيف هذا الانبعاث", + "EMISSION_ITEM_SCREEN_PERIODICITY": "الدورية", + "EMISSION_ITEM_SCREEN_TITLE": "انبعاث", + "EMISSION_ITEM_SCREEN_DELETE_EMISSION": "حذف الانبعاث" +} \ No newline at end of file diff --git a/app/screens/EmissionItem/translations/index.ts b/app/screens/EmissionItem/translations/index.ts index 21b31763..5c4bf108 100644 --- a/app/screens/EmissionItem/translations/index.ts +++ b/app/screens/EmissionItem/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { EMISSION_ITEM_SCREEN_EMISSION: string; @@ -28,4 +29,4 @@ interface TranslationKeys { EMISSION_ITEM_SCREEN_TIME: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/Emissions/translations/ar.json b/app/screens/Emissions/translations/ar.json new file mode 100644 index 00000000..b066819f --- /dev/null +++ b/app/screens/Emissions/translations/ar.json @@ -0,0 +1,7 @@ +{ + "EMISSIONS_SCREEN_TAB_NAME": "الانبعاثات", + "EMISSIONS_SCREEN_TITLE": "الانبعاثات", + "EMISSIONS_SCREEN_ADD_EMISSION": "إضافة الانبعاثات", + "EMISSIONS_SCREEN_HEADER_OF_BUDGET": "من الميزانية", + "EMISSIONS_SCREEN_RECURRING_EMISSIONS": "الانبعاثات المتكررة" +} \ No newline at end of file diff --git a/app/screens/Emissions/translations/index.ts b/app/screens/Emissions/translations/index.ts index a03ce575..1d6a5e02 100644 --- a/app/screens/Emissions/translations/index.ts +++ b/app/screens/Emissions/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { EMISSIONS_SCREEN_TAB_NAME: string; @@ -19,4 +20,4 @@ interface TranslationKeys { EMISSIONS_SCREEN_RECURRING_EMISSIONS: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/Faq/translations/ar.json b/app/screens/Faq/translations/ar.json new file mode 100644 index 00000000..c5fe9314 --- /dev/null +++ b/app/screens/Faq/translations/ar.json @@ -0,0 +1,19 @@ +{ + "FAQ_SCREEN_TITLE": "التعليمات", + "FAQ_SCREEN_ENTER_MANUALLY_QUESTION": "لماذا يتعين علي إدخال انبعاثاتي يدويًا؟", + "FAQ_SCREEN_ENTER_MANUALLY_ANSWER": "نحن نعمل على إضافة الانبعاثات المتكررة ولكننا لن نذهب إلى أبعد من ذلك، مما يعني أنك لن تتمكن من حساب بصمتك الكربونية تلقائيًا من نفقاتك على سبيل المثال. إنه أمر مزعج حسب التصميم، كتذكير لطيف بالتلوث والاستهلاك الأقل.", + "FAQ_SCREEN_GOAL_QUESTION": "ما هو هدفك؟", + "FAQ_SCREEN_GOAL_ANSWER": "يختفي! على عكس صناعة التكنولوجيا، نأمل أن تتوقف عن استخدام تطبيقنا بعد مرور بعض الوقت. الهدف الوحيد لـ NMF.earth هو مساعدة أي شخص على فهم البصمة الكربونية وتقليلها. وبمجرد الانتهاء من ذلك، فإننا نشجعك على الاستمرار في هذا المسار، دون مدخلاتنا. ", + "FAQ_SCREEN_STARTUP_QUESTION": "هل أنت شركة ناشئة؟", + "FAQ_SCREEN_STARTUP_ANSWER": "لا، وNMF.earth لن يكون كذلك أبدًا، فهو مجرد مشروع جانبي مفتوح المصدر، وليس حتى شركة. الشركات الناشئة، بحكم تعريفها، هي شركات تبحث عن النمو المتسارع. المشكلة هي أن النمو المتسارع هو السبب وراء الانحباس الحراري العالمي.", + "FAQ_SCREEN_DATA_QUESTION": "هل تقوم بجمع بياناتي؟", + "FAQ_SCREEN_DATA_ANSWER": "لا، نحن لا نتتبع ما تفعله في التطبيق، بل نقوم فقط بجمع بيانات الأعطال حتى نتمكن من إصلاح الأخطاء. احصل على فنجان من القهوة واقرأ كودنا مفتوح المصدر، وسترى أننا لا نتتبع أي شيء مما تفعله، لا شيء على الإطلاق.", + "FAQ_SCREEN_VEGAN_QUESTION": "لماذا تشجع الناس على أن يكونوا نباتيين / نباتيين / مرنين؟", + "FAQ_SCREEN_VEGAN_ANSWER": "تولد تربية الحيوانات الصناعية الكثير من انبعاثات ثاني أكسيد الكربون، ولكن ليس هذا فحسب، بل إنها أيضًا فظيعة. يتم كل يوم نقل ما يقرب من 160 مليون حيوان من حيوانات المزرعة في جميع أنحاء العالم إلى المسلخ. ربما يكون الأمر على ما يرام بالنسبة لك، ولكن ليس بالنسبة لنا.", + "FAQ_SCREEN_NMF_QUESTION": "لماذا نمف؟", + "FAQ_SCREEN_NMF_ANSWER": "NMF هو اختصار لـ Not My Fault (؟)، وهو عبارة عن دعوة مفتوحة للتشكيك في أسلوب حياتنا الحديث ومشاركتنا في الإبادة البيئية الحالية.", + "FAQ_SCREEN_DIFFERENT_QUESTION": "كيف حالك مختلفة؟", + "FAQ_SCREEN_DIFFERENT_ANSWER": "نحن لا نتتبع نشاطك داخل التطبيق، ولسنا شركة، لذا لا نحاول الحصول على أموال منك، NMF.earth هو مجرد مشروع مفتوح المصدر أنشأه ناشط مناخي عشوائي حول العالم. كما أننا لا نستغل نقاط الضعف النفسية، مثل الخلاصات التي لا نهاية لها أو التشغيل التلقائي لمنعك من مغادرة التطبيق. نظرًا لأننا لا نتتبعك، فإننا نقدر حقًا أي تعليقات يمكنك تقديمها لنا. نريد أن نأخذ الوقت الكافي لفهم ما تحتاجه وما الذي يجب تحسينه لك. أنت إنسان، ولست سلسلة من الأرقام والإحصائيات على الشاشة.", + "FAQ_SCREEN_GREEN_WASHING_QUESTION": "هل يقوم الجميع بالغسيل الأخضر؟", + "FAQ_SCREEN_GREEN_WASHING_ANSWER": "نعم تقريبا. يجب علينا جميعًا أن نتعاون من أجل مكافحة تغير المناخ، لذا ضع في اعتبارك أن أي شيء غير مفتوح المصدر يعني العمل كالمعتاد. إذا رأيت أن بعض المنظمات لا تشارك كل شيء، فهذا يعني أن اهتمام هذه المنظمة يحفزه الربح الجشع والبقاء، ولا يساعد في التخفيف من تغير المناخ وتعزيز أنماط الحياة المستدامة. نحن لا نبيع أي شيء وكل ما نقوم به مفتوح للجميع بنسبة 100%." +} \ No newline at end of file diff --git a/app/screens/Faq/translations/index.ts b/app/screens/Faq/translations/index.ts index 4415bd80..d58d5e06 100644 --- a/app/screens/Faq/translations/index.ts +++ b/app/screens/Faq/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { FAQ_SCREEN_TITLE: string; @@ -31,4 +32,4 @@ interface TranslationKeys { FAQ_SCREEN_GREEN_WASHING_ANSWER: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/InfoModal/translations/ar.json b/app/screens/InfoModal/translations/ar.json new file mode 100644 index 00000000..00a94a0f --- /dev/null +++ b/app/screens/InfoModal/translations/ar.json @@ -0,0 +1,3 @@ +{ + "INFO_MODAL_SCREEN_METHODOLOGY": "المنهجية" +} \ No newline at end of file diff --git a/app/screens/InfoModal/translations/index.ts b/app/screens/InfoModal/translations/index.ts index be92b630..5256f7fa 100644 --- a/app/screens/InfoModal/translations/index.ts +++ b/app/screens/InfoModal/translations/index.ts @@ -10,9 +10,10 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { INFO_MODAL_SCREEN_METHODOLOGY: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/Intro/translations/ar.json b/app/screens/Intro/translations/ar.json new file mode 100644 index 00000000..31926a2c --- /dev/null +++ b/app/screens/Intro/translations/ar.json @@ -0,0 +1,6 @@ +{ + "INTRO_SCREEN_WELCOME": "مرحبًا بك في NMF.earth 🌱", + "INTRO_SCREEN_CONTINUE_AND_ACCEPT_TERMS_OF_USE": "من خلال المتابعة، فإنك توافق على شروط الاستخدام الخاصة بنا.", + "INTRO_SCREEN_TERMS_OF_USE": "اقرأ شروط الاستخدام", + "INTRO_SCREEN_I_AGREE": "أنا موافق" +} \ No newline at end of file diff --git a/app/screens/Intro/translations/index.ts b/app/screens/Intro/translations/index.ts index 227e1aab..eec528af 100644 --- a/app/screens/Intro/translations/index.ts +++ b/app/screens/Intro/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { INTRO_SCREEN_WELCOME: string; @@ -18,4 +19,4 @@ interface TranslationKeys { INTRO_SCREEN_I_AGREE: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/Languages/__tests__/__snapshots__/LanguagesScreen.tests.tsx.snap b/app/screens/Languages/__tests__/__snapshots__/LanguagesScreen.tests.tsx.snap index 7b53f5e6..15c4fc8a 100644 --- a/app/screens/Languages/__tests__/__snapshots__/LanguagesScreen.tests.tsx.snap +++ b/app/screens/Languages/__tests__/__snapshots__/LanguagesScreen.tests.tsx.snap @@ -286,6 +286,28 @@ exports[`LanguageScreen renders correctly 1`] = ` Italiano + + + عربي + + diff --git a/app/screens/Languages/translations/ar.json b/app/screens/Languages/translations/ar.json new file mode 100644 index 00000000..9a0e5f3d --- /dev/null +++ b/app/screens/Languages/translations/ar.json @@ -0,0 +1,3 @@ +{ + "LANGUAGES_SCREEN_TITLE": "اللغات" +} \ No newline at end of file diff --git a/app/screens/Languages/translations/index.ts b/app/screens/Languages/translations/index.ts index 2f8e25bb..59ab3f63 100644 --- a/app/screens/Languages/translations/index.ts +++ b/app/screens/Languages/translations/index.ts @@ -10,9 +10,10 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { LANGUAGES_SCREEN_TITLE: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/MonthlyBudget/translations/ar.json b/app/screens/MonthlyBudget/translations/ar.json new file mode 100644 index 00000000..7315a000 --- /dev/null +++ b/app/screens/MonthlyBudget/translations/ar.json @@ -0,0 +1,16 @@ +{ + "MONTHLY_BUDGET_SCREEN_TITLE": "الميزانية الشهرية", + "MONTHLY_BUDGET_SCREEN_SLIDE_TO_SET": "قم بالتمرير لتعيين ميزانيتك", + "MONTHLY_BUDGET_SCREEN_SAVE": "يحفظ", + "MONTHLY_BUDGET_SCREEN_CARBON_EMISSIONS_WORLD": "متوسط الانبعاثات الشهرية للفرد في عينة من البلدان ", + "MONTHLY_BUDGET_SCREEN_LUXEMBOURG": "لوكسمبورغ : ", + "MONTHLY_BUDGET_SCREEN_UNITED_STATES": "الولايات المتحدة : ", + "MONTHLY_BUDGET_SCREEN_JAPAN": "اليابان : ", + "MONTHLY_BUDGET_SCREEN_SWEDEN": "السويد : ", + "MONTHLY_BUDGET_SCREEN_FRANCE": "فرنسا : ", + "MONTHLY_BUDGET_SCREEN_CHINA": "الصين : ", + "MONTHLY_BUDGET_SCREEN_BRAZIL": "البرازيل : ", + "MONTHLY_BUDGET_SCREEN_INDIA": "الهند : ", + "MONTHLY_BUDGET_SCREEN_ETHIOPIA": "إثيوبيا : ", + "MONTHLY_BUDGET_SCREEN_PARIS_AGREEMENT": "إذا كنت ترغب في احترام اتفاقية باريس (للحفاظ على ارتفاع متوسط درجة الحرارة العالمية أقل من درجتين)، فحدد ميزانيتك الشهرية على" +} \ No newline at end of file diff --git a/app/screens/MonthlyBudget/translations/index.ts b/app/screens/MonthlyBudget/translations/index.ts index 940f0760..cd4ca874 100644 --- a/app/screens/MonthlyBudget/translations/index.ts +++ b/app/screens/MonthlyBudget/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { MONTHLY_BUDGET_SCREEN_TITLE: string; @@ -28,4 +29,4 @@ interface TranslationKeys { MONTHLY_BUDGET_SCREEN_PARIS_AGREEMENT: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/MonthlyEmissions/translations/ar.json b/app/screens/MonthlyEmissions/translations/ar.json new file mode 100644 index 00000000..3093e6ab --- /dev/null +++ b/app/screens/MonthlyEmissions/translations/ar.json @@ -0,0 +1,3 @@ +{ + "MONTHLY_EMISSIONS_SCREEN_OF_BUDGET": "من الميزانية" +} \ No newline at end of file diff --git a/app/screens/MonthlyEmissions/translations/index.ts b/app/screens/MonthlyEmissions/translations/index.ts index 16972089..a66b7ee2 100644 --- a/app/screens/MonthlyEmissions/translations/index.ts +++ b/app/screens/MonthlyEmissions/translations/index.ts @@ -10,9 +10,10 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { MONTHLY_EMISSIONS_SCREEN_OF_BUDGET: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/MyData/translations/ar.json b/app/screens/MyData/translations/ar.json new file mode 100644 index 00000000..638b4c0f --- /dev/null +++ b/app/screens/MyData/translations/ar.json @@ -0,0 +1,14 @@ +{ + "MY_DATA_SCREEN_TITLE": "My Data", + "MY_DATA_SCREEN_BODY": "With NMF.earth, you own your data. It means that we don't save your data on any server and therefore that no one but you can access it. No security problem, your data never leaves your phone. However, it also means that you are in charge of saving your data in case you loose your phone for example. To do so, use the export button below to get your data and save it where ever you want to. When you want to import old data, just press the import button but be careful because it will also delete your old data.", + "MY_DATA_SCREEN_EXPORT_MY_DATA": "Export my data", + "MY_DATA_SCREEN_IMPORT_DATA": "Import data", + "MY_DATA_SCREEN_DELETE_ALL_MY_DATA": "Delete all my data", + "MY_DATA_SCREEN_ALERT_CONFIRM": "Confirm", + "MY_DATA_SCREEN_ALERT_CONFIRM_IMPORT": "This action will replace current data", + "MY_DATA_SCREEN_ALERT_CONFIRM_DELETE": "This action will delete all your data", + "MY_DATA_SCREEN_CANCEL": "Cancel", + "MY_DATA_SCREEN_OK": "Ok", + "MY_DATA_SCREEN_DELETE_SUCCESSFUL": "We have successully deleted your emissions.", + "MY_DATA_SCREEN_GENERIC_ERROR": "Something went wrong." +} diff --git a/app/screens/MyData/translations/index.ts b/app/screens/MyData/translations/index.ts index 79783d8e..db1ccfd1 100644 --- a/app/screens/MyData/translations/index.ts +++ b/app/screens/MyData/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { MY_DATA_SCREEN_TITLE: string; @@ -26,4 +27,4 @@ interface TranslationKeys { MY_DATA_SCREEN_GENERIC_ERROR: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/MyLocation/translations/ar.json b/app/screens/MyLocation/translations/ar.json new file mode 100644 index 00000000..d457d8bc --- /dev/null +++ b/app/screens/MyLocation/translations/ar.json @@ -0,0 +1,5 @@ +{ + "MY_LOCATION_SCREEN_TITLE": "موقع", + "MY_LOCATION_SCREEN_INTRO": "يرجى تحديد بلد لتحسين حسابات الانبعاثات للبث والكهرباء.", + "MY_LOCATION_SCREEN_MY_CARBON_INTENSITY": "كثافة الكربون : " +} \ No newline at end of file diff --git a/app/screens/MyLocation/translations/index.ts b/app/screens/MyLocation/translations/index.ts index 3c2696a0..a8c38b56 100644 --- a/app/screens/MyLocation/translations/index.ts +++ b/app/screens/MyLocation/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { MY_LOCATION_SCREEN_TITLE: string; @@ -17,4 +18,4 @@ interface TranslationKeys { MY_LOCATION_SCREEN_MY_CARBON_INTENSITY: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/Notifications/translations/ar.json b/app/screens/Notifications/translations/ar.json new file mode 100644 index 00000000..c7f23604 --- /dev/null +++ b/app/screens/Notifications/translations/ar.json @@ -0,0 +1,7 @@ +{ + "NOTIFICATIONS_SCREEN_TITLE": "إشعارات", + "NOTIFICATIONS_SCREEN_INTRO": "احصل على إشعار كل يوم أحد الساعة 9 مساءً لتذكيرك بإضافة انبعاثاتك الأسبوعية.", + "NOTIFICATIONS_SCREEN_ACTIVATED": "مفعل", + "NOTIFICATIONS_SCREEN_NOTIFICATION_TITLE": "الانبعاثات الأسبوعية 🗓", + "NOTIFICATIONS_SCREEN_NOTIFICATION_BODY": "إليك تذكير لطيف لإضافة انبعاثاتك لهذا الأسبوع." +} \ No newline at end of file diff --git a/app/screens/Notifications/translations/index.ts b/app/screens/Notifications/translations/index.ts index 5faaaeec..5ad3b6b2 100644 --- a/app/screens/Notifications/translations/index.ts +++ b/app/screens/Notifications/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { NOTIFICATIONS_SCREEN_TITLE: string; @@ -19,4 +20,4 @@ interface TranslationKeys { NOTIFICATIONS_SCREEN_NOTIFICATION_BODY: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/Periodicity/translations/ar.json b/app/screens/Periodicity/translations/ar.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/app/screens/Periodicity/translations/ar.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/app/screens/Periodicity/translations/index.ts b/app/screens/Periodicity/translations/index.ts index 27683c78..b6383da1 100644 --- a/app/screens/Periodicity/translations/index.ts +++ b/app/screens/Periodicity/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { PERIODICITY_MODAL_SCREEN_TITLE: string; @@ -22,4 +23,4 @@ interface TranslationKeys { PERIODICITY_MODAL_SCREEN_CANCEL_NO_PERIODICITY: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/RecurringEmissions/translations/ar.json b/app/screens/RecurringEmissions/translations/ar.json new file mode 100644 index 00000000..cb4cdf46 --- /dev/null +++ b/app/screens/RecurringEmissions/translations/ar.json @@ -0,0 +1,3 @@ +{ + "RECURRING_EMISSIONS_SCREEN_TITLE": "الانبعاثات المتكررة" +} \ No newline at end of file diff --git a/app/screens/RecurringEmissions/translations/index.ts b/app/screens/RecurringEmissions/translations/index.ts index 24bc8c2c..137d5bab 100644 --- a/app/screens/RecurringEmissions/translations/index.ts +++ b/app/screens/RecurringEmissions/translations/index.ts @@ -10,9 +10,10 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { RECURRING_EMISSIONS_SCREEN_TITLE: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/Settings/translations/ar.json b/app/screens/Settings/translations/ar.json new file mode 100644 index 00000000..671e5dd5 --- /dev/null +++ b/app/screens/Settings/translations/ar.json @@ -0,0 +1,17 @@ +{ + "SETTINGS_SCREEN_TAB_NAME": "إعدادات", + "SETTINGS_SCREEN_TITLE": "إعدادات", + "SETTINGS_SCREEN_ABOUT": "عن", + "SETTINGS_SCREEN_UNITS": "الوحدات المترية", + "SETTINGS_SCREEN_NOTIFICATIONS": "إشعارات", + "SETTINGS_SCREEN_MY_LOCATION": "موقعي", + "SETTINGS_SCREEN_FAQ": "التعليمات", + "SETTINGS_SCREEN_SUPPORT_US": "ادعمنا!", + "SETTINGS_SCREEN_ROADMAP": "خريطة الطريق", + "SETTINGS_SCREEN_FEEDBACK": "تعليق", + "SETTINGS_SCREEN_TERMS_OF_USE": "شروط الاستخدام", + "SETTINGS_SCREEN_APP_VERSION": "الإصدار %{الإصدار}", + "SETTINGS_SCREEN_IMPORT_SAVE_DELETE_DATA": "بياناتي", + "SETTINGS_SCREEN_HELP_TRANSLATION": "مساعدة في الترجمة", + "SETTINGS_SCREEN_LANGUAGES": "اللغات" +} \ No newline at end of file diff --git a/app/screens/Settings/translations/index.ts b/app/screens/Settings/translations/index.ts index d92f0fa0..4cf0786e 100644 --- a/app/screens/Settings/translations/index.ts +++ b/app/screens/Settings/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { SETTINGS_SCREEN_TAB_NAME: string; @@ -30,4 +31,4 @@ interface TranslationKeys { SETTINGS_SCREEN_LANGUAGES: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/SubCategorySelection/translations/ar.json b/app/screens/SubCategorySelection/translations/ar.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/app/screens/SubCategorySelection/translations/ar.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/app/screens/SubCategorySelection/translations/index.ts b/app/screens/SubCategorySelection/translations/index.ts index 16a53b5e..3cce7ef3 100644 --- a/app/screens/SubCategorySelection/translations/index.ts +++ b/app/screens/SubCategorySelection/translations/index.ts @@ -10,10 +10,11 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { SUB_CATEGORY_SELECTION_SCREEN_TITLE: string; SUB_CATEGORY_SELECTION_SCREEN_SELECT_SUB_CATEGORY: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/screens/SupportUs/translations/ar.json b/app/screens/SupportUs/translations/ar.json new file mode 100644 index 00000000..fec8e84c --- /dev/null +++ b/app/screens/SupportUs/translations/ar.json @@ -0,0 +1,7 @@ +{ + "SUPPORT_US_SCREEN_TITLE": "ادعمنا!", + "SUPPORT_US_SCREEN_WHY_DONATE_TITLE": "لماذا يجب أن تفكر في دعمنا", + "SUPPORT_US_SCREEN_WHY_DONATE_CONTENT": "NMF.earth ليس من أجل الربح، لقد قمنا فقط بجمع مبلغ صغير على Kickstarter ونواصل العمل كثيرًا على المشروع حتى لو لم يكن مستدامًا ماليًا. بالإضافة إلى ذلك، لدينا العديد من التكاليف مثل الخوادم واسم النطاق وتراخيص البرامج وحساب مطور Apple وما إلى ذلك.", + "SUPPORT_US_SCREEN_TITLE_CONSIDER_DONATE": "إذا أعجبك هذا المشروع، يرجى التفكير في التبرع بمبلغ صغير لمساعدتنا على الاستمرار!", + "SUPPORT_US_SCREEN_PLATFORM": "يمكنك القيام بذلك على Ko-fi." +} \ No newline at end of file diff --git a/app/screens/SupportUs/translations/index.ts b/app/screens/SupportUs/translations/index.ts index 04c8b007..2c3f4554 100644 --- a/app/screens/SupportUs/translations/index.ts +++ b/app/screens/SupportUs/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { SUPPORT_US_SCREEN_TITLE: string; @@ -19,4 +20,4 @@ interface TranslationKeys { SUPPORT_US_SCREEN_PLATFORM: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/utils/calculation/__tests__/calculation.test.ts b/app/utils/calculation/__tests__/calculation.test.ts index a12f4c94..b1b2be6b 100644 --- a/app/utils/calculation/__tests__/calculation.test.ts +++ b/app/utils/calculation/__tests__/calculation.test.ts @@ -282,36 +282,36 @@ describe("getDisplayUnitsValue should convert the given kilogram value to", () = describe("getDisplayUnits should return the correct units given a kilogram value that should be converted to", () => { it("grams", () => { for (const kgValue of unitsBasline.toGrams) { - expect(calculation.getDisplayUnits(kgValue, true)).toEqual(t("GRAMS_SYMBOL")); - expect(calculation.getDisplayUnits(kgValue, true, false)).toEqual(t("GRAMS_FULL")); + expect(calculation.getDisplayUnits(kgValue, true)).toEqual(t("CALCULATION_GRAMS_SYMBOL")); + expect(calculation.getDisplayUnits(kgValue, true, false)).toEqual(t("CALCULATION_GRAMS_FULL")); } }); it("kilograms", () => { for (const kgValue of unitsBasline.toKilograms) { - expect(calculation.getDisplayUnits(kgValue, true)).toEqual(t("KILOGRAMS_SYMBOL")); - expect(calculation.getDisplayUnits(kgValue, true, false)).toEqual(t("KILOGRAMS_FULL")); + expect(calculation.getDisplayUnits(kgValue, true)).toEqual(t("CALCULATION_KILOGRAMS_SYMBOL")); + expect(calculation.getDisplayUnits(kgValue, true, false)).toEqual(t("CALCULATION_KILOGRAMS_FULL")); } }); it("tonnes", () => { for (const kgValue of unitsBasline.toTonnes) { - expect(calculation.getDisplayUnits(kgValue, true)).toEqual(t("TONNES_SYMBOL")); - expect(calculation.getDisplayUnits(kgValue, true, false)).toEqual(t("TONNES_FULL")); + expect(calculation.getDisplayUnits(kgValue, true)).toEqual(t("CALCULATION_TONNES_SYMBOL")); + expect(calculation.getDisplayUnits(kgValue, true, false)).toEqual(t("CALCULATION_TONNES_FULL")); } }); it("ounces", () => { for (const kgValue of unitsBasline.toOunces) { - expect(calculation.getDisplayUnits(kgValue, false)).toEqual(t("OUNCES_SYMBOL")); - expect(calculation.getDisplayUnits(kgValue, false, false)).toEqual(t("OUNCES_FULL")); + expect(calculation.getDisplayUnits(kgValue, false)).toEqual(t("CALCULATION_OUNCES_SYMBOL")); + expect(calculation.getDisplayUnits(kgValue, false, false)).toEqual(t("CALCULATION_OUNCES_FULL")); } }); it("pounds", () => { for (const kgValue of unitsBasline.toPounds) { - expect(calculation.getDisplayUnits(kgValue, false)).toEqual(t("POUNDS_SYMBOL")); - expect(calculation.getDisplayUnits(kgValue, false, false)).toEqual(t("POUNDS_FULL")); + expect(calculation.getDisplayUnits(kgValue, false)).toEqual(t("CALCULATION_POUNDS_SYMBOL")); + expect(calculation.getDisplayUnits(kgValue, false, false)).toEqual(t("CALCULATION_POUNDS_FULL")); } }); }); diff --git a/app/utils/calculation/calculation.ts b/app/utils/calculation/calculation.ts index c35eee1e..cd5cc4d8 100644 --- a/app/utils/calculation/calculation.ts +++ b/app/utils/calculation/calculation.ts @@ -179,17 +179,17 @@ const getDisplayUnits = (kgValue: number, useMetricUnits: boolean, useSymbol = t if (useMetricUnits) { if (kgValue <= 1) { - return t(`GRAMS${suffix}`); + return t(`CALCULATION_GRAMS${suffix}`); } else if (kgValue > 1 && kgValue <= 1000) { - return t(`KILOGRAMS${suffix}`); + return t(`CALCULATION_KILOGRAMS${suffix}`); } else { - return t(`TONNES${suffix}`); + return t(`CALCULATION_TONNES${suffix}`); } } else { if (kgValue <= 0.454) { - return t(`OUNCES${suffix}`); + return t(`CALCULATION_OUNCES${suffix}`); } else { - return t(`POUNDS${suffix}`); + return t(`CALCULATION_POUNDS${suffix}`); } } }; diff --git a/app/utils/calculation/translations/ar.json b/app/utils/calculation/translations/ar.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/app/utils/calculation/translations/ar.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/app/utils/calculation/translations/da.json b/app/utils/calculation/translations/da.json index 2dd6dfd5..d62be822 100644 --- a/app/utils/calculation/translations/da.json +++ b/app/utils/calculation/translations/da.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "g", - "GRAMS_FULL": "gram", - "KILOGRAMS_SYMBOL": "kg", - "KILOGRAMS_FULL": "kilogram", - "TONNES_SYMBOL": "t", - "TONNES_FULL": "ton(s)", - "OUNCES_SYMBOL": "oz", - "OUNCES_FULL": "ounce(s)", - "POUNDS_SYMBOL": "lb", - "POUNDS_FULL": "pund", - "KILOMETERS_SYMBOL": "km", - "KILOMETERS_FULL": "kilometer", - "MILES_SYMBOL": "mi", - "MILES_FULL": "mil(es)" + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gram", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogram", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "ton(s)", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "ounce(s)", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "pund", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilometer", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "mil(es)" } \ No newline at end of file diff --git a/app/utils/calculation/translations/de.json b/app/utils/calculation/translations/de.json index 8e3f7efb..031d2fac 100644 --- a/app/utils/calculation/translations/de.json +++ b/app/utils/calculation/translations/de.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "g", - "GRAMS_FULL": "Gramm", - "KILOGRAMS_SYMBOL": "kg", - "KILOGRAMS_FULL": "Kilogramm", - "TONNES_SYMBOL": "t", - "TONNES_FULL": "Tonne", - "OUNCES_SYMBOL": "oz", - "OUNCES_FULL": "Unze", - "POUNDS_SYMBOL": "lb", - "POUNDS_FULL": "Pfund", - "KILOMETERS_SYMBOL": "km", - "KILOMETERS_FULL": "Kilometer", - "MILES_SYMBOL": "mi", - "MILES_FULL": "Meile(n)" + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "Gramm", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "Kilogramm", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "Tonne", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "Unze", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "Pfund", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "Kilometer", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "Meile(n)" } \ No newline at end of file diff --git a/app/utils/calculation/translations/en.json b/app/utils/calculation/translations/en.json index a2ee26be..58c255be 100644 --- a/app/utils/calculation/translations/en.json +++ b/app/utils/calculation/translations/en.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "g", - "GRAMS_FULL": "gram(s)", - "KILOGRAMS_SYMBOL": "kg", - "KILOGRAMS_FULL": "kilogram(s)", - "TONNES_SYMBOL": "t", - "TONNES_FULL": "ton(s)", - "OUNCES_SYMBOL": "oz", - "OUNCES_FULL": "ounce(s)", - "POUNDS_SYMBOL": "lb", - "POUNDS_FULL": "pound(s)", - "KILOMETERS_SYMBOL": "km", - "KILOMETERS_FULL": "kilometer(s)", - "MILES_SYMBOL": "mi", - "MILES_FULL": "mile(s)" + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gram(s)", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogram(s)", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "ton(s)", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "ounce(s)", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "pound(s)", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilometer(s)", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "mile(s)" } \ No newline at end of file diff --git a/app/utils/calculation/translations/es.json b/app/utils/calculation/translations/es.json index d53de8af..76585a1c 100644 --- a/app/utils/calculation/translations/es.json +++ b/app/utils/calculation/translations/es.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "g", - "GRAMS_FULL": "gramo(s)", - "KILOGRAMS_SYMBOL": "kg", - "KILOGRAMS_FULL": "kilogramo(s)", - "TONNES_SYMBOL": "t", - "TONNES_FULL": "tonelada(s)", - "OUNCES_SYMBOL": "onz", - "OUNCES_FULL": "onza(s)", - "POUNDS_SYMBOL": "lb", - "POUNDS_FULL": "libra(s)", - "KILOMETERS_SYMBOL": "km", - "KILOMETERS_FULL": "kilómetro(s)", - "MILES_SYMBOL": "mi", - "MILES_FULL": "milla(s)" + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gramo(s)", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogramo(s)", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "tonelada(s)", + "CALCULATION_OUNCES_SYMBOL": "onz", + "CALCULATION_OUNCES_FULL": "onza(s)", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "libra(s)", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilómetro(s)", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "milla(s)" } \ No newline at end of file diff --git a/app/utils/calculation/translations/fr.json b/app/utils/calculation/translations/fr.json index f0d28e83..7cdfc1e4 100644 --- a/app/utils/calculation/translations/fr.json +++ b/app/utils/calculation/translations/fr.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "g", - "GRAMS_FULL": "gramme(s)", - "KILOGRAMS_SYMBOL": "kg", - "KILOGRAMS_FULL": "kilogramme(s)", - "TONNES_SYMBOL": "t", - "TONNES_FULL": "tonne(s)", - "OUNCES_SYMBOL": "oz", - "OUNCES_FULL": "once(s)", - "POUNDS_SYMBOL": "lb", - "POUNDS_FULL": "livre(s)", - "KILOMETERS_SYMBOL": "km", - "KILOMETERS_FULL": "kilomètre(s)", - "MILES_SYMBOL": "mi", - "MILES_FULL": "mille(s)" + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gramme(s)", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogramme(s)", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "tonne(s)", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "once(s)", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "livre(s)", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilomètre(s)", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "mile(s)" } \ No newline at end of file diff --git a/app/utils/calculation/translations/index.ts b/app/utils/calculation/translations/index.ts index 81b35d7d..1b1380f1 100644 --- a/app/utils/calculation/translations/index.ts +++ b/app/utils/calculation/translations/index.ts @@ -10,22 +10,23 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { - GRAMS_SYMBOL: string; - GRAMS_FULL: string; - KILOGRAMS_SYMBOL: string; - KILOGRAMS_FULL: string; - TONNES_SYMBOL: string; - TONNES_FULL: string; - OUNCES_SYMBOL: string; - OUNCES_FULL: string; - POUNDS_SYMBOL: string; - POUNDS_FULL: string; - KILOMETERS_SYMBOL: string; - KILOMETERS_FULL: string; - MILES_SYMBOL: string; - MILES_FULL: string; + CALCULATION_GRAMS_SYMBOL: string; + CALCULATION_GRAMS_FULL: string; + CALCULATION_KILOGRAMS_SYMBOL: string; + CALCULATION_KILOGRAMS_FULL: string; + CALCULATION_TONNES_SYMBOL: string; + CALCULATION_TONNES_FULL: string; + CALCULATION_OUNCES_SYMBOL: string; + CALCULATION_OUNCES_FULL: string; + CALCULATION_POUNDS_SYMBOL: string; + CALCULATION_POUNDS_FULL: string; + CALCULATION_KILOMETERS_SYMBOL: string; + CALCULATION_KILOMETERS_FULL: string; + CALCULATION_MILES_SYMBOL: string; + CALCULATION_MILES_FULL: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/app/utils/calculation/translations/it.json b/app/utils/calculation/translations/it.json index 0cc1cf22..5f688203 100644 --- a/app/utils/calculation/translations/it.json +++ b/app/utils/calculation/translations/it.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "g", - "GRAMS_FULL": "grammmi", - "KILOGRAMS_SYMBOL": "kg", - "KILOGRAMS_FULL": "chilogrammi", - "TONNES_SYMBOL": "t", - "TONNES_FULL": "tonnellate", - "OUNCES_SYMBOL": "oz", - "OUNCES_FULL": "once", - "POUNDS_SYMBOL": "lb", - "POUNDS_FULL": "libbre", - "KILOMETERS_SYMBOL": "km", - "KILOMETERS_FULL": "kilometri", - "MILES_SYMBOL": "mi", - "MILES_FULL": "miglia" + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "grammmi", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "chilogrammi", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "tonnellate", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "once", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "libbre", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilometri", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "miglia" } \ No newline at end of file diff --git a/app/utils/calculation/translations/ms.json b/app/utils/calculation/translations/ms.json index 8945e7c3..9e26dfee 100644 --- a/app/utils/calculation/translations/ms.json +++ b/app/utils/calculation/translations/ms.json @@ -1,16 +1 @@ -{ - "GRAMS_SYMBOL": "g", - "GRAMS_FULL": "gram", - "KILOGRAMS_SYMBOL": "kg", - "KILOGRAMS_FULL": "kilogram", - "TONNES_SYMBOL": "t", - "TONNES_FULL": "ton", - "OUNCES_SYMBOL": "oz", - "OUNCES_FULL": "ons", - "POUNDS_SYMBOL": "lb", - "POUNDS_FULL": "pon", - "KILOMETERS_SYMBOL": "km", - "KILOMETERS_FULL": "kilometer(s)", - "MILES_SYMBOL": "mi", - "MILES_FULL": "mil" -} \ No newline at end of file +{} \ No newline at end of file diff --git a/app/utils/calculation/translations/pl.json b/app/utils/calculation/translations/pl.json index be0b1ebe..76afa493 100644 --- a/app/utils/calculation/translations/pl.json +++ b/app/utils/calculation/translations/pl.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "g", - "GRAMS_FULL": "gram(y)", - "KILOGRAMS_SYMBOL": "kg", - "KILOGRAMS_FULL": "kilogram(y)", - "TONNES_SYMBOL": "t", - "TONNES_FULL": "tona/y", - "OUNCES_SYMBOL": "oz", - "OUNCES_FULL": "uncja/e", - "POUNDS_SYMBOL": "lb", - "POUNDS_FULL": "funt(y)", - "KILOMETERS_SYMBOL": "km", - "KILOMETERS_FULL": "kilometr(y)", - "MILES_SYMBOL": "mi", - "MILES_FULL": "mila/e" + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gram(y)", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogram(y)", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "tona/y", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "uncja/e", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "funt(y)", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilometr(y)", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "mila/e" } \ No newline at end of file diff --git a/app/utils/calculation/translations/pt.json b/app/utils/calculation/translations/pt.json index 8d41062a..bd5c65d3 100644 --- a/app/utils/calculation/translations/pt.json +++ b/app/utils/calculation/translations/pt.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "g", - "GRAMS_FULL": "grama(s)", - "KILOGRAMS_SYMBOL": "kg", - "KILOGRAMS_FULL": "quilograma(s)", - "TONNES_SYMBOL": "t", - "TONNES_FULL": "tonelada(s)", - "OUNCES_SYMBOL": "oz", - "OUNCES_FULL": "onça(s)", - "POUNDS_SYMBOL": "lb", - "POUNDS_FULL": "libra(s)", - "KILOMETERS_SYMBOL": "km", - "KILOMETERS_FULL": "quilômetro(s)", - "MILES_SYMBOL": "mi", - "MILES_FULL": "milha(s)" + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "grama(s)", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "quilograma(s)", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "tonelada(s)", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "onça(s)", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "libra(s)", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "quilômetro(s)", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "milha(s)" } \ No newline at end of file diff --git a/app/utils/calculation/translations/ru.json b/app/utils/calculation/translations/ru.json index c4061b13..6addea14 100644 --- a/app/utils/calculation/translations/ru.json +++ b/app/utils/calculation/translations/ru.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "г", - "GRAMS_FULL": "грамм(а)", - "KILOGRAMS_SYMBOL": "кг", - "KILOGRAMS_FULL": "килограмм(а)", - "TONNES_SYMBOL": "т", - "TONNES_FULL": "тонна/ы", - "OUNCES_SYMBOL": "oz", - "OUNCES_FULL": "унция/и", - "POUNDS_SYMBOL": "фунт", - "POUNDS_FULL": "фунт", - "KILOMETERS_SYMBOL": "км", - "KILOMETERS_FULL": "километр(а)", - "MILES_SYMBOL": "ми", - "MILES_FULL": "миля/и" + "CALCULATION_GRAMS_SYMBOL": "г", + "CALCULATION_GRAMS_FULL": "грамм(а)", + "CALCULATION_KILOGRAMS_SYMBOL": "кг", + "CALCULATION_KILOGRAMS_FULL": "килограмм(а)", + "CALCULATION_TONNES_SYMBOL": "т", + "CALCULATION_TONNES_FULL": "тонна/ы", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "унция/и", + "CALCULATION_POUNDS_SYMBOL": "фунт", + "CALCULATION_POUNDS_FULL": "фунт", + "CALCULATION_KILOMETERS_SYMBOL": "км", + "CALCULATION_KILOMETERS_FULL": "километр(а)", + "CALCULATION_MILES_SYMBOL": "ми", + "CALCULATION_MILES_FULL": "миля/и" } \ No newline at end of file diff --git a/app/utils/calculation/translations/sv.json b/app/utils/calculation/translations/sv.json index 9ef62148..8d0bbbb5 100644 --- a/app/utils/calculation/translations/sv.json +++ b/app/utils/calculation/translations/sv.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "g", - "GRAMS_FULL": "gram", - "KILOGRAMS_SYMBOL": "kg", - "KILOGRAMS_FULL": "kilogram", - "TONNES_SYMBOL": "t", - "TONNES_FULL": "ton", - "OUNCES_SYMBOL": "oz", - "OUNCES_FULL": "uns", - "POUNDS_SYMBOL": "lb", - "POUNDS_FULL": "pund", - "KILOMETERS_SYMBOL": "km", - "KILOMETERS_FULL": "kilometer", - "MILES_SYMBOL": "mi", - "MILES_FULL": "mil" + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gram", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogram", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "ton", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "uns", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "pund", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilometer", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "mil" } \ No newline at end of file diff --git a/app/utils/calculation/translations/zh.json b/app/utils/calculation/translations/zh.json index e68e9f83..3563e068 100644 --- a/app/utils/calculation/translations/zh.json +++ b/app/utils/calculation/translations/zh.json @@ -1,16 +1,16 @@ { - "GRAMS_SYMBOL": "克", - "GRAMS_FULL": "克", - "KILOGRAMS_SYMBOL": "公斤", - "KILOGRAMS_FULL": "公斤", - "TONNES_SYMBOL": "吨", - "TONNES_FULL": "吨", - "OUNCES_SYMBOL": "盎司", - "OUNCES_FULL": "盎司", - "POUNDS_SYMBOL": "磅", - "POUNDS_FULL": "磅", - "KILOMETERS_SYMBOL": "公里", - "KILOMETERS_FULL": "公里", - "MILES_SYMBOL": "英里", - "MILES_FULL": "英里" + "CALCULATION_GRAMS_SYMBOL": "克", + "CALCULATION_GRAMS_FULL": "克", + "CALCULATION_KILOGRAMS_SYMBOL": "公斤", + "CALCULATION_KILOGRAMS_FULL": "公斤", + "CALCULATION_TONNES_SYMBOL": "吨", + "CALCULATION_TONNES_FULL": "吨", + "CALCULATION_OUNCES_SYMBOL": "盎司", + "CALCULATION_OUNCES_FULL": "盎司", + "CALCULATION_POUNDS_SYMBOL": "磅", + "CALCULATION_POUNDS_FULL": "磅", + "CALCULATION_KILOMETERS_SYMBOL": "公里", + "CALCULATION_KILOMETERS_FULL": "公里", + "CALCULATION_MILES_SYMBOL": "英里", + "CALCULATION_MILES_FULL": "英里" } \ No newline at end of file diff --git a/app/utils/translations/i18n.ts b/app/utils/translations/i18n.ts index 67356635..1fe0beec 100644 --- a/app/utils/translations/i18n.ts +++ b/app/utils/translations/i18n.ts @@ -1,11 +1,11 @@ import * as Localization from "expo-localization"; import i18n from "i18n-js"; -import { en, de, fr, sv, ru, pl, pt, da, zh, ms, es, it, TranslationKeys } from "./resources"; +import { en, de, fr, sv, ru, pl, pt, da, zh, ms, es, it, ar, TranslationKeys } from "./resources"; // Configure i18n.fallbacks = true; -i18n.translations = { en, de, fr, sv, ru, pl, pt, da, zh, ms, es, it }; +i18n.translations = { en, de, fr, sv, ru, pl, pt, da, zh, ms, es, it, ar }; // Test locales quickly by overriding this value i18n.locale = Localization.locale; diff --git a/app/utils/translations/languages.tsx b/app/utils/translations/languages.tsx index 5ec78fcb..abe8a5fe 100644 --- a/app/utils/translations/languages.tsx +++ b/app/utils/translations/languages.tsx @@ -15,10 +15,11 @@ const supportedLanguages = { ms: "Bahasa Melayu", es: "Español", it: "Italiano", + ar: "عربي", }; -const currentLanguage = Object.keys(supportedLanguages).includes(locale.substr(0, 2)) - ? locale.substr(0, 2) +const currentLanguage = Object.keys(supportedLanguages).includes(locale.substring(0, 2)) + ? locale.substring(0, 2) : supportedLanguages[0]; export { supportedLanguages, currentLanguage }; diff --git a/app/utils/translations/resources.ts b/app/utils/translations/resources.ts index 978e5252..6b50d467 100644 --- a/app/utils/translations/resources.ts +++ b/app/utils/translations/resources.ts @@ -418,6 +418,38 @@ const it = { ...RecurringEmissions.it, }; +const ar = { + ...UI.ar, + ...Calculation.ar, + ...About.ar, + ...Notifications.ar, + ...MonthlyBudget.ar, + ...NoEmission.ar, + ...PermissionsRequest.ar, + ...OpenFoodFacts.ar, + ...Act.ar, + ...Budget.ar, + ...Emissions.ar, + ...Settings.ar, + ...ComingSoon.ar, + ...InfoModal.ar, + ...AddEmission.ar, + ...EmissionItem.ar, + ...Intro.ar, + ...SupportUs.ar, + ...MyLocation.ar, + ...ActDetail.ar, + ...MyData.ar, + ...CategorySelection.ar, + ...SubCategorySelection.ar, + ...BarCodeScan.ar, + ...MonthlyEmissions.ar, + ...Languages.ar, + ...Periodicity.ar, + ...Faq.ar, + ...RecurringEmissions.ar, +}; + export interface TranslationKeys extends UI.TranslationKeys, Calculation.TranslationKeys, @@ -449,4 +481,4 @@ export interface TranslationKeys Faq.TranslationKeys, RecurringEmissions.TranslationKeys {} -export { en, de, fr, sv, pt, es, pl, ru, da, zh, ms, it }; +export { en, de, fr, sv, pt, es, pl, ru, da, zh, ms, it, ar }; diff --git a/app/utils/ui/translations/ar.json b/app/utils/ui/translations/ar.json new file mode 100644 index 00000000..dadf45e7 --- /dev/null +++ b/app/utils/ui/translations/ar.json @@ -0,0 +1,78 @@ +{ + "UI_MONDAY": "الاثنين", + "UI_TUESDAY": "يوم الثلاثاء", + "UI_WEDNESDAY": "الأربعاء", + "UI_THURSDAY": "يوم الخميس", + "UI_FRIDAY": "جمعة", + "UI_SATURDAY": "السبت", + "UI_SUNDAY": "الأحد", + "UI_TRAIN": "يدرب", + "UI_CAR": "سيارة", + "UI_PLANE": "طائرة", + "UI_BOAT": "قارب", + "UI_BUS": "حافلة", + "UI_MOTORBIKE": "دراجات نارية", + "UI_RED_MEAT": "لحم أحمر", + "UI_WHITE_MEAT": "اللحوم البيضاء", + "UI_CHOCOLATE": "شوكولاتة", + "UI_COFFEE": "قهوة", + "UI_FISH": "سمكة", + "UI_CUSTOM": "مخصص", + "UI_HD_VIDEO": "فيديو - عالي الدقة", + "UI_AUDIO": "الصوت - MP3", + "UI_FULL_HD_VIDEO": "الفيديو - FullHD/1080p", + "UI_ULTRA_HD_VIDEO": "فيديو - الترا اتش دي/4 كيه", + "UI_ELECTRICITY": "كهرباء", + "UI_MILK": "لبن", + "UI_CHEESE": "جبنه", + "UI_EGGS": "بيض", + "UI_COMPUTER": "حاسوب", + "UI_ELECTRIC_CAR": "سيارة كهربائية", + "UI_FOSSIL_FUEL_CAR": "سيارة تعمل بالوقود الأحفوري", + "UI_HYBRID_CAR": "سيارة هجينة", + "UI_LAPTOP": "حاسوب محمول", + "UI_SMARTPHONE": "هاتف ذكي", + "UI_TABLET": "لوح", + "UI_TV": "التلفاز", + "UI_COAT": "معطف", + "UI_DRESS": "فستان", + "UI_JEANS": "جينز", + "UI_SHIRT": "قميص", + "UI_SHOES": "أحذية", + "UI_SWEATER": "سترة", + "UI_T_SHIRT": "تي شيرت", + "UI_HIGH_MEAT": "اللحوم عالية", + "UI_MEDIUM_MEAT": "لحم متوسط", + "UI_LOW_MEAT": "اللحوم قليلة", + "UI_PESCETARIAN": "بيسكيتاريان", + "UI_VEGAN": "نباتي", + "UI_VEGETARIAN": "نباتي", + "UI_BEANS": "فول", + "UI_BEEF": "لحم", + "UI_CHICKEN": "فرخة", + "UI_FRUIT": "فاكهة", + "UI_LAMB": "حمَل", + "UI_LENTILS": "عدس", + "UI_NUTS": "المكسرات", + "UI_PORK": "لحم خنزير", + "UI_POTATOES": "بطاطا", + "UI_RICE": "أرز", + "UI_TOFU": "التوفو", + "UI_TUNA": "تونة", + "UI_TURKEY": "ديك رومى", + "UI_VEGETABLES": "خضروات", + "UI_CRYPTO_CURRENCY_POW": "معاملة العملة المشفرة", + "UI_SINGLE_EDITION_NFT": "طبعة واحدة NFT", + "UI_FASHION": "موضة", + "UI_FOOD": "طعام", + "UI_MEAL": "وجبة", + "UI_PURCHASE": "شراء", + "UI_STREAMING": "تدفق", + "UI_TRANSPORT": "ينقل", + "UI_SCAN_PRODUCT": "مسح المنتج", + "UI_TIME": "وقت", + "UI_TIMES": "مرات", + "UI_WEEKLY": "أسبوعي", + "UI_MONTHLY": "شهريا", + "UI_EVERY": "كل" +} \ No newline at end of file diff --git a/app/utils/ui/translations/index.ts b/app/utils/ui/translations/index.ts index 53e85854..dc91b845 100644 --- a/app/utils/ui/translations/index.ts +++ b/app/utils/ui/translations/index.ts @@ -10,6 +10,7 @@ import pl from "./pl.json"; import zh from "./zh.json"; import ms from "./ms.json"; import it from "./it.json"; +import ar from "./ar.json"; interface TranslationKeys { UI_TRAIN: string; @@ -90,4 +91,4 @@ interface TranslationKeys { UI_EVERY: string; } -export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, TranslationKeys }; +export { en, fr, de, sv, es, pt, da, ru, pl, zh, ms, it, ar, TranslationKeys }; diff --git a/i18.ts b/i18.ts index 15162388..459139e5 100644 --- a/i18.ts +++ b/i18.ts @@ -11,7 +11,8 @@ import zh from "react-native-globalize/locale-data/zh"; import ms from "react-native-globalize/locale-data/ms"; import es from "react-native-globalize/locale-data/es"; import it from "react-native-globalize/locale-data/it"; +import ar from "react-native-globalize/locale-data/ar"; export const loadGlobalize = () => { - loadCldr(en, fr, de, sv, da, ru, pt, pl, zh, ms, es, it); + loadCldr(en, fr, de, sv, da, ru, pt, pl, zh, ms, es, it, ar); }; diff --git a/scripts/generate-translation-files.js b/scripts/generate-translation-files.js index 640387ab..d7e3ce9d 100644 --- a/scripts/generate-translation-files.js +++ b/scripts/generate-translation-files.js @@ -18,10 +18,15 @@ const paths = [ "app/screens/MonthlyEmissions/translations/", "app/screens/Languages/translations/", "app/screens/Faq/translations/", - "app/screens/RecurringEmissions/translations", + "app/screens/BarCodeScan/translations/", + "app/screens/RecurringEmissions/translations/", + "app/screens/SubCategorySelection/translations/", + "app/screens/Periodicity/translations/", "app/components/NoEmission/translations/", "app/components/OpenFoodFacts/translations/", + "app/components/PermissionsRequest/translations/", "app/utils/ui/translations/", + "app/utils/calculation/translations/" ]; const englishFile = "en.json"; diff --git a/scripts/poeditor/app-store/ar.json b/scripts/poeditor/app-store/ar.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/scripts/poeditor/app-store/ar.json @@ -0,0 +1 @@ +{} diff --git a/scripts/poeditor/ar.json b/scripts/poeditor/ar.json new file mode 100644 index 00000000..e6a5a5de --- /dev/null +++ b/scripts/poeditor/ar.json @@ -0,0 +1,247 @@ +{ + "ACT_SCREEN_TAB_NAME": "يمثل", + "ACT_SCREEN_TITLE": "الدليل المستدام", + "ACT_SCREEN_HABITS": "العادات", + "ACT_SCREEN_FOOD": "طعام", + "ACT_SCREEN_KITCHEN": "مطبخ", + "ACT_SCREEN_TECHNOLOGY": "تكنولوجيا", + "BUDGET_SCREEN_TAB_NAME": "ميزانية", + "BUDGET_SCREEN_TITLE": "ميزانية الكربون", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_TOTAL": "المجموع", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_FOOD": "طعام", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_MEAL": "وجبة", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_TRANSPORT": "ينقل", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_STREAMING": "تدفق", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_PURCHASE": "شراء", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_FASHION": "موضة", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_ELECTRICITY": "كهرباء", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_PRODUCT_SCANNED": "تم مسح المنتج", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_ITEM_CUSTOM": "مخصص", + "BUDGET_SCREEN_PROGRESS_CHART_LEGEND_PERIOD_BUDGET": "ميزانية ", + "BUDGET_SCREEN_SET_MONTHLY_BUDGET": "تحديد الميزانية الشهرية", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_RECENT_MEAT": "أوه لا، لقد أكلت مؤخرًا اللحوم أو الأسماك 🥺", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_NICE_START": "هذه بداية جميلة! 👌", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_WELL_DONE": "أحسنت! 🎉", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_NO_MEAT_SO_FAR": "يبدو أنك لم تأكل أي لحم أو سمك منذ استخدام التطبيق، عمل جيد! 🍾", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_DAYS": "أيام", + "BUDGET_SCREEN_NUMBER_OF_DAYS_VEGETARIAN_WITHOUT_MEAT": "بدون لحم أو سمك.", + "EMISSIONS_SCREEN_TAB_NAME": "الانبعاثات", + "EMISSIONS_SCREEN_TITLE": "الانبعاثات", + "EMISSIONS_SCREEN_ADD_EMISSION": "إضافة الانبعاثات", + "EMISSIONS_SCREEN_HEADER_OF_BUDGET": "من الميزانية", + "EMISSIONS_SCREEN_RECURRING_EMISSIONS": "الانبعاثات المتكررة", + "SETTINGS_SCREEN_TAB_NAME": "إعدادات", + "SETTINGS_SCREEN_TITLE": "إعدادات", + "SETTINGS_SCREEN_ABOUT": "عن", + "SETTINGS_SCREEN_UNITS": "الوحدات المترية", + "SETTINGS_SCREEN_NOTIFICATIONS": "إشعارات", + "SETTINGS_SCREEN_MY_LOCATION": "موقعي", + "SETTINGS_SCREEN_FAQ": "التعليمات", + "SETTINGS_SCREEN_SUPPORT_US": "ادعمنا!", + "SETTINGS_SCREEN_ROADMAP": "خريطة الطريق", + "SETTINGS_SCREEN_FEEDBACK": "تعليق", + "SETTINGS_SCREEN_TERMS_OF_USE": "شروط الاستخدام", + "SETTINGS_SCREEN_APP_VERSION": "الإصدار %{الإصدار}", + "SETTINGS_SCREEN_IMPORT_SAVE_DELETE_DATA": "بياناتي", + "SETTINGS_SCREEN_HELP_TRANSLATION": "مساعدة في الترجمة", + "SETTINGS_SCREEN_LANGUAGES": "اللغات", + "MONTHLY_BUDGET_SCREEN_TITLE": "الميزانية الشهرية", + "MONTHLY_BUDGET_SCREEN_SLIDE_TO_SET": "قم بالتمرير لتعيين ميزانيتك", + "MONTHLY_BUDGET_SCREEN_SAVE": "يحفظ", + "MONTHLY_BUDGET_SCREEN_CARBON_EMISSIONS_WORLD": "متوسط الانبعاثات الشهرية للفرد في عينة من البلدان ", + "MONTHLY_BUDGET_SCREEN_LUXEMBOURG": "لوكسمبورغ : ", + "MONTHLY_BUDGET_SCREEN_UNITED_STATES": "الولايات المتحدة : ", + "MONTHLY_BUDGET_SCREEN_JAPAN": "اليابان : ", + "MONTHLY_BUDGET_SCREEN_SWEDEN": "السويد : ", + "MONTHLY_BUDGET_SCREEN_FRANCE": "فرنسا : ", + "MONTHLY_BUDGET_SCREEN_CHINA": "الصين : ", + "MONTHLY_BUDGET_SCREEN_BRAZIL": "البرازيل : ", + "MONTHLY_BUDGET_SCREEN_INDIA": "الهند : ", + "MONTHLY_BUDGET_SCREEN_ETHIOPIA": "إثيوبيا : ", + "MONTHLY_BUDGET_SCREEN_PARIS_AGREEMENT": "إذا كنت ترغب في احترام اتفاقية باريس (للحفاظ على ارتفاع متوسط درجة الحرارة العالمية أقل من درجتين)، فحدد ميزانيتك الشهرية على", + "COMING_SOON_SCREEN_TITLE": "قريباً!", + "COMING_SOON_SCREEN_UNDER_DEVELOPMENT": "هذه الميزة قيد التطوير وستكون متاحة قريبًا.", + "COMING_SOON_SCREEN_START_FOLLOW_US": "في هذه الأثناء، تابعونا على وسائل التواصل الاجتماعي!", + "ADD_EMISSION_SCREEN_TAB_NAME": "يضيف", + "ADD_EMISSION_SCREEN_TITLE": "إضافة الانبعاثات", + "ADD_EMISSION_SCREEN_ELECTRICITY_CONSUMPTION": "استهلاك الكهرباء", + "ADD_EMISSION_SCREEN_DURATION": "مدة", + "ADD_EMISSION_SCREEN_DISTANCE": "مسافة", + "ADD_EMISSION_SCREEN_TOTAL": "المجموع", + "ADD_EMISSION_SCREEN_QUANTITY": "كمية", + "ADD_EMISSION_SCREEN_QUANTITY_OF_EMISSION": "كمية الانبعاثات", + "ADD_EMISSION_SCREEN_ADD_THIS_EMISSION": "أضف هذا الانبعاث", + "ADD_EMISSION_SCREEN_TEXTINPUT_PLACEHOLDER": "على سبيل المثال، برجر، رحلة طيران من باريس إلى روما...", + "ADD_EMISSION_SCREEN_NAME_EMISSION": "اسم هذا الانبعاث ", + "ADD_EMISSION_SCREEN_DATE": "تاريخ", + "ADD_EMISSION_SCREEN_PICKER_MODAL_CONFIRM": "يتأكد", + "ADD_EMISSION_SCREEN_PICKER_MODAL_CANCEL": "يلغي", + "ADD_EMISSION_SCREEN_ITEMS": "أغراض)", + "ADD_EMISSION_SCREEN_MEALS": "وجبات)", + "ADD_EMISSION_SCREEN_PERIODICITY": "الدورية", + "ADD_EMISSION_SCREEN_NON_RECURRING": "غير متكررة", + "ADD_EMISSION_SCREEN_NAME": "اسم", + "EMISSION_ITEM_SCREEN_EMISSION": "انبعاث", + "EMISSION_ITEM_SCREEN_RECURRING_EMISSION": "الانبعاث المتكرر", + "EMISSION_ITEM_SCREEN_TYPE": "يكتب", + "EMISSION_ITEM_SCREEN_QUANTITY": "كمية", + "EMISSION_ITEM_SCREEN_PRICE": "سعر", + "EMISSION_ITEM_SCREEN_DATE": "تاريخ", + "EMISSION_ITEM_SCREEN_DELETE": "يمسح", + "EMISSION_ITEM_SCREEN_NAME": "اسم", + "EMISSION_ITEM_SCREEN_MITIGATED": "تخفيف", + "EMISSION_ITEM_SCREEN_IS_MITIGATED": "وقد تم تخفيف هذا الانبعاث", + "EMISSION_ITEM_SCREEN_IS_NOT_MITIGATED": "ولم يتم تخفيف هذا الانبعاث", + "EMISSION_ITEM_SCREEN_PERIODICITY": "الدورية", + "EMISSION_ITEM_SCREEN_TITLE": "انبعاث", + "EMISSION_ITEM_SCREEN_DELETE_EMISSION": "حذف الانبعاث", + "INTRO_SCREEN_WELCOME": "مرحبًا بك في NMF.earth 🌱", + "INTRO_SCREEN_CONTINUE_AND_ACCEPT_TERMS_OF_USE": "من خلال المتابعة، فإنك توافق على شروط الاستخدام الخاصة بنا.", + "INTRO_SCREEN_TERMS_OF_USE": "اقرأ شروط الاستخدام", + "INTRO_SCREEN_I_AGREE": "أنا موافق", + "ABOUT_SCREEN_TITLE": "عن", + "ABOUT_SCREEN_INTRO": "نحن فريق صغير مهتم بالتأثير البشري على الكوكب. نحن لسنا شركة ناشئة مدفوعة بالنمو أو الربح لدفع الأرباح للمستثمرين. نحن نتحلى بالشفافية ويمكنك إلقاء نظرة على أرقامنا على Indie Hackers. يمكنك الانضمام إلى فريقنا إذا كنت تريد مساعدة المشروع. أو ببساطة تحدث من حولك عن مشروعنا، أعطنا 5 نجوم في المتجر وأرسل لنا تعليقاتك على التطبيق ستساعدنا كثيرًا. شكرا لك ✌️", + "ABOUT_SCREEN_CARE_HEADER": "نحن نهتم بك", + "ABOUT_SCREEN_PRIVACY": "الخصوصية حسب التصميم", + "ABOUT_SCREEN_ETHIC": "الأخلاق حسب التصميم", + "ABOUT_SCREEN_OPEN_SOURCE": "100% مفتوح المصدر", + "ABOUT_SCREEN_PRIVACY_BODY": "لن يتم أبدًا بيع أو مشاركة جميع البيانات المقدمة في التطبيق إلى أي شركة ولا نتتبع ما تفعله في التطبيق ", + "ABOUT_SCREEN_ETHIC_BODY": "نحن لا نستغل نقاط الضعف النفسية مثل الخلاصات التي لا نهاية لها أو التشغيل التلقائي لمنع المستخدمين من المغادرة ", + "ABOUT_SCREEN_OPEN_SOURCE_BODY": "سيتمكن الجميع من إضافة محتوى إلى التطبيق والتحقق من نماذج الانبعاثات وإصلاح أي معلومات غير صحيحة", + "ABOUT_SCREEN_LIBRARIES_AND_CONTRIBUTORS": "المكتبات والمساهمين", + "ABOUT_SCREEN_CAN_BE_FOUND": "يمكن العثور عليها على ", + "ABOUT_SCREEN_GITHUB": "جيثب", + "SUPPORT_US_SCREEN_TITLE": "ادعمنا!", + "SUPPORT_US_SCREEN_WHY_DONATE_TITLE": "لماذا يجب أن تفكر في دعمنا", + "SUPPORT_US_SCREEN_WHY_DONATE_CONTENT": "NMF.earth ليس من أجل الربح، لقد قمنا فقط بجمع مبلغ صغير على Kickstarter ونواصل العمل كثيرًا على المشروع حتى لو لم يكن مستدامًا ماليًا. بالإضافة إلى ذلك، لدينا العديد من التكاليف مثل الخوادم واسم النطاق وتراخيص البرامج وحساب مطور Apple وما إلى ذلك.", + "SUPPORT_US_SCREEN_TITLE_CONSIDER_DONATE": "إذا أعجبك هذا المشروع، يرجى التفكير في التبرع بمبلغ صغير لمساعدتنا على الاستمرار!", + "SUPPORT_US_SCREEN_PLATFORM": "يمكنك القيام بذلك على Ko-fi.", + "MY_LOCATION_SCREEN_TITLE": "موقع", + "MY_LOCATION_SCREEN_INTRO": "يرجى تحديد بلد لتحسين حسابات الانبعاثات للبث والكهرباء.", + "MY_LOCATION_SCREEN_MY_CARBON_INTENSITY": "كثافة الكربون : ", + "ACT_DETAIL_SCREEN_TITLE": "يمثل", + "NOTIFICATIONS_SCREEN_TITLE": "إشعارات", + "NOTIFICATIONS_SCREEN_INTRO": "احصل على إشعار كل يوم أحد الساعة 9 مساءً لتذكيرك بإضافة انبعاثاتك الأسبوعية.", + "NOTIFICATIONS_SCREEN_ACTIVATED": "مفعل", + "NOTIFICATIONS_SCREEN_NOTIFICATION_TITLE": "الانبعاثات الأسبوعية 🗓", + "NOTIFICATIONS_SCREEN_NOTIFICATION_BODY": "إليك تذكير لطيف لإضافة انبعاثاتك لهذا الأسبوع.", + "INFO_MODAL_SCREEN_METHODOLOGY": "المنهجية", + "MY_DATA_SCREEN_TITLE": "My Data", + "MY_DATA_SCREEN_BODY": "With NMF.earth, you own your data. It means that we don't save your data on any server and therefore that no one but you can access it. No security problem, your data never leaves your phone. However, it also means that you are in charge of saving your data in case you loose your phone for example. To do so, use the export button below to get your data and save it where ever you want to. When you want to import old data, just press the import button but be careful because it will also delete your old data.", + "MY_DATA_SCREEN_EXPORT_MY_DATA": "Export my data", + "MY_DATA_SCREEN_IMPORT_DATA": "Import data", + "MY_DATA_SCREEN_DELETE_ALL_MY_DATA": "Delete all my data", + "MY_DATA_SCREEN_ALERT_CONFIRM": "Confirm", + "MY_DATA_SCREEN_ALERT_CONFIRM_IMPORT": "This action will replace current data", + "MY_DATA_SCREEN_ALERT_CONFIRM_DELETE": "This action will delete all your data", + "MY_DATA_SCREEN_CANCEL": "Cancel", + "MY_DATA_SCREEN_OK": "Ok", + "MY_DATA_SCREEN_DELETE_SUCCESSFUL": "We have successully deleted your emissions.", + "MY_DATA_SCREEN_GENERIC_ERROR": "Something went wrong.", + "MONTHLY_EMISSIONS_SCREEN_OF_BUDGET": "من الميزانية", + "LANGUAGES_SCREEN_TITLE": "اللغات", + "FAQ_SCREEN_TITLE": "التعليمات", + "FAQ_SCREEN_ENTER_MANUALLY_QUESTION": "لماذا يتعين علي إدخال انبعاثاتي يدويًا؟", + "FAQ_SCREEN_ENTER_MANUALLY_ANSWER": "نحن نعمل على إضافة الانبعاثات المتكررة ولكننا لن نذهب إلى أبعد من ذلك، مما يعني أنك لن تتمكن من حساب بصمتك الكربونية تلقائيًا من نفقاتك على سبيل المثال. إنه أمر مزعج حسب التصميم، كتذكير لطيف بالتلوث والاستهلاك الأقل.", + "FAQ_SCREEN_GOAL_QUESTION": "ما هو هدفك؟", + "FAQ_SCREEN_GOAL_ANSWER": "يختفي! على عكس صناعة التكنولوجيا، نأمل أن تتوقف عن استخدام تطبيقنا بعد مرور بعض الوقت. الهدف الوحيد لـ NMF.earth هو مساعدة أي شخص على فهم البصمة الكربونية وتقليلها. وبمجرد الانتهاء من ذلك، فإننا نشجعك على الاستمرار في هذا المسار، دون مدخلاتنا. ", + "FAQ_SCREEN_STARTUP_QUESTION": "هل أنت شركة ناشئة؟", + "FAQ_SCREEN_STARTUP_ANSWER": "لا، وNMF.earth لن يكون كذلك أبدًا، فهو مجرد مشروع جانبي مفتوح المصدر، وليس حتى شركة. الشركات الناشئة، بحكم تعريفها، هي شركات تبحث عن النمو المتسارع. المشكلة هي أن النمو المتسارع هو السبب وراء الانحباس الحراري العالمي.", + "FAQ_SCREEN_DATA_QUESTION": "هل تقوم بجمع بياناتي؟", + "FAQ_SCREEN_DATA_ANSWER": "لا، نحن لا نتتبع ما تفعله في التطبيق، بل نقوم فقط بجمع بيانات الأعطال حتى نتمكن من إصلاح الأخطاء. احصل على فنجان من القهوة واقرأ كودنا مفتوح المصدر، وسترى أننا لا نتتبع أي شيء مما تفعله، لا شيء على الإطلاق.", + "FAQ_SCREEN_VEGAN_QUESTION": "لماذا تشجع الناس على أن يكونوا نباتيين / نباتيين / مرنين؟", + "FAQ_SCREEN_VEGAN_ANSWER": "تولد تربية الحيوانات الصناعية الكثير من انبعاثات ثاني أكسيد الكربون، ولكن ليس هذا فحسب، بل إنها أيضًا فظيعة. يتم كل يوم نقل ما يقرب من 160 مليون حيوان من حيوانات المزرعة في جميع أنحاء العالم إلى المسلخ. ربما يكون الأمر على ما يرام بالنسبة لك، ولكن ليس بالنسبة لنا.", + "FAQ_SCREEN_NMF_QUESTION": "لماذا نمف؟", + "FAQ_SCREEN_NMF_ANSWER": "NMF هو اختصار لـ Not My Fault (؟)، وهو عبارة عن دعوة مفتوحة للتشكيك في أسلوب حياتنا الحديث ومشاركتنا في الإبادة البيئية الحالية.", + "FAQ_SCREEN_DIFFERENT_QUESTION": "كيف حالك مختلفة؟", + "FAQ_SCREEN_DIFFERENT_ANSWER": "نحن لا نتتبع نشاطك داخل التطبيق، ولسنا شركة، لذا لا نحاول الحصول على أموال منك، NMF.earth هو مجرد مشروع مفتوح المصدر أنشأه ناشط مناخي عشوائي حول العالم. كما أننا لا نستغل نقاط الضعف النفسية، مثل الخلاصات التي لا نهاية لها أو التشغيل التلقائي لمنعك من مغادرة التطبيق. نظرًا لأننا لا نتتبعك، فإننا نقدر حقًا أي تعليقات يمكنك تقديمها لنا. نريد أن نأخذ الوقت الكافي لفهم ما تحتاجه وما الذي يجب تحسينه لك. أنت إنسان، ولست سلسلة من الأرقام والإحصائيات على الشاشة.", + "FAQ_SCREEN_GREEN_WASHING_QUESTION": "هل يقوم الجميع بالغسيل الأخضر؟", + "FAQ_SCREEN_GREEN_WASHING_ANSWER": "نعم تقريبا. يجب علينا جميعًا أن نتعاون من أجل مكافحة تغير المناخ، لذا ضع في اعتبارك أن أي شيء غير مفتوح المصدر يعني العمل كالمعتاد. إذا رأيت أن بعض المنظمات لا تشارك كل شيء، فهذا يعني أن اهتمام هذه المنظمة يحفزه الربح الجشع والبقاء، ولا يساعد في التخفيف من تغير المناخ وتعزيز أنماط الحياة المستدامة. نحن لا نبيع أي شيء وكل ما نقوم به مفتوح للجميع بنسبة 100%.", + "RECURRING_EMISSIONS_SCREEN_TITLE": "الانبعاثات المتكررة", + "UI_MONDAY": "الاثنين", + "UI_TUESDAY": "يوم الثلاثاء", + "UI_WEDNESDAY": "الأربعاء", + "UI_THURSDAY": "يوم الخميس", + "UI_FRIDAY": "جمعة", + "UI_SATURDAY": "السبت", + "UI_SUNDAY": "الأحد", + "UI_TRAIN": "يدرب", + "UI_CAR": "سيارة", + "UI_PLANE": "طائرة", + "UI_BOAT": "قارب", + "UI_BUS": "حافلة", + "UI_MOTORBIKE": "دراجات نارية", + "UI_RED_MEAT": "لحم أحمر", + "UI_WHITE_MEAT": "اللحوم البيضاء", + "UI_CHOCOLATE": "شوكولاتة", + "UI_COFFEE": "قهوة", + "UI_FISH": "سمكة", + "UI_CUSTOM": "مخصص", + "UI_HD_VIDEO": "فيديو - عالي الدقة", + "UI_AUDIO": "الصوت - MP3", + "UI_FULL_HD_VIDEO": "الفيديو - FullHD/1080p", + "UI_ULTRA_HD_VIDEO": "فيديو - الترا اتش دي/4 كيه", + "UI_ELECTRICITY": "كهرباء", + "UI_MILK": "لبن", + "UI_CHEESE": "جبنه", + "UI_EGGS": "بيض", + "UI_COMPUTER": "حاسوب", + "UI_ELECTRIC_CAR": "سيارة كهربائية", + "UI_FOSSIL_FUEL_CAR": "سيارة تعمل بالوقود الأحفوري", + "UI_HYBRID_CAR": "سيارة هجينة", + "UI_LAPTOP": "حاسوب محمول", + "UI_SMARTPHONE": "هاتف ذكي", + "UI_TABLET": "لوح", + "UI_TV": "التلفاز", + "UI_COAT": "معطف", + "UI_DRESS": "فستان", + "UI_JEANS": "جينز", + "UI_SHIRT": "قميص", + "UI_SHOES": "أحذية", + "UI_SWEATER": "سترة", + "UI_T_SHIRT": "تي شيرت", + "UI_HIGH_MEAT": "اللحوم عالية", + "UI_MEDIUM_MEAT": "لحم متوسط", + "UI_LOW_MEAT": "اللحوم قليلة", + "UI_PESCETARIAN": "بيسكيتاريان", + "UI_VEGAN": "نباتي", + "UI_VEGETARIAN": "نباتي", + "UI_BEANS": "فول", + "UI_BEEF": "لحم", + "UI_CHICKEN": "فرخة", + "UI_FRUIT": "فاكهة", + "UI_LAMB": "حمَل", + "UI_LENTILS": "عدس", + "UI_NUTS": "المكسرات", + "UI_PORK": "لحم خنزير", + "UI_POTATOES": "بطاطا", + "UI_RICE": "أرز", + "UI_TOFU": "التوفو", + "UI_TUNA": "تونة", + "UI_TURKEY": "ديك رومى", + "UI_VEGETABLES": "خضروات", + "UI_CRYPTO_CURRENCY_POW": "معاملة العملة المشفرة", + "UI_SINGLE_EDITION_NFT": "طبعة واحدة NFT", + "UI_FASHION": "موضة", + "UI_FOOD": "طعام", + "UI_MEAL": "وجبة", + "UI_PURCHASE": "شراء", + "UI_STREAMING": "تدفق", + "UI_TRANSPORT": "ينقل", + "UI_SCAN_PRODUCT": "مسح المنتج", + "UI_TIME": "وقت", + "UI_TIMES": "مرات", + "UI_WEEKLY": "أسبوعي", + "UI_MONTHLY": "شهريا", + "UI_EVERY": "كل", + "NO_EMISSION_COMPONENT_TITLE": "مرحبًا 👋", + "NO_EMISSION_COMPONENT_THANKS": "شكرًا لانضمامك إلى معركتنا ضد تغير المناخ!", + "NO_EMISSION_COMPONENT_START_USING_APP": "لبدء تتبع انبعاثات ثاني أكسيد الكربون لديك، اضغط على الزر أدناه", + "NO_EMISSION_COMPONENT_ADD_FIRST_EMISSION": "أضف انبعاثي الأول", + "PERMISSIONS_REQUEST_COMPONENT_OPEN_SETTINGS": "أفتح الإعدادات", + "PERMISSIONS_REQUEST_COMPONENT_CAMERA_TITLE": "لا يمكن الوصول إلى الكاميرا", + "PERMISSIONS_REQUEST_COMPONENT_CAMERA_SUBTITLE": "يرجى منح تطبيق NMF.earth حق الوصول إلى الكاميرا في إعدادات هاتفك لاستخدام هذه الميزة.", + "PERMISSIONS_REQUEST_COMPONENT_NOTIFICATION_TITLE": "لا يوجد إذن لإرسال الإخطارات", + "PERMISSIONS_REQUEST_COMPONENT_NOTIFICATION_SUBTITLE": "يرجى منح تطبيق NMF.earth الإذن لإرسال إشعارات إليك في إعدادات هاتفك لاستخدام هذه الميزة.", + "OPEN_FOOD_FACTS_COMPONENT_DATA_FROM": "بيانات من حقائق الغذاء المفتوحة" +} \ No newline at end of file diff --git a/scripts/poeditor/da.json b/scripts/poeditor/da.json index d84c57e3..a6e3818c 100644 --- a/scripts/poeditor/da.json +++ b/scripts/poeditor/da.json @@ -98,6 +98,20 @@ "UI_RED_MEAT": "Rødt kød", "UI_WHITE_MEAT": "Hvidt kød", "UI_FISH": "Fisk", + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gram", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogram", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "ton(s)", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "ounce(s)", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "pund", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilometer", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "mil(es)", "NO_EMISSION_COMPONENT_ADD_FIRST_EMISSION": "Tilføj mit første forbrug", "NO_EMISSION_COMPONENT_START_USING_APP": "Tryk på knappen herunder for at tracke dit CO2 forbrug", "NO_EMISSION_COMPONENT_THANKS": "Tak fordi du har sluttet dig til vores kamp mod klimaforandringerne!", diff --git a/scripts/poeditor/de.json b/scripts/poeditor/de.json index d20beb3d..1ac62486 100644 --- a/scripts/poeditor/de.json +++ b/scripts/poeditor/de.json @@ -144,6 +144,25 @@ "MY_DATA_SCREEN_GENERIC_ERROR": "Etwas ist schiefgelaufen.", "MONTHLY_EMISSIONS_SCREEN_OF_BUDGET": "des Budgets", "LANGUAGES_SCREEN_TITLE": "Sprachen", + "PERIODICITY_MODAL_SCREEN_TITLE": "Wiederholung", + "PERIODICITY_MODAL_SCREEN_OFTEN": "Wie oft geschieht diese Emission?", + "PERIODICITY_MODAL_SCREEN_WEEKLY": "Wöchentlich", + "PERIODICITY_MODAL_SCREEN_MONTHLY": "Monatlich", + "PERIODICITY_MODAL_SCREEN_DAYS": "An welchen Tagen geschieht diese Emission?", + "PERIODICITY_MODAL_SCREEN_OCCURRENCES": "Häufigkeit", + "PERIODICITY_MODAL_SCREEN_COMFIRM": "Bestätigen", + "PERIODICITY_MODAL_SCREEN_CANCEL_NO_PERIODICITY": "Abbrechen - Kein wiederholte Emission", + "BAR_CODE_SCAN_SCREEN_TITLE": "Barcode scannen", + "BAR_CODE_SCAN_SCREEN_LOADING": "Laden...", + "BAR_CODE_SCAN_SCREEN_ERROR_TITLE": "Etwas ging schief", + "BAR_CODE_SCAN_SCREEN_ERROR_MESSAGE": "Prüfe deine Internetverbindung und versuche erneut.", + "BAR_CODE_SCAN_SCREEN_TRY_AGAIN": "Erneut versuchen", + "BAR_CODE_SCAN_SCREEN_CAMERA_PERMISSION_ASK": "Kamerazugriff anfragen", + "BAR_CODE_SCAN_SCREEN_SCAN_PRODUCT": "Scanne den Barcode eines Produkts", + "BAR_CODE_SCAN_SCREEN_NO_CARBON_DATA_TITLE": "Keine CO2-Daten zu diesem Produkt", + "BAR_CODE_SCAN_SCREEN_NO_CARBON_DATA_MESSAGE": "Leider hat Open Food Fact keine Daten zum CO2-Fußabdruck dieses Produkts. Versuchen Sie ein anderes!", + "SUB_CATEGORY_SELECTION_SCREEN_TITLE": "Emission hinzufügen", + "SUB_CATEGORY_SELECTION_SCREEN_SELECT_SUB_CATEGORY": "Wähle eine Unterkategorie", "RECURRING_EMISSIONS_SCREEN_TITLE": "Wiederkehrende Emissionen", "UI_MONDAY": "Montag", "UI_TUESDAY": "Dienstag", @@ -221,6 +240,20 @@ "UI_WEEKLY": "wöchentlich", "UI_MONTHLY": "monatlich", "UI_EVERY": "jede(n)", + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "Gramm", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "Kilogramm", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "Tonne", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "Unze", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "Pfund", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "Kilometer", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "Meile(n)", "NO_EMISSION_COMPONENT_TITLE": "Hallo 👋", "NO_EMISSION_COMPONENT_THANKS": "Danke, dass du mithilfst, unsere wunderschöne Erde zu retten!", "NO_EMISSION_COMPONENT_START_USING_APP": "Um deine CO2-Emissionen zu erfassen, klicke auf den Button", diff --git a/scripts/poeditor/en.json b/scripts/poeditor/en.json index 31a0d3b3..eda4bda9 100644 --- a/scripts/poeditor/en.json +++ b/scripts/poeditor/en.json @@ -161,6 +161,25 @@ "FAQ_SCREEN_DIFFERENT_ANSWER": "We do not track your in-app activity, we are not a company so we are not trying to get money from you, NMF.earth is just an open-source project made by random climate activist around the world. We also don't exploit psychological vulnerabilities, like bottomless feeds or auto-play to keep you from leaving the app. Since we don’t track you, we really appreciate any feedback you can provide us. We want to take the time to understand what you need and what to improve for you. You're are a human being, not a series of numbers and statistics on a screen.", "FAQ_SCREEN_GREEN_WASHING_QUESTION": "Is everyone doing greenwashing?", "FAQ_SCREEN_GREEN_WASHING_ANSWER": "Yes, almost. We should all collaborate in order to fight climate change so keep in mind that anything not open-source means business as usual. If you see that some organisation don't share everything, it means this organisation interest is motivated by greedy profits and survival, not helping mitigate climate change and promote sustainable lifestyles. We are not selling anything and everything we do is 100% open to everyone.", + "PERIODICITY_MODAL_SCREEN_TITLE": "Periodicity", + "PERIODICITY_MODAL_SCREEN_OFTEN": "How often this emission happens?", + "PERIODICITY_MODAL_SCREEN_WEEKLY": "Weekly", + "PERIODICITY_MODAL_SCREEN_MONTHLY": "Monthly", + "PERIODICITY_MODAL_SCREEN_DAYS": "Which days is this emission repeat?", + "PERIODICITY_MODAL_SCREEN_OCCURRENCES": "Occurences?", + "PERIODICITY_MODAL_SCREEN_COMFIRM": "Confirm", + "PERIODICITY_MODAL_SCREEN_CANCEL_NO_PERIODICITY": "Cancel - No periodicity", + "BAR_CODE_SCAN_SCREEN_TITLE": "Scan barcode", + "BAR_CODE_SCAN_SCREEN_LOADING": "Loading", + "BAR_CODE_SCAN_SCREEN_ERROR_TITLE": "Something went wrong", + "BAR_CODE_SCAN_SCREEN_ERROR_MESSAGE": "Make sure you have internet and try again.", + "BAR_CODE_SCAN_SCREEN_TRY_AGAIN": "Try Again", + "BAR_CODE_SCAN_SCREEN_CAMERA_PERMISSION_ASK": "Requesting for camera permission", + "BAR_CODE_SCAN_SCREEN_SCAN_PRODUCT": "Scan product barcode", + "BAR_CODE_SCAN_SCREEN_NO_CARBON_DATA_TITLE": "No carbon data on this product", + "BAR_CODE_SCAN_SCREEN_NO_CARBON_DATA_MESSAGE": "Unfortunately, Open Food Fact has no carbon footprint data on this product. Try another one!", + "SUB_CATEGORY_SELECTION_SCREEN_TITLE": "Add emission", + "SUB_CATEGORY_SELECTION_SCREEN_SELECT_SUB_CATEGORY": "Select a sub-category", "RECURRING_EMISSIONS_SCREEN_TITLE": "Recurring Emissions", "UI_MONDAY": "Monday", "UI_TUESDAY": "Tuesday", @@ -238,6 +257,20 @@ "UI_WEEKLY": "weekly", "UI_MONTHLY": "monthly", "UI_EVERY": "every", + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gram(s)", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogram(s)", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "ton(s)", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "ounce(s)", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "pound(s)", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilometer(s)", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "mile(s)", "NO_EMISSION_COMPONENT_TITLE": "Hi there 👋", "NO_EMISSION_COMPONENT_THANKS": "Thanks for joining our fight against climate change!", "NO_EMISSION_COMPONENT_START_USING_APP": "To start tracking your CO2 emissions, tap the button below", diff --git a/scripts/poeditor/es.json b/scripts/poeditor/es.json index c794a73f..764ebc51 100644 --- a/scripts/poeditor/es.json +++ b/scripts/poeditor/es.json @@ -172,6 +172,20 @@ "UI_PURCHASE": "Compra", "UI_STREAMING": "Streaming", "UI_TRANSPORT": "Transporte", + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gramo(s)", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogramo(s)", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "tonelada(s)", + "CALCULATION_OUNCES_SYMBOL": "onz", + "CALCULATION_OUNCES_FULL": "onza(s)", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "libra(s)", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilómetro(s)", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "milla(s)", "NO_EMISSION_COMPONENT_TITLE": "Hola 👋", "NO_EMISSION_COMPONENT_THANKS": "¡Gracias por unirte a nuestra lucha contra el cambio climático!", "NO_EMISSION_COMPONENT_START_USING_APP": "Para empezar a rastrear tus emisiones CO2, toca el botón de abajo", diff --git a/scripts/poeditor/fr.json b/scripts/poeditor/fr.json index 6b09290c..48e0dea3 100644 --- a/scripts/poeditor/fr.json +++ b/scripts/poeditor/fr.json @@ -144,6 +144,25 @@ "MY_DATA_SCREEN_GENERIC_ERROR": "Quelque chose s'est mal passé", "MONTHLY_EMISSIONS_SCREEN_OF_BUDGET": "du budget", "LANGUAGES_SCREEN_TITLE": "Langues", + "PERIODICITY_MODAL_SCREEN_TITLE": "Périodicité", + "PERIODICITY_MODAL_SCREEN_OFTEN": "Combien de fois cette émission se produit-elle?", + "PERIODICITY_MODAL_SCREEN_WEEKLY": "Hebdomadaire", + "PERIODICITY_MODAL_SCREEN_MONTHLY": "Mensuel", + "PERIODICITY_MODAL_SCREEN_DAYS": "Quels sont les jours où cette émission se répète?", + "PERIODICITY_MODAL_SCREEN_OCCURRENCES": "Occurences?", + "PERIODICITY_MODAL_SCREEN_COMFIRM": "Confirmer", + "PERIODICITY_MODAL_SCREEN_CANCEL_NO_PERIODICITY": "Annuler - pas de périodicité", + "BAR_CODE_SCAN_SCREEN_TITLE": "Scanner le code-barres", + "BAR_CODE_SCAN_SCREEN_LOADING": "Chargement de données", + "BAR_CODE_SCAN_SCREEN_ERROR_TITLE": "Quelque chose n'a pas fonctionné", + "BAR_CODE_SCAN_SCREEN_ERROR_MESSAGE": "Assurez-vous d'avoir accès à Internet et réessayez", + "BAR_CODE_SCAN_SCREEN_TRY_AGAIN": "Réessayez s'il vous plaît.", + "BAR_CODE_SCAN_SCREEN_CAMERA_PERMISSION_ASK": "Demande d'autorisation pour la caméra", + "BAR_CODE_SCAN_SCREEN_SCAN_PRODUCT": "Scanner le code-barres d'un produit", + "BAR_CODE_SCAN_SCREEN_NO_CARBON_DATA_TITLE": "Aucune donnée carbone sur ce produit", + "BAR_CODE_SCAN_SCREEN_NO_CARBON_DATA_MESSAGE": "Malheureusement, Open Food Fact n'a pas de données sur l'empreinte carbone de ce produit. Essayez-en un autre !", + "SUB_CATEGORY_SELECTION_SCREEN_TITLE": "Ajouter", + "SUB_CATEGORY_SELECTION_SCREEN_SELECT_SUB_CATEGORY": "Sélectionner une sous-catégorie", "RECURRING_EMISSIONS_SCREEN_TITLE": "Émissions récurrentes", "UI_TRAIN": "Train", "UI_CAR": "Voiture", @@ -221,6 +240,20 @@ "UI_WEEKLY": "hebdomadaire", "UI_MONTHLY": "mensuel(le)", "UI_EVERY": "chaque", + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gramme(s)", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogramme(s)", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "tonne(s)", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "once(s)", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "livre(s)", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilomètre(s)", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "mile(s)", "NO_EMISSION_COMPONENT_TITLE": "Bonjour 👋", "NO_EMISSION_COMPONENT_THANKS": "Merci de vous joindre à nous dans la lutte contre le réchauffement climatique!", "NO_EMISSION_COMPONENT_START_USING_APP": "Pour commencer, ajoutez une première émission carbone, en tappant sur le bouton du dessous", diff --git a/scripts/poeditor/group-translation-files.js b/scripts/poeditor/group-translation-files.js index c39eba6a..3f1dfdf4 100644 --- a/scripts/poeditor/group-translation-files.js +++ b/scripts/poeditor/group-translation-files.js @@ -2,7 +2,7 @@ const fs = require("fs"); // Languages -const usedLanguages = ["en", "de", "fr", "sv", "pt", "es", "pl", "ru", "da", "zh", "ms", "it"]; +const usedLanguages = ["ar", "en", "de", "fr", "sv", "pt", "es", "pl", "ru", "da", "zh", "ms", "it"]; // Imports all files const toBeImported = { AppStore: "./app-store", @@ -26,7 +26,11 @@ const toBeImported = { Languages: "../../app/screens/Languages/translations", RecurringEmissions: "../../app/screens/RecurringEmissions/translations", Faq: "../../app/screens/Faq/translations", + SubCategorySelection: "../../app/screens/SubCategorySelection/translations", + BarCodeScan: "../../app/screens/BarCodeScan/translations", + Periodicity: "../../app/screens/Periodicity/translations", UI: "../../app/utils/ui/translations", + Calculation: "../../app/utils/calculation/translations", NoEmission: "../../app/components/NoEmission/translations", PermissionsRequest: "../../app/components/PermissionsRequest/translations", OpenFoodFacts: "../../app/components/OpenFoodFacts/translations", @@ -67,8 +71,12 @@ usedLanguages.forEach((language) => { ...imports.MonthlyEmissions[language], ...imports.Languages[language], ...imports.Faq[language], + ...imports.Periodicity[language], + ...imports.BarCodeScan[language], + ...imports.SubCategorySelection[language], ...imports.RecurringEmissions[language], ...imports.UI[language], + ...imports.Calculation[language], ...imports.NoEmission[language], ...imports.PermissionsRequest[language], ...imports.OpenFoodFacts[language], diff --git a/scripts/poeditor/it.json b/scripts/poeditor/it.json index 5ede5055..bf1ec4bd 100644 --- a/scripts/poeditor/it.json +++ b/scripts/poeditor/it.json @@ -144,6 +144,25 @@ "MY_DATA_SCREEN_GENERIC_ERROR": "Qualcosa è andato storto", "MONTHLY_EMISSIONS_SCREEN_OF_BUDGET": "di budget", "LANGUAGES_SCREEN_TITLE": "Lingue", + "PERIODICITY_MODAL_SCREEN_TITLE": "Periodicità", + "PERIODICITY_MODAL_SCREEN_OFTEN": "Quanto spesso questa emissione avviene?", + "PERIODICITY_MODAL_SCREEN_WEEKLY": "Settimanalmente", + "PERIODICITY_MODAL_SCREEN_MONTHLY": "Mensilmente", + "PERIODICITY_MODAL_SCREEN_DAYS": "In quali giorni questa emissione si ripete?", + "PERIODICITY_MODAL_SCREEN_OCCURRENCES": "Occorrenza?", + "PERIODICITY_MODAL_SCREEN_COMFIRM": "Conferma", + "PERIODICITY_MODAL_SCREEN_CANCEL_NO_PERIODICITY": "Annulla - Nessuna periodicità", + "BAR_CODE_SCAN_SCREEN_TITLE": "Scansiona codice a barre", + "BAR_CODE_SCAN_SCREEN_LOADING": "Caricamento", + "BAR_CODE_SCAN_SCREEN_ERROR_TITLE": "Qualcosa è andato storto", + "BAR_CODE_SCAN_SCREEN_ERROR_MESSAGE": "Assicurati di essere connesso ad internet e prova di nuovo.", + "BAR_CODE_SCAN_SCREEN_TRY_AGAIN": "Prova di nuovo", + "BAR_CODE_SCAN_SCREEN_CAMERA_PERMISSION_ASK": "Richiedendo il permesso per la fotocamera", + "BAR_CODE_SCAN_SCREEN_SCAN_PRODUCT": "Scansiona il codice a barre del prodotto", + "BAR_CODE_SCAN_SCREEN_NO_CARBON_DATA_TITLE": "Nessun dato sul carbonio per questo prodotto", + "BAR_CODE_SCAN_SCREEN_NO_CARBON_DATA_MESSAGE": "Purtroppo, Open Food Fact non dispone di dati sull'impronta di carbonio per questo prodotto. Prova con un altro!", + "SUB_CATEGORY_SELECTION_SCREEN_TITLE": "Aggiungi emissione", + "SUB_CATEGORY_SELECTION_SCREEN_SELECT_SUB_CATEGORY": "Seleziona una sottocategoria", "RECURRING_EMISSIONS_SCREEN_TITLE": "Emissioni ricorrenti", "UI_MONDAY": "Lunedì", "UI_TUESDAY": "Martedì", @@ -221,6 +240,20 @@ "UI_WEEKLY": "settimanale", "UI_MONTHLY": "mensile", "UI_EVERY": "ogni", + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "grammmi", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "chilogrammi", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "tonnellate", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "once", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "libbre", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilometri", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "miglia", "NO_EMISSION_COMPONENT_TITLE": "Ciao 👋", "NO_EMISSION_COMPONENT_THANKS": "Grazie per esserti unito alla nostra battaglia contro il cambiamento climatico!", "NO_EMISSION_COMPONENT_START_USING_APP": "Per iniziare a tracciare le tua emissioni di CO2, premi il pulsante sotto", diff --git a/scripts/poeditor/pl.json b/scripts/poeditor/pl.json index b41897c6..a8bd1555 100644 --- a/scripts/poeditor/pl.json +++ b/scripts/poeditor/pl.json @@ -88,6 +88,20 @@ "UI_MOTORBIKE": "Motocykl", "UI_RED_MEAT": "Czerwone mięso", "UI_WHITE_MEAT": "Białe mięso", + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gram(y)", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogram(y)", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "tona/y", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "uncja/e", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "funt(y)", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilometr(y)", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "mila/e", "NO_EMISSION_COMPONENT_ADD_FIRST_EMISSION": "Dodaj pierwszą emisję", "NO_EMISSION_COMPONENT_START_USING_APP": "Żeby zacząć monitorować Twoją emisję CO2, wciśnij przycisk poniżej", "NO_EMISSION_COMPONENT_THANKS": "Dziękujemy za dołączenie do nas w walce z ociepleniem klimatu!", diff --git a/scripts/poeditor/pt.json b/scripts/poeditor/pt.json index 89c30748..4644d6e3 100644 --- a/scripts/poeditor/pt.json +++ b/scripts/poeditor/pt.json @@ -122,6 +122,20 @@ "UI_MILK": "Leite", "UI_CHEESE": "Queijo", "UI_EGGS": "Ovos", + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "grama(s)", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "quilograma(s)", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "tonelada(s)", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "onça(s)", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "libra(s)", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "quilômetro(s)", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "milha(s)", "NO_EMISSION_COMPONENT_ADD_FIRST_EMISSION": "Marque a primeira emissão", "NO_EMISSION_COMPONENT_START_USING_APP": "Para começar, adicionar uma primeira emissão de carbono, tocando no botão abaixo.", "NO_EMISSION_COMPONENT_THANKS": "Obrigado de se juntar a nós para lutar contra o aquecimento climático", diff --git a/scripts/poeditor/ru.json b/scripts/poeditor/ru.json index 160cf065..18a79cc4 100644 --- a/scripts/poeditor/ru.json +++ b/scripts/poeditor/ru.json @@ -101,6 +101,20 @@ "UI_BUS": "Автобус", "UI_MOTORBIKE": "Мотоцикл", "UI_CUSTOM": "Настраиваемое", + "CALCULATION_GRAMS_SYMBOL": "г", + "CALCULATION_GRAMS_FULL": "грамм(а)", + "CALCULATION_KILOGRAMS_SYMBOL": "кг", + "CALCULATION_KILOGRAMS_FULL": "килограмм(а)", + "CALCULATION_TONNES_SYMBOL": "т", + "CALCULATION_TONNES_FULL": "тонна/ы", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "унция/и", + "CALCULATION_POUNDS_SYMBOL": "фунт", + "CALCULATION_POUNDS_FULL": "фунт", + "CALCULATION_KILOMETERS_SYMBOL": "км", + "CALCULATION_KILOMETERS_FULL": "километр(а)", + "CALCULATION_MILES_SYMBOL": "ми", + "CALCULATION_MILES_FULL": "миля/и", "NO_EMISSION_COMPONENT_ADD_FIRST_EMISSION": "Добавить мою первую эмиссию", "NO_EMISSION_COMPONENT_START_USING_APP": "Чтобы начать отслеживать ваши эмиссии CO2, нажмите кнопку ниже", "NO_EMISSION_COMPONENT_THANKS": "Спасибо за помошь в нашей борьбе против изменения климата!", diff --git a/scripts/poeditor/spread-translation-files.js b/scripts/poeditor/spread-translation-files.js index 8b991c7e..48b1e680 100644 --- a/scripts/poeditor/spread-translation-files.js +++ b/scripts/poeditor/spread-translation-files.js @@ -2,7 +2,7 @@ const fs = require("fs"); const R = require("ramda"); -const usedLanguages = ["en", "de", "fr", "sv", "pt", "es", "pl", "ru", "da", "zh", "ms", "it"]; +const usedLanguages = ["ar", "en", "de", "fr", "sv", "pt", "es", "pl", "ru", "da", "zh", "ms", "it"]; const relPrefix = "../../"; const translationDirs = [ { path: "app/screens/Act/translations", prefix: "ACT_SCREEN" }, @@ -23,14 +23,15 @@ const translationDirs = [ { path: "app/screens/MonthlyEmissions/translations", prefix: "MONTHLY_EMISSIONS_SCREEN" }, { path: "app/screens/Languages/translations", prefix: "LANGUAGES_SCREEN" }, { path: "app/screens/Faq/translations", prefix: "FAQ_SCREEN" }, + { path: "app/screens/Periodicity/translations", prefix: "PERIODICITY_MODAL_SCREEN" }, + { path: "app/screens/SubCategorySelection/translations", prefix: "SUB_CATEGORY_SELECTION_SCREEN" }, + { path: "app/screens/BarCodeScan/translations", prefix: "BAR_CODE_SCAN_SCREEN" }, { path: "app/screens/RecurringEmissions/translations", prefix: "RECURRING_EMISSIONS_SCREEN" }, { path: "app/components/NoEmission/translations", prefix: "NO_EMISSION_COMPONENT" }, { path: "app/components/OpenFoodFacts/translations", prefix: "OPEN_FOOD_FACTS_COMPONENT" }, - { - path: "app/components/PermissionsRequest/translations", - prefix: "PERMISSIONS_REQUEST_COMPONENT", - }, + { path: "app/components/PermissionsRequest/translations", prefix: "PERMISSIONS_REQUEST_COMPONENT" }, { path: "app/utils/ui/translations", prefix: "UI" }, + { path: "app/utils/calculation/translations", prefix: "CALCULATION" }, ]; /** diff --git a/scripts/poeditor/sv.json b/scripts/poeditor/sv.json index cf8833f4..367eb0d3 100644 --- a/scripts/poeditor/sv.json +++ b/scripts/poeditor/sv.json @@ -107,6 +107,20 @@ "UI_COFFEE": "Kaffe", "UI_FISH": "Fisk", "UI_CUSTOM": "Annat", + "CALCULATION_GRAMS_SYMBOL": "g", + "CALCULATION_GRAMS_FULL": "gram", + "CALCULATION_KILOGRAMS_SYMBOL": "kg", + "CALCULATION_KILOGRAMS_FULL": "kilogram", + "CALCULATION_TONNES_SYMBOL": "t", + "CALCULATION_TONNES_FULL": "ton", + "CALCULATION_OUNCES_SYMBOL": "oz", + "CALCULATION_OUNCES_FULL": "uns", + "CALCULATION_POUNDS_SYMBOL": "lb", + "CALCULATION_POUNDS_FULL": "pund", + "CALCULATION_KILOMETERS_SYMBOL": "km", + "CALCULATION_KILOMETERS_FULL": "kilometer", + "CALCULATION_MILES_SYMBOL": "mi", + "CALCULATION_MILES_FULL": "mil", "NO_EMISSION_COMPONENT_ADD_FIRST_EMISSION": "Lägg till mitt första utsläpp", "NO_EMISSION_COMPONENT_START_USING_APP": "För att börja följa dina koldioxidutsläpp, tryck på knappen nedan", "NO_EMISSION_COMPONENT_THANKS": "Tack för att du förenar dig i kampen mot klimatförändringar!", diff --git a/scripts/poeditor/zh.json b/scripts/poeditor/zh.json index 0f6c3f3c..5c7202e5 100644 --- a/scripts/poeditor/zh.json +++ b/scripts/poeditor/zh.json @@ -191,6 +191,20 @@ "UI_PURCHASE": "购买", "UI_STREAMING": "实况", "UI_TRANSPORT": "交通", + "CALCULATION_GRAMS_SYMBOL": "克", + "CALCULATION_GRAMS_FULL": "克", + "CALCULATION_KILOGRAMS_SYMBOL": "公斤", + "CALCULATION_KILOGRAMS_FULL": "公斤", + "CALCULATION_TONNES_SYMBOL": "吨", + "CALCULATION_TONNES_FULL": "吨", + "CALCULATION_OUNCES_SYMBOL": "盎司", + "CALCULATION_OUNCES_FULL": "盎司", + "CALCULATION_POUNDS_SYMBOL": "磅", + "CALCULATION_POUNDS_FULL": "磅", + "CALCULATION_KILOMETERS_SYMBOL": "公里", + "CALCULATION_KILOMETERS_FULL": "公里", + "CALCULATION_MILES_SYMBOL": "英里", + "CALCULATION_MILES_FULL": "英里", "NO_EMISSION_COMPONENT_TITLE": "您好 👋", "NO_EMISSION_COMPONENT_THANKS": "感谢您与我们一起对抗气候变化!", "NO_EMISSION_COMPONENT_START_USING_APP": "请按下面的按钮以开始追踪您的二氧化碳排放量",