remaining customer app localisation added and some issues solved
This commit is contained in:
parent
d2d6d642a0
commit
660a223739
|
@ -7,10 +7,11 @@ import { en } from './translations/en'
|
||||||
import { fr } from './translations/fr'
|
import { fr } from './translations/fr'
|
||||||
import { km } from './translations/km'
|
import { km } from './translations/km'
|
||||||
import { zh } from './translations/zh'
|
import { zh } from './translations/zh'
|
||||||
|
import { ar } from './translations/ar'
|
||||||
|
|
||||||
i18n.initAsync = async() => {
|
i18n.initAsync = async() => {
|
||||||
i18n.fallbacks = true
|
i18n.fallbacks = true
|
||||||
i18n.translations = { fr, en, km, zh, de }
|
i18n.translations = { fr, en, km, zh, de, ar }
|
||||||
// i18n.locale = 'km'
|
// i18n.locale = 'km'
|
||||||
if (Platform.OS === 'android') {
|
if (Platform.OS === 'android') {
|
||||||
const lang = await AsyncStorage.getItem('enatega-language')
|
const lang = await AsyncStorage.getItem('enatega-language')
|
||||||
|
|
|
@ -8,6 +8,7 @@ import { CustomIcon } from '../../CustomIcon'
|
||||||
import { FlashMessage } from '../../FlashMessage/FlashMessage'
|
import { FlashMessage } from '../../FlashMessage/FlashMessage'
|
||||||
import TextDefault from '../../Text/TextDefault/TextDefault'
|
import TextDefault from '../../Text/TextDefault/TextDefault'
|
||||||
import useStyle from './styles'
|
import useStyle from './styles'
|
||||||
|
import i18n from '../../../../i18n'
|
||||||
|
|
||||||
function CartComponent(props) {
|
function CartComponent(props) {
|
||||||
const { colors } = useTheme()
|
const { colors } = useTheme()
|
||||||
|
@ -18,7 +19,7 @@ function CartComponent(props) {
|
||||||
if (props.stock > quantity) setQuantity(quantity + 1)
|
if (props.stock > quantity) setQuantity(quantity + 1)
|
||||||
else {
|
else {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: 'No more items in stock'
|
message: i18n.t('noMoreItems')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import { CustomIcon } from '../../CustomIcon'
|
||||||
import { FlashMessage } from '../../FlashMessage/FlashMessage'
|
import { FlashMessage } from '../../FlashMessage/FlashMessage'
|
||||||
import TextDefault from '../../Text/TextDefault/TextDefault'
|
import TextDefault from '../../Text/TextDefault/TextDefault'
|
||||||
import useStyles from './styles'
|
import useStyles from './styles'
|
||||||
|
import i18n from '../../../../i18n'
|
||||||
|
|
||||||
function HeaderIcon({ icon, iconColor, iconSize = scale(20) }) {
|
function HeaderIcon({ icon, iconColor, iconSize = scale(20) }) {
|
||||||
const { colors } = useTheme()
|
const { colors } = useTheme()
|
||||||
|
@ -127,7 +128,7 @@ function RightButton(props) {
|
||||||
navigation.navigate(NAVIGATION_SCREEN.Cart)
|
navigation.navigate(NAVIGATION_SCREEN.Cart)
|
||||||
} else {
|
} else {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: 'Cart is empty.'
|
message: i18n.t('CartIsEmpty')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}, [cartCount])
|
}, [cartCount])
|
||||||
|
|
|
@ -20,6 +20,11 @@ const FilterModal = props => {
|
||||||
const configuration = useContext(ConfigurationContext)
|
const configuration = useContext(ConfigurationContext)
|
||||||
const [filters, setFilters] = useState({})
|
const [filters, setFilters] = useState({})
|
||||||
|
|
||||||
|
const localizedSortData = {};
|
||||||
|
Object.keys(SORT_DATA).forEach(key => {
|
||||||
|
localizedSortData[key] = i18n.t(SORT_DATA[key]);
|
||||||
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setFilters({
|
setFilters({
|
||||||
onSale: false,
|
onSale: false,
|
||||||
|
@ -206,7 +211,8 @@ const FilterModal = props => {
|
||||||
? colors.fonfontMainColort
|
? colors.fonfontMainColort
|
||||||
: colors.placeHolderColor
|
: colors.placeHolderColor
|
||||||
}>
|
}>
|
||||||
{get(SORT_DATA, item)}
|
{/* {get(SORT_DATA, item)} */}
|
||||||
|
{localizedSortData[item]}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
<RadioBtn
|
<RadioBtn
|
||||||
size={10}
|
size={10}
|
||||||
|
|
|
@ -227,7 +227,7 @@ function Cart() {
|
||||||
await addQuantityContext(key)
|
await addQuantityContext(key)
|
||||||
} else {
|
} else {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: 'No more items in stock'
|
message: i18n.t('noMoreItems')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -265,7 +265,7 @@ function Cart() {
|
||||||
}
|
}
|
||||||
if (!paymentMethod) {
|
if (!paymentMethod) {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: 'Set payment method before checkout'
|
message: i18n.t('SetPaymentMethod')
|
||||||
})
|
})
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ const CreateAccount = () => {
|
||||||
async function onCompleted(data) {
|
async function onCompleted(data) {
|
||||||
if (!data.login.is_active) {
|
if (!data.login.is_active) {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: "Can't Login,This Account is Deleted!",
|
message: i18n.t('cantLogin'),
|
||||||
});
|
});
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -122,7 +122,7 @@ function EditAddress() {
|
||||||
|
|
||||||
function onError(error) {
|
function onError(error) {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: `An error occured. Please try again ${error}`
|
message: `${i18n.t('AnErrorOccured')} ${error}`
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ function EditAddress() {
|
||||||
}
|
}
|
||||||
bold
|
bold
|
||||||
center>
|
center>
|
||||||
{label.title}
|
{i18n.t(label.title)}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
)
|
)
|
||||||
|
|
|
@ -57,7 +57,7 @@ function ForgotPassword() {
|
||||||
}
|
}
|
||||||
function onCompleted(data) {
|
function onCompleted(data) {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: 'Reset password link sent on your email'
|
message: i18n.t('ResetPasswordLinkSent')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
function onError(error) {
|
function onError(error) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import { FlashMessage, TextDefault, WrapperView } from '../../components'
|
||||||
import { NAVIGATION_SCREEN } from '../../utils/constant'
|
import { NAVIGATION_SCREEN } from '../../utils/constant'
|
||||||
import { scale } from '../../utils/scaling'
|
import { scale } from '../../utils/scaling'
|
||||||
import useStyle from './styles'
|
import useStyle from './styles'
|
||||||
|
import i18n from '../../../i18n'
|
||||||
|
|
||||||
const LATITUDE = 33.7001019
|
const LATITUDE = 33.7001019
|
||||||
const LONGITUDE = 72.9735978
|
const LONGITUDE = 72.9735978
|
||||||
|
@ -220,7 +221,7 @@ export default function FullMap() {
|
||||||
setRegion(loc)
|
setRegion(loc)
|
||||||
} else {
|
} else {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: 'Location permission not granted'
|
message: i18n.t('LocationPermissionNotGranted')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ function Menu() {
|
||||||
} else if (error) {
|
} else if (error) {
|
||||||
return (
|
return (
|
||||||
<TextError
|
<TextError
|
||||||
text={error ? error.message : "No Foods"}
|
text={error ? error.message : i18n.t('NoFoods')}
|
||||||
backColor="transparent"
|
backColor="transparent"
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
|
@ -31,6 +31,7 @@ import { alignment } from "../../utils/alignment";
|
||||||
import { ICONS_NAME, NAVIGATION_SCREEN, SORT_DATA } from "../../utils/constant";
|
import { ICONS_NAME, NAVIGATION_SCREEN, SORT_DATA } from "../../utils/constant";
|
||||||
import { moderateScale, scale } from "../../utils/scaling";
|
import { moderateScale, scale } from "../../utils/scaling";
|
||||||
import useStyle from "./styles";
|
import useStyle from "./styles";
|
||||||
|
import i18n from "../../../i18n";
|
||||||
|
|
||||||
// constants
|
// constants
|
||||||
const FOODS = gql`
|
const FOODS = gql`
|
||||||
|
@ -73,7 +74,7 @@ function MenuItems() {
|
||||||
async function onAddToCart(food) {
|
async function onAddToCart(food) {
|
||||||
if (food.stock < 1) {
|
if (food.stock < 1) {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: "Item out of stock",
|
message: i18n.t('ItemOutOfStock'),
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -112,7 +113,7 @@ function MenuItems() {
|
||||||
{item.stock < 1 && (
|
{item.stock < 1 && (
|
||||||
<View style={styles.emtpyStockLabel}>
|
<View style={styles.emtpyStockLabel}>
|
||||||
<TextDefault textColor={styles.whiteFont.color} center>
|
<TextDefault textColor={styles.whiteFont.color} center>
|
||||||
No Stock
|
{i18n.t('NoStock')}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
</View>
|
</View>
|
||||||
)}
|
)}
|
||||||
|
@ -189,7 +190,7 @@ function MenuItems() {
|
||||||
} else if (error) {
|
} else if (error) {
|
||||||
return (
|
return (
|
||||||
<TextError
|
<TextError
|
||||||
text={error ? error.message : "No Foods"}
|
text={error ? error.message : i18n.t('NoFoods')}
|
||||||
backColor="transparent"
|
backColor="transparent"
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
@ -198,7 +199,7 @@ function MenuItems() {
|
||||||
<View style={styles.emptyContainer}>
|
<View style={styles.emptyContainer}>
|
||||||
<EmptyFood width={scale(250)} height={scale(250)} />
|
<EmptyFood width={scale(250)} height={scale(250)} />
|
||||||
<TextDefault H4 bold style={alignment.MTlarge}>
|
<TextDefault H4 bold style={alignment.MTlarge}>
|
||||||
No food item found
|
{i18n.t('NoFooditemFound')}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
|
|
|
@ -151,7 +151,7 @@ function NewAddress() {
|
||||||
|
|
||||||
function onError(error) {
|
function onError(error) {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: `An error occured. Please try again. ${error}`
|
message: `${i18n.t('AnErrorOccured')} ${error}`
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,7 +242,7 @@ function NewAddress() {
|
||||||
}
|
}
|
||||||
bold
|
bold
|
||||||
center>
|
center>
|
||||||
{label.title}
|
{i18n.t(label.title)}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
)
|
)
|
||||||
|
|
|
@ -49,6 +49,7 @@ const languageTypes = [
|
||||||
{ value: "ភាសាខ្មែរ", code: "km", index: 2 },
|
{ value: "ភាសាខ្មែរ", code: "km", index: 2 },
|
||||||
{ value: "中文", code: "zh", index: 3 },
|
{ value: "中文", code: "zh", index: 3 },
|
||||||
{ value: "Deutsche", code: "de", index: 4 },
|
{ value: "Deutsche", code: "de", index: 4 },
|
||||||
|
{ value: "Arabic", code: "ar", index: 5 },
|
||||||
];
|
];
|
||||||
|
|
||||||
const PUSH_TOKEN = gql`
|
const PUSH_TOKEN = gql`
|
||||||
|
|
|
@ -6,6 +6,7 @@ import RadioButton from "../../../components/FdRadioBtn/RadioBtn";
|
||||||
import TextDefault from "../../../components/Text/TextDefault/TextDefault";
|
import TextDefault from "../../../components/Text/TextDefault/TextDefault";
|
||||||
import { alignment } from "../../../utils/alignment";
|
import { alignment } from "../../../utils/alignment";
|
||||||
import useStyle from "./styles";
|
import useStyle from "./styles";
|
||||||
|
import i18n from '../../../../i18n'
|
||||||
|
|
||||||
const languageTypes = [
|
const languageTypes = [
|
||||||
{ value: "English", code: "en", index: 0 },
|
{ value: "English", code: "en", index: 0 },
|
||||||
|
@ -13,6 +14,7 @@ const languageTypes = [
|
||||||
{ value: "ភាសាខ្មែរ", code: "km", index: 2 },
|
{ value: "ភាសាខ្មែរ", code: "km", index: 2 },
|
||||||
{ value: "中文", code: "zh", index: 3 },
|
{ value: "中文", code: "zh", index: 3 },
|
||||||
{ value: "Deutsche", code: "de", index: 4 },
|
{ value: "Deutsche", code: "de", index: 4 },
|
||||||
|
{ value: "Arabic", code: "ar", index: 5 },
|
||||||
];
|
];
|
||||||
|
|
||||||
function SettingModal(props) {
|
function SettingModal(props) {
|
||||||
|
@ -23,7 +25,7 @@ function SettingModal(props) {
|
||||||
return (
|
return (
|
||||||
<View style={styles.flex}>
|
<View style={styles.flex}>
|
||||||
<TextDefault bolder H5 style={alignment.MTlarge}>
|
<TextDefault bolder H5 style={alignment.MTlarge}>
|
||||||
Select Language
|
{i18n.t('SelectLanguage')}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
|
|
||||||
{languageTypes.map((item, index) => (
|
{languageTypes.map((item, index) => (
|
||||||
|
@ -55,7 +57,7 @@ function SettingModal(props) {
|
||||||
onPress={() => props.onSelectedLanguage(activeRadio)}
|
onPress={() => props.onSelectedLanguage(activeRadio)}
|
||||||
>
|
>
|
||||||
<TextDefault textColor={colors.lightBackground} bolder uppercase>
|
<TextDefault textColor={colors.lightBackground} bolder uppercase>
|
||||||
Done
|
{i18n.t('Done')}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
|
@ -63,7 +65,7 @@ function SettingModal(props) {
|
||||||
style={[styles.width100, alignment.PBlarge, alignment.PTlarge]}
|
style={[styles.width100, alignment.PBlarge, alignment.PTlarge]}
|
||||||
onPress={() => props.onClose()}
|
onPress={() => props.onClose()}
|
||||||
>
|
>
|
||||||
<TextDefault center>Cancel</TextDefault>
|
<TextDefault center>{i18n.t('Cancel')}</TextDefault>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
{/* </View> */}
|
{/* </View> */}
|
||||||
</View>
|
</View>
|
||||||
|
|
|
@ -0,0 +1,243 @@
|
||||||
|
export const ar = {
|
||||||
|
home: 'الصفحة الرئيسية',
|
||||||
|
title0: 'اللغة المختارة',
|
||||||
|
subtitle0: 'العربية',
|
||||||
|
description0:
|
||||||
|
'اختر أي لغة تريد لتغيير محتوى التطبيق إلى اللغة المطلوبة لديك.',
|
||||||
|
title1: 'لذيذ',
|
||||||
|
subtitle1: 'الفطور',
|
||||||
|
description1:
|
||||||
|
'الفطور هو كل شيء. البداية، الشيء الأول. إنها اللقمة التي هي الالتزام بيوم جديد، حياة مستمرة.',
|
||||||
|
title2: 'منعش',
|
||||||
|
subtitle2: 'المشروبات',
|
||||||
|
description2:
|
||||||
|
'الصمت الحقيقي هو راحة العقل، وهو للروح ما النوم للجسم، غذاء وانتعاش.',
|
||||||
|
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: 'تم رفض إذن الوصول إلى الموقع',
|
||||||
|
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: 'يمكنك الاتصال بنا من خلال البريد الإلكتروني أو رقم الهاتف أو موقعنا الإلكتروني.',
|
||||||
|
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: 'باستكمال هذا الطلب، أوافق على جميع الشروط والأحكام.',
|
||||||
|
condition2:
|
||||||
|
'أوافق وأطالبك بتنفيذ الخدمة المطلوبة قبل نهاية فترة الإلغاء. أنا أدرك أنه بعد الإكمال الكامل للخدمة أفقد حق التراجع عن الشراء.',
|
||||||
|
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: 'لم يتم العثور على عنصر طعام',
|
||||||
|
|
||||||
|
}
|
|
@ -218,5 +218,26 @@ PENDING: "AUSSTEHEND",
|
||||||
ACCEPTED: 'AKZEPTIERT',
|
ACCEPTED: 'AKZEPTIERT',
|
||||||
PICKED: "ABGEHOLT",
|
PICKED: "ABGEHOLT",
|
||||||
DELIVERED: "GELIEFERT",
|
DELIVERED: "GELIEFERT",
|
||||||
COMPLETED: "ABGESCHLOSSEN"
|
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',
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -218,5 +218,25 @@ export const en = {
|
||||||
ACCEPTED: 'ACCEPTED',
|
ACCEPTED: 'ACCEPTED',
|
||||||
PICKED: "PICKED",
|
PICKED: "PICKED",
|
||||||
DELIVERED: "DELIVERED",
|
DELIVERED: "DELIVERED",
|
||||||
COMPLETED: "COMPLETED"
|
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'
|
||||||
}
|
}
|
||||||
|
|
|
@ -219,5 +219,26 @@ PENDING: "EN ATTENTE",
|
||||||
ACCEPTED: 'ACCEPTÉE',
|
ACCEPTED: 'ACCEPTÉE',
|
||||||
PICKED: "ENLEVÉE",
|
PICKED: "ENLEVÉE",
|
||||||
DELIVERED: "LIVRÉE",
|
DELIVERED: "LIVRÉE",
|
||||||
COMPLETED: "TERMINÉE"
|
COMPLETED: "TERMINÉE",
|
||||||
|
'Default': 'Par défaut',
|
||||||
|
'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é',
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -214,5 +214,26 @@ PENDING: "កំពុងរង់ចាំ",
|
||||||
ACCEPTED: 'បានទទួលយក',
|
ACCEPTED: 'បានទទួលយក',
|
||||||
PICKED: "បានជូនយក",
|
PICKED: "បានជូនយក",
|
||||||
DELIVERED: "បានដឹកជញ្ជូន",
|
DELIVERED: "បានដឹកជញ្ជូន",
|
||||||
COMPLETED: "បានបញ្ចប់"
|
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: 'មិនបានរកឃើញវាលម្ហូប',
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -210,5 +210,26 @@ PENDING: "待处理",
|
||||||
ACCEPTED: '已接受',
|
ACCEPTED: '已接受',
|
||||||
PICKED: "已取货",
|
PICKED: "已取货",
|
||||||
DELIVERED: "已送达",
|
DELIVERED: "已送达",
|
||||||
COMPLETED: "已完成"
|
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: '找不到食品项目',
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue