بینالمللیسازی
پشتیبانی چندزبانه را به اپتان اضافه کنید. از Proyecta Content API برای بومیسازی محتوای ویراستاری استفاده کنید، یا از هوش مصنوعی بخواهید یک فریمورک i18n را مستقیماً در کد پیادهسازی کند.
Proyecta دو رویکرد مکمل برای بینالمللیسازی اپهایی که میسازید ارائه میدهد:
- بومیسازی محتوا از طریق Proyecta Content API — برای محتوای ویراستاری (پستهای بلاگ، سؤالات متداول، متنهای بازاریابی) که باید به چند زبان ترجمه شود
- i18n در سطح کد با استفاده از یک فریمورک ترجمه — برای رشتههای رابط کاربری، تاریخها، ارزها و تغییر locale در زمان اجرا
هر دو رویکرد هماکنون در دسترس هستند. انتخاب بین آنها بستگی دارد به اینکه چه چیزی را ترجمه میکنید.
خود Proyecta به عنوان builder با ۲۴ locale عرضه میشود، بنابراین این محصول در زمینهی i18n تجربهی بالایی دارد. همین الگوها در اپهایی که داخل آن میسازید نیز به کار میروند.
گزینه ۱: بومیسازی محتوا (Proyecta Content API)
Section titled “گزینه ۱: بومیسازی محتوا (Proyecta Content API)”اگر در حال ساخت یک سایت محتوامحور هستید — بلاگ، پایگاه دانش، صفحات بازاریابی، کاتالوگ محصول — از پشتیبانی داخلی locale در Content API استفاده کنید.
// Create the locales you supportawait proyecta.content.locales.create({ /* code: 'en', name: 'English' */});await proyecta.content.locales.create({ /* code: 'es', name: 'Español' */});await proyecta.content.locales.create({ /* code: 'fr', name: 'Français' */});
// Then create entries that exist in multiple locales — fetch the right// translation per request based on the user's locale.این رویکرد در این موارد مناسب است:
- ویراستارانی که کد نمینویسند باید محتوا را ترجمه کنند
- میخواهید ترجمهها نسخهبندیپذیر باشند
- به انتشار مبتنی بر locale نیاز دارید (انتشار زمانبندیشده به زودی اضافه میشود — در حال حاضر entryها نیاز به انتشار دستی از طریق API دارند)
برای مطالعهی کامل Content API، به مدیریت محتوا مراجعه کنید.
گزینه ۲: فریمورک i18n در سطح کد
Section titled “گزینه ۲: فریمورک i18n در سطح کد”برای رشتههای رابط کاربری — برچسبها، دکمهها، پیامهای خطا، تاریخها، ارزها — از هوش مصنوعی بخواهید یک فریمورک i18n را مستقیماً در پروژهتان پیادهسازی کند:
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.هوش مصنوعی این کارها را انجام خواهد داد:
- انتخاب فریمورک — هوش مصنوعی از
i18nextباreact-i18nextاستفاده میکند (استاندارد Proyecta) - ایجاد فایلهای catalog در
src/locales/(یک JSON به ازای هر زبان) - قراردادن متنها در تابع
t()(از hookuseTranslationدر react-i18next) - افزودن یک کامپوننت language switcher
- پیکربندی 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 شما فایلهای 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 با فریمورک از پیش پیکربندیشده