Android 会自动将数字转换为本地字母吗?

Big*_*ter 5 java android numbers

我有一个可以生成数字的应用程序。我想针对中国进行本地化。

我的代码如下所示:

this.diceValueTextSwitcher.setText("" + (rand.nextInt(6) + 1));
Run Code Online (Sandbox Code Playgroud)

其中 diceValueTextSwitcher 是文本字段。

我不需要本地化欧洲和北美(以及其他讲欧洲语言的国家)的数字,因为所有主要欧洲语言(俄语除外?)都使用阿拉伯数字字母 (0...9)。然而,普通话和粤语则不然。

如果我的 Android 手机设置为粤语或普通话,Android 会自动将阿拉伯数字转换为等效数字吗?还是 Java 可以做到这一点?或者它根本不会发生?如果是这样,最好的方法是将其本地化为具有以正常方式换入/换出的曼陀林(或其他)字符字符串吗?

Geo*_*its 3

它不会自动为您转换,不会。主要原因可能是编号系统的工作方式不完全相同。是的,它是十进制,但是有十、百、千、万等单个字符。这不是一对一的字符交换。因此,如果它确实进行了一对一转换,那么对于本机读者来说就没有意义。

例如,使用阿拉伯数字,要写二十三,您可以:

(two)(three)
Run Code Online (Sandbox Code Playgroud)

在日语中,你可以这样写:

(two)(ten)(three)
Run Code Online (Sandbox Code Playgroud)

不过我并不担心。亚洲国家的学校教授阿拉伯数字系统,他们在大多数涉及大量数字的事物上广泛使用它。价格标签、会计、游戏、仪表,诸如此类的东西。

如果您确实想要本地化,则必须使用正确的字符串手动完成,或者找到转换函数。

免责声明:这是基于我在日本生活了几年的情况,但我几乎肯定中国也是如此。他们使用很多相同的表意文字,包括数字。