NSLocalizedString은 참조 된 키의 예상 값을 가져 오는 절반의 시간에만 작동합니다. NSLocalizedString에 지정된 키 이름을 얻는 다른 시간은 다른 모든 실행에서 일관되게 발생합니다.NSLocalizedString은 때때로 문자열을로드합니다.
현재 현재 영어 만 지원하고 있습니다.
내가 전화 해요 : en.lproj/Localizable.strings의
NSString *someText = NSLocalizedString(@"mystring.keyname", nil);
내용 :
"mystring.keyname" = "Hello there!";
이 제대로 작동하지 않습니다, someText's
값이 mystring.keyname
입니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSLog(@"Strings file: %@", [bundle pathForResource:@"Localizable" ofType:@".strings"]);
NSLog(@"Localizations: %@", [bundle localizations]);
NSLog(@"Local Dict: %@", [bundle localizedInfoDictionary]);
NSLog(@"localizedStringForKey: %@", [bundle localizedStringForKey:@"mystring.keyname"value:@"Wha happened?" table:nil]);
NSLog(@"Localized String: %@", NSLocalizedString(@"mystring.keyname", @"Are you sure you want to start a new game?"));
}
이 예상 값마다 다른 실행을 출력 : 여기에
내가 신뢰성을 테스트하고있어 방법
내 파일과 같은 배치되어Run #1:
Local Dict: (null)
localizedStringForKey: Hello there!
Localized String: Hello there!
Run #2:
Local Dict: (null)
localizedStringForKey: Wha happened?
Localized String: mystring.keyname
:
WORKSPACE_DIR/
my_workspace_name.xcworkspace
PROJECT_DIR/
- my_project_name.xcodeproj
RESOURCES_DIR/
- en.lproj/
Localizable.strings
Xcode의 프로젝트 수준 설정 :
1) Build Phases has Localizable.strings listed in the "Copy Bundle Resources".
2) Build Settings:
Convert Copied Files => YES
Property List Output Encoding => binary
Strings file Output Encoding => UTF-16
3) Info.plist's: CFBundleDevelopmentRegion => 'en'
File Inspector에서 문자열 파일을 선택한 텍스트 설정 옵션이 보이지 않지만 Localizable.strings은 UTF-16으로 구성됩니다. 하지만 Unix LF를 사용하여 유니 코드 (UTF-16)로 인코딩하는 TextWrangler에서 파일을 열어 인코딩 유형을 확인했습니다.
항상 작동시키는 방법에 대한 제안 사항이 있으십니까?
해결 방법을 찾으셨습니까? 동일한 문제가 발생하여 다른 지역화가 작동하지 않습니다. –