Інтернаціоналізація
Додайте підтримку кількох мов у свій застосунок. Використовуйте Proyecta Content API для локалізації редакційного контенту або попросіть AI підключити i18n-фреймворк безпосередньо в коді.
Proyecta підтримує два взаємодоповнювальні підходи до інтернаціоналізації застосунків, які ти створюєш:
- Локалізація контенту через Proyecta Content API — для редакційного контенту (блог-пости, FAQ, маркетингові тексти), який потрібно перекласти кількома мовами
- i18n на рівні коду за допомогою фреймворку перекладів — для рядків інтерфейсу, дат, валют і перемикання локалі під час роботи застосунку
Обидва підходи доступні вже зараз. Який із них потрібен тобі — залежить від того, що саме ти перекладаєш.
Сам builder Proyecta постачається з підтримкою 24 локалей, тож продукт відмінно розуміється на i18n. Ті самі підходи застосовуються до застосунків, які ти створюєш усередині нього.
Варіант 1: Локалізація контенту (Proyecta Content API)
Section titled “Варіант 1: Локалізація контенту (Proyecta Content API)”Якщо ти розробляєш контентно-насичений сайт — блог, базу знань, маркетингові сторінки, каталог товарів — використовуй вбудовану підтримку локалей у 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.Цей підхід підходить, коли:
- Редактори без технічних навичок мають перекладати контент
- Потрібно, щоб переклади зберігалися у версіях
- Потрібна локале-специфічна публікація (запланована публікація з’явиться незабаром — наразі записи потребують ручної публікації через API)
Повний опис Content API — у розділі Управління контентом.
Варіант 2: i18n-фреймворк на рівні коду
Section titled “Варіант 2: i18n-фреймворк на рівні коду”Для рядків інтерфейсу — підписів, кнопок, повідомлень про помилки, дат, валют — попроси AI підключити 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 виконає наступне:
- Обере фреймворк — AI використовує
i18nextразом ізreact-i18next(стандарт Proyecta) - Створить файли каталогів у
src/locales/(один JSON на мову) - Обгорне текст у виклики
t()(з хукаuseTranslationіз react-i18next) - Додасть компонент перемикача мов
- Налаштує URL-маршрутизацію з префіксами локалей
- Обробить RTL-макети (
dir="rtl") для арабської, іврит тощо - Форматуватиме числа, дати та валюти відповідно до локалі
Автопереклад за допомогою AI
Section titled “Автопереклад за допомогою AI”Щойно базова мова готова, 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.
Поєднання обох підходів
Section titled “Поєднання обох підходів”Більшість реальних застосунків використовують обидва підходи: i18n на рівні коду — для елементів інтерфейсу (кнопки, помилки, навігація), а Content API — для редакційного контенту (статті, описи товарів). Вони чудово співіснують — твій i18n-фреймворк обробляє файли каталогів під час build, а Content API видає локалізовані записи під час роботи застосунку.
Найкращі практики
Section titled “Найкращі практики”- Спочатку обери базову мову та зафіналізуй тексти. Перекладати мінливий контент — справжній біль.
- Перекладай пакетами. Не перекладай по ходу — дочекайся, поки функціональність стабілізується.
- Тестуй RTL завчасно, якщо підтримуєш арабську або іврит. Помилки RTL виявляються лише тоді, коли на них дивишся.
- Додавай
langіdirдо<html>. Від цього залежать браузери та програми екранного доступу. - Використовуй
Intlдля форматування. Не пиши власне форматування дат і валют — використовуйIntl.DateTimeFormat,Intl.NumberFormat.
Незабаром
Section titled “Незабаром”- UI управління локалями в builder — обирай локалі, переглядай охоплення перекладів, редагуй каталоги, не виходячи з Proyecta
- Автопереклад під час збереження для нових рядків
- Шаблони проєктів із готовим i18n із попередньо підключеним фреймворком