0

サポートされているすべての言語をライブラリからテーブルビューに一覧表示する必要があるアプリケーションを作成しています。そのため、ユーザーが設定に移動して言語を変更する必要はありません。必要に応じて、アプリから直接変更できます。たくさん検索しましたが、可能かどうかわかりません。だから誰かがこれで私を助けることができますか?

前もって感謝します

4

3 に答える 3

0
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];

これにより、Appleが好むu言語が提供されます。しかし、サポートされている言語についてはわかりません。これはあなたが探しているリストかもしれません

for (NSString *language in languages) {
    NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:language] ;
    displayname = [locale displayNameForKey:NSLocaleIdentifier value:language];
}
于 2013-01-11T05:53:28.010 に答える
0

Language.plist ファイルを作成し、言語の辞書を作成して、デフォルトのテキストをキーとして保持します

次に、Defines.h でこのマクロを定義します。

#define LocalizedString(key)     [[[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Language" ofType:@"plist"]] valueForKey:[NSString stringWithFormat:@"%d",LANGUAGE_ID]] valueForKey:key]

プログラムでグローバルな言語 ID を設定し、次のように LocalizedString(@"Hi") を使用します

lang Id に応じて、選択したキー hi の翻訳値が表示されます。

于 2013-01-11T06:04:24.713 に答える
0

アプリケーション用にさまざまな言語の pList ファイルを生成できます。

ローカライズ言語のサンプルコードを説明しています。

NSDictionary *dictLang;

-(void)localization_language{

    NSString *errorDesc = nil;
    NSPropertyListFormat format;
    NSString *rootPath;

    if (lang == 1) {
       rootPath = [[NSBundle mainBundle] pathForResource:@"FRA" 
                                               ofType:@"plist"];
    }
    else if(lang == 0){
       rootPath = [[NSBundle mainBundle] pathForResource:@"ENG" 
                                               ofType:@"plist"];
    }

    NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:rootPath];    
    dictLang = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc];
    NSLog(@"PLIST retrive:%@",plistXML);    

    if (!dictLang) {
       NSLog(@"Error reading plist: %@, format: %d", errorDesc, format);
    }
}

このコードは、lang 変数に従って pList ファイルを検索します。フランスは 0、英語は 1 です。

次に、辞書から値を設定します。

lbl1.text =[dictLang objectForKey:@"Key1"];
lbl2.text =[dictLang objectForKey:@"Key2"];

そして、pList ファイルに保存されている値を表示します。

うまくいけば、言語のグローバリゼーションでうまくいくでしょう。ありがとう。

于 2013-01-11T05:56:30.027 に答える