我正在尝试为我的应用程序添加多语言支持。我通过将所有用户可见字符串替换为本地化字符串来实现这一点。对于像";取消";,这很容易。但我有同样多的字符串,这些字符串是用信息插值的。最困难的是,每种语言都会以不同的方式构建句子。
例如:我将如何本地化以下字符串:"请输入发送给您的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(电子邮件(将不会本地化。