رفتن به محتوا

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

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

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

  1. بومی‌سازی محتوا از طریق Proyecta Content API — برای محتوای تحریریه (پست‌های وبلاگ، سوالات متداول، متن‌های بازاریابی) که باید به چندین زبان ترجمه شوند
  2. 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.

هوش مصنوعی موارد زیر را انجام می‌دهد:

  1. انتخاب framework — هوش مصنوعی از i18next با react-i18next (استاندارد Proyecta) استفاده می‌کند
  2. ایجاد فایل‌های catalog در src/locales/ (یک JSON برای هر زبان)
  3. قرار دادن متن‌ها درون فراخوانی‌های t() (از هوک useTranslation در react-i18next)
  4. افزودن کامپوننت تغییر زبان
  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 framework شما فایل‌های 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 با framework از پیش راه‌اندازی‌شده