本地化不会影响某些.strings文件

时间:2011-12-12 18:23:07

标签: localization xcode4.2 nslocalizedstring localizable.strings

我在项目中使用了SORelativeDateTransformer。

我本地化了我的项目(翻译了故事板并创建了Localizable.strings(我使用了NSLocalizedString)),那部分翻译完美。

问题是SORelativeDateTransformer使用它自己的SORelativeDateTransformer.strings(使用NSLocalizedStringFromTable), 它在demo中有效,但在我的项目中没有。

更新:发现我翻译成挪威本地化的一些标签保留了英文单词。 Oughh!

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我知道这个问题已经很老了,但这是我用过的解决方案。有一种方法可以强制SORelativeDateTransformer根据您的偏好加载特定的本地化字符串。如果您进行手动安装而不是使用pod,则可以根据您的偏好编辑.m。例如,这是我在+(NSBundle *)捆绑方法

中实现它的方式
+ (NSBundle *)bundle {
static NSBundle *bundle = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    NSString *systemLanguage = [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0];//you can use conditional statement after here to load a specific bundle since you now have you language codes here (e.g. 'en' for English, 'zh-Hans' for Chinese (Simplified) etc) 
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"SORelativeDateTransformer" withExtension:@"bundle"];
    bundle = [[NSBundle alloc] initWithURL:url];
    NSString *path = [bundle pathForResource:systemLanguage ofType:@"lproj"];
    bundle = [NSBundle bundleWithPath:path];
});
return bundle;
}

这应该可以解决问题。