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

发布于 2024-12-20 17:59:46 字数 317 浏览 1 评论 0原文

我在我的项目中使用 SORelativeDateTransformer 。

我本地化了我的项目(翻译了故事板并创建了 Localized.strings(我使用了 NSLocalizedString)),并且该部分翻译得非常完美。

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

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

有什么想法吗?

I use SORelativeDateTransformer in my project.

I localized my project (translated storyboard and created Localizable.strings(I used NSLocalizedString)) and that part translates perfect.

The problem is that SORelativeDateTransformer uses it's own SORelativeDateTransformer.strings(uses NSLocalizedStringFromTable),
which works in demo, but not in my project.

Upd.: Found also that some labels, that I translated to Norwegian localization keep English words. Oughh!

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幸福还没到 2024-12-27 17:59:46

我知道这个问题很老了,但这是我使用的解决方案。有一种方法可以强制 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;
}

这应该可以解决问题。

I know this question is quite old but here is a solution I used. There is a way to force SORelativeDateTransformer to load a particular Localisation string base on your preference. If you did manual installation instead of using pod then you can edit the .m base on your preference. For instance this is how I am implementing it in the + (NSBundle*) bundle method

+ (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;
}

This should do the trick.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文