From 0ebadcc3055325a62c6ccc0d0dc33423b503f9d5 Mon Sep 17 00:00:00 2001 From: Romana-Aijaz Date: Thu, 4 Jan 2024 15:02:31 +0500 Subject: [PATCH] localisation complete --- CustomerApp/.expo/packager-info.json | 4 + CustomerApp/.expo/settings.json | 4 +- CustomerApp/src/apollo/server.js | 5 +- .../Drawer/Profile/DrawerProfile.js | 5 +- .../FdSocialBtn/FdEmailBtn/FdEmailBtn.js | 3 +- .../FdSocialBtn/FdGoogleBtn/FdGoogleBtn.js | 3 +- .../components/Menu/StatusCard/StatusCard.js | 29 +++---- .../Modals/FilterModal/FilterModal.js | 17 ++-- .../src/components/MyOrders/ActiveOrders.js | 9 +- CustomerApp/src/screens/Cart/Cart.js | 4 +- CustomerApp/src/screens/Coupon/Coupon.js | 6 +- .../screens/CreateAccount/CreateAccount.js | 7 +- .../src/screens/EditAddress/EditAddress.js | 14 ++-- CustomerApp/src/screens/Help/Help.js | 8 +- CustomerApp/src/screens/Login/Login.js | 12 +-- CustomerApp/src/screens/Menu/Menu.js | 7 +- CustomerApp/src/screens/MyOrders/MyOrders.js | 16 ++-- .../src/screens/NewAddress/NewAddress.js | 16 ++-- .../src/screens/OrderDetail/OrderDetail.js | 36 ++++---- .../src/screens/Profile/ChangePassword.js | 18 ++-- CustomerApp/src/screens/Profile/Profile.js | 18 ++-- CustomerApp/src/screens/Register/Register.js | 3 +- CustomerApp/src/screens/Settings/Settings.js | 25 ++++-- CustomerApp/translations/de.js | 84 ++++++++++++++++++- CustomerApp/translations/en.js | 81 +++++++++++++++++- CustomerApp/translations/fr.js | 84 ++++++++++++++++++- CustomerApp/translations/km.js | 84 ++++++++++++++++++- CustomerApp/translations/zh.js | 84 ++++++++++++++++++- 28 files changed, 556 insertions(+), 130 deletions(-) create mode 100644 CustomerApp/.expo/packager-info.json diff --git a/CustomerApp/.expo/packager-info.json b/CustomerApp/.expo/packager-info.json new file mode 100644 index 0000000..7a72904 --- /dev/null +++ b/CustomerApp/.expo/packager-info.json @@ -0,0 +1,4 @@ +{ + "expoServerPort": 19000, + "packagerPort": 19000 +} diff --git a/CustomerApp/.expo/settings.json b/CustomerApp/.expo/settings.json index 92bc513..470dc63 100644 --- a/CustomerApp/.expo/settings.json +++ b/CustomerApp/.expo/settings.json @@ -4,5 +4,7 @@ "dev": true, "minify": false, "urlRandomness": null, - "https": false + "https": false, + "scheme": null, + "devClient": false } diff --git a/CustomerApp/src/apollo/server.js b/CustomerApp/src/apollo/server.js index 6f0793e..4465de7 100644 --- a/CustomerApp/src/apollo/server.js +++ b/CustomerApp/src/apollo/server.js @@ -446,10 +446,7 @@ export const reviewOrder = `mutation ReviewOrder( } }`; -// -// use this to push token instead of login, signup mutation? -// needs research -// + export const pushToken = `mutation PushToken($token:String!){ pushToken(token:$token){ _id diff --git a/CustomerApp/src/components/Drawer/Profile/DrawerProfile.js b/CustomerApp/src/components/Drawer/Profile/DrawerProfile.js index 57f1532..6789568 100644 --- a/CustomerApp/src/components/Drawer/Profile/DrawerProfile.js +++ b/CustomerApp/src/components/Drawer/Profile/DrawerProfile.js @@ -6,6 +6,7 @@ import { alignment } from '../../../utils/alignment' import { NAVIGATION_SCREEN } from '../../../utils/constant' import { TextDefault } from '../../Text' import useStyle from './styles' +import i18n from '../../../../i18n' function DrawerProfile() { const styles = useStyle() @@ -22,7 +23,7 @@ function DrawerProfile() { navigation.navigate(NAVIGATION_SCREEN.CreateAccount) }}> - Login/Create Account + {i18n.t('loginOrCreateAcc')} @@ -40,7 +41,7 @@ function DrawerProfile() { medium H5 style={alignment.PLxSmall}> - Welcome + {i18n.t('welcome')} { const styles = useStyle() @@ -30,7 +31,7 @@ const FdEmailBtn = props => { size={scale(19)} /> - Signup using Email + {i18n.t('signupEmail')} )} diff --git a/CustomerApp/src/components/FdSocialBtn/FdGoogleBtn/FdGoogleBtn.js b/CustomerApp/src/components/FdSocialBtn/FdGoogleBtn/FdGoogleBtn.js index 6eb30f7..3a81fc6 100644 --- a/CustomerApp/src/components/FdSocialBtn/FdGoogleBtn/FdGoogleBtn.js +++ b/CustomerApp/src/components/FdSocialBtn/FdGoogleBtn/FdGoogleBtn.js @@ -7,6 +7,7 @@ import TextDefault from '../../../components/Text/TextDefault/TextDefault' import { alignment } from '../../../utils/alignment' import { moderateScale } from '../../../utils/scaling' import useStyle from './styles' +import i18n from '../../../../i18n' const FdGoogleBtn = props => { const styles = useStyle() @@ -34,7 +35,7 @@ const FdGoogleBtn = props => { ]} /> - Signup with Google + {i18n.t('signupGoogle')} )} diff --git a/CustomerApp/src/components/Menu/StatusCard/StatusCard.js b/CustomerApp/src/components/Menu/StatusCard/StatusCard.js index 2f476d4..e00cd6e 100644 --- a/CustomerApp/src/components/Menu/StatusCard/StatusCard.js +++ b/CustomerApp/src/components/Menu/StatusCard/StatusCard.js @@ -9,32 +9,33 @@ import Spinner from "../../Spinner/Spinner"; import TextDefault from "../../Text/TextDefault/TextDefault"; import TextError from "../../Text/TextError/TextError"; import useStyle from "./styles"; +import i18n from "../../../../i18n"; export const orderStatuses = [ { - key: "PENDING", + key: i18n.t('PENDING'), status: 1, - statusText: "Your order is still pending.", + statusText: i18n.t('orderPending'), }, { - key: "ACCEPTED", + key: i18n.t("ACCEPTED"), status: 2, - statusText: "Restaurant is preparing Food.", + statusText: i18n.t('prepFood'), }, { - key: "PICKED", + key: i18n.t("PICKED"), status: 3, - statusText: "Rider is on the way.", + statusText: i18n.t('riderOnWay'), }, { - key: "DELIVERED", + key: i18n.t("DELIVERED"), status: 4, - statusText: "Order is delivered.", + statusText: i18n.t('orderDelivered'), }, { - key: "COMPLETED", + key: i18n.t("COMPLETED"), status: 5, - statusText: "Order is completed.", + statusText: i18n.t('completeOrder'), }, ]; @@ -88,20 +89,20 @@ const StatusCard = () => { - Your order ID + {i18n.t('orderId')} {item.order_id} - Status + {i18n.t('status')} - {item.order_status}{" "} + {i18n.t(item.order_status)}{" "} {/* {checkStatus(item.order_status).status}.{' '} */}( - {checkStatus(item.order_status).statusText}) + {checkStatus(i18n.t(item.order_status)).statusText}) diff --git a/CustomerApp/src/components/Modals/FilterModal/FilterModal.js b/CustomerApp/src/components/Modals/FilterModal/FilterModal.js index 8c02171..5319bba 100644 --- a/CustomerApp/src/components/Modals/FilterModal/FilterModal.js +++ b/CustomerApp/src/components/Modals/FilterModal/FilterModal.js @@ -12,6 +12,7 @@ import { moderateScale } from '../../../utils/scaling' import RadioBtn from '../../FdRadioBtn/RadioBtn' import TextDefault from '../../Text/TextDefault/TextDefault' import useStyle from './styles' +import i18n from '../../../../i18n' const FilterModal = props => { const styles = useStyle() @@ -82,7 +83,7 @@ const FilterModal = props => { alignment.PTsmall ]}> - Filters + {i18n.t('filters')} { alignItems: 'center' }}> - Reset + {i18n.t('reset')} { justifyContent: 'space-between' }}> - Show sale items only + {i18n.t('showSaleItems')} { justifyContent: 'space-between' }}> - Show stock items only + {i18n.t('showStockItems')} { - Price Range + {i18n.t('priceRange')} @@ -187,7 +188,7 @@ const FilterModal = props => { - Sorting + {i18n.t('sorting')} {keys(SORT_DATA).map(item => { @@ -222,13 +223,13 @@ const FilterModal = props => { - Apply Filter + {i18n.t('applyFilter')} props.closeFilterModal()} style={[styles.width100, alignment.PBlarge, alignment.PTlarge]}> - Close + {i18n.t('close')} diff --git a/CustomerApp/src/components/MyOrders/ActiveOrders.js b/CustomerApp/src/components/MyOrders/ActiveOrders.js index 7b34e93..bcbd1de 100644 --- a/CustomerApp/src/components/MyOrders/ActiveOrders.js +++ b/CustomerApp/src/components/MyOrders/ActiveOrders.js @@ -13,6 +13,7 @@ import TextDefault from '../Text/TextDefault/TextDefault' import TextError from '../Text/TextError/TextError' import TextLine from '../Text/TextLine/TextLine' import useStyle from './styles' +import i18n from '../../../i18n' export const orderStatuses = [ { @@ -65,7 +66,7 @@ const ActiveOrders = ({ if (!pastOrders || (pastOrders && !pastOrders.length)) { return } - return + return } const checkStatus = status => { @@ -77,7 +78,7 @@ const ActiveOrders = ({ return ( - + {activeOrders.map((item, index) => ( - {'ID: '} + {i18n.t('idVar')} {item.order_id} @@ -117,7 +118,7 @@ const ActiveOrders = ({ style={alignment.MTxSmall} bold center> - {item.order_status} + {i18n.t(item.order_status)} diff --git a/CustomerApp/src/screens/Cart/Cart.js b/CustomerApp/src/screens/Cart/Cart.js index e2b79af..10de935 100755 --- a/CustomerApp/src/screens/Cart/Cart.js +++ b/CustomerApp/src/screens/Cart/Cart.js @@ -549,7 +549,7 @@ function Cart() { style={{ width: '30%' }} medium H5> - Total + {i18n.t('total')} - Change + {i18n.t('change')} {address ? ( diff --git a/CustomerApp/src/screens/Coupon/Coupon.js b/CustomerApp/src/screens/Coupon/Coupon.js index 8b421b3..3f35e13 100644 --- a/CustomerApp/src/screens/Coupon/Coupon.js +++ b/CustomerApp/src/screens/Coupon/Coupon.js @@ -21,7 +21,7 @@ function SelectVoucher() { useLayoutEffect(() => { navigation.setOptions({ headerRight: null, - title: 'My Vouchers' + title: i18n.t('myVouchers') }) }, [navigation]) @@ -33,14 +33,14 @@ function SelectVoucher() { { color={colors.iconColor} /> - Signup with Apple + {i18n.t('signupApple')} ); @@ -241,7 +242,7 @@ const CreateAccount = () => { return ( - + { onPress={() => navigation.navigate(NAVIGATION_SCREEN.Login)} > - Already a member? Log in + {i18n.t('alreadyMember')} diff --git a/CustomerApp/src/screens/EditAddress/EditAddress.js b/CustomerApp/src/screens/EditAddress/EditAddress.js index f54c713..d493a61 100644 --- a/CustomerApp/src/screens/EditAddress/EditAddress.js +++ b/CustomerApp/src/screens/EditAddress/EditAddress.js @@ -114,7 +114,7 @@ function EditAddress() { function onCompleted(data) { FlashMessage({ - message: 'Address updated' + message: i18n.t('addressUpdated') }) // show message here navigation.goBack() @@ -189,7 +189,7 @@ function EditAddress() { - Label as + {i18n.t('labelAs')} @@ -255,7 +255,7 @@ function EditAddress() { onBlur={() => { setDeliveryAddressError( !deliveryAddress.trim().length - ? 'Delivery address is required' + ? i18n.t('addressReq') : null ) }} @@ -287,7 +287,7 @@ function EditAddress() { onBlur={() => { setDeliveryDetailsError( !deliveryDetails.trim().length - ? 'Delivery details is required' + ? i18n.t('deliveryDetailsReq') : null ) }} @@ -299,10 +299,10 @@ function EditAddress() { disabled={loading} onPress={() => { const deliveryAddressError = !deliveryAddress.trim().length - ? 'Delivery address is required' + ? i18n.t('addressReq') : null const deliveryDetailsError = !deliveryDetails.trim().length - ? 'Delivery details is required' + ? i18n.t('addressReq') : null setDeliveryAddressError(deliveryAddressError) @@ -346,7 +346,7 @@ function EditAddress() { activeOpacity={0.7} onPress={() => navigation.goBack()}> - {'cancel'} + {i18n.t('cancel')} diff --git a/CustomerApp/src/screens/Help/Help.js b/CustomerApp/src/screens/Help/Help.js index d60a582..957543d 100644 --- a/CustomerApp/src/screens/Help/Help.js +++ b/CustomerApp/src/screens/Help/Help.js @@ -10,15 +10,15 @@ import { useTheme } from '@react-navigation/native' const links = [ { - title: 'Product Page', + title: i18n.t('productPage'), url: 'https://enatega.com/enatega-single-vendor/' }, - { title: 'Docs', url: 'https://enatega.com/docs/enatega-singlevendor-introduction/' }, + { title: i18n.t('docs'), url: 'https://enatega.com/docs/enatega-singlevendor-introduction/' }, { - title: 'Blog', + title: i18n.t('blog'), url: 'https://enatega.com/blog/' }, - { title: 'About Us', url: 'https://ninjascode.com/our-team' } + { title: i18n.t('aboutUs'), url: 'https://ninjascode.com/our-team' } ] function Help() { const styles = useStyle() diff --git a/CustomerApp/src/screens/Login/Login.js b/CustomerApp/src/screens/Login/Login.js index f69d2cc..a9455a0 100755 --- a/CustomerApp/src/screens/Login/Login.js +++ b/CustomerApp/src/screens/Login/Login.js @@ -82,7 +82,7 @@ function Login() { setPasswordError(null); if (!email) { - setEmailError("Email/Phone is required"); + setEmailError(i18n.t('emailphoneReq')); result = false; } else { const emailRegex = /^\w+([\\.-]?\w+)*@\w+([\\.-]?\w+)*(\.\w{2,3})+$/; @@ -93,7 +93,7 @@ function Login() { } } if (!password) { - setPasswordError("Password is required"); + setPasswordError(i18n.t('passReq')); result = false; } return result; @@ -101,7 +101,7 @@ function Login() { async function onCompleted(data) { if (!data.login.is_active) { FlashMessage({ - message: "Can't Login,This Account is Deleted!", + message: i18n.t('cantLogin'), }); setLoading(false); } else { @@ -213,7 +213,7 @@ function Login() { - Enter your Email and Password + {i18n.t('enterUsername')} - Forgot Password? + {i18n.t('forgotPassword')} {renderLoginAction()} @@ -280,7 +280,7 @@ function Login() { } > - Create New Account + {i18n.t('createNewAcc')} diff --git a/CustomerApp/src/screens/Menu/Menu.js b/CustomerApp/src/screens/Menu/Menu.js index 6c3735c..a56c8a6 100755 --- a/CustomerApp/src/screens/Menu/Menu.js +++ b/CustomerApp/src/screens/Menu/Menu.js @@ -18,6 +18,7 @@ import { alignment } from "../../utils/alignment"; import { NAVIGATION_SCREEN } from "../../utils/constant"; import { scale } from "../../utils/scaling"; import useStyle from "./styles"; +import i18n from "../../../i18n"; // constants const CATEGORIES = gql` @@ -32,7 +33,7 @@ function Menu() { useLayoutEffect(() => { navigation.setOptions({ - title: "Home", + title: i18n.t('home'), }); }, []); @@ -51,7 +52,7 @@ function Menu() { - No item found + {i18n.t('noItems')} ); @@ -77,7 +78,7 @@ function Menu() { {isLoggedIn && profile && } - Featured + {i18n.t('featured')} ); diff --git a/CustomerApp/src/screens/MyOrders/MyOrders.js b/CustomerApp/src/screens/MyOrders/MyOrders.js index 7897fc0..3b02d35 100755 --- a/CustomerApp/src/screens/MyOrders/MyOrders.js +++ b/CustomerApp/src/screens/MyOrders/MyOrders.js @@ -21,8 +21,8 @@ import { ICONS_NAME, NAVIGATION_SCREEN } from "../../utils/constant"; import { scale } from "../../utils/scaling"; import useStyle from "./style"; -const orderStatusActive = ["PENDING", "PICKED", "ACCEPTED"]; -const orderStatusInactive = ["DELIVERED", "COMPLETED"]; +const orderStatusActive = [i18n.t("PENDING"), i18n.t("PICKED"), i18n.t("ACCEPTED")]; +const orderStatusInactive = [i18n.t("DELIVERED"), i18n.t("COMPLETED")]; function MyOrders() { const styles = useStyle(); @@ -86,7 +86,7 @@ function MyOrders() { - No Orders Found + {i18n.t('noOrdersFound')} navigation.navigate(NAVIGATION_SCREEN.Menu)} > - Start Shopping + {i18n.t('startShopping')} @@ -109,7 +109,7 @@ function MyOrders() { data={ loadingOrders || errorOrders ? [] - : orders.filter((o) => orderStatusInactive.includes(o.order_status)) + : orders.filter((o) => orderStatusInactive.includes(i18n.t(o.order_status))) } style={styles.container} contentContainerStyle={styles.contentContainer} @@ -118,10 +118,10 @@ function MyOrders() { - orderStatusActive.includes(o.order_status) + orderStatusActive.includes(i18n.t(o.order_status)) )} pastOrders={orders.filter((o) => - orderStatusInactive.includes(o.order_status) + orderStatusInactive.includes(i18n.t(o.order_status)) )} loading={loadingOrders} error={errorOrders} @@ -151,7 +151,7 @@ function MyOrders() { - {"ID: "} + {i18n.t('idVar')} {item.order_id} diff --git a/CustomerApp/src/screens/NewAddress/NewAddress.js b/CustomerApp/src/screens/NewAddress/NewAddress.js index 8dab412..e006524 100644 --- a/CustomerApp/src/screens/NewAddress/NewAddress.js +++ b/CustomerApp/src/screens/NewAddress/NewAddress.js @@ -113,7 +113,7 @@ function NewAddress() { regionChange(loc) } else { FlashMessage({ - message: 'Location permission not granted' + message: i18n.t('locaPermission') }) } } @@ -139,7 +139,7 @@ function NewAddress() { function onCompleted(data) { FlashMessage({ - message: 'Address added' + message: i18n.t('addressAdded') }) const cartAddress = route.params ? route.params.backScreen : null if (cartAddress === NAVIGATION_SCREEN.Cart) { @@ -211,7 +211,7 @@ function NewAddress() { - Label As: + {i18n.t('labelAs')} @@ -277,7 +277,7 @@ function NewAddress() { onBlur={() => { setDeliveryAddressError( !deliveryAddress.trim().length - ? 'Delivery address is required' + ? i18n.t('addressReq') : null ) }} @@ -311,7 +311,7 @@ function NewAddress() { onBlur={() => { setDeliveryDetailsError( !deliveryDetails.trim().length - ? 'Delivery details is required' + ? i18n.t('deliveryDetailsReq') : null ) }} @@ -322,10 +322,10 @@ function NewAddress() { disabled={loading} onPress={() => { const deliveryAddressError = !deliveryAddress.trim().length - ? 'Delivery address is required' + ? i18n.t('addressReq') : null const deliveryDetailsError = !deliveryDetails.trim().length - ? 'Delivery details is required' + ? i18n.t('deliveryDetailsReq') : null setDeliveryAddressError(deliveryAddressError) @@ -368,7 +368,7 @@ function NewAddress() { activeOpacity={0.7} onPress={() => navigation.goBack()}> - {'Cancel'} + {i18n.t('cancel')} diff --git a/CustomerApp/src/screens/OrderDetail/OrderDetail.js b/CustomerApp/src/screens/OrderDetail/OrderDetail.js index da431d1..a4f6291 100644 --- a/CustomerApp/src/screens/OrderDetail/OrderDetail.js +++ b/CustomerApp/src/screens/OrderDetail/OrderDetail.js @@ -51,7 +51,7 @@ function OrderDetail() { useLayoutEffect(() => { navigation.setOptions({ - headerTitle: 'Order Detail', + headerTitle: i18n.t('orderDetail'), headerRight: null }) }, [navigation]) @@ -73,7 +73,7 @@ function OrderDetail() { - {order.order_status === 'PICKED' && order.rider && ( + {i18n.t(order.order_status) === i18n.t('PICKED') && order.rider && ( - Thank You! + {i18n.t('thankYou')} - Your order ID is + {i18n.t('orderId')} {order.order_id} @@ -103,20 +103,20 @@ function OrderDetail() { bold H5 style={[alignment.MTlarge]}> - Status + {i18n.t('status')} - {order.order_status}{' '} + {i18n.t(order.order_status)}{' '} - ( {checkStatus(order.order_status).statusText}) + ( {checkStatus(i18n.t(order.order_status)).statusText}) - Delivery address: + {i18n.t('deliveryAddress')}: {order.delivery_address.delivery_address} @@ -151,7 +151,7 @@ function OrderDetail() { textColor={colors.fontMainColor} medium style={{ width: '40%' }}> - Subtotal + {i18n.t('subTotal')} - Delivery fee + {i18n.t('deliveryFee')} - Total + {i18n.t('total')} - {order.order_status === 'PICKED' && ( + {i18n.t(order.order_status) === i18n.t('PICKED') && ( - Chat with Rider + {i18n.t('chatWithRider')} )} - {(order.order_status === 'DELIVERED' || - order.order_status === 'COMPLETED') && + {(i18n.t(order.order_status) === i18n.t('DELIVERED') || + i18n.t(order.order_status) === i18n.t('COMPLETED')) && order.review && order.review.rating === 0 && ( - Any suggestion? + {i18n.t('anySuggestion')} - Review regarding your order? + {i18n.t('reviewRegarding')} - Write a review + {i18n.t('writeReview')} diff --git a/CustomerApp/src/screens/Profile/ChangePassword.js b/CustomerApp/src/screens/Profile/ChangePassword.js index 8e94dce..b300ae2 100644 --- a/CustomerApp/src/screens/Profile/ChangePassword.js +++ b/CustomerApp/src/screens/Profile/ChangePassword.js @@ -53,11 +53,11 @@ function ChangePassword(props) { if (data.changePassword) { clearFields() FlashMessage({ - message: 'Password Updated' + message: i18n.t('passChange') }) props.hideModal() } else { - Alert.alert('Error', 'Invalid password') + Alert.alert('Error', i18n.t('invalidPass')) } } @@ -70,7 +70,7 @@ function ChangePassword(props) { - Change password + {i18n.t('changePass')} @@ -78,7 +78,7 @@ function ChangePassword(props) { { - setOldPasswordError(!oldPassword ? 'Password is required' : '') + setOldPasswordError(!oldPassword ? i18n.t('passReq') : '') }} /> @@ -97,7 +97,7 @@ function ChangePassword(props) { { - setNewPasswordError(!newPassword ? 'Password is required' : '') + setNewPasswordError(!newPassword ? i18n.t('passReq') : '') }} /> @@ -117,9 +117,9 @@ function ChangePassword(props) { disabled={loading} onPress={() => { const newPasswordError = - newPassword === '' ? 'Password is required' : '' + newPassword === '' ? i18n.t('passReq') : '' const oldPasswordError = - oldPassword === '' ? 'Password is required' : '' + oldPassword === '' ? i18n.t('passReq') : '' setNewPasswordError(newPasswordError) setOldPasswordError(oldPasswordError) diff --git a/CustomerApp/src/screens/Profile/Profile.js b/CustomerApp/src/screens/Profile/Profile.js index 7e5541b..346cb67 100644 --- a/CustomerApp/src/screens/Profile/Profile.js +++ b/CustomerApp/src/screens/Profile/Profile.js @@ -83,9 +83,9 @@ function Profile() { useEffect(() => { if (backScreen) { viewHideAndShow(); - setPhoneError("Phone number is required"); + setPhoneError(i18n.t('phoneNumberRequired')); FlashMessage({ - message: "Phone Number is missing", + message: i18n.t('phoneNumberMissing'), }); } }, [backScreen]); @@ -97,7 +97,7 @@ function Profile() { function onCompleted({ updateUser }) { if (updateUser) { FlashMessage({ - message: "User's Info Updated", + message: i18n.t('userInfoUpdated'), }); if (backScreen) { navigation.goBack(); @@ -119,12 +119,12 @@ function Profile() { let res = true; if (!name.trim()) { refName.current.focus(); - setNameError("Name is required"); + setNameError(i18n.t('nameReq')); res = false; } const num = phone.trim().replace(".", ""); if (num.length < 11 || num.length > 15 || isNaN(num)) { - setPhoneError("Minimum 11 and maximum 15 characters allowed"); + setPhoneError(i18n.t('minWords')); if (res) { refPhone.current.focus(); } @@ -154,7 +154,7 @@ function Profile() { label={i18n.t("name")} ref={refName} editable={false} - defaultValue={profile.name} + defaultValue={profile.name ? profile.name : null} labelFontSize={scale(12)} fontSize={scale(12)} style={{ @@ -224,7 +224,7 @@ function Profile() { onPress={() => setModalVisible(true)} style={styles.changePassword} > - Change Password + {i18n.t('changePass')} - {"Cancel"} + {i18n.t('cancel')} @@ -394,7 +394,7 @@ function Profile() { textColor={colors.fontSecondColor} style={alignment.MBsmall} > - All rights are reserved by Enatega + {i18n.t('rightsReserved')} diff --git a/CustomerApp/src/screens/Register/Register.js b/CustomerApp/src/screens/Register/Register.js index ca635a4..76c9cc5 100755 --- a/CustomerApp/src/screens/Register/Register.js +++ b/CustomerApp/src/screens/Register/Register.js @@ -31,6 +31,7 @@ import { ICONS_NAME, NAVIGATION_SCREEN } from '../../utils/constant' import country_codes from '../../utils/country_codes' import { scale, verticalScale } from '../../utils/scaling' import useStyle from './styles' +import i18n from '../../../i18n' const CREATEUSER = gql` ${createUser} @@ -309,7 +310,7 @@ function Register() { navigation.navigate(NAVIGATION_SCREEN.ForgotPassword) }> - Forgot password? + {i18n.t('forgotPassword')} diff --git a/CustomerApp/src/screens/Settings/Settings.js b/CustomerApp/src/screens/Settings/Settings.js index b4eb39a..9896176 100644 --- a/CustomerApp/src/screens/Settings/Settings.js +++ b/CustomerApp/src/screens/Settings/Settings.js @@ -159,7 +159,14 @@ function Settings() { "enatega-language", languageTypes[languageInd].code ); - Updates.reloadAsync(); + i18n.locale = languageTypes[languageInd].code + const lang = await AsyncStorage.getItem("enatega-language"); + console.log(lang) + const defLang = languageTypes.findIndex((el) => el.code === lang); + const langName = languageTypes[defLang].value; + activeRadioSetter(defLang); + languageNameSetter(langName); + // Updates.reloadAsync(); } }; @@ -169,7 +176,7 @@ function Settings() { function onCompleted() { FlashMessage({ - message: "Notification Status Updated", + message: i18n.t('notificationUpdate'), }); } @@ -242,7 +249,7 @@ function Settings() { medium H5 > - Language + {i18n.t('language')} ({languageName}) @@ -275,7 +282,7 @@ function Settings() { textColor={colors.statusSecondColor} > {" "} - Receive Special Offers{" "} + {i18n.t('receiveOffers')}{" "} {" "} - Get updates on your order status!{" "} + {i18n.t('getUpdatesText')}{" "} {" "} - Delete Account{" "} + {i18n.t('delAcc')}{" "} - Version: {Constants.manifest.version} + {/* Version: {Constants.manifest.version} */} @@ -373,7 +380,7 @@ function Settings() { > - Are you Sure you want to delete Account? + {i18n.t('delAccText')} onClose()} > - Cancel + {i18n.t('cancel')} diff --git a/CustomerApp/translations/de.js b/CustomerApp/translations/de.js index 7526468..041f871 100644 --- a/CustomerApp/translations/de.js +++ b/CustomerApp/translations/de.js @@ -136,5 +136,87 @@ export const de = { coupanFailed: 'Gutschein nicht verfügbar', invalidCoupan: 'Ungültiger Gutschein', validateItems: 'Artikel vor dem Auschecken in den Warenkorb legen', - validateDelivery: 'Stellen Sie die Lieferadresse vor dem Auschecken ein' + validateDelivery: 'Stellen Sie die Lieferadresse vor dem Auschecken ein', + language: 'Sprache', + getUpdatesText: 'Erhalten Sie Updates zum Bestellstatus!', + delAcc: 'Konto löschen', + delAccText: 'Sind Sie sicher, dass Sie das Konto löschen möchten?', + cancel: 'Abbrechen', + receiveOffers: 'Spezielle Angebote erhalten', + notificationUpdate: 'Benachrichtigungsstatus aktualisiert', + notificationsNotWorking: "Benachrichtigungen funktionieren nicht im Simulator", + loginOrCreateAcc: "Anmelden/Konto erstellen", + welcome: "Willkommen", + titleSettings: 'Einstellungen', + home: 'Startseite', + noItems: 'Kein Artikel gefunden', + featured: 'Vorgestellt', + filters: 'Filter', + reset: 'Zurücksetzen', + showSaleItems: 'Nur Verkaufsartikel anzeigen', + showStockItems: 'Nur Lagerartikel anzeigen', + priceRange: 'Preisspanne', + sorting: 'Sortierung', + applyFilter: 'Filter anwenden', + close: 'Schließen', + phoneNumberRequired: "Telefonnummer ist erforderlich", +phoneNumberMissing: "Telefonnummer fehlt", +userInfoUpdated: "Benutzerinformationen aktualisiert", +nameReq: "Name ist erforderlich", +minWords: "Mindestens 11 und maximal 15 Zeichen erlaubt", +rightsReserved: "Alle Rechte vorbehalten von Enatega", +changePass: "Passwort ändern", +currentPass: "Aktuelles Passwort", +passReq: "Passwort ist erforderlich", +newPass: "Neues Passwort", +apply: "Anwenden", +invalidPass: "Ungültiges Passwort", +passChange: "Passwort aktualisiert", +noOrdersFound: "Keine Bestellungen gefunden", +startShopping: "Mit dem Einkaufen beginnen", +reOrder: "Erneut bestellen", +smthWrong: "Etwas ist falsch", +noOrdersAssigned: "Noch keine Bestellungen zugewiesen!", +oldOrder: "Alte Bestellung", +activeOrder: "Aktive Bestellung", +idVar: 'ID: ', +addressUpdated: 'Adresse aktualisiert', +labelAs: 'Als bezeichnen', +addressReq: 'Lieferadresse erforderlich', +deliveryDetailsReq: 'Lieferdetails erforderlich', +locaPermission: 'Standortberechtigung nicht erteilt', +addressAdded: 'Adresse hinzugefügt', +productPage: 'Produktseite', +docs: 'Dokumente', +blog: 'Blog', +aboutUs: 'Über uns', +myVouchers: 'Meine Gutscheine', +typeVoucherCode: "Gutscheincode eingeben", +enterVoucherCode: "Geben Sie Ihren Gutscheincode ein", +status: 'Status', +anySuggestion: 'Irgendwelche Vorschläge?', +reviewRegarding: 'Bewertung zu Ihrer Bestellung?', +writeReview: 'Eine Bewertung schreiben', +chatWithRider: 'Mit dem Fahrer chatten', +signupGoogle: 'Mit Google anmelden', +signupEmail: 'Anmeldung mit E-Mail', +signup: 'Anmelden', +signupApple: 'Mit Apple anmelden', +alreadyMember: 'Bereits Mitglied? Einloggen', +enterUsername: 'Geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein', +createNewAcc: 'Neues Konto erstellen', +emailphoneReq: "E-Mail/Telefonnummer ist erforderlich", +invalidMail: "Ungültige E-Mail/Telefonnummer", +passReq: "Passwort ist erforderlich", +cantLogin: "Anmeldung nicht möglich, dieses Konto wurde gelöscht!", +orderPending: "Ihre Bestellung wird noch bearbeitet.", +prepFood: "Das Restaurant bereitet das Essen vor.", +riderOnWay: "Der Fahrer ist unterwegs.", +orderDelivered: "Die Bestellung wurde geliefert.", +completeOrder: "Die Bestellung ist abgeschlossen.", +PENDING: "AUSSTEHEND", +ACCEPTED: 'AKZEPTIERT', +PICKED: "ABGEHOLT", +DELIVERED: "GELIEFERT", +COMPLETED: "ABGESCHLOSSEN" } diff --git a/CustomerApp/translations/en.js b/CustomerApp/translations/en.js index 91c00e8..7d0c9f4 100644 --- a/CustomerApp/translations/en.js +++ b/CustomerApp/translations/en.js @@ -139,5 +139,84 @@ export const en = { coupanFailed: 'Coupon Unavailable', invalidCoupan: 'Invalid Coupon', validateItems: 'Add items to cart before checkout', - validateDelivery: 'Set delivery address before checkout' + validateDelivery: 'Set delivery address before checkout', + language: 'Language', + getUpdatesText: 'Get updates on your order status!', + delAcc: 'Delete Account', + delAccText: 'Are you Sure you want to delete Account?', + cancel:'Cancel', + receiveOffers: 'Receive Special Offers', + notificationUpdate: "Notification Status Updated", + notificationsNotWorking: "Notification do not work on simulator", + loginOrCreateAcc: "Login/Create Account", + welcome: "Welcome", + noItems: 'No item found', + featured: 'Featured', + filters: 'Filters', + reset: 'Reset', + showSaleItems: 'Show sale items only', + showStockItems: 'Show stock items only', + priceRange: 'Price Range', + sorting: 'Sorting', + applyFilter: 'Apply Filter', + close: 'Close', + phoneNumberRequired: "Phone number is required", + phoneNumberMissing: "Phone Number is missing", + userInfoUpdated: "User's Info Updated", + nameReq: "Name is required", + minWords: "Minimum 11 and maximum 15 characters allowed", + rightsReserved: "All rights are reserved by Enatega", + changePass: "Change Password", + currentPass: "Current Password", + passReq: 'Password is required', + newPass: "New Password", + invalidPass: 'Invalid password', + passChange: 'Password Updated', + noOrdersFound: 'No Orders Found', + startShopping: 'Start Shopping', + reOrder: "Re-Order", + smthWrong: "Something is worng", + noOrdersAssigned: "No Orders Assigned yet!", + oldOrder: "Old Order", + activeOrder: "Active Order", + idVar: 'ID: ', + addressUpdated: 'Address updated', + labelAs: 'Label as', + addressReq: 'Delivery address is required', + deliveryDetailsReq: 'Delivery details is required', + locaPermission: 'Location permission not granted', + addressAdded: 'Address added', + productPage: 'Product Page', + docs: 'Docs', + blog: 'Blog', + aboutUs: 'About Us', + myVouchers: 'My Vouchers', + typeVoucherCode: "TYPe voucher code", + enterVoucherCode: "Enter your voucher code", + status: 'Status', + anySuggestion: 'Any suggestion?', + reviewRegarding: 'Review regarding your order?', + writeReview: 'Write a review', + chatWithRider: 'Chat with Rider', + signupGoogle: 'Signup with Google', + signupEmail: 'Signup using Email', + signup: 'Signup', + signupApple: 'Signup with Apple', + alreadyMember: 'Already a member? Log in', + enterUsername: 'Enter your Email and Password', + createNewAcc: 'Create New Account', + emailphoneReq: "Email/Phone is required", + invalidMail: "Invalid Email/Phone", + passReq: "Password is required", + cantLogin: "Can't Login,This Account is Deleted!", + orderPending: "Your order is still pending.", + prepFood: "Restaurant is preparing Food.", + riderOnWay: "Rider is on the way.", + orderDelivered: "Order is delivered.", + completeOrder: "Order is completed.", + PENDING: "PENDING", + ACCEPTED: 'ACCEPTED', + PICKED: "PICKED", + DELIVERED: "DELIVERED", + COMPLETED: "COMPLETED" } diff --git a/CustomerApp/translations/fr.js b/CustomerApp/translations/fr.js index 4d680f7..122b542 100644 --- a/CustomerApp/translations/fr.js +++ b/CustomerApp/translations/fr.js @@ -137,5 +137,87 @@ export const fr = { coupanFailed: 'Coupon non disponible', invalidCoupan: 'Coupon non valide', validateItems: 'Ajouter des articles au panier avant le paiement', - validateDelivery: "Définir l'adresse de livraison avant le paiement" + validateDelivery: "Définir l'adresse de livraison avant le paiement", + language: 'Langue', + getUpdatesText: 'Obtenez des mises à jour sur le statut de votre commande !', + delAcc: 'Supprimer le compte', + delAccText: 'Êtes-vous sûr de vouloir supprimer le compte ?', + cancel: 'Annuler', + receiveOffers: 'Recevoir des offres spéciales', + notificationUpdate: 'Statut de notification mis à jour', + notificationsNotWorking: "Les notifications ne fonctionnent pas sur le simulateur", + loginOrCreateAcc: "Connexion/Créer un compte", + welcome: "Bienvenue", + titleSettings: 'Paramètres', + home: 'Accueil', + noItems: 'Aucun élément trouvé', + featured: 'En vedette', + filters: 'Filtres', + reset: 'Réinitialiser', + showSaleItems: 'Afficher uniquement les articles en vente', + showStockItems: 'Afficher uniquement les articles en stock', + priceRange: 'Plage de prix', + sorting: 'Tri', + applyFilter: 'Appliquer le filtre', + close: 'Fermer', + phoneNumberRequired: "Numéro de téléphone requis", +phoneNumberMissing: "Numéro de téléphone manquant", +userInfoUpdated: "Informations de l'utilisateur mises à jour", +nameReq: "Nom requis", +minWords: "Minimum 11 et maximum 15 caractères autorisés", +rightsReserved: "Tous les droits sont réservés par Enatega", +changePass: "Changer le mot de passe", +currentPass: "Mot de passe actuel", +passReq: "Mot de passe requis", +newPass: "Nouveau mot de passe", +apply: "Appliquer", +invalidPass: "Mot de passe invalide", +passChange: "Mot de passe mis à jour", +noOrdersFound: "Aucune commande trouvée", +startShopping: "Commencer les achats", +reOrder: "Recommander", +smthWrong: "Quelque chose ne va pas", +noOrdersAssigned: "Aucune commande attribuée pour le moment !", +oldOrder: "Ancienne commande", +activeOrder: "Commande active", +idVar: 'ID : ', +addressUpdated: 'Adresse mise à jour', +labelAs: 'Étiqueter comme', +addressReq: 'Adresse de livraison requise', +deliveryDetailsReq: 'Détails de livraison requis', +locaPermission: 'Autorisation de localisation non accordée', +addressAdded: 'Adresse ajoutée', +productPage: 'Page produit', +docs: 'Docs', +blog: 'Blog', +aboutUs: 'À propos de nous', +myVouchers: 'Mes bons', +typeVoucherCode: "Saisir le code du bon", +enterVoucherCode: "Entrez votre code de bon", +status: 'Statut', +anySuggestion: 'Des suggestions ?', +reviewRegarding: 'Avis concernant votre commande ?', +writeReview: 'Écrire un avis', +chatWithRider: 'Discuter avec le livreur', +signupGoogle: 'Inscription avec Google', +signupEmail: 'Inscription par e-mail', +signup: 'Sinscrire', +signupApple: 'Inscription avec Apple', +alreadyMember: 'Déjà membre ? Se connecter', +enterUsername: 'Entrez votre adresse e-mail et votre mot de passe', +createNewAcc: 'Créer un nouveau compte', +emailphoneReq: "E-mail/Téléphone requis", +invalidMail: "E-mail/Téléphone invalide", +passReq: "Mot de passe requis", +cantLogin: "Impossible de se connecter, ce compte a été supprimé !", +orderPending: "Votre commande est en attente.", +prepFood: "Le restaurant prépare la nourriture.", +riderOnWay: "Le livreur est en route.", +orderDelivered: "La commande a été livrée.", +completeOrder: "La commande est terminée.", +PENDING: "EN ATTENTE", +ACCEPTED: 'ACCEPTÉE', +PICKED: "ENLEVÉE", +DELIVERED: "LIVRÉE", +COMPLETED: "TERMINÉE" } diff --git a/CustomerApp/translations/km.js b/CustomerApp/translations/km.js index 6cd9087..f1969d1 100644 --- a/CustomerApp/translations/km.js +++ b/CustomerApp/translations/km.js @@ -132,5 +132,87 @@ export const km = { coupanFailed: 'គូប៉ុងមិនមានទេ', invalidCoupan: 'គូប៉ុងមិនត្រឹមត្រូវ', validateItems: 'បន្ថែមរបស់របរទៅរទេះមុនពេលឆែក', - validateDelivery: 'កំណត់អាសយដ្ឋានដឹកជញ្ជូនមុនពេលពិនិត្យចេញ' + validateDelivery: 'កំណត់អាសយដ្ឋានដឹកជញ្ជូនមុនពេលពិនិត្យចេញ', + language: 'ភាសា', + getUpdatesText: 'ទទួល​បាន​ការ​ធ្វើ​បច្ចុប្បន្ន​ភាព​លើ​ស្ថាន​ភាព​ការ​បញ្ជាទិញ​របស់​អ្នក!', + delAcc: 'លុប​គណនី', + delAccText: 'តើ​អ្នក​ប្រាកដ​ថា​តើ​ចង់​លុប​គណនី​ឬ​ទេ?', + cancel: 'បោះបង់', + receiveOffers: 'ទទួល​បាន​ការ​ផ្តល់​ជូន​ពិសេស', + notificationUpdate: 'ការ​ប្រកាស​ការ​ជូន​ដំណឹង​ត្រូវបាន​ធ្វើ​បច្ចុប្បន្ន', + notificationsNotWorking: "ការ​ជូន​ដំណឹង​មិន​ដំណើរ​ការ​លើ​ម៉ាស៊ីន​សម្រាប់​ប្រើប្រាស់តំណល", + loginOrCreateAcc: "ចូល​ប្រើ/បង្កើត​គណនី", + welcome: "ស្វាគមន៍", + titleSettings: 'ការ​កំណត់', + home: 'ទំព័រ​ដើម', + noItems: 'រក​មិន​ឃើញ​ទេ', + featured: 'ផ្សេងៗ', + filters: 'តម្រង', + reset: 'កំណត់​ឡើងវិញ', + showSaleItems: 'បង្ហាញ​ទំនិញ​លក់​តែប៉ុណ្ណោះ', + showStockItems: 'បង្ហាញ​ទំនិញ​ស្តុក​តែប៉ុណ្ណោះ', + priceRange: 'ជម្រើស​តម្លៃ', + sorting: 'តម្រៀបតាម', + applyFilter: 'អនុវត្ត​តម្រង', + close: 'បិទ', + phoneNumberRequired: "ត្រូវការលេខទូរស័ព្ទ", +phoneNumberMissing: "ខុសលេខទូរស័ព្ទ", +userInfoUpdated: "ព័ត៌មានអ្នកប្រើប្រាស់ត្រូវបានធ្វើបច្ចុប្បន្នភាព", +nameReq: "ត្រូវការឈ្មោះ", +minWords: "អត្ថបទអប្បាយបន្ទាប់ពី 11 និងអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណ", +rightsReserved: "រក្សាសិទ្ធិទាំងអស់គ្នាដោយ Enatega", +changePass: "ប្ដូរលេខសម្ងាត់", +currentPass: "លេខសម្ងាត់បច្ចុប្បន្ន", +passReq: "ត្រូវការលេខសម្ងាត់", +newPass: "លេខសម្ងាត់ថ្មី", +apply: "អនុវត្ត", +invalidPass: "លេខសម្ងាត់មិនត្រឹមត្រូវ", +passChange: "លេខសម្ងាត់ត្រូវបានធ្វើបច្ចុប្បន្នភាព", +noOrdersFound: "រកមិនឃើញការបញ្ជាទិញ", +startShopping: "ចាប់ផ្តើមទិញ", +reOrder: "កម្មង់ម្តងទៀត", +smthWrong: "មានអ្វីមួយខុស", +noOrdersAssigned: "មិនទាន់បានចាក់ការបញ្ជាទិញទេ!", +oldOrder: "ការបញ្ជាទិញចាស់", +activeOrder: "ការបញ្ជាទិញដែលមានសកម្ម", +idVar: 'លេខសម្គាល់: ', +addressUpdated: 'អាសយដ្ឋានត្រូវបានធ្វើបច្ចុប្បន្នភាព', +labelAs: 'ស្លាកជាដើម', +addressReq: 'អាសយដ្ឋានការដឹកជញ្ជូនត្រូវការ', +deliveryDetailsReq: 'សេចក្ដីលម្អិតនៃការដឹកជញ្ជូនត្រូវការ', +locaPermission: 'ការអនុញ្ញាតឱ្យតាមដានទីតាំងមិនបានទទួលយក', +addressAdded: 'បាន​បន្ថែម​អាសយដ្ឋាន', +productPage: 'ទំព័រផលិតផល', +docs: 'ឯកសារ', +blog: 'ប្លក់', +aboutUs: 'អំពី​យើង', +myVouchers: 'លេខកូដ​វេបសាយ​របស់​ខ្ញុំ', +typeVoucherCode: "បញ្ចូល​លេខកូដ​វេបសាយ", +enterVoucherCode: "បញ្ចូល​លេខកូដ​វេបសាយ​របស់​អ្នក", +status: 'ស្ថានភាព', +anySuggestion: 'មានអំណាចណាស់មែនទេ?', +reviewRegarding: 'ពិនិត្យឡើងវិញអំពីការបញ្ជាទិញរបស់អ្នក?', +writeReview: 'សរសេរពិន្ទុ', +chatWithRider: 'ជជែកជាមួយអ្នកបើកដំណើរ', +signupGoogle: 'ចុះឈ្មោះជាមួយ Google', +signupEmail: 'ចុះឈ្មោះតាមអ៊ីម៉ែល', +signup: 'ចុះឈ្មោះ', +signupApple: 'ចុះឈ្មោះជាមួយ Apple', +alreadyMember: 'រួចហើយរួចចូលក្នុង', +enterUsername: 'បញ្ចូលអ៊ីម៉ែលរបស់អ្នក និងពាក្យសម្ងាត់', +createNewAcc: 'បង្កើតគណនីថ្មី', +emailphoneReq: "ត្រូវការអ៊ីម៉ែល/លេខទូរស័ព្ទ", +invalidMail: "អ៊ីម៉ែល/លេខទូរស័ព្ទ​មិនត្រឹមត្រូវ", +passReq: "ត្រូវការពាក្យសម្ងាត់", +cantLogin: "មិនអាចចូលបានទេ, គណនីនេះត្រូវបានលុប!", +orderPending: "ការបញ្ជាទិញរបស់អ្នកមិនទាន់ទទួលយកទេ។", +prepFood: "ភោជនីដែលកំពុងរៀបចំអាហារ។", +riderOnWay: "អ្នកបើកដំណើរកំពង់កោះមាន់នៅលើផ្លូវ។", +orderDelivered: "ការបញ្ជាទិញបានដឹកជញ្ជូន។", +completeOrder: "ការបញ្ជាទិញបានបញ្ចប់។", +PENDING: "កំពុងរង់ចាំ", +ACCEPTED: 'បានទទួលយក', +PICKED: "បានជូនយក", +DELIVERED: "បានដឹកជញ្ជូន", +COMPLETED: "បានបញ្ចប់" } diff --git a/CustomerApp/translations/zh.js b/CustomerApp/translations/zh.js index bd3170a..0769de7 100644 --- a/CustomerApp/translations/zh.js +++ b/CustomerApp/translations/zh.js @@ -128,5 +128,87 @@ export const zh = { coupanFailed: '优惠券不可用', invalidCoupan: '优惠券无效', validateItems: '结帐前将商品添加到购物车', - validateDelivery: '结帐前设置送货地址' + validateDelivery: '结帐前设置送货地址', + language: '语言', + getUpdatesText: '获取订单状态更新!', + delAcc: '删除账户', + delAccText: '您确定要删除账户吗?', + cancel: '取消', + receiveOffers: '接收特别优惠', + notificationUpdate: '通知状态已更新', + notificationsNotWorking: "通知在模拟器上无法工作", + loginOrCreateAcc: "登录/创建帐户", + welcome: "欢迎", + titleSettings: '设置', + home: '主页', + noItems: '未找到物品', + featured: '特色', + filters: '筛选', + reset: '重置', + showSaleItems: '仅显示特价商品', + showStockItems: '仅显示有库存商品', + priceRange: '价格范围', + sorting: '排序', + applyFilter: '应用筛选', + close: '关闭', + phoneNumberRequired: "需要电话号码", +phoneNumberMissing: "缺少电话号码", +userInfoUpdated: "用户信息已更新", +nameReq: "需要姓名", +minWords: "最少11个字符,最多15个字符", +rightsReserved: "版权所有,Enatega保留所有权利", +changePass: "更改密码", +currentPass: "当前密码", +passReq: "需要密码", +newPass: "新密码", +apply: "应用", +invalidPass: "无效密码", +passChange: "密码已更新", +noOrdersFound: "未找到订单", +startShopping: "开始购物", +reOrder: "重新下单", +smthWrong: "出现问题", +noOrdersAssigned: "尚未分配订单!", +oldOrder: "旧订单", +activeOrder: "活跃订单", +idVar: 'ID:', +addressUpdated: '地址已更新', +labelAs: '标记为', +addressReq: '需要交付地址', +deliveryDetailsReq: '需要交付细节', +locaPermission: '未授予位置权限', +addressAdded: '已添加地址', +productPage: '产品页面', +docs: '文档', +blog: '博客', +aboutUs: '关于我们', +myVouchers: '我的优惠券', +typeVoucherCode: "输入优惠券代码", +enterVoucherCode: "输入您的优惠券代码", +status: '状态', +anySuggestion: '有什么建议吗?', +reviewRegarding: '关于您的订单的评论?', +writeReview: '撰写评论', +chatWithRider: '与骑手聊天', +signupGoogle: '使用 Google 注册', +signupEmail: '使用电子邮件注册', +signup: '注册', +signupApple: '使用 Apple 注册', +alreadyMember: '已经是会员?登录', +enterUsername: '输入您的电子邮件和密码', +createNewAcc: '创建新帐户', +emailphoneReq: "需要电子邮件/电话号码", +invalidMail: "无效的电子邮件/电话号码", +passReq: "需要密码", +cantLogin: "无法登录,此帐户已被删除!", +orderPending: "您的订单仍在等待中。", +prepFood: "餐厅正在准备食物。", +riderOnWay: "骑手正在途中。", +orderDelivered: "订单已送达。", +completeOrder: "订单已完成。", +PENDING: "待处理", +ACCEPTED: '已接受', +PICKED: "已取货", +DELIVERED: "已送达", +COMPLETED: "已完成" }