是否可以从特定的localized.strings文件,而不是从系统选择的localized.strings文件中只获取一次本地化字符串。我不需要改变所有的本地化文本,只是其中的一些。
我想要做的是从语言首选项定义本地化字符串,同时也定义本地化字符串。因此,一个来自巴西的用户将得到英语的应用程序,但一些文本将特定于该地区,所以我希望他们用葡萄牙语。
但是,来自阿根廷的用户,也使用英语的iPhone,将获得应用的英语,但一些文本将以西班牙语。
有点像
NSLocalizedStringFromTable("string.key","pt_BR",nil)我认为将其发送到表参数是可行的,但由于它查找的是文件名,而不是语言,所以没有效果。
发布于 2013-06-18 14:27:43
您可以使用不同的包来选择特定语言:
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:
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)发布于 2012-05-31 21:36:39
也许您希望使用NSBundle的localizedStringForKey:value:table:而不是NSLocalizedString()。此方法将使您有机会指定不同的表。
[[NSBundle mainBundle] localizedStringForKey:@"stringKey"
value:defaultString table:tableName];顺便说一句,不要忘记目标-C字符串前面的@ ;-)。
发布于 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
https://stackoverflow.com/questions/10841110
复制相似问题