매우 간단한 것이므로 작동하지 않습니다. 그래서 리소스 파일 + ResourceManager를 사용하여 내 dll을 글로벌화하고 싶습니다.CultureInfo가 지정되어 있지만 ResourceManager가 동일한 리소스를 반환합니다.
var p = new ResourceManager("Appname.Default", Assembly.GetExecutingAssembly());
이
System.Diagnostics.Debug.WriteLine(p.GetString("greeting"));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("nl")));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("nl-NL")));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("en")));
같은 문자열을 가져옵니다 그리고 4 번 같은 문자열을 반환 :
나는 ResourceManager에 다음과 같이 호출합니다. 내 파일은
Default.resx
Default.en.resx
Default.nl.resx
Default.nl-NL.resx
설정이 동일한 모든 파일
이라고하지만, 언급 한 바와 같이 - 기본 파일 만 자원이 사용됩니다.여기에서 무엇을 간과하겠습니까?
실제로 위성 어셈블리로 컴파일 점점 된 .resx 파일이 있습니까? bin \ Debug 폴더를보고 이름이 en, nl 및 nl-NL 인 하위 디렉토리를 찾으십시오. –
'Default.ResourceManager.GetString'을 통해 번역을 가져 오십시오. 대부분 자원 관리자가 잘못된 매개 변수를 가져옵니다. –