【问题标题】:ASP.NET Client-side localization and JavascriptASP.NET 客户端本地化和 Javascript
【发布时间】:2014-06-09 21:55:09
【问题描述】:

我正在构建一个支持法语的基于 Web 的应用程序。 在 ASP.NET 中,我将 Thread.CurrentThread.CurrentCulture 设置为 fr-FR。一切都以法语格式在 ASP.NET 中运行,这很棒。 但是,如果我有如下代码,我会遇到 ASP.NET 和 Javascript 之间的不兼容问题:

var value = <%:Model.Amount%>;
var total = value * 12;

以上将呈现为:

var value = 1023,00;
var total = value * 12;

并从浏览器中得到以下错误信息:

Uncaught SyntaxError: Unexpected number

有没有办法告诉浏览器使用什么语言环境?我尝试了“接受语言”元标记,但没有帮助。

注意:我不是在寻找如何在没有文化的情况下将十进制值呈现到屏幕上,我很清楚:

<%:Convert.ToString(Model.Amount, new System.Globalization.CultureInfo(""))%>

我正在寻找一种方法来告诉浏览器我的语言环境是什么,这样我就不必浏览项目的所有页面,看看哪里出了问题并改变它们。

【问题讨论】:

    标签: javascript asp.net asp.net-mvc-4 localization


    【解决方案1】:

    你试过accounting.js http://josscrowcroft.github.io/accounting.js/

    accounting.js 是一个用于数字、货币和货币格式的小型 JavaScript 库,具有可选的 excel 样式列呈现(用于排列符号和小数)。它是轻量级的、完全可本地化的并且具有零依赖性。

    <%:Model.Amount.ToString("N2", CultureInfo.CreateSpecificCulture("en-US").Replace(",", "")%>
    

    【讨论】:

    • 问题是我无法浏览所有项目页面并找出在源代码中呈现数字值的位置。这不会被视为我正在寻找的答案。我知道如何在“ToString”调用中手动删除文化,但这实际上会导致整个应用程序重写。
    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多