在Swift中用1个字符串翻译两个变量和一个分隔符

时间:2017-12-27 23:41:02

标签: swift localization nslocalizedstring

我有一个随着时间的推移而过期的物品。让我们说用户可以在10天内持有一个项目。如果过了3天,他还有7天的时间。我想用英语显示它:

7/10

这需要两个参数和一个分隔符(/)。如何添加两个变量(7和10)和分隔符最好的方法?我可以使用NSLocalizedString定义不同的分隔符,使用两个stringWithFormats,最后将它们一起添加到1个字符串中。但是,使用此方法,我需要检查语言是否在从右到左。如果是这种情况,必须切换单词。

这看起来很糟糕,我想知道是否有更好的方法。有没有什么方法可以创建一个字典和一个方法来获取两个变量并将它们以正确的方式放在分隔符中?

1 个答案:

答案 0 :(得分:2)

对NSLocalizedString使用单个本地化字符串。例如,英语本地化字符串可能是:

  

%1 $ d /%2 $ d

这是您的一种字符串格式。然后将两个变量作为参数传递给此字符串格式。

如果你通过7和10,你得到7/10。

现在让我们用其他语言说它应该显示为10:7然后在该语言的字符串文件中,将本地化字符串设置为:

  

%2 $ d:%1 $ d

我假设你的数字是整数。如果它们是其他类型,请将order更改为适当的格式说明符。

在任何一种情况下,您都以相同的顺序传递相同的参数。位置格式说明符的使用确保正确的值在正确的位置。