2016-11-08 8 views
0

は、私が最初に私がよくXamarinイオスローカライズ

public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { 
     var lang = NSLocale.PreferredLanguages[0]; 

     Window = new UIWindow(UIScreen.MainScreen.Bounds); 

     UIStoryboard Storyboard = UIStoryboard.FromName("Main", null); 
     UIViewController initialViewController = Storyboard.InstantiateInitialViewController() as UIViewController; 

     Window.RootViewController = initialViewController; 
     Window.AccessibilityLanguage = lang; 
     Window.MakeKeyAndVisible(); 

     return true; 
    } 

I」が(だから、AppDelegate内)私のMainStoryboardを呼び出すSplashcreenを持っている... Xamarinに私の絵コンテを翻訳するために複数回試みたが、それを動作させることができませんMain.storyboardというストーリーボードを持っています。 res.ourceフォルダ内にen.lprojとfr.lprojがあります。各フォルダの中に私が名前の特定のファイルを持っている(私のプロジェクトフォルダに続き)マニュアルのようなMain.stringsフランス語でMaiin.stringsの

enter image description here

例:ある

"458.text" = "Rechercher"; 
"473.text" = "Parametres"; 
"501.text" = "Informations"; 
"480.normalTitle" = "Mise a jour"; 
"481.normalTitle" = "A propos"; 

plistファイルまた訂正してください:

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

私の場合、これはすべて正しいですが動作しません...私はまだ "???"私はストーリーボードに入れました。 (458項目中に「???」がありますが、ローカライズでは「Rechercher」で変換する必要があります)。

ありがとうございました!

+0

はあなたが読んで持っていますhttps://developer.xamarin.com/guides/ios/advanced_topics/localization_and_internationalization/#storyboard –

+0

Main.Stringファイルを複製して同じ問題を修正しました。まだ問題があると感じる場合は、 –

+0

はい"ドキュメントのように"意味するもの... –

答えて

0

限り、プロジェクトのツリー構造として、あなたはResourceディレクトリを使用する必要はありません、ここで私は私の非発達の言語のための私のLaunchScreen /メインstroyboardsため./Design/Base.lproj/、およびSupport/en.lprojSupport/fr.lproj/を使用しています:

.stringsファイルを含むフォルダ名以外は、BundleResourcesビルドタイプとフラグが付けられています。このようCFBundleDevelopmentRegionとしてinfo.plist

. 
├── AppDelegate.cs 
├── Assets.xcassets 
│   ├── AppIcon.appiconset 
│   │   └── Contents.json 
│   ├── Contents.json 
│   └── LaunchImage.launchimage 
│    └── Contents.json 
├── Design 
│   └── Base.lproj 
│    ├── LaunchScreen.storyboard 
│    └── Main.storyboard 
├── Entitlements.plist 
├── Info.plist 
├── Main.cs 
├── Media 
│   └── hayley.jpg 
├── Support 
│   ├── en.lproj 
│   │   ├── LaunchScreen.strings 
│   │   └── Main.strings 
│   └── fr.lproj 
│    ├── LaunchScreen.storyboard 
│    ├── LaunchScreen.strings 
│    └── Main.strings 
├── ViewController.cs 
├── ViewController.designer.cs 
└── iOSLocalization.csproj 

エントリが示す言語に影響を与えない、また(このエントリはApp Storeのためのものです)CFBundleLocalizations配列からエントリを削除しません。

ユアーズそれ以外のアプリには含めていない言語用の.lprojフォルダを削除する、2つのエントリ、enfrを持っている必要があります。 (またNoneのビルドタイプにそのフォルダ内のすべてのファイルを設定することができます。

お使いのデバイスまたはシミュレータは、あなたが照らし合わせてローカライズをテストしている言語を補正するように設定されていることを確認してください。

+0

CFBundleについての説明をありがとうございます。 en.lprojは私の開発言語なので削除しました。しかし、youuが解決しようとしていたことを試してもうまくいかなかった。私はリソースフォルダ内にfr.lprojを置く必要があります。それ以外の場合は動作しません –