Angular JS、时区、货币和区域设置

Angular JS, Timezone, Currency and Locale

本文关键字:区域 设置 时区 JS Angular 货币      更新时间:2023-09-26

在我的自定义基于Web的应用程序中,用户可以设置自己的时区,区域设置,货币和语言(与他们使用的计算机无关(。

有没有办法在应用程序级别为 Angular 设置这些参数,这样我就不必为页面中的每个货币或日期时间值设置它?

<!-- something like this: -->
<html ng-app="myApp" ng-currency-symbol="GBP" ng-locale="fr-FR" ng-timezone="-5">
  <body ng-controller="MyAppController">
      <div class="list-group">
         <div class="list-group-entry">{{MyApp.SubTotal | currency}}</div>
         <div class="list-group-entry">{{MyApp.Total | currency}}</div> 
         <!-- both would print the value like following:
            (e.g: 5,000.32) as £5 000,32 -->
      </div>
  </body>
</html>

目标是保持代码与开发人员编写AngularJS的自然方式相同,但是能够全局设置正在浏览应用程序的用户的货币符号,区域设置和时区。

Angular 支持i18n 位置标准 | 全球化 | 国际化。 在数字格式化方面,Angular 依赖于$locale服务。例如,关于数字格式,此服务使用属性NUMBER_FORMATS在那里定义货币符号本身不会更改编号格式,除非您更改"位置"。

以下是 angular 当前支持的位置列表:

http://cdnjs.com/libraries/angular-i18n/

下面是有关如何支持德语区域设置的示例:

<html ng-app>
 <head>
   <script src="angular.js"></script>
   <script src="i18n/angular-locale_de-de.js"></script>
 </head>
</html>

如果您想深入研究它,您可以在上面提供的任何 CDN 中搜索NUMBER_FORMATS,您会发现 angular 将用于格式化您的数字,这是一个示例:

"NUMBER_FORMATS": {
    "CURRENCY_SYM": "'u20ac",
    "DECIMAL_SEP": ",",
    "GROUP_SEP": ".",
...