在项目中创建translations.json本地化文件
格式如下:
{
"ValheimLegends_activatedisplay_shaman": "本地化字符串内容",
"ValheimLegends_activatedisplay_ranger": "crafting material"
}
代码中添加文件读取
public static void InitializeConfig()
{
string jsonFilePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "translations.json");
if (File.Exists(jsonFilePath))
{
string json = File.ReadAllText(jsonFilePath);
IDictionary<string, object> translations = JsonConvert.DeserializeObject<IDictionary<string, object>>(json);
LoadTranslations(translations);
}
else
{
Debug.LogError("未找到translations.json文件!");
}
}
代码中添加解析json文件本地化
private static void LoadTranslations(IDictionary<string, object> translations)
{
const string translationPrefix = "ValheimLegends_";//这里是本地化文件中的前缀,可以随意更改请与文件中同步
if (translations == null)
{
Debug.LogError("无法解析translations.json!");
return;
}
var oldEntries = Localization.instance.m_translations
.Where(entry => entry.Key.StartsWith(translationPrefix))
.ToList();
foreach (var entry in oldEntries)
{
Localization.instance.m_translations.Remove(entry.Key);
}
foreach (var translation in translations)
{
Localization.instance.AddWord(translation.Key, translation.Value.ToString());
}
}
项目需要引用中添加Newtonsoft.Json.dll或者在NuGat包中搜索Newtonsoft.Json安装
在到Awake()方法中初始化 添加:
private void Awake()
{
InitializeConfig();//这个
}
需要本地化字符串写法
在需要本地化字符串的位置添加$符号本地化文件中的前缀名称,后缀自行定义可重复使用,文件中请保证不重复
没有回复内容