我有一个webgl项目的语言本地化。在统一,它改变语言取决于什么语言格式是在窗口。但在浏览器,他把语言是在浏览器。如何改变语言在浏览器从语言格式在windows
[SerializeField] private Dropdown dropdown;
public void SetLanguage(int value)
{
Lean.Localization.LeanLocalization.CurrentLanguage = value == 0 ? "Russian" : "English";
}
private string DefineCurrentLanguage()
{
if (Application.systemLanguage == SystemLanguage.Russian)
{
Debug.Log("This system is in Russian. ");
return "Russian";
}
else if (Application.systemLanguage == SystemLanguage.English)
{
Debug.Log("This system is in English. ");
return "English";
}
else
{
Debug.Log("System Language not defined. ");
return "English";
}
}
private void SetLanguage(string lang)
{
Lean.Localization.LeanLocalization.CurrentLanguage = lang;
}
private void Awake()
{
SetLanguage(DefineCurrentLanguage());
dropdown.value = Lean.Localization.LeanLocalization.CurrentLanguage == "Russian" ? 0 : 1;
}
}
1条答案
按热度按时间kr98yfug1#
我很确定他们会在内部使用
navigator.language
,返回一个字符串,表示用户的首选语言,通常是浏览器UI的语言。
另请参阅this post
无法跨浏览器执行此操作。
Internet Explorer
支持以下功能:但是没有办法从任何其他浏览器访问这些设置(我可以告诉),所以不要使用它们:如果您希望保持跨浏览器功能,请坚持使用标准的
navigator.language
(对应于浏览器语言)。还有
navigator.languages
,它列出了所有可用的首选项,其中可能包括系统语言等在返回的数组中,它们按首选项排序,首选语言排在最前面。
但是,
navigator.language
已经返回了第一个最首选项,它通常也是浏览器语言=〉也没有一种方法来判断哪一种语言是系统语言。
当然,您可以遵循this post,至少尝试在支持它的地方使用它
您可以专门搜索您要支持的每个浏览器,并研究是否有特定的方法来获取系统语言,并为每个浏览器实现
||
情况-总是将navigator.language
作为最坏情况。然后,为了实际使用它,您将有您的自定义jslib插件,如。
WebGL语言.jslib
网页GL语言.cs