アプリで NSLocalizedString を使用したいのですが、常に失敗しました。私がすることは:
- プロジェクト プロパティで 3 つのローカリゼーションを定義します (以下のスクリーンショットを参照)。
- 新しいファイルを作成します: リソース文字列ファイル
- file.strings が存在する場合はアプリ バンドルをチェックインします
次に、次のように NSLocalizedStrings を使用しますが、機能しません!
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
NSString *v1 = NSLocalizedString(@"MyWindow", nil);
//NSString *v1 = [[NSBundle mainBundle] localizedStringForKey:(@"MyWindow") value:@"" table:nil];
[label setStringValue:v1];
}
私の 3 つの .strings ファイルでは、以下のキー/値を定義しています: "MyWindow" = "Ma Fenetre";
通常、ラベルには「MyWindows」ではなく「Ma Fenetre」と表示されます。ここからサンプル プロジェクトをダウンロードして、問題の場所を教えてください。
アプリ バンドルの Resources フォルダーの内容を以下に示します。
DerivedData om$ find test/Build/Products/Debug/test.app/Contents/Resources/
test/Build/Products/Debug/test.app/Contents/Resources/
test/Build/Products/Debug/test.app/Contents/Resources//de.lproj
test/Build/Products/Debug/test.app/Contents/Resources//de.lproj/File.strings
test/Build/Products/Debug/test.app/Contents/Resources//en.lproj
test/Build/Products/Debug/test.app/Contents/Resources//en.lproj/File.strings
test/Build/Products/Debug/test.app/Contents/Resources//fr.lproj
test/Build/Products/Debug/test.app/Contents/Resources//fr.lproj/File.strings
test/Build/Products/Debug/test.app/Contents/Resources//MainMenu.nib
ありがとうエルフォイロス