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

Translate two variables and a separator in Swift in 1 string

我有一件商品会过期。假设用户可以持有一件商品 10 天。如果 3 天过去了,他还有 7 天。我想用英文这样显示:

7/10

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

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

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

%1$d/%2$d

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

如果您通过 7 和 10,您将获得 7/10。

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

%2$d:%1$d

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

无论哪种情况,您都以相同的顺序传递相同的参数。使用位置格式说明符可确保将正确的值放在正确的位置。