私のアプリケーションでは、英語の一部の場所でいくつかのメッセージを表示したいと思います。そのためには、ユーザーが選択したローカリゼーションに関係なく、メッセージを常にEnglish.lproj/Localizable.stringsファイルから読み取る必要があります。 NSLocalizedStringメソッドは、現時点ではローカライズされた文字列を返すので、この目的には使用できません。デフォルト(または開発用)ローカリゼーションリソースファイルから文字列を読み込む方法を提案してください。Cocoa/Obj-c:優先ローカライゼーションに関係なく英語のlocalizable.stringsから文字列を取得する方法
0
A
答えて
0
NSLocalizedStringFromTable
を試しましたか?文字列に使用するファイルを指定できます。あなたは手動でそれを行うために必要があるとしている
4
は、次のように:だから
- (NSString *)englishLocalizedStringForKey:(NSString *)key inTable:(NSString *)table {
if (table == nil) {
table = @"Localizable";
}
NSString *path = [[NSBundle mainBundle] pathForResource:table
ofType:@"strings"
inDirectory:nil
forLocalization:@"en"];
if (path == nil) {
return nil;
}
NSData *data = [NSData dataWithContentsOfFile:path];
id plist = [NSPropertyListSerialization propertyListWithData:data
options:0
format:NULL
error:NULL];
if (![plist isKindOfClass:[NSDictionary class]]) {
return nil;
}
return [plist objectForKey:key];
}
、ここで何が起こっているのです。
- あなたは
en.lproj
フォルダ内のファイルであれば - リターン
nil
を{table}.strings
のパスを探すnil
- に渡すことが起こった場合
@"Localizable"
をデフォルト、パラメータからテーブル(文字列はファイル)の名前を取得します。存在しません - ファイルのデータの塊として読み取る
- ブロブをプロパティリストとしてデコードしようとしました。
.strings
ファイルは古いスタイルのplistの形式であるので、これは動作しますので、我々は我々がNSDictionary
背中を取得していない場合は、私たち - ため
NSDictionary
にそれを構築するために、このplistのパーサーを使用nil
- リターンを返すことができるものは何でも要求キー(鍵が見つからない場合
nil
を返すことがあります。)
読み取りおよびデシリアライズビットが潜在的に高価なことができますのための辞書は持っているので、私はどこかのプロパティに適切な情報をキャッシュするお勧めします。
1
これらの特殊文字列を独自の文字列テーブルに配置し、そのテーブルを英語のローカリゼーションに配置することをおすすめします。ベネディクトが提案するように、この方法でNSLocalizedStringFromTable()
を使用することができます。ローカライゼーション機能は、要求されたファイルが見つかるまで、ユーザーの優先検索順序を使用してロケールを検索します。
この方法の利点は、この表にのみ表示される文字列の翻訳を避けることができることです。
+0
しかし、これらの特別なメッセージもローカライズする必要があります。だから私は別のファイルに入れられません。 – Abhijeet
関連する問題
- 1. ajaxフォームからMySQLに英語以外の文字を取得する方法
- 2. SQLクエリレコードセットからtclで英語以外の文字を取得する方法
- 3. ローカライゼーションに悪い英語の文字列を検出するSQLクエリ
- 4. タミール文字列をJavaの英語文字列に変換する方法
- 5. CoreAudioから優先チャンネルレイアウトを取得する方法
- 6. Pythonでデータベースから英語以外の文字を読み取る方法は?
- 7. Guyrati言語(他の言語)のiosの文字列から単一文字を取得する方法
- 8. インドネシア語の文字列から日時の値を取得する方法
- 9. Nunjucksテンプレート言語の文字列から部分文字列を取得する方法はありますか?
- 10. データフレームから単なる文字列を取得する方法
- 11. ファイルから英語以外の文字を読み取る
- 12. 文字列から単語の頻度を取得する方法は?
- 13. preg_splitを英語で分割した文字列(英語以外の文字)
- 14. 文字列の先頭から文字を切り取る方法。 Android
- 15. JavaScriptから正確な文字列を取得する方法
- 16. 文字列[0]文字列の先頭文字を取得
- 17. 文字列の配列からランダムオブジェクトを取得する方法
- 18. スウィフトの大文字小文字に関係なく列挙型から関連する値を抽出する
- 19. SQL Serverの結合テーブルからデータを優先的に取得する方法
- 20. mysqlの文字列から部分文字列を取得する方法
- 21. java最後の単語を文字列から取得する
- 22. 文字列に英語の文字があるかどうかを確認する方法
- 23. Androidの非英語ロケールでCalendar.getInstance()。getTime()から英語のdatetimeを取得する方法は?
- 24. PHPの文字列から英数字を除くすべての文字を取り除く
- 25. 文字列内の#で始まる単語の取得方法
- 26. DOMから英語以外の文字列(タイトル)を取得し、それを渡すに電子メールJavaScriptで
- 27. Twig - 文字列から単語数を取得する
- 28. Pythonの文字列をバージョンに無関係にする方法
- 29. 文字列から次の文字が英語の文字まで選択してください
- 30. 解析JSON文字列(英語の)
-1は機能しません。これにより、言語ではなく '.strings'ファイルの名前を指定することができます。 –