@croacroa/react-native-template 2.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +5 -0
- package/.eslintrc.js +8 -0
- package/.github/workflows/ci.yml +187 -187
- package/.github/workflows/eas-build.yml +55 -55
- package/.github/workflows/eas-update.yml +50 -50
- package/.github/workflows/npm-publish.yml +57 -0
- package/CHANGELOG.md +195 -106
- package/CONTRIBUTING.md +377 -377
- package/LICENSE +21 -21
- package/README.md +446 -402
- package/__tests__/accessibility/components.test.tsx +285 -0
- package/__tests__/components/Button.test.tsx +2 -4
- package/__tests__/components/__snapshots__/snapshots.test.tsx.snap +512 -0
- package/__tests__/components/snapshots.test.tsx +131 -131
- package/__tests__/helpers/a11y.ts +54 -0
- package/__tests__/hooks/useAnalytics.test.ts +100 -0
- package/__tests__/hooks/useAnimations.test.ts +70 -0
- package/__tests__/hooks/useAuth.test.tsx +71 -28
- package/__tests__/hooks/useMedia.test.ts +318 -0
- package/__tests__/hooks/usePayments.test.tsx +307 -0
- package/__tests__/hooks/usePermission.test.ts +230 -0
- package/__tests__/hooks/useWebSocket.test.ts +329 -0
- package/__tests__/integration/auth-api.test.tsx +224 -227
- package/__tests__/performance/VirtualizedList.perf.test.tsx +385 -362
- package/__tests__/services/api.test.ts +24 -6
- package/app/(auth)/home.tsx +11 -9
- package/app/(auth)/profile.tsx +8 -6
- package/app/(auth)/settings.tsx +11 -9
- package/app/(public)/forgot-password.tsx +25 -15
- package/app/(public)/login.tsx +48 -12
- package/app/(public)/onboarding.tsx +5 -5
- package/app/(public)/register.tsx +24 -15
- package/app/_layout.tsx +6 -3
- package/app.config.ts +27 -2
- package/assets/images/.gitkeep +7 -7
- package/assets/images/adaptive-icon.png +0 -0
- package/assets/images/favicon.png +0 -0
- package/assets/images/icon.png +0 -0
- package/assets/images/notification-icon.png +0 -0
- package/assets/images/splash.png +0 -0
- package/components/ErrorBoundary.tsx +73 -28
- package/components/auth/SocialLoginButtons.tsx +168 -0
- package/components/forms/FormInput.tsx +5 -3
- package/components/onboarding/OnboardingScreen.tsx +370 -370
- package/components/onboarding/index.ts +2 -2
- package/components/providers/AnalyticsProvider.tsx +67 -0
- package/components/providers/SuspenseBoundary.tsx +359 -357
- package/components/providers/index.ts +24 -21
- package/components/ui/AnimatedButton.tsx +1 -9
- package/components/ui/AnimatedList.tsx +98 -0
- package/components/ui/AnimatedScreen.tsx +89 -0
- package/components/ui/Avatar.tsx +319 -316
- package/components/ui/Badge.tsx +416 -416
- package/components/ui/BottomSheet.tsx +307 -307
- package/components/ui/Button.tsx +11 -3
- package/components/ui/Checkbox.tsx +261 -261
- package/components/ui/FeatureGate.tsx +57 -0
- package/components/ui/ForceUpdateScreen.tsx +108 -0
- package/components/ui/ImagePickerButton.tsx +180 -0
- package/components/ui/Input.stories.tsx +2 -10
- package/components/ui/Input.tsx +2 -10
- package/components/ui/OptimizedImage.tsx +369 -369
- package/components/ui/Paywall.tsx +253 -0
- package/components/ui/PermissionGate.tsx +155 -0
- package/components/ui/PurchaseButton.tsx +84 -0
- package/components/ui/Select.tsx +240 -240
- package/components/ui/Skeleton.tsx +3 -1
- package/components/ui/Toast.tsx +427 -418
- package/components/ui/UploadProgress.tsx +189 -0
- package/components/ui/VirtualizedList.tsx +288 -285
- package/components/ui/index.ts +28 -30
- package/constants/config.ts +135 -97
- package/docs/adr/001-state-management.md +79 -79
- package/docs/adr/002-styling-approach.md +130 -130
- package/docs/adr/003-data-fetching.md +155 -155
- package/docs/adr/004-auth-adapter-pattern.md +144 -144
- package/docs/adr/README.md +78 -78
- package/docs/guides/analytics-posthog.md +121 -0
- package/docs/guides/auth-supabase.md +162 -0
- package/docs/guides/feature-flags-launchdarkly.md +150 -0
- package/docs/guides/payments-revenuecat.md +169 -0
- package/docs/plans/2026-02-22-phase6-implementation.md +3222 -0
- package/docs/plans/2026-02-22-phase6-template-completion-design.md +196 -0
- package/docs/plans/2026-02-23-npm-publish-design.md +31 -0
- package/docs/plans/2026-02-23-phase7-polish-documentation-design.md +79 -0
- package/docs/plans/2026-02-23-phase8-additional-features-design.md +136 -0
- package/eas.json +2 -1
- package/hooks/index.ts +70 -40
- package/hooks/useAnimatedEntry.ts +204 -0
- package/hooks/useApi.ts +5 -4
- package/hooks/useAuth.tsx +7 -3
- package/hooks/useBiometrics.ts +295 -295
- package/hooks/useChannel.ts +111 -0
- package/hooks/useDeepLinking.ts +256 -256
- package/hooks/useExperiment.ts +36 -0
- package/hooks/useFeatureFlag.ts +59 -0
- package/hooks/useForceUpdate.ts +91 -0
- package/hooks/useImagePicker.ts +281 -375
- package/hooks/useInAppReview.ts +64 -0
- package/hooks/useMFA.ts +509 -499
- package/hooks/useParallax.ts +142 -0
- package/hooks/usePerformance.ts +434 -434
- package/hooks/usePermission.ts +190 -0
- package/hooks/usePresence.ts +129 -0
- package/hooks/useProducts.ts +36 -0
- package/hooks/usePurchase.ts +103 -0
- package/hooks/useRateLimit.ts +70 -0
- package/hooks/useSubscription.ts +49 -0
- package/hooks/useTrackEvent.ts +52 -0
- package/hooks/useTrackScreen.ts +40 -0
- package/hooks/useUpdates.ts +358 -358
- package/hooks/useUpload.ts +165 -0
- package/hooks/useWebSocket.ts +111 -0
- package/i18n/index.ts +197 -194
- package/i18n/locales/ar.json +170 -101
- package/i18n/locales/de.json +170 -101
- package/i18n/locales/en.json +170 -101
- package/i18n/locales/es.json +170 -101
- package/i18n/locales/fr.json +170 -101
- package/jest.config.js +1 -1
- package/maestro/README.md +113 -113
- package/maestro/config.yaml +35 -35
- package/maestro/flows/login.yaml +62 -62
- package/maestro/flows/mfa-login.yaml +92 -92
- package/maestro/flows/mfa-setup.yaml +86 -86
- package/maestro/flows/navigation.yaml +68 -68
- package/maestro/flows/offline-conflict.yaml +101 -101
- package/maestro/flows/offline-sync.yaml +128 -128
- package/maestro/flows/offline.yaml +60 -60
- package/maestro/flows/register.yaml +94 -94
- package/package.json +188 -176
- package/scripts/generate-placeholders.js +38 -0
- package/services/analytics/adapters/console.ts +50 -0
- package/services/analytics/analytics-adapter.ts +94 -0
- package/services/analytics/types.ts +73 -0
- package/services/analytics.ts +428 -428
- package/services/api.ts +419 -340
- package/services/auth/social/apple.ts +110 -0
- package/services/auth/social/google.ts +159 -0
- package/services/auth/social/social-auth.ts +100 -0
- package/services/auth/social/types.ts +80 -0
- package/services/authAdapter.ts +333 -333
- package/services/backgroundSync.ts +652 -626
- package/services/feature-flags/adapters/mock.ts +108 -0
- package/services/feature-flags/feature-flag-adapter.ts +174 -0
- package/services/feature-flags/types.ts +79 -0
- package/services/force-update.ts +140 -0
- package/services/index.ts +116 -54
- package/services/media/compression.ts +91 -0
- package/services/media/media-picker.ts +151 -0
- package/services/media/media-upload.ts +160 -0
- package/services/payments/adapters/mock.ts +159 -0
- package/services/payments/payment-adapter.ts +118 -0
- package/services/payments/types.ts +131 -0
- package/services/permissions/permission-manager.ts +284 -0
- package/services/permissions/types.ts +104 -0
- package/services/realtime/types.ts +100 -0
- package/services/realtime/websocket-manager.ts +441 -0
- package/services/security.ts +289 -286
- package/services/sentry.ts +4 -4
- package/stores/appStore.ts +9 -0
- package/stores/notificationStore.ts +3 -1
- package/tailwind.config.js +47 -47
- package/tsconfig.json +37 -13
- package/types/user.ts +1 -1
- package/utils/accessibility.ts +446 -446
- package/utils/animations/presets.ts +182 -0
- package/utils/animations/transitions.ts +62 -0
- package/utils/index.ts +63 -52
- package/utils/toast.ts +9 -2
- package/utils/validation.ts +4 -1
- package/utils/withAccessibility.tsx +272 -272
package/i18n/locales/ar.json
CHANGED
|
@@ -1,101 +1,170 @@
|
|
|
1
|
-
{
|
|
2
|
-
"common": {
|
|
3
|
-
"loading": "جاري التحميل...",
|
|
4
|
-
"error": "خطأ",
|
|
5
|
-
"success": "نجاح",
|
|
6
|
-
"cancel": "إلغاء",
|
|
7
|
-
"confirm": "تأكيد",
|
|
8
|
-
"save": "حفظ",
|
|
9
|
-
"delete": "حذف",
|
|
10
|
-
"edit": "تعديل",
|
|
11
|
-
"close": "إغلاق",
|
|
12
|
-
"back": "رجوع",
|
|
13
|
-
"next": "التالي",
|
|
14
|
-
"done": "تم",
|
|
15
|
-
"retry": "إعادة المحاولة",
|
|
16
|
-
"search": "بحث",
|
|
17
|
-
"noResults": "لم يتم العثور على نتائج",
|
|
18
|
-
"offline": "أنت غير متصل",
|
|
19
|
-
"online": "متصل مرة أخرى"
|
|
20
|
-
},
|
|
21
|
-
"auth": {
|
|
22
|
-
"signIn": "تسجيل الدخول",
|
|
23
|
-
"signUp": "إنشاء حساب",
|
|
24
|
-
"signOut": "تسجيل الخروج",
|
|
25
|
-
"email": "البريد الإلكتروني",
|
|
26
|
-
"password": "كلمة المرور",
|
|
27
|
-
"confirmPassword": "تأكيد كلمة المرور",
|
|
28
|
-
"name": "الاسم",
|
|
29
|
-
"forgotPassword": "نسيت كلمة المرور؟",
|
|
30
|
-
"resetPassword": "إعادة تعيين كلمة المرور",
|
|
31
|
-
"noAccount": "ليس لديك حساب؟",
|
|
32
|
-
"haveAccount": "لديك حساب بالفعل؟",
|
|
33
|
-
"welcomeBack": "مرحباً بعودتك!",
|
|
34
|
-
"signInToContinue": "سجل الدخول للمتابعة",
|
|
35
|
-
"createAccount": "إنشاء حساب",
|
|
36
|
-
"joinUs": "انضم إلينا اليوم",
|
|
37
|
-
"enterEmail": "أدخل بريدك الإلكتروني",
|
|
38
|
-
"enterPassword": "أدخل كلمة المرور",
|
|
39
|
-
"enterName": "أدخل اسمك",
|
|
40
|
-
"passwordHint": "8 أحرف على الأقل",
|
|
41
|
-
"invalidCredentials": "البريد الإلكتروني أو كلمة المرور غير صحيحة",
|
|
42
|
-
"accountCreated": "تم إنشاء الحساب بنجاح!",
|
|
43
|
-
"sessionExpired": "انتهت الجلسة. يرجى تسجيل الدخول مرة أخرى.",
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
"
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"loading": "جاري التحميل...",
|
|
4
|
+
"error": "خطأ",
|
|
5
|
+
"success": "نجاح",
|
|
6
|
+
"cancel": "إلغاء",
|
|
7
|
+
"confirm": "تأكيد",
|
|
8
|
+
"save": "حفظ",
|
|
9
|
+
"delete": "حذف",
|
|
10
|
+
"edit": "تعديل",
|
|
11
|
+
"close": "إغلاق",
|
|
12
|
+
"back": "رجوع",
|
|
13
|
+
"next": "التالي",
|
|
14
|
+
"done": "تم",
|
|
15
|
+
"retry": "إعادة المحاولة",
|
|
16
|
+
"search": "بحث",
|
|
17
|
+
"noResults": "لم يتم العثور على نتائج",
|
|
18
|
+
"offline": "أنت غير متصل",
|
|
19
|
+
"online": "متصل مرة أخرى"
|
|
20
|
+
},
|
|
21
|
+
"auth": {
|
|
22
|
+
"signIn": "تسجيل الدخول",
|
|
23
|
+
"signUp": "إنشاء حساب",
|
|
24
|
+
"signOut": "تسجيل الخروج",
|
|
25
|
+
"email": "البريد الإلكتروني",
|
|
26
|
+
"password": "كلمة المرور",
|
|
27
|
+
"confirmPassword": "تأكيد كلمة المرور",
|
|
28
|
+
"name": "الاسم",
|
|
29
|
+
"forgotPassword": "نسيت كلمة المرور؟",
|
|
30
|
+
"resetPassword": "إعادة تعيين كلمة المرور",
|
|
31
|
+
"noAccount": "ليس لديك حساب؟",
|
|
32
|
+
"haveAccount": "لديك حساب بالفعل؟",
|
|
33
|
+
"welcomeBack": "مرحباً بعودتك!",
|
|
34
|
+
"signInToContinue": "سجل الدخول للمتابعة",
|
|
35
|
+
"createAccount": "إنشاء حساب",
|
|
36
|
+
"joinUs": "انضم إلينا اليوم",
|
|
37
|
+
"enterEmail": "أدخل بريدك الإلكتروني",
|
|
38
|
+
"enterPassword": "أدخل كلمة المرور",
|
|
39
|
+
"enterName": "أدخل اسمك",
|
|
40
|
+
"passwordHint": "8 أحرف على الأقل",
|
|
41
|
+
"invalidCredentials": "البريد الإلكتروني أو كلمة المرور غير صحيحة",
|
|
42
|
+
"accountCreated": "تم إنشاء الحساب بنجاح!",
|
|
43
|
+
"sessionExpired": "انتهت الجلسة. يرجى تسجيل الدخول مرة أخرى.",
|
|
44
|
+
"createPasswordPlaceholder": "أنشئ كلمة مرور",
|
|
45
|
+
"confirmPasswordPlaceholder": "أكّد كلمة المرور",
|
|
46
|
+
"passwordHintFull": "8 أحرف كحد أدنى، حرف كبير، حرف صغير، رقم واحد",
|
|
47
|
+
"biometric": {
|
|
48
|
+
"title": "المصادقة البيومترية",
|
|
49
|
+
"prompt": "قم بالمصادقة للمتابعة",
|
|
50
|
+
"fallback": "استخدام رمز المرور",
|
|
51
|
+
"enabled": "تم تفعيل تسجيل الدخول البيومتري",
|
|
52
|
+
"disabled": "تم تعطيل تسجيل الدخول البيومتري",
|
|
53
|
+
"notAvailable": "المصادقة البيومترية غير متاحة"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"forgotPassword": {
|
|
57
|
+
"title": "نسيت كلمة المرور",
|
|
58
|
+
"subtitle": "أدخل بريدك الإلكتروني وسنرسل لك رابط إعادة التعيين",
|
|
59
|
+
"sendResetLink": "إرسال رابط إعادة التعيين",
|
|
60
|
+
"checkEmail": "تحقق من بريدك الإلكتروني",
|
|
61
|
+
"resetSent": "لقد أرسلنا رابط إعادة تعيين كلمة المرور إلى {{email}}",
|
|
62
|
+
"backToSignIn": "العودة إلى تسجيل الدخول",
|
|
63
|
+
"rememberPassword": "هل تتذكر كلمة المرور؟",
|
|
64
|
+
"emailRequired": "يرجى إدخال بريدك الإلكتروني",
|
|
65
|
+
"sendFailed": "فشل إرسال الرابط. يرجى المحاولة مرة أخرى."
|
|
66
|
+
},
|
|
67
|
+
"home": {
|
|
68
|
+
"welcomeBack": "مرحباً بعودتك، {{name}}!",
|
|
69
|
+
"quickActions": "إجراءات سريعة",
|
|
70
|
+
"newItem": "عنصر جديد",
|
|
71
|
+
"stats": "الإحصائيات",
|
|
72
|
+
"recentActivity": "النشاط الأخير",
|
|
73
|
+
"noRecentActivity": "لا يوجد نشاط حديث",
|
|
74
|
+
"activityWillAppear": "سيظهر نشاطك هنا"
|
|
75
|
+
},
|
|
76
|
+
"navigation": {
|
|
77
|
+
"home": "الرئيسية",
|
|
78
|
+
"profile": "الملف الشخصي",
|
|
79
|
+
"settings": "الإعدادات",
|
|
80
|
+
"notifications": "الإشعارات"
|
|
81
|
+
},
|
|
82
|
+
"profile": {
|
|
83
|
+
"title": "الملف الشخصي",
|
|
84
|
+
"editProfile": "تعديل الملف الشخصي",
|
|
85
|
+
"changePhoto": "تغيير الصورة",
|
|
86
|
+
"personalInfo": "المعلومات الشخصية",
|
|
87
|
+
"memberSince": "عضو منذ {{date}}",
|
|
88
|
+
"privacySecurity": "الخصوصية والأمان",
|
|
89
|
+
"helpSupport": "المساعدة والدعم"
|
|
90
|
+
},
|
|
91
|
+
"settings": {
|
|
92
|
+
"title": "الإعدادات",
|
|
93
|
+
"appearance": "المظهر",
|
|
94
|
+
"theme": "السمة",
|
|
95
|
+
"themeLight": "فاتح",
|
|
96
|
+
"themeDark": "داكن",
|
|
97
|
+
"themeSystem": "النظام",
|
|
98
|
+
"language": "اللغة",
|
|
99
|
+
"notifications": "الإشعارات",
|
|
100
|
+
"pushNotifications": "إشعارات الدفع",
|
|
101
|
+
"emailNotifications": "إشعارات البريد الإلكتروني",
|
|
102
|
+
"security": "الأمان",
|
|
103
|
+
"biometricAuth": "المصادقة البيومترية",
|
|
104
|
+
"changePassword": "تغيير كلمة المرور",
|
|
105
|
+
"privacy": "سياسة الخصوصية",
|
|
106
|
+
"terms": "شروط الخدمة",
|
|
107
|
+
"about": "حول",
|
|
108
|
+
"version": "الإصدار",
|
|
109
|
+
"deleteAccount": "حذف الحساب",
|
|
110
|
+
"darkMode": "الوضع الداكن",
|
|
111
|
+
"appVersion": "إصدار التطبيق"
|
|
112
|
+
},
|
|
113
|
+
"errors": {
|
|
114
|
+
"generic": "حدث خطأ ما",
|
|
115
|
+
"network": "خطأ في الشبكة. يرجى التحقق من اتصالك.",
|
|
116
|
+
"timeout": "انتهت مهلة الطلب. يرجى المحاولة مرة أخرى.",
|
|
117
|
+
"unauthorized": "غير مصرح لك بتنفيذ هذا الإجراء.",
|
|
118
|
+
"notFound": "المورد غير موجود.",
|
|
119
|
+
"validation": "يرجى التحقق من المدخلات والمحاولة مرة أخرى.",
|
|
120
|
+
"rateLimited": "طلبات كثيرة جداً. يرجى الانتظار لحظة.",
|
|
121
|
+
"crashTitle": "حدث خطأ ما",
|
|
122
|
+
"crashMessage": "واجه التطبيق خطأ غير متوقع.",
|
|
123
|
+
"tryAgain": "حاول مرة أخرى",
|
|
124
|
+
"restartApp": "إعادة تشغيل التطبيق"
|
|
125
|
+
},
|
|
126
|
+
"forceUpdate": {
|
|
127
|
+
"title": "تحديث مطلوب",
|
|
128
|
+
"message": "يتوفر إصدار جديد من التطبيق. يرجى التحديث للمتابعة.",
|
|
129
|
+
"button": "تحديث الآن",
|
|
130
|
+
"currentVersion": "الإصدار الحالي",
|
|
131
|
+
"minimumVersion": "الحد الأدنى للإصدار"
|
|
132
|
+
},
|
|
133
|
+
"validation": {
|
|
134
|
+
"required": "هذا الحقل مطلوب",
|
|
135
|
+
"email": "يرجى إدخال بريد إلكتروني صالح",
|
|
136
|
+
"passwordMin": "يجب أن تكون كلمة المرور 8 أحرف على الأقل",
|
|
137
|
+
"passwordMatch": "كلمات المرور غير متطابقة",
|
|
138
|
+
"nameMin": "يجب أن يكون الاسم حرفين على الأقل"
|
|
139
|
+
},
|
|
140
|
+
"permissions": {
|
|
141
|
+
"camera": "يلزم الوصول إلى الكاميرا لالتقاط الصور.",
|
|
142
|
+
"location": "يلزم الوصول إلى الموقع لعرض النتائج القريبة.",
|
|
143
|
+
"contacts": "يلزم الوصول إلى جهات الاتصال للعثور على الأصدقاء.",
|
|
144
|
+
"mediaLibrary": "يلزم الوصول إلى مكتبة الصور لاختيار الصور.",
|
|
145
|
+
"microphone": "يلزم الوصول إلى الميكروفون لتسجيل الصوت.",
|
|
146
|
+
"notifications": "يلزم إذن الإشعارات لإرسال التنبيهات إليك.",
|
|
147
|
+
"openSettings": "فتح الإعدادات",
|
|
148
|
+
"allowAccess": "السماح بالوصول",
|
|
149
|
+
"blocked": "تم رفض الإذن. يرجى تفعيله في الإعدادات."
|
|
150
|
+
},
|
|
151
|
+
"socialAuth": {
|
|
152
|
+
"continueWithGoogle": "المتابعة مع جوجل",
|
|
153
|
+
"continueWithApple": "المتابعة مع أبل",
|
|
154
|
+
"orContinueWith": "أو المتابعة مع"
|
|
155
|
+
},
|
|
156
|
+
"payments": {
|
|
157
|
+
"upgradeToPremium": "الترقية إلى بريميوم",
|
|
158
|
+
"subscribe": "اشتراك",
|
|
159
|
+
"restore": "استعادة المشتريات",
|
|
160
|
+
"perMonth": "/شهر",
|
|
161
|
+
"perYear": "/سنة"
|
|
162
|
+
},
|
|
163
|
+
"upload": {
|
|
164
|
+
"uploading": "جاري الرفع...",
|
|
165
|
+
"complete": "مكتمل",
|
|
166
|
+
"failed": "فشل الرفع",
|
|
167
|
+
"retry": "إعادة المحاولة",
|
|
168
|
+
"addPhoto": "إضافة صورة"
|
|
169
|
+
}
|
|
170
|
+
}
|
package/i18n/locales/de.json
CHANGED
|
@@ -1,101 +1,170 @@
|
|
|
1
|
-
{
|
|
2
|
-
"common": {
|
|
3
|
-
"loading": "Wird geladen...",
|
|
4
|
-
"error": "Fehler",
|
|
5
|
-
"success": "Erfolg",
|
|
6
|
-
"cancel": "Abbrechen",
|
|
7
|
-
"confirm": "Bestätigen",
|
|
8
|
-
"save": "Speichern",
|
|
9
|
-
"delete": "Löschen",
|
|
10
|
-
"edit": "Bearbeiten",
|
|
11
|
-
"close": "Schließen",
|
|
12
|
-
"back": "Zurück",
|
|
13
|
-
"next": "Weiter",
|
|
14
|
-
"done": "Fertig",
|
|
15
|
-
"retry": "Erneut versuchen",
|
|
16
|
-
"search": "Suchen",
|
|
17
|
-
"noResults": "Keine Ergebnisse gefunden",
|
|
18
|
-
"offline": "Du bist offline",
|
|
19
|
-
"online": "Wieder online"
|
|
20
|
-
},
|
|
21
|
-
"auth": {
|
|
22
|
-
"signIn": "Anmelden",
|
|
23
|
-
"signUp": "Registrieren",
|
|
24
|
-
"signOut": "Abmelden",
|
|
25
|
-
"email": "E-Mail",
|
|
26
|
-
"password": "Passwort",
|
|
27
|
-
"confirmPassword": "Passwort bestätigen",
|
|
28
|
-
"name": "Name",
|
|
29
|
-
"forgotPassword": "Passwort vergessen?",
|
|
30
|
-
"resetPassword": "Passwort zurücksetzen",
|
|
31
|
-
"noAccount": "Noch kein Konto?",
|
|
32
|
-
"haveAccount": "Bereits ein Konto?",
|
|
33
|
-
"welcomeBack": "Willkommen zurück!",
|
|
34
|
-
"signInToContinue": "Melde dich an, um fortzufahren",
|
|
35
|
-
"createAccount": "Konto erstellen",
|
|
36
|
-
"joinUs": "Werde noch heute Mitglied",
|
|
37
|
-
"enterEmail": "E-Mail eingeben",
|
|
38
|
-
"enterPassword": "Passwort eingeben",
|
|
39
|
-
"enterName": "Name eingeben",
|
|
40
|
-
"passwordHint": "Mindestens 8 Zeichen",
|
|
41
|
-
"invalidCredentials": "Ungültige E-Mail oder Passwort",
|
|
42
|
-
"accountCreated": "Konto erfolgreich erstellt!",
|
|
43
|
-
"sessionExpired": "Sitzung abgelaufen. Bitte erneut anmelden.",
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
"
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"loading": "Wird geladen...",
|
|
4
|
+
"error": "Fehler",
|
|
5
|
+
"success": "Erfolg",
|
|
6
|
+
"cancel": "Abbrechen",
|
|
7
|
+
"confirm": "Bestätigen",
|
|
8
|
+
"save": "Speichern",
|
|
9
|
+
"delete": "Löschen",
|
|
10
|
+
"edit": "Bearbeiten",
|
|
11
|
+
"close": "Schließen",
|
|
12
|
+
"back": "Zurück",
|
|
13
|
+
"next": "Weiter",
|
|
14
|
+
"done": "Fertig",
|
|
15
|
+
"retry": "Erneut versuchen",
|
|
16
|
+
"search": "Suchen",
|
|
17
|
+
"noResults": "Keine Ergebnisse gefunden",
|
|
18
|
+
"offline": "Du bist offline",
|
|
19
|
+
"online": "Wieder online"
|
|
20
|
+
},
|
|
21
|
+
"auth": {
|
|
22
|
+
"signIn": "Anmelden",
|
|
23
|
+
"signUp": "Registrieren",
|
|
24
|
+
"signOut": "Abmelden",
|
|
25
|
+
"email": "E-Mail",
|
|
26
|
+
"password": "Passwort",
|
|
27
|
+
"confirmPassword": "Passwort bestätigen",
|
|
28
|
+
"name": "Name",
|
|
29
|
+
"forgotPassword": "Passwort vergessen?",
|
|
30
|
+
"resetPassword": "Passwort zurücksetzen",
|
|
31
|
+
"noAccount": "Noch kein Konto?",
|
|
32
|
+
"haveAccount": "Bereits ein Konto?",
|
|
33
|
+
"welcomeBack": "Willkommen zurück!",
|
|
34
|
+
"signInToContinue": "Melde dich an, um fortzufahren",
|
|
35
|
+
"createAccount": "Konto erstellen",
|
|
36
|
+
"joinUs": "Werde noch heute Mitglied",
|
|
37
|
+
"enterEmail": "E-Mail eingeben",
|
|
38
|
+
"enterPassword": "Passwort eingeben",
|
|
39
|
+
"enterName": "Name eingeben",
|
|
40
|
+
"passwordHint": "Mindestens 8 Zeichen",
|
|
41
|
+
"invalidCredentials": "Ungültige E-Mail oder Passwort",
|
|
42
|
+
"accountCreated": "Konto erfolgreich erstellt!",
|
|
43
|
+
"sessionExpired": "Sitzung abgelaufen. Bitte erneut anmelden.",
|
|
44
|
+
"createPasswordPlaceholder": "Passwort erstellen",
|
|
45
|
+
"confirmPasswordPlaceholder": "Passwort bestätigen",
|
|
46
|
+
"passwordHintFull": "Min. 8 Zeichen, 1 Großbuchstabe, 1 Kleinbuchstabe, 1 Zahl",
|
|
47
|
+
"biometric": {
|
|
48
|
+
"title": "Biometrische Authentifizierung",
|
|
49
|
+
"prompt": "Authentifiziere dich, um fortzufahren",
|
|
50
|
+
"fallback": "Code verwenden",
|
|
51
|
+
"enabled": "Biometrische Anmeldung aktiviert",
|
|
52
|
+
"disabled": "Biometrische Anmeldung deaktiviert",
|
|
53
|
+
"notAvailable": "Biometrische Authentifizierung nicht verfügbar"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"forgotPassword": {
|
|
57
|
+
"title": "Passwort vergessen",
|
|
58
|
+
"subtitle": "Gib deine E-Mail ein und wir senden dir einen Link zum Zurücksetzen",
|
|
59
|
+
"sendResetLink": "Link zum Zurücksetzen senden",
|
|
60
|
+
"checkEmail": "Überprüfe deine E-Mail",
|
|
61
|
+
"resetSent": "Wir haben einen Link zum Zurücksetzen an {{email}} gesendet",
|
|
62
|
+
"backToSignIn": "Zurück zur Anmeldung",
|
|
63
|
+
"rememberPassword": "Erinnerst du dich an dein Passwort?",
|
|
64
|
+
"emailRequired": "Bitte gib deine E-Mail-Adresse ein",
|
|
65
|
+
"sendFailed": "Link konnte nicht gesendet werden. Bitte erneut versuchen."
|
|
66
|
+
},
|
|
67
|
+
"home": {
|
|
68
|
+
"welcomeBack": "Willkommen zurück, {{name}}!",
|
|
69
|
+
"quickActions": "Schnellaktionen",
|
|
70
|
+
"newItem": "Neues Element",
|
|
71
|
+
"stats": "Statistiken",
|
|
72
|
+
"recentActivity": "Letzte Aktivität",
|
|
73
|
+
"noRecentActivity": "Keine aktuelle Aktivität",
|
|
74
|
+
"activityWillAppear": "Deine Aktivität wird hier angezeigt"
|
|
75
|
+
},
|
|
76
|
+
"navigation": {
|
|
77
|
+
"home": "Startseite",
|
|
78
|
+
"profile": "Profil",
|
|
79
|
+
"settings": "Einstellungen",
|
|
80
|
+
"notifications": "Benachrichtigungen"
|
|
81
|
+
},
|
|
82
|
+
"profile": {
|
|
83
|
+
"title": "Profil",
|
|
84
|
+
"editProfile": "Profil bearbeiten",
|
|
85
|
+
"changePhoto": "Foto ändern",
|
|
86
|
+
"personalInfo": "Persönliche Informationen",
|
|
87
|
+
"memberSince": "Mitglied seit {{date}}",
|
|
88
|
+
"privacySecurity": "Datenschutz und Sicherheit",
|
|
89
|
+
"helpSupport": "Hilfe und Support"
|
|
90
|
+
},
|
|
91
|
+
"settings": {
|
|
92
|
+
"title": "Einstellungen",
|
|
93
|
+
"appearance": "Erscheinungsbild",
|
|
94
|
+
"theme": "Design",
|
|
95
|
+
"themeLight": "Hell",
|
|
96
|
+
"themeDark": "Dunkel",
|
|
97
|
+
"themeSystem": "System",
|
|
98
|
+
"language": "Sprache",
|
|
99
|
+
"notifications": "Benachrichtigungen",
|
|
100
|
+
"pushNotifications": "Push-Benachrichtigungen",
|
|
101
|
+
"emailNotifications": "E-Mail-Benachrichtigungen",
|
|
102
|
+
"security": "Sicherheit",
|
|
103
|
+
"biometricAuth": "Biometrische Authentifizierung",
|
|
104
|
+
"changePassword": "Passwort ändern",
|
|
105
|
+
"privacy": "Datenschutzrichtlinie",
|
|
106
|
+
"terms": "Nutzungsbedingungen",
|
|
107
|
+
"about": "Über",
|
|
108
|
+
"version": "Version",
|
|
109
|
+
"deleteAccount": "Konto löschen",
|
|
110
|
+
"darkMode": "Dunkelmodus",
|
|
111
|
+
"appVersion": "App-Version"
|
|
112
|
+
},
|
|
113
|
+
"errors": {
|
|
114
|
+
"generic": "Etwas ist schief gelaufen",
|
|
115
|
+
"network": "Netzwerkfehler. Bitte überprüfe deine Verbindung.",
|
|
116
|
+
"timeout": "Zeitüberschreitung. Bitte erneut versuchen.",
|
|
117
|
+
"unauthorized": "Du bist nicht berechtigt, diese Aktion auszuführen.",
|
|
118
|
+
"notFound": "Ressource nicht gefunden.",
|
|
119
|
+
"validation": "Bitte überprüfe deine Eingaben und versuche es erneut.",
|
|
120
|
+
"rateLimited": "Zu viele Anfragen. Bitte warte einen Moment.",
|
|
121
|
+
"crashTitle": "Etwas ist schief gelaufen",
|
|
122
|
+
"crashMessage": "Die App hat einen unerwarteten Fehler festgestellt.",
|
|
123
|
+
"tryAgain": "Erneut versuchen",
|
|
124
|
+
"restartApp": "App neu starten"
|
|
125
|
+
},
|
|
126
|
+
"forceUpdate": {
|
|
127
|
+
"title": "Aktualisierung erforderlich",
|
|
128
|
+
"message": "Eine neue Version der App ist verfügbar. Bitte aktualisiere, um fortzufahren.",
|
|
129
|
+
"button": "Jetzt aktualisieren",
|
|
130
|
+
"currentVersion": "Aktuelle Version",
|
|
131
|
+
"minimumVersion": "Mindestversion"
|
|
132
|
+
},
|
|
133
|
+
"validation": {
|
|
134
|
+
"required": "Dieses Feld ist erforderlich",
|
|
135
|
+
"email": "Bitte gib eine gültige E-Mail-Adresse ein",
|
|
136
|
+
"passwordMin": "Das Passwort muss mindestens 8 Zeichen lang sein",
|
|
137
|
+
"passwordMatch": "Passwörter stimmen nicht überein",
|
|
138
|
+
"nameMin": "Der Name muss mindestens 2 Zeichen lang sein"
|
|
139
|
+
},
|
|
140
|
+
"permissions": {
|
|
141
|
+
"camera": "Kamerazugriff wird benötigt, um Fotos aufzunehmen.",
|
|
142
|
+
"location": "Standortzugriff wird benötigt, um Ergebnisse in der Nähe anzuzeigen.",
|
|
143
|
+
"contacts": "Kontaktzugriff wird benötigt, um Freunde zu finden.",
|
|
144
|
+
"mediaLibrary": "Zugriff auf die Fotobibliothek wird benötigt, um Bilder auszuwählen.",
|
|
145
|
+
"microphone": "Mikrofonzugriff wird benötigt, um Audio aufzunehmen.",
|
|
146
|
+
"notifications": "Benachrichtigungsberechtigung wird benötigt, um dir Meldungen zu senden.",
|
|
147
|
+
"openSettings": "Einstellungen öffnen",
|
|
148
|
+
"allowAccess": "Zugriff erlauben",
|
|
149
|
+
"blocked": "Berechtigung wurde verweigert. Bitte aktiviere sie in den Einstellungen."
|
|
150
|
+
},
|
|
151
|
+
"socialAuth": {
|
|
152
|
+
"continueWithGoogle": "Weiter mit Google",
|
|
153
|
+
"continueWithApple": "Weiter mit Apple",
|
|
154
|
+
"orContinueWith": "Oder weiter mit"
|
|
155
|
+
},
|
|
156
|
+
"payments": {
|
|
157
|
+
"upgradeToPremium": "Auf Premium upgraden",
|
|
158
|
+
"subscribe": "Abonnieren",
|
|
159
|
+
"restore": "Käufe wiederherstellen",
|
|
160
|
+
"perMonth": "/Monat",
|
|
161
|
+
"perYear": "/Jahr"
|
|
162
|
+
},
|
|
163
|
+
"upload": {
|
|
164
|
+
"uploading": "Wird hochgeladen...",
|
|
165
|
+
"complete": "Abgeschlossen",
|
|
166
|
+
"failed": "Upload fehlgeschlagen",
|
|
167
|
+
"retry": "Erneut versuchen",
|
|
168
|
+
"addPhoto": "Foto hinzufügen"
|
|
169
|
+
}
|
|
170
|
+
}
|