1

我们需要根据用户的语言环境以不同的格式显示金额/数字。该信息通过 REST API 提供。

fr = 1 234 567,89
en-us = 1,234,567.89
de = 1.234.567,89

一种方法是在服务器端完全处理它。另一种方法是使用诸如 dojo/i18n 之类的库在客户端完全处理它。

但是我想知道是否可以通过 API 以某种方式提供数字格式(仅格式不是数字本身),然后在客户端格式化数字(使用 javascript)。知道怎么做吗?我的意思是“格式”应该是什么样子以及如何渲染/处理它,以便它可以用作在客户端格式化数字的模式。

4

2 回答 2

0

可以办到。许多 javascript 框架都有本地化的日期和数字格式化程序。通常格式是静态的,因此您可以在 config.js 中对它们进行硬编码。如果这还不够,您可以在服务器上的 config.js 中渲染它们。您甚至可以本地化该资源服务器端以减少通过网络发送的代码量。

您还可以提供一个 API,您可以在其中获取客户端语言环境的格式,但这对我来说似乎有点过分了。

于 2012-11-03T18:14:26.700 回答
0

看看全球化。可以做到,您所要做的就是定义(或覆盖)文化。看看法国文化文件,看看它是如何做到的:

Globalize.addCultureInfo( "fr", "default", {
// (...)
    numberFormat: {
        ",": " ",
        ".": ",",
        "NaN": "Non Numérique",
        negativeInfinity: "-Infini",
        positiveInfinity: "+Infini",
        percent: {
            ",": " ",
            ".": ","
        },
        currency: {
        pattern: ["-n $","n $"],
            ",": " ",
            ".": ",",
        symbol: "€"
    }
// (...)

根据格式的来源,您可能需要将数据转换为 Globalize 可以理解的内容,但是可以。

于 2012-11-03T18:14:36.350 回答