using UnityEngine;
using System.Collections;
public class SettingLanguage : MonoBehaviour {
void Start () {
string systemLanguage = Application.systemLanguage.ToString();
Debug.Log(systemLanguage);
}
}
顯示Chinese,的確我的電腦系統語系是中文。知道可以偵測到系統語系後,接著就是修改文字,這裡我拿之前使用讀JSON檔的方法:
Unity - JSON檔資料讀取
物件鍵值使用Unity系統有的語系,可以參考:
SystemLanguage
這是要修改的文字,三個UI元件的Text,要轉換的語言是中文、日文、英文和韓文。
JSON檔是這個樣子:
{
"Chinese" : ["中文", "測試", "你好世界"]
,"ChineseTraditional" : ["中文", "測試", "你好世界"]
,"English" : ["English", "test", "HelloWorld"]
,"Japanese" : ["日本語", "テスト", "こんにちは世界"]
,"Korean" : ["한국의", "테스트", "프로그램"]
}
JSON檔案準備好後,接著就可以做轉換的動作:using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using LitJson;
public class SettingLanguage : MonoBehaviour {
public Text language;
public Text test;
public Text helloworld;
void Start () {
JsonData jsonData;
TextAsset textAsset = Resources.Load<TextAsset>("SystemLanguage");//(1)
jsonData = JsonMapper.ToObject(textAsset.text);
string systemLanguage = Application.systemLanguage.ToString();//(2)
if (((IDictionary)jsonData).Contains(systemLanguage)){//(3)
language.text = jsonData[systemLanguage][0].ToString();//(4)
test.text = jsonData[systemLanguage][1].ToString();
helloworld.text = jsonData[systemLanguage][2].ToString();
}
}
}
(1)這次使用TextAsset來讀Resources資料夾下的JSON檔。(2)將抓到系統文字轉換成字串。
(3)寫文寫到一半查到的方法,可以查詢有檔案內有無相同字串。
(4)使用系統文字的字串查詢要轉換的字串。
以下是測試影片:
從影片看的出來是成功的,影片中忘記測試沒對應鍵值的狀況,依條件式來看就是不修改text顯示預設文字,這次就到這裡。


沒有留言:
張貼留言