Merge pull request #44 from ninjas-code-official/aliyan-checking-issues

Fixed issue of app crash  when clicking an item with addons
This commit is contained in:
usama sattar 2024-02-06 13:18:22 +05:00 committed by GitHub
commit 69a424fdf1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 1691 additions and 1651 deletions

View File

@ -1,40 +1,41 @@
import { useTheme } from '@react-navigation/native' import { useTheme } from "@react-navigation/native";
import PropTypes from 'prop-types' import PropTypes from "prop-types";
import React, { useContext, useState } from 'react' import React, { useContext, useState } from "react";
import { TouchableOpacity, View } from 'react-native' import { TouchableOpacity, View } from "react-native";
import ConfigurationContext from '../../../context/Configuration' import ConfigurationContext from "../../../context/Configuration";
import { alignment } from '../../../utils/alignment' import { alignment } from "../../../utils/alignment";
import RadioButton from '../../FdRadioBtn/RadioBtn' import RadioButton from "../../FdRadioBtn/RadioBtn";
import TextDefault from '../../Text/TextDefault/TextDefault' import TextDefault from "../../Text/TextDefault/TextDefault";
import useStyle from './styles' import useStyle from "./styles";
function RadioComponent(props) { function RadioComponent(props) {
const styles = useStyle() const styles = useStyle();
const { colors } = useTheme() const { colors } = useTheme();
const [options] = useState(props.options) const [options] = useState(props.options);
const [selected, setSelected] = useState(props.selected || null) const [selected, setSelected] = useState(props.selected || null);
const configuration = useContext(ConfigurationContext) const configuration = useContext(ConfigurationContext);
function onPress(option) { function onPress(option) {
setSelected(option) setSelected(option);
props.onPress(option) props.onPress(option);
} }
return ( return (
<> <>
{options.map(option => { {options.map((option) => {
const isChecked = selected._id === option._id const isChecked = selected?._id === option._id;
return ( return (
<TouchableOpacity <TouchableOpacity
activeOpacity={0.7} activeOpacity={0.7}
onPress={onPress.bind(this, option)} onPress={onPress.bind(this, option)}
key={option._id} key={option._id}
style={styles.mainContainer}> style={styles.mainContainer}
>
<View style={styles.leftContainer}> <View style={styles.leftContainer}>
<RadioButton <RadioButton
size={13} size={13}
outerColor={colors.radioOuterColor} outerColor={colors.radioOuterColor}
innerColor={colors.radioColor} innerColor={colors.radioColor}
animation={'bounceIn'} animation={"bounceIn"}
isSelected={isChecked} isSelected={isChecked}
onPress={onPress.bind(this, option)} onPress={onPress.bind(this, option)}
/> />
@ -43,7 +44,8 @@ function RadioComponent(props) {
isChecked ? colors.fontMainColor : colors.fontSecondColor isChecked ? colors.fontMainColor : colors.fontSecondColor
} }
style={alignment.MLsmall} style={alignment.MLsmall}
H5> H5
>
{option.title} {option.title}
</TextDefault> </TextDefault>
</View> </View>
@ -53,18 +55,19 @@ function RadioComponent(props) {
isChecked ? colors.fontMainColor : colors.fontSecondColor isChecked ? colors.fontMainColor : colors.fontSecondColor
} }
H5 H5
medium>{`${configuration.currency_symbol} ${option.price}`}</TextDefault> medium
>{`${configuration.currency_symbol} ${option.price}`}</TextDefault>
</View> </View>
</TouchableOpacity> </TouchableOpacity>
) );
})} })}
</> </>
) );
} }
RadioComponent.propTypes = { RadioComponent.propTypes = {
selected: PropTypes.any, selected: PropTypes.any,
options: PropTypes.arrayOf(PropTypes.object), options: PropTypes.arrayOf(PropTypes.object),
onPress: PropTypes.func onPress: PropTypes.func,
} };
export default RadioComponent export default RadioComponent;

View File

@ -1,13 +1,13 @@
import { useTheme } from '@react-navigation/native' import { useTheme } from "@react-navigation/native";
import PropTypes from 'prop-types' import PropTypes from "prop-types";
import React from 'react' import React from "react";
import { View } from 'react-native' import { View } from "react-native";
import { alignment } from '../../../utils/alignment' import { alignment } from "../../../utils/alignment";
import TextDefault from '../../Text' import { TextDefault } from "../../Text";
import styles from './styles' import styles from "./styles";
function TitleComponent(props) { function TitleComponent(props) {
const { colors } = useTheme() const { colors } = useTheme();
return ( return (
<View style={styles.mainContainer}> <View style={styles.mainContainer}>
@ -19,7 +19,8 @@ function TitleComponent(props) {
numberOfLines={1} numberOfLines={1}
textColor={colors.fontSecondColor} textColor={colors.fontSecondColor}
H5 H5
bold> bold
>
{props.subTitle} {props.subTitle}
</TextDefault> </TextDefault>
</View> </View>
@ -30,17 +31,18 @@ function TitleComponent(props) {
} }
H5 H5
medium medium
center> center
>
({props.status}) ({props.status})
</TextDefault> </TextDefault>
</View> </View>
) );
} }
TitleComponent.propTypes = { TitleComponent.propTypes = {
title: PropTypes.string.isRequired, title: PropTypes.string.isRequired,
subTitle: PropTypes.string, subTitle: PropTypes.string,
error: PropTypes.bool, error: PropTypes.bool,
status: PropTypes.string status: PropTypes.string,
} };
export default TitleComponent export default TitleComponent;

View File

