بینالمللیسازی
پشتیبانی چندزبانه را به اپلیکیشنتان اضافه کنید. از Proyecta Content API برای بومیسازی محتوای تحریریه استفاده کنید، یا از هوش مصنوعی بخواهید یک i18n framework را مستقیماً در کد راهاندازی کند.
Proyecta دو رویکرد مکمل برای بینالمللیسازی اپلیکیشنهایی که میسازید ارائه میدهد:
- بومیسازی محتوا از طریق Proyecta Content API — برای محتوای تحریریه (پستهای وبلاگ، سوالات متداول، متنهای بازاریابی) که باید به چندین زبان ترجمه شوند
- i18n در سطح کد با استفاده از یک translation framework — برای رشتههای رابط کاربری، تاریخها، ارزها و تغییر locale در زمان اجرا
هر دو رویکرد همین الان قابل استفاده هستند. انتخاب بین آنها بستگی دارد به اینکه چه چیزی را ترجمه میکنید.
خود Proyecta به عنوان builder با ۲۴ locale عرضه میشود، بنابراین محصول با i18n آشنا است. همین الگوها در اپلیکیشنهایی که درون آن میسازید نیز اعمال میشوند.
گزینه ۱: بومیسازی محتوا (Proyecta Content API)
Section titled “گزینه ۱: بومیسازی محتوا (Proyecta Content API)”اگر در حال ساخت یک سایت محتوا-محور هستید — وبلاگ، پایگاه دانش، صفحات بازاریابی، کاتالوگ محصولات — از پشتیبانی بومی locale استفاده کنید. به هوش مصنوعی بگویید چه زبانهایی را پشتیبانی میکنید ("Make the site available in English, Spanish and French") و او آنها را برایتان ثبت میکند، با انگلیسی بهعنوان پیشفرض. سپس محتوا را به زبان بازدیدکننده دریافت کنید.
در frontend، هوکهای محتوای typed مربوط به template، فیلدهای بومیسازیشده را برای شما resolve میکنند — locale فعال بازدیدکننده را پاس دهید و هر فیلد localized به صورت یک مقدار ترجمهشده واحد برمیگردد:
import { useCollection, useEntry } from '@/hooks/useContent';import { useTranslation } from 'react-i18next';
function Blog({ slug }: { slug: string }) { const { i18n } = useTranslation();
// List a collection in the current locale const { data: posts } = useCollection('posts', { locale: i18n.language });
// Or read one entry by slug in the current locale const { data: post } = useEntry('posts', slug, { locale: i18n.language });
// ...render posts / post}در پشت صحنه، CMS یک زنجیره fallback را طی میکند — locale درخواستشده ← fallback های پیکربندیشده آن ← locale پیشفرض — و کدی که واقعاً برای هر entry سرو شده را به عنوان localeResolved گزارش میدهد. در سایتهای تکزبانه، locale را حذف کنید تا فیلدها به صورت مقادیر خام برگردند.
این رویکرد مناسب است وقتی:
- ویراستارانی که کد نمینویسند نیاز دارند محتوا را ترجمه کنند
- میخواهید ترجمهها قابل نسخهبندی باشند
- به انتشار مختص locale نیاز دارید (انتشار زمانبندیشده به زودی میآید — در حال حاضر entry ها نیاز به انتشار دستی از طریق API دارند)
برای دسترسی به Content API کامل، به مدیریت محتوا مراجعه کنید.
گزینه ۲: i18n framework در سطح کد
Section titled “گزینه ۲: i18n framework در سطح کد”برای رشتههای رابط کاربری — برچسبها، دکمهها، پیامهای خطا، تاریخها، ارزها — از هوش مصنوعی بخواهید یک i18n framework را مستقیماً در پروژهتان راهاندازی کند:
Add internationalization to my app.Support English, Spanish, French, and Arabic.Add message catalogs in src/locales/.Add a language switcher in the header.Use locale-prefixed URLs like /en/about and /es/about.Make sure RTL layout works correctly for Arabic.هوش مصنوعی موارد زیر را انجام میدهد:
- انتخاب framework — هوش مصنوعی از
i18nextباreact-i18next(استاندارد Proyecta) استفاده میکند - ایجاد فایلهای catalog در
src/locales/(یک JSON برای هر زبان) - قرار دادن متنها درون فراخوانیهای
t()(از هوکuseTranslationدر react-i18next) - افزودن کامپوننت تغییر زبان
- راهاندازی URL routing با پیشوندهای locale
- مدیریت چیدمان RTL (
dir="rtl") برای عربی، عبری و غیره - قالببندی اعداد، تاریخها و ارزها بر اساس locale
ترجمه خودکار با هوش مصنوعی
Section titled “ترجمه خودکار با هوش مصنوعی”وقتی زبان پایهتان آماده شد، هوش مصنوعی در تولید فایلهای catalog برای زبانهای دیگر بسیار مفید است:
"Translate every string in src/locales/en.json into Spanish, French, German, and Japanese. Use natural, idiomatic phrasing — don't translate brand names.""My app is fully built in English. Add Spanish translations for everything and an es/ route prefix."
برای محتوای حساس (متون حقوقی، پزشکی، مالی)، قبل از انتشار، خروجی هوش مصنوعی را توسط یک مترجم انسانی بررسی کنید.
ترکیب هر دو رویکرد
Section titled “ترکیب هر دو رویکرد”اکثر اپلیکیشنهای واقعی از هر دو استفاده میکنند: i18n در سطح کد برای المانهای رابط کاربری (دکمهها، خطاها، ناوبری)، و Content API برای محتوای تحریریه (مقالات، توضیحات محصولات). این دو بهخوبی در کنار هم قرار میگیرند — i18n framework شما فایلهای catalog را در زمان build مدیریت میکند، و Content API entry های بومیسازیشده را در زمان اجرا سرو میکند.
بهترین روشها
Section titled “بهترین روشها”- ابتدا زبان پایهتان را انتخاب کنید و متنها را نهایی کنید. ترجمه کردن یک هدف در حال تغییر دردناک است.
- ترجمهها را دستهبندی کنید. هنگام پیشرفت کار ترجمه نکنید — منتظر بمانید تا یک ویژگی پایدار شود.
- RTL را زود تست کنید اگر از عربی یا عبری پشتیبانی میکنید. باگهای RTL تا زمانی که واقعاً نگاه نکنید پنهان میمانند.
langوdirرا روی<html>قرار دهید. مرورگرها و screen reader ها به آن وابستهاند.- برای قالببندی از
Intlاستفاده کنید. قالببندی تاریخ یا ارز را دستی ننویسید — ازIntl.DateTimeFormatوIntl.NumberFormatاستفاده کنید.
به زودی
Section titled “به زودی”- رابط کاربری مدیریت locale درون builder — locale ها را انتخاب کنید، پوشش ترجمه را ببینید، catalog ها را بدون خروج از Proyecta ویرایش کنید
- ترجمه خودکار هنگام ذخیره برای رشتههای جدید
- قالبهای پروژه آماده i18n با framework از پیش راهاندازیشده