דלגו לתוכן

בינאום (Internationalization)

הוסף תמיכה במספר שפות לאפליקציה שלך. השתמש ב-Proyecta Content API לבינאום תוכן עריכתי, או בקש מה-AI לחבר framework של i18n ישירות בקוד.

Proyecta תומך בשני גישות משלימות לבינאום האפליקציות שאתה בונה:

  1. בינאום תוכן באמצעות Proyecta Content API — לתוכן עריכתי (פוסטים בבלוג, שאלות נפוצות, תוכן שיווקי) שצריך להיות מתורגם למספר שפות
  2. i18n ברמת הקוד באמצעות framework לתרגום — למחרוזות ממשק משתמש, תאריכים, מטבעות ומעבר לוקאל בזמן ריצה

שתי הגישות עובדות כיום. איזו מהן תצטרך תלוי במה שאתה מתרגם.

Proyecta עצמו מגיע עם 24 לוקאלים, כך שהמוצר שולט ב-i18n. אותם דפוסים חלים על האפליקציות שאתה בונה בתוכו.

אפשרות 1: בינאום תוכן (Proyecta Content API)

Section titled “אפשרות 1: בינאום תוכן (Proyecta Content API)”

אם אתה בונה אתר עשיר בתוכן — בלוג, בסיס ידע, דפי שיווק, קטלוג מוצרים — השתמש בתמיכת הלוקאל המובנית. אמור ל-AI באילו שפות אתה תומך ("Make the site available in English, Spanish and French") והוא ירשום אותן עבורך, כשאנגלית היא ברירת המחדל. לאחר מכן קרא את התוכן בשפת המבקר.

בצד ה-frontend, ה-hooks עם הטיפוס של התבנית מפענחים עבורך שדות מקומיים — העבר את הלוקאל הפעיל של המבקר וכל שדה 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 עובר על שרשרת נפילה — הלוקאל המבוקש ← הנפילות המוגדרות שלו ← לוקאל ברירת המחדל — ומדווח על הקוד שהוגש בפועל בכל רשומה בתור localeResolved. השמט את locale באתרים חד-לשוניים והשדות יחזרו כערכים גולמיים.

זוהי התשובה הנכונה כאשר:

  • עורכים שאינם כותבי קוד צריכים לתרגם תוכן
  • אתה רוצה שתרגומים יהיו ניתנים לגרסאות
  • אתה צריך פרסום ספציפי ללוקאל (פרסום מתוזמן יגיע בקרוב — כרגע רשומות דורשות פרסום ידני דרך ה-API)

ראה ניהול תוכן לגבי Content API המלא.

אפשרות 2: framework של i18n ברמת הקוד

Section titled “אפשרות 2: framework של i18n ברמת הקוד”

למחרוזות ממשק משתמש — תוויות, כפתורים, הודעות שגיאה, תאריכים, מטבעות — בקש מה-AI לחבר framework של 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.

ה-AI יבצע את הפעולות הבאות:

  1. יבחר framework — ה-AI משתמש ב-i18next עם react-i18next (הסטנדרט של Proyecta)
  2. יצור קבצי קטלוג ב-src/locales/ (קובץ JSON אחד לכל שפה)
  3. יעטוף טקסט בקריאות t() (מה-hook useTranslation של react-i18next)
  4. יוסיף קומפוננטת בורר שפה
  5. יחבר ניתוב URL עם קידומות לוקאל
  6. יטפל ב-RTL (פריסה מימין לשמאל עם dir="rtl") לערבית, עברית וכדומה
  7. יעצב מספרים, תאריכים ומטבעות לפי לוקאל

ברגע שהשפה הבסיסית שלך קיימת, ה-AI מצוין בהפקת קבצי קטלוג נוספים:

  • "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."

לתוכן בעל חשיבות גבוהה (ניסוחים משפטיים, רפואה, פיננסים), כדאי שמתרגם אנושי יבדוק את פלט ה-AI לפני ה-deploy.

רוב האפליקציות האמיתיות משתמשות בשתיהן: i18n ברמת הקוד לאלמנטי ה-UI (כפתורים, שגיאות, ניווט), ו-Content API לתוכן עריכתי (מאמרים, תיאורי מוצרים). הם מתקיימים יחד בצורה נקייה — ה-framework של i18n שלך מטפל בקבצי הקטלוג בזמן build, ה-Content API מגיש רשומות מקומיות בזמן ריצה.

  1. בחר את שפת הבסיס שלך וסיים את הטקסט תחילה. לתרגם יעד שזזה כל הזמן זה כאב ראש.
  2. תרגם בקבצים. אל תתרגם תוך כדי — המתן עד שפיצ’ר מתייצב.
  3. בדוק RTL מוקדם אם אתה תומך בערבית או עברית. באגים של RTL מסתתרים עד שמסתכלים.
  4. כלול lang ו-dir על <html>. דפדפנים וקוראי מסך תלויים בזה.
  5. השתמש ב-Intl לעיצוב. אל תכתוב ידנית עיצוב תאריכים או מטבעות — השתמש ב-Intl.DateTimeFormat, Intl.NumberFormat.
  • ממשק ניהול לוקאלים בתוך ה-builder — בחר לוקאלים, ראה כיסוי תרגום, ערוך קטלוגים מבלי לעזוב את Proyecta
  • תרגום אוטומטי בשמירה למחרוזות חדשות
  • תבניות פרויקט מוכנות ל-i18n עם ה-framework מחובר מראש