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. Встроенного способа сделать это нет, но есть обходные пути, описанные здесь:.

Вместо этого мы рекомендуем использовать LibreOffice или Google Таблицы.

Форматирование

Файлы CSV должны быть отформатированы следующим образом:

ключи

<lang1>

<lang2>

<langN>

KEY1

string

string

string

KEY2

string

string

string

KEYN

string

string

string

Теги "lang" должны представлять язык, который должен быть одним из допустимых локалей, поддерживаемых движком, или начинаться с подчёркивания (_), что означает, что соответствующий столбец служит комментарием и не будет импортирован. Теги KEY должны быть уникальными и представлять строку универсально. По соглашению они обычно пишутся заглавными буквами, чтобы отличать их от других строк. Эти ключи будут заменены во время выполнения соответствующей переведённой строкой. Обратите внимание, что регистр важен: KEY1 и Key1 будут разными ключами. Верхняя левая ячейка игнорируется и может быть пустой или содержать любое содержимое. Вот пример:

ключи

en

es

ja

GREET

Hello, friеnd!

Hola, amigо!

こんにちは (Привет)

ASK

Как ваши дела?

Cómo está (Как дела)?

元気ですか (Как поживаешь?)

BYE

Goodbye (Прощай)

Adiós (Прощай)

さようなら

QUOTE (ЦИТАТА)

"Hellо" said the man.

"Hоla" dijo el hombre.

「こんにちは」男は言いました (

Тот же пример показан ниже в виде простого текстового файла, разделённого запятыми, который должен быть результатом редактирования указанного выше в электронной таблице. При редактировании текстовой версии не забудьте заключить в двойные кавычки любое сообщение, содержащее запятые, разрывы строк или двойные кавычки, чтобы запятые не анализировались как разделители, разрывы строк не создавали новые записи, а двойные кавычки не анализировались как заключительные символы. Убедитесь, что в сообщении нет двойных кавычек, поставив перед ними другую двойную кавычку. Кроме того, вы можете выбрать другой разделитель, кроме запятой, в параметрах импорта.

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, вы можете указывать plural forms в 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 яблок,,

Примечание

Automatic Control translation is not supported when using plural forms. You must translate the string manually using tr_n().

Указание контекстов перевода

Начиная с Godot 4.6, можно указывать контексты перевода в CSV-файлах. Это можно использовать для устранения неоднозначности одинаковых исходных строк, имеющих разные значения. Хотя это обычно не требуется при использовании ключей перевода LIKE_THIS, это полезно при использовании простого английского текста в качестве ключей перевода.

Это делается путём добавления столбца с именем ?context в любом месте таблицы (кроме первого столбца, который зарезервирован для ключей перевода). По соглашению рекомендуется размещать его во втором столбце или после ?plural, если он также используется. Обратите внимание, что в приведённом ниже примере столбец ключей — это тот, который содержит английскую локализацию.

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

Примечание

Автоматический перевод Control не поддерживается при использовании контекста. Вы должны переводить строку вручную с помощью tr() или tr_n().

Импортёр CSV

По умолчанию Godot обрабатывает файлы CSV как переводы. Он импортирует их и сгенерирует рядом с собой один или несколько сжатых файлов ресурсов перевода.

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

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

../../_images/import_csv.webp

Не забудьте нажать Reimport после любых изменений этих параметров.

Загрузка CSV-файла как перевода

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