2017-09-06 4 views
0

Xamarin.Forms 프로젝트에 SharePlugin을 사용하고 싶지만 현지화을 관리하는 방법을 모르겠다. 프랑스와 프랑스에서 모두 Android 및 iPhone 기기를 사용할 수 있습니다.Xamarin.Forms : 공유 팝업의 현지화를 관리하는 방법은 무엇입니까?

Android의 경우 공유 팝업이 프랑스어로 잘 표시됩니다. 하지만 iOS에서는 공유 팝업이 영어로 표시됩니다.

<key>CFBundleDevelopmentRegion</key> 
    <string>fr</string> 
<key>CFBundleLocalizations</key> 
<array> 
    <string>fr</string> 
</array> 

을하지만 아무것도 변경하지 않은 :

나는 Info.plist에서 언어를 지정하려고했습니다. SharePlugin에서 공유 대화 상자의

스크린 샷은 : screenshot2

내가 사파리 나 페이스 북과 같은 다른 응용 프로그램에서 공유 대화 상자를 사용하는 경우, 대화 상자가 아니라 프랑스어로 표시됩니다. 사파리에서 "기본"공유 대화

스크린 샷 : screenshot1

당신은 설명이겠습니까?

[편집] 솔루션을 재개 한 후 잘 작동합니다. Visual Studio 외부에서 info.plist을 편집했기 때문에 그럴 것이라고 생각합니다. 변경 사항은 고려되지 않았습니다.

+0

당신은 iOS 장비 또는 시뮬레이터 테스트? – Jason

+0

iOS 및 Android 용 실제 기기에 대한 테스트를 수행했습니다. –

답변

1

올바른 언어를 표시하려면 각 플랫폼에서 운영 체제를 쿼리하여 사용자가 선택한 언어를 확인해야합니다.

종속성 서비스을 사용하여 해당 정보를 Xamarin.Forms 앱에 표시하고 각 플랫폼에 맞게 구현해야합니다.

Here은 간단합니다. PCL, Xamarin.iOS에서 Localize.cs에서 ILocalize.cs을 찾아 폴더를 해당로 복사합니다.

코드 더 세부 here를 참조

public App() 
{ 
    InitializeComponent(); 
    if (Device.OS == TargetPlatform.iOS || Device.OS == TargetPlatform.Android) 
    { 
     // determine the correct, supported .NET culture 
     var ci = DependencyService.Get<ILocalize>().GetCurrentCultureInfo(); 
     DependencyService.Get<ILocalize>().SetLocale(ci); // set the Thread for locale-aware methods 
    } 
    MainPage = new FormsApp.MainPage(); 
} 

에서 (클래스의 네임 스페이스를 변경 잊지 마세요).

내 테스트 :

enter image description here

+0

감사합니다. @Core Xia. 'ILocalize.cs'와'Localize.cs'를 복사했습니다. 필자는 또한'App.cs'의 18-25 행을 복제했습니다. 하지만 시작시 예외가 생깁니다. 나는 뭔가를 잊었습니까? –

+0

@ 골드.예외 정보 란 무엇입니까? –

+0

그것은'System.NullReferenceException : 객체 참조가 객체의 인스턴스로 설정되지 않았습니다'입니다. –