NSLocalizedString问题 - 保存字符串的变量的本地化

时间:2011-06-06 14:20:01

标签: ios4 localization nslocalizedstring

//Viewcontroller.m code
NSLocalizedString(@"attributes",@"Attribute Name")

//Localizable.string code
"attributes"="attributes-french"; 

此方法适用于@“属性”的本地化

如果我想使用变量

,那么代码应该是什么

我正在使用

//Viewcontroller.m code
NSString *Value=@"attributes"
NSLocalizedString(Value,@"Attribute Name"); 

//Localizable.string code
"Value"="Value-french"; 

这不起作用。有人能告诉我使用NSLocalizdString来定位变量(包含字符串)的正确方法吗?

2 个答案:

答案 0 :(得分:1)

您无法对变量名称进行本地化。您只能本地化变量所持有的值。因此,Localizable.strings应包含

"attributes"="attributes-french"

如果有的话,您可以使用here所述的%@来改变字符串的部分内容。

答案 1 :(得分:0)

NSLocalizedString调用没有问题,而是 Localizable.strings 文件中的定义。

由于您将变量Value定义为“属性”,因此该函数将用作查找正确本地化字符串的键。

这应该可以正常工作:

//Viewcontroller.m code
NSString *Value=@"attributes"
NSLocalizedString(Value,@"Attribute Name"); 

//Localizable.string code
"attributes"="Value-french"; 

我在Swift中测试了类似的代码,然后看起来像这样:

//Viewcontroller.swift code
let Value="attributes"
NSLocalizedString(Value, comment:"Attribute Name")

//Localizable.string code
"attributes"="Value-french"; // <- don't forget the semicolon!