Browse Source
feat(localization): add new navigation and footer translations for multiple languages
main
feat(localization): add new navigation and footer translations for multiple languages
main
sina_sajjadi
2 weeks ago
71 changed files with 2616 additions and 1249 deletions
-
2next-i18next.config.js
-
24public/locales/ar/FAQ.json
-
332public/locales/ar/common.json
-
23public/locales/ar/footer.json
-
91public/locales/ar/form.json
-
15public/locales/ar/navigation.json
-
47public/locales/en/FAQ.json
-
155public/locales/en/common.json
-
23public/locales/en/footer.json
-
91public/locales/en/form.json
-
15public/locales/en/navigation.json
-
116public/locales/fr/common.json
-
24public/locales/id/FAQ.json
-
222public/locales/id/common.json
-
23public/locales/id/footer.json
-
91public/locales/id/form.json
-
15public/locales/id/navigation.json
-
24public/locales/ru/FAQ.json
-
222public/locales/ru/common.json
-
23public/locales/ru/footer.json
-
91public/locales/ru/form.json
-
15public/locales/ru/navigation.json
-
24src/app/[locale]/(account-pages)/(components)/Nav.tsx
-
122src/app/[locale]/(account-pages)/account/page.tsx
-
96src/app/[locale]/(account-pages)/bills/BillCard.tsx
-
177src/app/[locale]/(account-pages)/bills/[slug]/page.tsx
-
16src/app/[locale]/(account-pages)/bills/page.tsx
-
48src/app/[locale]/(account-pages)/my-trips/page.tsx
-
15src/app/[locale]/(account-pages)/passengers-list/PassengerTable.tsx
-
301src/app/[locale]/(account-pages)/passengers-list/page.tsx
-
31src/app/[locale]/(client-components)/(Header)/LangDropdown.tsx
-
2src/app/[locale]/(client-components)/(Header)/LangDropdownSingle.tsx
-
4src/app/[locale]/(client-components)/(Header)/MainNav1.tsx
-
15src/app/[locale]/(client-components)/(Header)/SearchDropdown.tsx
-
7src/app/[locale]/(client-components)/(HeroSearchForm)/(stay-search-form)/StayDatesRangeInput.tsx
-
4src/app/[locale]/(client-components)/(HeroSearchForm)/(stay-search-form)/StaySearchForm.tsx
-
35src/app/[locale]/(client-components)/(HeroSearchForm)/GuestsInput.tsx
-
38src/app/[locale]/(home)/SectionDowloadApp.tsx
-
2src/app/[locale]/about/SectionHero.tsx
-
2src/app/[locale]/about/page.tsx
-
4src/app/[locale]/add-listing/[[...stepIndex]]/page.tsx
-
109src/app/[locale]/forgot-password/page.tsx
-
78src/app/[locale]/login/page.tsx
-
49src/app/[locale]/signup/methodes/page.tsx
-
112src/app/[locale]/signup/otp-code/page.tsx
-
106src/app/[locale]/signup/page.tsx
-
74src/app/[locale]/tours/SectionGridFilterCard.tsx
-
29src/app/[locale]/tours/[slug]/page.tsx
-
13src/app/globals.css
-
2src/components/BackgroundSection.tsx
-
21src/components/CardCategory3.tsx
-
96src/components/Footer.tsx
-
10src/components/HeaderFilter.tsx
-
93src/components/SectionClientSay.tsx
-
31src/components/SectionCustomTour.tsx
-
35src/components/SectionGridFeaturePlaces.tsx
-
76src/components/SectionHowItWork.tsx
-
34src/components/SectionOurFeatures.tsx
-
149src/components/TourSuggestion.tsx
-
10src/data/navigation.ts
-
24src/hooks/FormValidation.ts
-
25src/i18n.ts
-
BINsrc/images/HIW1.webp
-
BINsrc/images/HIW2.webp
-
BINsrc/images/HIW3.webp
-
27src/middleware.ts
-
20src/routers/types.ts
-
2src/shared/Button.tsx
-
2src/shared/Logo.tsx
-
5src/shared/Navigation/Navigation.tsx
-
6src/shared/Navigation/NavigationItem.tsx
@ -0,0 +1,24 @@ |
|||
{ |
|||
"faqTitle": "الأسئلة الشائعة", |
|||
"faqSubtitle": "هل لديك أسئلة؟ نحن هنا للمساعدة!", |
|||
"faqQuestion1": "كيف يمكنني حجز جولة على موقعكم؟", |
|||
"faqAnswer1": "لحجز جولة، ببساطة اختر الوجهة التي ترغب فيها من 'قائمة الجولات'، اختر التواريخ الخاصة بك، واتبع الخطوات لإكمال عملية الحجز.", |
|||
"faqQuestion2": "هل يمكنني تخصيص جولتي؟", |
|||
"faqAnswer2": "نعم، تتيح لك ميزة 'الجولة المخصصة' تخصيص رحلتك بناءً على تفضيلاتك. انقر على 'الجولة المخصصة' في أعلى الصفحة لبدء تخصيص تجربتك.", |
|||
"faqQuestion3": "ما طرق الدفع التي تقبلها؟", |
|||
"faqAnswer3": "نقبل جميع بطاقات الائتمان الرئيسية، باي بال، والتحويلات البنكية. يمكنك اختيار الطريقة المفضلة لديك أثناء عملية الدفع.", |
|||
"faqQuestion4": "كيف يمكنني معرفة ما إذا تم تأكيد حجزي؟", |
|||
"faqAnswer4": "بمجرد إتمام عملية الدفع، ستتلقى رسالة تأكيد عبر البريد الإلكتروني تحتوي على جميع تفاصيل حجزك. يمكنك أيضًا عرض تفاصيل الحجز في لوحة التحكم الخاصة بحسابك.", |
|||
"faqQuestion5": "هل يمكنني إلغاء أو تعديل حجزتي؟", |
|||
"faqAnswer5": "نعم، يمكنك إلغاء أو تعديل حجزك من حسابك. يرجى ملاحظة أنه يجب إجراء الإلغاء قبل 24 ساعة على الأقل من بداية الجولة لكي تكون مؤهلاً لاسترداد المبلغ.", |
|||
"faqQuestion6": "هل هناك أي رسوم مخفية؟", |
|||
"faqAnswer6": "لا، جميع الرسوم شفافة وتُعرض مسبقًا قبل إتمام الحجز. نحن نضمن أنه لا توجد أي رسوم مخفية.", |
|||
"faqQuestion7": "هل تقدمون خصومات للمجموعات؟", |
|||
"faqAnswer7": "نعم، نقدم خصومات للمجموعات التي تحجز أعدادًا كبيرة. يرجى الاتصال بفريق الدعم الخاص بنا للحصول على مزيد من المعلومات حول أسعار المجموعات.", |
|||
"faqQuestion8": "هل يشمل الحجز تأمين السفر؟", |
|||
"faqAnswer8": "نعم، جميع باقات الجولات لدينا تشمل تأمين السفر الأساسي. يمكنك اختيار ترقية باقة التأمين الخاصة بك أثناء عملية الدفع.", |
|||
"faqQuestion9": "ماذا يحدث إذا تم إلغاء الجولة من قبل الموفر؟", |
|||
"faqAnswer9": "إذا تم إلغاء الجولة من قبل الموفر بسبب ظروف غير متوقعة، ستتلقى استردادًا كاملًا أو خيار إعادة جدولة الجولة.", |
|||
"faqQuestion10": "كيف يمكنني الاتصال بدعم العملاء؟", |
|||
"faqAnswer10": "يمكنك الاتصال بدعم العملاء عن طريق النقر على زر 'اتصل بنا' في أسفل الصفحة أو بزيارة قسم الدعم." |
|||
} |
@ -1,116 +1,222 @@ |
|||
{ |
|||
"home": "Accueil", |
|||
"allTours": "Tous les Tours", |
|||
"blogs": "Blogs", |
|||
"faq": "FAQ", |
|||
"aboutUs": "À Propos de Nous", |
|||
"customTour": "Tour Personnalisé", |
|||
"searchPlaceholder": "Où aller ?", |
|||
"searchDescription": "Partout • N'importe quelle semaine • Ajouter des invités", |
|||
"beginAdventure": "Commencez votre aventure spirituelle", |
|||
"planPilgrimage": "Planifiez votre pèlerinage facilement. Trouvez les meilleures accommodations, transports et expériences guidées vers les sanctuaires chiites à travers le monde", |
|||
"startJourney": "Commencez votre voyage", |
|||
"listOfTours": "Liste des Tours", |
|||
"exploreTours": "Explorez les tours et accommodations adaptées pour un voyage spirituel et mémorable", |
|||
"tourPeriod": "Période du Tour", |
|||
"tourPeriodDescription": "Début - Fin", |
|||
"guests": "Invités", |
|||
"addGuests": "Ajouter des invités", |
|||
"available": "Disponible", |
|||
"soldOut": "Épuisé", |
|||
"showMore": "Montrez-moi plus", |
|||
"happeningCities": "Villes Animées", |
|||
"costEffectiveAdvertising": "Publicité Rentable", |
|||
"costEffectiveDescription": "Avec une annonce gratuite, vous pouvez faire la publicité de votre location sans frais initiaux", |
|||
"reachMillions": "Atteignez des millions avec Chisfis", |
|||
"reachMillionsDescription": "Des millions de personnes recherchent des lieux uniques où séjourner à travers le monde", |
|||
"secureAndSimple": "Securisé et Simple", |
|||
"secureDescription": "Une annonce sur Holiday Lettings vous offre un moyen sécurisé et facile de prendre des réservations et des paiements en ligne", |
|||
"mobileApps": "Applications Mobiles", |
|||
"mobileAppsDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dapibus porttitor nisl, sit amet finibus libero.", |
|||
"installation": "Installation", |
|||
"releaseNotes": "Notes de Version", |
|||
"upgradeGuide": "Guide de Mise à Niveau", |
|||
"browserSupport": "Support des Navigateurs", |
|||
"editorSupport": "Support de l'Éditeur", |
|||
"designFeatures": "Caractéristiques de Design", |
|||
"prototyping": "Prototypage", |
|||
"designSystems": "Systèmes de Design", |
|||
"pricing": "Tarification", |
|||
"security": "Sécurité", |
|||
"bestPractices": "Meilleures Pratiques", |
|||
"support": "Support", |
|||
"developers": "Développeurs", |
|||
"learnDesign": "Apprendre le Design", |
|||
"releases": "Versions", |
|||
"discussionForums": "Forums de Discussion", |
|||
"codeOfConduct": "Code de Conduite", |
|||
"communityResources": "Ressources Communautaires", |
|||
"contributing": "Contribuer", |
|||
"concurrentMode": "Mode Concurrent", |
|||
"goodNews": "Bonnes Nouvelles d'Ailleurs", |
|||
"whatPeopleThink": "Voyons ce que les gens pensent de Chisfis", |
|||
"testimonial": "Cet endroit est exactement comme sur la photo publiée sur Chisfis. Excellent service, nous avons passé un très bon séjour !", |
|||
"clientName": "Tiana Abie", |
|||
"clientLocation": "Malaisie", |
|||
"myTrips": "Mes Voyages", |
|||
"account": "Compte", |
|||
"menu": "Menu", |
|||
"gettingStarted": "Premiers Pas", |
|||
"explore": "Explorer", |
|||
"resources": "Ressources", |
|||
"community": "Communauté", |
|||
"placeType": "Type de Lieu", |
|||
"noTours": "Aucun tour disponible", |
|||
"itinerary": "Itinéraire", |
|||
"itineraryTitle": "Itinéraire", |
|||
"total": "Total", |
|||
"reserve": "Réserver", |
|||
"tourFeatures": "Caractéristiques du Tour", |
|||
"tourFeaturesTitle": "Caractéristiques du Tour", |
|||
"startRating": "Évaluation de Début", |
|||
"listingDetails": "Détails", |
|||
"imageAlt": "Image du tour", |
|||
"loading": "Chargement...", |
|||
"adults": "Adultes", |
|||
"adultsDesc": "Âges 13 ou plus", |
|||
"children": "Enfants", |
|||
"childrenDesc": "Âges 2–12", |
|||
"infants": "Bébés", |
|||
"infantsDesc": "Âges 0–2", |
|||
"traveler": "Voyageur", |
|||
"responses": "Réponses ({{count}})", |
|||
"submit": "Soumettre", |
|||
"cancel": "Annuler", |
|||
"relatedPosts": "Articles Connexes", |
|||
"aboutUsHeading": "👋 À Propos de Nous.", |
|||
"aboutUsSubheading": "Nous sommes une équipe passionnée dédiée à la création d'expériences de voyage inoubliables pour les explorateurs et les rêveurs. Des escapades sereines sur des plages tropicales aux aventures à sensations fortes dans des lieux exotiques, nous concevons des voyages aussi uniques que vous. Rejoignez-nous et explorons le monde, une aventure à la fois !", |
|||
"statisticTitle": "🚀 Faits Rapides", |
|||
"statisticDescription": "Nous sommes impartiaux et indépendants, et chaque jour nous créons des programmes et du contenu distinctifs de classe mondiale.", |
|||
"statisticHeading1": "10 millions", |
|||
"statisticSubHeading1": "D'articles ont été publiés à travers le monde (au 30 septembre 2021)", |
|||
"statisticHeading2": "100 000", |
|||
"statisticSubHeading2": "Utilisateurs enregistrés (au 30 septembre 2021)", |
|||
"home": "الرئيسية", |
|||
"allTours": "جميع الجولات", |
|||
"blogs": "المدونات", |
|||
"faq": "الأسئلة الشائعة", |
|||
"aboutUs": "من نحن", |
|||
"customTour": "جولة مخصصة", |
|||
"searchPlaceholder": "إلى أين؟", |
|||
"searchDescription": "أي مكان • أي أسبوع • إضافة ضيوف", |
|||
"beginAdventure": "ابدأ رحلتك", |
|||
"beginAdventure1": "الروحية", |
|||
"beginAdventure2": "المغامرة", |
|||
"planPilgrimage": "خطط لرحلة الحج بسهولة. اعثر على أفضل أماكن الإقامة، وسائل النقل، والتجارب الموجهة إلى الأضرحة الشيعية في جميع أنحاء العالم.", |
|||
"startJourney": "ابدأ رحلتك", |
|||
"listOfTours": "قائمة الجولات", |
|||
"exploreTours": "استكشف الجولات والإقامات التي تم تصميمها لرحلة روحية لا تُنسى", |
|||
"tourPeriod": "مدة الجولة", |
|||
"tourPeriodDescription": "البداية - النهاية", |
|||
"guests": "الضيوف", |
|||
"addGuests": "إضافة ضيوف", |
|||
"available": "متاح", |
|||
"soldOut": "نفذ من المخزون", |
|||
"showMore": "عرض المزيد", |
|||
"happeningCities": "المدن النشطة", |
|||
"costEffectiveAdvertising": "إعلانات فعالة من حيث التكلفة", |
|||
"costEffectiveDescription": "من خلال إدراج مجاني، يمكنك الإعلان عن إيجارك دون تكاليف مسبقة", |
|||
"reachMillions": "وصل إلى الملايين مع Chisfis", |
|||
"reachMillionsDescription": "ملايين الأشخاص يبحثون عن أماكن فريدة للإقامة حول العالم", |
|||
"secureAndSimple": "آمن وبسيط", |
|||
"secureDescription": "يوفر إدراج Holiday Lettings طريقة آمنة وسهلة لاستلام الحجوزات والمدفوعات عبر الإنترنت", |
|||
"mobileApps": "تطبيقات الهاتف المحمول", |
|||
"mobileAppsDescription": "لوريم إيبسوم دولار سيت أميت، كونسيكتيتور أديبيسكينغ أليت. سيد دابيبوس بورتتيتور نيسل، سيت أميت فينيبوس ليبرو.", |
|||
"installation": "التثبيت", |
|||
"releaseNotes": "ملاحظات الإصدار", |
|||
"upgradeGuide": "دليل الترقية", |
|||
"browserSupport": "دعم المتصفح", |
|||
"editorSupport": "دعم المحرر", |
|||
"designFeatures": "ميزات التصميم", |
|||
"prototyping": "النمذجة الأولية", |
|||
"designSystems": "أنظمة التصميم", |
|||
"pricing": "التسعير", |
|||
"security": "الأمان", |
|||
"bestPractices": "أفضل الممارسات", |
|||
"support": "الدعم", |
|||
"developers": "المطورون", |
|||
"learnDesign": "تعلم التصميم", |
|||
"releases": "الإصدارات", |
|||
"discussionForums": "منتديات المناقشة", |
|||
"codeOfConduct": "مدونة السلوك", |
|||
"communityResources": "موارد المجتمع", |
|||
"contributing": "المساهمة", |
|||
"concurrentMode": "وضع التوازي", |
|||
"goodNews": "أخبار جيدة من بعيد", |
|||
"whatPeopleThink": "لنرَ ماذا يفكر الناس في Chisfis", |
|||
"testimonial": "هذا المكان هو تمامًا كما في الصورة المنشورة على Chisfis. خدمة رائعة، قضينا إقامة رائعة!", |
|||
"clientName": "تيانا أبي", |
|||
"clientLocation": "ماليزيا", |
|||
"myTrips": "رحلاتي", |
|||
"account": "الحساب", |
|||
"menu": "القائمة", |
|||
"gettingStarted": "البدء", |
|||
"explore": "استكشاف", |
|||
"resources": "الموارد", |
|||
"community": "المجتمع", |
|||
"placeType": "نوع المكان", |
|||
"noTours": "لا توجد جولات متاحة", |
|||
"itinerary": "خطة الرحلة", |
|||
"itineraryTitle": "خطة الرحلة", |
|||
"total": "الإجمالي", |
|||
"reserve": "احجز", |
|||
"tourFeatures": "ميزات الجولة", |
|||
"tourFeaturesTitle": "ميزات الجولة", |
|||
"startRating": "تقييم البدء", |
|||
"listingDetails": "التفاصيل", |
|||
"imageAlt": "صورة للجولة", |
|||
"loading": "جاري التحميل...", |
|||
"adults": "البالغين", |
|||
"adultsDesc": "الأعمار 13 فما فوق", |
|||
"children": "الأطفال", |
|||
"childrenDesc": "الأعمار من 2 إلى 12", |
|||
"infants": "الرضع", |
|||
"infantsDesc": "الأعمار من 0 إلى 2", |
|||
"traveler": "المسافر", |
|||
"responses": "الردود ({{count}})", |
|||
"submit": "إرسال", |
|||
"cancel": "إلغاء", |
|||
"relatedPosts": "المنشورات ذات الصلة", |
|||
"aboutUsHeading": "👋 عنّا", |
|||
"aboutUsSubheading": "نحن فريق متحمس مكرس لصناعة تجارب سفر لا تُنسى للمستكشفين والحالمين على حد سواء. من الهروب الهادئ إلى الشواطئ الاستوائية إلى المغامرات المليئة بالأدرينالين في الأماكن الغريبة، نصمم رحلات فريدة كما أنت. انضم إلينا ولنكشف العالم، مغامرة واحدة في كل مرة!", |
|||
"statisticTitle": "🚀 حقائق سريعة", |
|||
"statisticDescription": "نحن محايدون ومستقلون، وكل يوم نصنع برامج ومحتوى متميز على مستوى عالمي.", |
|||
"statisticHeading1": "10 مليون", |
|||
"statisticSubHeading1": "تم نشر المقالات حول العالم (حتى 30 سبتمبر 2021)", |
|||
"statisticHeading2": "100,000", |
|||
"statisticSubHeading2": "حسابات المستخدمين المسجلة (حتى 30 سبتمبر 2021)", |
|||
"statisticHeading3": "220+", |
|||
"statisticSubHeading3": "Pays et régions où nous sommes présents (au 30 septembre 2021)", |
|||
"customTrip": "Voyage Personnalisé", |
|||
"guide": "Guide", |
|||
"guideDescription": "Tout d'abord, écrivez l'origine de votre départ, puis choisissez la première destination de votre voyage, le nombre de nuits de séjour et le moyen de transport, puis choisissez vos destinations de voyage si vous le souhaitez.", |
|||
"beginYourTrip": "Commencez Votre Voyage", |
|||
"startDate": "Date de Début", |
|||
"numberOfPassengers": "Nombre de Passagers", |
|||
"destination": "Destination", |
|||
"selectCity": "Sélectionner une Ville", |
|||
"transportation": "Transport", |
|||
"selectTransport": "Sélectionner le Transport", |
|||
"hotel": "Hôtel", |
|||
"selectHotel": "Sélectionner l'Hôtel", |
|||
"duration": "Durée", |
|||
"finishDate": "Date de Fin", |
|||
"addDestination": "Ajouter une Destination", |
|||
"continue": "Continuer", |
|||
"successMessage": "Enregistré avec succès", |
|||
"to": "à", |
|||
"login": "Se Connecter", |
|||
"signup": "S'inscrire" |
|||
"statisticSubHeading3": "الدول والمناطق التي تتواجد فيها خدماتنا (حتى 30 سبتمبر 2021)", |
|||
"customTrip": "رحلة مخصصة", |
|||
"guide": "الدليل", |
|||
"guideDescription": "أولاً، اكتب مصدر مغادرتك، ثم اختر أول وجهة في رحلتك، عدد ليالي الإقامة، ووسائل السفر، ثم اختر وجهاتك إذا رغبت.", |
|||
"beginYourTrip": "ابدأ رحلتك", |
|||
"startDate": "تاريخ البدء", |
|||
"numberOfPassengers": "عدد الركاب", |
|||
"destination": "الوجهة", |
|||
"selectCity": "اختر المدينة", |
|||
"transportation": "النقل", |
|||
"selectTransport": "اختر وسيلة النقل", |
|||
"hotel": "الفندق", |
|||
"selectHotel": "اختر الفندق", |
|||
"duration": "المدة", |
|||
"finishDate": "تاريخ الانتهاء", |
|||
"addDestination": "أضف وجهة", |
|||
"continue": "استمرار", |
|||
"successMessage": "تم التسجيل بنجاح", |
|||
"to": "إلى", |
|||
"login": "تسجيل الدخول", |
|||
"signup": "إنشاء حساب", |
|||
"All": "الكل", |
|||
"create": "إنشاء", |
|||
"createPersonalizedTourLine1": "أنشئ جولتك المخصصة وصمم", |
|||
"createPersonalizedTourLine2": "تجربة السفر المثالية المخصصة لتفضيلاتك.", |
|||
"imageAltCustomTourBackground": "خلفية الجولة المخصصة", |
|||
"howItWorks": { |
|||
"title": "كيف يعمل", |
|||
"desc": "ابق هادئًا وسافر بثقة", |
|||
"vectorAlt": "صورة توضيحية توضح كيفية العمل", |
|||
"bookAndRelax": { |
|||
"title": "احجز واسترخي", |
|||
"desc": "دَعْ كل رحلة تكون تجربة ملهمة، وكل غرفة مساحة هادئة" |
|||
}, |
|||
"smartChecklist": { |
|||
"title": "قائمة التحقق الذكية", |
|||
"desc": "دَعْ كل رحلة تكون تجربة ملهمة، وكل غرفة مساحة هادئة" |
|||
}, |
|||
"saveMore": { |
|||
"title": "وفر أكثر", |
|||
"desc": "دَعْ كل رحلة تكون تجربة ملهمة، وكل غرفة مساحة هادئة" |
|||
}, |
|||
"item1": { |
|||
"imageAlt": "توضيح ميزة احجز واسترخي", |
|||
"imageAltDark": "توضيح ميزة احجز واسترخي في الوضع المظلم" |
|||
}, |
|||
"item2": { |
|||
"imageAlt": "توضيح ميزة قائمة التحقق الذكية", |
|||
"imageAltDark": "توضيح ميزة قائمة التحقق الذكية في الوضع المظلم" |
|||
}, |
|||
"item3": { |
|||
"imageAlt": "توضيح ميزة وفر أكثر", |
|||
"imageAltDark": "توضيح ميزة وفر أكثر في الوضع المظلم" |
|||
} |
|||
}, |
|||
"imageAltMapBackground": "خلفية الخريطة", |
|||
"imageAltAppRightImg": "صورة التطبيق اليمنى", |
|||
"buttonDownloadOnAppStore": "تنزيل من متجر التطبيقات", |
|||
"buttonGetItOnGooglePlay": "احصل عليها من Google Play", |
|||
"tourSuggestion": { |
|||
"heading": "الدول", |
|||
"subHeading": "أماكن شهيرة نوصي بها لك", |
|||
"vectorAlt": "صورة توضيحية توضح اقتراحات الجولات", |
|||
"categories": { |
|||
"Nature House": "منزل طبيعي", |
|||
"Wooden house": "منزل خشبي", |
|||
"Houseboat": "قارب منزل", |
|||
"Farm House": "منزل مزرعة", |
|||
"Dome House": "منزل قبة", |
|||
"Wooden Dome": "قبة خشبية" |
|||
} |
|||
}, |
|||
"tourSuggestion.heading": "الدول", |
|||
"tourSuggestion.subHeading": "أماكن شهيرة نوصي بها لك", |
|||
"cardCategory3.imageAltPlaces": "أماكن", |
|||
"cardCategory3.tours": "الجولات", |
|||
"sectionClientSay": { |
|||
"heading": "ماذا يقول عملاؤنا عنا؟", |
|||
"imageAltMain": "صورة رئيسية لآراء العملاء", |
|||
"imageAltClient1": "العميل 1", |
|||
"imageAltClient2": "العميل 2", |
|||
"imageAltClient3": "العميل 3", |
|||
"imageAltClient4": "العميل 4", |
|||
"imageAltClient5": "العميل 5", |
|||
"imageAltClient6": "العميل 6", |
|||
"imageAltQuotation1": "علامة اقتباس يسار", |
|||
"imageAltQuotation2": "علامة اقتباس يمين", |
|||
"testimonials": { |
|||
"0": { |
|||
"content": "كانت الرحلة مع عقيلة تجربة روحية غنية. المرشدين المطلعين والطاقم الدافئ جعلوا كل لحظة لا تُنسى.", |
|||
"clientName": "تيانا أبي", |
|||
"clientAddress": "ماليزيا" |
|||
}, |
|||
"1": { |
|||
"content": "تم ترتيب كل شيء بشكل مثالي، من الإقامة إلى الزيارات إلى الأماكن المقدسة. شعرت بالاهتمام طوال الجولة.", |
|||
"clientName": "ليني سويفان", |
|||
"clientAddress": "لندن" |
|||
}, |
|||
"2": { |
|||
"content": "الانضمام إلى هذه الجولة سمح لي بالتواصل بشكل عميق مع المسافرين الآخرين وتراثي. أوصي بشدة بـ عقيلة لرحلة ذات مغزى!", |
|||
"clientName": "بيرتا إميلي", |
|||
"clientAddress": "طوكيو" |
|||
} |
|||
} |
|||
}, |
|||
"sectionGridFilterCard": { |
|||
"allTours": "جميع الجولات", |
|||
"noToursAvailable": "لا توجد جولات متاحة", |
|||
"toursInfo": "{{count}} إقامة · {{dateRange}} · {{guests}} ضيوف" |
|||
}, |
|||
"accountHeading": "معلومات الحساب", |
|||
"nameLabel": "الاسم", |
|||
"emailLabel": "البريد الإلكتروني", |
|||
"phoneLabel": "رقم الهاتف", |
|||
"changeImage": "تغيير الصورة", |
|||
"updateButton": "تحديث المعلومات", |
|||
"signOutButton": "تسجيل الخروج", |
|||
"deleteButton": "حذف الحساب", |
|||
"deleteSuccess": "تم حذف حسابك بنجاح.", |
|||
"signOutSuccess": "تم تسجيل الخروج بنجاح.", |
|||
"updateSuccess": "تم تحديث معلوماتك بنجاح.", |
|||
"noChanges": "لم يتم اكتشاف أي تغييرات.", |
|||
"errorGeneric": "حدث خطأ ما. يرجى المحاولة مرة أخرى.", |
|||
"errorUnknown": "حدث خطأ غير معروف.", |
|||
"benefits": "الفوائد" |
|||
} |
@ -0,0 +1,23 @@ |
|||
{ |
|||
"widgetMenus": { |
|||
"Quick Links": { |
|||
"title": "روابط سريعة", |
|||
"menus": [ |
|||
{ "label": "جميع الجولات" }, |
|||
{ "label": "المدونات" }, |
|||
{ "label": "الأسئلة الشائعة" }, |
|||
{ "label": "من نحن" } |
|||
] |
|||
} |
|||
}, |
|||
"aboutUs": { |
|||
"title": "من نحن", |
|||
"description": "نحن فريق متحمس مكرس لصناعة تجارب سفر لا تُنسى للمستكشفين والحالمين على حد سواء. من الهروب الهادئ إلى الشواطئ الاستوائية إلى المغامرات المليئة بالأدرينالين في الأماكن الغريبة، نصمم رحلات فريدة كما أنت. انضم إلينا ولنكشف العالم، مغامرة واحدة في كل مرة!" |
|||
}, |
|||
"footerNav": { |
|||
"description": "نحن فريق متحمس مكرس لصناعة تجارب سفر لا تُنسى للمستكشفين والحالمين على حد سواء." |
|||
}, |
|||
"socials": { |
|||
"title": "تابعنا" |
|||
} |
|||
} |
@ -0,0 +1,91 @@ |
|||
{ |
|||
"selectTour": "اختر جولتك", |
|||
"tourPeriod": "مدة الجولة", |
|||
"startEndDate": "البداية - النهاية", |
|||
"guests": "الضيوف", |
|||
"addGuests": "إضافة ضيوف", |
|||
"adults": "البالغين", |
|||
"adultsDesc": "الأعمار 13 فما فوق", |
|||
"children": "الأطفال", |
|||
"childrenDesc": "الأعمار من 2 إلى 12", |
|||
"infants": "الرضع", |
|||
"infantsDesc": "الأعمار من 0 إلى 2", |
|||
"clear": "مسح", |
|||
"submit": "إرسال", |
|||
"login": "تسجيل الدخول", |
|||
"phoneNumber": "رقم الهاتف", |
|||
"enterPhoneNumber": "أدخل رقم هاتفك", |
|||
"password": "كلمة المرور", |
|||
"forgotPassword": "نسيت كلمة المرور؟", |
|||
"enterPassword": "أدخل كلمة المرور", |
|||
"continue": "استمرار", |
|||
"createAccount": "إنشاء حساب", |
|||
"invalidPhoneNumber": "رقم الهاتف غير صالح.", |
|||
"invalidPhoneNumberFormat": "تنسيق رقم الهاتف غير صالح.", |
|||
"passwordRequired": "كلمة المرور مطلوبة.", |
|||
"loginSuccessful": "تم تسجيل الدخول بنجاح!", |
|||
"loginFailed": "فشل تسجيل الدخول، يرجى التحقق من بياناتك.", |
|||
"unknownError": "حدث خطأ غير معروف.", |
|||
"hidePassword": "إخفاء كلمة المرور", |
|||
"showPassword": "عرض كلمة المرور", |
|||
"signup": "إنشاء حساب", |
|||
"changePassword": "تغيير كلمة المرور", |
|||
"fullName": "الاسم الكامل", |
|||
"enterFullName": "أدخل اسمك الكامل", |
|||
"confirmPassword": "تأكيد كلمة المرور", |
|||
"enterConfirmPassword": "أعد إدخال كلمة المرور", |
|||
"alreadyHaveAccount": "هل لديك حساب بالفعل؟", |
|||
"signIn": "تسجيل الدخول", |
|||
"errorOccurred": "حدث خطأ.", |
|||
"hideConfirmPassword": "إخفاء تأكيد كلمة المرور", |
|||
"showConfirmPassword": "عرض تأكيد كلمة المرور", |
|||
"verificationMethod": "طريقة التحقق", |
|||
"sendViaWhatsApp": "إرسال عبر واتساب", |
|||
"sendViaSMS": "إرسال عبر الرسائل النصية", |
|||
"verificationCode": "رمز التحقق", |
|||
"enterOtpDescription": "أدخل الرمز المكون من 5 أرقام الذي أرسلناه لإكمال تسجيل حسابك", |
|||
"haventGotCode": "لم تحصل على رمز التأكيد بعد؟", |
|||
"resend": "إعادة إرسال", |
|||
"seconds": "ثواني", |
|||
"confirm": "تأكيد", |
|||
"signInSuccessful": "تم تسجيل دخولك بنجاح", |
|||
"somethingWentWrong": "حدث خطأ ما. يرجى المحاولة مرة أخرى.", |
|||
"otpInput": "إدخال OTP {{index}}", |
|||
"otpNotComplete": "رمز التحقق غير صالح", |
|||
"addNewPassenger": "إضافة راكب جديد", |
|||
"passengerInfo": "معلومات الراكب", |
|||
"passportNo": "رقم الجواز", |
|||
"fullNameRequired": "الاسم الكامل مطلوب.", |
|||
"passportRequired": "رقم الجواز مطلوب.", |
|||
"passportNumeric": "يجب أن يكون رقم الجواز رقميًا.", |
|||
"dobRequired": "تاريخ الميلاد مطلوب.", |
|||
"phoneRequired": "رقم الهاتف مطلوب.", |
|||
"phoneNumeric": "يجب أن يكون رقم الهاتف رقميًا.", |
|||
"passportImageRequired": "صورة الجواز مطلوبة.", |
|||
"editPassengerInfo": "تعديل معلومات الراكب", |
|||
"backToBills": "العودة إلى الفواتير", |
|||
"noBillsAvailable": "لا توجد فواتير متاحة", |
|||
"awaitingPayment": "بانتظار الدفع", |
|||
"approved": "معتمد", |
|||
"rejected": "مرفوض", |
|||
"pending": "قيد الانتظار", |
|||
"issuedDate": "تاريخ الإصدار", |
|||
"expirationDate": "تاريخ الانتهاء", |
|||
"tourInvoiceAmount": "قيمة فاتورة الجولة", |
|||
"viewBill": "عرض الفاتورة", |
|||
"transactionReceiptUpdated": "تم تحديث إيصال العملية بنجاح", |
|||
"updateFailed": "فشل في تحديث الإيصال", |
|||
"billDetails": "تفاصيل الفاتورة", |
|||
"whyRejected": "لماذا تم رفضها؟", |
|||
"numberOfPassengers": "عدد الركاب", |
|||
"adult": "بالغ", |
|||
"infant": "رضيع", |
|||
"tourPrice": "سعر الجولة", |
|||
"accountNumber": "رقم الحساب", |
|||
"uploadPassportImage": "تحميل صورة الجواز", |
|||
"noFileSelected": "لم يتم اختيار ملف", |
|||
"uploadedImage": "الصورة المرفوعة", |
|||
"delete": "حذف", |
|||
"currentReceipt": "الإيصال الحالي", |
|||
"copy": "نسخ" |
|||
} |
@ -0,0 +1,15 @@ |
|||
{ |
|||
"text-home": "الرئيسية", |
|||
"text-all-tours": "جميع الجولات", |
|||
"text-blog": "المدونة", |
|||
"text-faq": "الأسئلة الشائعة", |
|||
"text-about": "عن الموقع", |
|||
"text-language": "اللغة", |
|||
"text-no-match": "لا توجد نتائج", |
|||
"search-placeholder": "اكتب وابحث...", |
|||
"customTrip": "رحلة مخصصة", |
|||
"navAccount": "الحساب", |
|||
"navMyTrips": "رحلاتي", |
|||
"navPassengersList": "قائمة الركاب", |
|||
"navBills": "الفواتير" |
|||
} |
@ -1,25 +1,24 @@ |
|||
{ |
|||
"faqTitle": "Frequently Asked Questions", |
|||
"faqSubtitle": "Have Questions? We are here to help you!", |
|||
"faqQuestion1": "How can I book a tour on your site?", |
|||
"faqAnswer1": "To book a tour, simply select your desired destination from the 'List of Tours', choose your dates, and follow the steps to complete the booking process.", |
|||
"faqQuestion2": "Can I customize my tour?", |
|||
"faqAnswer2": "Yes, our 'Customize Tour' feature allows you to tailor your journey based on your preferences. Click on 'Customize Tour' at the top of the page to start personalizing your experience.", |
|||
"faqQuestion3": "What payment methods do you accept?", |
|||
"faqAnswer3": "We accept all major credit cards, PayPal, and bank transfers. You can choose your preferred method during the checkout process.", |
|||
"faqQuestion4": "How do I know my booking is confirmed?", |
|||
"faqAnswer4": "Once you complete the payment process, you will receive a confirmation email with all the details of your booking. You can also view your booking details in your account dashboard.", |
|||
"faqQuestion5": "Can I cancel or modify my booking?", |
|||
"faqAnswer5": "Yes, you can cancel or modify your booking from your account. Please note that cancellations must be made at least 24 hours before the tour starts to be eligible for a refund.", |
|||
"faqQuestion6": "Are there any hidden fees?", |
|||
"faqAnswer6": "No, all fees are transparent and shown upfront before you complete your booking. We ensure there are no hidden fees.", |
|||
"faqQuestion7": "Do you offer group discounts?", |
|||
"faqAnswer7": "Yes, we offer group discounts for larger bookings. Please contact our support team for more information on group rates.", |
|||
"faqQuestion8": "Is travel insurance included in the booking?", |
|||
"faqAnswer8": "Yes, all our tour packages include basic travel insurance. You can choose to upgrade your insurance package during the checkout process.", |
|||
"faqQuestion9": "What happens if the tour is canceled by the provider?", |
|||
"faqAnswer9": "If the tour is canceled by the provider due to unforeseen circumstances, you will receive a full refund or the option to reschedule your tour.", |
|||
"faqQuestion10": "How can I contact customer support?", |
|||
"faqAnswer10": "You can contact customer support by clicking the 'Contact Us' button at the bottom of the page or by visiting our support section." |
|||
} |
|||
|
|||
"faqTitle": "Frequently Asked Questions", |
|||
"faqSubtitle": "Have questions? We are here to help!", |
|||
"faqQuestion1": "How can I book a tour on your site?", |
|||
"faqAnswer1": "To book a tour, simply select your desired destination from the 'List of Tours', choose your dates, and follow the steps to complete the booking process.", |
|||
"faqQuestion2": "Can I customize my tour?", |
|||
"faqAnswer2": "Yes, our 'Customize Tour' feature allows you to tailor your journey based on your preferences. Click on 'Customize Tour' at the top of the page to start personalizing your experience.", |
|||
"faqQuestion3": "What payment methods do you accept?", |
|||
"faqAnswer3": "We accept all major credit cards, PayPal, and bank transfers. You can choose your preferred method during the checkout process.", |
|||
"faqQuestion4": "How do I know my booking is confirmed?", |
|||
"faqAnswer4": "Once you complete the payment process, you will receive a confirmation email with all the details of your booking. You can also view your booking details in your account dashboard.", |
|||
"faqQuestion5": "Can I cancel or modify my booking?", |
|||
"faqAnswer5": "Yes, you can cancel or modify your booking from your account. Please note that cancellations must be made at least 24 hours before the tour starts to be eligible for a refund.", |
|||
"faqQuestion6": "Are there any hidden fees?", |
|||
"faqAnswer6": "No, all fees are transparent and shown upfront before you complete your booking. We ensure there are no hidden fees.", |
|||
"faqQuestion7": "Do you offer group discounts?", |
|||
"faqAnswer7": "Yes, we offer group discounts for larger bookings. Please contact our support team for more information on group rates.", |
|||
"faqQuestion8": "Is travel insurance included in the booking?", |
|||
"faqAnswer8": "Yes, all our tour packages include basic travel insurance. You can choose to upgrade your insurance package during the checkout process.", |
|||
"faqQuestion9": "What happens if the tour is canceled by the provider?", |
|||
"faqAnswer9": "If the tour is canceled by the provider due to unforeseen circumstances, you will receive a full refund or the option to reschedule your tour.", |
|||
"faqQuestion10": "How can I contact customer support?", |
|||
"faqAnswer10": "You can contact customer support by clicking the 'Contact Us' button at the bottom of the page or by visiting our support section." |
|||
} |
@ -0,0 +1,23 @@ |
|||
{ |
|||
"widgetMenus": { |
|||
"Quick Links": { |
|||
"title": "Quick Links", |
|||
"menus": [ |
|||
{ "label": "All Tours" }, |
|||
{ "label": "Blogs" }, |
|||
{ "label": "FAQ" }, |
|||
{ "label": "About Us" } |
|||
] |
|||
} |
|||
}, |
|||
"aboutUs": { |
|||
"title": "About Us", |
|||
"description": "We are a passionate team dedicated to crafting unforgettable travel experiences for explorers and dreamers alike. From serene escapes on tropical beaches to adrenaline-fueled adventures in exotic locales, we curate journeys that are as unique as you are. Join us and let’s explore the world, one adventure at a time!" |
|||
}, |
|||
"footerNav": { |
|||
"description": "We are a passionate team dedicated to crafting unforgettable travel experiences for explorers and dreamers alike." |
|||
}, |
|||
"socials": { |
|||
"title": "Follow us" |
|||
} |
|||
} |
@ -0,0 +1,91 @@ |
|||
{ |
|||
"selectTour": "Select your tour", |
|||
"tourPeriod": "Tour period", |
|||
"startEndDate": "Start - End", |
|||
"guests": "Guests", |
|||
"addGuests": "Add Guests", |
|||
"adults": "Adults", |
|||
"adultsDesc": "Ages 13 or above", |
|||
"children": "Children", |
|||
"childrenDesc": "Ages 2–12", |
|||
"infants": "Infants", |
|||
"infantsDesc": "Ages 0–2", |
|||
"clear": "Clear", |
|||
"submit": "Submit", |
|||
"login": "Login", |
|||
"phoneNumber": "Phone Number", |
|||
"enterPhoneNumber": "Enter your phone number", |
|||
"password": "Password", |
|||
"forgotPassword": "Forgot password?", |
|||
"enterPassword": "Enter your password", |
|||
"continue": "Continue", |
|||
"createAccount": "Create an account", |
|||
"invalidPhoneNumber": "Invalid phone number.", |
|||
"invalidPhoneNumberFormat": "Invalid phone number format.", |
|||
"passwordRequired": "Password is required.", |
|||
"loginSuccessful": "Login successful!", |
|||
"loginFailed": "Login failed, please check your credentials.", |
|||
"unknownError": "An unknown error occurred.", |
|||
"hidePassword": "Hide password", |
|||
"showPassword": "Show password", |
|||
"signup": "Signup", |
|||
"changePassword": "Change password", |
|||
"fullName": "Full Name", |
|||
"enterFullName": "Enter your full name", |
|||
"confirmPassword": "Confirm Password", |
|||
"enterConfirmPassword": "Re-enter your password", |
|||
"alreadyHaveAccount": "Already have an account?", |
|||
"signIn": "Sign in", |
|||
"errorOccurred": "An error occurred.", |
|||
"hideConfirmPassword": "Hide confirm password", |
|||
"showConfirmPassword": "Show confirm password", |
|||
"verificationMethod": "Verification method", |
|||
"sendViaWhatsApp": "Send via WhatsApp", |
|||
"sendViaSMS": "Send via SMS", |
|||
"verificationCode": "Verification Code", |
|||
"enterOtpDescription": "Enter the 5-digit code that we sent to complete your account registration", |
|||
"haventGotCode": "Haven't got the confirmation code yet?", |
|||
"resend": "Resend", |
|||
"seconds": "Seconds", |
|||
"confirm": "Confirm", |
|||
"signInSuccessful": "Your sign in was successful", |
|||
"somethingWentWrong": "Something went wrong. Please try again.", |
|||
"otpInput": "OTP input {{index}}", |
|||
"otpNotComplete": "Verification code is not valid", |
|||
"addNewPassenger": "Add new passenger", |
|||
"passengerInfo": "Passenger information", |
|||
"passportNo": "Passport No", |
|||
"fullNameRequired": "Full Name is required.", |
|||
"passportRequired": "Passport Number is required.", |
|||
"passportNumeric": "Passport Number must be numeric.", |
|||
"dobRequired": "Date of Birth is required.", |
|||
"phoneRequired": "Phone Number is required.", |
|||
"phoneNumeric": "Phone Number must be numeric.", |
|||
"passportImageRequired": "Passport image is required.", |
|||
"editPassengerInfo": "Edit Passenger Information", |
|||
"backToBills": "Back to Bills", |
|||
"noBillsAvailable": "No bills available", |
|||
"awaitingPayment": "Awaiting Payment", |
|||
"approved": "Approved", |
|||
"rejected": "Rejected", |
|||
"pending": "Pending", |
|||
"issuedDate": "Issued Date", |
|||
"expirationDate": "Expiration Date", |
|||
"tourInvoiceAmount": "Tour Invoice Amount", |
|||
"viewBill": "View Bill", |
|||
"transactionReceiptUpdated": "Transaction receipt updated successfully", |
|||
"updateFailed": "Failed to update receipt", |
|||
"billDetails": "Bill Details", |
|||
"whyRejected": "Why was it rejected?", |
|||
"numberOfPassengers": "Number of Passengers", |
|||
"adult": "Adult", |
|||
"infant": "Infant", |
|||
"tourPrice": "Tour Price", |
|||
"accountNumber": "Account Number", |
|||
"uploadPassportImage": "Upload Passport Image", |
|||
"noFileSelected": "No File Selected", |
|||
"uploadedImage": "Uploaded Image", |
|||
"delete": "Delete", |
|||
"currentReceipt": "Current Receipt", |
|||
"copy": "Copy" |
|||
} |
@ -0,0 +1,15 @@ |
|||
{ |
|||
"text-home": "Home", |
|||
"text-all-tours": "All Tours", |
|||
"text-blog": "Blog", |
|||
"text-faq": "FAQ", |
|||
"text-about": "About", |
|||
"text-language": "Language", |
|||
"text-no-match": "No Matches Found", |
|||
"search-placeholder": "Type and search...", |
|||
"customTrip": "Custom Trip", |
|||
"navAccount": "Account", |
|||
"navMyTrips": "My Trips", |
|||
"navPassengersList": "Passengers List", |
|||
"navBills": "Bills" |
|||
} |
@ -1,116 +0,0 @@ |
|||
{ |
|||
"home": "Accueil", |
|||
"allTours": "Tous les Tours", |
|||
"blogs": "Blogs", |
|||
"faq": "FAQ", |
|||
"aboutUs": "À Propos de Nous", |
|||
"customTour": "Tour Personnalisé", |
|||
"searchPlaceholder": "Où aller ?", |
|||
"searchDescription": "Partout • N'importe quelle semaine • Ajouter des invités", |
|||
"beginAdventure": "Commencez votre aventure spirituelle", |
|||
"planPilgrimage": "Planifiez votre pèlerinage facilement. Trouvez les meilleures accommodations, transports et expériences guidées vers les sanctuaires chiites à travers le monde", |
|||
"startJourney": "Commencez votre voyage", |
|||
"listOfTours": "Liste des Tours", |
|||
"exploreTours": "Explorez les tours et accommodations adaptées pour un voyage spirituel et mémorable", |
|||
"tourPeriod": "Période du Tour", |
|||
"tourPeriodDescription": "Début - Fin", |
|||
"guests": "Invités", |
|||
"addGuests": "Ajouter des invités", |
|||
"available": "Disponible", |
|||
"soldOut": "Épuisé", |
|||
"showMore": "Montrez-moi plus", |
|||
"happeningCities": "Villes Animées", |
|||
"costEffectiveAdvertising": "Publicité Rentable", |
|||
"costEffectiveDescription": "Avec une annonce gratuite, vous pouvez faire la publicité de votre location sans frais initiaux", |
|||
"reachMillions": "Atteignez des millions avec Chisfis", |
|||
"reachMillionsDescription": "Des millions de personnes recherchent des lieux uniques où séjourner à travers le monde", |
|||
"secureAndSimple": "Securisé et Simple", |
|||
"secureDescription": "Une annonce sur Holiday Lettings vous offre un moyen sécurisé et facile de prendre des réservations et des paiements en ligne", |
|||
"mobileApps": "Applications Mobiles", |
|||
"mobileAppsDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dapibus porttitor nisl, sit amet finibus libero.", |
|||
"installation": "Installation", |
|||
"releaseNotes": "Notes de Version", |
|||
"upgradeGuide": "Guide de Mise à Niveau", |
|||
"browserSupport": "Support des Navigateurs", |
|||
"editorSupport": "Support de l'Éditeur", |
|||
"designFeatures": "Caractéristiques de Design", |
|||
"prototyping": "Prototypage", |
|||
"designSystems": "Systèmes de Design", |
|||
"pricing": "Tarification", |
|||
"security": "Sécurité", |
|||
"bestPractices": "Meilleures Pratiques", |
|||
"support": "Support", |
|||
"developers": "Développeurs", |
|||
"learnDesign": "Apprendre le Design", |
|||
"releases": "Versions", |
|||
"discussionForums": "Forums de Discussion", |
|||
"codeOfConduct": "Code de Conduite", |
|||
"communityResources": "Ressources Communautaires", |
|||
"contributing": "Contribuer", |
|||
"concurrentMode": "Mode Concurrent", |
|||
"goodNews": "Bonnes Nouvelles d'Ailleurs", |
|||
"whatPeopleThink": "Voyons ce que les gens pensent de Chisfis", |
|||
"testimonial": "Cet endroit est exactement comme sur la photo publiée sur Chisfis. Excellent service, nous avons passé un très bon séjour !", |
|||
"clientName": "Tiana Abie", |
|||
"clientLocation": "Malaisie", |
|||
"myTrips": "Mes Voyages", |
|||
"account": "Compte", |
|||
"menu": "Menu", |
|||
"gettingStarted": "Premiers Pas", |
|||
"explore": "Explorer", |
|||
"resources": "Ressources", |
|||
"community": "Communauté", |
|||
"placeType": "Type de Lieu", |
|||
"noTours": "Aucun tour disponible", |
|||
"itinerary": "Itinéraire", |
|||
"itineraryTitle": "Itinéraire", |
|||
"total": "Total", |
|||
"reserve": "Réserver", |
|||
"tourFeatures": "Caractéristiques du Tour", |
|||
"tourFeaturesTitle": "Caractéristiques du Tour", |
|||
"startRating": "Évaluation de Début", |
|||
"listingDetails": "Détails", |
|||
"imageAlt": "Image du tour", |
|||
"loading": "Chargement...", |
|||
"adults": "Adultes", |
|||
"adultsDesc": "Âges 13 ou plus", |
|||
"children": "Enfants", |
|||
"childrenDesc": "Âges 2–12", |
|||
"infants": "Bébés", |
|||
"infantsDesc": "Âges 0–2", |
|||
"traveler": "Voyageur", |
|||
"responses": "Réponses ({{count}})", |
|||
"submit": "Soumettre", |
|||
"cancel": "Annuler", |
|||
"relatedPosts": "Articles Connexes", |
|||
"aboutUsHeading": "👋 À Propos de Nous.", |
|||
"aboutUsSubheading": "Nous sommes une équipe passionnée dédiée à la création d'expériences de voyage inoubliables pour les explorateurs et les rêveurs. Des escapades sereines sur des plages tropicales aux aventures à sensations fortes dans des lieux exotiques, nous concevons des voyages aussi uniques que vous. Rejoignez-nous et explorons le monde, une aventure à la fois !", |
|||
"statisticTitle": "🚀 Faits Rapides", |
|||
"statisticDescription": "Nous sommes impartiaux et indépendants, et chaque jour nous créons des programmes et du contenu distinctifs de classe mondiale.", |
|||
"statisticHeading1": "10 millions", |
|||
"statisticSubHeading1": "D'articles ont été publiés à travers le monde (au 30 septembre 2021)", |
|||
"statisticHeading2": "100 000", |
|||
"statisticSubHeading2": "Utilisateurs enregistrés (au 30 septembre 2021)", |
|||
"statisticHeading3": "220+", |
|||
"statisticSubHeading3": "Pays et régions où nous sommes présents (au 30 septembre 2021)", |
|||
"customTrip": "Voyage Personnalisé", |
|||
"guide": "Guide", |
|||
"guideDescription": "Tout d'abord, écrivez l'origine de votre départ, puis choisissez la première destination de votre voyage, le nombre de nuits de séjour et le moyen de transport, puis choisissez vos destinations de voyage si vous le souhaitez.", |
|||
"beginYourTrip": "Commencez Votre Voyage", |
|||
"startDate": "Date de Début", |
|||
"numberOfPassengers": "Nombre de Passagers", |
|||
"destination": "Destination", |
|||
"selectCity": "Sélectionner une Ville", |
|||
"transportation": "Transport", |
|||
"selectTransport": "Sélectionner le Transport", |
|||
"hotel": "Hôtel", |
|||
"selectHotel": "Sélectionner l'Hôtel", |
|||
"duration": "Durée", |
|||
"finishDate": "Date de Fin", |
|||
"addDestination": "Ajouter une Destination", |
|||
"continue": "Continuer", |
|||
"successMessage": "Enregistré avec succès", |
|||
"to": "à", |
|||
"login": "Se Connecter", |
|||
"signup": "S'inscrire" |
|||
} |
@ -0,0 +1,24 @@ |
|||
{ |
|||
"faqTitle": "Pertanyaan yang Sering Diajukan", |
|||
"faqSubtitle": "Punya pertanyaan? Kami di sini untuk membantu!", |
|||
"faqQuestion1": "Bagaimana cara saya memesan tur di situs Anda?", |
|||
"faqAnswer1": "Untuk memesan tur, cukup pilih tujuan yang Anda inginkan dari 'Daftar Tur', pilih tanggal Anda, dan ikuti langkah-langkah untuk menyelesaikan proses pemesanan.", |
|||
"faqQuestion2": "Apakah saya bisa menyesuaikan tur saya?", |
|||
"faqAnswer2": "Ya, fitur 'Tur Kustom' kami memungkinkan Anda untuk menyesuaikan perjalanan berdasarkan preferensi Anda. Klik 'Tur Kustom' di bagian atas halaman untuk memulai personalisasi pengalaman Anda.", |
|||
"faqQuestion3": "Metode pembayaran apa yang Anda terima?", |
|||
"faqAnswer3": "Kami menerima semua kartu kredit utama, PayPal, dan transfer bank. Anda dapat memilih metode pembayaran yang diinginkan selama proses checkout.", |
|||
"faqQuestion4": "Bagaimana cara saya tahu jika pemesanan saya sudah dikonfirmasi?", |
|||
"faqAnswer4": "Setelah Anda menyelesaikan proses pembayaran, Anda akan menerima email konfirmasi dengan semua detail pemesanan Anda. Anda juga dapat melihat detail pemesanan Anda di dasbor akun Anda.", |
|||
"faqQuestion5": "Bisakah saya membatalkan atau mengubah pemesanan saya?", |
|||
"faqAnswer5": "Ya, Anda dapat membatalkan atau mengubah pemesanan Anda dari akun Anda. Harap dicatat bahwa pembatalan harus dilakukan setidaknya 24 jam sebelum tur dimulai agar memenuhi syarat untuk mendapatkan pengembalian dana.", |
|||
"faqQuestion6": "Apakah ada biaya tersembunyi?", |
|||
"faqAnswer6": "Tidak, semua biaya transparan dan ditampilkan sebelumnya sebelum Anda menyelesaikan pemesanan. Kami memastikan tidak ada biaya tersembunyi.", |
|||
"faqQuestion7": "Apakah Anda menawarkan diskon untuk grup?", |
|||
"faqAnswer7": "Ya, kami menawarkan diskon grup untuk pemesanan besar. Silakan hubungi tim dukungan kami untuk informasi lebih lanjut mengenai tarif grup.", |
|||
"faqQuestion8": "Apakah asuransi perjalanan termasuk dalam pemesanan?", |
|||
"faqAnswer8": "Ya, semua paket tur kami termasuk asuransi perjalanan dasar. Anda dapat memilih untuk meningkatkan paket asuransi Anda selama proses checkout.", |
|||
"faqQuestion9": "Apa yang terjadi jika tur dibatalkan oleh penyedia?", |
|||
"faqAnswer9": "Jika tur dibatalkan oleh penyedia karena keadaan yang tidak terduga, Anda akan menerima pengembalian dana penuh atau pilihan untuk menjadwal ulang tur Anda.", |
|||
"faqQuestion10": "Bagaimana cara saya menghubungi dukungan pelanggan?", |
|||
"faqAnswer10": "Anda dapat menghubungi dukungan pelanggan dengan mengklik tombol 'Hubungi Kami' di bagian bawah halaman atau dengan mengunjungi bagian dukungan kami." |
|||
} |
@ -0,0 +1,222 @@ |
|||
{ |
|||
"home": "Beranda", |
|||
"allTours": "Semua Tur", |
|||
"blogs": "Blog", |
|||
"faq": "FAQ", |
|||
"aboutUs": "Tentang Kami", |
|||
"customTour": "Tur Kustom", |
|||
"searchPlaceholder": "Ke mana?", |
|||
"searchDescription": "Ke mana saja • Minggu mana saja • Tambahkan tamu", |
|||
"beginAdventure": "Mulai perjalanan", |
|||
"beginAdventure1": "spiritual", |
|||
"beginAdventure2": "petualangan", |
|||
"planPilgrimage": "Rencanakan perjalanan ziarah Anda dengan mudah. Temukan akomodasi terbaik, transportasi, dan pengalaman terpanduan ke makam-makam Syiah di seluruh dunia.", |
|||
"startJourney": "Mulai perjalanan Anda", |
|||
"listOfTours": "Daftar Tur", |
|||
"exploreTours": "Jelajahi tur dan akomodasi yang disesuaikan untuk perjalanan spiritual yang tak terlupakan", |
|||
"tourPeriod": "Periode Tur", |
|||
"tourPeriodDescription": "Mulai - Selesai", |
|||
"guests": "Tamu", |
|||
"addGuests": "Tambahkan tamu", |
|||
"available": "Tersedia", |
|||
"soldOut": "Habis terjual", |
|||
"showMore": "Tampilkan lebih banyak", |
|||
"happeningCities": "Kota yang sedang berlangsung", |
|||
"costEffectiveAdvertising": "Iklan Hemat Biaya", |
|||
"costEffectiveDescription": "Dengan daftar gratis, Anda dapat mengiklankan penyewaan Anda tanpa biaya di muka", |
|||
"reachMillions": "Jangkau jutaan dengan Chisfis", |
|||
"reachMillionsDescription": "Jutaan orang mencari tempat unik untuk menginap di seluruh dunia", |
|||
"secureAndSimple": "Aman dan Sederhana", |
|||
"secureDescription": "Daftar Holiday Lettings memberi Anda cara aman dan mudah untuk menerima pemesanan dan pembayaran secara online", |
|||
"mobileApps": "Aplikasi Seluler", |
|||
"mobileAppsDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dapibus porttitor nisl, sit amet finibus libero.", |
|||
"installation": "Instalasi", |
|||
"releaseNotes": "Catatan Rilis", |
|||
"upgradeGuide": "Panduan Pembaruan", |
|||
"browserSupport": "Dukungan Browser", |
|||
"editorSupport": "Dukungan Editor", |
|||
"designFeatures": "Fitur Desain", |
|||
"prototyping": "Pembuatan Prototipe", |
|||
"designSystems": "Sistem Desain", |
|||
"pricing": "Harga", |
|||
"security": "Keamanan", |
|||
"bestPractices": "Praktik Terbaik", |
|||
"support": "Dukungan", |
|||
"developers": "Pengembang", |
|||
"learnDesign": "Belajar Desain", |
|||
"releases": "Rilis", |
|||
"discussionForums": "Forum Diskusi", |
|||
"codeOfConduct": "Kode Etik", |
|||
"communityResources": "Sumber Daya Komunitas", |
|||
"contributing": "Berkontribusi", |
|||
"concurrentMode": "Mode Bersamaan", |
|||
"goodNews": "Berita Baik dari Jauh", |
|||
"whatPeopleThink": "Mari kita lihat apa yang dipikirkan orang tentang Chisfis", |
|||
"testimonial": "Tempat ini persis seperti gambar yang diposting di Chisfis. Layanan yang luar biasa, kami memiliki waktu yang luar biasa!", |
|||
"clientName": "Tiana Abie", |
|||
"clientLocation": "Malaysia", |
|||
"myTrips": "Perjalanan Saya", |
|||
"account": "Akun", |
|||
"menu": "Menu", |
|||
"gettingStarted": "Memulai", |
|||
"explore": "Jelajahi", |
|||
"resources": "Sumber Daya", |
|||
"community": "Komunitas", |
|||
"placeType": "Jenis Tempat", |
|||
"noTours": "Tidak ada tur yang tersedia", |
|||
"itinerary": "Rencana Perjalanan", |
|||
"itineraryTitle": "Rencana Perjalanan", |
|||
"total": "Total", |
|||
"reserve": "Pesan", |
|||
"tourFeatures": "Fitur Tur", |
|||
"tourFeaturesTitle": "Fitur Tur", |
|||
"startRating": "Mulai Peringkat", |
|||
"listingDetails": "Detail", |
|||
"imageAlt": "Gambar tur", |
|||
"loading": "Memuat...", |
|||
"adults": "Dewasa", |
|||
"adultsDesc": "Usia 13 atau lebih", |
|||
"children": "Anak-anak", |
|||
"childrenDesc": "Usia 2–12", |
|||
"infants": "Bayi", |
|||
"infantsDesc": "Usia 0–2", |
|||
"traveler": "Pelancong", |
|||
"responses": "Tanggapan ({{count}})", |
|||
"submit": "Kirim", |
|||
"cancel": "Batal", |
|||
"relatedPosts": "Postingan Terkait", |
|||
"aboutUsHeading": "👋 Tentang Kami", |
|||
"aboutUsSubheading": "Kami adalah tim yang penuh semangat yang berdedikasi untuk menciptakan pengalaman perjalanan yang tak terlupakan bagi para penjelajah dan pemimpi. Dari pelarian damai di pantai tropis hingga petualangan yang memacu adrenalin di tempat-tempat eksotis, kami merancang perjalanan yang sama uniknya dengan Anda. Bergabunglah dengan kami dan mari jelajahi dunia, satu petualangan pada satu waktu!", |
|||
"statisticTitle": "🚀 Fakta Cepat", |
|||
"statisticDescription": "Kami tidak memihak dan independen, dan setiap hari kami menciptakan program dan konten yang unik dan berkualitas dunia.", |
|||
"statisticHeading1": "10 juta", |
|||
"statisticSubHeading1": "Artikel telah diterbitkan di seluruh dunia (hingga 30 September 2021)", |
|||
"statisticHeading2": "100.000", |
|||
"statisticSubHeading2": "Akun pengguna terdaftar (hingga 30 September 2021)", |
|||
"statisticHeading3": "220+", |
|||
"statisticSubHeading3": "Negara dan wilayah yang memiliki kehadiran kami (hingga 30 September 2021)", |
|||
"customTrip": "Tur Kustom", |
|||
"guide": "Pemandu", |
|||
"guideDescription": "Pertama, tulis asal keberangkatan Anda, kemudian pilih tujuan pertama perjalanan Anda, jumlah malam menginap, dan sarana transportasi, lalu pilih tujuan perjalanan Anda jika Anda mau.", |
|||
"beginYourTrip": "Mulai perjalanan Anda", |
|||
"startDate": "Tanggal mulai", |
|||
"numberOfPassengers": "Jumlah penumpang", |
|||
"destination": "Tujuan", |
|||
"selectCity": "Pilih kota", |
|||
"transportation": "Transportasi", |
|||
"selectTransport": "Pilih transportasi", |
|||
"hotel": "Hotel", |
|||
"selectHotel": "Pilih hotel", |
|||
"duration": "Durasi", |
|||
"finishDate": "Tanggal selesai", |
|||
"addDestination": "Tambahkan tujuan", |
|||
"continue": "Lanjutkan", |
|||
"successMessage": "Berhasil terdaftar", |
|||
"to": "ke", |
|||
"login": "Masuk", |
|||
"signup": "Daftar", |
|||
"All": "Semua", |
|||
"create": "Buat", |
|||
"createPersonalizedTourLine1": "Buat tur kustom Anda dan desain", |
|||
"createPersonalizedTourLine2": "pengalaman perjalanan yang sempurna sesuai dengan preferensi Anda.", |
|||
"imageAltCustomTourBackground": "Latar belakang tur kustom", |
|||
"howItWorks": { |
|||
"title": "Cara kerja", |
|||
"desc": "Tetap tenang & teruskan perjalanan", |
|||
"vectorAlt": "Gambar vektor dekoratif yang menggambarkan cara kerjanya", |
|||
"bookAndRelax": { |
|||
"title": "Pesan & Santai", |
|||
"desc": "Biarkan setiap perjalanan menjadi perjalanan inspiratif, setiap kamar menjadi ruang yang damai" |
|||
}, |
|||
"smartChecklist": { |
|||
"title": "Daftar Periksa Pintar", |
|||
"desc": "Biarkan setiap perjalanan menjadi perjalanan inspiratif, setiap kamar menjadi ruang yang damai" |
|||
}, |
|||
"saveMore": { |
|||
"title": "Hemat Lebih Banyak", |
|||
"desc": "Biarkan setiap perjalanan menjadi perjalanan inspiratif, setiap kamar menjadi ruang yang damai" |
|||
}, |
|||
"item1": { |
|||
"imageAlt": "Ilustrasi fitur Pesan & Santai", |
|||
"imageAltDark": "Ilustrasi fitur Pesan & Santai dalam mode gelap" |
|||
}, |
|||
"item2": { |
|||
"imageAlt": "Ilustrasi fitur Daftar Periksa Pintar", |
|||
"imageAltDark": "Ilustrasi fitur Daftar Periksa Pintar dalam mode gelap" |
|||
}, |
|||
"item3": { |
|||
"imageAlt": "Ilustrasi fitur Hemat Lebih Banyak", |
|||
"imageAltDark": "Ilustrasi fitur Hemat Lebih Banyak dalam mode gelap" |
|||
} |
|||
}, |
|||
"imageAltMapBackground": "Latar belakang peta", |
|||
"imageAltAppRightImg": "Gambar kanan aplikasi", |
|||
"buttonDownloadOnAppStore": "Unduh di App Store", |
|||
"buttonGetItOnGooglePlay": "Dapatkan di Google Play", |
|||
"tourSuggestion": { |
|||
"heading": "Negara", |
|||
"subHeading": "Tempat populer yang kami rekomendasikan untuk Anda", |
|||
"vectorAlt": "Gambar vektor dekoratif yang menggambarkan saran tur", |
|||
"categories": { |
|||
"Nature House": "Rumah Alam", |
|||
"Wooden house": "Rumah Kayu", |
|||
"Houseboat": "Rumah Perahu", |
|||
"Farm House": "Rumah Pertanian", |
|||
"Dome House": "Rumah Kubah", |
|||
"Wooden Dome": "Kubah Kayu" |
|||
} |
|||
}, |
|||
"tourSuggestion.heading": "Negara", |
|||
"tourSuggestion.subHeading": "Tempat populer yang kami rekomendasikan untuk Anda", |
|||
"cardCategory3.imageAltPlaces": "Tempat", |
|||
"cardCategory3.tours": "Tur", |
|||
"sectionClientSay": { |
|||
"heading": "Apa kata pelanggan kami tentang kami?", |
|||
"imageAltMain": "Gambar utama Ulasan Klien", |
|||
"imageAltClient1": "Klien 1", |
|||
"imageAltClient2": "Klien 2", |
|||
"imageAltClient3": "Klien 3", |
|||
"imageAltClient4": "Klien 4", |
|||
"imageAltClient5": "Klien 5", |
|||
"imageAltClient6": "Klien 6", |
|||
"imageAltQuotation1": "Tanda kutip kiri", |
|||
"imageAltQuotation2": "Tanda kutip kanan", |
|||
"testimonials": { |
|||
"0": { |
|||
"content": "Perjalanan dengan Aqila adalah pengalaman yang memperkaya secara spiritual. Pemandu yang berpengetahuan dan staf yang ramah membuat setiap momen tak terlupakan.", |
|||
"clientName": "Tiana Abie", |
|||
"clientAddress": "Malaysia" |
|||
}, |
|||
"1": { |
|||
"content": "Semua diatur dengan sempurna, dari akomodasi hingga kunjungan ke situs suci. Saya merasa sangat diperhatikan sepanjang perjalanan.", |
|||
"clientName": "Lennie Swiffan", |
|||
"clientAddress": "London" |
|||
}, |
|||
"2": { |
|||
"content": "Bergabung dengan tur ini memungkinkan saya untuk terhubung lebih dalam dengan sesama pelancong dan warisan saya. Sangat merekomendasikan Aqila untuk perjalanan yang bermakna!", |
|||
"clientName": "Berta Emili", |
|||
"clientAddress": "Tokyo" |
|||
} |
|||
} |
|||
}, |
|||
"sectionGridFilterCard": { |
|||
"allTours": "Semua Tur", |
|||
"noToursAvailable": "Tidak ada tur yang tersedia", |
|||
"toursInfo": "{{count}} malam · {{dateRange}} · {{guests}} Tamu" |
|||
}, |
|||
"accountHeading": "Informasi Akun", |
|||
"nameLabel": "Nama", |
|||
"emailLabel": "Email", |
|||
"phoneLabel": "Telepon", |
|||
"changeImage": "Ganti Gambar", |
|||
"updateButton": "Perbarui Info", |
|||
"signOutButton": "Keluar", |
|||
"deleteButton": "Hapus Akun", |
|||
"deleteSuccess": "Akun Anda telah berhasil dihapus.", |
|||
"signOutSuccess": "Anda telah berhasil keluar.", |
|||
"updateSuccess": "Informasi Anda telah berhasil diperbarui.", |
|||
"noChanges": "Tidak ada perubahan yang terdeteksi.", |
|||
"errorGeneric": "Terjadi kesalahan. Silakan coba lagi.", |
|||
"errorUnknown": "Terjadi kesalahan yang tidak diketahui.", |
|||
"benefits": "MANFAAT" |
|||
} |
@ -0,0 +1,23 @@ |
|||
{ |
|||
"widgetMenus": { |
|||
"Quick Links": { |
|||
"title": "Tautan Cepat", |
|||
"menus": [ |
|||
{ "label": "Semua Tur" }, |
|||
{ "label": "Blog" }, |
|||
{ "label": "FAQ" }, |
|||
{ "label": "Tentang Kami" } |
|||
] |
|||
} |
|||
}, |
|||
"aboutUs": { |
|||
"title": "Tentang Kami", |
|||
"description": "Kami adalah tim yang berdedikasi untuk menciptakan pengalaman perjalanan yang tak terlupakan bagi para penjelajah dan pemimpi. Dari pelarian tenang ke pantai tropis hingga petualangan penuh adrenalin di tempat-tempat eksotis, kami merancang perjalanan yang unik seperti Anda. Bergabunglah dengan kami dan mari jelajahi dunia, satu petualangan pada satu waktu!" |
|||
}, |
|||
"footerNav": { |
|||
"description": "Kami adalah tim yang berdedikasi untuk menciptakan pengalaman perjalanan yang tak terlupakan bagi para penjelajah dan pemimpi." |
|||
}, |
|||
"socials": { |
|||
"title": "Ikuti Kami" |
|||
} |
|||
} |
@ -0,0 +1,91 @@ |
|||
{ |
|||
"selectTour": "Pilih tur Anda", |
|||
"tourPeriod": "Periode tur", |
|||
"startEndDate": "Mulai - Selesai", |
|||
"guests": "Tamu", |
|||
"addGuests": "Tambahkan tamu", |
|||
"adults": "Dewasa", |
|||
"adultsDesc": "Usia 13 tahun atau lebih", |
|||
"children": "Anak-anak", |
|||
"childrenDesc": "Usia 2–12 tahun", |
|||
"infants": "Bayi", |
|||
"infantsDesc": "Usia 0–2 tahun", |
|||
"clear": "Hapus", |
|||
"submit": "Kirim", |
|||
"login": "Masuk", |
|||
"phoneNumber": "Nomor Telepon", |
|||
"enterPhoneNumber": "Masukkan nomor telepon Anda", |
|||
"password": "Kata sandi", |
|||
"forgotPassword": "Lupa kata sandi?", |
|||
"enterPassword": "Masukkan kata sandi Anda", |
|||
"continue": "Lanjutkan", |
|||
"createAccount": "Buat akun", |
|||
"invalidPhoneNumber": "Nomor telepon tidak valid.", |
|||
"invalidPhoneNumberFormat": "Format nomor telepon tidak valid.", |
|||
"passwordRequired": "Kata sandi diperlukan.", |
|||
"loginSuccessful": "Masuk berhasil!", |
|||
"loginFailed": "Masuk gagal, periksa kredensial Anda.", |
|||
"unknownError": "Terjadi kesalahan yang tidak diketahui.", |
|||
"hidePassword": "Sembunyikan kata sandi", |
|||
"showPassword": "Tampilkan kata sandi", |
|||
"signup": "Daftar", |
|||
"changePassword": "Ubah kata sandi", |
|||
"fullName": "Nama lengkap", |
|||
"enterFullName": "Masukkan nama lengkap Anda", |
|||
"confirmPassword": "Konfirmasi kata sandi", |
|||
"enterConfirmPassword": "Masukkan kata sandi Anda kembali", |
|||
"alreadyHaveAccount": "Sudah punya akun?", |
|||
"signIn": "Masuk", |
|||
"errorOccurred": "Terjadi kesalahan.", |
|||
"hideConfirmPassword": "Sembunyikan konfirmasi kata sandi", |
|||
"showConfirmPassword": "Tampilkan konfirmasi kata sandi", |
|||
"verificationMethod": "Metode verifikasi", |
|||
"sendViaWhatsApp": "Kirim lewat WhatsApp", |
|||
"sendViaSMS": "Kirim lewat SMS", |
|||
"verificationCode": "Kode verifikasi", |
|||
"enterOtpDescription": "Masukkan kode 5 digit yang kami kirim untuk menyelesaikan pendaftaran akun Anda", |
|||
"haventGotCode": "Belum menerima kode konfirmasi?", |
|||
"resend": "Kirim ulang", |
|||
"seconds": "Detik", |
|||
"confirm": "Konfirmasi", |
|||
"signInSuccessful": "Masuk Anda berhasil", |
|||
"somethingWentWrong": "Ada yang salah. Silakan coba lagi.", |
|||
"otpInput": "Masukkan OTP {{index}}", |
|||
"otpNotComplete": "Kode verifikasi tidak valid", |
|||
"addNewPassenger": "Tambah penumpang baru", |
|||
"passengerInfo": "Informasi penumpang", |
|||
"passportNo": "Nomor Paspor", |
|||
"fullNameRequired": "Nama lengkap diperlukan.", |
|||
"passportRequired": "Nomor paspor diperlukan.", |
|||
"passportNumeric": "Nomor paspor harus berupa angka.", |
|||
"dobRequired": "Tanggal lahir diperlukan.", |
|||
"phoneRequired": "Nomor telepon diperlukan.", |
|||
"phoneNumeric": "Nomor telepon harus berupa angka.", |
|||
"passportImageRequired": "Gambar paspor diperlukan.", |
|||
"editPassengerInfo": "Ubah Informasi Penumpang", |
|||
"backToBills": "Kembali ke Tagihan", |
|||
"noBillsAvailable": "Tidak ada tagihan yang tersedia", |
|||
"awaitingPayment": "Menunggu Pembayaran", |
|||
"approved": "Disetujui", |
|||
"rejected": "Ditolak", |
|||
"pending": "Tertunda", |
|||
"issuedDate": "Tanggal Dikeluarkan", |
|||
"expirationDate": "Tanggal Kadaluarsa", |
|||
"tourInvoiceAmount": "Jumlah Faktur Tur", |
|||
"viewBill": "Lihat Tagihan", |
|||
"transactionReceiptUpdated": "Tanda terima transaksi berhasil diperbarui", |
|||
"updateFailed": "Gagal memperbarui tanda terima", |
|||
"billDetails": "Detail Tagihan", |
|||
"whyRejected": "Mengapa ditolak?", |
|||
"numberOfPassengers": "Jumlah Penumpang", |
|||
"adult": "Dewasa", |
|||
"infant": "Bayi", |
|||
"tourPrice": "Harga Tur", |
|||
"accountNumber": "Nomor Akun", |
|||
"uploadPassportImage": "Unggah Gambar Paspor", |
|||
"noFileSelected": "Tidak ada file yang dipilih", |
|||
"uploadedImage": "Gambar yang diunggah", |
|||
"delete": "Hapus", |
|||
"currentReceipt": "Tanda Terima Saat Ini", |
|||
"copy": "Salin" |
|||
} |
@ -0,0 +1,15 @@ |
|||
{ |
|||
"textHome": "Beranda", |
|||
"textAllTours": "Semua Tur", |
|||
"textBlog": "Blog", |
|||
"textFaq": "FAQ", |
|||
"textAbout": "Tentang", |
|||
"textLanguage": "Bahasa", |
|||
"textNoMatch": "Tidak Ditemukan Hasil", |
|||
"searchPlaceholder": "Ketik dan cari...", |
|||
"customTrip": "Tur Kustom", |
|||
"navAccount": "Akun", |
|||
"navMyTrips": "Perjalanan Saya", |
|||
"navPassengersList": "Daftar Penumpang", |
|||
"navBills": "Tagihan" |
|||
} |
@ -0,0 +1,24 @@ |
|||
{ |
|||
"faqTitle": "Часто задаваемые вопросы", |
|||
"faqSubtitle": "Есть вопросы? Мы здесь, чтобы помочь!", |
|||
"faqQuestion1": "Как я могу забронировать тур на вашем сайте?", |
|||
"faqAnswer1": "Чтобы забронировать тур, просто выберите желаемое направление из 'Списка туров', выберите даты и следуйте шагам, чтобы завершить процесс бронирования.", |
|||
"faqQuestion2": "Могу ли я настроить свой тур?", |
|||
"faqAnswer2": "Да, наша функция 'Настроить тур' позволяет вам адаптировать путешествие в соответствии с вашими предпочтениями. Нажмите на 'Настроить тур' в верхней части страницы, чтобы начать персонализировать ваш опыт.", |
|||
"faqQuestion3": "Какие способы оплаты вы принимаете?", |
|||
"faqAnswer3": "Мы принимаем все основные кредитные карты, PayPal и банковские переводы. Вы можете выбрать предпочтительный способ оплаты во время оформления заказа.", |
|||
"faqQuestion4": "Как я могу узнать, что моя бронь подтверждена?", |
|||
"faqAnswer4": "После завершения процесса оплаты вы получите подтверждающее письмо с деталями бронирования. Вы также можете просматривать детали бронирования в своей панели управления аккаунтом.", |
|||
"faqQuestion5": "Могу ли я отменить или изменить свою бронь?", |
|||
"faqAnswer5": "Да, вы можете отменить или изменить свою бронь через ваш аккаунт. Обратите внимание, что отмена должна быть сделана не позднее чем за 24 часа до начала тура, чтобы иметь право на возврат средств.", |
|||
"faqQuestion6": "Есть ли скрытые сборы?", |
|||
"faqAnswer6": "Нет, все сборы прозрачны и показываются заранее перед завершением бронирования. Мы гарантируем, что скрытых сборов нет.", |
|||
"faqQuestion7": "Предлагаете ли вы скидки для групп?", |
|||
"faqAnswer7": "Да, мы предлагаем скидки для групповых бронирований. Пожалуйста, свяжитесь с нашей службой поддержки для получения дополнительной информации о групповых тарифах.", |
|||
"faqQuestion8": "Включает ли страховка путешествия в бронирование?", |
|||
"faqAnswer8": "Да, все наши турпакеты включают базовую страховку путешествий. Вы можете выбрать улучшенную страховку во время оформления заказа.", |
|||
"faqQuestion9": "Что происходит, если тур отменен поставщиком?", |
|||
"faqAnswer9": "Если тур отменяется поставщиком по независящим от нас причинам, вы получите полный возврат средств или возможность переноса тура на другую дату.", |
|||
"faqQuestion10": "Как я могу связаться со службой поддержки клиентов?", |
|||
"faqAnswer10": "Вы можете связаться со службой поддержки клиентов, нажав на кнопку 'Связаться с нами' внизу страницы или посетив наш раздел поддержки." |
|||
} |
@ -0,0 +1,222 @@ |
|||
{ |
|||
"home": "Главная", |
|||
"allTours": "Все туры", |
|||
"blogs": "Блоги", |
|||
"faq": "Часто задаваемые вопросы", |
|||
"aboutUs": "О нас", |
|||
"customTour": "Индивидуальный тур", |
|||
"searchPlaceholder": "Куда?", |
|||
"searchDescription": "Любое место • Любая неделя • Добавить гостей", |
|||
"beginAdventure": "Начните ваше", |
|||
"beginAdventure1": "духовное", |
|||
"beginAdventure2": "приключение", |
|||
"planPilgrimage": "Планируйте своё паломничество с легкостью. Найдите лучшие варианты проживания, транспорт и экскурсии по шиитским святыням по всему миру.", |
|||
"startJourney": "Начните своё путешествие", |
|||
"listOfTours": "Список туров", |
|||
"exploreTours": "Исследуйте туры и места проживания, адаптированные для духовного и незабываемого путешествия", |
|||
"tourPeriod": "Период тура", |
|||
"tourPeriodDescription": "Начало - Конец", |
|||
"guests": "Гости", |
|||
"addGuests": "Добавить гостей", |
|||
"available": "Доступно", |
|||
"soldOut": "Распродано", |
|||
"showMore": "Показать больше", |
|||
"happeningCities": "Города, где проходят события", |
|||
"costEffectiveAdvertising": "Рентабельная реклама", |
|||
"costEffectiveDescription": "С бесплатным размещением вы можете рекламировать свою аренду без предоплаты", |
|||
"reachMillions": "Достигайте миллионов с Chisfis", |
|||
"reachMillionsDescription": "Миллионы людей ищут уникальные места для проживания по всему миру", |
|||
"secureAndSimple": "Безопасно и просто", |
|||
"secureDescription": "Размещение на Holiday Lettings предоставляет вам безопасный и простой способ принимать бронирования и платежи онлайн", |
|||
"mobileApps": "Мобильные приложения", |
|||
"mobileAppsDescription": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dapibus porttitor nisl, sit amet finibus libero.", |
|||
"installation": "Установка", |
|||
"releaseNotes": "Примечания к версии", |
|||
"upgradeGuide": "Руководство по обновлению", |
|||
"browserSupport": "Поддержка браузеров", |
|||
"editorSupport": "Поддержка редактора", |
|||
"designFeatures": "Особенности дизайна", |
|||
"prototyping": "Прототипирование", |
|||
"designSystems": "Системы дизайна", |
|||
"pricing": "Ценообразование", |
|||
"security": "Безопасность", |
|||
"bestPractices": "Лучшие практики", |
|||
"support": "Поддержка", |
|||
"developers": "Разработчики", |
|||
"learnDesign": "Изучение дизайна", |
|||
"releases": "Выпуски", |
|||
"discussionForums": "Форумы для обсуждений", |
|||
"codeOfConduct": "Кодекс поведения", |
|||
"communityResources": "Ресурсы сообщества", |
|||
"contributing": "Вклад", |
|||
"concurrentMode": "Режим параллельной работы", |
|||
"goodNews": "Хорошие новости издалека", |
|||
"whatPeopleThink": "Посмотрим, что люди думают о Chisfis", |
|||
"testimonial": "Это место точно такое же, как на фотографии, опубликованной на Chisfis. Отличное обслуживание, мы отлично провели время!", |
|||
"clientName": "Тиана Аби", |
|||
"clientLocation": "Малайзия", |
|||
"myTrips": "Мои поездки", |
|||
"account": "Аккаунт", |
|||
"menu": "Меню", |
|||
"gettingStarted": "Начало работы", |
|||
"explore": "Изучить", |
|||
"resources": "Ресурсы", |
|||
"community": "Сообщество", |
|||
"placeType": "Тип места", |
|||
"noTours": "Нет доступных туров", |
|||
"itinerary": "Маршрут", |
|||
"itineraryTitle": "Маршрут", |
|||
"total": "Итого", |
|||
"reserve": "Забронировать", |
|||
"tourFeatures": "Особенности тура", |
|||
"tourFeaturesTitle": "Особенности тура", |
|||
"startRating": "Оценка начала", |
|||
"listingDetails": "Детали", |
|||
"imageAlt": "Изображение тура", |
|||
"loading": "Загрузка...", |
|||
"adults": "Взрослые", |
|||
"adultsDesc": "Возраст 13 лет и старше", |
|||
"children": "Дети", |
|||
"childrenDesc": "Возраст 2–12 лет", |
|||
"infants": "Младенцы", |
|||
"infantsDesc": "Возраст 0–2 года", |
|||
"traveler": "Путешественник", |
|||
"responses": "Ответы ({{count}})", |
|||
"submit": "Отправить", |
|||
"cancel": "Отменить", |
|||
"relatedPosts": "Похожие записи", |
|||
"aboutUsHeading": "👋 О нас", |
|||
"aboutUsSubheading": "Мы страстная команда, стремящаяся создавать незабываемые путешествия для исследователей и мечтателей. От спокойных побегов на тропических пляжах до захватывающих приключений в экзотических местах — мы составляем путешествия, которые так же уникальны, как и вы. Присоединяйтесь к нам и давайте исследовать мир, одно приключение за раз!", |
|||
"statisticTitle": "🚀 Быстрые факты", |
|||
"statisticDescription": "Мы беспристрастны и независимы, и каждый день создаем уникальные, мировые программы и контент.", |
|||
"statisticHeading1": "10 миллионов", |
|||
"statisticSubHeading1": "Статьи были опубликованы по всему миру (на 30 сентября 2021 года)", |
|||
"statisticHeading2": "100,000", |
|||
"statisticSubHeading2": "Зарегистрированных пользователей (на 30 сентября 2021 года)", |
|||
"statisticHeading3": "220+", |
|||
"statisticSubHeading3": "Страны и регионы, где мы представлены (на 30 сентября 2021 года)", |
|||
"customTrip": "Индивидуальный тур", |
|||
"guide": "Гид", |
|||
"guideDescription": "Сначала напишите место вашего отправления, затем выберите первую точку назначения вашей поездки, количество ночей проживания и средство передвижения, затем выберите ваши дальнейшие точки назначения, если хотите.", |
|||
"beginYourTrip": "Начните ваше путешествие", |
|||
"startDate": "Дата начала", |
|||
"numberOfPassengers": "Количество пассажиров", |
|||
"destination": "Пункт назначения", |
|||
"selectCity": "Выберите город", |
|||
"transportation": "Транспорт", |
|||
"selectTransport": "Выберите транспорт", |
|||
"hotel": "Отель", |
|||
"selectHotel": "Выберите отель", |
|||
"duration": "Продолжительность", |
|||
"finishDate": "Дата окончания", |
|||
"addDestination": "Добавить пункт назначения", |
|||
"continue": "Продолжить", |
|||
"successMessage": "Успешно зарегистрировано", |
|||
"to": "к", |
|||
"login": "Войти", |
|||
"signup": "Зарегистрироваться", |
|||
"All": "Все", |
|||
"create": "Создать", |
|||
"createPersonalizedTourLine1": "Создайте свой персонализированный тур и разработайте", |
|||
"createPersonalizedTourLine2": "идеальный опыт путешествия, соответствующий вашим предпочтениям.", |
|||
"imageAltCustomTourBackground": "Фон индивидуального тура", |
|||
"howItWorks": { |
|||
"title": "Как это работает", |
|||
"desc": "Оставайтесь спокойными и продолжайте путешествовать", |
|||
"vectorAlt": "Декоративная векторная картинка, иллюстрирующая, как это работает", |
|||
"bookAndRelax": { |
|||
"title": "Забронируйте и расслабьтесь", |
|||
"desc": "Позвольте каждому путешествию быть вдохновляющим, каждой комнате — мирным пространством" |
|||
}, |
|||
"smartChecklist": { |
|||
"title": "Умный список", |
|||
"desc": "Позвольте каждому путешествию быть вдохновляющим, каждой комнате — мирным пространством" |
|||
}, |
|||
"saveMore": { |
|||
"title": "Сэкономьте больше", |
|||
"desc": "Позвольте каждому путешествию быть вдохновляющим, каждой комнате — мирным пространством" |
|||
}, |
|||
"item1": { |
|||
"imageAlt": "Иллюстрация функции Забронируйте и расслабьтесь", |
|||
"imageAltDark": "Иллюстрация функции Забронируйте и расслабьтесь в темном режиме" |
|||
}, |
|||
"item2": { |
|||
"imageAlt": "Иллюстрация функции Умный список", |
|||
"imageAltDark": "Иллюстрация функции Умный список в темном режиме" |
|||
}, |
|||
"item3": { |
|||
"imageAlt": "Иллюстрация функции Сэкономьте больше", |
|||
"imageAltDark": "Иллюстрация функции Сэкономьте больше в темном режиме" |
|||
} |
|||
}, |
|||
"imageAltMapBackground": "Фон карты", |
|||
"imageAltAppRightImg": "Правая картинка приложения", |
|||
"buttonDownloadOnAppStore": "Скачать в App Store", |
|||
"buttonGetItOnGooglePlay": "Получить в Google Play", |
|||
"tourSuggestion": { |
|||
"heading": "Страны", |
|||
"subHeading": "Популярные места, которые мы рекомендуем для вас", |
|||
"vectorAlt": "Декоративная векторная картинка, иллюстрирующая предложения по турам", |
|||
"categories": { |
|||
"Nature House": "Дом в природе", |
|||
"Wooden house": "Деревянный дом", |
|||
"Houseboat": "Дом на воде", |
|||
"Farm House": "Фермерский дом", |
|||
"Dome House": "Купольный дом", |
|||
"Wooden Dome": "Деревянный купол" |
|||
} |
|||
}, |
|||
"tourSuggestion.heading": "Страны", |
|||
"tourSuggestion.subHeading": "Популярные места, которые мы рекомендуем для вас", |
|||
"cardCategory3.imageAltPlaces": "Места", |
|||
"cardCategory3.tours": "Туры", |
|||
"sectionClientSay": { |
|||
"heading": "Что говорят наши клиенты о нас?", |
|||
"imageAltMain": "Основное изображение отзывов клиентов", |
|||
"imageAltClient1": "Клиент 1", |
|||
"imageAltClient2": "Клиент 2", |
|||
"imageAltClient3": "Клиент 3", |
|||
"imageAltClient4": "Клиент 4", |
|||
"imageAltClient5": "Клиент 5", |
|||
"imageAltClient6": "Клиент 6", |
|||
"imageAltQuotation1": "Левая кавычка", |
|||
"imageAltQuotation2": "Правая кавычка", |
|||
"testimonials": { |
|||
"0": { |
|||
"content": "Путешествие с Aqila было духовно обогащающе. Знание гидов и дружелюбный персонал сделали каждое мгновение незабываемым.", |
|||
"clientName": "Тиана Аби", |
|||
"clientAddress": "Малайзия" |
|||
}, |
|||
"1": { |
|||
"content": "Все было идеально организовано, от проживания до посещений святых мест. Я чувствовал заботу на протяжении всей поездки.", |
|||
"clientName": "Ленни Суффан", |
|||
"clientAddress": "Лондон" |
|||
}, |
|||
"2": { |
|||
"content": "Присоединившись к этому туру, я смог глубже понять себя и моё наследие. Рекомендую Aqila для значимого путешествия!", |
|||
"clientName": "Берта Эмили", |
|||
"clientAddress": "Токио" |
|||
} |
|||
} |
|||
}, |
|||
"sectionGridFilterCard": { |
|||
"allTours": "Все туры", |
|||
"noToursAvailable": "Нет доступных туров", |
|||
"toursInfo": "{{count}} ночей · {{dateRange}} · {{guests}} Гостей" |
|||
}, |
|||
"accountHeading": "Информация об аккаунте", |
|||
"nameLabel": "Имя", |
|||
"emailLabel": "Электронная почта", |
|||
"phoneLabel": "Телефон", |
|||
"changeImage": "Изменить изображение", |
|||
"updateButton": "Обновить информацию", |
|||
"signOutButton": "Выйти", |
|||
"deleteButton": "Удалить аккаунт", |
|||
"deleteSuccess": "Ваш аккаунт был успешно удален.", |
|||
"signOutSuccess": "Вы успешно вышли из аккаунта.", |
|||
"updateSuccess": "Ваша информация была успешно обновлена.", |
|||
"noChanges": "Изменения не обнаружены.", |
|||
"errorGeneric": "Произошла ошибка. Пожалуйста, попробуйте снова.", |
|||
"errorUnknown": "Произошла неизвестная ошибка.", |
|||
"benefits": "ПРЕИМУЩЕСТВА" |
|||
} |
@ -0,0 +1,23 @@ |
|||
{ |
|||
"widgetMenus": { |
|||
"Quick Links": { |
|||
"title": "Быстрые ссылки", |
|||
"menus": [ |
|||
{ "label": "Все туры" }, |
|||
{ "label": "Блоги" }, |
|||
{ "label": "FAQ" }, |
|||
{ "label": "О нас" } |
|||
] |
|||
} |
|||
}, |
|||
"aboutUs": { |
|||
"title": "О нас", |
|||
"description": "Мы — команда, увлеченная созданием незабываемых путешествий для исследователей и мечтателей. От спокойного отдыха на тропических пляжах до приключений, полных адреналина, в экзотических местах — мы разрабатываем уникальные путешествия, такие же уникальные, как и вы. Присоединяйтесь к нам, и давайте открывать мир, одно приключение за раз!" |
|||
}, |
|||
"footerNav": { |
|||
"description": "Мы — команда, увлеченная созданием незабываемых путешествий для исследователей и мечтателей." |
|||
}, |
|||
"socials": { |
|||
"title": "Следите за нами" |
|||
} |
|||
} |
@ -0,0 +1,91 @@ |
|||
{ |
|||
"selectTour": "Выберите ваш тур", |
|||
"tourPeriod": "Период тура", |
|||
"startEndDate": "Начало - Конец", |
|||
"guests": "Гости", |
|||
"addGuests": "Добавить гостей", |
|||
"adults": "Взрослые", |
|||
"adultsDesc": "Возраст 13 лет и старше", |
|||
"children": "Дети", |
|||
"childrenDesc": "Возраст 2–12 лет", |
|||
"infants": "Младенцы", |
|||
"infantsDesc": "Возраст 0–2 года", |
|||
"clear": "Очистить", |
|||
"submit": "Отправить", |
|||
"login": "Войти", |
|||
"phoneNumber": "Номер телефона", |
|||
"enterPhoneNumber": "Введите ваш номер телефона", |
|||
"password": "Пароль", |
|||
"forgotPassword": "Забыли пароль?", |
|||
"enterPassword": "Введите ваш пароль", |
|||
"continue": "Продолжить", |
|||
"createAccount": "Создать аккаунт", |
|||
"invalidPhoneNumber": "Неверный номер телефона.", |
|||
"invalidPhoneNumberFormat": "Неверный формат номера телефона.", |
|||
"passwordRequired": "Пароль обязателен.", |
|||
"loginSuccessful": "Вход выполнен успешно!", |
|||
"loginFailed": "Не удалось войти, проверьте свои данные.", |
|||
"unknownError": "Произошла неизвестная ошибка.", |
|||
"hidePassword": "Скрыть пароль", |
|||
"showPassword": "Показать пароль", |
|||
"signup": "Зарегистрироваться", |
|||
"changePassword": "Изменить пароль", |
|||
"fullName": "Полное имя", |
|||
"enterFullName": "Введите ваше полное имя", |
|||
"confirmPassword": "Подтвердите пароль", |
|||
"enterConfirmPassword": "Введите пароль повторно", |
|||
"alreadyHaveAccount": "Уже есть аккаунт?", |
|||
"signIn": "Войти", |
|||
"errorOccurred": "Произошла ошибка.", |
|||
"hideConfirmPassword": "Скрыть подтверждение пароля", |
|||
"showConfirmPassword": "Показать подтверждение пароля", |
|||
"verificationMethod": "Метод подтверждения", |
|||
"sendViaWhatsApp": "Отправить через WhatsApp", |
|||
"sendViaSMS": "Отправить через SMS", |
|||
"verificationCode": "Код подтверждения", |
|||
"enterOtpDescription": "Введите 5-значный код, который мы отправили для завершения регистрации", |
|||
"haventGotCode": "Еще не получили код подтверждения?", |
|||
"resend": "Отправить снова", |
|||
"seconds": "Секунды", |
|||
"confirm": "Подтвердить", |
|||
"signInSuccessful": "Вы успешно вошли в систему", |
|||
"somethingWentWrong": "Что-то пошло не так. Пожалуйста, попробуйте снова.", |
|||
"otpInput": "Ввод OTP {{index}}", |
|||
"otpNotComplete": "Код подтверждения недействителен", |
|||
"addNewPassenger": "Добавить нового пассажира", |
|||
"passengerInfo": "Информация о пассажире", |
|||
"passportNo": "Номер паспорта", |
|||
"fullNameRequired": "Полное имя обязательно.", |
|||
"passportRequired": "Номер паспорта обязателен.", |
|||
"passportNumeric": "Номер паспорта должен быть числовым.", |
|||
"dobRequired": "Дата рождения обязательна.", |
|||
"phoneRequired": "Номер телефона обязателен.", |
|||
"phoneNumeric": "Номер телефона должен быть числовым.", |
|||
"passportImageRequired": "Изображение паспорта обязательно.", |
|||
"editPassengerInfo": "Редактировать информацию о пассажире", |
|||
"backToBills": "Вернуться к счетам", |
|||
"noBillsAvailable": "Нет доступных счетов", |
|||
"awaitingPayment": "Ожидание оплаты", |
|||
"approved": "Одобрено", |
|||
"rejected": "Отклонено", |
|||
"pending": "В ожидании", |
|||
"issuedDate": "Дата выдачи", |
|||
"expirationDate": "Дата истечения", |
|||
"tourInvoiceAmount": "Сумма счета за тур", |
|||
"viewBill": "Просмотреть счет", |
|||
"transactionReceiptUpdated": "Квитанция о транзакции успешно обновлена", |
|||
"updateFailed": "Не удалось обновить квитанцию", |
|||
"billDetails": "Детали счета", |
|||
"whyRejected": "Почему отклонено?", |
|||
"numberOfPassengers": "Количество пассажиров", |
|||
"adult": "Взрослый", |
|||
"infant": "Младенец", |
|||
"tourPrice": "Стоимость тура", |
|||
"accountNumber": "Номер счета", |
|||
"uploadPassportImage": "Загрузить изображение паспорта", |
|||
"noFileSelected": "Файл не выбран", |
|||
"uploadedImage": "Загруженное изображение", |
|||
"delete": "Удалить", |
|||
"currentReceipt": "Текущая квитанция", |
|||
"copy": "Копировать" |
|||
} |
@ -0,0 +1,15 @@ |
|||
{ |
|||
"text-home": "Главная", |
|||
"text-all-tours": "Все туры", |
|||
"text-blog": "Блог", |
|||
"text-faq": "Часто задаваемые вопросы", |
|||
"text-about": "О нас", |
|||
"text-language": "Язык", |
|||
"text-no-match": "Результатов не найдено", |
|||
"search-placeholder": "Введите для поиска...", |
|||
"customTrip": "Индивидуальный тур", |
|||
"navAccount": "Аккаунт", |
|||
"navMyTrips": "Мои поездки", |
|||
"navPassengersList": "Список пассажиров", |
|||
"navBills": "Счета" |
|||
} |
@ -1,66 +1,269 @@ |
|||
"use client" |
|||
"use client"; |
|||
|
|||
import React, { useEffect, useState } from "react"; |
|||
import PassengerTable from "./PassengerTable"; |
|||
import { IoPersonAddOutline } from "react-icons/io5"; |
|||
import { FC } from "react"; |
|||
import ButtonPrimary from "@/shared/ButtonPrimary"; |
|||
import Input from "@/shared/Input"; |
|||
import FormItem from "@/app/[locale]/add-listing/FormItem"; |
|||
import getImageURL from "@/components/api/getImageURL"; |
|||
import axiosInstance from "@/components/api/axios"; |
|||
import Link from "next/link"; |
|||
import { useUserContext } from "@/components/contexts/userContext"; |
|||
import { useRouter } from "next/navigation"; |
|||
import { useUserContext } from "@/components/contexts/userContext"; |
|||
import { toast } from "react-toastify"; |
|||
import { useTranslation } from "react-i18next"; |
|||
|
|||
export interface CommonLayoutProps { |
|||
params: { |
|||
id: string; |
|||
}; |
|||
} |
|||
|
|||
interface data { |
|||
birthdate: string; |
|||
fullname: string; |
|||
id: number; |
|||
passport_image: string; |
|||
phone_number: string; |
|||
passport_number: string; |
|||
const EditPassenger: FC<CommonLayoutProps> = ({ params }) => { |
|||
const { user } = useUserContext(); |
|||
const router = useRouter(); |
|||
const { t } = useTranslation("form"); |
|||
|
|||
} |
|||
const [passenger, setPassenger] = useState({ |
|||
name: "", |
|||
passport: "", |
|||
number: "", |
|||
date: "", |
|||
image: "", |
|||
}); |
|||
|
|||
const [originalPassenger, setOriginalPassenger] = useState({ |
|||
name: "", |
|||
passport: "", |
|||
number: "", |
|||
date: "", |
|||
image: "", |
|||
}); |
|||
|
|||
const [loading, setLoading] = useState(false); |
|||
|
|||
// Fetch passenger data on component mount
|
|||
useEffect(() => { |
|||
if (Object.keys(user).length) { |
|||
axiosInstance |
|||
.get(`/api/account/passengers/${params.id}/`, { |
|||
headers: { |
|||
Authorization: `token ${user.token}`, |
|||
}, |
|||
}) |
|||
.then((response) => { |
|||
const passengerData = { |
|||
name: response.data.fullname, |
|||
passport: response.data.passport_number, |
|||
date: response.data.birthdate, |
|||
number: response.data.phone_number.replace(/\D/g, ""), |
|||
image: response.data.passport_image, |
|||
}; |
|||
setPassenger(passengerData); |
|||
setOriginalPassenger(passengerData); // Save original data for comparison
|
|||
}) |
|||
.catch((error) => { |
|||
toast.error(error.message || t("errorOccurred")); |
|||
}); |
|||
} |
|||
}, [user, params.id]); |
|||
|
|||
// Handle file change for uploading passport image
|
|||
const handleFileChange = async (e: React.ChangeEvent<HTMLInputElement>) => { |
|||
setLoading(true); |
|||
const file = e.target.files?.[0]; |
|||
if (file) { |
|||
try { |
|||
const image = await getImageURL(file); |
|||
setPassenger((prev) => ({ ...prev, image: image.url })); |
|||
toast.success(t("imageUploaded")); |
|||
} catch (error) { |
|||
toast.error(t("imageUploadError")); |
|||
} finally { |
|||
setLoading(false); |
|||
} |
|||
} |
|||
}; |
|||
|
|||
// Validate form inputs before saving
|
|||
const validateForm = () => { |
|||
let formIsValid = true; |
|||
|
|||
if (!passenger.name) { |
|||
formIsValid = false; |
|||
toast.error(t("fullNameRequired")); |
|||
} |
|||
|
|||
if (!passenger.passport) { |
|||
formIsValid = false; |
|||
toast.error(t("passportRequired")); |
|||
} else if (!/^\d+$/.test(passenger.passport)) { |
|||
formIsValid = false; |
|||
toast.error(t("passportNumeric")); |
|||
} |
|||
|
|||
if (!passenger.date) { |
|||
formIsValid = false; |
|||
toast.error(t("dobRequired")); |
|||
} |
|||
|
|||
if (!passenger.number) { |
|||
formIsValid = false; |
|||
toast.error(t("phoneRequired")); |
|||
} else if (!/^\d+$/.test(passenger.number)) { |
|||
formIsValid = false; |
|||
toast.error(t("phoneNumeric")); |
|||
} |
|||
|
|||
if (!passenger.image) { |
|||
formIsValid = false; |
|||
toast.error(t("passportImageRequired")); |
|||
} |
|||
|
|||
return formIsValid; |
|||
}; |
|||
|
|||
// Save updated passenger details
|
|||
const handleSavePassenger = async () => { |
|||
if (!validateForm()) return; |
|||
|
|||
const updatedFields: Partial<{ |
|||
fullname: string; |
|||
passport_number: string; |
|||
birthdate: string; |
|||
phone_number: string; |
|||
passport_image: string; |
|||
}> = {}; |
|||
|
|||
// Only include changed fields
|
|||
if (passenger.name !== originalPassenger.name) { |
|||
updatedFields.fullname = passenger.name; |
|||
} |
|||
if (passenger.passport !== originalPassenger.passport) { |
|||
updatedFields.passport_number = passenger.passport; |
|||
} |
|||
if (passenger.date !== originalPassenger.date) { |
|||
updatedFields.birthdate = passenger.date; |
|||
} |
|||
if (passenger.number !== originalPassenger.number) { |
|||
updatedFields.phone_number = passenger.number; |
|||
} |
|||
if (passenger.image !== originalPassenger.image) { |
|||
updatedFields.passport_image = passenger.image; |
|||
} |
|||
|
|||
const PassengersList = () => { |
|||
const [passengers , setPassenger ] = useState([]) |
|||
const {user} = useUserContext() |
|||
const router = useRouter() |
|||
|
|||
useEffect(() => { |
|||
if (!Object.keys(user).length) { |
|||
router.replace("/signup"); |
|||
} |
|||
}, [user, router]); |
|||
|
|||
useEffect(()=>{ |
|||
axiosInstance.get("/api/account/passengers/" ,{ |
|||
headers :{ |
|||
Authorization : `token ${user.token}` |
|||
if (Object.keys(updatedFields).length === 0) { |
|||
toast.info(t("noChanges")); |
|||
return; |
|||
} |
|||
}) |
|||
.then((response)=>{ |
|||
setPassenger(response.data.results); |
|||
|
|||
}).catch((error)=>{ |
|||
console.error(error); |
|||
|
|||
}) |
|||
} , []) |
|||
try { |
|||
const response = await axiosInstance.patch( |
|||
`/api/account/passengers/${params.id}/`, |
|||
updatedFields, |
|||
{ |
|||
headers: { |
|||
Authorization: `token ${user.token}`, |
|||
"Content-Type": "application/json", |
|||
}, |
|||
} |
|||
); |
|||
|
|||
if (response.status === 200) { |
|||
toast.success(t("detailsUpdated")); |
|||
router.push("/passengers-list"); |
|||
} |
|||
} catch (error) { |
|||
toast.error(t("updateFailed")); |
|||
} |
|||
}; |
|||
|
|||
return ( |
|||
<div className="flex flex-col items-start space-y-6 sm:space-y-8"> |
|||
{/* Add New Passenger Section */} |
|||
<Link href={"/add-new-passenger"} className="flex items-center space-x-2 text-orange-500 cursor-pointer hover:text-orange-600"> |
|||
<IoPersonAddOutline className="text-xl" /> {/* Adjust icon size */} |
|||
<p className="text-sm font-medium">Add new passenger</p> |
|||
</Link> |
|||
|
|||
{/* Passenger Table */} |
|||
{passengers.map((item : data)=>( |
|||
|
|||
<PassengerTable key={item.id} data={item} /> |
|||
))} |
|||
<div className="nc-PageAddListing1 px-4 max-w-3xl mx-auto pb-24 pt-14 sm:py-24 lg:pb-32"> |
|||
<div className="space-y-11"> |
|||
<form> |
|||
<div className="listingSection__wrap"> |
|||
<h2 className="text-2xl font-semibold">{t("editPassengerInfo")}</h2> |
|||
<div className="w-14 border-b border-neutral-200 dark:border-neutral-700"></div> |
|||
<div className="space-y-8"> |
|||
<FormItem label={t("fullName")} desc=""> |
|||
<Input |
|||
required |
|||
value={passenger.name} |
|||
onChange={(e) => |
|||
setPassenger((prev) => ({ ...prev, name: e.target.value })) |
|||
} |
|||
placeholder={t("enterFullName")} |
|||
/> |
|||
</FormItem> |
|||
|
|||
<FormItem label={t("passportNumber")} desc=""> |
|||
<Input |
|||
required |
|||
value={passenger.passport} |
|||
onChange={(e) => |
|||
setPassenger((prev) => ({ |
|||
...prev, |
|||
passport: e.target.value, |
|||
})) |
|||
} |
|||
type="text" |
|||
placeholder={t("enterPassportNumber")} |
|||
/> |
|||
</FormItem> |
|||
|
|||
<FormItem label={t("dateOfBirth")} desc=""> |
|||
<Input |
|||
required |
|||
value={passenger.date} |
|||
onChange={(e) => |
|||
setPassenger((prev) => ({ ...prev, date: e.target.value })) |
|||
} |
|||
type="date" |
|||
placeholder={t("dobPlaceholder")} |
|||
/> |
|||
</FormItem> |
|||
|
|||
<FormItem label={t("phoneNumber")} desc=""> |
|||
<Input |
|||
required |
|||
value={passenger.number} |
|||
onChange={(e) => |
|||
setPassenger((prev) => ({ |
|||
...prev, |
|||
number: e.target.value.replace(/\D/g, ""), |
|||
})) |
|||
} |
|||
type="text" |
|||
placeholder={t("enterPhoneNumber")} |
|||
/> |
|||
</FormItem> |
|||
|
|||
<FormItem label={t("passportImage")} desc=""> |
|||
<Input |
|||
required |
|||
onChange={handleFileChange} |
|||
type="file" |
|||
placeholder={t("uploadImage")} |
|||
/> |
|||
{loading && <p>{t("loading")}</p>} |
|||
</FormItem> |
|||
</div> |
|||
</div> |
|||
|
|||
<div className="flex justify-end space-x-5"> |
|||
<ButtonPrimary |
|||
onClick={(e) => { |
|||
e.preventDefault(); |
|||
handleSavePassenger(); |
|||
}} |
|||
> |
|||
{t("saveChanges")} |
|||
</ButtonPrimary> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
</div> |
|||
); |
|||
}; |
|||
|
|||
export default PassengersList; |
|||
export default EditPassenger; |
@ -1,40 +1,49 @@ |
|||
import BackgroundSection from "@/components/BackgroundSection"; |
|||
"use client"; |
|||
|
|||
import React from "react"; |
|||
import BackgroundSection from "@/components/BackgroundSection"; |
|||
import BackgroundImage from "@/images/Frame-412.webp"; |
|||
import Image from "next/image"; |
|||
import ButtonPrimary from "@/shared/ButtonPrimary"; |
|||
import { useTranslation } from "react-i18next"; |
|||
|
|||
const SectionDownloadApp = () => { |
|||
const { t } = useTranslation("common"); |
|||
|
|||
return ( |
|||
<BackgroundSection className="relative h-[455px] lg:py-32 xl:py-40 rounded-lg flex items-center justify-center sm:justify-normal sm:text-left sm:pl-12 lg:pl-56 xl:overflow-hidden bg-gray-900 text-center"> |
|||
<BackgroundSection |
|||
className="relative h-[455px] lg:py-32 xl:py-40 rounded-lg flex items-center justify-center sm:justify-normal sm:text-left sm:pl-12 lg:pl-56 rtl:lg:pr-56 xl:overflow-hidden bg-gray-900 text-center rtl:w-auto " |
|||
data-nc-id="SectionDownloadApp" |
|||
> |
|||
{/* Background Image */} |
|||
<Image |
|||
className="absolute inset-0 object-cover object-right z-0" // Dim the background image for contrast
|
|||
alt="Custom Tour Background" |
|||
alt={t("imageAltCustomTourBackground")} |
|||
src={BackgroundImage} |
|||
fill |
|||
quality={100} |
|||
|
|||
/> |
|||
|
|||
{/* Content Wrapper */} |
|||
<div className="relative z-10 "> |
|||
<div className="relative z-10 rtl:text-right"> |
|||
<h1 className="text-white text-4xl md:text-5xl lg:text-6xl font-bold leading-tight"> |
|||
Create |
|||
{t("create")} |
|||
</h1> |
|||
<h1 className="text-white text-4xl md:text-5xl lg:text-6xl font-bold leading-tight"> |
|||
Custom Tour |
|||
{t("customTour")} |
|||
</h1> |
|||
<p className="text-white text-lg mt-4 opacity-80"> |
|||
Create your personalized tour and design the |
|||
{t("createPersonalizedTourLine1")} |
|||
</p> |
|||
<p className="text-white text-lg mt-4 opacity-80"> |
|||
perfect travel experience tailored to your preferences. |
|||
{t("createPersonalizedTourLine2")} |
|||
</p> |
|||
<ButtonPrimary href="custom-trip" className="mt-8 px-8 py-3 text-lg">Custom Tour</ButtonPrimary> |
|||
<ButtonPrimary href="/custom-trip" className="mt-8 px-8 py-3 text-lg"> |
|||
{t("customTour")} |
|||
</ButtonPrimary> |
|||
</div> |
|||
</BackgroundSection> |
|||
); |
|||
}; |
|||
|
|||
export default SectionDownloadApp; |
|||
export default SectionDownloadApp; |
@ -1,12 +1,18 @@ |
|||
import type { Route as NextRoute } from "next"; |
|||
import { ComponentType } from "react"; |
|||
|
|||
// Get ready to update to nextjs version 13.2 with X typedRoutes
|
|||
export type Route<T = string> = NextRoute; |
|||
export type PathName = Route; |
|||
// Define a union of allowed route strings for static typing
|
|||
export type Route = { |
|||
path: "/account" | "/my-trips" | "/passengers-list" | "/bills" | string; // Enumerate common routes, allow dynamic
|
|||
label: string; // Human-readable label for navigation or display purposes
|
|||
}; |
|||
|
|||
// Alias PathName to Route for clarity
|
|||
export type PathName = Route["path"]; |
|||
|
|||
// Interface for pages with optional exact matching and associated component
|
|||
export interface Page { |
|||
path: PathName; |
|||
exact?: boolean; |
|||
component: ComponentType<Object>; |
|||
path: PathName; // Typed path
|
|||
exact?: boolean; // Indicates if the route requires an exact match
|
|||
label: string; // Label for the route (e.g., for UI)
|
|||
component: ComponentType<any>; // Replace "any" with specific props type if known
|
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue