com.alicizax.unity.framework/Runtime/Localization/LocalizationComponent.cs

37 lines
1.0 KiB
C#
Raw Normal View History

2025-09-05 19:46:30 +08:00
using UnityEngine;
namespace AlicizaX.Localization.Runtime
{
/// <summary>
/// 本地化组件。
/// </summary>
[DisallowMultipleComponent]
[AddComponentMenu("Game Framework/Localization")]
public sealed class LocalizationComponent : MonoBehaviour
{
private ILocalizationModule _mLocalizationModule = null;
public static string PrefsKey = Application.dataPath.GetHashCode() + "Language";
2025-10-11 15:18:09 +08:00
[SerializeField] private string _language;
public void SetLanguage(string language)
{
_language = language;
}
private void Start()
2025-09-05 19:46:30 +08:00
{
2025-10-11 15:18:09 +08:00
_mLocalizationModule = ModuleSystem.RegisterModule<ILocalizationModule, LocalizationModule>();
2025-09-05 19:46:30 +08:00
if (_mLocalizationModule == null)
{
Log.Info("Localization manager is invalid.");
}
2025-10-11 15:18:09 +08:00
#if UNITY_EDITOR
_language = UnityEditor.EditorPrefs.GetString(LocalizationComponent.PrefsKey, "None");
#endif
_mLocalizationModule.Initialize(_language);
2025-09-05 19:46:30 +08:00
}
}
}