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

View File

@ -1,13 +1,13 @@
import { useTheme } from '@react-navigation/native'
import PropTypes from 'prop-types'
import React from 'react'
import { View } from 'react-native'
import { alignment } from '../../../utils/alignment'
import TextDefault from '../../Text'
import styles from './styles'
import { useTheme } from "@react-navigation/native";
import PropTypes from "prop-types";
import React from "react";
import { View } from "react-native";
import { alignment } from "../../../utils/alignment";
import { TextDefault } from "../../Text";
import styles from "./styles";
function TitleComponent(props) {
const { colors } = useTheme()
const { colors } = useTheme();
return (
<View style={styles.mainContainer}>
@ -19,7 +19,8 @@ function TitleComponent(props) {
numberOfLines={1}
textColor={colors.fontSecondColor}
H5
bold>
bold
>
{props.subTitle}
</TextDefault>
</View>
@ -30,17 +31,18 @@ function TitleComponent(props) {
}
H5
medium
center>
center
>
({props.status})
</TextDefault>
</View>
)
);
}
TitleComponent.propTypes = {
title: PropTypes.string.isRequired,
subTitle: PropTypes.string,
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 i18n from "../../../../i18n";
export const orderStatuses = [
{
key: i18n.t('PENDING'),
export const orderStatuses = {
PENDING: {
status: 1,
statusText: i18n.t('orderPending'),
statusText: "orderPending",
},
{
key: i18n.t("ACCEPTED"),
ACCEPTED: {
status: 2,
statusText: i18n.t('prepFood'),
statusText: "prepFood",
},
{
key: i18n.t("PICKED"),
PICKED: {
status: 3,
statusText: i18n.t('riderOnWay'),
statusText: "riderOnWay",
},
{
key: i18n.t("DELIVERED"),
DELIVERED: {
status: 4,
statusText: i18n.t('orderDelivered'),
statusText: "orderDelivered",
},
{
key: i18n.t("COMPLETED"),
COMPLETED: {
status: 5,
statusText: i18n.t('completeOrder'),
statusText: "completeOrder",
},
];
};
const orderStatusActive = ["PENDING", "PICKED", "ACCEPTED"];
@ -54,13 +49,6 @@ const StatusCard = () => {
} = useContext(UserContext);
const configuration = useContext(ConfigurationContext);
const checkStatus = (status) => {
const obj = orderStatuses.filter((x) => {
return x.key === status;
});
return obj[0];
};
if (loadingOrders) return <Spinner />;
if (errorOrders) return <TextError>{errorOrders.message}</TextError>;
@ -73,7 +61,6 @@ const StatusCard = () => {
refreshing={networkStatusOrders === 4}
onRefresh={() => networkStatusOrders === 7 && fetchOrders()}
data={orders.filter((o) => orderStatusActive.includes(o.order_status))}
//keyExtractor={(item) => item._id}
keyExtractor={(item, index) => String(index)}
renderItem={({ item, index }) => (
<TouchableOpacity
@ -89,20 +76,19 @@ const StatusCard = () => {
<View key={index} style={styles.statusContainer}>
<View style={styles.textContainer}>
<TextDefault H5 medium textColor={styles.lightText.color}>
{i18n.t('orderId')}
{i18n.t("orderId")}
</TextDefault>
<TextDefault style={{ ...alignment.PBlarge }} H4 bolder>
{item.order_id}
</TextDefault>
<TextDefault H5 textColor={colors.placeHolderColor} medium>
{i18n.t('status')}
{i18n.t("status")}
</TextDefault>
<TextDefault textColor={"#00b9c6"} H5 medium>
{i18n.t(item.order_status)}{" "}
<TextDefault numberOfLines={2} medium>
{/* {checkStatus(item.order_status).status}.{' '} */}(
{checkStatus(i18n.t(item.order_status)).statusText})
{`(${i18n.t(orderStatuses[item.order_status]?.statusText)})`}
</TextDefault>
</TextDefault>
</View>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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