We can code it as:
display.newText("hello", 200, 200, native.systemFontBold, 36 )
But, what if we want to support more than two languages?
First, we need to get the information of languages for current settings in user phones.
For Android system, we may use system.getPreference( "locale", "language" ) to get such information.
For iOS, we may use system.getPreference( "ui", "language" ).
However, it will be complicated for Chinese.
There have so-called Simplified Chinese and Traditional Chinese.
To overcome such problem, you can reference the following codes:
language = "en" isAndroid = false if(system.getInfo("platformName") == "Android") then isAndroid = true end if(isAndroid) then language = system.getPreference( "locale", "language" ) else language = system.getPreference( "ui", "language" ) end local localeLanguage = system.getPreference( "locale", "language" ):upper() local localeCountry = system.getPreference( "locale", "country" ):upper() local uiLanguage = system.getPreference( "ui", "language" ):upper() if(localeLanguage == "ZH-HANT" or localeLanguage == "ZH_HANT" or uiLanguage == "ZH-HANT" or uiLanguage == "ZH_HANT") then language = "zh-Hant" elseif(localeLanguage == "ZH-HANS" or localeLanguage == "ZH_HANS" or uiLanguage == "ZH-HANS" or uiLanguage == "ZH_HANS") then language = "zh-Hans" elseif(localeLanguage == "中文" or localeLanguage == "ZH" or uiLanguage == "中文" or uiLanguage == "ZH") then if(localeCountry == "TW") then language = "zh-Hant" else language = "zh-Hans" end endAfter getting the language setting, we need to take care of display problem.
We can add a new multi-language translation file, such as translations.lua as show below:
local translations = { ["hello"] = { ["en"] = "hello", ["zh-Hant"] = "哈囉", ["zh-Hans"] = "哈啰", ["fr"] = "Salut", ["de"] = "Hallo", }, } return translationsWhen we want to display the text, we can code it as:
translations = require("translations") display.newText( translations["hello"][language], 200, 200, native.systemFontBold, 36 )
沒有留言:
張貼留言