51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using UnityEngine;
|
|
using UVC.Locale;
|
|
using UVC.Log;
|
|
|
|
namespace UVC.UI.Commands
|
|
{
|
|
|
|
// 언어 변경 커맨드
|
|
public class ChangeLanguageCommand : ICommand
|
|
{
|
|
private readonly string _languageCode;
|
|
|
|
public ChangeLanguageCommand(string languageCode)
|
|
{
|
|
_languageCode = languageCode;
|
|
}
|
|
|
|
public void Execute(object parameter = null)
|
|
{
|
|
string targetLanguage = _languageCode;
|
|
|
|
// Execute 호출 시 전달된 파라미터가 있다면 그것을 우선 사용
|
|
if (parameter is string langCodeFromParam && !string.IsNullOrEmpty(langCodeFromParam))
|
|
{
|
|
targetLanguage = langCodeFromParam;
|
|
Debug.Log($"ChangeLanguageCommand: 파라미터로 언어 코드 '{targetLanguage}' 사용.");
|
|
}
|
|
else if (!string.IsNullOrEmpty(_languageCode))
|
|
{
|
|
Debug.Log($"ChangeLanguageCommand: 생성자에서 설정된 언어 코드 '{targetLanguage}' 사용.");
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("ChangeLanguageCommand: 변경할 언어 코드가 지정되지 않았습니다.");
|
|
return;
|
|
}
|
|
|
|
if (LocalizationManager.Instance != null)
|
|
{
|
|
LocalizationManager.Instance.SetCurrentLanguage(targetLanguage);
|
|
}
|
|
else
|
|
{
|
|
Debug.LogError("LocalizationManager 인스턴스를 찾을 수 없습니다.");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|