Yerelleştirme

Çevirilerin Oluşturulması

Öncelikle, çevirilerinizin saklanacağı JSON formatındaki dosyaların yer alacağı i18n adlı bir klasör oluşturun.

Örnek olarak, İngilizce ve Rusça dillerine karşılık gelen en.json ve ru.json dosyalarını oluşturalım.

Şimdi, dosyalarımızı bir miktar içerikle doldurma zamanı:

{
  "game": {
    "title": "Cool Game"
  },
  "button": "Button"
}
{
  "game": {
    "title": "Крутая игра"
  },
  "button": "Кнопка"
}

Çevirileri Alma

Belirli bir anahtarın değerini almak için i18n.localize(key) metodunu kullanabilirsiniz.

print( i18n.key("game.title") ) -- "Cool Game"

Ayrıca, kullanıcı arayüzündeki seçilen düğümün içeriğini değiştiren yardımcı bir i18n.gui(node_id, key) yöntemi de bulunmaktadır.

i18n.gui() yöntemi sayesinde aşağıdaki işlemi kısaltabiliriz:

gui.set_text(gui.get_node("Title Label"), i18n.key("game.title"))

Önce:

i18n.gui("title_label", "game.title")

Bir oyunun yerelleştirilmesi örneği

local i18n = require('ysdk.i18n')

local function on_localize()
    i18n.gui("title_label", "game.title")
    i18n.gui("button_label", "game.title")
end

function init(self)
    i18n.on(on_localize)
end

function final(self)
    i18n.off(on_localize)
end

Çeviri Dilini Değiştirme

Not

i18n modülü, ortam değişkenlerinden kullanıcının diline karşılık gelen dili otomatik olarak başlatır.

Dili yalnızca, kullanıcı isteğiyle manuel olarak değiştirmek istediğinizde bu yöntemi kullanmanız önerilir.

Çeviri dilini değiştirmek için i18n.set_language(code: string) metodunu kullanabilirsiniz.

function settings.change_language(code)
    i18n.set_language(code)
end

Depo