فرانتاند: نسخه انگلیسی با مسیر /en/ — مسیریابی دوزبانه، دیکشنری رابط، بومیسازی داده، تغییر زبان در هدر، ویرایش انگلیسی در پنل و پشتیبانی LTR
This commit is contained in:
@@ -0,0 +1,212 @@
|
||||
// دیکشنری دوزبانه رشتههای هاردکد رابط کاربری (بدون محتوای دیتابیس).
|
||||
// کلید فارسی مرجع است؛ متنهای دیتابیس (سئو، پروژهها، مقالهها و...) از localize.ts میآیند.
|
||||
|
||||
export const fa = {
|
||||
// عمومی
|
||||
brandFallback: 'گروه ساختمانی آرامش',
|
||||
loading: 'در حال بارگذاری',
|
||||
errorTitle: 'اتصال به سرور برقرار نشد',
|
||||
errorText: 'محتوای سایت از سرور بارگذاری میشود؛ لطفاً اتصال اینترنت یا وضعیت سرور را بررسی کنید.',
|
||||
retry: 'تلاش دوباره',
|
||||
backToTop: 'بازگشت به بالا',
|
||||
switchLang: 'English',
|
||||
switchLangAria: 'تغییر زبان به انگلیسی',
|
||||
understood: 'متوجه شدم',
|
||||
|
||||
// هدر و ناوبری
|
||||
mainNav: 'ناوبری اصلی',
|
||||
mobileNav: 'ناوبری موبایل',
|
||||
openMenu: 'باز کردن منو',
|
||||
closeMenu: 'بستن منو',
|
||||
callBrand: 'تماس تلفنی با گروه ساختمانی آرامش',
|
||||
|
||||
// فرم تماس — پیامهای اعتبارسنجی و خطا
|
||||
incompleteInfo: 'اطلاعات ناقص است',
|
||||
nameRequired: 'لطفاً نام و نام خانوادگی خود را کامل وارد کنید (حداقل ۳ حرف).',
|
||||
phoneInvalidTitle: 'شماره تلفن نامعتبر است',
|
||||
phoneInvalidText: 'لطفاً یک شماره تماس معتبر وارد کنید تا کارشناسان ما بتوانند با شما ارتباط بگیرند.',
|
||||
submitErrorTitle: 'خطا در ثبت درخواست',
|
||||
formCheck: 'لطفاً اطلاعات فرم را بررسی و دوباره تلاش کنید.',
|
||||
connectionErrorTitle: 'خطا در اتصال به سرور',
|
||||
connectionErrorText: 'ارتباط با سرور برقرار نشد. لطفاً بعداً دوباره تلاش کنید.',
|
||||
|
||||
// خبرنامه
|
||||
emailRequired: 'لطفاً نشانی ایمیل خود را برای عضویت در خبرنامه وارد کنید.',
|
||||
emailInvalidTitle: 'فرمت ایمیل نامعتبر است',
|
||||
emailInvalidText: 'لطفاً ایمیل خود را به درستی وارد کنید (مثال: example@domain.com).',
|
||||
subscribeErrorTitle: 'خطا در عضویت',
|
||||
emailCheck: 'لطفاً ایمیل را بررسی و دوباره تلاش کنید.',
|
||||
|
||||
// تیتر بخشها — فقط جایگزین وقتی دیتابیس خالی است
|
||||
fallbackGalleryTitle: 'گالری تصاویر',
|
||||
fallbackGalleryLead: 'قابهایی از کارگاهها و پروژههای تحویلشده گروه ساختمانی آرامش.',
|
||||
fallbackTeamTitle: 'تیم ما',
|
||||
fallbackTeamLead: 'کسانی که تصمیمهای اصلی هر پروژه را میگیرند و پاسخگوی آن هستند.',
|
||||
fallbackTimelineTitle: 'مسیر ما',
|
||||
fallbackTimelineLead: 'از یک دفتر چهارنفره تا ۴۷ پروژه. خط زمان پروژههای ما را ببینید.',
|
||||
fallbackFaqTitle: 'سوالات متداول',
|
||||
fallbackFaqLead: 'پاسخ کوتاه به پرتکرارترین پرسشهای سرمایهگذاران و خریداران.',
|
||||
|
||||
// کارت پروژه
|
||||
yearLabel: 'سال:',
|
||||
sqm: 'متر مربع',
|
||||
|
||||
// جزئیات پروژه
|
||||
projectNotFound: 'این پروژه پیدا نشد',
|
||||
projectNotFoundText: 'ممکن است نشانی تغییر کرده باشد. فهرست کامل پروژهها را ببینید.',
|
||||
backToProjects: 'بازگشت به پروژهها',
|
||||
specLocation: 'موقعیت',
|
||||
specYear: 'سال',
|
||||
specArea: 'زیربنا',
|
||||
specFloors: 'تعداد طبقات',
|
||||
specUnits: 'واحدها',
|
||||
specClient: 'کارفرما',
|
||||
breadcrumbAria: 'مسیر صفحه',
|
||||
home: 'صفحه اصلی',
|
||||
projects: 'پروژهها',
|
||||
projectDetailsAria: 'جزئیات پروژه',
|
||||
aboutProject: 'درباره پروژه',
|
||||
similarProjectCta: 'پروژهای مشابه دارید؟',
|
||||
relatedProjectsAria: 'پروژههای مرتبط',
|
||||
otherProjects: 'پروژههای دیگر',
|
||||
|
||||
// مقاله و وبلاگ
|
||||
articleNotFound: 'این مقاله پیدا نشد',
|
||||
articleNotFoundText: 'فهرست کامل مقالات وبلاگ را ببینید.',
|
||||
backToBlog: 'بازگشت به وبلاگ',
|
||||
blog: 'وبلاگ',
|
||||
relatedArticlesAria: 'مقالات مرتبط',
|
||||
relatedArticles: 'مقالات مرتبط',
|
||||
readArticlePrefix: 'خواندن مقاله',
|
||||
articleImagePrefix: 'تصویر مقاله',
|
||||
featuredArticle: 'مقاله ویژه',
|
||||
readMore: 'ادامه مطلب',
|
||||
draft: 'پیشنویس',
|
||||
writeNewArticle: 'نوشتن مقاله جدید',
|
||||
blogEmpty: 'هنوز مقالهای منتشر نشده است',
|
||||
blogEmptyText: 'بهزودی نخستین نوشتههای ما اینجا منتشر میشود.',
|
||||
articlesAria: 'مقالات',
|
||||
|
||||
// برچسبهای دسترسپذیری بخشها
|
||||
statsAria: 'آمار و ارقام',
|
||||
projectsListAria: 'فهرست پروژهها',
|
||||
projectFilterAria: 'فیلتر وضعیت پروژه',
|
||||
officesAria: 'دفاتر ما',
|
||||
heroAria: 'معرفی گروه ساختمانی آرامش',
|
||||
heroImageAlt: 'نمای شبانه برج مسکونی ساختهشده توسط گروه ساختمانی آرامش',
|
||||
heroTitleAria: 'تیتر اصلی صفحه',
|
||||
scrollDown: 'رفتن به بخش بعدی',
|
||||
compareAria: 'مقایسه کانسپت و پروژه ساختهشده',
|
||||
zoomImagePrefix: 'بزرگنمایی تصویر شماره',
|
||||
viewImage: 'نمایش تصویر',
|
||||
close: 'بستن',
|
||||
prevImage: 'تصویر قبلی',
|
||||
nextImage: 'تصویر بعدی',
|
||||
prevTestimonial: 'نظر قبلی',
|
||||
nextTestimonial: 'نظر بعدی',
|
||||
selectTestimonialAria: 'انتخاب نظر',
|
||||
testimonialByPrefix: 'نظر',
|
||||
}
|
||||
|
||||
export type Dict = typeof fa
|
||||
|
||||
export const en: Dict = {
|
||||
brandFallback: 'Aramesh Construction Group',
|
||||
loading: 'Loading',
|
||||
errorTitle: 'Could not reach the server',
|
||||
errorText: 'Site content is loaded from the server; please check your internet connection or the server status.',
|
||||
retry: 'Try again',
|
||||
backToTop: 'Back to top',
|
||||
switchLang: 'فا',
|
||||
switchLangAria: 'Switch language to Persian (Farsi)',
|
||||
understood: 'Got it',
|
||||
|
||||
mainNav: 'Main navigation',
|
||||
mobileNav: 'Mobile navigation',
|
||||
openMenu: 'Open menu',
|
||||
closeMenu: 'Close menu',
|
||||
callBrand: 'Call Aramesh Construction Group',
|
||||
|
||||
incompleteInfo: 'Incomplete information',
|
||||
nameRequired: 'Please enter your full name (at least 3 characters).',
|
||||
phoneInvalidTitle: 'Invalid phone number',
|
||||
phoneInvalidText: 'Please enter a valid phone number so our experts can get in touch with you.',
|
||||
submitErrorTitle: 'Error submitting the request',
|
||||
formCheck: 'Please check the form and try again.',
|
||||
connectionErrorTitle: 'Server connection error',
|
||||
connectionErrorText: 'Could not reach the server. Please try again later.',
|
||||
|
||||
emailRequired: 'Please enter your email address to subscribe to the newsletter.',
|
||||
emailInvalidTitle: 'Invalid email format',
|
||||
emailInvalidText: 'Please enter your email correctly (e.g. example@domain.com).',
|
||||
subscribeErrorTitle: 'Subscription error',
|
||||
emailCheck: 'Please check your email and try again.',
|
||||
|
||||
fallbackGalleryTitle: 'Gallery',
|
||||
fallbackGalleryLead: 'Frames from the construction sites and delivered projects of Aramesh Construction Group.',
|
||||
fallbackTeamTitle: 'Our Team',
|
||||
fallbackTeamLead: 'The people who make each project’s key decisions — and answer for them.',
|
||||
fallbackTimelineTitle: 'Our Path',
|
||||
fallbackTimelineLead: 'From a four-person office to 47 projects. Walk through the timeline of our work.',
|
||||
fallbackFaqTitle: 'Frequently Asked Questions',
|
||||
fallbackFaqLead: 'Short answers to the questions investors and buyers ask most.',
|
||||
|
||||
yearLabel: 'Year:',
|
||||
sqm: 'm²',
|
||||
|
||||
projectNotFound: 'Project not found',
|
||||
projectNotFoundText: 'The address may have changed. Browse the full list of projects.',
|
||||
backToProjects: 'Back to projects',
|
||||
specLocation: 'Location',
|
||||
specYear: 'Year',
|
||||
specArea: 'Built area',
|
||||
specFloors: 'Floors',
|
||||
specUnits: 'Units',
|
||||
specClient: 'Client',
|
||||
breadcrumbAria: 'Breadcrumb',
|
||||
home: 'Home',
|
||||
projects: 'Projects',
|
||||
projectDetailsAria: 'Project details',
|
||||
aboutProject: 'About the project',
|
||||
similarProjectCta: 'Have a similar project in mind?',
|
||||
relatedProjectsAria: 'Related projects',
|
||||
otherProjects: 'More projects',
|
||||
|
||||
articleNotFound: 'Article not found',
|
||||
articleNotFoundText: 'Browse the full list of blog articles.',
|
||||
backToBlog: 'Back to blog',
|
||||
blog: 'Blog',
|
||||
relatedArticlesAria: 'Related articles',
|
||||
relatedArticles: 'Related articles',
|
||||
readArticlePrefix: 'Read article',
|
||||
articleImagePrefix: 'Image of article',
|
||||
featuredArticle: 'Featured article',
|
||||
readMore: 'Read more',
|
||||
draft: 'Draft',
|
||||
writeNewArticle: 'Write a new article',
|
||||
blogEmpty: 'No articles published yet',
|
||||
blogEmptyText: 'Our first articles will be published here soon.',
|
||||
articlesAria: 'Articles',
|
||||
|
||||
statsAria: 'Stats and figures',
|
||||
projectsListAria: 'Project list',
|
||||
projectFilterAria: 'Filter projects by status',
|
||||
officesAria: 'Our offices',
|
||||
heroAria: 'Introduction of Aramesh Construction Group',
|
||||
heroImageAlt: 'Night view of a residential tower built by Aramesh Construction Group',
|
||||
heroTitleAria: 'Main headline',
|
||||
scrollDown: 'Go to the next section',
|
||||
compareAria: 'Compare the concept with the built project',
|
||||
zoomImagePrefix: 'Zoom image No.',
|
||||
viewImage: 'View image',
|
||||
close: 'Close',
|
||||
prevImage: 'Previous image',
|
||||
nextImage: 'Next image',
|
||||
prevTestimonial: 'Previous testimonial',
|
||||
nextTestimonial: 'Next testimonial',
|
||||
selectTestimonialAria: 'Select testimonial',
|
||||
testimonialByPrefix: 'Testimonial by',
|
||||
}
|
||||
|
||||
export const dict = { fa, en }
|
||||
export type DictKey = keyof Dict
|
||||
Reference in New Issue
Block a user