@varunindiit/create-rn-starter 1.0.1

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.
Files changed (243) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +93 -0
  3. package/bin/index.js +270 -0
  4. package/lib/prompt.js +63 -0
  5. package/lib/rename.js +239 -0
  6. package/lib/scaffold.js +110 -0
  7. package/lib/utils.js +122 -0
  8. package/package.json +38 -0
  9. package/template/.eslintrc.js +4 -0
  10. package/template/.prettierrc.js +5 -0
  11. package/template/.watchmanconfig +1 -0
  12. package/template/App.tsx +100 -0
  13. package/template/Gemfile +17 -0
  14. package/template/README.md +97 -0
  15. package/template/__tests__/App.test.tsx +13 -0
  16. package/template/_gitignore +75 -0
  17. package/template/android/app/build.gradle +119 -0
  18. package/template/android/app/debug.keystore +0 -0
  19. package/template/android/app/proguard-rules.pro +10 -0
  20. package/template/android/app/src/main/AndroidManifest.xml +45 -0
  21. package/template/android/app/src/main/assets/fonts/MonaSans-Black.ttf +0 -0
  22. package/template/android/app/src/main/assets/fonts/MonaSans-BlackItalic.ttf +0 -0
  23. package/template/android/app/src/main/assets/fonts/MonaSans-Bold.ttf +0 -0
  24. package/template/android/app/src/main/assets/fonts/MonaSans-BoldItalic.ttf +0 -0
  25. package/template/android/app/src/main/assets/fonts/MonaSans-ExtraBold.ttf +0 -0
  26. package/template/android/app/src/main/assets/fonts/MonaSans-ExtraBoldItalic.ttf +0 -0
  27. package/template/android/app/src/main/assets/fonts/MonaSans-ExtraLight.ttf +0 -0
  28. package/template/android/app/src/main/assets/fonts/MonaSans-ExtraLightItalic.ttf +0 -0
  29. package/template/android/app/src/main/assets/fonts/MonaSans-Italic.ttf +0 -0
  30. package/template/android/app/src/main/assets/fonts/MonaSans-Light.ttf +0 -0
  31. package/template/android/app/src/main/assets/fonts/MonaSans-LightItalic.ttf +0 -0
  32. package/template/android/app/src/main/assets/fonts/MonaSans-Medium.ttf +0 -0
  33. package/template/android/app/src/main/assets/fonts/MonaSans-MediumItalic.ttf +0 -0
  34. package/template/android/app/src/main/assets/fonts/MonaSans-Regular.ttf +0 -0
  35. package/template/android/app/src/main/assets/fonts/MonaSans-SemiBold.ttf +0 -0
  36. package/template/android/app/src/main/assets/fonts/MonaSans-SemiBoldItalic.ttf +0 -0
  37. package/template/android/app/src/main/java/com/awesomeproject/MainActivity.kt +22 -0
  38. package/template/android/app/src/main/java/com/awesomeproject/MainApplication.kt +27 -0
  39. package/template/android/app/src/main/res/drawable/launch_screen.png +0 -0
  40. package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +37 -0
  41. package/template/android/app/src/main/res/layout/launch_screen.xml +12 -0
  42. package/template/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  43. package/template/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  44. package/template/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  45. package/template/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  46. package/template/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  47. package/template/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  48. package/template/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  49. package/template/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  50. package/template/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  51. package/template/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  52. package/template/android/app/src/main/res/values/colors.xml +3 -0
  53. package/template/android/app/src/main/res/values/strings.xml +3 -0
  54. package/template/android/app/src/main/res/values/styles.xml +11 -0
  55. package/template/android/build.gradle +21 -0
  56. package/template/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  57. package/template/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  58. package/template/android/gradle.properties +44 -0
  59. package/template/android/gradlew +248 -0
  60. package/template/android/gradlew.bat +98 -0
  61. package/template/android/link-assets-manifest.json +69 -0
  62. package/template/android/settings.gradle +6 -0
  63. package/template/app.json +4 -0
  64. package/template/babel.config.js +4 -0
  65. package/template/declarations.d.ts +6 -0
  66. package/template/env.example +20 -0
  67. package/template/index.js +10 -0
  68. package/template/ios/.xcode.env +11 -0
  69. package/template/ios/.xcode.env.local +1 -0
  70. package/template/ios/AwesomeProject/AppDelegate.swift +60 -0
  71. package/template/ios/AwesomeProject/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  72. package/template/ios/AwesomeProject/Images.xcassets/Contents.json +6 -0
  73. package/template/ios/AwesomeProject/Images.xcassets/Splash.imageset/Contents.json +23 -0
  74. package/template/ios/AwesomeProject/Images.xcassets/Splash.imageset/Splash@1x.png +0 -0
  75. package/template/ios/AwesomeProject/Images.xcassets/Splash.imageset/Splash@2x.png +0 -0
  76. package/template/ios/AwesomeProject/Images.xcassets/Splash.imageset/Splash@3x.png +0 -0
  77. package/template/ios/AwesomeProject/Info.plist +89 -0
  78. package/template/ios/AwesomeProject/LaunchScreen.storyboard +40 -0
  79. package/template/ios/AwesomeProject/PrivacyInfo.xcprivacy +38 -0
  80. package/template/ios/AwesomeProject.xcodeproj/project.pbxproj +576 -0
  81. package/template/ios/AwesomeProject.xcodeproj/xcshareddata/xcschemes/AwesomeProject.xcscheme +88 -0
  82. package/template/ios/AwesomeProject.xcworkspace/contents.xcworkspacedata +10 -0
  83. package/template/ios/Podfile +68 -0
  84. package/template/ios/link-assets-manifest.json +69 -0
  85. package/template/jest.config.js +3 -0
  86. package/template/metro.config.js +24 -0
  87. package/template/package.json +68 -0
  88. package/template/react-native.config.js +7 -0
  89. package/template/src/assets/fonts/MonaSans-Black.ttf +0 -0
  90. package/template/src/assets/fonts/MonaSans-BlackItalic.ttf +0 -0
  91. package/template/src/assets/fonts/MonaSans-Bold.ttf +0 -0
  92. package/template/src/assets/fonts/MonaSans-BoldItalic.ttf +0 -0
  93. package/template/src/assets/fonts/MonaSans-ExtraBold.ttf +0 -0
  94. package/template/src/assets/fonts/MonaSans-ExtraBoldItalic.ttf +0 -0
  95. package/template/src/assets/fonts/MonaSans-ExtraLight.ttf +0 -0
  96. package/template/src/assets/fonts/MonaSans-ExtraLightItalic.ttf +0 -0
  97. package/template/src/assets/fonts/MonaSans-Italic.ttf +0 -0
  98. package/template/src/assets/fonts/MonaSans-Light.ttf +0 -0
  99. package/template/src/assets/fonts/MonaSans-LightItalic.ttf +0 -0
  100. package/template/src/assets/fonts/MonaSans-Medium.ttf +0 -0
  101. package/template/src/assets/fonts/MonaSans-MediumItalic.ttf +0 -0
  102. package/template/src/assets/fonts/MonaSans-Regular.ttf +0 -0
  103. package/template/src/assets/fonts/MonaSans-SemiBold.ttf +0 -0
  104. package/template/src/assets/fonts/MonaSans-SemiBoldItalic.ttf +0 -0
  105. package/template/src/assets/image/BackGroundAuth.png +0 -0
  106. package/template/src/assets/image/BackgroundVerification.png +0 -0
  107. package/template/src/assets/image/logo.png +0 -0
  108. package/template/src/assets/svg/add-circle.svg +5 -0
  109. package/template/src/assets/svg/airConditioning.svg +12 -0
  110. package/template/src/assets/svg/apple.svg +3 -0
  111. package/template/src/assets/svg/arrowDown.svg +3 -0
  112. package/template/src/assets/svg/back.svg +10 -0
  113. package/template/src/assets/svg/bag.svg +11 -0
  114. package/template/src/assets/svg/calender.svg +5 -0
  115. package/template/src/assets/svg/car.svg +10 -0
  116. package/template/src/assets/svg/carConfirm.svg +60 -0
  117. package/template/src/assets/svg/chatActive.svg +3 -0
  118. package/template/src/assets/svg/chatUnActive.svg +3 -0
  119. package/template/src/assets/svg/document-text.svg +6 -0
  120. package/template/src/assets/svg/gender.svg +11 -0
  121. package/template/src/assets/svg/google.svg +6 -0
  122. package/template/src/assets/svg/headphone.svg +3 -0
  123. package/template/src/assets/svg/homeActive.svg +3 -0
  124. package/template/src/assets/svg/homeUnActive.svg +3 -0
  125. package/template/src/assets/svg/logo.svg +18 -0
  126. package/template/src/assets/svg/logout.svg +5 -0
  127. package/template/src/assets/svg/maxBack.svg +4 -0
  128. package/template/src/assets/svg/message-text.svg +7 -0
  129. package/template/src/assets/svg/music.svg +5 -0
  130. package/template/src/assets/svg/noSmoking.svg +10 -0
  131. package/template/src/assets/svg/notification.svg +5 -0
  132. package/template/src/assets/svg/passenger.svg +4 -0
  133. package/template/src/assets/svg/phone.svg +3 -0
  134. package/template/src/assets/svg/rightArrow.svg +3 -0
  135. package/template/src/assets/svg/security-user.svg +5 -0
  136. package/template/src/assets/svg/star.svg +3 -0
  137. package/template/src/assets/svg/tick-circle.svg +4 -0
  138. package/template/src/assets/svg/trafficLight.svg +41 -0
  139. package/template/src/assets/svg/tripActive.svg +10 -0
  140. package/template/src/assets/svg/tripUnActive.svg +10 -0
  141. package/template/src/assets/svg/usbChargers.svg +3 -0
  142. package/template/src/assets/svg/user.svg +4 -0
  143. package/template/src/assets/svg/userActive.svg +3 -0
  144. package/template/src/assets/svg/userPlaceholder.svg +3 -0
  145. package/template/src/assets/svg/userUnActive.svg +3 -0
  146. package/template/src/components/AuthLayout/AuthLayout.tsx +170 -0
  147. package/template/src/components/AuthLayout/index.ts +1 -0
  148. package/template/src/components/BottomSheet/BottomSheet.tsx +73 -0
  149. package/template/src/components/BottomSheet/BottomSheetAlert.tsx +100 -0
  150. package/template/src/components/BottomSheet/CenterAlert.tsx +153 -0
  151. package/template/src/components/BottomSheet/index.ts +2 -0
  152. package/template/src/components/BottomTabBar/index.tsx +145 -0
  153. package/template/src/components/Button/RNButton.tsx +152 -0
  154. package/template/src/components/Button/index.ts +2 -0
  155. package/template/src/components/Common/Avatar.tsx +80 -0
  156. package/template/src/components/Common/Card.tsx +49 -0
  157. package/template/src/components/Common/CardBrandLogo.tsx +66 -0
  158. package/template/src/components/Common/Checkbox.tsx +65 -0
  159. package/template/src/components/Common/Chip.tsx +79 -0
  160. package/template/src/components/Common/CommonStyles.tsx +594 -0
  161. package/template/src/components/Common/Divider.tsx +33 -0
  162. package/template/src/components/Common/DriverTripCard.tsx +308 -0
  163. package/template/src/components/Common/Dropdown.tsx +161 -0
  164. package/template/src/components/Common/EmptyState.tsx +52 -0
  165. package/template/src/components/Common/FAB.tsx +68 -0
  166. package/template/src/components/Common/HeaderLocation.tsx +108 -0
  167. package/template/src/components/Common/Loader.tsx +23 -0
  168. package/template/src/components/Common/RatingStars.tsx +103 -0
  169. package/template/src/components/Common/RouteDots.tsx +98 -0
  170. package/template/src/components/Common/SegmentedControl.tsx +126 -0
  171. package/template/src/components/Common/SosButton.tsx +80 -0
  172. package/template/src/components/Common/SosSheet.tsx +344 -0
  173. package/template/src/components/Common/StarRating.tsx +58 -0
  174. package/template/src/components/Common/StatusBadge.tsx +56 -0
  175. package/template/src/components/Common/Toggle.tsx +66 -0
  176. package/template/src/components/Common/TripCard.tsx +247 -0
  177. package/template/src/components/Common/UploadBox.tsx +106 -0
  178. package/template/src/components/Container/MainContainer.tsx +76 -0
  179. package/template/src/components/Container/index.ts +1 -0
  180. package/template/src/components/Header/index.tsx +143 -0
  181. package/template/src/components/Icon/SvgIcons.tsx +1991 -0
  182. package/template/src/components/ImagePickerSheet/ImagePickerSheet.tsx +233 -0
  183. package/template/src/components/ImagePickerSheet/index.ts +2 -0
  184. package/template/src/components/Input/CountryDropdown.tsx +71 -0
  185. package/template/src/components/Input/OtpInput.tsx +117 -0
  186. package/template/src/components/Input/RNInput.tsx +138 -0
  187. package/template/src/components/Input/index.ts +4 -0
  188. package/template/src/components/Picker/DatePickerSheet.tsx +393 -0
  189. package/template/src/components/Picker/PassengerPickerSheet.tsx +237 -0
  190. package/template/src/components/Text/RNText.tsx +62 -0
  191. package/template/src/components/Text/index.ts +1 -0
  192. package/template/src/components/index.ts +44 -0
  193. package/template/src/hooks/useCurrentLocation.ts +72 -0
  194. package/template/src/localization/i18n.ts +29 -0
  195. package/template/src/localization/i18next.d.ts +11 -0
  196. package/template/src/localization/index.ts +4 -0
  197. package/template/src/localization/languageStorage.ts +27 -0
  198. package/template/src/localization/languages.ts +62 -0
  199. package/template/src/localization/resources/en.ts +703 -0
  200. package/template/src/localization/resources/fr.ts +703 -0
  201. package/template/src/localization/useLanguage.ts +42 -0
  202. package/template/src/navigation/AuthNavigation.tsx +23 -0
  203. package/template/src/navigation/BottomTabs.tsx +24 -0
  204. package/template/src/navigation/RootNavigation.tsx +27 -0
  205. package/template/src/navigation/RouteKey.ts +22 -0
  206. package/template/src/navigation/StackNavigation.tsx +52 -0
  207. package/template/src/navigation/paramLists.ts +25 -0
  208. package/template/src/redux/slice/app.ts +66 -0
  209. package/template/src/redux/slice/auth.ts +40 -0
  210. package/template/src/redux/slice/userProfile.ts +124 -0
  211. package/template/src/redux/store.ts +17 -0
  212. package/template/src/screen/auth/Login.tsx +69 -0
  213. package/template/src/screen/onboarding/LanguageSelection.tsx +231 -0
  214. package/template/src/screen/root/home/index.tsx +36 -0
  215. package/template/src/screen/root/profile/index.tsx +69 -0
  216. package/template/src/screen/shared/Chat.tsx +308 -0
  217. package/template/src/screen/shared/EditProfile.tsx +407 -0
  218. package/template/src/screen/shared/HelpSupport.tsx +678 -0
  219. package/template/src/screen/shared/LocationSearch.tsx +362 -0
  220. package/template/src/screen/shared/Messages.tsx +115 -0
  221. package/template/src/screen/shared/Notifications.tsx +86 -0
  222. package/template/src/screen/shared/PrivacyPolicy.tsx +297 -0
  223. package/template/src/screen/shared/Profile.tsx +118 -0
  224. package/template/src/screen/shared/Ratings.tsx +170 -0
  225. package/template/src/screen/shared/TermsConditions.tsx +315 -0
  226. package/template/src/screen/shared/profile/DriverProfile.tsx +262 -0
  227. package/template/src/screen/shared/profile/PassengerProfile.tsx +123 -0
  228. package/template/src/screen/shared/profile/ProfileParts.tsx +219 -0
  229. package/template/src/services/Config.ts +37 -0
  230. package/template/src/services/api.ts +37 -0
  231. package/template/src/services/index.ts +4 -0
  232. package/template/src/services/places.ts +320 -0
  233. package/template/src/services/storage.ts +33 -0
  234. package/template/src/theme/fonts.ts +30 -0
  235. package/template/src/theme/index.ts +3 -0
  236. package/template/src/theme/spacing.ts +66 -0
  237. package/template/src/theme/theme.ts +58 -0
  238. package/template/src/types/env.d.ts +8 -0
  239. package/template/src/types/index.ts +3 -0
  240. package/template/src/utils/card.ts +101 -0
  241. package/template/src/utils/constants.ts +39 -0
  242. package/template/src/utils/functions.ts +24 -0
  243. package/template/tsconfig.json +8 -0
