Swift本地化:字符串插值



我正在尝试为我的应用程序添加多语言支持。我通过将所有用户可见字符串替换为本地化字符串来实现这一点。对于像";取消";,这很容易。但我有同样多的字符串,这些字符串是用信息插值的。最困难的是,每种语言都会以不同的方式构建句子。

例如:我将如何本地化以下字符串:"请输入发送给您的4位代码(user.PhoneNumber(";

在德语中,我希望字符串看起来像这样:"Bitte gebe den 4-Ziffer Code ein,den wir dir an(user.PhoneNumber(gesendet haben";

或法语:"请输入4位特使的密码(user.PhoneNumber(">

我正试图找到一种方法,在我的本地化文件中使用某种变量,如下所示(我知道这不起作用(:

在我的ViewController内部:

title.text = "Please enter the 4-digit Code sent to you at %phoneNumber%".localized

在我的Localizable.string 内部

"Please enter the 4-digit Code sent to you at %phoneNumber%" = "Bitte gebe den 4-Ziffer Code ein, den wir dir an %phoneNumber% gesendet haben"

这样做的最佳做法是什么?这一定是人们普遍存在的问题。语言是如此的不同!

我的本地化文件示例:

"email_error_message"="链接被发送到%@请验证";

实际代码实现:

让电子邮件=smth@email.com

let message=NSLocalizedString("email_error_message",注释:"错误,错误的电子邮件"(

let str=String.localizedStringWithFormat(消息,电子邮件(//我们想用电子邮件替换%@。

打印(str(

**请注意,在上述情况下,替换的字符串/char(电子邮件(将不会本地化。

最新更新