2016-08-23 31 views
4

내 Universal-Windows-App에 문제가 있습니다. 사용자에게 응용 프로그램의 언어를 변경할 수있는 옵션을 제공하고 있습니다.UWP : 언어 리소스 파일이 올바르게 배포되지 않았습니다.

이 기사에서는 각 언어에 대해 "Ressources.resw"파일을 만들고 XAML 코드는 x:UID= 부분을 통해 리소스를 참조합니다. 언어가 변경되었습니다 primaryLanguageOverride 내 환경에서는 정상적으로 작동합니다. 그러나 Store->Create App Packages을 통해 앱을 배포 한 다음 (다른) Windows-10 컴퓨터에서 앱을 사이드로드하려고하면 언어 변경이 올바르게 반영되지 않습니다. 예를 들어 날짜 형식이 올바르게 변경되지만 리소스 파일을 가리키는 속성이 올바르게 변경되지 않습니다.

하지만 사용자가 해당 Windows-Language-Pack을 설치 한 경우 앱이 정상적으로 작동합니다. 내 생각 엔 윈도우는 시스템에 설치된 언어와 함께 배포되는 언어 리소스 파일을 확인할 것입니다 :

enter image description here

어떻게이 문제를 방지 할 수 있습니까?

+0

FWIW, UWP 리소스는 언어 팩 설치 여부에 의존하지 않습니다. –

답변

10

그러나 Store-> Create App Packages를 통해 앱을 배포 한 다음 (다른) Windows-10 컴퓨터에서 앱을 사이드로드하려고하면 언어 변경이 올바르게 반영되지 않습니다.
하지만 사용자가 해당 Windows-Language-Pack을 설치 한 경우 앱이 정상적으로 작동합니다. 내 생각 엔 윈도우 언어 리소스 파일이 시스템에 설치 언어로 배포합니다 체크 것입니다 : 내가 설정 한 경우

내가이 문제를 재현 할 수있는 "응용 프로그램 번들을 생성" "항상" 또는 "필요한 경우", 사용자가 해당 Windows-Language-Pack을 설치 한 경우에만이 방법을 사용하면 앱이 정상적으로 작동합니다.

그것이 그 이유 그것 때문에 우리가 설정 한 경우 "응용 프로그램 번들을 생성"을 "필요한 경우", "항상" 또는 , 그것은 응용 프로그램을 만듭니다 번들로. 이는 다운로드를 최적화하기 위해 응용 프로그램을 여러 부분으로 나눌 것임을 의미합니다. 장치와 관련된 부분 만 다운로드됩니다. 예를 들어, 다른 해상도의 자산이있는 경우 장치에 적합한 자산 만 다운로드합니다. 언어에 대해서도 똑같은데, 장치의 언어와 관련된 리소스 파일 만 다운로드합니다. 따라서 언어를 변경하려고 시도하면 다른 언어가 설치되지 않아 동일한 기본 언어로 되돌아갑니다. 따라서 해당 Windows-Language-Pack이 설치되어 있지 않은 경우 응용 프로그램은 리소스 파일을 가리키는 해당 속성에 대한 관련 언어를 표시하지 않습니다.

자세한 내용은 this blog을 참조하십시오.

어떻게 피할 수 있습니까?이러한 문제가 발생하지 않도록하려면

이 해결 방법은 나는 내 옆에서 테스트 한 응용 프로그램 패키지와 를 만들 때 다음과 같이 "결코"을 "응용 프로그램 번들을 생성"을 설정하는 것입니다, 그것은 작동 fine : enter image description here

관련 문제