클래스 라이브러리가 있습니다. 프레임 워크라고 부릅니다. 의 AssemblyInfo.cs에서, 내가 가진하십시오 \ 자료 \ 디렉토리에서ResourceManager가 모든 문화권을 자동으로로드합니까?
[assembly: NeutralResourcesLanguage("en-US")]
, 나는 나는, FrameworkResources.resx 및 FrameworkResources.fr-FR.resx 헬퍼 클래스에서
이
: 나는 같은 것을 할 경우, 코드에서private static ResourceManager manager = new ResourceManager("Framework.Resources.FrameworkResources", Assembly.GetExecutingAssembly());
: 내 자원 관리자로 이것을 사용하고
CurrentCulture에서 디버깅하고 가져올 수 있으며 (및 UICulture) FR-FR로 설정되어 있지만 fr-FR 리소스 파일의 프랑스어 메시지가 아닌 항상 기본 영어 메시지를 반환합니다.
ResourceManager가 자동으로이를 연결해야합니까, 아니면 현재 문화권을 쿼리하는 코드를 작성하고 올바른 파일을 열어야합니까? 나는 그것이 현재 문화권이기 때문에 Resource Manager가 fr-FR 문자열을 얻는 것을 알 것이라고 가정 할 때 틀린가?
이것이 작동하지 않는 이유는 확실하지 않습니다.
업데이트 : 위성 어셈블리가 있으므로 컴파일 부분이 정상적으로 진행될 것으로 생각됩니다. 문제는 내 리소스 관리자에 있다고 생각합니다. 이 결과
ResourceManager manager =
new ResourceManager("Framework.Resources.FrameworkResources",
Assembly.GetExecutingAssembly());
Debug.WriteLine("de-DE : " + manager.GetString(resourceName, new CultureInfo("de-DE")));
Debug.WriteLine("el : " + manager.GetString(resourceName, new CultureInfo("el")));
Debug.WriteLine("es-MX : " + manager.GetString(resourceName, new CultureInfo("es-MX")));
Debug.WriteLine("fr-FR : " + manager.GetString(resourceName, new CultureInfo("fr-FR")));
Debug.WriteLine("hi : " + manager.GetString(resourceName, new CultureInfo("hi")));
Debug.WriteLine("zh-CN : " + manager.GetString(resourceName, new CultureInfo("zh-CN")));
이 : 모든 장소에 있더라도
de-DE : Argument '%ArgumentName%' cannot be null or empty. el : Argument '%ArgumentName%' cannot be null or empty. es-MX : Argument '%ArgumentName%' cannot be null or empty. fr-FR : Argument '%ArgumentName%' cannot be null or empty. hi : Argument '%ArgumentName%' cannot be null or empty. zh-CN : Argument '%ArgumentName%' cannot be null or empty.
그래서, 내 자원 관리자가 간단하지 않다 나는 ResourceSets를 사용하여 다음과 같이 명시 적으로는 ResourceManager를 사용하여 시도 그 위성 어셈블리를 들여다 보려고. 그리고 그 어셈블리에서 분명히 위의 문자열의 번역 된 버전이 있습니다. 따라서 문화권의 FrameworkResources.resx 파일 대신 확실히 기본 텍스트 인 FrameworkResources.resx 파일을 읽습니다.
알고있는 한, 이미 맞습니다. 출력 폴더를 확인 했습니까 - 위성 어셈블리가 적절하게 만들어 졌습니까? –
예 - \ bin \ Debug에 Framework.dll이 있습니다. 그런 다음 fr-FR 하위 디렉토리가 있고 안에 Framework.resources.dll이 있습니다. –
나는이 지역에서 특별히 경험이 없지만 나에게 맞는 것처럼 들린다. –