【问题标题】:Is there a way to access what the current language uses for zero?有没有办法访问当前语言使用的零?
【发布时间】:2018-08-03 15:33:04
【问题描述】:

我没有使用"0",而是试图弄清楚如何访问当前用户的语言使用的零。

NumberFormatter 文档中,zeroSymbolnil,直到明确设置。

有没有办法将zeroSymbol 设置为当前语言的零?

【问题讨论】:

  • zeroSymbol 对于所有语言 "0" 都是相同的,如果您不设置此属性,就会得到这样的结果
  • @LeoDabus 我收到了nil,还没有设置属性?
  • Kkkk 没错。我的意思是使用 string(for:) 方法时
  • @LeoDabus po formatter.string(for: formatter.zeroSymbol) 显示 "" - 你是说它应该显示 "0"

标签: swift xcode localization internationalization nsnumberformatter


【解决方案1】:

zeroSymbol 属性并不像您认为的那样。根据文档(您提到的那句话之后的下一句也是唯一一句;-)):

例如,您可以在用于会计的电子表格中将此属性设置为“-”。

【讨论】:

  • 哈,是的!唯一的问题是,在调试器中,我看到formatter.zeroSymbolnil,我还没有设置。
  • 是的,这就是文档的重点。它是nil(这意味着它将使用0),除非您设置它,否则它将使用您提供的字符串。仅当您想用其他东西覆盖0 时(例如文档状态的示例:使用破折号表示0,有时用于会计的标准)。换句话说,它并不像您假设的那样用于本地化,而是在特殊情况下用于覆盖 0
  • 这部分是有道理的——我正在努力的部分是如何访问0 的字符串或整数(或数字)表示,如果格式化程序默认使用0
  • formatter.string(from: 0) ?这涵盖了默认 0 以及您没有意识到您设置了替换的任何情况。我不太确定我能得到你在这里问什么。由于这与本地化无关,因此这里没有什么未知的。作为开发人员,您要么为该特定数字格式化程序实例设置替换,要么您没有。
  • 这正是我们一直在寻找并得到的,以防某些语言的字符串表示为零不是0。谢谢!
猜你喜欢
  • 2017-12-27
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
相关资源
最近更新 更多