Dreamine.UI.Wpf 1.0.1
Dreamine.UI.Wpf 사용자 인터페이스 기능과 구성 요소를 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.UI.Wpf.Localization.DreamineLocalizationManager 클래스 참조

더 자세히 ...

정적 Public 멤버 함수

static void SetLanguageData (Language language, Dictionary< Language, Dictionary< string, Dictionary< string, string > > > data)
static void Load (Func< string, Dictionary< string, Dictionary< string, string > > > loadFn, Language language=Language.English, string? basePath=null)
static string Get (string section, string key)
static string Get (Language lang, string section, string key)
static ? string GetKeyFromValue (Language lang, string section, string value)
static string GetLocalizedEquivalent (string section, string value)

속성

static Language OldLanguage [get]
static Language CurrentLanguage [get, set]
static IReadOnlyDictionary< Language, IReadOnlyDictionary< string, IReadOnlyDictionary< string, string > > > Languages [get]

이벤트

static ? EventHandler LanguageChanged

정적 Private 속성

static readonly HashSet< Language_valid = Enum.GetValues<Language>().ToHashSet()
static readonly Dictionary< Language, Dictionary< string, Dictionary< string, string > > > _langDict = new()
static Language _currentLanguage = Language.Korean
static Language _oldLanguage = Language.Korean

상세한 설명

INI 파일 또는 미리 파싱된 사전을 사용하는 다국어 문자열 저장소를 관리합니다.

DreamineLocalizationManager.cs 파일의 129 번째 라인에서 정의되었습니다.

멤버 함수 문서화

◆ Get() [1/2]

string Dreamine.UI.Wpf.Localization.DreamineLocalizationManager.Get ( Language lang,
string section,
string key )
inlinestatic

지정한 언어의 섹션과 키에 해당하는 번역 문자열을 가져옵니다.

매개변수
lang조회할 언어입니다.
section지역화 섹션입니다.
key지역화 키입니다.
반환값
번역 문자열이며, 찾지 못하면 런타임상 null입니다.

DreamineLocalizationManager.cs 파일의 404 번째 라인에서 정의되었습니다.

405 {
406 if (_langDict.TryGetValue(lang, out var sectionDict) &&
407 sectionDict.TryGetValue(section, out var keyDict) &&
408 keyDict.TryGetValue(key, out var value))
409 return value;
410
411 return null!;
412 }

다음을 참조함 : _langDict.

◆ Get() [2/2]

string Dreamine.UI.Wpf.Localization.DreamineLocalizationManager.Get ( string section,
string key )
inlinestatic

현재 언어의 섹션과 키에 해당하는 번역 문자열을 가져옵니다.

매개변수
section지역화 섹션입니다.
key지역화 키입니다.
반환값
번역 문자열이며, 찾지 못하면 런타임상 null입니다.

DreamineLocalizationManager.cs 파일의 361 번째 라인에서 정의되었습니다.

362 => Get(CurrentLanguage, section, key);

다음을 참조함 : CurrentLanguage.

다음에 의해서 참조됨 : Dreamine.UI.Wpf.Localization.DreamineLocalization.ApplyLocalization(), GetLocalizedEquivalent().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetKeyFromValue()

? string Dreamine.UI.Wpf.Localization.DreamineLocalizationManager.GetKeyFromValue ( Language lang,
string section,
string value )
inlinestatic

지정한 언어와 섹션에서 번역값에 대응하는 첫 번째 키를 찾습니다.

매개변수
lang검색할 언어입니다.
section검색할 섹션입니다.
value역조회할 번역값입니다.
반환값
대응하는 키이며, 찾지 못하면 null입니다.

DreamineLocalizationManager.cs 파일의 454 번째 라인에서 정의되었습니다.

455 {
456 if (_langDict.TryGetValue(lang, out var sectionDict) &&
457 sectionDict.TryGetValue(section, out var keyDict))
458 {
459 foreach (var pair in keyDict)
460 if (pair.Value == value) return pair.Key;
461 }
462 return null;
463 }

다음을 참조함 : _langDict.

다음에 의해서 참조됨 : GetLocalizedEquivalent().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetLocalizedEquivalent()

string Dreamine.UI.Wpf.Localization.DreamineLocalizationManager.GetLocalizedEquivalent ( string section,
string value )
inlinestatic

이전 언어의 표시값을 같은 키에 해당하는 현재 언어의 값으로 변환합니다.

매개변수
section값을 조회할 지역화 섹션입니다.
value이전 언어로 표시된 값입니다.
반환값
현재 언어의 대응값이며, 변환할 수 없으면 원본 값입니다.

DreamineLocalizationManager.cs 파일의 497 번째 라인에서 정의되었습니다.

498 {
499 if (string.IsNullOrEmpty(value)) return value;
500 var key = GetKeyFromValue(_oldLanguage, section, value);
501 if (string.IsNullOrEmpty(key)) return value;
502 var newLang = Get(CurrentLanguage, section, key);
503 return string.IsNullOrEmpty(newLang) ? value : newLang;
504 }

다음을 참조함 : _oldLanguage, CurrentLanguage, Get(), GetKeyFromValue().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ Load()

void Dreamine.UI.Wpf.Localization.DreamineLocalizationManager.Load ( Func< string, Dictionary< string, Dictionary< string, string > > > loadFn,
Language language = Language::English,
string? basePath = null )
inlinestatic

