首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Iphone从特定的localized.strings文件获取本地化文本

Iphone从特定的localized.strings文件获取本地化文本
EN

Stack Overflow用户
提问于 2012-05-31 20:53:33
回答 3查看 4.9K关注 0票数 10

是否可以从特定的localized.strings文件,而不是从系统选择的localized.strings文件中只获取一次本地化字符串。我不需要改变所有的本地化文本,只是其中的一些。

我想要做的是从语言首选项定义本地化字符串,同时也定义本地化字符串。因此,一个来自巴西的用户将得到英语的应用程序,但一些文本将特定于该地区,所以我希望他们用葡萄牙语。

但是,来自阿根廷的用户,也使用英语的iPhone,将获得应用的英语,但一些文本将以西班牙语。

有点像

代码语言:javascript
复制
 NSLocalizedStringFromTable("string.key","pt_BR",nil)

我认为将其发送到参数是可行的,但由于它查找的是文件名,而不是语言,所以没有效果。

EN

回答 3

Stack Overflow用户

发布于 2013-06-18 14:27:43

您可以使用不同的包来选择特定语言:

代码语言:javascript
复制
NSString * path = [[NSBundle mainBundle] pathForResource:@"pt-PT" ofType:@"lproj"];
NSBundle * bundle = nil;
if(path == nil){
    bundle = [NSBundle mainBundle];
}else{
    bundle = [NSBundle bundleWithPath:path];
}
NSString * str = [bundle localizedStringForKey:@"a string" value:@"comment" table:nil];

Swift 3.0:

代码语言:javascript
复制
extension Bundle {
    static let base: Bundle = {
        if let path = Bundle.main.path(forResource: "Base", ofType: "lproj") {
            if let baseBundle = Bundle(path: path) {
                return baseBundle
            }
        }
        return Bundle.main
    }()
}

let localizedStr = Bundle.base.localizedString(forKey: key, value: nil, table: table)
票数 8
EN

Stack Overflow用户

发布于 2012-05-31 21:36:39

也许您希望使用NSBundle的localizedStringForKey:value:table:而不是NSLocalizedString()。此方法将使您有机会指定不同的表。

代码语言:javascript
复制
[[NSBundle mainBundle] localizedStringForKey:@"stringKey" 
  value:defaultString table:tableName];

顺便说一句,不要忘记目标-C字符串前面的@ ;-)。

票数 3
EN

Stack Overflow用户

发布于 2012-05-31 21:43:35

你是说NSLocalizedStringFromTable

这里有文档:http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html#jumpTo_112

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10841110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档