Переклади
Blockstudio постачається з перекладами в каталозі languages. WordPress використовує їх, коли мова сайту або мова в профілі користувача збігається з однією з них. Це працює однаково, коли Blockstudio запускається як плагін, обов’язковий до використання плагін або пакет Composer.
Доступні мови
Blockstudio містить переклади для WordPress локалей, зазначених у вбудованому languages/locales.json, зокрема регіональні варіанти та варіанти з формальним і неформальним звертанням. Англійська (en_US) — мова оригіналу, тому файл перекладу для неї не потрібен. Список поєднує локалі, які підтримує WordPress у GlotPress, із варіантами, доступними у WordPress основному перекладі API.
Наявні переклади німецькою (de_DE) та формальною німецькою (de_DE_formal) збережено. Додаткові переклади згенеровано за допомогою GPT-6 Luna і позначено як машинні у заголовках .po. Вони пройшли автоматичні перевірки повноти й формату, але не всі їх перевірили носії мови. Будемо вдячні за виправлення.
Переклади охоплюють елементи керування полями в редакторі блоків, сторінку адміністратора, полотно, накладку devtools і повідомлення кінцевих точок REST. Мітки й довідкові тексти у власних файлах block.json належать вашій темі або плагіну та використовують його текстовий домен.
Виберіть мову в Налаштування > Загальні > Мова сайту або вкажіть особисту мову у своєму профілі WordPress. Blockstudio автоматично використовує вибрану локаль. Він не додає мов до списку вибору мов у WordPress: локаль також має бути доступна у вашій інсталяції WordPress. На вашому сайті не потрібні запити до ШІ, передплата на переклади чи додаткові налаштування середовища виконання.
Перевизначення перекладу
Файли перекладу в wp-content/languages/plugins мають вищий пріоритет за вбудовані файли як для рядків PHP (blockstudio-de_DE.mo або blockstudio-de_DE.l10n.php), так і для скриптів (окремий файл для кожного дескриптора скрипту, наприклад blockstudio-de_DE-blockstudio-blocks.json).
Як долучитися до перекладу
Кожна мова — це файл .po, який можна редагувати в будь-якому текстовому редакторі або за допомогою інструмента перекладу, наприклад Poedit. Будемо раді виправленням і новим мовам у вигляді pull request.
- Щоб додати мову, скопіюйте
languages/blockstudio.potуlanguages/blockstudio-<locale>.po, наприкладblockstudio-fr_FR.po, і заповніть заголовкиLanguageтаPlural-Forms. Щоб покращити переклад, відредагуйте наявний файл.po. - Перекладіть рядки. Залишайте в перекладі заповнювачі, як-от
%1$s. - Запустіть
npm run i18n. Він створить файли.mo,.l10n.phpі.json, які завантажує WordPress. - Додайте файл
.poразом зі згенерованими файлами до коміту та створіть pull request.
Якщо ви не можете запустити npm, достатньо створити pull request лише з файлом .po. Згенеровані файли можна додати до злиття.
Створення відсутніх перекладів
Підтримувачі можуть згенерувати відсутні рядки за допомогою автентифікованого Codex CLI. Це необов’язкова команда для розробки, яку WordPress не запускає:
npm run i18n:translate -- --dry-run
npm run i18n:translate
Модель за замовчуванням — gpt-6-luna. Щоб працювати з однією локаллю, скористайтеся npm run i18n:translate -- --locale fr_FR. Команда витягує найновіші вихідні рядки, заповнює відсутні переклади, а потім компілює файли .mo, .l10n.php і .json для кожного скрипту. До Codex надсилаються лише загальнодоступні рядки інтерфейсу, їхній контекст і наявні форми, а не вміст сайту чи дані користувачів.
Наявні непорожні переклади ніколи не замінюються. Завершені пакети зберігаються, тож після переривання можна запустити команду знову, щоб продовжити роботу з відсутніми перекладами. Перед збереженням перевіряються заповнювачі, як-от %1$s, розмітка HTML, технічні ідентифікатори та обов’язкові форми множини. Нечіткі записи й змінені вихідні форми множини залишаються на перевірку перекладачу. Якщо запитана модель недоступна, підміна іншою моделлю не використовується.
npm run i18n:locales явно оновлює список локалей і правила множини з WordPress/GlotPress. npm run i18n:coverage перевіряє, чи завершено переклад для кожної локалі зі списку в репозиторії. Перевірки повноти й звичайний CI не викликають ШІ та не отримують дані про локалі. Варіанти пакетної обробки, паралельного виконання та відновлення описано в README репозиторію.
Рядки коду, які можна перекладати
- PHP: використовуйте функції WordPress із текстовим доменом
blockstudio, наприклад__( 'Invalid block.', 'blockstudio' ). - JavaScript: імпортуйте
__з@/utils/__і передайте літеральний рядок, наприклад__( 'Add row' ). Рядок, сформований під час виконання програми, перекласти неможливо, тому використовуйте окремий літеральний рядок для кожного варіанта. - Для нового пакета скриптів із рядками для перекладу потрібен запис у
scripts/i18n.tsі викликwp_set_script_translations()із тим самим ідентифікатором іTranslations::script_path().
Після зміни рядків запустіть npm run i18n. Команда оновить languages/blockstudio.pot і кожен файл .po. Нові рядки залишаються англійською, доки перекладач або npm run i18n:translate не заповнить їх. CI запускає npm run i18n:check і npm run i18n:coverage, які виявляють застарілі скомпільовані файли, проблеми з вилученням рядків або неповне покриття локалями. Генерація залишається явною дією супроводжувача.