외부 INI 로더 함수를 사용하여 존재하는 언어 파일을 지역화 저장소에 로드합니다.

매개변수
loadFn파일 경로를 받아 섹션과 키 사전을 반환하는 함수입니다.
language로드 후 선택할 언어입니다.
basePath언어 파일 디렉터리이며, 생략하면 애플리케이션의 Languages 폴더입니다.
예외
ArgumentNullExceptionloadFnnull인데 읽을 언어 파일이 있으면 발생합니다.

DreamineLocalizationManager.cs 파일의 308 번째 라인에서 정의되었습니다.

312 {
313 CurrentLanguage = language;
314 string dir = basePath ?? Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Languages");
315
316 foreach (Language lang in Enum.GetValues<Language>())
317 {
318 string langName = lang.ToString();
319 string filePath = Path.Combine(dir, $"Ui{langName}.INI");
320 if (!File.Exists(filePath))
321 filePath = Path.Combine(dir, $"UI_{langName}.INI");
322 if (!File.Exists(filePath))
323 continue;
324
325 _langDict[lang] = loadFn(filePath);
326 }
327 }

다음을 참조함 : _langDict, CurrentLanguage.

◆ SetLanguageData()

void Dreamine.UI.Wpf.Localization.DreamineLocalizationManager.SetLanguageData ( Language language,
Dictionary< Language, Dictionary< string, Dictionary< string, string > > > data )
inlinestatic

미리 파싱된 사전으로 전체 언어 데이터를 교체하고 초기 언어를 선택합니다.

매개변수
language선택할 초기 언어입니다.
data언어, 섹션, 키 순서로 구성된 데이터입니다.
예외
ArgumentNullExceptiondatanull인 경우 발생합니다.

DreamineLocalizationManager.cs 파일의 258 번째 라인에서 정의되었습니다.

261 {
262 _langDict.Clear();
263 foreach (var kv in data)
264 _langDict[kv.Key] = kv.Value;
265 CurrentLanguage = language;
266 }

다음을 참조함 : _langDict, CurrentLanguage.

멤버 데이터 문서화

◆ _currentLanguage

Language Dreamine.UI.Wpf.Localization.DreamineLocalizationManager._currentLanguage = Language.Korean
staticprivate

현재 선택된 언어입니다.

DreamineLocalizationManager.cs 파일의 159 번째 라인에서 정의되었습니다.

◆ _langDict

readonly Dictionary<Language, Dictionary<string, Dictionary<string, string> > > Dreamine.UI.Wpf.Localization.DreamineLocalizationManager._langDict = new()
staticprivate

언어, 섹션, 키 순서로 구성된 지역화 문자열 저장소입니다.

DreamineLocalizationManager.cs 파일의 149 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Get(), GetKeyFromValue(), Load(), SetLanguageData().

◆ _oldLanguage

Language Dreamine.UI.Wpf.Localization.DreamineLocalizationManager._oldLanguage = Language.Korean
staticprivate

직전에 선택되었던 언어입니다.

DreamineLocalizationManager.cs 파일의 168 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetLocalizedEquivalent().

◆ _valid

readonly HashSet<Language> Dreamine.UI.Wpf.Localization.DreamineLocalizationManager._valid = Enum.GetValues<Language>().ToHashSet()
staticprivate

언어 열거형의 유효한 값 집합입니다.

DreamineLocalizationManager.cs 파일의 139 번째 라인에서 정의되었습니다.

속성 문서화

◆ CurrentLanguage

Language Dreamine.UI.Wpf.Localization.DreamineLocalizationManager.CurrentLanguage
staticgetset

현재 선택된 언어를 가져오거나 설정합니다. 유효한 새 값으로 변경되면 LanguageChanged가 발생합니다.

DreamineLocalizationManager.cs 파일의 188 번째 라인에서 정의되었습니다.

189 {
190 get => _currentLanguage;
191 set
192 {
193 if (_valid.Contains(value) && _currentLanguage != value)
194 {
195 _oldLanguage = _currentLanguage;
196 _currentLanguage = value;
197 LanguageChanged?.Invoke(null, EventArgs.Empty);
198 }
199 }
200 }

다음에 의해서 참조됨 : Dreamine.UI.Wpf.Localization.DreamineLocalization.Get(), Get(), GetLocalizedEquivalent(), Load(), SetLanguageData().

◆ Languages

IReadOnlyDictionary<Language, IReadOnlyDictionary<string, IReadOnlyDictionary<string, string> > > Dreamine.UI.Wpf.Localization.DreamineLocalizationManager.Languages
staticget

로드된 지역화 데이터를 언어, 섹션, 키 순서의 읽기 전용 사전으로 가져옵니다.

DreamineLocalizationManager.cs 파일의 220 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Dreamine.UI.Wpf.Localization.DreamineLocalization.TryFindLocalization().

◆ OldLanguage

Language Dreamine.UI.Wpf.Localization.DreamineLocalizationManager.OldLanguage
staticget

직전에 선택되었던 언어를 가져옵니다.

DreamineLocalizationManager.cs 파일의 178 번째 라인에서 정의되었습니다.

이벤트 문서화

◆ LanguageChanged

? EventHandler Dreamine.UI.Wpf.Localization.DreamineLocalizationManager.LanguageChanged
static

현재 언어가 변경된 후 발생합니다.

DreamineLocalizationManager.cs 파일의 210 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Dreamine.UI.Wpf.Localization.StaticLocalizationProxy.StaticLocalizationProxy().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: