iOS実現アプリケーション内でローカル言語を切り替える方法の例


前言
私達の応用は国内のユーザーグループだけに向いています。普通は一つの言語である中国語だけをサポートすればいいです。外国人ユーザーに向けて国際化を行う必要があります。言語の変化だけでなく、デザインスタイル、ページレイアウト、インタラクティブ効果の変化も含まれています。例えば、微信、微博、QQなどの応用には言語を切り替える機能があります。
最近は仕事のために、アプリケーションの内部に言語を設定する必要があります。デフォルトではシステム設定の言語を使用しています。ユーザーがApp内に他の言語を設定していたら、後で新しい言語で画面を表示します。
iOS判定アプリケーションの言語
      1.iOSはまずユーザーの言語選好設定を検索する(設定-共通-言語と地域)
      2.あなたのアプリケーションがユーザーの言語をサポートしているかどうかを検出し、プリファレンス設定の最初の言語で、アプリケーションがその言語に対応するフォルダ(拡張子は.lproj、ファイル名部分、英語はen、中国語はzh-Hans、日本語はja)を含んでいるかどうかを検出します。このプロセスを繰り返します。
      3.システムがアプリケーションのために言語を確定すると、対応するlprojフォルダがローカライズリソースとして使用されます。
そこで、新しい車輪を書いた。SOLocalization。 ( ローカルダウンロード)、皆さんに喜んでもらいたいですが、実はコードは簡単で、興味のあるものは直接ソースコードを読みに行きます。補足があれば、直接に私にpulrequestを提出してください。以下は多く話しません。詳しく紹介してみましょう。
方法は以下の通りです
1.ローカライズファイルを作成します。
ローカライズされた文字列ファイルを作成します。ファイル名はデフォルトのinfoPlist.strigsでもいいし、他のファイルにサポートする言語や内容を設定してもいいです。
2.SOLocalizationを導入します。
3.SOLocalizationを設定します。
サポートされている言語とデフォルトの言語を設定します。システム設定されている言語がサポートされていない言語の場合は標準言語が使用されます。

[SOLocalization configSupportRegions:@[SOLocalizationEnglish, SOLocalizationSimplifiedChinese] fallbackRegion:SOLocalizationEnglish];
4.UICKtオブジェクトを設定します。
UIKitオブジェクトに適切な属性を設定します。以下のように簡単に設定します。言語が切り替わると、これらのUIKitオブジェクトのテキストの内容が自動的に新しく設定された言語に変わります。追加の処理は必要ありません。

UIBarButtonItem *change = [[UIBarButtonItem alloc]initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(changeLanguage:)];
//     @"Setting"    strings          key,  
change.sol_title = @"Setting"; 
self.navigationItem.rightBarButtonItem = change;
self.label.sol_text = @"label";
[self.button sol_setTitle:@"button" forState:UIControlStateNormal];
self.textField.sol_placeholder = @"textField placeholder";
self.navigationItem.sol_title = @"title";
SOLocalizationが言語を切り替えた後にテキストの内容を自動的に変更するUIKitオブジェクトをサポートしていない場合、必要なローカル文字列をこのように取得することができる。

//    “title”   strings        key,“infoPlist”          
NSString *localizedString = SOLocalizedStringFromTable(@"title", @"infoPlist");
5.アプリケーション内で使用する言語を変更する

// to use English
[SOLocalization sharedLocalization].region = SOLocalizationEnglish;
// to use     
[SOLocalization sharedLocalization].region = SOLocalizationSimplifiedChinese;
6.カスタムローカル文字列ファイル名
SOLocalizationが提供するAPIでは、デフォルトで使用するローカライズ文字列ファイルの名前はinfoPlist.strigsファイルであり、他のファイル名(例えば、このファイル名:local.strigs)を使用すれば、以下の通りでよい。

//       UIKit   
label.sol_table = @"local";
//    SOLocalizedStringFromTable  
NSString *localizedString = SOLocalizedStringFromTable(@"title", @"local");
締め括りをつける
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考となる学習価値を持っています。質問があれば、メッセージを書いて交流してください。ありがとうございます。