понедельник, 1 июля 2019 г.

FungusLua. String Table

Локализация Текста


Компонент LuaUtils обеспечивает поддержку простой локализации текста.
  1. Определите ваши языковые строки в файле JSON и сохраните его в папке ресурсов проекта.
  2. Добавьте компонент LuaEnvironment в вашу сцену - например, Tools > Fungus > Create > LuaEnvironment
  3. В компоненте LuaUtils установите свойство String Table для ссылки на ваш файл JSON.
  4. Используйте синтаксис {$VarName} для подстановки локализованной строки везде, где поддерживается подстановка строк. например в сценарии Lua:

say("{$hello_world}")

Вы можете использовать синтаксис {$VarName} везде, где поддерживается подстановка переменных. Это включает:
  • Команда Say
  • Команда Menu
  • Команда Set Text
  • Команда Write
  • Команда Conversation
  • Character object - имя персонажа
  • Команда Debug Log
  • Команда Load Variable - сохранить ключ
  • Команда Save Variable - сохранить ключ
  • Команда Delete Save Key

Вы также можете расширить систему подстановки Fungus с помощью собственных компонентов. Реализуйте интерфейс StringSubstituter.ISubstitutionHandler в подклассе Monobehavior, а затем верните измененную строку из SubstituteStrings().

Формат JSON

{
    "hello_world" : {
        "en" : "Hello world!",
        "fr" : "Bonjour le monde!",
        "de" : "Hallo Welt!"
    },
    "goodbye_world" : {
        "en" : "Goodbye world!",
        "fr" : "Au revoir monde!",
        "de" : "Auf Wiedersehen Welt!"
    }
}


Это пример формата JSON для таблицы строк. Чтобы использовать эту локализованную строку, вы должны использовать тег {$hello_world}.

Функции Lua


Эти функции Lua доступны для работы с таблицей строк.

-- Установить активный язык для таблицы строк
setlanguage(languagecode)
-- получить именованную строку из таблицы строк
getstring(key)
-- Подставляет переменные и строки локализации в кусок текста
--[[ например, v = 10, «Значение вспомогательного элемента равно [$ v]» => «Значение дополнительного элемента равно 10» ]]
sub(text)

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.