//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来定位变量(包含字符串)的正确方法吗?
答案 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!