@@ -0,0 +1,703 @@
1
+ /**
2
+ * English translations — source of truth for all UI copy.
3
+ * Keys are grouped by feature/namespace; reuse `common.*` everywhere possible.
4
+ * Keep keys stable; only add. Mirror every key in fr.ts.
5
+ */
6
+ const en = {
7
+ common: {
8
+ appName: "HD WAKA",
9
+ continue: "Continue",
10
+ next: "Next",
11
+ back: "Back",
12
+ cancel: "Cancel",
13
+ confirm: "Confirm",
14
+ save: "Save",
15
+ saveChanges: "Save Changes",
16
+ done: "Done",
17
+ submit: "Submit",
18
+ skip: "Skip",
19
+ edit: "Edit",
20
+ delete: "Delete",
21
+ remove: "Remove",
22
+ add: "Add",
23
+ apply: "Apply",
24
+ retry: "Retry",
25
+ close: "Close",
26
+ ok: "OK",
27
+ yes: "Yes",
28
+ no: "No",
29
+ search: "Search",
30
+ seeAll: "See All",
31
+ viewAll: "View All",
32
+ loading: "Loading…",
33
+ optional: "Optional",
34
+ required: "Required",
35
+ today: "Today",
36
+ tomorrow: "Tomorrow",
37
+ now: "Now",
38
+ from: "From",
39
+ to: "To",
40
+ date: "Date",
41
+ time: "Time",
42
+ name: "Name",
43
+ email: "Email",
44
+ phone: "Phone",
45
+ seats: "Seats",
46
+ seat: "Seat",
47
+ price: "Price",
48
+ total: "Total",
49
+ rating: "Rating",
50
+ reviews: "Reviews",
51
+ verified: "Verified",
52
+ online: "Online",
53
+ offline: "Offline",
54
+ currency: "F",
55
+ somethingWrong: "Something went wrong. Please try again.",
56
+ select: "Select",
57
+ selectDate: "Select Date",
58
+ update: "Update",
59
+ replace: "Replace",
60
+ change: "Change",
61
+ reset: "Reset",
62
+ accept: "Accept",
63
+ decline: "Decline",
64
+ yesCancel: "Yes, Cancel",
65
+ uploadImage: "Upload image",
66
+ uploadFormatsHint: "Support Jpg, png, Pdf, Zip",
67
+ tripsCount: "{{count}} trips",
68
+ personsCount: "{{count}} persons",
69
+ passengersCount: "{{count}} passengers",
70
+ seatCount: "{{count}} Seat",
71
+ seatsCount: "{{count}} Seats",
72
+ seatsLeftCount: "{{count}} Seats Left",
73
+ received: "Received",
74
+ given: "Given",
75
+ requests: "Requests",
76
+ departure: "Departure",
77
+ via: "Via",
78
+ },
79
+
80
+ language: {
81
+ onboardingTitle: "Choose your language",
82
+ onboardingSubtitle: "Select your preferred language to continue. You can change it anytime in Settings.",
83
+ settingsTitle: "Language",
84
+ settingsSubtitle: "Choose the language used across the app.",
85
+ selectLabel: "Language",
86
+ changedTo: "Language changed to {{language}}",
87
+ continueIn: "Continue in {{language}}",
88
+ },
89
+
90
+ auth: {
91
+ loginTitle: "Welcome back",
92
+ loginSubtitle: "Glad to see you, Again!",
93
+ signUpTitle: "Create your account",
94
+ signUpSubtitle: "Sign up to start riding and sharing trips.",
95
+ phoneNumber: "Phone Number",
96
+ enterPhone: "Enter your phone number",
97
+ emailAddress: "Email Address",
98
+ enterEmail: "Enter your email",
99
+ fullName: "Full Name",
100
+ enterFullName: "Enter your full name",
101
+ password: "Password",
102
+ enterPassword: "Enter your password",
103
+ login: "Log In",
104
+ signUp: "Sign Up",
105
+ continueWithPhone: "Continue with Phone",
106
+ noAccount: "Don't have an account?",
107
+ haveAccount: "Already have an account?",
108
+ orContinueWith: "or continue with",
109
+ agreeTerms: "By continuing, you agree to our Terms & Conditions and Privacy Policy.",
110
+ verifyNumberTitle: "Verify your number",
111
+ verifyNumberSubtitle: "Enter the 4-digit code we sent to {{phone}}.",
112
+ enterOtp: "Enter verification code",
113
+ resendCode: "Resend Code",
114
+ resendIn: "Resend code in {{seconds}}s",
115
+ didntReceive: "Didn't receive the code?",
116
+ verify: "Verify",
117
+ personalInfoTitle: "Personal Information",
118
+ personalInfoSubtitle: "Tell us a bit about yourself.",
119
+ dateOfBirth: "Date of Birth",
120
+ gender: "Gender",
121
+ selectGender: "Select gender",
122
+ vehicleInfoTitle: "Vehicle Information",
123
+ vehicleInfoSubtitle: "Add your vehicle details to start driving.",
124
+ drivingLicenseTitle: "Driving License",
125
+ drivingLicenseSubtitle: "Upload your driving license to get verified.",
126
+ verificationInProgressTitle: "Verification in progress",
127
+ verificationInProgressSubtitle: "We're reviewing your document. This usually takes 24-48 hours.",
128
+ backToHome: "Back to Home",
129
+ addProfilePicture: "Add profile picture",
130
+ nationalId: "National ID",
131
+ nationalIdHint: "Upload a clear photo of your valid national ID to verify your identity. (Max {{count}} images)",
132
+ uploadNationalId: "Upload National ID",
133
+ uploadNationalIdSubtitle: "Add a clear photo of your national ID",
134
+ agreeTermsTapping: "By tapping on Continue you agree to our",
135
+ termsOfService: "Terms of services",
136
+ and: "and",
137
+ privacyPolicyLink: "Privacy policy",
138
+ },
139
+
140
+ gender: {
141
+ male: "Male",
142
+ female: "Female",
143
+ other: "Other",
144
+ },
145
+
146
+ role: {
147
+ passenger: "Passenger",
148
+ driver: "Driver",
149
+ switchToPassenger: "Switch to Passenger",
150
+ switchToDriver: "Switch to Driver",
151
+ },
152
+
153
+ tabs: {
154
+ home: "Home",
155
+ trips: "Trips",
156
+ messages: "Messages",
157
+ profile: "Profile",
158
+ },
159
+
160
+ home: {
161
+ greeting: "Hi, {{name}}",
162
+ whereTo: "Where are you going?",
163
+ searchPlaceholder: "Search destination",
164
+ fromLabel: "From",
165
+ toLabel: "To",
166
+ pickupLocation: "Pickup location",
167
+ dropLocation: "Drop-off location",
168
+ whenLabel: "When",
169
+ passengers: "Passengers",
170
+ findRides: "Find Rides",
171
+ popularRoutes: "Popular Routes",
172
+ upcomingTrip: "Upcoming Trip",
173
+ noUpcomingTrips: "No upcoming trips",
174
+ publishRide: "Publish a Ride",
175
+ publishRideSubtitle: "Offer seats and share your travel costs.",
176
+ goOnline: "Go Online",
177
+ goOffline: "Go Offline",
178
+ youAreOnline: "You're online",
179
+ youAreOffline: "You're offline",
180
+ todaysEarnings: "Today's Earnings",
181
+ requests: "Ride Requests",
182
+ noRequests: "No ride requests right now",
183
+ driverGreeting: "Hey {{name}} !",
184
+ onlineAvailable: "Online — Available",
185
+ recentRequests: "Recent Requests",
186
+ recentRides: "Recent Rides",
187
+ passengersSubtitle: "How many seats do you need?",
188
+ earnedFcfa: "Earned (FCFA)",
189
+ },
190
+
191
+ search: {
192
+ title: "Available Rides",
193
+ resultsCount: "{{count}} rides found",
194
+ noResults: "No rides found",
195
+ noResultsSubtitle: "Try changing your date or destination.",
196
+ filters: "Filters",
197
+ sortBy: "Sort by",
198
+ departure: "Departure",
199
+ price: "Price",
200
+ seatsLeft: "{{count}} seats left",
201
+ seatLeft: "{{count}} seat left",
202
+ sortEarliest: "Earliest departure",
203
+ sortLatest: "Latest departure",
204
+ sortPriceLow: "Price: Low to High",
205
+ sortPriceHigh: "Price: High to Low",
206
+ sortRating: "Highest rated driver",
207
+ fullyBooked: "Fully Booked",
208
+ availability: "Availability",
209
+ hideFullyBooked: "Hide fully booked rides",
210
+ ridesAvailable: "{{count}} rides available",
211
+ },
212
+
213
+ ride: {
214
+ detailsTitle: "Ride Details",
215
+ route: "Route",
216
+ pickup: "Pickup",
217
+ dropoff: "Drop-off",
218
+ departureTime: "Departure",
219
+ arrivalTime: "Arrival",
220
+ duration: "Duration",
221
+ distance: "Distance",
222
+ pricePerSeat: "Price per seat",
223
+ availableSeats: "Available seats",
224
+ driver: "Driver",
225
+ vehicle: "Vehicle",
226
+ preferences: "Trip Preferences",
227
+ luggage: "Luggage",
228
+ music: "Music",
229
+ conversation: "Conversation",
230
+ bookSeat: "Book Seat",
231
+ bookNow: "Book Now",
232
+ requestToBook: "Request to Book",
233
+ contactDriver: "Contact Driver",
234
+ viewProfile: "View Profile",
235
+ routeDetails: "Route Details",
236
+ meetingPoint: "Meeting point: Main Entrance",
237
+ dropoffNote: "Dropoff: Near Boulevard de la Liberté",
238
+ rulesAmenities: "Ride Rules & Amenities",
239
+ ruleMaxBag: "Max 1 bag",
240
+ ruleMaxBack: "Max 2 in back",
241
+ ruleNoSmoking: "No smoking",
242
+ ruleMusic: "Music inside",
243
+ ruleAc: "Air conditioning",
244
+ ruleUsb: "USB Chargers",
245
+ coPassengers: "Co Passengers",
246
+ },
247
+
248
+ sos: {
249
+ title: "Emergency SOS",
250
+ subtitle: "Tap a service to call immediately.",
251
+ warning:
252
+ "Only use in a real emergency. Your live trip details and location can be shared with the responder.",
253
+ emergencyServices: "Emergency Services",
254
+ police: "Police",
255
+ ambulance: "Ambulance",
256
+ fire: "Fire & Rescue",
257
+ call: "Call",
258
+ callEmergency: "Call Emergency · {{number}}",
259
+ callFailed: "Unable to start the call.",
260
+ trustedContacts: "Trusted Contacts",
261
+ addTrustedContact: "Add trusted contact",
262
+ noTrustedContacts:
263
+ "Add someone you trust for quick access during a ride.",
264
+ },
265
+
266
+ driverDetails: {
267
+ title: "Driver",
268
+ memberSince: "Member since {{date}}",
269
+ totalTrips: "{{count}} trips",
270
+ aboutDriver: "About",
271
+ verifications: "Verifications",
272
+ detailsTitle: "Driver Details",
273
+ sinceYear: "Since {{year}}",
274
+ ridingPreferences: "Riding Preferences",
275
+ },
276
+
277
+ payment: {
278
+ title: "Payment",
279
+ methodsTitle: "Payment Methods",
280
+ addMethod: "Add Payment Method",
281
+ selectMethod: "Select payment method",
282
+ cash: "Cash",
283
+ card: "Card",
284
+ mobileMoney: "Mobile Money",
285
+ fareBreakdown: "Fare Breakdown",
286
+ baseFare: "Base fare",
287
+ serviceFee: "Service fee",
288
+ totalToPay: "Total to pay",
289
+ payNow: "Pay Now",
290
+ processingTitle: "Processing payment",
291
+ processingSubtitle: "Please wait while we confirm your booking.",
292
+ chooseSeats: "Choose Seats",
293
+ payVia: "Pay Via",
294
+ yourMobileMoneyNumber: "Your Mobile Money Number",
295
+ payAmount: "Pay {{amount}}",
296
+ processingWarning: "Please don't hit back or refresh",
297
+ },
298
+
299
+ paymentMethod: {
300
+ title: "Payment Method",
301
+ savedCards: "Saved Cards",
302
+ addNewCard: "+ Add New Card",
303
+ default: "Default",
304
+ noCardsTitle: "No saved cards yet",
305
+ noCardsSubtitle: "Add a card to pay quickly and securely.",
306
+ selectCard: "Select a card to continue",
307
+ cardHolder: "Card Holder",
308
+ confirmPay: "Confirm & Pay {{amount}}",
309
+ confirm: "Confirm Payment Method",
310
+ done: "Done",
311
+ secured: "Payments are encrypted & secure",
312
+ setDefault: "Set as default",
313
+ remove: "Remove",
314
+ },
315
+
316
+ addCard: {
317
+ title: "Add Card",
318
+ holderLabel: "Card Holder Name",
319
+ holderPlaceholder: "Name on card",
320
+ numberLabel: "Card Number",
321
+ numberPlaceholder: "1234 5678 9012 3456",
322
+ expiryLabel: "Expiry Date",
323
+ expiryPlaceholder: "MM/YY",
324
+ cvvLabel: "CVV",
325
+ cvvPlaceholder: "123",
326
+ setDefault: "Set as default card",
327
+ save: "Add Card",
328
+ cardHolderFallback: "Card Holder",
329
+ errHolder: "Enter the card holder name",
330
+ errNumber: "Enter a valid card number",
331
+ errExpiry: "Enter a valid expiry date",
332
+ errCvv: "Enter a valid CVV",
333
+ },
334
+
335
+ cardAdded: {
336
+ title: "Card Added",
337
+ subtitle: "Your card has been added successfully and is ready to use.",
338
+ cta: "Done",
339
+ },
340
+
341
+ booking: {
342
+ successTitle: "Booking Confirmed!",
343
+ successSubtitle: "Your seat has been booked successfully.",
344
+ bookingId: "Booking ID",
345
+ viewTrip: "View Trip",
346
+ backHome: "Back to Home",
347
+ noteDriverContact: "Driver will contact you soon",
348
+ noteArrivalUpdates: "Arrival updates enabled",
349
+ noteTripDetails: "Trip details available in My Rides",
350
+ },
351
+
352
+ trips: {
353
+ title: "My Trips",
354
+ upcoming: "Upcoming",
355
+ completed: "Completed",
356
+ cancelled: "Cancelled",
357
+ active: "Active",
358
+ past: "Past",
359
+ noTrips: "No trips yet",
360
+ noTripsSubtitle: "Your trips will appear here once you book or publish a ride.",
361
+ tripDetails: "Trip Details",
362
+ cancelTrip: "Cancel Trip",
363
+ cancelTripConfirm: "Are you sure you want to cancel this trip?",
364
+ cancelTripLong: "Are you sure you want to cancel this trip? If you cancel it then this trip will no longer be available for any passenger.",
365
+ trackTrip: "Track Trip",
366
+ rateTrip: "Rate Trip",
367
+ rateDriver: "Rate Driver",
368
+ ratePassenger: "Rate Passenger",
369
+ completeTrip: "Complete Trip",
370
+ startTrip: "Start Trip",
371
+ status: "Status",
372
+ rideCancelled: "Ride Cancelled",
373
+ rideCancelledNote: "This ride was cancelled.",
374
+ cancelRide: "Cancel Ride",
375
+ cancelRideTitle: "Cancel Ride?",
376
+ cancelTripTitle: "Cancel Trip?",
377
+ confirmCancel: "Yes, Cancel",
378
+ cancelReasonLabel: "Reason for cancellation",
379
+ enterReason: "Enter your reason",
380
+ cancelledWithReason: "Cancelled · {{reason}}",
381
+ reasonEmergency: "Emergency",
382
+ reasonVehicleIssue: "Vehicle issue",
383
+ reasonNoShow: "Passenger no-show",
384
+ reasonChangePlans: "Change of plans",
385
+ reasonOther: "Other",
386
+ },
387
+
388
+ tripStatus: {
389
+ upcoming: "Upcoming",
390
+ ongoing: "Ongoing",
391
+ completed: "Completed",
392
+ cancelled: "Cancelled",
393
+ pending: "Pending",
394
+ confirmed: "Confirmed",
395
+ accepted: "Accepted",
396
+ available: "Available",
397
+ fullyBooked: "Fully Booked",
398
+ inProgress: "In Progress",
399
+ },
400
+
401
+ publish: {
402
+ title: "Publish a Ride",
403
+ routeSection: "Route",
404
+ leavingFrom: "Leaving from",
405
+ goingTo: "Going to",
406
+ addStop: "Add a stop",
407
+ dateTimeSection: "Date & Time",
408
+ departureDate: "Departure date",
409
+ departureTime: "Departure time",
410
+ seatsSection: "Seats & Price",
411
+ availableSeats: "Available seats",
412
+ pricePerSeat: "Price per seat",
413
+ preferencesSection: "Preferences",
414
+ publishNow: "Publish Ride",
415
+ publishingTitle: "Publishing your ride",
416
+ publishingSubtitle: "Setting things up. This will only take a moment.",
417
+ publishedTitle: "Ride Published!",
418
+ publishedSubtitle: "Passengers can now find and book your ride.",
419
+ pickUp: "Pick-Up",
420
+ drop: "Drop",
421
+ chooseDate: "Choose Date",
422
+ chooseTime: "Choose Time",
423
+ chooseSeats: "Choose Seats",
424
+ excludingDriver: "Excluding driver",
425
+ recentRides: "Recent Rides",
426
+ findingRoutes: "Finding the best routes…",
427
+ routesFound: "{{count}} routes found",
428
+ yourRoute: "Your route",
429
+ choosePath: "Choose the best path for your ride",
430
+ choosePickDrop: "Choose a pick-up and drop to see available routes.",
431
+ fastest: "Fastest",
432
+ confirmRoute: "Confirm Route",
433
+ choosePickup: "Choose pick-up",
434
+ chooseDrop: "Choose drop",
435
+ yourVehicles: "Your Vehicles",
436
+ selectVehicle: "Select the vehicle for this trip",
437
+ addNewVehicle: "Add New Vehicle",
438
+ ridePreferences: "Ride Preferences",
439
+ ridePreferencesSubtitle: "Let passengers know what to expect",
440
+ suggestedPrice: "Suggested Price",
441
+ basedOnRates: "Based on distance and market rates",
442
+ pricePerPassenger: "Price per passenger",
443
+ quickSelect: "Quick Select",
444
+ readyToGo: "Ready to go!",
445
+ reviewDetails: "Review your ride details below",
446
+ pricing: "Pricing",
447
+ maxEarnings: "Max earnings",
448
+ },
449
+
450
+ passenger: {
451
+ detailsTitle: "Passenger Details",
452
+ contactPassenger: "Contact Passenger",
453
+ pickupPoint: "Pickup point",
454
+ dropPoint: "Drop-off point",
455
+ seatsBooked: "{{count}} seats booked",
456
+ passengers: "Passengers",
457
+ confirmedPassengers: "Confirmed Passengers",
458
+ memberSinceYear: "Since {{year}}",
459
+ cancelPassenger: "Cancel Passenger",
460
+ cancelPassengerTitle: "Cancel Passenger?",
461
+ cancelPassengerConfirm: "Are you sure you want to cancel this passenger? This action cannot be undone.",
462
+ },
463
+
464
+ tripCompleted: {
465
+ title: "Trip Completed",
466
+ subtitle: "You've reached your destination.",
467
+ earnedLabel: "You earned",
468
+ rateNow: "Rate your experience",
469
+ headerTitle: "Ride Confirmation",
470
+ titleSuccess: "Trip Completed Successfully",
471
+ },
472
+
473
+ rating: {
474
+ rateDriverTitle: "Rate your driver",
475
+ ratePassengerTitle: "Rate your passenger",
476
+ howWasTrip: "How was your trip?",
477
+ addComment: "Add a comment",
478
+ commentPlaceholder: "Share your experience (optional)",
479
+ submitRating: "Submit Rating",
480
+ ratingsTitle: "Ratings & Reviews",
481
+ overallRating: "Overall Rating",
482
+ basedOnReviews: "Based on {{count}} reviews",
483
+ noReviews: "No reviews yet",
484
+ reviewsCount: "({{count}} reviews)",
485
+ catCommunication: "Communication",
486
+ catPunctuality: "Punctuality",
487
+ catBehaviour: "Behaviour",
488
+ catCleanliness: "Cleanliness",
489
+ shareExperience: "Share your experience",
490
+ thanksDriver: "Thanks for rating your driver!",
491
+ thanksPassenger: "Thanks for rating your passenger!",
492
+ howWasRideWith: "How was your ride with {{name}}?",
493
+ yourPassenger: "your passenger",
494
+ },
495
+
496
+ earnings: {
497
+ title: "My Earnings",
498
+ totalEarnings: "Total Earnings",
499
+ thisWeek: "This Week",
500
+ thisMonth: "This Month",
501
+ totalTrips: "Total Trips",
502
+ withdraw: "Withdraw",
503
+ recentTrips: "Recent Trips",
504
+ noEarnings: "No earnings yet",
505
+ earnedFcfa: "Earned (FCFA)",
506
+ transactions: "Transactions",
507
+ },
508
+
509
+ vehicle: {
510
+ manageTitle: "Vehicle Information",
511
+ addTitle: "Add Vehicle",
512
+ brand: "Brand",
513
+ selectBrand: "Select brand",
514
+ model: "Model",
515
+ enterModel: "Enter model",
516
+ type: "Type",
517
+ color: "Color",
518
+ registration: "Registration Number",
519
+ enterRegistration: "Enter registration number",
520
+ year: "Year",
521
+ addVehicle: "Add Vehicle",
522
+ yourVehicle: "Your Vehicle",
523
+ vehicleDetails: "Vehicle details",
524
+ noVehicle: "No vehicle added yet",
525
+ manufacturerModel: "Manufacturer & model",
526
+ selectTypeTitle: "Select Vehicle Type",
527
+ selectManufacturerTitle: "Select Manufacturer & Model",
528
+ availableSeats: "Available Seats",
529
+ capacity: "Vehicle capacity",
530
+ uploadImages: "Upload Images",
531
+ uploadImagesHint: "We require a few images of your vehicle. (Add minimum 5 images).",
532
+ uploadVehicleImage: "Upload Vehicle Image",
533
+ uploadVehicleImageSubtitle: "Add a clear photo of your vehicle",
534
+ yourVehicles: "Your Vehicles",
535
+ addNewVehicle: "Add New Vehicle",
536
+ },
537
+
538
+ license: {
539
+ manageTitle: "Driving License",
540
+ licenseNumber: "License Number",
541
+ enterLicenseNumber: "Enter license number",
542
+ expiryDate: "Expiry Date",
543
+ frontPhoto: "Front of license",
544
+ backPhoto: "Back of license",
545
+ uploadPhoto: "Upload photo",
546
+ uploadFront: "Upload front side",
547
+ uploadBack: "Upload back side",
548
+ saveLicense: "Save License",
549
+ licenseImages: "License Images",
550
+ imagesHint: "Upload a clear photo of your valid driver's license to verify your identity and eligibility to drive.",
551
+ uploadLicenseImage: "Upload License Image",
552
+ uploadLicenseImageSubtitle: "Add a clear photo of your driving license",
553
+ supportedFormats: "Support Jpg, png, Pdf, Zip",
554
+ },
555
+
556
+ profile: {
557
+ title: "Profile",
558
+ accountSettings: "Account Settings",
559
+ securityPrivacy: "Security & Privacy",
560
+ editProfile: "Edit Profile",
561
+ paymentMethods: "Payment Methods",
562
+ notifications: "Notifications",
563
+ ratings: "Ratings",
564
+ vehicleInformation: "Vehicle Information",
565
+ drivingLicense: "Driving License",
566
+ myEarnings: "My Earnings",
567
+ language: "Language",
568
+ privacyPolicy: "Privacy Policy",
569
+ termsConditions: "Terms & Conditions",
570
+ helpSupport: "Help & Support",
571
+ logOut: "Log Out",
572
+ logOutConfirm: "Are you sure you want to log out from HD WAKA?",
573
+ verifiedDriver: "Verified Driver",
574
+ verifyGovtId: "Verify your Govt. ID",
575
+ govtIdVerified: "Govt. ID Verified",
576
+ phoneVerified: "Phone Number Verified",
577
+ verifyEmail: "Verify your email",
578
+ emailVerified: "Email Verified",
579
+ trips: "Trips",
580
+ earnings: "Earnings",
581
+ },
582
+
583
+ editProfile: {
584
+ title: "Edit Profile",
585
+ changePhoto: "Change Photo",
586
+ firstName: "First Name",
587
+ lastName: "Last Name",
588
+ bio: "Bio",
589
+ bioPlaceholder: "Tell others about yourself",
590
+ aboutMe: "About Me",
591
+ nationalId: "National ID",
592
+ nationalIdHint: "Upload a clear photo of your valid national ID to verify your identity.",
593
+ },
594
+
595
+ notifications: {
596
+ title: "Notifications",
597
+ preferences: "Notification Preferences",
598
+ push: "Push Notifications",
599
+ email: "Email Notifications",
600
+ sms: "SMS Notifications",
601
+ empty: "No notifications yet",
602
+ emptySubtitle: "We'll let you know when something happens.",
603
+ markAllRead: "Mark all as read",
604
+ },
605
+
606
+ messages: {
607
+ title: "Messages",
608
+ empty: "No messages yet",
609
+ emptySubtitle: "Your conversations with drivers and passengers will appear here.",
610
+ typeMessage: "Type a message…",
611
+ send: "Send",
612
+ online: "Online",
613
+ typing: "Typing…",
614
+ repliesIn: "Replies in 1hr",
615
+ passengerCount: "1 Passenger",
616
+ },
617
+
618
+ location: {
619
+ searchTitle: "Search location",
620
+ searchPlaceholder: "Search for a place",
621
+ currentLocation: "Use current location",
622
+ recentSearches: "Recent searches",
623
+ chooseOnMap: "Choose on map",
624
+ noResults: "No places found",
625
+ pickupTitle: "Pick-up",
626
+ dropTitle: "Drop",
627
+ searching: "Searching locations…",
628
+ noResultsSubtitle: "Try a different place or check your spelling.",
629
+ whereToTitle: "Where to?",
630
+ searchHint: "Start typing to search for an address, city or landmark.",
631
+ loadError: "Couldn't load that location. Try again.",
632
+ currentLocationError: "Couldn't get your current location.",
633
+ gettingLocation: "Getting your location…",
634
+ enableAccess: "Enable location access",
635
+ unavailableRetry: "Location unavailable · Tap to retry",
636
+ current: "Current location",
637
+ },
638
+
639
+ help: {
640
+ title: "Help & Support",
641
+ faq: "Frequently Asked Questions",
642
+ contactUs: "Contact Us",
643
+ callSupport: "Call Support",
644
+ emailSupport: "Email Support",
645
+ chatWithUs: "Chat with us",
646
+ heroTitle: "How can we help?",
647
+ quickActions: "Quick actions",
648
+ liveChat: "Live Chat",
649
+ faqs: "FAQs",
650
+ reportIssue: "Report Issue",
651
+ emailUs: "Email Us",
652
+ contactDetails: "Contact details",
653
+ officeHours: "Office hours",
654
+ officeHoursValue: "Mon – Sun · 24 hours",
655
+ stillNeedHelp: "Still need help?",
656
+ },
657
+
658
+ preferences: {
659
+ luggageSmall: "Small",
660
+ luggageMedium: "Medium",
661
+ luggageLarge: "Large",
662
+ musicAny: "Any",
663
+ musicNone: "No Music",
664
+ musicLow: "Low",
665
+ musicMixed: "Mixed",
666
+ conversationQuiet: "Quiet",
667
+ conversationDepends: "Depends",
668
+ conversationTalkative: "Talkative",
669
+ title: "Ride Preferences",
670
+ subtitle: "Let passengers know what to expect",
671
+ smoking: "Smoking",
672
+ pets: "Pets",
673
+ womenOnly: "Women Only",
674
+ airConditioning: "Air Conditioning",
675
+ chargingPorts: "Charging Ports",
676
+ allowed: "Allowed",
677
+ notAllowed: "Not allowed",
678
+ restricted: "Restricted",
679
+ noRestriction: "No restriction",
680
+ available: "Available",
681
+ notAvailable: "Not available",
682
+ luggageSize: "Luggage Size",
683
+ musicPreference: "Music Preference",
684
+ conversationLevel: "Conversation Level",
685
+ },
686
+
687
+ imagePicker: {
688
+ title: "Add Photo",
689
+ takePhoto: "Take Photo",
690
+ chooseFromGallery: "Choose from Gallery",
691
+ removePhoto: "Remove Photo",
692
+ updatePhoto: "Update Photo",
693
+ subtitle: "Choose how you'd like to set your picture",
694
+ cropTitle: "Crop Photo",
695
+ openCamera: "Open Camera",
696
+ openCameraCaption: "Take a new photo",
697
+ galleryCaption: "Pick from your library",
698
+ permissionDenied: "Permission denied. Enable access in Settings.",
699
+ },
700
+ };
701
+
702
+ export type TranslationSchema = typeof en;
703
+ export default en;