문제

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을 사용하여 WPF 국소화

이 페이지는 Locbaml을 사용하는 세 가지 방법을 설명하고 접근 3의 마지막 단계를 찾고있었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top