【语言功能】自动切换语言修改为可配置,修改游戏中设置语言按钮的位置

dev_chengFeng
gaoxin 2021-03-19 14:19:05 +08:00
parent 1320371eac
commit e9968d8517
7 changed files with 75 additions and 275 deletions

View File

@ -197,6 +197,7 @@ public class App : UnitySingleton<App>
public void Initialize()
{
ConfigMgr.Init();
SLanguageMoreLanguageMgr.Instance.InitData();
VersionMgr.Initialize();
}

View File

@ -1117,11 +1117,12 @@ namespace GameLogic
string spriteStr = spriteName;
if (subStr == "_zh")
{
if (PlayerPrefs.GetInt("language") == 1)
int lt = SLanguageMoreLanguageMgr.Instance.GetLanguageType();
if (lt == 1)
{
spriteStr = spriteName.Remove(spriteName.Length - 2) + "en";
}
else if (PlayerPrefs.GetInt("language") == 2)
else if (lt == 2)
{
spriteStr = spriteName.Remove(spriteName.Length - 2) + "vi";
}

View File

@ -106,6 +106,7 @@ RectTransform:
- {fileID: 6323907669162332623}
- {fileID: 1042795630689291113}
- {fileID: 7403415200051497663}
- {fileID: 655889813004748635}
m_Father: {fileID: 8996595556620474117}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -510,7 +511,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 655889813004748635}
m_RootOrder: 0
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -1586,7 +1587,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 655889813004748635}
m_RootOrder: 1
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -1710,81 +1711,6 @@ MonoBehaviour:
m_LineSpacing: 1
m_Text: "\u653B\u51FB\uFF1A"
LanguageIndex: 0
--- !u!1 &564430352927793580
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8164539038628194150}
- component: {fileID: 3266766804967399390}
- component: {fileID: 6734096809880213633}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8164539038628194150
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 564430352927793580}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 8900518197752391045}
m_Father: {fileID: 3316413344436090805}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -1146}
m_SizeDelta: {x: 0, y: 75}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3266766804967399390
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 564430352927793580}
m_CullTransparentMesh: 0
--- !u!114 &6734096809880213633
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 564430352927793580}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 21300000, guid: b44f71f84aa20084a9ed3a8ef44c483c, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
--- !u!1 &594498497032094176
GameObject:
m_ObjectHideFlags: 0
@ -1893,7 +1819,6 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 861513193}
- {fileID: 4074313861348738548}
m_Father: {fileID: 7423535894473370959}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -5763,7 +5688,6 @@ RectTransform:
- {fileID: 649693974224445334}
- {fileID: 5075207361885460552}
- {fileID: 5075207361646036926}
- {fileID: 8164539038628194150}
m_Father: {fileID: 7423535894473370959}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -6425,67 +6349,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &2974198067001771857
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4074313861348738548}
- component: {fileID: 511661598688498961}
m_Layer: 5
m_Name: box1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4074313861348738548
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2974198067001771857}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 655889813004748635}
- {fileID: 1077111544204339403}
m_Father: {fileID: 8996595556620474117}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: -1185}
m_SizeDelta: {x: 1080, y: 90}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &511661598688498961
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2974198067001771857}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 100
m_Right: 0
m_Top: 45
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
--- !u!1 &3052749163510075554
GameObject:
m_ObjectHideFlags: 0
@ -6917,20 +6780,21 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3224954024497360144}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1077111544204339403}
- {fileID: 3312353661996661353}
- {fileID: 3859439430310529040}
- {fileID: 7964369023937820060}
m_Father: {fileID: 4074313861348738548}
m_RootOrder: 0
m_Father: {fileID: 861513193}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 420, y: 90}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8440280213579013307
CanvasRenderer:
@ -7287,86 +7151,6 @@ MonoBehaviour:
isPlayAudio: 1
isHaveCloseBtn: 0
isPlayOnOpen: 1
--- !u!1 &3372962144034595163
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8900518197752391045}
- component: {fileID: 157444261171248351}
- component: {fileID: 8584004119700968296}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8900518197752391045
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3372962144034595163}
m_LocalRotation: {x: -0, y: -0, z: 0.004054589, w: -0.99999183}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 8164539038628194150}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 149.5, y: -1.6}
m_SizeDelta: {x: 241.1, y: 62.3}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &157444261171248351
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3372962144034595163}
m_CullTransparentMesh: 0
--- !u!114 &8584004119700968296
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3372962144034595163}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ebfe0e44da74fbd44b1b744995de2324, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.9882353, g: 0.92156863, b: 0.7921569, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 12800000, guid: 4b73e9e4512d17e4daeea351e090d33c, type: 3}
m_FontSize: 40
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 4
m_MaxSize: 48
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 1
m_VerticalOverflow: 1
m_LineSpacing: 1
m_Text: "\u8BED\u8A00"
LanguageIndex: 0
--- !u!1 &3573780367671578872
GameObject:
m_ObjectHideFlags: 0
@ -9521,7 +9305,7 @@ RectTransform:
m_Children:
- {fileID: 2044536394749562946}
m_Father: {fileID: 655889813004748635}
m_RootOrder: 2
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@ -16642,12 +16426,12 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4074313861348738548}
m_RootOrder: 1
m_Father: {fileID: 655889813004748635}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -85}
m_SizeDelta: {x: 420, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5298306214829582365

View File

@ -42,11 +42,11 @@ function SettingInfo:InitComponent(gameObject, rootPanel)
-- this.languageText.text=GetCurLanguage()==0 and "中文" or "英文"
if IsLanguagePack then
this.dropDown = Util.GetGameObject(gameObject,"other/box1/Dropdown"):GetComponent("Dropdown")
this.dropDownText = Util.GetGameObject(gameObject,"other/box1/Dropdown/Label"):GetComponent("Text")
this.dropDownTip = Util.GetGameObject(gameObject,"other/box1/tip")
this.dropDown = Util.GetGameObject(gameObject,"other/box/Dropdown"):GetComponent("Dropdown")
this.dropDownText = Util.GetGameObject(gameObject,"other/box/Dropdown/Label"):GetComponent("Text")
this.dropDownTip = Util.GetGameObject(gameObject,"other/box/Dropdown/tip")
else
this.dropDown = Util.GetGameObject(gameObject,"other/box1/Dropdown")
this.dropDown = Util.GetGameObject(gameObject,"other/box/Dropdown")
this.dropDown.transform.parent.gameObject:SetActive(false)
end

View File

@ -330,6 +330,8 @@ namespace ResUpdate
{
Debug.Log("www.text.config:" + request0.downloadHandler.text);
ConfigManager.Instance.SetNetInfo(request0.downloadHandler.text);
// 初始化语言
SLanguageMoreLanguageMgr.Instance.InitData();
}
// 获取version

View File

@ -14,44 +14,6 @@ public class GameStart : MonoBehaviour
private AssetBundle bundle;
void Start()
{
//PlayerPrefs.DeleteKey("language");
if (!PlayerPrefs.HasKey("language"))
{
if (Application.systemLanguage == SystemLanguage.Chinese || Application.systemLanguage == SystemLanguage.ChineseSimplified || Application.systemLanguage == SystemLanguage.ChineseTraditional)
{
PlayerPrefs.SetInt("language", 0);
}
else if (Application.systemLanguage == SystemLanguage.Vietnamese)
{
PlayerPrefs.SetInt("language", 2);
}
else
{
PlayerPrefs.SetInt("language", 1);
}
}
else if(PlayerPrefs.HasKey("language_flag")&& PlayerPrefs.GetInt("language")!= PlayerPrefs.GetInt("language_flag"))
{
PlayerPrefs.SetInt("language", PlayerPrefs.GetInt("language_flag"));
}
if (!PlayerPrefs.HasKey("language_flag"))
{
PlayerPrefs.SetInt("language_flag", PlayerPrefs.GetInt("language"));
}
string languageStr = "";
if (PlayerPrefs.GetInt("language") == 0)
{
languageStr = "中文";
}
else if (PlayerPrefs.GetInt("language") == 1)
{
languageStr = "英文";
}
else
{
languageStr = "越南语";
}
Debug.Log("当前语言是:" + languageStr);
if (Application.isEditor && AppConst.bundleMode && AppConst.isUpdate)
{
if (!System.IO.Directory.Exists(Util.AppContentPath()))

View File

@ -115,6 +115,7 @@ namespace GameLogic
public void InitData()
{
//languagedictionary = new Dictionary<more_language, languageStruct>();
InitLanguageConfig();
InitLanguagedictionary();
//this.languagedictionary.Add(more_language.CANEL, new languageStruct() { english = EnglishLanguage.CANEL, chinese = ChineseLanguage.CANEL });
//this.languagedictionary.Add(more_language.CONFIRM, new languageStruct() { english = EnglishLanguage.CONFIRM, chinese = ChineseLanguage.CONFIRM });
@ -145,6 +146,55 @@ namespace GameLogic
data = JsonMapper.ToObject<Hashtable>(strjson);
}
public int GetLanguageType()
{
return PlayerPrefs.GetInt("language", 0);
}
public void InitLanguageConfig()
{
if (ConfigManager.Instance.GetConfigInfo("Setting.LanguagePackager.isActive") == "1")
{
if (!PlayerPrefs.HasKey("language"))
{
if (Application.systemLanguage == SystemLanguage.Chinese || Application.systemLanguage == SystemLanguage.ChineseSimplified || Application.systemLanguage == SystemLanguage.ChineseTraditional)
{
PlayerPrefs.SetInt("language", 0);
}
else if (Application.systemLanguage == SystemLanguage.Vietnamese)
{
PlayerPrefs.SetInt("language", 2);
}
else
{
PlayerPrefs.SetInt("language", 1);
}
}
else if (PlayerPrefs.HasKey("language_flag") && PlayerPrefs.GetInt("language") != PlayerPrefs.GetInt("language_flag"))
{
PlayerPrefs.SetInt("language", PlayerPrefs.GetInt("language_flag"));
}
if (!PlayerPrefs.HasKey("language_flag"))
{
PlayerPrefs.SetInt("language_flag", PlayerPrefs.GetInt("language"));
}
}
else
{
PlayerPrefs.SetInt("language", 0);
}
string languageStr = "";
switch (GetLanguageType())
{
case 0: languageStr = "中文";break;
case 1: languageStr = "英文"; break;
case 2: languageStr = "越南语"; break;
}
Debug.Log("当前语言是:" + languageStr);
}
/// <summary>
/// 初始化
/// </summary>
@ -197,7 +247,7 @@ namespace GameLogic
string index1 = ((int)language).ToString();
var data2 = JsonMapper.ToJson(data[index1]);
var data1 = JsonMapper.ToObject<languageStruct>(data2);
switch (PlayerPrefs.GetInt("language"))
switch (GetLanguageType())
{
case 0:
languageThrans = data1.chinese;