رفتن به محتوا

بین‌المللی‌سازی

پشتیبانی چندزبانه را به اپ‌تان اضافه کنید. از Proyecta Content API برای بومی‌سازی محتوای ویراستاری استفاده کنید، یا از هوش مصنوعی بخواهید یک فریم‌ورک i18n را مستقیماً در کد پیاده‌سازی کند.

Proyecta دو رویکرد مکمل برای بین‌المللی‌سازی اپ‌هایی که می‌سازید ارائه می‌دهد:

  1. بومی‌سازی محتوا از طریق Proyecta Content API — برای محتوای ویراستاری (پست‌های بلاگ، سؤالات متداول، متن‌های بازاریابی) که باید به چند زبان ترجمه شود
  2. i18n در سطح کد با استفاده از یک فریم‌ورک ترجمه — برای رشته‌های رابط کاربری، تاریخ‌ها، ارزها و تغییر locale در زمان اجرا

هر دو رویکرد هم‌اکنون در دسترس هستند. انتخاب بین آن‌ها بستگی دارد به اینکه چه چیزی را ترجمه می‌کنید.

خود Proyecta به عنوان builder با ۲۴ locale عرضه می‌شود، بنابراین این محصول در زمینه‌ی i18n تجربه‌ی بالایی دارد. همین الگوها در اپ‌هایی که داخل آن می‌سازید نیز به کار می‌روند.

گزینه ۱: بومی‌سازی محتوا (Proyecta Content API)

Section titled “گزینه ۱: بومی‌سازی محتوا (Proyecta Content API)”

اگر در حال ساخت یک سایت محتوامحور هستید — بلاگ، پایگاه دانش، صفحات بازاریابی، کاتالوگ محصول — از پشتیبانی داخلی locale در Content API استفاده کنید.

// Create the locales you support
await 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.

هوش مصنوعی این کارها را انجام خواهد داد:

  1. انتخاب فریم‌ورک — هوش مصنوعی از i18next با react-i18next استفاده می‌کند (استاندارد Proyecta)
  2. ایجاد فایل‌های catalog در src/locales/ (یک JSON به ازای هر زبان)
  3. قراردادن متن‌ها در تابع t() (از hook useTranslation در react-i18next)
  4. افزودن یک کامپوننت language switcher
  5. پیکربندی URL routing با پیشوندهای locale
  6. مدیریت چیدمان RTL (با dir="rtl") برای عربی، عبری و غیره
  7. قالب‌بندی اعداد، تاریخ‌ها و ارزها بر اساس 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."

برای محتوای حساس (متون حقوقی، پزشکی، مالی)، پیش از انتشار حتماً خروجی هوش مصنوعی را توسط یک مترجم انسانی بررسی کنید.

بیشتر اپ‌های واقعی از هر دو رویکرد استفاده می‌کنند: i18n در سطح کد برای عناصر رابط کاربری (دکمه‌ها، پیام‌های خطا، ناوبری)، و Content API برای محتوای ویراستاری (مقالات، توضیحات محصول). این دو به خوبی در کنار هم کار می‌کنند — فریم‌ورک i18n شما فایل‌های catalog را در زمان build مدیریت می‌کند، و Content API در زمان اجرا entryهای بومی‌سازی‌شده را سرو می‌کند.

  1. ابتدا زبان پایه را انتخاب و متن نهایی را تثبیت کنید. ترجمه کردن یک هدف متحرک دردسرساز است.
  2. ترجمه‌ها را دسته‌ای انجام دهید. در حین توسعه ترجمه نکنید — صبر کنید تا یک ویژگی پایدار شود.
  3. RTL را زود آزمایش کنید اگر از عربی یا عبری پشتیبانی می‌کنید. باگ‌های RTL تا زمانی که واقعاً نگاه نکنید پنهان می‌مانند.
  4. lang و dir را روی <html> قرار دهید. مرورگرها و screen readerها به آن وابسته هستند.
  5. برای قالب‌بندی از Intl استفاده کنید. قالب‌بندی تاریخ یا ارز را دستی پیاده‌سازی نکنید — از Intl.DateTimeFormat و Intl.NumberFormat استفاده کنید.
  • رابط کاربری مدیریت locale در داخل builder — انتخاب locale، مشاهده‌ی میزان پوشش ترجمه، و ویرایش catalogها بدون خروج از Proyecta
  • ترجمه‌ی خودکار هنگام ذخیره برای رشته‌های جدید
  • قالب‌های پروژه‌ی آماده‌ی i18n با فریم‌ورک از پیش پیکربندی‌شده