using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Text;
///
/// 首包语言管理类
///
public class FirstPackLang
{
private static FirstPackLang _instance;
private Dictionary _langDict = new Dictionary();
private List _langList = new List();
// 语言文本索引
public static class TextIndex
{
public const int HotUpdate = 0;
public const int InitSDK = 1;
public const int ExtractResources = 2;
public const int CheckVersion = 3;
public const int EnterHotUpdateAssembly = 4;
public const int PrepareUpdate = 5;
public const int SkipHotUpdate = 6;
public const int LatestVersion = 7;
public const int DownloadingUpdate = 8;
public const int ApplyingUpdate = 9;
public const int RestartRequired = 10;
public const int InitializingSDK = 11;
public const int CheckingResources = 12;
public const int ExtractingResources = 13;
public const int ResourceCheckComplete = 14;
public const int CheckingVersion = 15;
public const int MinorUpdateDetected = 16;
public const int MediumUpdateDetected = 17;
public const int MajorUpdateDetected = 18;
public const int EnteringGame = 19;
// LaunchLoadingWin 相关文本
public const int LoadingResources = 20; // 正在加载游戏资源...
public const int CheckingVersionUpdate = 21; // 正在检查版本更新...
public const int InitializingGame = 22; // 正在初始化游戏...
public const int EnteringGameWorld = 23; // 准备进入游戏世界...
}
public static FirstPackLang Instance
{
get
{
if (_instance == null)
{
_instance = new FirstPackLang();
_instance.Init();
}
return _instance;
}
}
private void Init()
{
LoadLanguageFile();
}
private void LoadLanguageFile()
{
TextAsset textAsset = Resources.Load("firstpackLang");
if (textAsset == null)
{
Debug.LogError("无法加载语言文件: firstpackLang.txt");
return;
}
string[] lines = textAsset.text.Split('\n');
for (int i = 0; i < lines.Length; i++)
{
string line = lines[i].Trim();
if (!string.IsNullOrEmpty(line))
{
_langList.Add(line);
_langDict[line] = i.ToString();
}
}
Debug.Log($"已加载 {_langList.Count} 条语言条目");
}
///
/// 通过索引获取文本
///
public string GetText(int index)
{
if (index >= 0 && index < _langList.Count)
{
return _langList[index];
}
return $"[Missing Text: {index}]";
}
///
/// 通过原始中文获取索引
///
public int GetIndex(string originalText)
{
if (_langDict.TryGetValue(originalText, out string indexStr))
{
return int.Parse(indexStr);
}
return -1;
}
}