WooLocalization Doc
- 支持 文本/图片/特效/预制体/继承自UnityEngine.Object 本地化
- 提供本地化组件(支持挖孔的文本,支持多种属性变化)
- 支持一键翻译 \自定义翻译器(内置有道)
- 支持无限多语言类型
- 支持扩展自定义本地化
- 支持导入导出自定义本地化文件 (Excel、CSV)
- 支持编辑器增加/检查/删除/修改 本地化 Key/语言
- 支持编辑器下预览语言切换
- 支持 任意组件 本地化
- 支持 本地化 分文件/分布加载(比如只需要中文的时候,不加载英文)
- 支持生成 本地化的 key
public class LocalizationGame : MonoBehaviour, ILocalizationPrefRecorder
{
public SpriteActorAsset sprite;
public Image image;
public TMPro.TextMeshProUGUI text;
public LocalizationData data;
private void Start()
{
// 初始化三步骤
// 设置记录器具,主要是如何记录当前的语言
Localization.SetRecorder(this);
// 设置提供 本地化 资源
Localization.SetContext(data);
// 设置 默认的语言
Localization.SetDefaultLocalizationType(LocalizationKeys.Languages.zh_Hans);
//给组件设置 本地化
text.SetLocalization(LocalizationKeys.String.Load_Tip_Text);
image.SetLocalizationByAsset<LocalizationImage, LocalizationImage.ImageSpriteActor,Sprite>(sprite, LocalizationKeys.Sprite.text);
// 非组件 部分 获取 本地化
Debug.Log(Localization.GetLocalization(LocalizationKeys.String.Load_Tip_Text));
// 合并 本地化,实现 不用语种非同时加载
// Localization.MergeContext(data);
}
///动态切换语言
private void OnGUI()
{
var types = Localization.GetLocalizationTypes();
var type = Localization.localizationType;
var index = GUILayout.Toolbar(Mathf.Max(types.IndexOf(type), 0), types.ToArray(), new GUIStyle(GUI.skin.button) { fontSize = 40 }, GUILayout.Height(100), GUILayout.Width(300));
Localization.SetLocalizationType(types[index]);
}
// 本地化记录回调
LocalizationPref ILocalizationPrefRecorder.Read()
{
Debug.Log("Read");
return null;
}
void ILocalizationPrefRecorder.Write(LocalizationPref pref)
{
Debug.Log("Write");
}
}