Yerelleştirme

Çevirilerin oluşturulması

Çeviri oluşturmak için i18n adlı bir klasör oluşturun. Bu klasörde çeviriler JSON formatındaki dosyalarda saklanacaktır.

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

Dosya yapısının ekran görüntüsü: "fronts", "i18n", "input" ve "ysdk" klasör listesinin bir kısmı görülüyor. "i18n" klasöründe "en.json" ve "ru.json" dosyaları bulunur.

İçeriği çeviri dosyalarına ekleyin:

1{
2    "game": {
3        "title": "Cool Game"
4    },
5    "button": "Button"
6}
1{
2    "game": {
3        "title": "Крутая игра"
4    },
5    "button": "Кнопка"
6}

Çevirileri alma

Belirli bir anahtarın değerini almak için i18n.key(key) yöntemini 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

 1local i18n = require('ysdk.i18n')
 2
 3local function on_localize()
 4    i18n.gui("title_label", "game.title")
 5    i18n.gui("button_label", "button")
 6end
 7
 8function init(self)
 9    i18n.on(on_localize)
10end
11
12function final(self)
13    i18n.off(on_localize)
14end

Siyah ekranın ortasında "Cool" yazısı, hemen altında "Button" yazılı beyaz bir buton var.

Ç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.

1function settings.change_language(code)
2    i18n.set_language(code)
3end

Depo