localisation complete
This commit is contained in:
parent
3369c6a011
commit
0ebadcc305
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"expoServerPort": 19000,
|
||||
"packagerPort": 19000
|
||||
}
|
|
@ -4,5 +4,7 @@
|
|||
"dev": true,
|
||||
"minify": false,
|
||||
"urlRandomness": null,
|
||||
"https": false
|
||||
"https": false,
|
||||
"scheme": null,
|
||||
"devClient": false
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
}}>
|
||||
<TextDefault textColor={styles.whiteFont.color} bold H4>
|
||||
Login/Create Account
|
||||
{i18n.t('loginOrCreateAcc')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
@ -40,7 +41,7 @@ function DrawerProfile() {
|
|||
medium
|
||||
H5
|
||||
style={alignment.PLxSmall}>
|
||||
Welcome
|
||||
{i18n.t('welcome')}
|
||||
</TextDefault>
|
||||
<TextDefault
|
||||
textColor={styles.whiteFont.color}
|
||||
|
|
|
@ -10,6 +10,7 @@ import { ICONS_NAME } from '../../../utils/constant'
|
|||
import { scale } from '../../../utils/scaling'
|
||||
import { CustomIcon } from '../../CustomIcon'
|
||||
import useStyle from './styles'
|
||||
import i18n from '../../../../i18n'
|
||||
|
||||
const FdEmailBtn = props => {
|
||||
const styles = useStyle()
|
||||
|
@ -30,7 +31,7 @@ const FdEmailBtn = props => {
|
|||
size={scale(19)}
|
||||
/>
|
||||
<TextDefault style={alignment.MLxSmall} bold>
|
||||
Signup using Email
|
||||
{i18n.t('signupEmail')}
|
||||
</TextDefault>
|
||||
</>
|
||||
)}
|
||||
|
|
|
@ -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 => {
|
|||
]}
|
||||
/>
|
||||
<TextDefault style={alignment.MLlarge} bold>
|
||||
Signup with Google
|
||||
{i18n.t('signupGoogle')}
|
||||
</TextDefault>
|
||||
</>
|
||||
)}
|
||||
|
|
|
@ -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 = () => {
|
|||
<View key={index} style={styles.statusContainer}>
|
||||
<View style={styles.textContainer}>
|
||||
<TextDefault H5 medium textColor={styles.lightText.color}>
|
||||
Your order ID
|
||||
{i18n.t('orderId')}
|
||||
</TextDefault>
|
||||
<TextDefault style={{ ...alignment.PBlarge }} H4 bolder>
|
||||
{item.order_id}
|
||||
</TextDefault>
|
||||
<TextDefault H5 textColor={colors.placeHolderColor} medium>
|
||||
Status
|
||||
{i18n.t('status')}
|
||||
</TextDefault>
|
||||
|
||||
<TextDefault textColor={"#00b9c6"} H5 medium>
|
||||
{item.order_status}{" "}
|
||||
{i18n.t(item.order_status)}{" "}
|
||||
<TextDefault numberOfLines={2} medium>
|
||||
{/* {checkStatus(item.order_status).status}.{' '} */}(
|
||||
{checkStatus(item.order_status).statusText})
|
||||
{checkStatus(i18n.t(item.order_status)).statusText})
|
||||
</TextDefault>
|
||||
</TextDefault>
|
||||
</View>
|
||||
|
|
|
@ -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
|
||||
]}>
|
||||
<TextDefault H5 bold>
|
||||
Filters
|
||||
{i18n.t('filters')}
|
||||
</TextDefault>
|
||||
<TouchableOpacity
|
||||
onPress={clearItems}
|
||||
|
@ -91,7 +92,7 @@ const FilterModal = props => {
|
|||
alignItems: 'center'
|
||||
}}>
|
||||
<TextDefault H5 bold textColor={colors.buttonBackgroundBlue}>
|
||||
Reset
|
||||
{i18n.t('reset')}
|
||||
</TextDefault>
|
||||
<MaterialIcons
|
||||
name="refresh"
|
||||
|
@ -109,7 +110,7 @@ const FilterModal = props => {
|
|||
justifyContent: 'space-between'
|
||||
}}>
|
||||
<TextDefault H5 bold textColor={colors.placeHolderColor}>
|
||||
Show sale items only
|
||||
{i18n.t('showSaleItems')}
|
||||
</TextDefault>
|
||||
<Switch
|
||||
trackColor={{ false: '#767577', true: colors.tagColor }}
|
||||
|
@ -127,7 +128,7 @@ const FilterModal = props => {
|
|||
justifyContent: 'space-between'
|
||||
}}>
|
||||
<TextDefault H5 bold textColor={colors.placeHolderColor}>
|
||||
Show stock items only
|
||||
{i18n.t('showStockItems')}
|
||||
</TextDefault>
|
||||
<Switch
|
||||
trackColor={{ false: '#767577', true: colors.tagColor }}
|
||||
|
@ -142,7 +143,7 @@ const FilterModal = props => {
|
|||
|
||||
<View style={styles.priceRangeRow}>
|
||||
<TextDefault bold H5>
|
||||
Price Range
|
||||
{i18n.t('priceRange')}
|
||||
</TextDefault>
|
||||
<View>
|
||||
<TextDefault bold H5 center>
|
||||
|
@ -187,7 +188,7 @@ const FilterModal = props => {
|
|||
</View>
|
||||
</View>
|
||||
<TextDefault bold H5 style={alignment.MTlarge}>
|
||||
Sorting
|
||||
{i18n.t('sorting')}
|
||||
</TextDefault>
|
||||
<View style={[alignment.PLlarge, alignment.PRlarge, alignment.MTmedium]}>
|
||||
{keys(SORT_DATA).map(item => {
|
||||
|
@ -222,13 +223,13 @@ const FilterModal = props => {
|
|||
<View style={[alignment.PLlarge, alignment.PRlarge]}>
|
||||
<TouchableOpacity style={styles.applyBtn} onPress={applyFilters}>
|
||||
<TextDefault H5 bold textColor={colors.lightBackground}>
|
||||
Apply Filter
|
||||
{i18n.t('applyFilter')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
<TouchableOpacity
|
||||
onPress={() => props.closeFilterModal()}
|
||||
style={[styles.width100, alignment.PBlarge, alignment.PTlarge]}>
|
||||
<TextDefault center>Close</TextDefault>
|
||||
<TextDefault center>{i18n.t('close')}</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
</View>
|
||||
|
|
|
@ -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 <TextDefault> </TextDefault>
|
||||
}
|
||||
return <TextLine headerName="Old Order" textWidth="34%" lineWidth="28%" />
|
||||
return <TextLine headerName={i18n.t('oldOrder')} textWidth="34%" lineWidth="28%" />
|
||||
}
|
||||
|
||||
const checkStatus = status => {
|
||||
|
@ -77,7 +78,7 @@ const ActiveOrders = ({
|
|||
|
||||
return (
|
||||
<React.Fragment>
|
||||
<TextLine headerName="Active Order" textWidth="40%" lineWidth="26%" />
|
||||
<TextLine headerName={i18n.t('activeOrder')} textWidth="40%" lineWidth="26%" />
|
||||
{activeOrders.map((item, index) => (
|
||||
<TouchableOpacity
|
||||
activeOpacity={0.7}
|
||||
|
@ -97,7 +98,7 @@ const ActiveOrders = ({
|
|||
</View>
|
||||
<View style={styles.infoContainer}>
|
||||
<TextDefault H5 bolder style={alignment.MBxSmall}>
|
||||
{'ID: '}
|
||||
{i18n.t('idVar')}
|
||||
{item.order_id}
|
||||
</TextDefault>
|
||||
<TextDefault line={3} textColor={colors.tagColor} H5 bold>
|
||||
|
@ -117,7 +118,7 @@ const ActiveOrders = ({
|
|||
style={alignment.MTxSmall}
|
||||
bold
|
||||
center>
|
||||
{item.order_status}
|
||||
{i18n.t(item.order_status)}
|
||||
</TextDefault>
|
||||
</View>
|
||||
</View>
|
||||
|
|
|
@ -549,7 +549,7 @@ function Cart() {
|
|||
style={{ width: '30%' }}
|
||||
medium
|
||||
H5>
|
||||
Total
|
||||
{i18n.t('total')}
|
||||
</TextDefault>
|
||||
<TextDefault
|
||||
numberOfLines={1}
|
||||
|
@ -628,7 +628,7 @@ function Cart() {
|
|||
{i18n.t('deliveryAddress')}
|
||||
</TextDefault>
|
||||
<TextDefault H5 textColor={colors.buttonBackgroundBlue}>
|
||||
Change
|
||||
{i18n.t('change')}
|
||||
</TextDefault>
|
||||
</View>
|
||||
{address ? (
|
||||
|
|
|
@ -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() {
|
|||
<WrapperView>
|
||||
<View style={styles.container}>
|
||||
<TextLine
|
||||
headerName="TYPe voucher code"
|
||||
headerName={i18n.t('typeVoucherCode')}
|
||||
textWidth="50%"
|
||||
lineWidth="25%"
|
||||
/>
|
||||
<View style={styles.upperContainer}>
|
||||
<View style={{ width: '70%' }}>
|
||||
<TextField
|
||||
label="Enter your voucher code"
|
||||
label={i18n.t('enterVoucherCode')}
|
||||
labelFontSize={scale(12)}
|
||||
fontSize={scale(12)}
|
||||
labelHeight={10}
|
||||
|
|
|
@ -29,6 +29,7 @@ import { NAVIGATION_SCREEN } from "../../utils/constant";
|
|||
import { scale } from "../../utils/scaling";
|
||||
import useStyle from "./styles";
|
||||
import ApolloClient from "apollo-client";
|
||||
import i18n from "../../../i18n";
|
||||
|
||||
const {
|
||||
IOS_CLIENT_ID_GOOGLE,
|
||||
|
@ -167,7 +168,7 @@ const CreateAccount = () => {
|
|||
color={colors.iconColor}
|
||||
/>
|
||||
<TextDefault style={alignment.MLsmall} bold>
|
||||
Signup with Apple
|
||||
{i18n.t('signupApple')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
);
|
||||
|
@ -241,7 +242,7 @@ const CreateAccount = () => {
|
|||
return (
|
||||
<WrapperView>
|
||||
<View style={[styles.mainContainer, styles.flex]}>
|
||||
<RegistrationHeader title={"Get Started"} />
|
||||
<RegistrationHeader title={i18n.t('getStarted')} />
|
||||
<View style={styles.subContainer}>
|
||||
<View style={[styles.flex, styles.upperContainer]}>
|
||||
<EnategaImage
|
||||
|
@ -263,7 +264,7 @@ const CreateAccount = () => {
|
|||
onPress={() => navigation.navigate(NAVIGATION_SCREEN.Login)}
|
||||
>
|
||||
<TextDefault style={[alignment.MLsmall]} bold>
|
||||
Already a member? Log in
|
||||
{i18n.t('alreadyMember')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
|
|
@ -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() {
|
|||
<View style={styles.labelButtonContainer}>
|
||||
<View style={alignment.PBsmall}>
|
||||
<TextDefault H5 bold>
|
||||
Label as
|
||||
{i18n.t('labelAs')}
|
||||
</TextDefault>
|
||||
</View>
|
||||
<View style={styles.buttonInline}>
|
||||
|
@ -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()}>
|
||||
<TextDefault H4 bold>
|
||||
{'cancel'}
|
||||
{i18n.t('cancel')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</ScrollView>
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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() {
|
|||
</View>
|
||||
<View style={styles.width100}>
|
||||
<TextDefault medium textColor={colors.fontSecondColor}>
|
||||
Enter your Email and Password
|
||||
{i18n.t('enterUsername')}
|
||||
</TextDefault>
|
||||
<View style={styles.marginTop3} />
|
||||
<FilledTextField
|
||||
|
@ -268,7 +268,7 @@ function Login() {
|
|||
medium
|
||||
center
|
||||
>
|
||||
Forgot Password?
|
||||
{i18n.t('forgotPassword')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
<View style={[styles.marginTop3]}>{renderLoginAction()}</View>
|
||||
|
@ -280,7 +280,7 @@ function Login() {
|
|||
}
|
||||
>
|
||||
<TextDefault textColor={colors.fontSecondColor} bold center>
|
||||
Create New Account
|
||||
{i18n.t('createNewAcc')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
|
|
@ -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() {
|
|||
<View style={styles.emptyContainer}>
|
||||
<EmptyFood width={scale(250)} height={scale(250)} />
|
||||
<TextDefault H4 bold style={alignment.MTlarge}>
|
||||
No item found
|
||||
{i18n.t('noItems')}
|
||||
</TextDefault>
|
||||
</View>
|
||||
);
|
||||
|
@ -77,7 +78,7 @@ function Menu() {
|
|||
{isLoggedIn && profile && <StatusCard />}
|
||||
|
||||
<TextDefault style={alignment.Psmall} H4 medium>
|
||||
Featured
|
||||
{i18n.t('featured')}
|
||||
</TextDefault>
|
||||
</>
|
||||
);
|
||||
|
|
|
@ -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() {
|
|||
</View>
|
||||
<View style={styles.descriptionEmpty}>
|
||||
<TextDefault bolder center H4>
|
||||
No Orders Found
|
||||
{i18n.t('noOrdersFound')}
|
||||
</TextDefault>
|
||||
</View>
|
||||
<TouchableOpacity
|
||||
|
@ -95,7 +95,7 @@ function MyOrders() {
|
|||
onPress={() => navigation.navigate(NAVIGATION_SCREEN.Menu)}
|
||||
>
|
||||
<TextDefault textColor={colors.buttonText} bold H5 center>
|
||||
Start Shopping
|
||||
{i18n.t('startShopping')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
@ -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() {
|
|||
<ActiveOrders
|
||||
navigation={navigation}
|
||||
activeOrders={orders.filter((o) =>
|
||||
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() {
|
|||
</View>
|
||||
<View style={styles.infoContainer}>
|
||||
<TextDefault H5 bold style={alignment.MBxSmall}>
|
||||
{"ID: "}
|
||||
{i18n.t('idVar')}
|
||||
{item.order_id}
|
||||
</TextDefault>
|
||||
<TextDefault line={3} textColor={colors.tagColor} H5 medium>
|
||||
|
|
|
@ -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() {
|
|||
<View style={styles.labelButtonContainer}>
|
||||
<View style={styles.labelTitleContainer}>
|
||||
<TextDefault H5 bold>
|
||||
Label As:
|
||||
{i18n.t('labelAs')}
|
||||
</TextDefault>
|
||||
</View>
|
||||
<View style={styles.buttonInline}>
|
||||
|
@ -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()}>
|
||||
<TextDefault H5 bold>
|
||||
{'Cancel'}
|
||||
{i18n.t('cancel')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
|
|
@ -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() {
|
|||
<WrapperView>
|
||||
<ScrollView style={[styles.flex]}>
|
||||
<View>
|
||||
{order.order_status === 'PICKED' && order.rider && (
|
||||
{i18n.t(order.order_status) === i18n.t('PICKED') && order.rider && (
|
||||
<TrackingRider
|
||||
delivery_address={order.delivery_address}
|
||||
id={order.rider._id}
|
||||
|
@ -86,14 +86,14 @@ function OrderDetail() {
|
|||
bolder
|
||||
H3
|
||||
style={alignment.MBsmall}>
|
||||
Thank You!
|
||||
{i18n.t('thankYou')}
|
||||
</TextDefault>
|
||||
<TextDefault
|
||||
textColor={colors.fontSecondColor}
|
||||
medium
|
||||
H5
|
||||
style={[alignment.MTsmall]}>
|
||||
Your order ID is
|
||||
{i18n.t('orderId')}
|
||||
</TextDefault>
|
||||
<TextDefault H4 bolder style={alignment.PTxSmall}>
|
||||
{order.order_id}
|
||||
|
@ -103,20 +103,20 @@ function OrderDetail() {
|
|||
bold
|
||||
H5
|
||||
style={[alignment.MTlarge]}>
|
||||
Status
|
||||
{i18n.t('status')}
|
||||
</TextDefault>
|
||||
<TextDefault
|
||||
textColor={colors.buttonBackgroundBlue}
|
||||
H4
|
||||
medium
|
||||
style={[alignment.MBsmall, alignment.MTxSmall]}>
|
||||
{order.order_status}{' '}
|
||||
{i18n.t(order.order_status)}{' '}
|
||||
<TextDefault medium>
|
||||
( {checkStatus(order.order_status).statusText})
|
||||
( {checkStatus(i18n.t(order.order_status)).statusText})
|
||||
</TextDefault>
|
||||
</TextDefault>
|
||||
<TextDefault textColor={colors.fontSecondColor} H5 bold>
|
||||
Delivery address:
|
||||
{i18n.t('deliveryAddress')}:
|
||||
</TextDefault>
|
||||
<TextDefault style={{ ...alignment.PTxSmall }} H5>
|
||||
{order.delivery_address.delivery_address}
|
||||
|
@ -151,7 +151,7 @@ function OrderDetail() {
|
|||
textColor={colors.fontMainColor}
|
||||
medium
|
||||
style={{ width: '40%' }}>
|
||||
Subtotal
|
||||
{i18n.t('subTotal')}
|
||||
</TextDefault>
|
||||
<TextDefault
|
||||
textColor={colors.fontMainColor}
|
||||
|
@ -169,7 +169,7 @@ function OrderDetail() {
|
|||
textColor={colors.fontMainColor}
|
||||
medium
|
||||
style={{ width: '40%' }}>
|
||||
Delivery fee
|
||||
{i18n.t('deliveryFee')}
|
||||
</TextDefault>
|
||||
<TextDefault
|
||||
textColor={colors.fontMainColor}
|
||||
|
@ -185,7 +185,7 @@ function OrderDetail() {
|
|||
textColor={colors.fontMainColor}
|
||||
bold
|
||||
style={{ width: '40%' }}>
|
||||
Total
|
||||
{i18n.t('total')}
|
||||
</TextDefault>
|
||||
<TextDefault
|
||||
textColor={colors.fontMainColor}
|
||||
|
@ -197,7 +197,7 @@ function OrderDetail() {
|
|||
</TextDefault>
|
||||
</View>
|
||||
</View>
|
||||
{order.order_status === 'PICKED' && (
|
||||
{i18n.t(order.order_status) === i18n.t('PICKED') && (
|
||||
<View
|
||||
style={{
|
||||
...alignment.PLmedium,
|
||||
|
@ -240,26 +240,26 @@ function OrderDetail() {
|
|||
borderRadius: moderateScale(10)
|
||||
}}>
|
||||
<TextDefault H5 bold textColor={colors.lightBackground}>
|
||||
Chat with Rider
|
||||
{i18n.t('chatWithRider')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
</View>
|
||||
)}
|
||||
|
||||
{(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 && (
|
||||
<View style={styles.orderReceipt}>
|
||||
<TextDefault H3 bolder style={alignment.MBsmall}>
|
||||
Any suggestion?
|
||||
{i18n.t('anySuggestion')}
|
||||
</TextDefault>
|
||||
<TextDefault
|
||||
textColor={colors.fontSecondColor}
|
||||
bold
|
||||
style={[alignment.MBsmall, alignment.MTsmall]}>
|
||||
Review regarding your order?
|
||||
{i18n.t('reviewRegarding')}
|
||||
</TextDefault>
|
||||
<TouchableOpacity
|
||||
activeOpacity={0.7}
|
||||
|
@ -280,7 +280,7 @@ function OrderDetail() {
|
|||
H5
|
||||
bold
|
||||
center>
|
||||
Write a review
|
||||
{i18n.t('writeReview')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
|
|
@ -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) {
|
|||
<View style={styles.modalContent}>
|
||||
<View style={styles.titleContainer}>
|
||||
<TextDefault bold H4>
|
||||
Change password
|
||||
{i18n.t('changePass')}
|
||||
</TextDefault>
|
||||
</View>
|
||||
|
||||
|
@ -78,7 +78,7 @@ function ChangePassword(props) {
|
|||
<TextField
|
||||
secureTextEntry
|
||||
error={oldPasswordError}
|
||||
label="Current Password"
|
||||
label={i18n.t('currentPass')}
|
||||
labelFontSize={scale(12)}
|
||||
fontSize={scale(12)}
|
||||
labelHeight={10}
|
||||
|
@ -89,7 +89,7 @@ function ChangePassword(props) {
|
|||
labelTextStyle={{ fontSize: scale(12) }}
|
||||
onChangeText={setOldPassword}
|
||||
onBlur={() => {
|
||||
setOldPasswordError(!oldPassword ? 'Password is required' : '')
|
||||
setOldPasswordError(!oldPassword ? i18n.t('passReq') : '')
|
||||
}}
|
||||
/>
|
||||
</View>
|
||||
|
@ -97,7 +97,7 @@ function ChangePassword(props) {
|
|||
<TextField
|
||||
secureTextEntry
|
||||
error={newPasswordError}
|
||||
label="New Password"
|
||||
label={i18n.t('newPass')}
|
||||
labelFontSize={scale(12)}
|
||||
fontSize={scale(12)}
|
||||
labelHeight={10}
|
||||
|
@ -108,7 +108,7 @@ function ChangePassword(props) {
|
|||
labelTextStyle={{ fontSize: scale(12) }}
|
||||
onChangeText={setNewPassword}
|
||||
onBlur={() => {
|
||||
setNewPasswordError(!newPassword ? 'Password is required' : '')
|
||||
setNewPasswordError(!newPassword ? i18n.t('passReq') : '')
|
||||
}}
|
||||
/>
|
||||
</View>
|
||||
|
@ -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)
|
||||
|
||||
|
|
|
@ -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}
|
||||
>
|
||||
<TextDefault>Change Password</TextDefault>
|
||||
<TextDefault>{i18n.t('changePass')}</TextDefault>
|
||||
<MaterialCommunityIcons
|
||||
name={"pencil"}
|
||||
size={20}
|
||||
|
@ -383,7 +383,7 @@ function Profile() {
|
|||
bold
|
||||
style={[alignment.MTsmall, alignment.MBsmall]}
|
||||
>
|
||||
{"Cancel"}
|
||||
{i18n.t('cancel')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
@ -394,7 +394,7 @@ function Profile() {
|
|||
textColor={colors.fontSecondColor}
|
||||
style={alignment.MBsmall}
|
||||
>
|
||||
All rights are reserved by Enatega
|
||||
{i18n.t('rightsReserved')}
|
||||
</TextDefault>
|
||||
</ScrollView>
|
||||
</KeyboardAvoidingView>
|
||||
|
|
|
@ -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)
|
||||
}>
|
||||
<TextDefault style={alignment.MTsmall} bold center>
|
||||
Forgot password?
|
||||
{i18n.t('forgotPassword')}
|
||||
</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
|
|
@ -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')}
|
||||
</TextDefault>
|
||||
<TextDefault medium H5>
|
||||
({languageName})
|
||||
|
@ -275,7 +282,7 @@ function Settings() {
|
|||
textColor={colors.statusSecondColor}
|
||||
>
|
||||
{" "}
|
||||
Receive Special Offers{" "}
|
||||
{i18n.t('receiveOffers')}{" "}
|
||||
</TextDefault>
|
||||
<SwitchBtn
|
||||
isEnabled={offerNotification}
|
||||
|
@ -298,7 +305,7 @@ function Settings() {
|
|||
textColor={colors.statusSecondColor}
|
||||
>
|
||||
{" "}
|
||||
Get updates on your order status!{" "}
|
||||
{i18n.t('getUpdatesText')}{" "}
|
||||
</TextDefault>
|
||||
<SwitchBtn
|
||||
isEnabled={orderNotification}
|
||||
|
@ -317,7 +324,7 @@ function Settings() {
|
|||
<View style={styles.notificationChekboxContainer}>
|
||||
<TextDefault numberOfLines={1} textColor={"red"}>
|
||||
{" "}
|
||||
Delete Account{" "}
|
||||
{i18n.t('delAcc')}{" "}
|
||||
</TextDefault>
|
||||
<CustomIcon
|
||||
name={ICONS_NAME.Trash}
|
||||
|
@ -328,7 +335,7 @@ function Settings() {
|
|||
</TouchableOpacity>
|
||||
<View style={styles.versionContainer}>
|
||||
<TextDefault textColor={colors.fontSecondColor}>
|
||||
Version: {Constants.manifest.version}
|
||||
{/* Version: {Constants.manifest.version} */}
|
||||
</TextDefault>
|
||||
</View>
|
||||
</View>
|
||||
|
@ -373,7 +380,7 @@ function Settings() {
|
|||
>
|
||||
<View style={{ flex: 1, alignItems: "center" }}>
|
||||
<TextDefault bolder H5 style={{ marginTop: 20 }}>
|
||||
Are you Sure you want to delete Account?
|
||||
{i18n.t('delAccText')}
|
||||
</TextDefault>
|
||||
<TouchableOpacity
|
||||
activeOpacity={0.7}
|
||||
|
@ -401,7 +408,7 @@ function Settings() {
|
|||
style={[styles.width100, alignment.PBlarge, alignment.PTlarge]}
|
||||
onPress={() => onClose()}
|
||||
>
|
||||
<TextDefault center>Cancel</TextDefault>
|
||||
<TextDefault center>{i18n.t('cancel')}</TextDefault>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
</Modalize>
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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: "បានបញ្ចប់"
|
||||
}
|
||||
|
|
|
@ -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: "已完成"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue