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
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|