LOCBAM 및 리소스를 단일 위성 어셈블리로 결합하십시오
-
07-07-2019 - |
문제
WPF의 현지화에 대한 권장되는 접근 방식은 LOCBAML 도구를 사용하여 지역화 가능한 항목을 예를 들어 CSV 파일로 추출하고 항목을 원하는 언어로 번역 하고이 CSV 파일에서 새로운 Sattelite 어셈블리를 재생하는 것입니다. 그러나 내 실험에서 이것은 리소스에서 위성 어셈블리 생성과 충돌하는 것으로 보인다. Resx 파일은 리소스를 단일 리소스 파일로 결합하지 않고 기존 위성 어셈블리를 무시하지 않기 때문이다.
locbaml /generate에서 출력의 "병합"을 수행하기위한 권장되는 접근법 (또는 더 나은 기존 도구)과 resources.resx 파일에서 RESGEN을 실행하는 출력 (기본적으로 빌드에서 VS에서 수행)에서 RESGEN의 출력을 수행하는 것이 좋습니다. 누구든지 같은 문제를 해결하고 있습니까?
해결책
Locbaml에서 .Resources를 수동으로 수행 한 다음 어셈블리 링커를 사용하여 RESX 및 BAML 리소스를 병합해야합니다.
프로세스는 다음과 같이 보입니다.
LocBaml.exe /generate ..\obj\WpfLocalization.g.en-US.resources
/trans:Res\de.csv /out:de /culture:de
REM Combine resource files w/ Assembly Linker
al /template:WpfLocalization.exe
/embed:de\WpfLocalization.g.de.resources
/embed:..\..\obj\WpfLocalization.Properties.Resources.de.resources
/culture:de /out:de\WpfLocalization.resources.dll
(배치 파일의 한 줄에 모든 것이).
위의 것을 프로젝트에 맞게 사용자 정의 한 배치 파일에 넣을 수 있습니다. LOCBAM은 출력 파일과 동일한 폴더에 있어야합니다. 이것을 포스트 빌드 작업으로 추가 할 수 있습니다.
다른 팁
나는 사용하는 것을 선호한다 WPF 현지화 확장 당신이 찾을 수있는 프로젝트 코드 플렉스 내 WPF 프로젝트를 현지화합니다.
Winforms보다 동일한 접근 방식을 사용할 수 있으며 Locbaml보다 사용하기가 훨씬 쉽습니다.
약간의 검색 과이 페이지에서 Locbaml을 사용하는 몇 가지 방법을 설명하여 Resources.resx 및 Locbaml 생성 리소스를 단일 파일 (al.exe 사용)으로 병합하는 방법에 대한 매우 자세한 설명을 제공합니다.
이 페이지는 Locbaml을 사용하는 세 가지 방법을 설명하고 접근 3의 마지막 단계를 찾고있었습니다.