Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Локалізація за допомогою електронних таблиць

Електронні таблиці є одним із найпоширеніших форматів для локалізації ігор. У Godot електронні таблиці підтримуються у форматі CSV. У цьому посібнику пояснюється, як працювати з CSV-файлами.

CSV-файли повинні бути збережені в кодуванні UTF-8 без позначки порядку байтів.

Попередження

За замовчуванням Microsoft Excel завжди зберігатиме файли CSV із кодуванням ANSI, а не UTF-8. Вбудованого способу зробити це немає, але є способи вирішення проблеми, описані тут. <https://stackoverflow.com/questions/4221176/excel-to-csv-with-utf8-encoding>`__.

Ми рекомендуємо використовувати LibreOffice або Google Таблиці.

Форматування

Файли CSV повинні бути відформатовані таким чином:

Ключі

<мова1>

<мова2>

<моваN>

КЛЮЧ1

текст

текст

текст

КЛЮЧ2

текст

текст

текст

КЛЮЧN

текст

текст

текст

Теги "lang" повинні представляти мову, яка має бути однією з valid locales, що підтримуються рушієм, або вони повинні починатися з символу підкреслення (_), що означає, що пов'язаний стовпець подається як коментар і не буде імпортовано. Теги KEY повинні бути унікальними та представляти універсальний рядок. За домовленістю, вони зазвичай пишуться у верхньому регістрі, щоб відрізняти їх від інших рядків. Ці ключі будуть замінені під час виконання відповідним перекладеним рядком. Зверніть увагу, що регістр важливий: KEY1 та Key1 будуть різними ключами. Верхня ліва комірка ігнорується і може бути залишена порожньою або мати будь-який вміст. Ось приклад:

Ключі

en

es

ja

ПРИВІТАТИ

Привіт, друже!

Привіт, аміго!

Добрий день

ЗАПИТАТИ

Як ти?

Як справи?

Як справи

ПРОЩАННЯ

Прощавай

Адіос

до побачення

ЦИТАТА

"Привіт", - сказав чоловік.

«Привіт», — сказав чоловік.

«Привіт», — сказав чоловік

Той самий зразок наведено нижче, як звичайний текстовий файл, розділений комами, який повинен бути результатом редагування вищевказаної таблиці. Редагуючи звичайну текстову версію, обов'язково огортайте подвійними лапками будь-яке повідомлення, що містить коми, розриви рядків, або подвійні лапки, щоб коми не розбиралися як роздільники, розриви рядків не створювали нових записів, а подвійні лапки не розглядалися, як огортаючі символи. Не забудьте загорнути подвійні лапки, які може містити повідомлення, ще однією парою подвійних лапок. Також, ви можете вибрати інший роздільник, замість кома, у параметрах імпорту.

keys,en,es,ja
GREET,"Hello, friend!","Hola, amigo!",こんにちは
ASK,How are you?,Cómo está?,元気ですか
BYE,Goodbye,Adiós,さようなら
QUOTE,"""Hello"" said the man.","""Hola"" dijo el hombre.",「こんにちは」男は言いました

Вказівка форм множини

Починаючи з Godot 4.6, у CSV-файлах можна вказувати форми множини.

Це робиться шляхом додавання стовпця з назвою ?plural будь-де в таблиці (крім першого стовпця, який зарезервований для ключів перекладу). За домовленістю рекомендується розміщувати його у другому стовпці. Зверніть увагу, що в наведеному нижче прикладі ключовий стовпець — це той, який містить англійську локалізацію.

en,?plural,fr,ru,ja,zh
?pluralrule,,nplurals=2; plural=(n >= 2);,,
There is %d apple,There are %d apples,Il y a %d pomme,Есть %d яблоко,リンゴが%d個あります,那里有%d个苹果
,,Il y a %d pommes,Есть %d яблока,,
,,,Есть %d яблок,,

Примітка

Автоматичний переклад керування не підтримується під час використання форм множини. Ви повинні перекласти рядок вручну за допомогою tr_n().

Визначення контекстів перекладу

Починаючи з Godot 4.6, у CSV-файлах можна вказувати translation contexts. Це можна використовувати для усунення неоднозначності ідентичних вихідних рядків, які мають різні значення. Хоча це зазвичай не потрібно при використанні ключів перекладу LIKE_THIS, це корисно при використанні простого англійського тексту як ключів перекладу.

Це робиться шляхом додавання стовпця з назвою ?context будь-де в таблиці (крім першого стовпця, який зарезервований для ключів перекладу). За домовленістю рекомендується розміщувати його у другому стовпці або після ?plural, якщо він також використовується. Зверніть увагу, що у наведеному нижче прикладі ключовий стовпець — це той, який містить англійську локалізацію.

en,?context,fr,ru,ja,zh
Letter,Alphabet,Lettre,Буква,字母,字母
Letter,Message,Courrier,Письмо,手紙,信件

Примітка

Автоматичний переклад елементів керування не підтримується під час використання контексту. Ви повинні перекласти рядок вручну за допомогою tr() або tr_n().

Імпортування CSV

Godot, за замовчуванням, розглядає файли CSV, як переклади. Він імпортує їх і генерує один, або кілька, стислих файлів ресурсів перекладу поруч.

Імпорт також додасть переклад до списку перекладів, який завантажуватиметься під час запуску гри, як зазначено у project.godot (або в налаштуваннях проєкту). Godot дозволяє також завантажувати та видаляти переклади під час виконання.

Виберіть файл .csv та відкрийте панель Import, щоб визначити параметри імпорту. Ви можете перемикати стиснення імпортованих перекладів та вибирати роздільник, який використовуватиметься під час розбору файлу CSV.

../../_images/import_csv.webp

Обов’язково натисніть Reimport після будь-яких змін цих параметрів.

Завантаження CSV-файлу як перекладу

Після імпорту CSV-файлу він не автоматично реєструється як джерело перекладу для проєкту. Пам’ятайте, що слід виконати кроки, описані в Налаштування імпортованого перекладу, щоб переклад фактично використовувався під час запуску проєкту.