Импорт переводов

Игры и интернационализация

В мире много разных рынков и культур, и, чтобы максимизировать прибыль™, в настоящее время игры выпускаются на нескольких языках. Чтобы решить эту проблему, любой современный игровой движок должен поддерживать интернационализированный текст.

В обычных настольных или мобильных приложениях интернационализированный текст обычно находится в файлах ресурсов (или файлах .po для материалов GNU). Однако игры могут использовать на несколько порядков больше текста, чем приложения, поэтому они должны поддерживать эффективные методы работы с большим количеством многоязычного текста.

Есть два подхода к созданию многоязычных игр и приложений. Оба основаны на системе "ключ:значение". Первый - использовать в качестве ключа один из языков (обычно английский), второй - использовать определенный идентификатор. Первый подход, вероятно, проще для разработки, если игра сначала выпускается на английском, а затем на других языках, но полный кошмар при одновременной работе со многими языками.

Как правило, в играх используется второй подход, и для каждой строки используется уникальный идентификатор. Это позволяет вам редактировать текст во время его перевода на другие языки. Уникальный идентификатор может быть числом, строкой или строкой с числом (в любом случае это просто уникальная строка).

Примечание

Если вам нужен более мощный формат файла, Godot также поддерживает загрузку переводов, написанных в формате gettext .po. Смотрите для подробностей Localization using gettext.

Translation format (формат перевода)

Чтобы завершить картину и обеспечить эффективную поддержку переводов, Godot имеет специальный импортер, который может читать файлы CSV. Большинство редакторов электронных таблиц могут экспортировать в этот формат, поэтому единственное требование - файлы должны иметь особое расположение. Файлы CSV должны сохраняться в кодировке UTF-8 `без отметки порядка байтов <https://en.wikipedia.org/wiki/Byte_order_mark> `__.

Предупреждение

По умолчанию, Microsoft Excel всегда сохраняет файлы CSV в кодировке ANSI, а не в UTF-8. Для этого нет встроенного способа, но есть обходные пути, описанные `здесь <https://stackoverflow.com/questions/4221176/excel-to-csv-with-utf8-encoding> `__.

Мы рекомендуем вместо этого использовать LibreOffice <https://www.libreoffice.org/> __ или Google Sheets.

Файлы 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, friend! Hola, amigo! こんにちは (Привет)
ASK Как ты? Cómo está? (Как дела?) 元気ですか (Как поживаешь?)
BYE Goodbye (Прощай) Adiós (Прощай) さようなら
QUOTE "Hello" said the man. "Hola" 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.",「こんにちは」男は言いました

Импортёр CSV

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

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

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

../../../_images/import_csv.png

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