数字字符转换成另一种语言的数字



我想把数字转换成其他语言的数字,我该怎么做?

我希望能够支持尽可能多的语言(谷歌翻译支持的语言)。我一直在阅读,我相信这可以从charcode完成。

这是我从Javascript应用程序中复制的一些代码,但它只支持两种语言。

TextTools.arabicNumber = function (str) {
    var res = String(str).replace(/([0-9])/g, function (s, n, ofs, all) {
        return String.fromCharCode(0x0660 + n * 1);
    });
    return res;
}
TextTools.farsiNumber = function (str) {
    var res = String(str).replace(/([0-9])/g, function (s, n, ofs, all) {
        return String.fromCharCode(0x06F0 + n * 1);
    });
    return res;
}

您基本上已经解决了这个问题,您只需要查看Unicode标准以找到其他数字字符存在的位置。您可以查看代码图表或使用维基百科查看字符范围。不过有一些有趣的事情需要注意:

不是每一种语言/文化都使用十进制数字系统,尽管大多数现存的语言/文化都使用十进制。您将需要验证数字符号的使用方式与西方相同,以确保您的理解是正确的。据我所知,日本或韩国的数字是用不同的系统写出来的,但他们在其他情况下使用西方数字的方式与西方相同。您需要验证所有这些,以确保您有一个正确工作的系统。

但是从技术翻译的角度来看,假设你只是要把西方数字转换成另一种文字中的数字,你已经弄清楚了。

ETA:关于注释,考虑传统希伯来数字的情况。数字是由单位+十+百组成的(从右向左阅读时实际上是百+十+单位)。所以456变成了400 + 50 + 6,或者希伯来语,是"

我不确定会有一个通用的解决方案对许多语言。我不是很理解,但正如人们在希伯来语的讨论中指出的,如果字符不同,顺序或解释可能也不同。正如你在小学学到的,罗马数字有一个简单的翻译,但它不仅仅是字符到字符的转换。我认为你需要针对特定的语言,并咨询专家(或维基百科)为每种语言构建代码。

我想也许谷歌翻译会知道如何做到这一点,但看起来他们不从快速检查。如果我说错了请指正。

但是对于那些仅仅是音译的,这里有各种语言的unicode数字:罗马数字,泰米尔语,阿拉伯语,梵语,孟加拉语,古吉拉特语,泰语,藏语,蒙古语,杭州语等。使用我编写的这个实用程序可以很容易地找到更多信息。

最新更新