@ -11,33 +11,28 @@ import TextError from "../../Text/TextError/TextError";
import useStyle from "./styles"; import useStyle from "./styles";
import i18n from "../../../../i18n"; import i18n from "../../../../i18n";
export const orderStatuses = [ export const orderStatuses = {
{ PENDING: {
key: i18n.t('PENDING'),
status: 1, status: 1,
statusText: i18n.t('orderPending'), statusText: "orderPending",
}, },
{ ACCEPTED: {
key: i18n.t("ACCEPTED"),
status: 2, status: 2,
statusText: i18n.t('prepFood'), statusText: "prepFood",
}, },
{ PICKED: {
key: i18n.t("PICKED"),
status: 3, status: 3,
statusText: i18n.t('riderOnWay'), statusText: "riderOnWay",
}, },
{ DELIVERED: {
key: i18n.t("DELIVERED"),
status: 4, status: 4,
statusText: i18n.t('orderDelivered'), statusText: "orderDelivered",
}, },
{ COMPLETED: {
key: i18n.t("COMPLETED"),
status: 5, status: 5,
statusText: i18n.t('completeOrder'), statusText: "completeOrder",
}, },
]; };
const orderStatusActive = ["PENDING", "PICKED", "ACCEPTED"]; const orderStatusActive = ["PENDING", "PICKED", "ACCEPTED"];
@ -54,13 +49,6 @@ const StatusCard = () => {
} = useContext(UserContext); } = useContext(UserContext);
const configuration = useContext(ConfigurationContext); const configuration = useContext(ConfigurationContext);
const checkStatus = (status) => {
const obj = orderStatuses.filter((x) => {
return x.key === status;
});
return obj[0];
};
if (loadingOrders) return <Spinner />; if (loadingOrders) return <Spinner />;
if (errorOrders) return <TextError>{errorOrders.message}</TextError>; if (errorOrders) return <TextError>{errorOrders.message}</TextError>;
@ -73,7 +61,6 @@ const StatusCard = () => {
refreshing={networkStatusOrders === 4} refreshing={networkStatusOrders === 4}
onRefresh={() => networkStatusOrders === 7 && fetchOrders()} onRefresh={() => networkStatusOrders === 7 && fetchOrders()}
data={orders.filter((o) => orderStatusActive.includes(o.order_status))} data={orders.filter((o) => orderStatusActive.includes(o.order_status))}
//keyExtractor={(item) => item._id}
keyExtractor={(item, index) => String(index)} keyExtractor={(item, index) => String(index)}
renderItem={({ item, index }) => ( renderItem={({ item, index }) => (
<TouchableOpacity <TouchableOpacity
@ -89,20 +76,19 @@ const StatusCard = () => {
<View key={index} style={styles.statusContainer}> <View key={index} style={styles.statusContainer}>
<View style={styles.textContainer}> <View style={styles.textContainer}>
<TextDefault H5 medium textColor={styles.lightText.color}> <TextDefault H5 medium textColor={styles.lightText.color}>
{i18n.t('orderId')} {i18n.t("orderId")}
</TextDefault> </TextDefault>
<TextDefault style={{ ...alignment.PBlarge }} H4 bolder> <TextDefault style={{ ...alignment.PBlarge }} H4 bolder>
{item.order_id} {item.order_id}
</TextDefault> </TextDefault>
<TextDefault H5 textColor={colors.placeHolderColor} medium> <TextDefault H5 textColor={colors.placeHolderColor} medium>
{i18n.t('status')} {i18n.t("status")}
</TextDefault> </TextDefault>
<TextDefault textColor={"#00b9c6"} H5 medium> <TextDefault textColor={"#00b9c6"} H5 medium>
{i18n.t(item.order_status)}{" "} {i18n.t(item.order_status)}{" "}
<TextDefault numberOfLines={2} medium> <TextDefault numberOfLines={2} medium>
{/* {checkStatus(item.order_status).status}.{' '} */}( {`(${i18n.t(orderStatuses[item.order_status]?.statusText)})`}
{checkStatus(i18n.t(item.order_status)).statusText})
</TextDefault> </TextDefault>
</TextDefault> </TextDefault>
</View> </View>

View File

@ -1,51 +1,51 @@
import { useTheme } from '@react-navigation/native' import { useTheme } from "@react-navigation/native";
import PropTypes from 'prop-types' import PropTypes from "prop-types";
import React, { useState } from 'react' import React, { useState } from "react";
import { TouchableOpacity, View } from 'react-native' import { TouchableOpacity, View } from "react-native";
import i18n from '../../../../i18n' import i18n from "../../../../i18n";
import RadioButton from '../../../components/FdRadioBtn/RadioBtn' import RadioButton from "../../../components/FdRadioBtn/RadioBtn";
import { alignment } from '../../../utils/alignment' import { alignment } from "../../../utils/alignment";
import { ICONS_NAME } from '../../../utils/constant' import { ICONS_NAME } from "../../../utils/constant";
import { scale } from '../../../utils/scaling' import { scale } from "../../../utils/scaling";
import { CustomIcon } from '../../CustomIcon' import { CustomIcon } from "../../CustomIcon";
import TextDefault from '../../Text/TextDefault/TextDefault' import TextDefault from "../../Text/TextDefault/TextDefault";
import useStyles from './styles' import useStyles from "./styles";
function PaymentModal(props) { function PaymentModal(props) {
const styles = useStyles() const styles = useStyles();
const { colors } = useTheme() const { colors } = useTheme();
const [selectedPayment, setSelectedPayment] = useState( const [selectedPayment, setSelectedPayment] = useState(
props.payment ?? {}, props.payment ?? {},
{} {}
) );
const CASH = [ const CASH = [
{ {
payment: 'STRIPE', payment: "STRIPE",
label: i18n.t('creditCart'), label: i18n.t("creditCart"),
index: 0, index: 0,
icon: ICONS_NAME.Visa, icon: ICONS_NAME.Visa,
iconSize: scale(30) iconSize: scale(30),
}, },
{ {
payment: 'PAYPAL', payment: "PAYPAL",
label: i18n.t('paypal'), label: i18n.t("paypal"),
index: 1, index: 1,
icon: ICONS_NAME.Paypal, icon: ICONS_NAME.Paypal,
iconSize: scale(30) iconSize: scale(30),
}, },
{ {
payment: 'COD', payment: "COD",
label: i18n.t('cod'), label: i18n.t("cod"),
index: 2, index: 2,
icon: ICONS_NAME.Cash, icon: ICONS_NAME.Cash,
iconSize: scale(25) iconSize: scale(25),
} },
] ];
function onSelectPayment(payment) { function onSelectPayment(payment) {
setSelectedPayment(payment) setSelectedPayment(payment);
props.paymentChange(payment) props.paymentChange(payment);
} }
return ( return (
@ -57,9 +57,10 @@ function PaymentModal(props) {
alignment.MTlarge, alignment.MTlarge,
alignment.PTmedium, alignment.PTmedium,
alignment.MBlarge, alignment.MBlarge,
alignment.PBxSmall alignment.PBxSmall,
]}> ]}
Change Payment Method >
{`(${i18n.t("Change Payment Method")})`}
</TextDefault> </TextDefault>
{CASH.map((item, index) => ( {CASH.map((item, index) => (
<View key={index.toString()} style={styles.width100}> <View key={index.toString()} style={styles.width100}>
@ -67,8 +68,9 @@ function PaymentModal(props) {
style={[styles.radioGroup]} style={[styles.radioGroup]}
key={index.toString()} key={index.toString()}
onPress={() => { onPress={() => {
onSelectPayment(item) onSelectPayment(item);
}}> }}
>
<View style={[alignment.MRxSmall, styles.iconContainer]}> <View style={[alignment.MRxSmall, styles.iconContainer]}>
<CustomIcon <CustomIcon
name={item.icon} name={item.icon}
@ -82,13 +84,13 @@ function PaymentModal(props) {
</TextDefault> </TextDefault>
<View style={styles.radioContainer}> <View style={styles.radioContainer}>
<RadioButton <RadioButton
animation={'bounceIn'} animation={"bounceIn"}
outerColor={colors.radioOuterColor} outerColor={colors.radioOuterColor}
size={11} size={11}
innerColor={colors.radioColor} innerColor={colors.radioColor}
isSelected={selectedPayment.index === item.index} isSelected={selectedPayment.index === item.index}
onPress={() => { onPress={() => {
onSelectPayment(item) onSelectPayment(item);
}} }}
/> />
</View> </View>
@ -98,21 +100,22 @@ function PaymentModal(props) {
))} ))}
<TouchableOpacity style={[styles.button]} onPress={props.onClose}> <TouchableOpacity style={[styles.button]} onPress={props.onClose}>
<TextDefault H5 bold textColor={colors.lightBackground}> <TextDefault H5 bold textColor={colors.lightBackground}>
Done {`(${i18n.t("Done")})`}
</TextDefault> </TextDefault>
</TouchableOpacity> </TouchableOpacity>
<TouchableOpacity <TouchableOpacity
onPress={props.onClose} onPress={props.onClose}
style={[styles.width100, alignment.PBlarge, alignment.PTlarge]}> style={[styles.width100, alignment.PBlarge, alignment.PTlarge]}
<TextDefault>Cancel</TextDefault> >
<TextDefault>{`(${i18n.t("Cancel")})`}</TextDefault>
</TouchableOpacity> </TouchableOpacity>
</View> </View>
) );
} }
PaymentModal.propTypes = { PaymentModal.propTypes = {
payment: PropTypes.object, payment: PropTypes.object,
paymentChange: PropTypes.func, paymentChange: PropTypes.func,
onClose: PropTypes.func onClose: PropTypes.func,
} };
export default PaymentModal export default PaymentModal;

View File

@ -1,93 +1,104 @@
import { useTheme } from '@react-navigation/native' import { useTheme } from "@react-navigation/native";
import PropTypes from 'prop-types' import PropTypes from "prop-types";
import React, { useContext } from 'react' import React, { useContext } from "react";
import { TouchableOpacity, View } from 'react-native' import { TouchableOpacity, View } from "react-native";
import ConfigurationContext from '../../context/Configuration' import ConfigurationContext from "../../context/Configuration";
import { COLORS } from '../../Theme/Colors' import { COLORS } from "../../Theme/Colors";
import { alignment } from '../../utils/alignment' import { alignment } from "../../utils/alignment";
import { ICONS_NAME, NAVIGATION_SCREEN } from '../../utils/constant' import { ICONS_NAME, NAVIGATION_SCREEN } from "../../utils/constant";
import { scale } from '../../utils/scaling' import { scale } from "../../utils/scaling";
import { CustomIcon } from '../CustomIcon/index' import { CustomIcon } from "../CustomIcon/index";
import EnategaImage from '../EnategaImage/EnategaImage' import EnategaImage from "../EnategaImage/EnategaImage";
import TextDefault from '../Text/TextDefault/TextDefault' import TextDefault from "../Text/TextDefault/TextDefault";
import TextError from '../Text/TextError/TextError' import TextError from "../Text/TextError/TextError";
import TextLine from '../Text/TextLine/TextLine' import TextLine from "../Text/TextLine/TextLine";
import useStyle from './styles' import useStyle from "./styles";
import i18n from '../../../i18n' import i18n from "../../../i18n";
export const orderStatuses = [ export const orderStatuses = [
{ {
key: 'PENDING', key: "PENDING",
status: 1, status: 1,
icon: ICONS_NAME.Clock, icon: ICONS_NAME.Clock,
color: COLORS.primary color: COLORS.primary,
}, },
{ {
key: 'ACCEPTED', key: "ACCEPTED",
status: 2, status: 2,
icon: ICONS_NAME.Checked, icon: ICONS_NAME.Checked,
color: COLORS.blueColor color: COLORS.blueColor,
}, },
{ {
key: 'PICKED', key: "PICKED",
status: 3, status: 3,
icon: ICONS_NAME.Checked, icon: ICONS_NAME.Checked,
color: COLORS.blueColor color: COLORS.blueColor,
}, },
{ {
key: 'DELIVERED', key: "DELIVERED",
status: 4, status: 4,
icon: ICONS_NAME.Checked, icon: ICONS_NAME.Checked,
color: COLORS.blueColor color: COLORS.blueColor,
}, },
{ {
key: 'COMPLETED', key: "COMPLETED",
status: 5, status: 5,
icon: ICONS_NAME.Checked, icon: ICONS_NAME.Checked,
color: COLORS.blueColor color: COLORS.blueColor,
} },
] ];
const ActiveOrders = ({ const ActiveOrders = ({
navigation, navigation,
loading, loading,
error, error,
activeOrders, activeOrders,
pastOrders pastOrders,
}) => { }) => {
const styles = useStyle() const styles = useStyle();
const { colors } = useTheme() const { colors } = useTheme();
const configuration = useContext(ConfigurationContext) const configuration = useContext(ConfigurationContext);
if (loading) { if (loading) {
return <TextDefault small> Loading...</TextDefault> return <TextDefault small> Loading...</TextDefault>;
} }
if (error) return <TextError text={error.message} /> if (error) return <TextError text={error.message} />;
if (!activeOrders || (activeOrders && !activeOrders.length)) { if (!activeOrders || (activeOrders && !activeOrders.length)) {
if (!pastOrders || (pastOrders && !pastOrders.length)) { if (!pastOrders || (pastOrders && !pastOrders.length)) {
return <TextDefault> </TextDefault> return <TextDefault> </TextDefault>;
} }
return <TextLine headerName={i18n.t('oldOrder')} textWidth="34%" lineWidth="28%" /> return (
<TextLine
headerName={i18n.t("oldOrder")}
textWidth="34%"
lineWidth="28%"
/>
);
} }
const checkStatus = status => { const checkStatus = (status) => {
const obj = orderStatuses.filter(x => { const obj = orderStatuses.filter((x) => {
return x.key === status return x.key === status;
}) });
return obj[0] return obj[0];
} };
return ( return (
<React.Fragment> <React.Fragment>
<TextLine headerName={i18n.t('activeOrder')} textWidth="40%" lineWidth="26%" /> <TextLine
headerName={i18n.t("activeOrder")}
textWidth="40%"
lineWidth="26%"
/>
{activeOrders.map((item, index) => ( {activeOrders.map((item, index) => (
<TouchableOpacity <TouchableOpacity
activeOpacity={0.7} activeOpacity={0.7}
key={index.toString()} key={index.toString()}
onPress={() => onPress={() =>
navigation.navigate(NAVIGATION_SCREEN.OrderDetail, { navigation.navigate(NAVIGATION_SCREEN.OrderDetail, {
_id: item._id _id: item._id,
}) })
}> }
>
<View style={styles.container}> <View style={styles.container}>
<View style={styles.imgContainer}> <View style={styles.imgContainer}>
<EnategaImage <EnategaImage
@ -98,7 +109,7 @@ const ActiveOrders = ({
</View> </View>
<View style={styles.infoContainer}> <View style={styles.infoContainer}>
<TextDefault H5 bolder style={alignment.MBxSmall}> <TextDefault H5 bolder style={alignment.MBxSmall}>
{i18n.t('idVar')} {i18n.t("idVar")}
{item.order_id} {item.order_id}
</TextDefault> </TextDefault>
<TextDefault line={3} textColor={colors.tagColor} H5 bold> <TextDefault line={3} textColor={colors.tagColor} H5 bold>
@ -117,7 +128,8 @@ const ActiveOrders = ({
textColor={checkStatus(item.order_status).color} textColor={checkStatus(item.order_status).color}
style={alignment.MTxSmall} style={alignment.MTxSmall}
bold bold
center> center
>
{i18n.t(item.order_status)} {i18n.t(item.order_status)}
</TextDefault> </TextDefault>
</View> </View>
@ -126,15 +138,15 @@ const ActiveOrders = ({
))} ))}
<TextLine headerName="Old Orders" textWidth="34%" lineWidth="26%" /> <TextLine headerName="Old Orders" textWidth="34%" lineWidth="26%" />
</React.Fragment> </React.Fragment>
) );
} };
ActiveOrders.propTypes = { ActiveOrders.propTypes = {
loading: PropTypes.bool, loading: PropTypes.bool,
error: PropTypes.object, error: PropTypes.object,
activeOrders: PropTypes.arrayOf(PropTypes.object), activeOrders: PropTypes.arrayOf(PropTypes.object),
navigation: PropTypes.object, navigation: PropTypes.object,
pastOrders: PropTypes.arrayOf(PropTypes.object) pastOrders: PropTypes.arrayOf(PropTypes.object),
} };
export default ActiveOrders export default ActiveOrders;

View File

@ -147,7 +147,6 @@ function Cart() {
function update(cache, { data: { placeOrder } }) { function update(cache, { data: { placeOrder } }) {
if (placeOrder && placeOrder.payment_method === 'COD') { if (placeOrder && placeOrder.payment_method === 'COD') {
const data = cache.readQuery({ query: ORDERS }) const data = cache.readQuery({ query: ORDERS })
// console.log('placeorder', placeOrder)
if (data) { if (data) {
cache.writeQuery({ cache.writeQuery({
query: ORDERS, query: ORDERS,

View File

@ -1,36 +1,39 @@
import { AntDesign } from '@expo/vector-icons' import { AntDesign } from "@expo/vector-icons";
import { useNavigation } from '@react-navigation/native' import { useNavigation } from "@react-navigation/native";
import React, { useLayoutEffect } from 'react' import React, { useLayoutEffect } from "react";
import { TouchableOpacity, View } from 'react-native' import { TouchableOpacity, View } from "react-native";
import i18n from '../../../i18n' import i18n from "../../../i18n";
import { TextDefault, WrapperView } from '../../components' import { TextDefault, WrapperView } from "../../components";
import { NAVIGATION_SCREEN } from '../../utils/constant' import { NAVIGATION_SCREEN } from "../../utils/constant";
import useStyle from './styles' import useStyle from "./styles";
import { useTheme } from '@react-navigation/native' import { useTheme } from "@react-navigation/native";
const links = [ const links = [
{ {
title: 'Product Page', title: "Product Page",
url: 'https://enatega.com/enatega-single-vendor/' url: "https://enatega.com/enatega-single-vendor/",
}, },
{ title: 'Docs', url: 'https://enatega.com/docs/enatega-singlevendor-introduction/' },
{ {
title: 'Blog', title: "Docs",
url: 'https://enatega.com/blog/' url: "https://enatega.com/docs/enatega-singlevendor-introduction/",
}, },
{ title: 'About Us', url: 'https://ninjascode.com/our-team' } {
] title: "Blog",
url: "https://enatega.com/blog/",
},
{ title: "About Us", url: "https://ninjascode.com/about-us/" },
];
function Help() { function Help() {
const styles = useStyle() const styles = useStyle();
const navigation = useNavigation() const navigation = useNavigation();
const { colors } = useTheme() const { colors } = useTheme();
useLayoutEffect(() => { useLayoutEffect(() => {
navigation.setOptions({ navigation.setOptions({
headerTitle: i18n.t('titleHelp'), headerTitle: i18n.t("titleHelp"),
headerRight: null headerRight: null,
}) });
}, [navigation]) }, [navigation]);
return ( return (
<WrapperView> <WrapperView>
@ -41,16 +44,21 @@ function Help() {
navigation.navigate(NAVIGATION_SCREEN.HelpBrowser, { title, url }) navigation.navigate(NAVIGATION_SCREEN.HelpBrowser, { title, url })
} }
style={styles.itemContainer} style={styles.itemContainer}
key={index}> key={index}
>
<TextDefault H4>{i18n.t(title)}</TextDefault> <TextDefault H4>{i18n.t(title)}</TextDefault>
<TouchableOpacity> <TouchableOpacity>
<AntDesign name="arrowright" size={22} color={colors.fontMainColor} /> <AntDesign
name="arrowright"
size={22}
color={colors.fontMainColor}
/>
</TouchableOpacity> </TouchableOpacity>
</TouchableOpacity> </TouchableOpacity>
))} ))}
</View> </View>
</WrapperView> </WrapperView>
) );
} }
export default Help export default Help;

View File

@ -1,160 +1,162 @@
import { useNavigation, useRoute } from '@react-navigation/native' import { useNavigation, useRoute } from "@react-navigation/native";
import React, { useContext, useEffect, useState } from 'react' import React, { useContext, useEffect, useState } from "react";
import { ScrollView, View } from 'react-native' import { ScrollView, View } from "react-native";
import { WrapperView } from '../../components' import { WrapperView } from "../../components";
import CartComponent from '../../components/CustomizeComponents/CartComponent/CartComponent' import CartComponent from "../../components/CustomizeComponents/CartComponent/CartComponent";
import CheckComponent from '../../components/CustomizeComponents/CheckComponent/CheckComponent' import CheckComponent from "../../components/CustomizeComponents/CheckComponent/CheckComponent";
import HeadingComponent from '../../components/CustomizeComponents/HeadingComponent/HeadingComponent' import HeadingComponent from "../../components/CustomizeComponents/HeadingComponent/HeadingComponent";
import ImageHeader from '../../components/CustomizeComponents/ImageHeader/ImageHeader' import ImageHeader from "../../components/CustomizeComponents/ImageHeader/ImageHeader";
import RadioComponent from '../../components/CustomizeComponents/RadioComponent/RadioComponent' import RadioComponent from "../../components/CustomizeComponents/RadioComponent/RadioComponent";
import TitleComponent from '../../components/CustomizeComponents/TitleComponent/TitleComponent' import TitleComponent from "../../components/CustomizeComponents/TitleComponent/TitleComponent";
import UserContext from '../../context/User' import UserContext from "../../context/User";
import { alignment } from '../../utils/alignment' import { alignment } from "../../utils/alignment";
import { NAVIGATION_SCREEN } from '../../utils/constant' import { NAVIGATION_SCREEN } from "../../utils/constant";
import useStyle from './styles' import useStyle from "./styles";
function ItemDetail() { function ItemDetail() {
const route = useRoute() const route = useRoute();
const styles = useStyle() const styles = useStyle();
const navigation = useNavigation() const navigation = useNavigation();
const [food] = useState(route.params.food ?? null) const [food] = useState(route.params.food ?? null);
const [selectedVariation, setSelectedVariation] = useState(food.variations[0]) const [selectedVariation, setSelectedVariation] = useState(
const [selectedAddons, setSelectedAddons] = useState([]) food.variations[0]
const { cart, addQuantity, addCartItem } = useContext(UserContext) );
const [selectedAddons, setSelectedAddons] = useState([]);
const { cart, addQuantity, addCartItem } = useContext(UserContext);
useEffect(() => { useEffect(() => {
navigation.setOptions({ navigation.setOptions({
title: 'Customize', title: "Customize",
headerRight: () => null headerRight: () => null,
}) });
}, [navigation]) }, [navigation]);
function validateButton() { function validateButton() {
if (!selectedVariation) return false if (!selectedVariation) return false;
const validatedAddons = [] const validatedAddons = [];
selectedVariation.addons.forEach(addon => { selectedVariation.addons.forEach((addon) => {
const selected = selectedAddons.find(ad => ad._id === addon._id) const selected = selectedAddons.find((ad) => ad._id === addon._id);
if (!selected && addon.quantity_minimum === 0) { if (!selected && addon.quantity_minimum === 0) {
validatedAddons.push(false) validatedAddons.push(false);
} else if ( } else if (
selected && selected &&
selected.options.length >= addon.quantity_minimum && selected.options.length >= addon.quantity_minimum &&
selected.options.length <= addon.quantity_maximum selected.options.length <= addon.quantity_maximum
) { ) {
validatedAddons.push(false) validatedAddons.push(false);
} else validatedAddons.push(true) } else validatedAddons.push(true);
}) });
return validatedAddons.every(val => val === false) return validatedAddons.every((val) => val === false);
} }
async function onAddToCart(quantity) { async function onAddToCart(quantity) {
if (validateOrderItem()) { if (validateOrderItem()) {
const addons = selectedAddons.map(addon => ({ const addons = selectedAddons.map((addon) => ({
...addon, ...addon,
options: addon.options.map(({ _id }) => ({ options: addon.options.map(({ _id }) => ({
_id _id,
})) })),
})) }));
const cartItem = cart.find(cartItem => { const cartItem = cart.find((cartItem) => {
if ( if (
cartItem._id === food._id && cartItem._id === food._id &&
cartItem.variation._id === selectedVariation._id cartItem.variation._id === selectedVariation._id
) { ) {
if (cartItem.addons.length === addons.length) { if (cartItem.addons.length === addons.length) {
if (addons.length === 0) return true if (addons.length === 0) return true;
const addonsResult = addons.every(newAddon => { const addonsResult = addons.every((newAddon) => {
const cartAddon = cartItem.addons.find( const cartAddon = cartItem.addons.find(
ad => ad._id === newAddon._id (ad) => ad._id === newAddon._id
) );
if (!cartAddon) return false if (!cartAddon) return false;
const optionsResult = newAddon.options.every(newOption => { const optionsResult = newAddon.options.every((newOption) => {
const cartOption = cartAddon.options.find( const cartOption = cartAddon.options.find(
op => op._id === newOption._id (op) => op._id === newOption._id
) );
if (!cartOption) return false if (!cartOption) return false;
return true return true;
}) });
return optionsResult return optionsResult;
}) });
return addonsResult return addonsResult;
} }
} }
return false return false;
}) });
if (!cartItem) { if (!cartItem) {
await addCartItem(food._id, selectedVariation._id, quantity, addons) await addCartItem(food._id, selectedVariation._id, quantity, addons);
} else { } else {
await addQuantity(cartItem.key, quantity) await addQuantity(cartItem.key, quantity);
} }
navigation.navigate(NAVIGATION_SCREEN.Cart) navigation.navigate(NAVIGATION_SCREEN.Cart);
} }
} }
function onSelectVariation(variation) { function onSelectVariation(variation) {
setSelectedVariation(variation) setSelectedVariation(variation);
} }
async function onSelectOption(addon, option) { async function onSelectOption(addon, option) {
const addons = selectedAddons const addons = selectedAddons;
const index = addons.findIndex(ad => ad._id === addon._id) const index = addons.findIndex((ad) => ad._id === addon._id);
if (index > -1) { if (index > -1) {
if (addon.quantity_minimum === 1 && addon.quantity_maximum === 1) { if (addon.quantity_minimum === 1 && addon.quantity_maximum === 1) {
addons[index].options = [option] addons[index].options = [option];
} else { } else {
const optionIndex = addons[index].options.findIndex( const optionIndex = addons[index].options.findIndex(
opt => opt._id === option._id (opt) => opt._id === option._id
) );
if (optionIndex > -1) { if (optionIndex > -1) {
addons[index].options = addons[index].options.filter( addons[index].options = addons[index].options.filter(
opt => opt._id !== option._id (opt) => opt._id !== option._id
) );
} else { } else {
addons[index].options.push(option) addons[index].options.push(option);
} }
if (!addons[index].options.length) { if (!addons[index].options.length) {
addons.splice(index, 1) addons.splice(index, 1);
} }
} }
} else { } else {
addons.push({ _id: addon._id, options: [option] }) addons.push({ _id: addon._id, options: [option] });
} }
setSelectedAddons([...addons]) setSelectedAddons([...addons]);
} }
function calculatePrice() { function calculatePrice() {
const variation = selectedVariation.price const variation = selectedVariation.price;
let addons = 0 let addons = 0;
selectedAddons.forEach(addon => { selectedAddons.forEach((addon) => {
addons += addon.options.reduce((acc, option) => { addons += addon.options.reduce((acc, option) => {
return acc + option.price return acc + option.price;
}, 0) }, 0);
}) });
return (variation + addons).toFixed(2) return (variation + addons).toFixed(2);
} }
function validateOrderItem() { function validateOrderItem() {
const validatedAddons = selectedVariation.addons.map(addon => { const validatedAddons = selectedVariation.addons.map((addon) => {
const selected = selectedAddons.find(ad => ad._id === addon._id) const selected = selectedAddons.find((ad) => ad._id === addon._id);
if (!selected && addon.quantity_minimum === 0) { if (!selected && addon.quantity_minimum === 0) {
addon.error = false addon.error = false;
} else if ( } else if (
selected && selected &&
selected.options.length >= addon.quantity_minimum && selected.options.length >= addon.quantity_minimum &&
selected.options.length <= addon.quantity_maximum selected.options.length <= addon.quantity_maximum
) { ) {
addon.error = false addon.error = false;
} else addon.error = true } else addon.error = true;
return addon return addon;
}) });
setSelectedVariation({ ...selectedVariation, addons: validatedAddons }) setSelectedVariation({ ...selectedVariation, addons: validatedAddons });
return validatedAddons.every(addon => addon.error === false) return validatedAddons.every((addon) => addon.error === false);
} }
function renderOption(addon) { function renderOption(addon) {
@ -164,23 +166,25 @@ function ItemDetail() {
options={addon.options} options={addon.options}
onPress={onSelectOption.bind(this, addon)} onPress={onSelectOption.bind(this, addon)}
/> />
) );
} else { } else {
return ( return (
<CheckComponent <CheckComponent
options={addon.options} options={addon.options}
onPress={onSelectOption.bind(this, addon)} onPress={onSelectOption.bind(this, addon)}
/> />
) );
} }
} }
console.log("Values:", selectedVariation);
return ( return (
<WrapperView> <WrapperView>
<View style={styles.flex}> <View style={styles.flex}>
<ScrollView <ScrollView
showsVerticalScrollIndicator={false} showsVerticalScrollIndicator={false}
style={styles.scrollViewContainer}> style={styles.scrollViewContainer}
>
{!!food.img_url && <ImageHeader image={food.img_url} />} {!!food.img_url && <ImageHeader image={food.img_url} />}
<View style={styles.subContainer}> <View style={styles.subContainer}>
<HeadingComponent <HeadingComponent
@ -197,15 +201,17 @@ function ItemDetail() {
status="Required" status="Required"
/> />
<View style={[alignment.PLmedium, alignment.PRmedium]}> <View style={[alignment.PLmedium, alignment.PRmedium]}>
<RadioComponent {
options={food.variations} <RadioComponent
selected={selectedVariation} options={food.variations}
onPress={onSelectVariation} selected={selectedVariation}
/> onPress={onSelectVariation}
/>
}
</View> </View>
</> </>
)} )}
{selectedVariation.addons.map(addon => ( {selectedVariation.addons.map((addon) => (
<View key={addon._id}> <View key={addon._id}>
<TitleComponent <TitleComponent
title={addon.title} title={addon.title}
@ -213,7 +219,7 @@ function ItemDetail() {
error={addon.error} error={addon.error}
status={ status={
addon.quantity_minimum === 0 addon.quantity_minimum === 0
? 'OPTIONAL' ? "OPTIONAL"
: `${addon.quantity_minimum} REQUIRED` : `${addon.quantity_minimum} REQUIRED`
} }
/> />
@ -229,7 +235,7 @@ function ItemDetail() {
/> />
</View> </View>
</WrapperView> </WrapperView>
) );
} }
export default ItemDetail export default ItemDetail;

View File

@ -33,7 +33,7 @@ function Menu() {
useLayoutEffect(() => { useLayoutEffect(() => {
navigation.setOptions({ navigation.setOptions({
title: i18n.t('home'), title: i18n.t("home"),
}); });
}, []); }, []);
@ -43,7 +43,7 @@ function Menu() {
} else if (error) { } else if (error) {
return ( return (
<TextError <TextError
text={error ? error.message : i18n.t('NoFoods')} text={error ? error.message : i18n.t("NoFoods")}
backColor="transparent" backColor="transparent"
/> />
); );
@ -52,7 +52,7 @@ function Menu() {
<View style={styles.emptyContainer}> <View style={styles.emptyContainer}>
<EmptyFood width={scale(250)} height={scale(250)} /> <EmptyFood width={scale(250)} height={scale(250)} />
<TextDefault H4 bold style={alignment.MTlarge}> <TextDefault H4 bold style={alignment.MTlarge}>
{i18n.t('noItems')} {i18n.t("noItems")}
</TextDefault> </TextDefault>
</View> </View>
); );
@ -78,7 +78,7 @@ function Menu() {
{isLoggedIn && profile && <StatusCard />} {isLoggedIn && profile && <StatusCard />}
<TextDefault style={alignment.Psmall} H4 medium> <TextDefault style={alignment.Psmall} H4 medium>
{i18n.t('featured')} {i18n.t("featured")}
</TextDefault> </TextDefault>
</> </>
); );

View File

@ -21,8 +21,8 @@ import { ICONS_NAME, NAVIGATION_SCREEN } from "../../utils/constant";
import { scale } from "../../utils/scaling"; import { scale } from "../../utils/scaling";
import useStyle from "./style"; import useStyle from "./style";
const orderStatusActive = [i18n.t("PENDING"), i18n.t("PICKED"), i18n.t("ACCEPTED")]; const orderStatusActive = ["PENDING", "PICKED", "ACCEPTED"];
const orderStatusInactive = [i18n.t("DELIVERED"), i18n.t("COMPLETED")]; const orderStatusInactive = ["DELIVERED", "COMPLETED"];
function MyOrders() { function MyOrders() {
const styles = useStyle(); const styles = useStyle();
@ -86,7 +86,7 @@ function MyOrders() {
</View> </View>
<View style={styles.descriptionEmpty}> <View style={styles.descriptionEmpty}>
<TextDefault bolder center H4> <TextDefault bolder center H4>
{i18n.t('noOrdersFound')} {i18n.t("noOrdersFound")}
</TextDefault> </TextDefault>
</View> </View>
<TouchableOpacity <TouchableOpacity
@ -95,7 +95,7 @@ function MyOrders() {
onPress={() => navigation.navigate(NAVIGATION_SCREEN.Menu)} onPress={() => navigation.navigate(NAVIGATION_SCREEN.Menu)}
> >
<TextDefault textColor={colors.buttonText} bold H5 center> <TextDefault textColor={colors.buttonText} bold H5 center>
{i18n.t('startShopping')} {i18n.t("startShopping")}
</TextDefault> </TextDefault>
</TouchableOpacity> </TouchableOpacity>
</View> </View>
@ -103,13 +103,16 @@ function MyOrders() {
} }
} }
console.log(orders);
return ( return (
<WrapperView> <WrapperView>
<FlatList <FlatList
data={ data={
loadingOrders || errorOrders loadingOrders || errorOrders
? [] ? []
: orders.filter((o) => orderStatusInactive.includes(i18n.t(o.order_status))) : orders.filter((o) =>
orderStatusInactive.includes(o.order_status)
)
} }
style={styles.container} style={styles.container}
contentContainerStyle={styles.contentContainer} contentContainerStyle={styles.contentContainer}
@ -118,10 +121,10 @@ function MyOrders() {
<ActiveOrders <ActiveOrders
navigation={navigation} navigation={navigation}
activeOrders={orders.filter((o) => activeOrders={orders.filter((o) =>
orderStatusActive.includes(i18n.t(o.order_status)) orderStatusActive.includes(o.order_status)
)} )}
pastOrders={orders.filter((o) => pastOrders={orders.filter((o) =>
orderStatusInactive.includes(i18n.t(o.order_status)) orderStatusInactive.includes(o.order_status)
)} )}
loading={loadingOrders} loading={loadingOrders}
error={errorOrders} error={errorOrders}
@ -151,7 +154,7 @@ function MyOrders() {
</View> </View>
<View style={styles.infoContainer}> <View style={styles.infoContainer}>
<TextDefault H5 bold style={alignment.MBxSmall}> <TextDefault H5 bold style={alignment.MBxSmall}>
{i18n.t('idVar')} {i18n.t("idVar")}
{item.order_id} {item.order_id}
</TextDefault> </TextDefault>
<TextDefault line={3} textColor={colors.tagColor} H5 medium> <TextDefault line={3} textColor={colors.tagColor} H5 medium>

View File

@ -1,79 +1,72 @@
import { MaterialIcons } from '@expo/vector-icons' import { MaterialIcons } from "@expo/vector-icons";
import { useNavigation, useRoute, useTheme } from '@react-navigation/native' import { useNavigation, useRoute, useTheme } from "@react-navigation/native";
import React, { useContext, useEffect, useLayoutEffect } from 'react' import React, { useContext, useEffect, useLayoutEffect } from "react";
import { Platform, ScrollView, TouchableOpacity, View } from 'react-native' import { Platform, ScrollView, TouchableOpacity, View } from "react-native";
import MapView, { PROVIDER_DEFAULT, PROVIDER_GOOGLE } from 'react-native-maps' import MapView, { PROVIDER_DEFAULT, PROVIDER_GOOGLE } from "react-native-maps";
import i18n from '../../../i18n' import i18n from "../../../i18n";
import { import {
Spinner, Spinner,
TextDefault, TextDefault,
TextError, TextError,
TrackingRider, TrackingRider,
WrapperView WrapperView,
} from '../../components' } from "../../components";
import { orderStatuses } from '../../components/Menu/StatusCard/StatusCard' import { orderStatuses } from "../../components/Menu/StatusCard/StatusCard";
import ConfigurationContext from '../../context/Configuration' import ConfigurationContext from "../../context/Configuration";
import UserContext from '../../context/User' import UserContext from "../../context/User";
import { alignment } from '../../utils/alignment' import { alignment } from "../../utils/alignment";
import { NAVIGATION_SCREEN } from '../../utils/constant' import { NAVIGATION_SCREEN } from "../../utils/constant";
import { moderateScale, scale } from '../../utils/scaling' import { moderateScale, scale } from "../../utils/scaling";
import useStyle from './styles' import useStyle from "./styles";
function calculatePrice(food) { function calculatePrice(food) {
var foodPrice = food.variation.price var foodPrice = food.variation.price;
food.addons.forEach(addons => { food.addons.forEach((addons) => {
addons.options.forEach(addon => { addons.options.forEach((addon) => {
foodPrice += addon.price foodPrice += addon.price;
}) });
}) });
return foodPrice return foodPrice;
}
const checkStatus = status => {
const obj = orderStatuses.filter(x => {
return x.key === status
})
return obj[0]
} }
function OrderDetail() { function OrderDetail() {
const styles = useStyle() const styles = useStyle();
const route = useRoute() const route = useRoute();
const { colors } = useTheme() const { colors } = useTheme();
const navigation = useNavigation() const navigation = useNavigation();
const id = route.params._id ?? null const id = route.params._id ?? null;
const cart = route.params.clearCart ?? false const cart = route.params.clearCart ?? false;
const { loadingOrders, errorOrders, orders, clearCart } = const { loadingOrders, errorOrders, orders, clearCart } =
useContext(UserContext) useContext(UserContext);
const configuration = useContext(ConfigurationContext) const configuration = useContext(ConfigurationContext);
const order = orders.find(o => o._id === id) const order = orders.find((o) => o._id === id);
useLayoutEffect(() => { useLayoutEffect(() => {
navigation.setOptions({ navigation.setOptions({
headerTitle: i18n.t('orderDetail'), headerTitle: i18n.t("orderDetail"),
headerRight: null headerRight: null,
}) });
}, [navigation]) }, [navigation]);
useEffect(() => { useEffect(() => {
return () => { return () => {
if (cart) { if (cart) {
clear() clear();
} }
} };
}, [cart]) }, [cart]);
async function clear() { async function clear() {
await clearCart() await clearCart();
} }
if (loadingOrders || !order) return <Spinner /> if (loadingOrders || !order) return <Spinner />;
if (errorOrders) return <TextError text={i18n.t('error')} /> if (errorOrders) return <TextError text={i18n.t("error")} />;
return ( return (
<WrapperView> <WrapperView>
<ScrollView style={[styles.flex]}> <ScrollView style={[styles.flex]}>
<View> <View>
{i18n.t(order.order_status) === i18n.t('PICKED') && order.rider && ( {i18n.t(order.order_status) === i18n.t("PICKED") && order.rider && (
<TrackingRider <TrackingRider
delivery_address={order.delivery_address} delivery_address={order.delivery_address}
id={order.rider._id} id={order.rider._id}
@ -85,15 +78,17 @@ function OrderDetail() {
textColor={colors.buttonBackgroundBlue} textColor={colors.buttonBackgroundBlue}
bolder bolder
H3 H3
style={alignment.MBsmall}> style={alignment.MBsmall}
{i18n.t('thankYou')} >
{i18n.t("thankYou")}
</TextDefault> </TextDefault>
<TextDefault <TextDefault
textColor={colors.fontSecondColor} textColor={colors.fontSecondColor}
medium medium
H5 H5
style={[alignment.MTsmall]}> style={[alignment.MTsmall]}
{i18n.t('orderId')} >
{i18n.t("orderId")}
</TextDefault> </TextDefault>
<TextDefault H4 bolder style={alignment.PTxSmall}> <TextDefault H4 bolder style={alignment.PTxSmall}>
{order.order_id} {order.order_id}
@ -102,21 +97,24 @@ function OrderDetail() {
textColor={colors.fontSecondColor} textColor={colors.fontSecondColor}
bold bold
H5 H5
style={[alignment.MTlarge]}> style={[alignment.MTlarge]}
{i18n.t('status')} >
{i18n.t("status")}
</TextDefault> </TextDefault>
<TextDefault <TextDefault
textColor={colors.buttonBackgroundBlue} textColor={colors.buttonBackgroundBlue}
H4 H4
medium medium
style={[alignment.MBsmall, alignment.MTxSmall]}> style={[alignment.MBsmall, alignment.MTxSmall]}
{i18n.t(order.order_status)}{' '} >
{i18n.t(order.order_status)}{" "}
<TextDefault medium> <TextDefault medium>
( {checkStatus(i18n.t(order.order_status)).statusText}) {/* ({checkStatus(i18n.t(order.order_status))?.statusText || "..."}) */}
{`(${i18n.t(orderStatuses[order.order_status]?.statusText)})`}
</TextDefault> </TextDefault>
</TextDefault> </TextDefault>
<TextDefault textColor={colors.fontSecondColor} H5 bold> <TextDefault textColor={colors.fontSecondColor} H5 bold>
{i18n.t('deliveryAddress')}: {i18n.t("deliveryAddress")}:
</TextDefault> </TextDefault>
<TextDefault style={{ ...alignment.PTxSmall }} H5> <TextDefault style={{ ...alignment.PTxSmall }} H5>
{order.delivery_address.delivery_address} {order.delivery_address.delivery_address}
@ -128,18 +126,20 @@ function OrderDetail() {
<View style={[styles.marginBottom10, styles.orderReceipt]}> <View style={[styles.marginBottom10, styles.orderReceipt]}>
{order.items.map((item, index) => ( {order.items.map((item, index) => (
<View style={[styles.marginBottom10, styles.floatView]} key={index}> <View style={[styles.marginBottom10, styles.floatView]} key={index}>
<TextDefault H5 style={{ width: '10%' }}> <TextDefault H5 style={{ width: "10%" }}>
{item.quantity}x {item.quantity}x
</TextDefault> </TextDefault>
<TextDefault <TextDefault
textColor={colors.fontMainColor} textColor={colors.fontMainColor}
style={{ width: '65%' }}> style={{ width: "65%" }}
>
{item.food.title} {item.food.title}
</TextDefault> </TextDefault>
<TextDefault <TextDefault
textColor={colors.fontMainColor} textColor={colors.fontMainColor}
style={{ width: '25%' }} style={{ width: "25%" }}
right> right
>
{configuration.currency_symbol} {configuration.currency_symbol}
{parseFloat(calculatePrice(item)).toFixed(2)} {parseFloat(calculatePrice(item)).toFixed(2)}
</TextDefault> </TextDefault>
@ -150,14 +150,16 @@ function OrderDetail() {
<TextDefault <TextDefault
textColor={colors.fontMainColor} textColor={colors.fontMainColor}
medium medium
style={{ width: '40%' }}> style={{ width: "40%" }}
{i18n.t('subTotal')} >
{i18n.t("subTotal")}
</TextDefault> </TextDefault>
<TextDefault <TextDefault
textColor={colors.fontMainColor} textColor={colors.fontMainColor}
medium medium
style={{ width: '60%' }} style={{ width: "60%" }}
right> right
>
{configuration.currency_symbol} {configuration.currency_symbol}
{parseFloat(order.order_amount - order.delivery_charges).toFixed( {parseFloat(order.order_amount - order.delivery_charges).toFixed(
2 2
@ -168,14 +170,16 @@ function OrderDetail() {
<TextDefault <TextDefault
textColor={colors.fontMainColor} textColor={colors.fontMainColor}
medium medium
style={{ width: '40%' }}> style={{ width: "40%" }}
{i18n.t('deliveryFee')} >
{i18n.t("deliveryFee")}
</TextDefault> </TextDefault>
<TextDefault <TextDefault
textColor={colors.fontMainColor} textColor={colors.fontMainColor}
medium medium
style={{ width: '60%' }} style={{ width: "60%" }}
right> right
>
{configuration.currency_symbol} {configuration.currency_symbol}
{parseFloat(order.delivery_charges).toFixed(2)} {parseFloat(order.delivery_charges).toFixed(2)}
</TextDefault> </TextDefault>
@ -184,26 +188,29 @@ function OrderDetail() {
<TextDefault <TextDefault
textColor={colors.fontMainColor} textColor={colors.fontMainColor}
bold bold
style={{ width: '40%' }}> style={{ width: "40%" }}
{i18n.t('total')} >
{i18n.t("total")}
</TextDefault> </TextDefault>
<TextDefault <TextDefault
textColor={colors.fontMainColor} textColor={colors.fontMainColor}
bold bold
style={{ width: '60%' }} style={{ width: "60%" }}
right> right
>
{configuration.currency_symbol} {configuration.currency_symbol}
{parseFloat(order.order_amount).toFixed(2)} {parseFloat(order.order_amount).toFixed(2)}
</TextDefault> </TextDefault>
</View> </View>
</View> </View>
{i18n.t(order.order_status) === i18n.t('PICKED') && ( {i18n.t(order.order_status) === i18n.t("PICKED") && (
<View <View
style={{ style={{
...alignment.PLmedium, ...alignment.PLmedium,
...alignment.PRmedium, ...alignment.PRmedium,
height: moderateScale(250) height: moderateScale(250),
}}> }}
>
<MapView <MapView
style={{ flex: 1, borderRadius: 20 }} style={{ flex: 1, borderRadius: 20 }}
scrollEnabled={false} scrollEnabled={false}
@ -222,72 +229,78 @@ function OrderDetail() {
loadingEnabled={true} loadingEnabled={true}
loadingIndicatorColor="#d83765" loadingIndicatorColor="#d83765"
provider={ provider={
Platform.OS === 'android' ? PROVIDER_GOOGLE : PROVIDER_DEFAULT Platform.OS === "android" ? PROVIDER_GOOGLE : PROVIDER_DEFAULT
}></MapView> }
></MapView>
<View <View
style={{ style={{
...alignment.PTlarge, ...alignment.PTlarge,
width: '80%', width: "80%",
borderRadius: moderateScale(10), borderRadius: moderateScale(10),
alignSelf: 'center' alignSelf: "center",
}}> }}
>
<TouchableOpacity <TouchableOpacity
activeOpacity={0.8} activeOpacity={0.8}
style={{ style={{
backgroundColor: colors.buttonBackgroundBlue, backgroundColor: colors.buttonBackgroundBlue,
alignItems: 'center', alignItems: "center",
padding: moderateScale(16), padding: moderateScale(16),
borderRadius: moderateScale(10) borderRadius: moderateScale(10),
}}> }}
>
<TextDefault H5 bold textColor={colors.lightBackground}> <TextDefault H5 bold textColor={colors.lightBackground}>
{i18n.t('chatWithRider')} {i18n.t("chatWithRider")}
</TextDefault> </TextDefault>
</TouchableOpacity> </TouchableOpacity>
</View> </View>
</View> </View>
)} )}
{(i18n.t(order.order_status) === i18n.t('DELIVERED') || {(i18n.t(order.order_status) === i18n.t("DELIVERED") ||
i18n.t(order.order_status) === i18n.t('COMPLETED')) && i18n.t(order.order_status) === i18n.t("COMPLETED")) &&
order.review && order.review &&
order.review.rating === 0 && ( order.review.rating === 0 && (
<View style={styles.orderReceipt}> <View style={styles.orderReceipt}>
<TextDefault H3 bolder style={alignment.MBsmall}> <TextDefault H3 bolder style={alignment.MBsmall}>
{i18n.t('anySuggestion')} {i18n.t("anySuggestion")}
</TextDefault>
<TextDefault
textColor={colors.fontSecondColor}
bold
style={[alignment.MBsmall, alignment.MTsmall]}>
{i18n.t('reviewRegarding')}
</TextDefault>
<TouchableOpacity
activeOpacity={0.7}
style={[styles.floatView, { justifyContent: 'center' }]}
onPress={() =>
navigation.navigate(NAVIGATION_SCREEN.RateAndReview, {
_id: order._id
})
}>
<MaterialIcons
name="rate-review"
size={scale(20)}
color={colors.iconColorPrimary}
/>
<TextDefault
textColor={colors.iconColorPrimary}
style={[alignment.MBsmall, alignment.MTsmall, alignment.ML10]}
H5
bold
center>
{i18n.t('writeReview')}
</TextDefault> </TextDefault>
</TouchableOpacity> <TextDefault
</View> textColor={colors.fontSecondColor}
)} bold
style={[alignment.MBsmall, alignment.MTsmall]}
>
{i18n.t("reviewRegarding")}
</TextDefault>
<TouchableOpacity
activeOpacity={0.7}
style={[styles.floatView, { justifyContent: "center" }]}
onPress={() =>
navigation.navigate(NAVIGATION_SCREEN.RateAndReview, {
_id: order._id,
})
}
>
<MaterialIcons
name="rate-review"
size={scale(20)}
color={colors.iconColorPrimary}
/>
<TextDefault
textColor={colors.iconColorPrimary}
style={[alignment.MBsmall, alignment.MTsmall, alignment.ML10]}
H5
bold
center
>
{i18n.t("writeReview")}
</TextDefault>
</TouchableOpacity>
</View>
)}
</ScrollView> </ScrollView>
</WrapperView> </WrapperView>
) );
} }
export default OrderDetail export default OrderDetail;

View File

@ -1,11 +1,9 @@
import { useMutation } from "@apollo/react-hooks"; import { useMutation } from "@apollo/react-hooks";
import AsyncStorage from "@react-native-async-storage/async-storage"; import AsyncStorage from "@react-native-async-storage/async-storage";
import { useNavigation, useTheme } from "@react-navigation/native"; import { useNavigation, useTheme } from "@react-navigation/native";
import Constants from "expo-constants";
import * as Device from "expo-device"; import * as Device from "expo-device";
import * as Localization from "expo-localization"; import * as Localization from "expo-localization";
import * as Notifications from "expo-notifications"; import * as Notifications from "expo-notifications";
import * as Updates from "expo-updates";
import gql from "graphql-tag"; import gql from "graphql-tag";
import React, { useContext, useEffect, useRef, useState } from "react"; import React, { useContext, useEffect, useRef, useState } from "react";
import { import {
@ -18,7 +16,6 @@ import {
} from "react-native"; } from "react-native";
import { Modalize } from "react-native-modalize"; import { Modalize } from "react-native-modalize";
import { async } from "validate.js";
import i18n from "../../../i18n"; import i18n from "../../../i18n";
import { moderateScale } from "../../utils/scaling"; import { moderateScale } from "../../utils/scaling";
@ -78,7 +75,6 @@ function Settings() {
profile.is_order_notification profile.is_order_notification
); );
const [activeRadio, activeRadioSetter] = useState(languageTypes[0].index); const [activeRadio, activeRadioSetter] = useState(languageTypes[0].index);
// eslint-disable-next-line no-unused-vars
const [appState, setAppState] = useState(AppState.currentState); const [appState, setAppState] = useState(AppState.currentState);
const [uploadToken] = useMutation(PUSH_TOKEN); const [uploadToken] = useMutation(PUSH_TOKEN);
const [updateUserInfo] = useMutation(UPDATEUSER); const [updateUserInfo] = useMutation(UPDATEUSER);
@ -119,9 +115,12 @@ function Settings() {
}; };
useEffect(() => { useEffect(() => {
AppState.addEventListener("change", _handleAppStateChange); const subscription = AppState.addEventListener(
"change",
_handleAppStateChange
);
return () => { return () => {
AppState.remove("change", _handleAppStateChange); subscription.remove("change", _handleAppStateChange);
}; };
}, []); }, []);
@ -160,14 +159,13 @@ function Settings() {
"enatega-language", "enatega-language",
languageTypes[languageInd].code languageTypes[languageInd].code
); );
i18n.locale = languageTypes[languageInd].code i18n.locale = languageTypes[languageInd].code;
const lang = await AsyncStorage.getItem("enatega-language"); const lang = await AsyncStorage.getItem("enatega-language");
console.log(lang) console.log(lang);
const defLang = languageTypes.findIndex((el) => el.code === lang); const defLang = languageTypes.findIndex((el) => el.code === lang);
const langName = languageTypes[defLang].value; const langName = languageTypes[defLang].value;
activeRadioSetter(defLang); activeRadioSetter(defLang);
languageNameSetter(langName); languageNameSetter(langName);
// Updates.reloadAsync();
} }
}; };
@ -177,7 +175,7 @@ function Settings() {
function onCompleted() { function onCompleted() {
FlashMessage({ FlashMessage({
message: i18n.t('notificationUpdate'), message: i18n.t("notificationUpdate"),
}); });
} }
@ -250,7 +248,7 @@ function Settings() {
medium medium
H5 H5
> >
{i18n.t('language')} {i18n.t("language")}
</TextDefault> </TextDefault>
<TextDefault medium H5> <TextDefault medium H5>
({languageName}) ({languageName})
@ -283,7 +281,7 @@ function Settings() {
textColor={colors.statusSecondColor} textColor={colors.statusSecondColor}
> >
{" "} {" "}
{i18n.t('receiveOffers')}{" "} {i18n.t("receiveOffers")}{" "}
</TextDefault> </TextDefault>
<SwitchBtn <SwitchBtn
isEnabled={offerNotification} isEnabled={offerNotification}
@ -306,7 +304,7 @@ function Settings() {
textColor={colors.statusSecondColor} textColor={colors.statusSecondColor}
> >
{" "} {" "}
{i18n.t('getUpdatesText')}{" "} {i18n.t("getUpdatesText")}{" "}
</TextDefault> </TextDefault>
<SwitchBtn <SwitchBtn
isEnabled={orderNotification} isEnabled={orderNotification}
@ -325,7 +323,7 @@ function Settings() {
<View style={styles.notificationChekboxContainer}> <View style={styles.notificationChekboxContainer}>
<TextDefault numberOfLines={1} textColor={"red"}> <TextDefault numberOfLines={1} textColor={"red"}>
{" "} {" "}
{i18n.t('delAcc')}{" "} {i18n.t("delAcc")}{" "}
</TextDefault> </TextDefault>
<CustomIcon <CustomIcon
name={ICONS_NAME.Trash} name={ICONS_NAME.Trash}
@ -334,11 +332,6 @@ function Settings() {
/> />
</View> </View>
</TouchableOpacity> </TouchableOpacity>
<View style={styles.versionContainer}>
<TextDefault textColor={colors.fontSecondColor}>
{/* Version: {Constants.manifest.version} */}
</TextDefault>
</View>
</View> </View>
</View> </View>
<TextDefault <TextDefault
@ -346,7 +339,7 @@ function Settings() {
style={alignment.MBsmall} style={alignment.MBsmall}
center center
> >
{i18n.t('rightsReserved')} {i18n.t("rightsReserved")}
</TextDefault> </TextDefault>
{/* Modal for language Changes */} {/* Modal for language Changes */}
@ -381,7 +374,7 @@ function Settings() {
> >
<View style={{ flex: 1, alignItems: "center" }}> <View style={{ flex: 1, alignItems: "center" }}>
<TextDefault bolder H5 style={{ marginTop: 20 }}> <TextDefault bolder H5 style={{ marginTop: 20 }}>
{i18n.t('delAccText')} {i18n.t("delAccText")}
</TextDefault> </TextDefault>
<TouchableOpacity <TouchableOpacity
activeOpacity={0.7} activeOpacity={0.7}
@ -409,7 +402,7 @@ function Settings() {
style={[styles.width100, alignment.PBlarge, alignment.PTlarge]} style={[styles.width100, alignment.PBlarge, alignment.PTlarge]}
onPress={() => onClose()} onPress={() => onClose()}
> >
<TextDefault center>{i18n.t('cancel')}</TextDefault> <TextDefault center>{i18n.t("cancel")}</TextDefault>
</TouchableOpacity> </TouchableOpacity>
</View> </View>
</Modalize> </Modalize>

View File

@ -1,249 +1,252 @@
export const ar = { export const ar = {
home: 'الصفحة الرئيسية', home: "الصفحة الرئيسية",
title0: 'اللغة المختارة', title0: "اللغة المختارة",
subtitle0: 'العربية', subtitle0: "العربية",
description0: description0:
'اختر أي لغة تريد لتغيير محتوى التطبيق إلى اللغة المطلوبة لديك.', "اختر أي لغة تريد لتغيير محتوى التطبيق إلى اللغة المطلوبة لديك.",
title1: 'لذيذ', title1: "لذيذ",
subtitle1: 'الفطور', subtitle1: "الفطور",
description1: description1:
'الفطور هو كل شيء. البداية، الشيء الأول. إنها اللقمة التي هي الالتزام بيوم جديد، حياة مستمرة.', "الفطور هو كل شيء. البداية، الشيء الأول. إنها اللقمة التي هي الالتزام بيوم جديد، حياة مستمرة.",
title2: 'منعش', title2: "منعش",
subtitle2: 'المشروبات', subtitle2: "المشروبات",
description2: description2:
'الصمت الحقيقي هو راحة العقل، وهو للروح ما النوم للجسم، غذاء وانتعاش.', "الصمت الحقيقي هو راحة العقل، وهو للروح ما النوم للجسم، غذاء وانتعاش.",
title3: 'لذيذ', title3: "لذيذ",
subtitle3: 'آيس كريم', subtitle3: "آيس كريم",
description3: description3:
'العمر لا يقلل من خيبة الأمل الشديدة من سقوط ملعقة من الآيس كريم من المخروط', "العمر لا يقلل من خيبة الأمل الشديدة من سقوط ملعقة من الآيس كريم من المخروط",
getStarted: 'ابدأ!', getStarted: "ابدأ!",
welcome: welcome:
"مرحبًا بك في Enatega، في بعض الأحيان كل ما تحتاجه هو الحب. لكن القليل من الطعام بين الحين والآخر لا يضر.", "مرحبًا بك في Enatega، في بعض الأحيان كل ما تحتاجه هو الحب. لكن القليل من الطعام بين الحين والآخر لا يضر.",
loginBtn: 'تسجيل الدخول', loginBtn: "تسجيل الدخول",
registerBtn: 'تسجيل', registerBtn: "تسجيل",
name: 'الاسم', name: "الاسم",
phone: 'رقم الهاتف', phone: "رقم الهاتف",
email: 'البريد الإلكتروني', email: "البريد الإلكتروني",
emailphone: 'البريد الإلكتروني أو الهاتف', emailphone: "البريد الإلكتروني أو الهاتف",
password: 'كلمه السر', password: "كلمه السر",
deliveryAddress: 'عنوان التسليم', deliveryAddress: "عنوان التسليم",
fullDeliveryAddress: 'عنوان التسليم الكامل', fullDeliveryAddress: "عنوان التسليم الكامل",
deliveryDetails: 'التفاصيل المطلوبة - على سبيل المثال الطابق / المبنى', deliveryDetails: "التفاصيل المطلوبة - على سبيل المثال الطابق / المبنى",
myAddresses: 'عناويني', myAddresses: "عناويني",
addAddress: 'إضافة عنوان', addAddress: "إضافة عنوان",
editAddress: 'تعديل العنوان', editAddress: "تعديل العنوان",
registerText: 'أو سجل مع', registerText: "أو سجل مع",
forgotPassword: 'نسيت كلمة السر؟', forgotPassword: "نسيت كلمة السر؟",
loginText: 'أو تسجيل الدخول مع', loginText: "أو تسجيل الدخول مع",
deliveryLocation: deliveryLocation:
'قم بتشغيل الموقع حتى نتمكن من إرسال إليك طعم لا نهاية له من الطعام اللذيذ.', "قم بتشغيل الموقع حتى نتمكن من إرسال إليك طعم لا نهاية له من الطعام اللذيذ.",
locationBtn: 'تشغيل الموقع', locationBtn: "تشغيل الموقع",
locationPermissionDenied: 'تم رفض إذن الوصول إلى الموقع', locationPermissionDenied: "تم رفض إذن الوصول إلى الموقع",
cameraRollPermissionDenied: 'تم رفض إذن الوصول إلى Camera Roll', cameraRollPermissionDenied: "تم رفض إذن الوصول إلى Camera Roll",
locationOff: 'قم بتشغيل الموقع وحاول مرة أخرى', locationOff: "قم بتشغيل الموقع وحاول مرة أخرى",
titleLanguage: 'تغيير اللغة', titleLanguage: "تغيير اللغة",
titleMenu: 'القائمة', titleMenu: "القائمة",
titleOrders: 'طلباتي', titleOrders: "طلباتي",
titleNotifications: 'الإشعارات', titleNotifications: "الإشعارات",
titleReviews: 'المشاركات', titleReviews: "المشاركات",
titleProfile: 'الملف الشخصي', titleProfile: "الملف الشخصي",
titleSettings: 'الإعدادات', titleSettings: "الإعدادات",
titleHelp: 'مساعدة', titleHelp: "مساعدة",
titleChat: 'الدردشة', titleChat: "الدردشة",
titleLogout: 'تسجيل خروج', titleLogout: "تسجيل خروج",
titleCart: 'عربتي', titleCart: "عربتي",
titlePayment: 'دفع', titlePayment: "دفع",
totalOrderAmount: 'إجمالي المبلغ المستحق', totalOrderAmount: "إجمالي المبلغ المستحق",
reOrder: 'إعادة ترتيب', reOrder: "إعادة ترتيب",
unReadNotifications: 'لا توجد إشعارات غير مقروءة', unReadNotifications: "لا توجد إشعارات غير مقروءة",
upload: 'حمل', upload: "حمل",
saveBtn: 'حفظ التغييرات', saveBtn: "حفظ التغييرات",
saveContBtn: 'حفظ واستمر', saveContBtn: "حفظ واستمر",
emailUs: 'أرسل لنا بريدًا إلكترونيًا على', emailUs: "أرسل لنا بريدًا إلكترونيًا على",
question1: 'أين نجد الطعام؟', question1: "أين نجد الطعام؟",
question2: 'كيف نتصل؟', question2: "كيف نتصل؟",
question3: 'كيف يمكنني دفع ثمن عامل التوصيل؟', question3: "كيف يمكنني دفع ثمن عامل التوصيل؟",
question4: 'هل الخدمة متوفرة في مدينتي؟', question4: "هل الخدمة متوفرة في مدينتي؟",
answer1: answer1:
'يمكنك العثور على الطعام في أقرب متجر إليك دون دفع أي شيء لخدمة العملاء. تهمتنا منخفضة للغاية مقارنة بالآخرين.', "يمكنك العثور على الطعام في أقرب متجر إليك دون دفع أي شيء لخدمة العملاء. تهمتنا منخفضة للغاية مقارنة بالآخرين.",
answer2: 'يمكنك الاتصال بنا من خلال البريد الإلكتروني أو رقم الهاتف أو موقعنا الإلكتروني.', answer2:
"يمكنك الاتصال بنا من خلال البريد الإلكتروني أو رقم الهاتف أو موقعنا الإلكتروني.",
answer3: answer3:
'يمكنك دفع ثمن عامل التوصيل شخصيًا أو الدفع عبر الإنترنت أيضًا باستخدام بطاقة الائتمان أو الخصم.', "يمكنك دفع ثمن عامل التوصيل شخصيًا أو الدفع عبر الإنترنت أيضًا باستخدام بطاقة الائتمان أو الخصم.",
answer4: answer4:
'تتوفر هذه الخدمة حاليًا في مدن إسلام آباد وكراتشي يمكنك الاتصال بنا للاستفادة من هذه الخدمة في مدينتك.', "تتوفر هذه الخدمة حاليًا في مدن إسلام آباد وكراتشي يمكنك الاتصال بنا للاستفادة من هذه الخدمة في مدينتك.",
add: 'إضافة', add: "إضافة",
quantity: 'الكمية', quantity: "الكمية",
size: 'الحجم', size: "الحجم",
addToCart: 'أضف إلى العربة', addToCart: "أضف إلى العربة",
orderNow: 'اطلب الآن', orderNow: "اطلب الآن",
addToCartMessage: 'أضيف إلى العربة', addToCartMessage: "أضيف إلى العربة",
emptyCart: 'لا يوجد عناصر في العربة', emptyCart: "لا يوجد عناصر في العربة",
itemTotal: 'إجمالي العنصر', itemTotal: "إجمالي العنصر",
delvieryCharges: 'رسوم التوصيل', delvieryCharges: "رسوم التوصيل",
total: 'مجموع', total: "مجموع",
contactInfo: 'معلومات الاتصال', contactInfo: "معلومات الاتصال",
deliveryAddressmessage: 'تعيين عنوان التسليم', deliveryAddressmessage: "تعيين عنوان التسليم",
proceedCheckout: 'المتابعة إلى الدفع', proceedCheckout: "المتابعة إلى الدفع",
paymentText: 'كيف ترغب في الدفع؟', paymentText: "كيف ترغب في الدفع؟",
checkout: 'الدفع', checkout: "الدفع",
creditCart: 'بطاقة الائتمان / بطاقة الخصم', creditCart: "بطاقة الائتمان / بطاقة الخصم",
paypal: 'باي بال', paypal: "باي بال",
cod: 'الدفع عند الاستلام', cod: "الدفع عند الاستلام",
thankYou: 'شكرا لك!', thankYou: "شكرا لك!",
orderConfirmed: 'تم تأكيد طلبك', orderConfirmed: "تم تأكيد طلبك",
orderId: 'معرف الطلب الخاص بك', orderId: "معرف الطلب الخاص بك",
orderAmount: 'المبلغ المستحق لطلبك', orderAmount: "المبلغ المستحق لطلبك",
orderDetail: 'تفاصيل الطلب', orderDetail: "تفاصيل الطلب",
paymentMethod: 'طريقة الدفع', paymentMethod: "طريقة الدفع",
trackOrder: 'تتبع الطلب', trackOrder: "تتبع الطلب",
backToMenu: 'العودة إلى القائمة', backToMenu: "العودة إلى القائمة",
foodItem: 'صنف غذائي', foodItem: "صنف غذائي",
deliveredTo: 'تسليم إلى', deliveredTo: "تسليم إلى",
writeAReview: 'اكتب مراجعة', writeAReview: "اكتب مراجعة",
orderReceived: 'استلام الطلب', orderReceived: "استلام الطلب",
orderPicked: 'طلبك في طريقه', orderPicked: "طلبك في طريقه",
orderDelivered: 'تم التوصيل', orderDelivered: "تم التوصيل",
completed: 'اكتمل', completed: "اكتمل",
cancelled: 'ألغي', cancelled: "ألغي",
orderPreparing: 'يتم تحضير طلبك', orderPreparing: "يتم تحضير طلبك",
delivered: 'تم التوصيل', delivered: "تم التوصيل",
rateAndReview: 'التقييم والمراجعة', rateAndReview: "التقييم والمراجعة",
reviewPlaceholder: 'تحصل المراجعات الأكثر تفصيلاً على مزيد من الرؤية ...', reviewPlaceholder: "تحصل المراجعات الأكثر تفصيلاً على مزيد من الرؤية ...",
submit: 'ارسال', submit: "ارسال",
noWorriesText: 'لا تقلق، دعنا نساعدك!', noWorriesText: "لا تقلق، دعنا نساعدك!",
yourEmail: 'بريدك الإلكتروني', yourEmail: "بريدك الإلكتروني",
send: 'ارسال', send: "ارسال",
apply: 'تطبيق', apply: "تطبيق",
checkEmail: 'تحقق من بريدك الإلكتروني للحصول على رابط إعادة تعيين كلمة المرور', checkEmail:
languageText: 'الرجاء تحديد اللغة المطلوبة', "تحقق من بريدك الإلكتروني للحصول على رابط إعادة تعيين كلمة المرور",
countryCodePickerTranslation: 'العربية', languageText: "الرجاء تحديد اللغة المطلوبة",
countryCodeSelect: 'اختر رمز البلد', countryCodePickerTranslation: "العربية",
paymentNotSupported: 'طريقة الدفع هذه لا تدعم هذه العملة', countryCodeSelect: "اختر رمز البلد",
loginOrCreateAccount: 'تسجيل الدخول / إنشاء حساب', paymentNotSupported: "طريقة الدفع هذه لا تدعم هذه العملة",
unReadReviews: 'لا توجد مراجعات حتى الآن!', loginOrCreateAccount: "تسجيل الدخول / إنشاء حساب",
unReadOrders: 'لا توجد طلبات حتى الآن!', unReadReviews: "لا توجد مراجعات حتى الآن!",
error: 'خطأ', unReadOrders: "لا توجد طلبات حتى الآن!",
noMoreItems: 'لا يوجد المزيد من العناصر في المخزون', error: "خطأ",
hungry: 'جائع', noMoreItems: "لا يوجد المزيد من العناصر في المخزون",
emptyCartBtn: 'العودة إلى الطعام', hungry: "جائع",
subTotal: 'المجموع الفرعي', emptyCartBtn: "العودة إلى الطعام",
deliveryFee: 'رسوم التوصيل', subTotal: "المجموع الفرعي",
haveVoucher: 'هل لديك قسيمة؟', deliveryFee: "رسوم التوصيل",
remove: 'ازالة', haveVoucher: "هل لديك قسيمة؟",
change: 'تغيير', remove: "ازالة",
condition1: 'باستكمال هذا الطلب، أوافق على جميع الشروط والأحكام.', change: "تغيير",
condition1: "باستكمال هذا الطلب، أوافق على جميع الشروط والأحكام.",
condition2: condition2:
'أوافق وأطالبك بتنفيذ الخدمة المطلوبة قبل نهاية فترة الإلغاء. أنا أدرك أنه بعد الإكمال الكامل للخدمة أفقد حق التراجع عن الشراء.', "أوافق وأطالبك بتنفيذ الخدمة المطلوبة قبل نهاية فترة الإلغاء. أنا أدرك أنه بعد الإكمال الكامل للخدمة أفقد حق التراجع عن الشراء.",
orderBtn: 'تقديم الطلب', orderBtn: "تقديم الطلب",
coupanApply: 'تم تطبيق خصم القسيمة', coupanApply: "تم تطبيق خصم القسيمة",
coupanFailed: 'القسيمة غير متوفرة', coupanFailed: "القسيمة غير متوفرة",
invalidCoupan: 'قسيمة غير صالحة', invalidCoupan: "قسيمة غير صالحة",
validateItems: 'أضف عناصر إلى العربة قبل الدفع', validateItems: "أضف عناصر إلى العربة قبل الدفع",
validateDelivery: 'تعيين عنوان التسليم قبل الدفع', validateDelivery: "تعيين عنوان التسليم قبل الدفع",
language: 'اللغة', language: "اللغة",
getUpdatesText: 'احصل على تحديثات حول حالة طلبك!', getUpdatesText: "احصل على تحديثات حول حالة طلبك!",
delAcc: 'حذف الحساب', delAcc: "حذف الحساب",
delAccText: 'هل أنت متأكد أنك تريد حذف الحساب؟', delAccText: "هل أنت متأكد أنك تريد حذف الحساب؟",
cancel: 'إلغاء', cancel: "إلغاء",
receiveOffers: 'تلقي عروض خاصة', receiveOffers: "تلقي عروض خاصة",
notificationUpdate: "تم تحديث حالة الإشعار", notificationUpdate: "تم تحديث حالة الإشعار",
notificationsNotWorking: "الإشعارات لا تعمل على المحاكاة", notificationsNotWorking: "الإشعارات لا تعمل على المحاكاة",
loginOrCreateAcc: "تسجيل الدخول / إنشاء حساب", loginOrCreateAcc: "تسجيل الدخول / إنشاء حساب",
welcome: "مرحبا", welcome: "مرحبا",
noItems: 'لا توجد عناصر', noItems: "لا توجد عناصر",
featured: 'متميز', featured: "متميز",
filters: 'التصفية', filters: "التصفية",
reset: 'إعادة تعيين', reset: "إعادة تعيين",
showSaleItems: 'إظهار العناصر المخفضة فقط', showSaleItems: "إظهار العناصر المخفضة فقط",
showStockItems: 'إظهار العناصر المتوفرة فقط', showStockItems: "إظهار العناصر المتوفرة فقط",
priceRange: 'نطاق السعر', priceRange: "نطاق السعر",
sorting: 'الفرز', sorting: "الفرز",
applyFilter: 'تطبيق التصفية', applyFilter: "تطبيق التصفية",
close: 'إغلاق', close: "إغلاق",
phoneNumberRequired: 'رقم الهاتف مطلوب', phoneNumberRequired: "رقم الهاتف مطلوب",
phoneNumberMissing: 'رقم الهاتف مفقود', phoneNumberMissing: "رقم الهاتف مفقود",
userInfoUpdated: 'تم تحديث معلومات المستخدم', userInfoUpdated: "تم تحديث معلومات المستخدم",
nameReq: 'الاسم مطلوب', nameReq: "الاسم مطلوب",
minWords: 'يسمح بأقل 11 وأقصى 15 حرفًا', minWords: "يسمح بأقل 11 وأقصى 15 حرفًا",
rightsReserved: 'جميع الحقوق محفوظة لشركة Enatega', rightsReserved: "جميع الحقوق محفوظة لشركة Enatega",
changePass: 'تغيير كلمة المرور', changePass: "تغيير كلمة المرور",
currentPass: 'كلمة المرور الحالية', currentPass: "كلمة المرور الحالية",
passReq: 'كلمة المرور مطلوبة', passReq: "كلمة المرور مطلوبة",
newPass: 'كلمة المرور الجديدة', newPass: "كلمة المرور الجديدة",
invalidPass: 'كلمة مرور غير صالحة', invalidPass: "كلمة مرور غير صالحة",
passChange: 'تم تحديث كلمة المرور', passChange: "تم تحديث كلمة المرور",
noOrdersFound: 'لا توجد طلبات', noOrdersFound: "لا توجد طلبات",
startShopping: 'ابدأ التسوق', startShopping: "ابدأ التسوق",
reOrder: 'إعادة الطلب', reOrder: "إعادة الطلب",
smthWrong: 'هناك خطأ ما', smthWrong: "هناك خطأ ما",
noOrdersAssigned: 'لا توجد طلبات معينة بعد!', noOrdersAssigned: "لا توجد طلبات معينة بعد!",
oldOrder: 'طلب قديم', oldOrder: "طلب قديم",
activeOrder: 'طلب نشط', activeOrder: "طلب نشط",
idVar: 'المعرف: ', idVar: "المعرف: ",
addressUpdated: 'تم تحديث العنوان', addressUpdated: "تم تحديث العنوان",
labelAs: 'التسمية ك', labelAs: "التسمية ك",
addressReq: 'عنوان التسليم مطلوب', addressReq: "عنوان التسليم مطلوب",
deliveryDetailsReq: 'تفاصيل التسليم مطلوبة', deliveryDetailsReq: "تفاصيل التسليم مطلوبة",
locaPermission: 'لم يتم منح إذن الموقع', locaPermission: "لم يتم منح إذن الموقع",
addressAdded: 'تمت إضافة العنوان', addressAdded: "تمت إضافة العنوان",
productPage: 'صفحة المنتج', productPage: "صفحة المنتج",
Docs: 'المستندات', Docs: "المستندات",
Blog: 'المدونة', Blog: "المدونة",
aboutUs: 'عنا', aboutUs: "عنا",
myVouchers: 'قسائمي', myVouchers: "قسائمي",
typeVoucherCode: 'اكتب رمز القسيمة', typeVoucherCode: "اكتب رمز القسيمة",
enterVoucherCode: 'أدخل رمز القسيمة الخاص بك', enterVoucherCode: "أدخل رمز القسيمة الخاص بك",
status: 'الحالة', status: "الحالة",
anySuggestion: 'هل لديك أي اقتراح؟', anySuggestion: "هل لديك أي اقتراح؟",
reviewRegarding: 'مراجعة بخصوص طلبك؟', reviewRegarding: "مراجعة بخصوص طلبك؟",
writeReview: 'اكتب مراجعة', writeReview: "اكتب مراجعة",
chatWithRider: 'الدردشة مع المتسلم', chatWithRider: "الدردشة مع المتسلم",
signupGoogle: 'التسجيل باستخدام Google', signupGoogle: "التسجيل باستخدام Google",
signupEmail: 'التسجيل باستخدام البريد الإلكتروني', signupEmail: "التسجيل باستخدام البريد الإلكتروني",
signup: 'تسجيل', signup: "تسجيل",
signupApple: 'التسجيل باستخدام Apple', signupApple: "التسجيل باستخدام Apple",
alreadyMember: 'عضو بالفعل؟ سجل الدخول', alreadyMember: "عضو بالفعل؟ سجل الدخول",
enterUsername: 'أدخل البريد الإلكتروني وكلمة المرور', enterUsername: "أدخل البريد الإلكتروني وكلمة المرور",
createNewAcc: 'إنشاء حساب جديد', createNewAcc: "إنشاء حساب جديد",
emailphoneReq: 'البريد الإلكتروني / الهاتف مطلوب', emailphoneReq: "البريد الإلكتروني / الهاتف مطلوب",
invalidMail: 'بريد إلكتروني / هاتف غير صالح', invalidMail: "بريد إلكتروني / هاتف غير صالح",
passReq: 'كلمة المرور مطلوبة', passReq: "كلمة المرور مطلوبة",
cantLogin: 'لا يمكنك تسجيل الدخول، هذا الحساب محذوف!', cantLogin: "لا يمكنك تسجيل الدخول، هذا الحساب محذوف!",
orderPending: 'طلبك لا يزال معلقًا.', orderPending: "طلبك لا يزال معلقًا.",
prepFood: 'المطعم يحضر الطعام.', prepFood: "المطعم يحضر الطعام.",
riderOnWay: 'المتسلم في طريقه.', riderOnWay: "المتسلم في طريقه.",
orderDelivered: 'تم تسليم الطلب.', orderDelivered: "تم تسليم الطلب.",
completeOrder: 'تم الانتهاء من الطلب.', completeOrder: "تم الانتهاء من الطلب.",
PENDING: 'معلق', PENDING: "معلق",
ACCEPTED: 'مقبول', ACCEPTED: "مقبول",
PICKED: 'مستلم', PICKED: "مستلم",
DELIVERED: 'مسلم', DELIVERED: "مسلم",
COMPLETED: 'اكتمل', COMPLETED: "اكتمل",
'Default': 'الافتراضي', Default: "الافتراضي",
'Ascending (A-Z)': 'تصاعدي (أ-ي)', "Ascending (A-Z)": "تصاعدي (أ-ي)",
'Descending (Z-A)': 'تنازلي (ي-أ)', "Descending (Z-A)": "تنازلي (ي-أ)",
'Price (Low - High)': 'السعر (منخفض - مرتفع)', "Price (Low - High)": "السعر (منخفض - مرتفع)",
'Price (High - Low)': 'السعر (مرتفع - منخفض)', "Price (High - Low)": "السعر (مرتفع - منخفض)",
Home: 'الرئيسية', Home: "الرئيسية",
Work: 'العمل', Work: "العمل",
Other: 'آخر', Other: "آخر",
NoStock: 'نفاذ الكمية', NoStock: "نفاذ الكمية",
ItemOutOfStock: 'العنصر غير متوفر حالياً', ItemOutOfStock: "العنصر غير متوفر حالياً",
SelectLanguage: 'اختر اللغة', SelectLanguage: "اختر اللغة",
Done: 'تم', Done: "تم",
Cancel: 'إلغاء', Cancel: "إلغاء",
NoFoods: 'لا توجد أطعمة', NoFoods: "لا توجد أطعمة",
CartIsEmpty: 'السلة فارغة.', CartIsEmpty: "السلة فارغة.",
SetPaymentMethod: 'يرجى تحديد وسيلة الدفع قبل الخروج', SetPaymentMethod: "يرجى تحديد وسيلة الدفع قبل الخروج",
AnErrorOccured: 'حدث خطأ. الرجاء المحاولة مرة أخرى', AnErrorOccured: "حدث خطأ. الرجاء المحاولة مرة أخرى",
ResetPasswordLinkSent: 'تم إرسال رابط إعادة تعيين كلمة المرور إلى بريدك الإلكتروني', ResetPasswordLinkSent:
LocationPermissionNotGranted: 'لم يتم منح إذن الموقع', "تم إرسال رابط إعادة تعيين كلمة المرور إلى بريدك الإلكتروني",
NoFooditemFound: 'لم يتم العثور على عنصر طعام', LocationPermissionNotGranted: "لم يتم منح إذن الموقع",
SavedYet: 'لم تقم بحفظ أي عنوان بعد.', NoFooditemFound: "لم يتم العثور على عنصر طعام",
ClickAddNewAddress: 'انقر فوق إضافة عنوان جديد للبدء', SavedYet: "لم تقم بحفظ أي عنوان بعد.",
NoAddressesfound: 'لم يتم العثور على عناوين.', ClickAddNewAddress: "انقر فوق إضافة عنوان جديد للبدء",
AddNewAddress: 'إضافة عنوان جديد', NoAddressesfound: "لم يتم العثور على عناوين.",
'About Us': 'من نحن', AddNewAddress: "إضافة عنوان جديد",
'Product Page': 'صفحة المنتج', "About Us": "من نحن",
"Product Page": "صفحة المنتج",
} "Change Payment Method": "قم بتغيير آلية الدفع",
};

View File

@ -1,164 +1,165 @@
export const de = { export const de = {
home: 'Home', home: "Startseite",
title0: 'Gewählte Sprache', title0: "Gewählte Sprache",
subtitle0: 'English', subtitle0: "English",
description0: description0:
'Wählen Sie eine Sprache Ihrer Wahl, um den Inhalt der App in die gewünschte Sprache zu ändern.', "Wählen Sie eine Sprache Ihrer Wahl, um den Inhalt der App in die gewünschte Sprache zu ändern.",
title1: 'Lecker', title1: "Lecker",
subtitle1: 'Frühstück', subtitle1: "Frühstück",
description1: description1:
'Frühstück ist alles. Der Anfang, das Erste. Es ist der Mundvoll, der die Verpflichtung zu einem neuen Tag, einem fortwährenden Leben ist.', "Frühstück ist alles. Der Anfang, das Erste. Es ist der Mundvoll, der die Verpflichtung zu einem neuen Tag, einem fortwährenden Leben ist.",
title2: 'Erfrischend', title2: "Erfrischend",
subtitle2: 'Getränke', subtitle2: "Getränke",
description2: description2:
'Wahre Stille ist der Rest des Geistes und ist für den Geist das, was Schlaf für den Körper ist, Nahrung und Erfrischung.', "Wahre Stille ist der Rest des Geistes und ist für den Geist das, was Schlaf für den Körper ist, Nahrung und Erfrischung.",
title3: 'Köstlich', title3: "Köstlich",
subtitle3: 'Eis', subtitle3: "Eis",
description3: description3:
'Das Alter mindert nicht die extreme Enttäuschung darüber, dass eine Kugel Eis vom Kegel fällt', "Das Alter mindert nicht die extreme Enttäuschung darüber, dass eine Kugel Eis vom Kegel fällt",
getStarted: 'Loslegen!', getStarted: "Loslegen!",
welcome: welcome:
'Willkommen bei Enatega, manchmal brauchen Sie nur Liebe. Aber ein bisschen Essen tut ab und zu nicht weh.', "Willkommen bei Enatega, manchmal brauchen Sie nur Liebe. Aber ein bisschen Essen tut ab und zu nicht weh.",
loginBtn: 'Anmeldung', loginBtn: "Anmeldung",
registerBtn: 'Registrieren', registerBtn: "Registrieren",
name: 'Name', name: "Name",
phone: 'Telefon', phone: "Telefon",
email: 'Email', email: "Email",
emailphone: 'E-Mail oder Telefon', emailphone: "E-Mail oder Telefon",
password: 'Passwort', password: "Passwort",
deliveryAddress: 'Lieferadresse', deliveryAddress: "Lieferadresse",
fullDeliveryAddress: 'Ihre vollständige Lieferadresse', fullDeliveryAddress: "Ihre vollständige Lieferadresse",
deliveryDetails: 'Erforderliche Angaben, z. Boden / Gebäude', deliveryDetails: "Erforderliche Angaben, z. Boden / Gebäude",
myAddresses: 'Meine Adressen', myAddresses: "Meine Adressen",
addAddress: 'Neue Adressen hinzufügen', addAddress: "Neue Adressen hinzufügen",
editAddress: 'Adresse bearbeiten', editAddress: "Adresse bearbeiten",
registerText: 'Oder registriere dich bei', registerText: "Oder registriere dich bei",
forgotPassword: 'Passwort vergessen?', forgotPassword: "Passwort vergessen?",
loginText: 'Oder Einloggen mit', loginText: "Oder Einloggen mit",
deliveryLocation: deliveryLocation:
'Stellen Sie Ihren Lieferort so ein, dass wir Ihnen einen unendlichen Geschmack köstlichen Essens zusenden können.', "Stellen Sie Ihren Lieferort so ein, dass wir Ihnen einen unendlichen Geschmack köstlichen Essens zusenden können.",
locationBtn: 'Standort einschalten', locationBtn: "Standort einschalten",
locationPermissionDenied: locationPermissionDenied:
'Die Berechtigung zum Zugriff auf den Speicherort wurde verweigert', "Die Berechtigung zum Zugriff auf den Speicherort wurde verweigert",
locationOff: 'Ort einschalten und erneut versuchen', locationOff: "Ort einschalten und erneut versuchen",
titleLanguage: 'Sprache ändern', titleLanguage: "Sprache ändern",
titleMenu: 'Speisekarte', titleMenu: "Speisekarte",
titleOrders: 'meine Bestellungen', titleOrders: "meine Bestellungen",
titleNotifications: 'Benachrichtigungen', titleNotifications: "Benachrichtigungen",
titleReviews: 'Bewertungen', titleReviews: "Bewertungen",
titleProfile: 'Profiel', titleProfile: "Profiel",
titleHelp: 'Hilfe', titleHelp: "Hilfe",
titleChat: 'Plaudern', titleChat: "Plaudern",
titleLogout: 'Ausloggen', titleLogout: "Ausloggen",
titleCart: 'Mein Warenkorb', titleCart: "Mein Warenkorb",
titlePayment: 'Zahlung', titlePayment: "Zahlung",
totalOrderAmount: 'Gesamtbestellmenge', totalOrderAmount: "Gesamtbestellmenge",
reOrder: 'Nachbestellen', reOrder: "Nachbestellen",
unReadNotifications: 'Keine ungelesenen Benachrichtigungen', unReadNotifications: "Keine ungelesenen Benachrichtigungen",
upload: 'Hochladen', upload: "Hochladen",
saveBtn: 'sparen', saveBtn: "sparen",
saveContBtn: 'SPEICHERN UND FORTFAHREN', saveContBtn: "SPEICHERN UND FORTFAHREN",
emailUs: 'Mailen Sie uns an', emailUs: "Mailen Sie uns an",
question1: 'Wo finden wir das Essen?', question1: "Wo finden wir das Essen?",
question2: 'Wie treten wir in Kontakt?', question2: "Wie treten wir in Kontakt?",
question3: 'Wie kann ich den Zusteller bezahlen?', question3: "Wie kann ich den Zusteller bezahlen?",
question4: 'Ist der Dienst in meiner Stadt verfügbar?', question4: "Ist der Dienst in meiner Stadt verfügbar?",
answer1: answer1:
'Sie finden das Essen in einem Geschäft in Ihrer Nähe, ohne den Kundenservice zu belasten. Unsere Gebühren sind im Vergleich zu anderen extrem niedrig.', "Sie finden das Essen in einem Geschäft in Ihrer Nähe, ohne den Kundenservice zu belasten. Unsere Gebühren sind im Vergleich zu anderen extrem niedrig.",
answer2: answer2:
'Sie können uns über unsere E-Mail, Telefonnummer oder unsere Website kontaktieren.', "Sie können uns über unsere E-Mail, Telefonnummer oder unsere Website kontaktieren.",
answer3: answer3:
'Sie können den Zusteller persönlich bezahlen oder auch online mit Kredit- oder Debitkarte bezahlen.', "Sie können den Zusteller persönlich bezahlen oder auch online mit Kredit- oder Debitkarte bezahlen.",
answer4: answer4:
'Derzeit ist dieser Service in den Städten Islamabad und Karachi verfügbar. Sie können uns kontaktieren, um diesen Service in Ihrer Stadt in Anspruch zu nehmen.', "Derzeit ist dieser Service in den Städten Islamabad und Karachi verfügbar. Sie können uns kontaktieren, um diesen Service in Ihrer Stadt in Anspruch zu nehmen.",
add: 'HINZUFÜGEN', add: "HINZUFÜGEN",
quantity: 'Menge', quantity: "Menge",
size: 'Größe', size: "Größe",
addToCart: 'in den Warenkorb legen', addToCart: "in den Warenkorb legen",
orderNow: 'Jetzt bestellen', orderNow: "Jetzt bestellen",
addToCartMessage: 'Zum Warenkorb hinzugefügt', addToCartMessage: "Zum Warenkorb hinzugefügt",
emptyCart: 'Keine Artikel im Warenkorb', emptyCart: "Keine Artikel im Warenkorb",
itemTotal: 'Artikel Gesamt', itemTotal: "Artikel Gesamt",
delvieryCharges: 'Versandkosten', delvieryCharges: "Versandkosten",
total: 'Gesamt', total: "Gesamt",
contactInfo: 'Kontaktinformation', contactInfo: "Kontaktinformation",
deliveryAddressmessage: 'Lieferadresse einstellen', deliveryAddressmessage: "Lieferadresse einstellen",
proceedCheckout: 'Zur Kasse', proceedCheckout: "Zur Kasse",
paymentText: 'Wie möchten Sie bezahlen?', paymentText: "Wie möchten Sie bezahlen?",
checkout: 'Auschecken', checkout: "Auschecken",
creditCard: 'Kreditkarte Debitkarte', creditCard: "Kreditkarte Debitkarte",
paypal: 'Paypal', paypal: "Paypal",
cod: 'Nachnahme', cod: "Nachnahme",
thankYou: 'Danke dir!', thankYou: "Danke dir!",
orderConfirmed: 'Ihre Bestellung wird bestätigt', orderConfirmed: "Ihre Bestellung wird bestätigt",
orderId: 'Ihre Bestellnummer', orderId: "Ihre Bestellnummer",
orderAmount: 'Ihre Bestellmenge', orderAmount: "Ihre Bestellmenge",
orderDetail: 'Bestelldetails', orderDetail: "Bestelldetails",
paymentMethod: 'Zahlungsmethode', paymentMethod: "Zahlungsmethode",
trackOrder: 'Versandverfolgung', trackOrder: "Versandverfolgung",
backToMenu: 'Zurück zum Menü', backToMenu: "Zurück zum Menü",
foodItem: 'Essensgegenstand', foodItem: "Essensgegenstand",
deliveredTo: 'Geliefert an', deliveredTo: "Geliefert an",
writeAReview: 'Eine Rezension schreiben', writeAReview: "Eine Rezension schreiben",
orderReceived: 'Bestellung erhalten', orderReceived: "Bestellung erhalten",
cancelled: 'Abgebrochen', cancelled: "Abgebrochen",
foodPreparing: 'Essen wird zubereitet', foodPreparing: "Essen wird zubereitet",
delivered: 'Geliefert', delivered: "Geliefert",
rateAndReview: 'Bewerten und bewerten', rateAndReview: "Bewerten und bewerten",
reviewPlaceholder: 'Detaillierte Bewertungen erhalten mehr Sichtbarkeit ...', reviewPlaceholder: "Detaillierte Bewertungen erhalten mehr Sichtbarkeit ...",
submit: 'einreichen', submit: "einreichen",
noWorriesText: 'Keine Sorge, lassen Sie sich von uns helfen!', noWorriesText: "Keine Sorge, lassen Sie sich von uns helfen!",
yourEmail: 'Deine E-Mail', yourEmail: "Deine E-Mail",
send: 'Senden', send: "Senden",
checkEmail: checkEmail:
'Überprüfen Sie Ihre E-Mail-Adresse auf den Link zum Zurücksetzen des Kennworts', "Überprüfen Sie Ihre E-Mail-Adresse auf den Link zum Zurücksetzen des Kennworts",
languageText: 'Bitte wählen Sie Ihre gewünschte Sprache', languageText: "Bitte wählen Sie Ihre gewünschte Sprache",
countryCodePickerTranslation: 'deu', countryCodePickerTranslation: "deu",
countryCodeSelect: 'Ländercode auswählen', countryCodeSelect: "Ländercode auswählen",
paymentNotSupported: 'Diese Zahlungsmethode unterstützt diese Währung nicht', paymentNotSupported: "Diese Zahlungsmethode unterstützt diese Währung nicht",
unReadReviews: 'Noch keine Bewertungen!', unReadReviews: "Noch keine Bewertungen!",
unReadOrders: 'Noch keine Bestellungen!', unReadOrders: "Noch keine Bestellungen!",
error: 'Error', error: "Error",
noMoreItems: 'Keine Artikel mehr auf Lager', noMoreItems: "Keine Artikel mehr auf Lager",
hungry: 'Hungrig', hungry: "Hungrig",
emptyCartBtn: 'Zurück zum Essen', emptyCartBtn: "Zurück zum Essen",
subTotal: 'Zwischensumme', subTotal: "Zwischensumme",
deliveryFee: 'Liefergebühr', deliveryFee: "Liefergebühr",
haveVoucher: 'Hast du einen Gutschein?', haveVoucher: "Hast du einen Gutschein?",
remove: 'Entfernen', remove: "Entfernen",
change: 'Veränderung', change: "Veränderung",
condition1: condition1:
'Mit Abschluss dieser Bestellung stimme ich allen Allgemeinen Geschäftsbedingungen zu.', "Mit Abschluss dieser Bestellung stimme ich allen Allgemeinen Geschäftsbedingungen zu.",
condition2: condition2:
'Ich bin damit einverstanden und fordere Sie auf, den bestellten Service vor Ablauf der Widerrufsfrist auszuführen. Mir ist bekannt, dass ich nach vollständiger Erfüllung der Leistung mein Rücktrittsrecht verliere.', "Ich bin damit einverstanden und fordere Sie auf, den bestellten Service vor Ablauf der Widerrufsfrist auszuführen. Mir ist bekannt, dass ich nach vollständiger Erfüllung der Leistung mein Rücktrittsrecht verliere.",
orderBtn: 'Bestellung aufgeben', orderBtn: "Bestellung aufgeben",
coupanApply: 'Gutscheinrabatt angewendet', coupanApply: "Gutscheinrabatt angewendet",
coupanFailed: 'Gutschein nicht verfügbar', coupanFailed: "Gutschein nicht verfügbar",
invalidCoupan: 'Ungültiger Gutschein', invalidCoupan: "Ungültiger Gutschein",
validateItems: 'Artikel vor dem Auschecken in den Warenkorb legen', 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', language: "Sprache",
getUpdatesText: 'Erhalten Sie Updates zum Bestellstatus!', getUpdatesText: "Erhalten Sie Updates zum Bestellstatus!",
delAcc: 'Konto löschen', delAcc: "Konto löschen",
delAccText: 'Sind Sie sicher, dass Sie das Konto löschen möchten?', delAccText: "Sind Sie sicher, dass Sie das Konto löschen möchten?",
cancel: 'Abbrechen', cancel: "Abbrechen",
receiveOffers: 'Spezielle Angebote erhalten', receiveOffers: "Spezielle Angebote erhalten",
notificationUpdate: 'Benachrichtigungsstatus aktualisiert', notificationUpdate: "Benachrichtigungsstatus aktualisiert",
notificationsNotWorking: "Benachrichtigungen funktionieren nicht im Simulator", notificationsNotWorking:
"Benachrichtigungen funktionieren nicht im Simulator",
loginOrCreateAcc: "Anmelden/Konto erstellen", loginOrCreateAcc: "Anmelden/Konto erstellen",
welcome: "Willkommen", welcome: "Willkommen",
titleSettings: 'Einstellungen', titleSettings: "Einstellungen",
home: 'Startseite', home: "Startseite",
noItems: 'Kein Artikel gefunden', noItems: "Kein Artikel gefunden",
featured: 'Vorgestellt', featured: "Vorgestellt",
filters: 'Filter', filters: "Filter",
reset: 'Zurücksetzen', reset: "Zurücksetzen",
showSaleItems: 'Nur Verkaufsartikel anzeigen', showSaleItems: "Nur Verkaufsartikel anzeigen",
showStockItems: 'Nur Lagerartikel anzeigen', showStockItems: "Nur Lagerartikel anzeigen",
priceRange: 'Preisspanne', priceRange: "Preisspanne",
sorting: 'Sortierung', sorting: "Sortierung",
applyFilter: 'Filter anwenden', applyFilter: "Filter anwenden",
close: 'Schließen', close: "Schließen",
phoneNumberRequired: "Telefonnummer ist erforderlich", phoneNumberRequired: "Telefonnummer ist erforderlich",
phoneNumberMissing: "Telefonnummer fehlt", phoneNumberMissing: "Telefonnummer fehlt",
userInfoUpdated: "Benutzerinformationen aktualisiert", userInfoUpdated: "Benutzerinformationen aktualisiert",
@ -179,32 +180,32 @@ export const de = {
noOrdersAssigned: "Noch keine Bestellungen zugewiesen!", noOrdersAssigned: "Noch keine Bestellungen zugewiesen!",
oldOrder: "Alte Bestellung", oldOrder: "Alte Bestellung",
activeOrder: "Aktive Bestellung", activeOrder: "Aktive Bestellung",
idVar: 'ID: ', idVar: "ID: ",
addressUpdated: 'Adresse aktualisiert', addressUpdated: "Adresse aktualisiert",
labelAs: 'Als bezeichnen', labelAs: "Als bezeichnen",
addressReq: 'Lieferadresse erforderlich', addressReq: "Lieferadresse erforderlich",
deliveryDetailsReq: 'Lieferdetails erforderlich', deliveryDetailsReq: "Lieferdetails erforderlich",
locaPermission: 'Standortberechtigung nicht erteilt', locaPermission: "Standortberechtigung nicht erteilt",
addressAdded: 'Adresse hinzugefügt', addressAdded: "Adresse hinzugefügt",
productPage: 'Produktseite', productPage: "Produktseite",
Docs: 'Dokumente', Docs: "Dokumente",
Blog: 'Blog', Blog: "Blog",
aboutUs: 'Über uns', aboutUs: "Über uns",
myVouchers: 'Meine Gutscheine', myVouchers: "Meine Gutscheine",
typeVoucherCode: "Gutscheincode eingeben", typeVoucherCode: "Gutscheincode eingeben",
enterVoucherCode: "Geben Sie Ihren Gutscheincode ein", enterVoucherCode: "Geben Sie Ihren Gutscheincode ein",
status: 'Status', status: "Status",
anySuggestion: 'Irgendwelche Vorschläge?', anySuggestion: "Irgendwelche Vorschläge?",
reviewRegarding: 'Bewertung zu Ihrer Bestellung?', reviewRegarding: "Bewertung zu Ihrer Bestellung?",
writeReview: 'Eine Bewertung schreiben', writeReview: "Eine Bewertung schreiben",
chatWithRider: 'Mit dem Fahrer chatten', chatWithRider: "Mit dem Fahrer chatten",
signupGoogle: 'Mit Google anmelden', signupGoogle: "Mit Google anmelden",
signupEmail: 'Anmeldung mit E-Mail', signupEmail: "Anmeldung mit E-Mail",
signup: 'Anmelden', signup: "Anmelden",
signupApple: 'Mit Apple anmelden', signupApple: "Mit Apple anmelden",
alreadyMember: 'Bereits Mitglied? Einloggen', alreadyMember: "Bereits Mitglied? Einloggen",
enterUsername: 'Geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein', enterUsername: "Geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein",
createNewAcc: 'Neues Konto erstellen', createNewAcc: "Neues Konto erstellen",
emailphoneReq: "E-Mail/Telefonnummer ist erforderlich", emailphoneReq: "E-Mail/Telefonnummer ist erforderlich",
invalidMail: "Ungültige E-Mail/Telefonnummer", invalidMail: "Ungültige E-Mail/Telefonnummer",
passReq: "Passwort ist erforderlich", passReq: "Passwort ist erforderlich",
@ -215,35 +216,35 @@ export const de = {
orderDelivered: "Die Bestellung wurde geliefert.", orderDelivered: "Die Bestellung wurde geliefert.",
completeOrder: "Die Bestellung ist abgeschlossen.", completeOrder: "Die Bestellung ist abgeschlossen.",
PENDING: "AUSSTEHEND", PENDING: "AUSSTEHEND",
ACCEPTED: 'AKZEPTIERT', ACCEPTED: "AKZEPTIERT",
PICKED: "ABGEHOLT", PICKED: "ABGEHOLT",
DELIVERED: "GELIEFERT", DELIVERED: "GELIEFERT",
COMPLETED: "ABGESCHLOSSEN", COMPLETED: "ABGESCHLOSSEN",
'Default': 'Standaard', Default: "Standaard",
'Ascending (A-Z)': 'Oplopend (A-Z)', "Ascending (A-Z)": "Oplopend (A-Z)",
'Descending (Z-A)': 'Aflopend (Z-A)', "Descending (Z-A)": "Aflopend (Z-A)",
'Price (Low - High)': 'Prijs (Laag - Hoog)', "Price (Low - High)": "Prijs (Laag - Hoog)",
'Price (High - Low)': 'Prijs (Hoog - Laag)', "Price (High - Low)": "Prijs (Hoog - Laag)",
Home: 'Thuis', Home: "Thuis",
Work: 'Werk', Work: "Werk",
Other: 'Anders', Other: "Anders",
NoStock: 'Geen Voorraad', NoStock: "Geen Voorraad",
ItemOutOfStock: 'Artikel uit voorraad', ItemOutOfStock: "Artikel uit voorraad",
SelectLanguage: 'Selecteer Taal', SelectLanguage: "Selecteer Taal",
Done: 'Voltooid', Done: "Voltooid",
Cancel: 'Annuleren', Cancel: "Annuleren",
NoFoods: 'Geen voedsel', NoFoods: "Geen voedsel",
CartIsEmpty: 'Winkelwagen is leeg.', CartIsEmpty: "Winkelwagen is leeg.",
SetPaymentMethod: 'Stel betalingsmethode in voordat u afrekent', SetPaymentMethod: "Stel betalingsmethode in voordat u afrekent",
AnErrorOccured: 'Er is een fout opgetreden. Probeer het opnieuw', AnErrorOccured: "Er is een fout opgetreden. Probeer het opnieuw",
ResetPasswordLinkSent: 'Reset wachtwoordlink verzonden naar uw e-mail', ResetPasswordLinkSent: "Reset wachtwoordlink verzonden naar uw e-mail",
LocationPermissionNotGranted: 'Locatietoestemming niet verleend', LocationPermissionNotGranted: "Locatietoestemming niet verleend",
NoFooditemFound: 'Geen voedingsmiddel gevonden', NoFooditemFound: "Geen voedingsmiddel gevonden",
SavedYet: 'Je hebt nog geen enkel adres opgeslagen.', SavedYet: "Je hebt nog geen enkel adres opgeslagen.",
ClickAddNewAddress: 'Klik op Nieuw adres toevoegen om te beginnen', ClickAddNewAddress: "Klik op Nieuw adres toevoegen om te beginnen",
NoAddressesfound: 'Geen adressen gevonden.', NoAddressesfound: "Geen adressen gevonden.",
AddNewAddress: 'Nieuw adres toevoegen', AddNewAddress: "Nieuw adres toevoegen",
'About Us': 'Over ons', "About Us": "Over ons",
'Product Page': 'Productpagina', "Product Page": "Productpagina",
"Change Payment Method": "Bezahlungsmethode ändern",
} };

View File

@ -1,165 +1,165 @@
export const en = { export const en = {
home: 'Home', home: "Home",
title0: 'Selected Language', title0: "Selected Language",
subtitle0: 'English', subtitle0: "English",
description0: description0:
'Select any language of your choice to change the content of the app to your required language.', "Select any language of your choice to change the content of the app to your required language.",
title1: 'Tasty', title1: "Tasty",
subtitle1: 'BreakFast', subtitle1: "BreakFast",
description1: description1:
'Breakfast is everything. The beginning, the first thing. It is the mouthful that is the commitment to a new day, a continuing life.', "Breakfast is everything. The beginning, the first thing. It is the mouthful that is the commitment to a new day, a continuing life.",
title2: 'Refreshing', title2: "Refreshing",
subtitle2: 'Drinks', subtitle2: "Drinks",
description2: description2:
'True silence is the rest of the mind, and is to the spirit what sleep is to the body, nourishment and refreshment.', "True silence is the rest of the mind, and is to the spirit what sleep is to the body, nourishment and refreshment.",
title3: 'Delicous', title3: "Delicous",
subtitle3: 'Icecream', subtitle3: "Icecream",
description3: description3:
'Age does not diminish the extreme disappointment of having a scoop of ice cream fall from the cone', "Age does not diminish the extreme disappointment of having a scoop of ice cream fall from the cone",
getStarted: 'Get Started!', getStarted: "Get Started!",
welcome: welcome:
"Welcome to Enatega, sometimes all you need is love. But a little food now and then doesn't hurt.", "Welcome to Enatega, sometimes all you need is love. But a little food now and then doesn't hurt.",
loginBtn: 'Login', loginBtn: "Login",
registerBtn: 'Register', registerBtn: "Register",
name: 'Name', name: "Name",
phone: 'Phone Number', phone: "Phone Number",
email: 'Email', email: "Email",
emailphone: 'Email or Phone', emailphone: "Email or Phone",
password: 'Password', password: "Password",
deliveryAddress: 'Delivery Address', deliveryAddress: "Delivery Address",
fullDeliveryAddress: 'Your full delivery address', fullDeliveryAddress: "Your full delivery address",
deliveryDetails: 'Required details -e.g. floor/ building', deliveryDetails: "Required details -e.g. floor/ building",
myAddresses: 'My Addresses', myAddresses: "My Addresses",
addAddress: 'Add Address', addAddress: "Add Address",
editAddress: 'Edit Address', editAddress: "Edit Address",
registerText: 'Or Register With', registerText: "Or Register With",
forgotPassword: 'Forgot Password?', forgotPassword: "Forgot Password?",
loginText: 'Or Login With', loginText: "Or Login With",
deliveryLocation: deliveryLocation:
'Turn on location so we could send you endless taste of delicious food.', "Turn on location so we could send you endless taste of delicious food.",
locationBtn: 'Turn on Location', locationBtn: "Turn on Location",
locationPermissionDenied: 'Permission to access location was denied', locationPermissionDenied: "Permission to access location was denied",
cameraRollPermissionDenied: 'Permission to access Camera Roll was denied', cameraRollPermissionDenied: "Permission to access Camera Roll was denied",
locationOff: 'Turn on location and try again', locationOff: "Turn on location and try again",
titleLanguage: 'Change Language', titleLanguage: "Change Language",
titleMenu: 'Menu', titleMenu: "Menu",
titleOrders: 'My Orders', titleOrders: "My Orders",
titleNotifications: 'Notifications', titleNotifications: "Notifications",
titleReviews: 'Reviews', titleReviews: "Reviews",
titleProfile: 'Profile', titleProfile: "Profile",
titleSettings: 'Settings', titleSettings: "Settings",
titleHelp: 'Help', titleHelp: "Help",
titleChat: 'Chat', titleChat: "Chat",
titleLogout: 'Logout', titleLogout: "Logout",
titleCart: 'My Cart', titleCart: "My Cart",
titlePayment: 'Payment', titlePayment: "Payment",
totalOrderAmount: 'Total Order Amount', totalOrderAmount: "Total Order Amount",
reOrder: 'Reorder', reOrder: "Reorder",
unReadNotifications: 'No unread notifications', unReadNotifications: "No unread notifications",
upload: 'Upload', upload: "Upload",
saveBtn: 'Save Changes', saveBtn: "Save Changes",
saveContBtn: 'SAVE AND CONTINUE', saveContBtn: "SAVE AND CONTINUE",
emailUs: 'Email us at', emailUs: "Email us at",
question1: 'Where do we find the food?', question1: "Where do we find the food?",
question2: 'How do we contact?', question2: "How do we contact?",
question3: 'How can I pay the delivery person?', question3: "How can I pay the delivery person?",
question4: 'Is the service available in my city?', question4: "Is the service available in my city?",
answer1: answer1:
'You can find the food at your nearest store without paying anything to customer service.Our charges are extremely low as compared to others.', "You can find the food at your nearest store without paying anything to customer service.Our charges are extremely low as compared to others.",
answer2: 'You can contact us through our email, phone number or our website.', answer2: "You can contact us through our email, phone number or our website.",
answer3: answer3:
'You can pay the delivery person in person or pay online as well through credit or debit card.', "You can pay the delivery person in person or pay online as well through credit or debit card.",
answer4: answer4:
'Currently this service is available in cities Islamabad and Karachi you can contact us to avail this service in your city.', "Currently this service is available in cities Islamabad and Karachi you can contact us to avail this service in your city.",
add: 'ADD', add: "ADD",
quantity: 'Quantity', quantity: "Quantity",
size: 'Size', size: "Size",
addToCart: 'Add to Cart', addToCart: "Add to Cart",
orderNow: 'Order Now', orderNow: "Order Now",
addToCartMessage: 'Added to cart', addToCartMessage: "Added to cart",
emptyCart: 'No items in cart', emptyCart: "No items in cart",
itemTotal: 'Item Total', itemTotal: "Item Total",
delvieryCharges: 'Delivery Charges', delvieryCharges: "Delivery Charges",
total: 'Total', total: "Total",
contactInfo: 'Contact Info', contactInfo: "Contact Info",
deliveryAddressmessage: 'Set delivery address', deliveryAddressmessage: "Set delivery address",
proceedCheckout: 'Proceed to Checkout', proceedCheckout: "Proceed to Checkout",
paymentText: 'How do you wish to pay?', paymentText: "How do you wish to pay?",
checkout: 'Checkout', checkout: "Checkout",
creditCart: 'Credit Card/Debit Card', creditCart: "Credit Card/Debit Card",
paypal: 'Paypal', paypal: "Paypal",
cod: 'Cash on delivery', cod: "Cash on delivery",
thankYou: 'Thank You!', thankYou: "Thank You!",
orderConfirmed: 'Your Order is confirmed', orderConfirmed: "Your Order is confirmed",
orderId: 'Your Order Id', orderId: "Your Order Id",
orderAmount: 'Your Order Amount', orderAmount: "Your Order Amount",
orderDetail: 'Order Detail', orderDetail: "Order Detail",
paymentMethod: 'Payment Method', paymentMethod: "Payment Method",
trackOrder: 'Track Order', trackOrder: "Track Order",
backToMenu: 'Back To Menu', backToMenu: "Back To Menu",
foodItem: 'Food item', foodItem: "Food item",
deliveredTo: 'Delivered to', deliveredTo: "Delivered to",
writeAReview: 'Write a Review', writeAReview: "Write a Review",
orderReceived: 'Order Received', orderReceived: "Order Received",
orderPicked: 'Your order is on its way', orderPicked: "Your order is on its way",
orderDelivered: 'Delivered', orderDelivered: "Delivered",
completed: 'Completed', completed: "Completed",
cancelled: 'Cancelled', cancelled: "Cancelled",
orderPreparing: 'Your order is being prepared', orderPreparing: "Your order is being prepared",
delivered: 'Delivered', delivered: "Delivered",
rateAndReview: 'Rate and Review', rateAndReview: "Rate and Review",
reviewPlaceholder: 'More detailed reviews get more visibility...', reviewPlaceholder: "More detailed reviews get more visibility...",
submit: 'Submit', submit: "Submit",
noWorriesText: 'No worries, let us help you out!', noWorriesText: "No worries, let us help you out!",
yourEmail: 'Your Email', yourEmail: "Your Email",
send: 'Send', send: "Send",
apply: 'Apply', apply: "Apply",
checkEmail: 'Check your email for reset password link', checkEmail: "Check your email for reset password link",
languageText: 'Please select your required language', languageText: "Please select your required language",
countryCodePickerTranslation: 'eng', countryCodePickerTranslation: "eng",
countryCodeSelect: 'Select Country Code', countryCodeSelect: "Select Country Code",
paymentNotSupported: 'This payment method does not support this Currency', paymentNotSupported: "This payment method does not support this Currency",
loginOrCreateAccount: 'Login/Create Account', loginOrCreateAccount: "Login/Create Account",
unReadReviews: 'No Reviews Yet!', unReadReviews: "No Reviews Yet!",
unReadOrders: 'No Orders Yet!', unReadOrders: "No Orders Yet!",
error: 'Error', error: "Error",
noMoreItems: 'No more items in stock', noMoreItems: "No more items in stock",
hungry: 'Hungry', hungry: "Hungry",
emptyCartBtn: 'Back to Food', emptyCartBtn: "Back to Food",
subTotal: 'SubTotal', subTotal: "SubTotal",
deliveryFee: 'Delivery Fee', deliveryFee: "Delivery Fee",
haveVoucher: 'Do you have a voucher', haveVoucher: "Do you have a voucher",
remove: 'Remove', remove: "Remove",
change: 'Change', change: "Change",
condition1: 'By completing this order, I agree to all Terms & Conditions.', condition1: "By completing this order, I agree to all Terms & Conditions.",
condition2: condition2:
'I agree and I demand that you execute the ordered service before the end of the revocation period. I am aware that after complete fulfillment of the service I lose my right of rescission.', "I agree and I demand that you execute the ordered service before the end of the revocation period. I am aware that after complete fulfillment of the service I lose my right of rescission.",
orderBtn: 'Place order', orderBtn: "Place order",
coupanApply: 'Coupon discount applied', coupanApply: "Coupon discount applied",
coupanFailed: 'Coupon Unavailable', coupanFailed: "Coupon Unavailable",
invalidCoupan: 'Invalid Coupon', invalidCoupan: "Invalid Coupon",
validateItems: 'Add items to cart before checkout', validateItems: "Add items to cart before checkout",
validateDelivery: 'Set delivery address before checkout', validateDelivery: "Set delivery address before checkout",
language: 'Language', language: "Language",
getUpdatesText: 'Get updates on your order status!', getUpdatesText: "Get updates on your order status!",
delAcc: 'Delete Account', delAcc: "Delete Account",
delAccText: 'Are you Sure you want to delete Account?', delAccText: "Are you Sure you want to delete Account?",
cancel:'Cancel', cancel: "Cancel",
receiveOffers: 'Receive Special Offers', receiveOffers: "Receive Special Offers",
notificationUpdate: "Notification Status Updated", notificationUpdate: "Notification Status Updated",
notificationsNotWorking: "Notification do not work on simulator", notificationsNotWorking: "Notification do not work on simulator",
loginOrCreateAcc: "Login/Create Account", loginOrCreateAcc: "Login/Create Account",
welcome: "Welcome", welcome: "Welcome",
noItems: 'No item found', noItems: "No item found",
featured: 'Featured', featured: "Featured",
filters: 'Filters', filters: "Filters",
reset: 'Reset', reset: "Reset",
showSaleItems: 'Show sale items only', showSaleItems: "Show sale items only",
showStockItems: 'Show stock items only', showStockItems: "Show stock items only",
priceRange: 'Price Range', priceRange: "Price Range",
sorting: 'Sorting', sorting: "Sorting",
applyFilter: 'Apply Filter', applyFilter: "Apply Filter",
close: 'Close', close: "Close",
phoneNumberRequired: "Phone number is required", phoneNumberRequired: "Phone number is required",
phoneNumberMissing: "Phone Number is missing", phoneNumberMissing: "Phone Number is missing",
userInfoUpdated: "User's Info Updated", userInfoUpdated: "User's Info Updated",
@ -168,43 +168,43 @@ export const en = {
rightsReserved: "All rights are reserved by Enatega", rightsReserved: "All rights are reserved by Enatega",
changePass: "Change Password", changePass: "Change Password",
currentPass: "Current Password", currentPass: "Current Password",
passReq: 'Password is required', passReq: "Password is required",
newPass: "New Password", newPass: "New Password",
invalidPass: 'Invalid password', invalidPass: "Invalid password",
passChange: 'Password Updated', passChange: "Password Updated",
noOrdersFound: 'No Orders Found', noOrdersFound: "No Orders Found",
startShopping: 'Start Shopping', startShopping: "Start Shopping",
reOrder: "Re-Order", reOrder: "Re-Order",
smthWrong: "Something is worng", smthWrong: "Something is worng",
noOrdersAssigned: "No Orders Assigned yet!", noOrdersAssigned: "No Orders Assigned yet!",
oldOrder: "Old Order", oldOrder: "Old Order",
activeOrder: "Active Order", activeOrder: "Active Order",
idVar: 'ID: ', idVar: "ID: ",
addressUpdated: 'Address updated', addressUpdated: "Address updated",
labelAs: 'Label as', labelAs: "Label as",
addressReq: 'Delivery address is required', addressReq: "Delivery address is required",
deliveryDetailsReq: 'Delivery details is required', deliveryDetailsReq: "Delivery details is required",
locaPermission: 'Location permission not granted', locaPermission: "Location permission not granted",
addressAdded: 'Address added', addressAdded: "Address added",
productPage: 'Product Page', productPage: "Product Page",
Docs: 'Docs', Docs: "Docs",
Blog: 'Blog', Blog: "Blog",
aboutUs: 'About Us', aboutUs: "About Us",
myVouchers: 'My Vouchers', myVouchers: "My Vouchers",
typeVoucherCode: "TYPe voucher code", typeVoucherCode: "TYPe voucher code",
enterVoucherCode: "Enter your voucher code", enterVoucherCode: "Enter your voucher code",
status: 'Status', status: "Status",
anySuggestion: 'Any suggestion?', anySuggestion: "Any suggestion?",
reviewRegarding: 'Review regarding your order?', reviewRegarding: "Review regarding your order?",
writeReview: 'Write a review', writeReview: "Write a review",
chatWithRider: 'Chat with Rider', chatWithRider: "Chat with Rider",
signupGoogle: 'Signup with Google', signupGoogle: "Signup with Google",
signupEmail: 'Signup using Email', signupEmail: "Signup using Email",
signup: 'Signup', signup: "Signup",
signupApple: 'Signup with Apple', signupApple: "Signup with Apple",
alreadyMember: 'Already a member? Log in', alreadyMember: "Already a member? Log in",
enterUsername: 'Enter your Email and Password', enterUsername: "Enter your Email and Password",
createNewAcc: 'Create New Account', createNewAcc: "Create New Account",
emailphoneReq: "Email/Phone is required", emailphoneReq: "Email/Phone is required",
invalidMail: "Invalid Email/Phone", invalidMail: "Invalid Email/Phone",
passReq: "Password is required", passReq: "Password is required",
@ -215,34 +215,35 @@ export const en = {
orderDelivered: "Order is delivered.", orderDelivered: "Order is delivered.",
completeOrder: "Order is completed.", completeOrder: "Order is completed.",
PENDING: "PENDING", PENDING: "PENDING",
ACCEPTED: 'ACCEPTED', ACCEPTED: "ACCEPTED",
PICKED: "PICKED", PICKED: "PICKED",
DELIVERED: "DELIVERED", DELIVERED: "DELIVERED",
COMPLETED: "COMPLETED", COMPLETED: "COMPLETED",
'Default': 'Default', Default: "Default",
'Ascending (A-Z)': 'Ascending (A-Z)', "Ascending (A-Z)": "Ascending (A-Z)",
'Descending (Z-A)': 'Descending (Z-A)', "Descending (Z-A)": "Descending (Z-A)",
'Price (Low - High)': 'Price (Low - High)', "Price (Low - High)": "Price (Low - High)",
'Price (High - Low)': 'Price (High - Low)', "Price (High - Low)": "Price (High - Low)",
Home: 'Home', Home: "Home",
Work: 'Work', Work: "Work",
Other: 'Other', Other: "Other",
NoStock: 'No Stock', NoStock: "No Stock",
ItemOutOfStock: 'Item out of stock', ItemOutOfStock: "Item out of stock",
SelectLanguage: 'Select Language', SelectLanguage: "Select Language",
Done: 'Done', Done: "Done",
Cancel: 'Cancel', Cancel: "Cancel",
NoFoods: 'No Foods', NoFoods: "No Foods",
CartIsEmpty: 'Cart is empty.', CartIsEmpty: "Cart is empty.",
SetPaymentMethod: 'Set payment method before checkout', SetPaymentMethod: "Set payment method before checkout",
AnErrorOccured: 'An error occured. Please try again', AnErrorOccured: "An error occured. Please try again",
ResetPasswordLinkSent: 'Reset password link sent on your email', ResetPasswordLinkSent: "Reset password link sent on your email",
LocationPermissionNotGranted: 'Location permission not granted', LocationPermissionNotGranted: "Location permission not granted",
NoFooditemFound: 'No food item found', NoFooditemFound: "No food item found",
SavedYet: 'You haven&#39;t saved any address yet.', SavedYet: "You haven&#39;t saved any address yet.",
ClickAddNewAddress: 'Click Add New Address to get started', ClickAddNewAddress: "Click Add New Address to get started",
NoAddressesfound: 'No Addresses found.', NoAddressesfound: "No Addresses found.",
AddNewAddress: 'Add New Address', AddNewAddress: "Add New Address",
'About Us': 'About Us', "About Us": "About Us",
'Product Page': 'Product Page', "Product Page": "Product Page",
} "Change Payment Method": "Change Payment Method",
};

View File

@ -1,165 +1,166 @@
export const fr = { export const fr = {
home: 'Home', home: "Accueil",
title0: 'Langue sélectionnée', title0: "Langue sélectionnée",
subtitle0: 'English', subtitle0: "English",
description0: description0:
"Sélectionnez la langue de votre choix pour modifier le contenu de l'application dans la langue de votre choix.", "Sélectionnez la langue de votre choix pour modifier le contenu de l'application dans la langue de votre choix.",
title1: 'Savoureux', title1: "Savoureux",
subtitle1: 'Petit déjeuner', subtitle1: "Petit déjeuner",
description1: description1:
"Le petit déjeuner est tout. Le début, la première chose. C'est la bouchée qui est l'engagement pour un nouveau jour, une vie continue.", "Le petit déjeuner est tout. Le début, la première chose. C'est la bouchée qui est l'engagement pour un nouveau jour, une vie continue.",
title2: 'Rafraîchissant', title2: "Rafraîchissant",
subtitle2: 'Boissons', subtitle2: "Boissons",
description2: description2:
"Le vrai silence est le reste de l'esprit, et à l'esprit ce que le sommeil est pour le corps, nourriture et rafraîchissement.", "Le vrai silence est le reste de l'esprit, et à l'esprit ce que le sommeil est pour le corps, nourriture et rafraîchissement.",
title3: 'Délicieux', title3: "Délicieux",
subtitle3: 'Crème glacée', subtitle3: "Crème glacée",
description3: description3:
"L'âge ne diminue en rien l'extrême déception d'avoir une boule de glace tombée du cône.", "L'âge ne diminue en rien l'extrême déception d'avoir une boule de glace tombée du cône.",
getStarted: 'Commencer!', getStarted: "Commencer!",
welcome: welcome:
"Bienvenue dans Enatega, parfois tout ce dont vous avez besoin est de l'amour. Mais un peu de nourriture maintenant et ensuite ne fait pas mal.", "Bienvenue dans Enatega, parfois tout ce dont vous avez besoin est de l'amour. Mais un peu de nourriture maintenant et ensuite ne fait pas mal.",
loginBtn: "S'identifier", loginBtn: "S'identifier",
registerBtn: 'registre', registerBtn: "registre",
name: 'prénom', name: "prénom",
phone: 'Téléphone', phone: "Téléphone",
email: 'Email', email: "Email",
emailphone: 'Email ou téléphone', emailphone: "Email ou téléphone",
password: 'Mot de passe', password: "Mot de passe",
deliveryAddress: 'Adresse de livraison', deliveryAddress: "Adresse de livraison",
fullDeliveryAddress: 'Votre adresse de livraison complète', fullDeliveryAddress: "Votre adresse de livraison complète",
deliveryDetails: 'Détails requis -e.g. étage / bâtiment', deliveryDetails: "Détails requis -e.g. étage / bâtiment",
myAddresses: 'Mes adresses', myAddresses: "Mes adresses",
addAddress: 'Ajouter une nouvelle adresse', addAddress: "Ajouter une nouvelle adresse",
editAddress: "Modifier l'adresse", editAddress: "Modifier l'adresse",
registerText: "Ou s'inscrire avec", registerText: "Ou s'inscrire avec",
forgotPassword: 'Mot de passe oublié?', forgotPassword: "Mot de passe oublié?",
loginText: 'Ou connectez-vous avec', loginText: "Ou connectez-vous avec",
deliveryLocation: deliveryLocation:
'Définissez votre lieu de livraison afin que nous puissions vous envoyer un goût infini de plats délicieux.', "Définissez votre lieu de livraison afin que nous puissions vous envoyer un goût infini de plats délicieux.",
locationBtn: "Activer l'emplacement", locationBtn: "Activer l'emplacement",
locationPermissionDenied: locationPermissionDenied:
"La permission d'accéder à l'emplacement a été refusée", "La permission d'accéder à l'emplacement a été refusée",
locationOff: "Activer l'emplacement et réessayer", locationOff: "Activer l'emplacement et réessayer",
titleLanguage: 'Changer de langue', titleLanguage: "Changer de langue",
titleMenu: 'Menu', titleMenu: "Menu",
titleOrders: 'Mes commandes', titleOrders: "Mes commandes",
titleNotifications: 'Les notifications', titleNotifications: "Les notifications",
titleReviews: 'Avis', titleReviews: "Avis",
titleProfile: 'Profil', titleProfile: "Profil",
titleHelp: 'Aidez-moi', titleHelp: "Aidez-moi",
titleChat: 'Bavarder', titleChat: "Bavarder",
titleLogout: 'Connectez - Out', titleLogout: "Connectez - Out",
titleCart: 'Mon panier', titleCart: "Mon panier",
titlePayment: 'Paiement', titlePayment: "Paiement",
totalOrderAmount: 'Total de la commande', totalOrderAmount: "Total de la commande",
reOrder: 'Réorganiser', reOrder: "Réorganiser",
unReadNotifications: 'Pas de notifications non lues', unReadNotifications: "Pas de notifications non lues",
upload: 'Télécharger', upload: "Télécharger",
saveBtn: 'sauvegarder', saveBtn: "sauvegarder",
saveContBtn: 'SAUVEGARDER ET CONTINUER', saveContBtn: "SAUVEGARDER ET CONTINUER",
emailUs: 'écrivez-nous à', emailUs: "écrivez-nous à",
question1: 'Où trouvons-nous la nourriture?', question1: "Où trouvons-nous la nourriture?",
question2: 'Comment pouvons-nous contacter?', question2: "Comment pouvons-nous contacter?",
question3: 'Comment puis-je payer le livreur?', question3: "Comment puis-je payer le livreur?",
question4: 'Le service est-il disponible dans ma ville?', question4: "Le service est-il disponible dans ma ville?",
answer1: answer1:
'Vous pouvez trouver la nourriture dans le magasin le plus proche sans rien payer au service client. Nos frais sont extrêmement bas comparés aux autres.', "Vous pouvez trouver la nourriture dans le magasin le plus proche sans rien payer au service client. Nos frais sont extrêmement bas comparés aux autres.",
answer2: answer2:
'Vous pouvez nous contacter via notre email, numéro de téléphone ou notre site web.', "Vous pouvez nous contacter via notre email, numéro de téléphone ou notre site web.",
answer3: answer3:
'Vous pouvez payer le livreur en personne ou en ligne, par carte de crédit ou de débit.', "Vous pouvez payer le livreur en personne ou en ligne, par carte de crédit ou de débit.",
answer4: answer4:
"Actuellement, ce service est disponible dans les villes d'Islamabad et de Karachi. Vous pouvez nous contacter pour bénéficier de ce service dans votre ville.", "Actuellement, ce service est disponible dans les villes d'Islamabad et de Karachi. Vous pouvez nous contacter pour bénéficier de ce service dans votre ville.",
add: 'AJOUTER', add: "AJOUTER",
quantity: 'Quantité', quantity: "Quantité",
size: 'Taille', size: "Taille",
addToCart: 'Ajouter au panier', addToCart: "Ajouter au panier",
orderNow: 'Commandez maintenant', orderNow: "Commandez maintenant",
addToCartMessage: 'Ajouté au panier', addToCartMessage: "Ajouté au panier",
emptyCart: 'Aucun article dans le panier', emptyCart: "Aucun article dans le panier",
itemTotal: 'Objet total', itemTotal: "Objet total",
delvieryCharges: 'Frais de livraison', delvieryCharges: "Frais de livraison",
total: 'Total', total: "Total",
contactInfo: 'Informations de contact', contactInfo: "Informations de contact",
deliveryAddressmessage: "Définir l'adresse de livraison", deliveryAddressmessage: "Définir l'adresse de livraison",
proceedCheckout: 'Passer à la caisse', proceedCheckout: "Passer à la caisse",
paymentText: 'Comment souhaitez-vous payer?', paymentText: "Comment souhaitez-vous payer?",
checkout: 'Check-out', checkout: "Check-out",
creditCard: 'Carte de crédit carte de débit', creditCard: "Carte de crédit carte de débit",
paypal: 'Pay Pal', paypal: "Pay Pal",
cod: 'Paiement à la livraison', cod: "Paiement à la livraison",
thankYou: 'Je vous remercie!', thankYou: "Je vous remercie!",
orderConfirmed: 'Votre commande est confirmée', orderConfirmed: "Votre commande est confirmée",
orderId: 'Votre identifiant de commande', orderId: "Votre identifiant de commande",
orderAmount: 'Le montant de votre commande', orderAmount: "Le montant de votre commande",
orderDetail: 'Détails de la commande', orderDetail: "Détails de la commande",
paymentMethod: 'Mode de paiement', paymentMethod: "Mode de paiement",
trackOrder: 'Suivi de commande', trackOrder: "Suivi de commande",
backToMenu: 'Suivi de commande', backToMenu: "Suivi de commande",
foodItem: 'Produit alimentaire', foodItem: "Produit alimentaire",
deliveredTo: 'livré à', deliveredTo: "livré à",
writeAReview: 'Écrire une critique', writeAReview: "Écrire une critique",
orderReceived: 'Ordre reçu', orderReceived: "Ordre reçu",
cancelled: 'Annulé', cancelled: "Annulé",
foodPreparing: 'La nourriture est en cours de préparation', foodPreparing: "La nourriture est en cours de préparation",
delivered: 'Livré', delivered: "Livré",
rateAndReview: 'Notez et évaluez', rateAndReview: "Notez et évaluez",
reviewPlaceholder: 'Des revues plus détaillées ont plus de visibilité ...', reviewPlaceholder: "Des revues plus détaillées ont plus de visibilité ...",
submit: 'Soumettre', submit: "Soumettre",
noWorriesText: 'Pas de soucis, laissez-nous vous aider!', noWorriesText: "Pas de soucis, laissez-nous vous aider!",
yourEmail: 'Votre email', yourEmail: "Votre email",
send: 'Envoyer', send: "Envoyer",
checkEmail: checkEmail:
'Vérifiez votre email pour le lien de réinitialisation du mot de passe', "Vérifiez votre email pour le lien de réinitialisation du mot de passe",
languageText: "S'il vous plaît sélectionnez votre langue requise", languageText: "S'il vous plaît sélectionnez votre langue requise",
countryCodePickerTranslation: 'fra', countryCodePickerTranslation: "fra",
countryCodeSelect: 'Sélectionnez le code pays', countryCodeSelect: "Sélectionnez le code pays",
paymentNotSupported: paymentNotSupported:
'Ce mode de paiement ne prend pas en charge cette devise', "Ce mode de paiement ne prend pas en charge cette devise",
unReadReviews: "Pas encore d'avis!", unReadReviews: "Pas encore d'avis!",
unReadOrders: 'Pas de commande pour le moment!', unReadOrders: "Pas de commande pour le moment!",
error: 'Erreur', error: "Erreur",
noMoreItems: "Plus d'articles en stock", noMoreItems: "Plus d'articles en stock",
hungry: 'Faim', hungry: "Faim",
emptyCartBtn: 'Retour à la nourriture', emptyCartBtn: "Retour à la nourriture",
subTotal: 'Total', subTotal: "Total",
deliveryFee: 'Frais de livraison', deliveryFee: "Frais de livraison",
haveVoucher: 'Avez-vous un bon', haveVoucher: "Avez-vous un bon",
remove: 'Retirer', remove: "Retirer",
change: 'Changement', change: "Changement",
condition1: condition1:
"En remplissant cette commande, j'accepte toutes les conditions générales.", "En remplissant cette commande, j'accepte toutes les conditions générales.",
condition2: condition2:
"J'accepte et je vous demande d'exécuter le service commandé avant la fin de la période de révocation. Je suis conscient qu'après l'accomplissement complet du service, je perds mon droit de résolution.", "J'accepte et je vous demande d'exécuter le service commandé avant la fin de la période de révocation. Je suis conscient qu'après l'accomplissement complet du service, je perds mon droit de résolution.",
orderBtn: 'Passer la commande', orderBtn: "Passer la commande",
coupanApply: 'Remise de coupon appliquée', coupanApply: "Remise de coupon appliquée",
coupanFailed: 'Coupon non disponible', coupanFailed: "Coupon non disponible",
invalidCoupan: 'Coupon non valide', invalidCoupan: "Coupon non valide",
validateItems: 'Ajouter des articles au panier avant le paiement', 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', language: "Langue",
getUpdatesText: 'Obtenez des mises à jour sur le statut de votre commande !', getUpdatesText: "Obtenez des mises à jour sur le statut de votre commande !",
delAcc: 'Supprimer le compte', delAcc: "Supprimer le compte",
delAccText: 'Êtes-vous sûr de vouloir supprimer le compte ?', delAccText: "Êtes-vous sûr de vouloir supprimer le compte ?",
cancel: 'Annuler', cancel: "Annuler",
receiveOffers: 'Recevoir des offres spéciales', receiveOffers: "Recevoir des offres spéciales",
notificationUpdate: 'Statut de notification mis à jour', notificationUpdate: "Statut de notification mis à jour",
notificationsNotWorking: "Les notifications ne fonctionnent pas sur le simulateur", notificationsNotWorking:
"Les notifications ne fonctionnent pas sur le simulateur",
loginOrCreateAcc: "Connexion/Créer un compte", loginOrCreateAcc: "Connexion/Créer un compte",
welcome: "Bienvenue", welcome: "Bienvenue",
titleSettings: 'Paramètres', titleSettings: "Paramètres",
home: 'Accueil', home: "Accueil",
noItems: 'Aucun élément trouvé', noItems: "Aucun élément trouvé",
featured: 'En vedette', featured: "En vedette",
filters: 'Filtres', filters: "Filtres",
reset: 'Réinitialiser', reset: "Réinitialiser",
showSaleItems: 'Afficher uniquement les articles en vente', showSaleItems: "Afficher uniquement les articles en vente",
showStockItems: 'Afficher uniquement les articles en stock', showStockItems: "Afficher uniquement les articles en stock",
priceRange: 'Plage de prix', priceRange: "Plage de prix",
sorting: 'Tri', sorting: "Tri",
applyFilter: 'Appliquer le filtre', applyFilter: "Appliquer le filtre",
close: 'Fermer', close: "Fermer",
phoneNumberRequired: "Numéro de téléphone requis", phoneNumberRequired: "Numéro de téléphone requis",
phoneNumberMissing: "Numéro de téléphone manquant", phoneNumberMissing: "Numéro de téléphone manquant",
userInfoUpdated: "Informations de l'utilisateur mises à jour", userInfoUpdated: "Informations de l'utilisateur mises à jour",
@ -180,32 +181,32 @@ export const fr = {
noOrdersAssigned: "Aucune commande attribuée pour le moment !", noOrdersAssigned: "Aucune commande attribuée pour le moment !",
oldOrder: "Ancienne commande", oldOrder: "Ancienne commande",
activeOrder: "Commande active", activeOrder: "Commande active",
idVar: 'ID : ', idVar: "ID : ",
addressUpdated: 'Adresse mise à jour', addressUpdated: "Adresse mise à jour",
labelAs: 'Étiqueter comme', labelAs: "Étiqueter comme",
addressReq: 'Adresse de livraison requise', addressReq: "Adresse de livraison requise",
deliveryDetailsReq: 'Détails de livraison requis', deliveryDetailsReq: "Détails de livraison requis",
locaPermission: 'Autorisation de localisation non accordée', locaPermission: "Autorisation de localisation non accordée",
addressAdded: 'Adresse ajoutée', addressAdded: "Adresse ajoutée",
productPage: 'Page produit', productPage: "Page produit",
Docs: 'Docs', Docs: "Docs",
Blog: 'Blog', Blog: "Blog",
aboutUs: 'À propos de nous', aboutUs: "À propos de nous",
myVouchers: 'Mes bons', myVouchers: "Mes bons",
typeVoucherCode: "Saisir le code du bon", typeVoucherCode: "Saisir le code du bon",
enterVoucherCode: "Entrez votre code de bon", enterVoucherCode: "Entrez votre code de bon",
status: 'Statut', status: "Statut",
anySuggestion: 'Des suggestions ?', anySuggestion: "Des suggestions ?",
reviewRegarding: 'Avis concernant votre commande ?', reviewRegarding: "Avis concernant votre commande ?",
writeReview: 'Écrire un avis', writeReview: "Écrire un avis",
chatWithRider: 'Discuter avec le livreur', chatWithRider: "Discuter avec le livreur",
signupGoogle: 'Inscription avec Google', signupGoogle: "Inscription avec Google",
signupEmail: 'Inscription par e-mail', signupEmail: "Inscription par e-mail",
signup: 'Sinscrire', signup: "Sinscrire",
signupApple: 'Inscription avec Apple', signupApple: "Inscription avec Apple",
alreadyMember: 'Déjà membre ? Se connecter', alreadyMember: "Déjà membre ? Se connecter",
enterUsername: 'Entrez votre adresse e-mail et votre mot de passe', enterUsername: "Entrez votre adresse e-mail et votre mot de passe",
createNewAcc: 'Créer un nouveau compte', createNewAcc: "Créer un nouveau compte",
emailphoneReq: "E-mail/Téléphone requis", emailphoneReq: "E-mail/Téléphone requis",
invalidMail: "E-mail/Téléphone invalide", invalidMail: "E-mail/Téléphone invalide",
passReq: "Mot de passe requis", passReq: "Mot de passe requis",
@ -216,34 +217,37 @@ export const fr = {
orderDelivered: "La commande a été livrée.", orderDelivered: "La commande a été livrée.",
completeOrder: "La commande est terminée.", completeOrder: "La commande est terminée.",
PENDING: "EN ATTENTE", PENDING: "EN ATTENTE",
ACCEPTED: 'ACCEPTÉE', ACCEPTED: "ACCEPTÉE",
PICKED: "ENLEVÉE", PICKED: "ENLEVÉE",
DELIVERED: "LIVRÉE", DELIVERED: "LIVRÉE",
COMPLETED: "TERMINÉE", COMPLETED: "TERMINÉE",
'Default': 'Par défaut', Default: "Par défaut",
'Ascending (A-Z)': 'Croissant (A-Z)', "Ascending (A-Z)": "Croissant (A-Z)",
'Descending (Z-A)': 'Décroissant (Z-A)', "Descending (Z-A)": "Décroissant (Z-A)",
'Price (Low - High)': 'Prix (Bas - Élevé)', "Price (Low - High)": "Prix (Bas - Élevé)",
'Price (High - Low)': 'Prix (Élevé - Bas)', "Price (High - Low)": "Prix (Élevé - Bas)",
Home: 'Accueil', Home: "Accueil",
Work: 'Travail', Work: "Travail",
Other: 'Autre', Other: "Autre",
NoStock: 'Stock épuisé', NoStock: "Stock épuisé",
ItemOutOfStock: 'Article en rupture de stock', ItemOutOfStock: "Article en rupture de stock",
SelectLanguage: 'Sélectionner la langue', SelectLanguage: "Sélectionner la langue",
Done: 'Terminé', Done: "Terminé",
Cancel: 'Annuler', Cancel: "Annuler",
NoFoods: 'Pas de nourriture', NoFoods: "Pas de nourriture",
CartIsEmpty: 'Le panier est vide.', CartIsEmpty: "Le panier est vide.",
SetPaymentMethod: 'Définissez le mode de paiement avant de passer à la caisse', SetPaymentMethod:
AnErrorOccured: 'Une erreur s\'est produite. Veuillez réessayer', "Définissez le mode de paiement avant de passer à la caisse",
ResetPasswordLinkSent: 'Lien de réinitialisation du mot de passe envoyé sur votre email', AnErrorOccured: "Une erreur s'est produite. Veuillez réessayer",
LocationPermissionNotGranted: 'Permission de localisation non accordée', ResetPasswordLinkSent:
NoFooditemFound: 'Aucun article alimentaire trouvé', "Lien de réinitialisation du mot de passe envoyé sur votre email",
LocationPermissionNotGranted: "Permission de localisation non accordée",
NoFooditemFound: "Aucun article alimentaire trouvé",
SavedYet: "Vous n'avez encore sauvegardé aucune adresse.", SavedYet: "Vous n'avez encore sauvegardé aucune adresse.",
ClickAddNewAddress: 'Cliquez sur Ajouter une nouvelle adresse pour commencer', ClickAddNewAddress: "Cliquez sur Ajouter une nouvelle adresse pour commencer",
NoAddressesfound: 'Aucune adresse trouvée.', NoAddressesfound: "Aucune adresse trouvée.",
AddNewAddress: 'Ajouter une nouvelle adresse', AddNewAddress: "Ajouter une nouvelle adresse",
'About Us': 'À propos de nous', "About Us": "À propos de nous",
'Product Page': 'Page de produit', "Product Page": "Page de produit",
} "Change Payment Method": "Changer la méthode de paiement",
};

View File

@ -1,165 +1,168 @@
export const km = { export const km = {
home: 'Home', home: "ទំព័រ​ដើម",
title0: 'ភាសាដែលបានជ្រើស', title0: "ភាសាដែលបានជ្រើស",
subtitle0: 'English', subtitle0: "English",
description0: description0:
'ជ្រើសរើសភាសាណាមួយនៃជម្រើសរបស់អ្នកដើម្បីប្តូរមាតិកានៃកម្មវិធីទៅភាសាដែលអ្នកត្រូវការ។', "ជ្រើសរើសភាសាណាមួយនៃជម្រើសរបស់អ្នកដើម្បីប្តូរមាតិកានៃកម្មវិធីទៅភាសាដែលអ្នកត្រូវការ។",
title1: 'ហ៊ាន', title1: "ហ៊ាន",
subtitle1: 'អាហារពេលព្រឹក', subtitle1: "អាហារពេលព្រឹក",
description1: description1:
'អាហារពេលព្រឹកគឺជាអ្វីគ្រប់យ៉ាង។ ការចាប់ផ្តើមរឿងដំបូង។ វាគឺជាមាត់ដែលជាការប្តេជ្ញាចិត្តចំពោះថ្ងៃថ្មីនិងជីវិតដែលនៅតែបន្ត។', "អាហារពេលព្រឹកគឺជាអ្វីគ្រប់យ៉ាង។ ការចាប់ផ្តើមរឿងដំបូង។ វាគឺជាមាត់ដែលជាការប្តេជ្ញាចិត្តចំពោះថ្ងៃថ្មីនិងជីវិតដែលនៅតែបន្ត។",
title2: 'ធ្វើឱ្យស្រស់', title2: "ធ្វើឱ្យស្រស់",
subtitle2: 'ភេសជ្ជៈ', subtitle2: "ភេសជ្ជៈ",
description2: description2:
'ភាពស្ងៀមស្ងាត់ពិតគឺជាគំនិតដែលនៅសល់ហើយជាវិញ្ញាណដែលជាការដេកលក់ដល់រាងកាយការថែទាំនិងការសំរាក។', "ភាពស្ងៀមស្ងាត់ពិតគឺជាគំនិតដែលនៅសល់ហើយជាវិញ្ញាណដែលជាការដេកលក់ដល់រាងកាយការថែទាំនិងការសំរាក។",
title3: 'ឆ្ងាញ់', title3: "ឆ្ងាញ់",
subtitle3: 'ការ៉េម', subtitle3: "ការ៉េម",
description3: description3:
'អាយុមិនបន្ថយនូវការខកចិត្តយ៉ាងខ្លាំងនៃការធ្លាក់ចុះនៃការ៉េមពីកោណទេ', "អាយុមិនបន្ថយនូវការខកចិត្តយ៉ាងខ្លាំងនៃការធ្លាក់ចុះនៃការ៉េមពីកោណទេ",
getStarted: 'ចាប់ផ្ដើម!', getStarted: "ចាប់ផ្ដើម!",
welcome: welcome:
'សូមស្វាគមន៏ទៅ Enatega ពេលខ្លះអ្វីដែលអ្នកត្រូវការគឺស្នេហា។ ប៉ុន្តែអាហារតិចតួចឥឡូវនេះហើយបន្ទាប់មកមិនឈឺទេ។', "សូមស្វាគមន៏ទៅ Enatega ពេលខ្លះអ្វីដែលអ្នកត្រូវការគឺស្នេហា។ ប៉ុន្តែអាហារតិចតួចឥឡូវនេះហើយបន្ទាប់មកមិនឈឺទេ។",
loginBtn: 'ចូល', loginBtn: "ចូល",
registerBtn: 'ចុះឈ្មោះ', registerBtn: "ចុះឈ្មោះ",
name: 'ឈ្មោះ', name: "ឈ្មោះ",
phone: 'ទូរស័ព្ទ', phone: "ទូរស័ព្ទ",
email: 'អ៊ីមែល', email: "អ៊ីមែល",
emailphone: 'អី​ុ​ម៉ែ​ល​ឬ​ទូរស័ព្ទ', emailphone: "អី​ុ​ម៉ែ​ល​ឬ​ទូរស័ព្ទ",
password: 'ពាក្យសម្ងាត់', password: "ពាក្យសម្ងាត់",
deliveryAddress: 'អាស័យ​ដ្ឋាន​សំរាប់​ការ​ដឹកជញ្ជូន', deliveryAddress: "អាស័យ​ដ្ឋាន​សំរាប់​ការ​ដឹកជញ្ជូន",
fullDeliveryAddress: 'អាសយដ្ឋានចែកចាយពេញរបស់អ្នក', fullDeliveryAddress: "អាសយដ្ឋានចែកចាយពេញរបស់អ្នក",
deliveryDetails: 'ព័ត៌មានលម្អិតចាំបាច់ -e. ជាន់ / អាគារ', deliveryDetails: "ព័ត៌មានលម្អិតចាំបាច់ -e. ជាន់ / អាគារ",
myAddresses: 'អាស័យដ្ឋានរបស់ខ្ញុំ', myAddresses: "អាស័យដ្ឋានរបស់ខ្ញុំ",
addAddress: 'បន្ថែមអាសយដ្ឋានថ្មី', addAddress: "បន្ថែមអាសយដ្ឋានថ្មី",
editAddress: 'កែសម្រួលអាសយដ្ឋាន', editAddress: "កែសម្រួលអាសយដ្ឋាន",
registerText: 'ឬចុះឈ្មោះជាមួយ', registerText: "ឬចុះឈ្មោះជាមួយ",
forgotPassword: 'ភ្លេច​លេខសំងាត់​?', forgotPassword: "ភ្លេច​លេខសំងាត់​?",
loginText: 'ឬចូលជាមួយ', loginText: "ឬចូលជាមួយ",
deliveryLocation: deliveryLocation:
'កំណត់ទីតាំងដឹកជញ្ជូនរបស់អ្នកដូច្នេះយើងអាចផ្ញើឱ្យអ្នកនូវរសជាតិអាហារឆ្ងាញ់គ្មានទីបញ្ចប់។', "កំណត់ទីតាំងដឹកជញ្ជូនរបស់អ្នកដូច្នេះយើងអាចផ្ញើឱ្យអ្នកនូវរសជាតិអាហារឆ្ងាញ់គ្មានទីបញ្ចប់។",
locationBtn: 'បើកទីតាំង', locationBtn: "បើកទីតាំង",
locationPermissionDenied: 'ការអនុញ្ញាតចូលទៅកាន់ទីតាំងត្រូវបានបដិសេធ', locationPermissionDenied: "ការអនុញ្ញាតចូលទៅកាន់ទីតាំងត្រូវបានបដិសេធ",
locationOff: 'បើកទីតាំងហើយព្យាយាមម្តងទៀត', locationOff: "បើកទីតាំងហើយព្យាយាមម្តងទៀត",
titleLanguage: 'ប្ដូរ​ភាសា', titleLanguage: "ប្ដូរ​ភាសា",
titleMenu: 'ម៉ឺនុយ', titleMenu: "ម៉ឺនុយ",
titleOrders: 'ការបញ្ជាទិញរបស់ខ្ញុំ', titleOrders: "ការបញ្ជាទិញរបស់ខ្ញុំ",
titleNotifications: 'ការជូនដំណឹង', titleNotifications: "ការជូនដំណឹង",
titleReviews: 'ពិនិត្យ', titleReviews: "ពិនិត្យ",
titleProfile: 'ប្រវត្តិរូប', titleProfile: "ប្រវត្តិរូប",
titleHelp: 'ជំនួយ', titleHelp: "ជំនួយ",
titleChat: 'ជជែក', titleChat: "ជជែក",
titleLogout: 'ចាកចេញ', titleLogout: "ចាកចេញ",
titleCart: 'កន្ត្រករបស់ខ្ញុំ', titleCart: "កន្ត្រករបស់ខ្ញុំ",
titlePayment: 'ការទូទាត់', titlePayment: "ការទូទាត់",
totalOrderAmount: 'បរិមាណសរុប', totalOrderAmount: "បរិមាណសរុប",
reOrder: 'តម្រៀបឡើងវិញ', reOrder: "តម្រៀបឡើងវិញ",
unReadNotifications: 'គ្មានការជូនដំណឹងមិនទាន់អាន', unReadNotifications: "គ្មានការជូនដំណឹងមិនទាន់អាន",
upload: 'ផ្ទុកឡើង', upload: "ផ្ទុកឡើង",
saveBtn: 'រក្សាទុក', saveBtn: "រក្សាទុក",
saveContBtn: 'រក្សាទុកនិងបន្ត', saveContBtn: "រក្សាទុកនិងបន្ត",
emailUs: 'អ៊ីម៉ែលមកយើងនៅ', emailUs: "អ៊ីម៉ែលមកយើងនៅ",
question1: 'តើយើងរកម្ហូបបាននៅឯណា?', question1: "តើយើងរកម្ហូបបាននៅឯណា?",
question2: 'តើយើងទាក់ទងយ៉ាងដូចម្តេច?', question2: "តើយើងទាក់ទងយ៉ាងដូចម្តេច?",
question3: 'តើខ្ញុំអាចបង់ប្រាក់ដល់មនុស្សដែលត្រូវដឹកជញ្ជូន?', question3: "តើខ្ញុំអាចបង់ប្រាក់ដល់មនុស្សដែលត្រូវដឹកជញ្ជូន?",
question4: 'តើសេវាកម្មនេះមាននៅក្នុងទីក្រុងរបស់ខ្ញុំដែរឬទេ?', question4: "តើសេវាកម្មនេះមាននៅក្នុងទីក្រុងរបស់ខ្ញុំដែរឬទេ?",
answer1: answer1:
'អ្នកអាចរកឃើញម្ហូបអាហារនៅហាងដែលនៅជិតបំផុតរបស់អ្នកដោយមិនបង់អ្វីឱ្យសេវាកម្មបំរើអតិថិជន។ ការចោទប្រកាន់របស់យើងមានកម្រិតទាបខ្លាំងបើប្រៀបធៀបទៅនឹងអ្នកដទៃ។', "អ្នកអាចរកឃើញម្ហូបអាហារនៅហាងដែលនៅជិតបំផុតរបស់អ្នកដោយមិនបង់អ្វីឱ្យសេវាកម្មបំរើអតិថិជន។ ការចោទប្រកាន់របស់យើងមានកម្រិតទាបខ្លាំងបើប្រៀបធៀបទៅនឹងអ្នកដទៃ។",
answer2: 'អ្នកអាចទាក់ទងយើងតាមរយៈអ៊ីម៉ែលលេខទូរស័ព្ទឬវេបសាយរបស់យើង។', answer2: "អ្នកអាចទាក់ទងយើងតាមរយៈអ៊ីម៉ែលលេខទូរស័ព្ទឬវេបសាយរបស់យើង។",
answer3: answer3:
'អ្នកអាចបង់ប្រាក់ទៅកាន់បុគ្គលដឹកជញ្ជូនដោយផ្ទាល់ឬបង់ប្រាក់តាមរយៈអ៊ីនធឺណេតតាមរយៈប័ណ្ណឥណទានឬឥណពន្ធផងដែរ។', "អ្នកអាចបង់ប្រាក់ទៅកាន់បុគ្គលដឹកជញ្ជូនដោយផ្ទាល់ឬបង់ប្រាក់តាមរយៈអ៊ីនធឺណេតតាមរយៈប័ណ្ណឥណទានឬឥណពន្ធផងដែរ។",
answer4: answer4:
'បច្ចុប្បន្នសេវាកម្មនេះអាចរកបាននៅក្នុងទីក្រុងអ៊ីស្លាម៉ាបាតនិងការ៉ាជីដែលអ្នកអាចទាក់ទងមកយើងដើម្បីទទួលបានសេវាកម្មនេះនៅក្នុងទីក្រុងរបស់អ្នក។', "បច្ចុប្បន្នសេវាកម្មនេះអាចរកបាននៅក្នុងទីក្រុងអ៊ីស្លាម៉ាបាតនិងការ៉ាជីដែលអ្នកអាចទាក់ទងមកយើងដើម្បីទទួលបានសេវាកម្មនេះនៅក្នុងទីក្រុងរបស់អ្នក។",
add: 'បន្ថែម', add: "បន្ថែម",
quantity: 'បរិមាណ', quantity: "បរិមាណ",
size: 'ទំហំ', size: "ទំហំ",
addToCart: 'បន្ថែមទៅកន្ត្រក', addToCart: "បន្ថែមទៅកន្ត្រក",
orderNow: 'បញ្ជាទិញឥឡូវ', orderNow: "បញ្ជាទិញឥឡូវ",
addToCartMessage: 'បានបន្ថែមទៅរទេះ', addToCartMessage: "បានបន្ថែមទៅរទេះ",
emptyCart: 'គ្មានធាតុក្នុងរទេះទេ', emptyCart: "គ្មានធាតុក្នុងរទេះទេ",
itemTotal: 'ធាតុសរុប', itemTotal: "ធាតុសរុប",
delvieryCharges: 'ការដឹកជញ្ជូន', delvieryCharges: "ការដឹកជញ្ជូន",
total: 'សរុប', total: "សរុប",
contactInfo: 'ព័ត៌មានទំនាក់ទំនង', contactInfo: "ព័ត៌មានទំនាក់ទំនង",
deliveryAddressmessage: 'កំណត់អាសយដ្ឋានបញ្ជូន', deliveryAddressmessage: "កំណត់អាសយដ្ឋានបញ្ជូន",
proceedCheckout: 'បន្តដើម្បីពិនិត្យចេញ', proceedCheckout: "បន្តដើម្បីពិនិត្យចេញ",
paymentText: 'តើអ្នកចង់បង់ប្រាក់ដោយរបៀបណា?', paymentText: "តើអ្នកចង់បង់ប្រាក់ដោយរបៀបណា?",
checkout: 'ពិនិត្យ​មុន​ពេល​ចេញ', checkout: "ពិនិត្យ​មុន​ពេល​ចេញ",
creditCard: 'ប័ណ្ណឥណទាន / ប័ណ្ណឥណពន្ធ', creditCard: "ប័ណ្ណឥណទាន / ប័ណ្ណឥណពន្ធ",
paypal: 'Paypal', paypal: "Paypal",
cod: 'សាច់ប្រាក់នៅពេលប្រគល់', cod: "សាច់ប្រាក់នៅពេលប្រគល់",
thankYou: 'សូមអរគុណ!', thankYou: "សូមអរគុណ!",
orderConfirmed: 'បញ្ជាទិញរបស់អ្នកត្រូវបានបញ្ជាក់', orderConfirmed: "បញ្ជាទិញរបស់អ្នកត្រូវបានបញ្ជាក់",
orderId: 'លេខសម្គាល់លំដាប់របស់អ្នក', orderId: "លេខសម្គាល់លំដាប់របស់អ្នក",
orderAmount: 'ចំនួនទឹកប្រាក់នៃការបញ្ជាទិញរបស់អ្នក', orderAmount: "ចំនួនទឹកប្រាក់នៃការបញ្ជាទិញរបស់អ្នក",
orderDetail: 'លំអិតលំដាប់', orderDetail: "លំអិតលំដាប់",
paymentMethod: 'វិធី​សា​ស្រ្ត​ទូទាត់', paymentMethod: "វិធី​សា​ស្រ្ត​ទូទាត់",
trackOrder: 'លំដាប់តាមបទ', trackOrder: "លំដាប់តាមបទ",
backToMenu: 'លំដាប់តាមបទ', backToMenu: "លំដាប់តាមបទ",
foodItem: 'ម្ហូបអាហារ', foodItem: "ម្ហូបអាហារ",
deliveredTo: 'បញ្ជូនទៅ', deliveredTo: "បញ្ជូនទៅ",
writeAReview: 'សរសេរ​សង្ខេប​ឡើងវិញ', writeAReview: "សរសេរ​សង្ខេប​ឡើងវិញ",
orderReceived: 'បញ្ជាទិញដែលទទួលបាន', orderReceived: "បញ្ជាទិញដែលទទួលបាន",
cancelled: 'បានបោះបង់', cancelled: "បានបោះបង់",
foodPreparing: 'ម្ហូបកំពុងត្រូវបានរៀបចំ', foodPreparing: "ម្ហូបកំពុងត្រូវបានរៀបចំ",
delivered: 'បានបញ្ជូន', delivered: "បានបញ្ជូន",
rateAndReview: 'វាយតម្លៃនិងពិនិត្យ', rateAndReview: "វាយតម្លៃនិងពិនិត្យ",
reviewPlaceholder: 'ការពិនិត្យលម្អិតបន្ថែមទៀតទទួលបានភាពមើលឃើញកាន់តែច្រើន ...', reviewPlaceholder: "ការពិនិត្យលម្អិតបន្ថែមទៀតទទួលបានភាពមើលឃើញកាន់តែច្រើន ...",
submit: 'ដាក់ស្នើ', submit: "ដាក់ស្នើ",
noWorriesText: 'គ្មានការព្រួយបារម្ភសូមឱ្យយើងជួយអ្នកចេញ!', noWorriesText: "គ្មានការព្រួយបារម្ភសូមឱ្យយើងជួយអ្នកចេញ!",
yourEmail: 'អ៊ីមែល​របស់​អ្នក', yourEmail: "អ៊ីមែល​របស់​អ្នក",
send: 'ផ្ញើ', send: "ផ្ញើ",
checkEmail: 'ពិនិត្យអ៊ីមែលរបស់អ្នកសម្រាប់តំណពាក្យសម្ងាត់ឡើងវិញ', checkEmail: "ពិនិត្យអ៊ីមែលរបស់អ្នកសម្រាប់តំណពាក្យសម្ងាត់ឡើងវិញ",
languageText: 'សូមជ្រើសរើសភាសាដែលអ្នកត្រូវការ', languageText: "សូមជ្រើសរើសភាសាដែលអ្នកត្រូវការ",
countryCodePickerTranslation: 'eng', countryCodePickerTranslation: "eng",
countryCodeSelect: 'ជ្រើសរើសលេខកូដប្រទេស', countryCodeSelect: "ជ្រើសរើសលេខកូដប្រទេស",
paymentNotSupported: 'វិធីសាស្ត្រទូទាត់នេះមិនគាំទ្ររូបិយប័ណ្ណនេះទេ', paymentNotSupported: "វិធីសាស្ត្រទូទាត់នេះមិនគាំទ្ររូបិយប័ណ្ណនេះទេ",
unReadReviews: 'មិនទាន់មានការពិនិត្យឡើងវិញទេ!', unReadReviews: "មិនទាន់មានការពិនិត្យឡើងវិញទេ!",
unReadOrders: 'មិនទាន់មានការបញ្ជាទិញនៅឡើយទេ!', unReadOrders: "មិនទាន់មានការបញ្ជាទិញនៅឡើយទេ!",
error: 'កំហុស', error: "កំហុស",
noMoreItems: 'មិនមានរបស់នៅក្នុងស្តុកទៀតទេ', noMoreItems: "មិនមានរបស់នៅក្នុងស្តុកទៀតទេ",
hungry: 'ឃ្លាន', hungry: "ឃ្លាន",
emptyCartBtn: 'ត្រឡប់ទៅអាហារ', emptyCartBtn: "ត្រឡប់ទៅអាហារ",
subTotal: 'SubTotal', subTotal: "SubTotal",
deliveryFee: 'ថ្លៃសេវាដឹកជញ្ជូន', deliveryFee: "ថ្លៃសេវាដឹកជញ្ជូន",
haveVoucher: 'តើអ្នកមានប័ណ្ណទូទាត់ទេ?', haveVoucher: "តើអ្នកមានប័ណ្ណទូទាត់ទេ?",
remove: 'យកចេញ', remove: "យកចេញ",
change: 'ផ្លាស់ប្តូរ', change: "ផ្លាស់ប្តូរ",
condition1: 'ដោយបំពេញការបញ្ជាទិញនេះខ្ញុំយល់ព្រមនឹងល័ក្ខខ័ណ្ឌទាំងអស់។', condition1: "ដោយបំពេញការបញ្ជាទិញនេះខ្ញុំយល់ព្រមនឹងល័ក្ខខ័ណ្ឌទាំងអស់។",
condition2: condition2:
'ខ្ញុំយល់ព្រមហើយខ្ញុំទាមទារឱ្យអ្នកប្រតិបត្តិសេវាកម្មដែលបានបញ្ជាទិញមុនពេលចុងបញ្ចប់នៃរយៈពេលដកហូត។ ខ្ញុំដឹងថាបន្ទាប់ពីការបំពេញសេវាកម្មពេញលេញខ្ញុំបាត់បង់សិទ្ធិក្នុងការរំដោះខ្លួន។', "ខ្ញុំយល់ព្រមហើយខ្ញុំទាមទារឱ្យអ្នកប្រតិបត្តិសេវាកម្មដែលបានបញ្ជាទិញមុនពេលចុងបញ្ចប់នៃរយៈពេលដកហូត។ ខ្ញុំដឹងថាបន្ទាប់ពីការបំពេញសេវាកម្មពេញលេញខ្ញុំបាត់បង់សិទ្ធិក្នុងការរំដោះខ្លួន។",
orderBtn: 'ដាក់បញ្ជាទិញ', orderBtn: "ដាក់បញ្ជាទិញ",
coupanApply: 'ការបញ្ចុះតម្លៃប័ណ្ណត្រូវបានអនុវត្ត', coupanApply: "ការបញ្ចុះតម្លៃប័ណ្ណត្រូវបានអនុវត្ត",
coupanFailed: 'គូប៉ុងមិនមានទេ', coupanFailed: "គូប៉ុងមិនមានទេ",
invalidCoupan: 'គូប៉ុងមិនត្រឹមត្រូវ', invalidCoupan: "គូប៉ុងមិនត្រឹមត្រូវ",
validateItems: 'បន្ថែមរបស់របរទៅរទេះមុនពេលឆែក', validateItems: "បន្ថែមរបស់របរទៅរទេះមុនពេលឆែក",
validateDelivery: 'កំណត់អាសយដ្ឋានដឹកជញ្ជូនមុនពេលពិនិត្យចេញ', validateDelivery: "កំណត់អាសយដ្ឋានដឹកជញ្ជូនមុនពេលពិនិត្យចេញ",
language: 'ភាសា', language: "ភាសា",
getUpdatesText: 'ទទួល​បាន​ការ​ធ្វើ​បច្ចុប្បន្ន​ភាព​លើ​ស្ថាន​ភាព​ការ​បញ្ជាទិញ​របស់​អ្នក!', getUpdatesText:
delAcc: 'លុប​គណនី', "ទទួល​បាន​ការ​ធ្វើ​បច្ចុប្បន្ន​ភាព​លើ​ស្ថាន​ភាព​ការ​បញ្ជាទិញ​របស់​អ្នក!",
delAccText: 'តើ​អ្នក​ប្រាកដ​ថា​តើ​ចង់​លុប​គណនី​ឬ​ទេ?', delAcc: "លុប​គណនី",
cancel: 'បោះបង់', delAccText: "តើ​អ្នក​ប្រាកដ​ថា​តើ​ចង់​លុប​គណនី​ឬ​ទេ?",
receiveOffers: 'ទទួល​បាន​ការ​ផ្តល់​ជូន​ពិសេស', cancel: "បោះបង់",
notificationUpdate: 'ការ​ប្រកាស​ការ​ជូន​ដំណឹង​ត្រូវបាន​ធ្វើ​បច្ចុប្បន្ន', receiveOffers: "ទទួល​បាន​ការ​ផ្តល់​ជូន​ពិសេស",
notificationsNotWorking: "ការ​ជូន​ដំណឹង​មិន​ដំណើរ​ការ​លើ​ម៉ាស៊ីន​សម្រាប់​ប្រើប្រាស់តំណល", notificationUpdate: "ការ​ប្រកាស​ការ​ជូន​ដំណឹង​ត្រូវបាន​ធ្វើ​បច្ចុប្បន្ន",
notificationsNotWorking:
"ការ​ជូន​ដំណឹង​មិន​ដំណើរ​ការ​លើ​ម៉ាស៊ីន​សម្រាប់​ប្រើប្រាស់តំណល",
loginOrCreateAcc: "ចូល​ប្រើ/បង្កើត​គណនី", loginOrCreateAcc: "ចូល​ប្រើ/បង្កើត​គណនី",
welcome: "ស្វាគមន៍", welcome: "ស្វាគមន៍",
titleSettings: 'ការ​កំណត់', titleSettings: "ការ​កំណត់",
home: 'ទំព័រ​ដើម', home: "ទំព័រ​ដើម",
noItems: 'រក​មិន​ឃើញ​ទេ', noItems: "រក​មិន​ឃើញ​ទេ",
featured: 'ផ្សេងៗ', featured: "ផ្សេងៗ",
filters: 'តម្រង', filters: "តម្រង",
reset: 'កំណត់​ឡើងវិញ', reset: "កំណត់​ឡើងវិញ",
showSaleItems: 'បង្ហាញ​ទំនិញ​លក់​តែប៉ុណ្ណោះ', showSaleItems: "បង្ហាញ​ទំនិញ​លក់​តែប៉ុណ្ណោះ",
showStockItems: 'បង្ហាញ​ទំនិញ​ស្តុក​តែប៉ុណ្ណោះ', showStockItems: "បង្ហាញ​ទំនិញ​ស្តុក​តែប៉ុណ្ណោះ",
priceRange: 'ជម្រើស​តម្លៃ', priceRange: "ជម្រើស​តម្លៃ",
sorting: 'តម្រៀបតាម', sorting: "តម្រៀបតាម",
applyFilter: 'អនុវត្ត​តម្រង', applyFilter: "អនុវត្ត​តម្រង",
close: 'បិទ', close: "បិទ",
phoneNumberRequired: "ត្រូវការលេខទូរស័ព្ទ", phoneNumberRequired: "ត្រូវការលេខទូរស័ព្ទ",
phoneNumberMissing: "ខុសលេខទូរស័ព្ទ", phoneNumberMissing: "ខុសលេខទូរស័ព្ទ",
userInfoUpdated: "ព័ត៌មានអ្នកប្រើប្រាស់ត្រូវបានធ្វើបច្ចុប្បន្នភាព", userInfoUpdated: "ព័ត៌មានអ្នកប្រើប្រាស់ត្រូវបានធ្វើបច្ចុប្បន្នភាព",
nameReq: "ត្រូវការឈ្មោះ", nameReq: "ត្រូវការឈ្មោះ",
minWords: "អត្ថបទអប្បាយបន្ទាប់ពី 11 និងអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណ", minWords:
"អត្ថបទអប្បាយបន្ទាប់ពី 11 និងអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណអតិបរិមាណ",
rightsReserved: "រក្សាសិទ្ធិទាំងអស់គ្នាដោយ Enatega", rightsReserved: "រក្សាសិទ្ធិទាំងអស់គ្នាដោយ Enatega",
changePass: "ប្ដូរលេខសម្ងាត់", changePass: "ប្ដូរលេខសម្ងាត់",
currentPass: "លេខសម្ងាត់បច្ចុប្បន្ន", currentPass: "លេខសម្ងាត់បច្ចុប្បន្ន",
@ -175,32 +178,32 @@ export const km = {
noOrdersAssigned: "មិនទាន់បានចាក់ការបញ្ជាទិញទេ!", noOrdersAssigned: "មិនទាន់បានចាក់ការបញ្ជាទិញទេ!",
oldOrder: "ការបញ្ជាទិញចាស់", oldOrder: "ការបញ្ជាទិញចាស់",
activeOrder: "ការបញ្ជាទិញដែលមានសកម្ម", activeOrder: "ការបញ្ជាទិញដែលមានសកម្ម",
idVar: 'លេខសម្គាល់: ', idVar: "លេខសម្គាល់: ",
addressUpdated: 'អាសយដ្ឋានត្រូវបានធ្វើបច្ចុប្បន្នភាព', addressUpdated: "អាសយដ្ឋានត្រូវបានធ្វើបច្ចុប្បន្នភាព",
labelAs: 'ស្លាកជាដើម', labelAs: "ស្លាកជាដើម",
addressReq: 'អាសយដ្ឋានការដឹកជញ្ជូនត្រូវការ', addressReq: "អាសយដ្ឋានការដឹកជញ្ជូនត្រូវការ",
deliveryDetailsReq: 'សេចក្ដីលម្អិតនៃការដឹកជញ្ជូនត្រូវការ', deliveryDetailsReq: "សេចក្ដីលម្អិតនៃការដឹកជញ្ជូនត្រូវការ",
locaPermission: 'ការអនុញ្ញាតឱ្យតាមដានទីតាំងមិនបានទទួលយក', locaPermission: "ការអនុញ្ញាតឱ្យតាមដានទីតាំងមិនបានទទួលយក",
addressAdded: 'បាន​បន្ថែម​អាសយដ្ឋាន', addressAdded: "បាន​បន្ថែម​អាសយដ្ឋាន",
productPage: 'ទំព័រផលិតផល', productPage: "ទំព័រផលិតផល",
Docs: 'ឯកសារ', Docs: "ឯកសារ",
Blog: 'ប្លក់', Blog: "ប្លក់",
aboutUs: 'អំពី​យើង', aboutUs: "អំពី​យើង",
myVouchers: 'លេខកូដ​វេបសាយ​របស់​ខ្ញុំ', myVouchers: "លេខកូដ​វេបសាយ​របស់​ខ្ញុំ",
typeVoucherCode: "បញ្ចូល​លេខកូដ​វេបសាយ", typeVoucherCode: "បញ្ចូល​លេខកូដ​វេបសាយ",
enterVoucherCode: "បញ្ចូល​លេខកូដ​វេបសាយ​របស់​អ្នក", enterVoucherCode: "បញ្ចូល​លេខកូដ​វេបសាយ​របស់​អ្នក",
status: 'ស្ថានភាព', status: "ស្ថានភាព",
anySuggestion: 'មានអំណាចណាស់មែនទេ?', anySuggestion: "មានអំណាចណាស់មែនទេ?",
reviewRegarding: 'ពិនិត្យឡើងវិញអំពីការបញ្ជាទិញរបស់អ្នក?', reviewRegarding: "ពិនិត្យឡើងវិញអំពីការបញ្ជាទិញរបស់អ្នក?",
writeReview: 'សរសេរពិន្ទុ', writeReview: "សរសេរពិន្ទុ",
chatWithRider: 'ជជែកជាមួយអ្នកបើកដំណើរ', chatWithRider: "ជជែកជាមួយអ្នកបើកដំណើរ",
signupGoogle: 'ចុះឈ្មោះជាមួយ Google', signupGoogle: "ចុះឈ្មោះជាមួយ Google",
signupEmail: 'ចុះឈ្មោះតាមអ៊ីម៉ែល', signupEmail: "ចុះឈ្មោះតាមអ៊ីម៉ែល",
signup: 'ចុះឈ្មោះ', signup: "ចុះឈ្មោះ",
signupApple: 'ចុះឈ្មោះជាមួយ Apple', signupApple: "ចុះឈ្មោះជាមួយ Apple",
alreadyMember: 'រួចហើយរួចចូលក្នុង', alreadyMember: "រួចហើយរួចចូលក្នុង",
enterUsername: 'បញ្ចូលអ៊ីម៉ែលរបស់អ្នក និងពាក្យសម្ងាត់', enterUsername: "បញ្ចូលអ៊ីម៉ែលរបស់អ្នក និងពាក្យសម្ងាត់",
createNewAcc: 'បង្កើតគណនីថ្មី', createNewAcc: "បង្កើតគណនីថ្មី",
emailphoneReq: "ត្រូវការអ៊ីម៉ែល/លេខទូរស័ព្ទ", emailphoneReq: "ត្រូវការអ៊ីម៉ែល/លេខទូរស័ព្ទ",
invalidMail: "អ៊ីម៉ែល/លេខទូរស័ព្ទ​មិនត្រឹមត្រូវ", invalidMail: "អ៊ីម៉ែល/លេខទូរស័ព្ទ​មិនត្រឹមត្រូវ",
passReq: "ត្រូវការពាក្យសម្ងាត់", passReq: "ត្រូវការពាក្យសម្ងាត់",
@ -211,35 +214,35 @@ export const km = {
orderDelivered: "ការបញ្ជាទិញបានដឹកជញ្ជូន។", orderDelivered: "ការបញ្ជាទិញបានដឹកជញ្ជូន។",
completeOrder: "ការបញ្ជាទិញបានបញ្ចប់។", completeOrder: "ការបញ្ជាទិញបានបញ្ចប់។",
PENDING: "កំពុងរង់ចាំ", PENDING: "កំពុងរង់ចាំ",
ACCEPTED: 'បានទទួលយក', ACCEPTED: "បានទទួលយក",
PICKED: "បានជូនយក", PICKED: "បានជូនយក",
DELIVERED: "បានដឹកជញ្ជូន", DELIVERED: "បានដឹកជញ្ជូន",
COMPLETED: "បានបញ្ចប់", COMPLETED: "បានបញ្ចប់",
'Default': 'លំនាំដើម', Default: "លំនាំដើម",
'Ascending (A-Z)': 'កើតឡើង (អ ទំ)', "Ascending (A-Z)": "កើតឡើង (អ ទំ)",
'Descending (Z-A)': 'ចុះឡើង (ទំ អ)', "Descending (Z-A)": "ចុះឡើង (ទំ អ)",
'Price (Low - High)': 'តម្លៃ (ទាប - ខ្ពស់)', "Price (Low - High)": "តម្លៃ (ទាប - ខ្ពស់)",
'Price (High - Low)': 'តម្លៃ (ខ្ពស់ - ទាប)', "Price (High - Low)": "តម្លៃ (ខ្ពស់ - ទាប)",
Home: 'ទំព័រដើម', Home: "ទំព័រដើម",
Work: 'ការងារ', Work: "ការងារ",
Other: 'ផ្សេងៗ', Other: "ផ្សេងៗ",
NoStock: 'គ្មាន​ស្តុក', NoStock: "គ្មាន​ស្តុក",
ItemOutOfStock: 'មុខទំនិញ​អស់​ស្តុក', ItemOutOfStock: "មុខទំនិញ​អស់​ស្តុក",
SelectLanguage: 'ជ្រើសរើសភាសា', SelectLanguage: "ជ្រើសរើសភាសា",
Done: 'រួចរាល់', Done: "រួចរាល់",
Cancel: 'បោះបង់', Cancel: "បោះបង់",
NoFoods: 'មិនមានអាហារ', NoFoods: "មិនមានអាហារ",
CartIsEmpty: 'រទេះទម្ងន់។', CartIsEmpty: "រទេះទម្ងន់។",
SetPaymentMethod: 'កំណត់របស់មុនពេលចេញ', SetPaymentMethod: "កំណត់របស់មុនពេលចេញ",
AnErrorOccured: 'មានកំហុសមិនរួចហើយ។ សូមព្យាយាមម្តងទៀត', AnErrorOccured: "មានកំហុសមិនរួចហើយ។ សូមព្យាយាមម្តងទៀត",
ResetPasswordLinkSent: 'បានផ្ញើតំណរពេលបានប្ដូរពាក្យសម្ងាត់របស់អ្នកហើយ', ResetPasswordLinkSent: "បានផ្ញើតំណរពេលបានប្ដូរពាក្យសម្ងាត់របស់អ្នកហើយ",
LocationPermissionNotGranted: 'មិនបានទទួលស្ថានភាពទីតាំង', LocationPermissionNotGranted: "មិនបានទទួលស្ថានភាពទីតាំង",
NoFooditemFound: 'មិនបានរកឃើញវាលម្ហូប', NoFooditemFound: "មិនបានរកឃើញវាលម្ហូប",
SavedYet: 'អ្នកមិនទាន់រក្សាទុកអាសយដ្ឋានណាមួយទេ។', SavedYet: "អ្នកមិនទាន់រក្សាទុកអាសយដ្ឋានណាមួយទេ។",
ClickAddNewAddress: 'ចុចលើប៊ូតុងបន្ថែមអាសយដ្ឋានថ្មីដើម្បីចាប់ផ្តើម', ClickAddNewAddress: "ចុចលើប៊ូតុងបន្ថែមអាសយដ្ឋានថ្មីដើម្បីចាប់ផ្តើម",
NoAddressesfound: 'រកមិនឃើញអាសយដ្ឋានទេ។', NoAddressesfound: "រកមិនឃើញអាសយដ្ឋានទេ។",
AddNewAddress: 'បន្ថែមអាសយដ្ឋានថ្មី', AddNewAddress: "បន្ថែមអាសយដ្ឋានថ្មី",
'About Us': 'អំពីពួកយើង', "About Us": "អំពីពួកយើង",
'Product Page': 'ទំព័រផលិតផល', "Product Page": "ទំព័រផលិតផល",
"Change Payment Method": "ផ្លាស់ប្តូរវិធីបង់ប្រាក់",
} };

View File

@ -1,156 +1,156 @@
export const zh = { export const zh = {
home: 'Home', home: "主页",
title0: '选定的语言', title0: "选定的语言",
subtitle0: 'English', subtitle0: "English",
description0: '选择您选择的任何语言,将应用内容更改为您所需的语言。', description0: "选择您选择的任何语言,将应用内容更改为您所需的语言。",
title1: '可口', title1: "可口",
subtitle1: '早餐', subtitle1: "早餐",
description1: description1:
'早餐就是一切。一开始,第一件事。这是对新的一天,持续生活的承诺。', "早餐就是一切。一开始,第一件事。这是对新的一天,持续生活的承诺。",
title2: '清爽', title2: "清爽",
subtitle2: '饮料', subtitle2: "饮料",
description2: description2:
'真正的沉默是心灵的其余部分,对于精神来说,睡眠对身体,营养和茶点来说都是如此。', "真正的沉默是心灵的其余部分,对于精神来说,睡眠对身体,营养和茶点来说都是如此。",
title3: '美味的', title3: "美味的",
subtitle3: '冰淇淋', subtitle3: "冰淇淋",
description3: '年龄不会减少从冰锥中舀出一勺冰淇淋的极度失望', description3: "年龄不会减少从冰锥中舀出一勺冰淇淋的极度失望",
getStarted: '开始吧!', getStarted: "开始吧!",
welcome: welcome:
'欢迎来到Enatega有时您需要的只是爱。但是偶尔会有点食物不会受到伤害。', "欢迎来到Enatega有时您需要的只是爱。但是偶尔会有点食物不会受到伤害。",
loginBtn: '登录', loginBtn: "登录",
registerBtn: '寄存器', registerBtn: "寄存器",
name: '名称', name: "名称",
phone: '电话', phone: "电话",
email: '电子邮件', email: "电子邮件",
emailphone: '邮件或者电话', emailphone: "邮件或者电话",
password: '密码', password: "密码",
deliveryAddress: '邮寄地址', deliveryAddress: "邮寄地址",
fullDeliveryAddress: '您的完整收货地址', fullDeliveryAddress: "您的完整收货地址",
deliveryDetails: '必填详细信息-例如 楼层/建筑物', deliveryDetails: "必填详细信息-例如 楼层/建筑物",
myAddresses: '我的地址', myAddresses: "我的地址",
addAddress: '添加新地址', addAddress: "添加新地址",
editAddress: '编辑地址', editAddress: "编辑地址",
registerText: '或注册', registerText: "或注册",
forgotPassword: '忘记密码?', forgotPassword: "忘记密码?",
loginText: '或登录', loginText: "或登录",
deliveryLocation: '设置您的送货地点,以便我们可以向您发送无尽的美味食物。', deliveryLocation: "设置您的送货地点,以便我们可以向您发送无尽的美味食物。",
locationBtn: '打开位置', locationBtn: "打开位置",
locationPermissionDenied: '访问位置的权限被拒绝', locationPermissionDenied: "访问位置的权限被拒绝",
locationOff: '访问位置的权限被拒绝', locationOff: "访问位置的权限被拒绝",
titleLanguage: '改变语言', titleLanguage: "改变语言",
titleMenu: '菜单', titleMenu: "菜单",
titleOrders: '我的订单', titleOrders: "我的订单",
titleNotifications: '通知', titleNotifications: "通知",
titleReviews: '评测', titleReviews: "评测",
titleProfile: '轮廓', titleProfile: "轮廓",
titleHelp: '救命', titleHelp: "救命",
titleChat: '聊', titleChat: "聊",
titleLogout: '登出', titleLogout: "登出",
titleCart: '我的车', titleCart: "我的车",
titlePayment: '付款', titlePayment: "付款",
totalOrderAmount: '总订单金额', totalOrderAmount: "总订单金额",
reOrder: '重新排序', reOrder: "重新排序",
unReadNotifications: '没有未读通知', unReadNotifications: "没有未读通知",
upload: '上传', upload: "上传",
saveBtn: '保存', saveBtn: "保存",
saveContBtn: '保存并继续', saveContBtn: "保存并继续",
emailUs: '给我们发电子邮件', emailUs: "给我们发电子邮件",
question1: '我们在哪里找到食物?', question1: "我们在哪里找到食物?",
question2: '我们如何联系?', question2: "我们如何联系?",
question3: '我该如何付款给送货人?', question3: "我该如何付款给送货人?",
question4: '我的城市有这项服务吗?', question4: "我的城市有这项服务吗?",
answer1: answer1:
'您可以在离您最近的商店找到食物,而无需向客户支付任何费用。与其他人相比,我们的收费极低。', "您可以在离您最近的商店找到食物,而无需向客户支付任何费用。与其他人相比,我们的收费极低。",
answer2: '您可以通过我们的电子邮件,电话号码或我们的网站联系我们。', answer2: "您可以通过我们的电子邮件,电话号码或我们的网站联系我们。",
answer3: '您可以亲自向付款人付款或使用信用卡或借记卡在线付款。', answer3: "您可以亲自向付款人付款或使用信用卡或借记卡在线付款。",
answer4: answer4:
'目前,这项服务在伊斯兰堡和卡拉奇市提供,您可以联系我们以便在您所在的城市使用此服务。', "目前,这项服务在伊斯兰堡和卡拉奇市提供,您可以联系我们以便在您所在的城市使用此服务。",
add: '加', add: "加",
quantity: '数量', quantity: "数量",
size: '尺寸', size: "尺寸",
addToCart: '添加到购物车', addToCart: "添加到购物车",
orderNow: '现在下单', orderNow: "现在下单",
addToCartMessage: '已添加到购物车', addToCartMessage: "已添加到购物车",
emptyCart: '购物车中没有商品', emptyCart: "购物车中没有商品",
itemTotal: '项目总计', itemTotal: "项目总计",
delvieryCharges: '送货费', delvieryCharges: "送货费",
total: '总', total: "总",
contactInfo: '联系信息', contactInfo: "联系信息",
deliveryAddressmessage: '设置送货地址', deliveryAddressmessage: "设置送货地址",
proceedCheckout: '进行结算', proceedCheckout: "进行结算",
paymentText: '你想怎么付钱?', paymentText: "你想怎么付钱?",
checkout: '查看', checkout: "查看",
creditCard: '信用卡/借记卡', creditCard: "信用卡/借记卡",
paypal: '贝宝', paypal: "贝宝",
cod: '货到付款', cod: "货到付款",
thankYou: 'ស谢谢!', thankYou: "ស谢谢!",
orderConfirmed: '您的订单已确认', orderConfirmed: "您的订单已确认",
orderId: '您的订单ID', orderId: "您的订单ID",
orderAmount: '您的订单金额', orderAmount: "您的订单金额",
orderDetail: '订单详情', orderDetail: "订单详情",
paymentMethod: '付款方法', paymentMethod: "付款方法",
trackOrder: '跟踪订单', trackOrder: "跟踪订单",
backToMenu: '跟踪订单', backToMenu: "跟踪订单",
foodItem: '食品', foodItem: "食品",
deliveredTo: '送到了(送去了', deliveredTo: "送到了(送去了",
writeAReview: '写评论', writeAReview: "写评论",
orderReceived: '订单已经收到', orderReceived: "订单已经收到",
cancelled: '取消', cancelled: "取消",
foodPreparing: '食物正在准备中', foodPreparing: "食物正在准备中",
delivered: '交付', delivered: "交付",
rateAndReview: '打分和评论', rateAndReview: "打分和评论",
reviewPlaceholder: '更详细的评论获得更多可见性......', reviewPlaceholder: "更详细的评论获得更多可见性......",
submit: '提交', submit: "提交",
noWorriesText: '不用担心,让我们帮帮你吧!', noWorriesText: "不用担心,让我们帮帮你吧!",
yourEmail: '你的邮件', yourEmail: "你的邮件",
send: '发送', send: "发送",
checkEmail: '查看您的电子邮件以重置密码链接', checkEmail: "查看您的电子邮件以重置密码链接",
languageText: '请选择您需要的语言', languageText: "请选择您需要的语言",
countryCodePickerTranslation: 'zho', countryCodePickerTranslation: "zho",
countryCodeSelect: '选择国家代码', countryCodeSelect: "选择国家代码",
paymentNotSupported: '此付款方式不支持此货币', paymentNotSupported: "此付款方式不支持此货币",
unReadReviews: '暂无评论!', unReadReviews: "暂无评论!",
unReadOrders: '尚无订单!', unReadOrders: "尚无订单!",
error: '错误', error: "错误",
noMoreItems: '库存不多', noMoreItems: "库存不多",
hungry: '饥饿', hungry: "饥饿",
emptyCartBtn: '回到食物', emptyCartBtn: "回到食物",
subTotal: '小计', subTotal: "小计",
deliveryFee: '快递费', deliveryFee: "快递费",
haveVoucher: '你有优惠券吗', haveVoucher: "你有优惠券吗",
remove: '去掉', remove: "去掉",
change: '更改', change: "更改",
condition1: '完成此订单,即表示我同意所有条款和条件。', condition1: "完成此订单,即表示我同意所有条款和条件。",
condition2: condition2:
'我同意,我要求您在吊销期结束之前执行订购的服务。 我知道,在完全完成服务后,我将失去撤销的权利。', "我同意,我要求您在吊销期结束之前执行订购的服务。 我知道,在完全完成服务后,我将失去撤销的权利。",
orderBtn: '下订单', orderBtn: "下订单",
coupanApply: '优惠券折扣', coupanApply: "优惠券折扣",
coupanFailed: '优惠券不可用', coupanFailed: "优惠券不可用",
invalidCoupan: '优惠券无效', invalidCoupan: "优惠券无效",
validateItems: '结帐前将商品添加到购物车', validateItems: "结帐前将商品添加到购物车",
validateDelivery: '结帐前设置送货地址', validateDelivery: "结帐前设置送货地址",
language: '语言', language: "语言",
getUpdatesText: '获取订单状态更新!', getUpdatesText: "获取订单状态更新!",
delAcc: '删除账户', delAcc: "删除账户",
delAccText: '您确定要删除账户吗?', delAccText: "您确定要删除账户吗?",
cancel: '取消', cancel: "取消",
receiveOffers: '接收特别优惠', receiveOffers: "接收特别优惠",
notificationUpdate: '通知状态已更新', notificationUpdate: "通知状态已更新",
notificationsNotWorking: "通知在模拟器上无法工作", notificationsNotWorking: "通知在模拟器上无法工作",
loginOrCreateAcc: "登录/创建帐户", loginOrCreateAcc: "登录/创建帐户",
welcome: "欢迎", welcome: "欢迎",
titleSettings: '设置', titleSettings: "设置",
home: '主页', home: "主页",
noItems: '未找到物品', noItems: "未找到物品",
featured: '特色', featured: "特色",
filters: '筛选', filters: "筛选",
reset: '重置', reset: "重置",
showSaleItems: '仅显示特价商品', showSaleItems: "仅显示特价商品",
showStockItems: '仅显示有库存商品', showStockItems: "仅显示有库存商品",
priceRange: '价格范围', priceRange: "价格范围",
sorting: '排序', sorting: "排序",
applyFilter: '应用筛选', applyFilter: "应用筛选",
close: '关闭', close: "关闭",
phoneNumberRequired: "需要电话号码", phoneNumberRequired: "需要电话号码",
phoneNumberMissing: "缺少电话号码", phoneNumberMissing: "缺少电话号码",
userInfoUpdated: "用户信息已更新", userInfoUpdated: "用户信息已更新",
@ -171,32 +171,32 @@ export const zh = {
noOrdersAssigned: "尚未分配订单!", noOrdersAssigned: "尚未分配订单!",
oldOrder: "旧订单", oldOrder: "旧订单",
activeOrder: "活跃订单", activeOrder: "活跃订单",
idVar: 'ID', idVar: "ID",
addressUpdated: '地址已更新', addressUpdated: "地址已更新",
labelAs: '标记为', labelAs: "标记为",
addressReq: '需要交付地址', addressReq: "需要交付地址",
deliveryDetailsReq: '需要交付细节', deliveryDetailsReq: "需要交付细节",
locaPermission: '未授予位置权限', locaPermission: "未授予位置权限",
addressAdded: '已添加地址', addressAdded: "已添加地址",
productPage: '产品页面', productPage: "产品页面",
Docs: '文档', Docs: "文档",
Blog: '博客', Blog: "博客",
aboutUs: '关于我们', aboutUs: "关于我们",
myVouchers: '我的优惠券', myVouchers: "我的优惠券",
typeVoucherCode: "输入优惠券代码", typeVoucherCode: "输入优惠券代码",
enterVoucherCode: "输入您的优惠券代码", enterVoucherCode: "输入您的优惠券代码",
status: '状态', status: "状态",
anySuggestion: '有什么建议吗?', anySuggestion: "有什么建议吗?",
reviewRegarding: '关于您的订单的评论?', reviewRegarding: "关于您的订单的评论?",
writeReview: '撰写评论', writeReview: "撰写评论",
chatWithRider: '与骑手聊天', chatWithRider: "与骑手聊天",
signupGoogle: '使用 Google 注册', signupGoogle: "使用 Google 注册",
signupEmail: '使用电子邮件注册', signupEmail: "使用电子邮件注册",
signup: '注册', signup: "注册",
signupApple: '使用 Apple 注册', signupApple: "使用 Apple 注册",
alreadyMember: '已经是会员?登录', alreadyMember: "已经是会员?登录",
enterUsername: '输入您的电子邮件和密码', enterUsername: "输入您的电子邮件和密码",
createNewAcc: '创建新帐户', createNewAcc: "创建新帐户",
emailphoneReq: "需要电子邮件/电话号码", emailphoneReq: "需要电子邮件/电话号码",
invalidMail: "无效的电子邮件/电话号码", invalidMail: "无效的电子邮件/电话号码",
passReq: "需要密码", passReq: "需要密码",
@ -207,35 +207,35 @@ export const zh = {
orderDelivered: "订单已送达。", orderDelivered: "订单已送达。",
completeOrder: "订单已完成。", completeOrder: "订单已完成。",
PENDING: "待处理", PENDING: "待处理",
ACCEPTED: '已接受', ACCEPTED: "已接受",
PICKED: "已取货", PICKED: "已取货",
DELIVERED: "已送达", DELIVERED: "已送达",
COMPLETED: "已完成", COMPLETED: "已完成",
'Default': '默认', Default: "默认",
'Ascending (A-Z)': '升序 (A-Z)', "Ascending (A-Z)": "升序 (A-Z)",
'Descending (Z-A)': '降序 (Z-A)', "Descending (Z-A)": "降序 (Z-A)",
'Price (Low - High)': '价格 (低 - 高)', "Price (Low - High)": "价格 (低 - 高)",
'Price (High - Low)': '价格 (高 - 低)', "Price (High - Low)": "价格 (高 - 低)",
Home: '首页', Home: "首页",
Work: '工作', Work: "工作",
Other: '其他', Other: "其他",
NoStock: '无库存', NoStock: "无库存",
ItemOutOfStock: '商品缺货', ItemOutOfStock: "商品缺货",
SelectLanguage: '选择语言', SelectLanguage: "选择语言",
Done: '完成', Done: "完成",
Cancel: '取消', Cancel: "取消",
NoFoods: '没有食物', NoFoods: "没有食物",
CartIsEmpty: '购物车是空的。', CartIsEmpty: "购物车是空的。",
SetPaymentMethod: '请在结账前设置付款方式', SetPaymentMethod: "请在结账前设置付款方式",
AnErrorOccured: '发生错误。请重试', AnErrorOccured: "发生错误。请重试",
ResetPasswordLinkSent: '重置密码链接已发送到您的电子邮件', ResetPasswordLinkSent: "重置密码链接已发送到您的电子邮件",
LocationPermissionNotGranted: '未授予位置权限', LocationPermissionNotGranted: "未授予位置权限",
NoFooditemFound: '找不到食品项目', NoFooditemFound: "找不到食品项目",
SavedYet: '您尚未保存任何地址。', SavedYet: "您尚未保存任何地址。",
ClickAddNewAddress: '单击“添加新地址”以开始', ClickAddNewAddress: "单击“添加新地址”以开始",
NoAddressesfound: '未找到地址。', NoAddressesfound: "未找到地址。",
AddNewAddress: '添加新地址', AddNewAddress: "添加新地址",
'About Us': '关于我们', "About Us": "关于我们",
'Product Page': '产品页面', "Product Page": "产品页面",
"Change Payment Method": "更改付款方式",
} };