首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有需求的全球化和cldr

具有需求的全球化和cldr
EN

Stack Overflow用户
提问于 2016-01-20 16:19:09
回答 1查看 2K关注 0票数 3

我正在尝试全球化。以下是我目前的项目配置:

  • 目前,我没有使用节点环境,特别是不使用npm或bower,而是使用NuGet作为包管理器。
  • 模块系统: AMD
  • 在应用程序启动时,使用require.js .config()指定不同外部模块的路径。
  • 在实际应用程序(类型)脚本中,使用import {...} from "...";加载依赖项

只是想知道是否有办法在我的项目中使用Globalizecldr,避免npm和cldr

编辑

最后我就是这样做的:

  1. 我的需要js配置: require.config({ baseUrl: baseUrl,paths:{ /*requirejs plugins*/ 'json':baseUrl +“/Script/requirejs plugins/json”),'text':baseUrl +“/Script/text”,/*CLDR和Globalize*/ 'cldr':baseUrl +“/Script/cldr”,'cldr/event':baseUrl +“/Script/cldr/event”,‘cldr’:baseUrl +“/Scripts/cldr/ baseUrl”,‘baseUrl /未解决’:baseUrl +“/Script/cldr/未决”,'cldr-data':baseUrl + "/Content/cldr-data",'Globalize':baseUrl +“/Scripts/globalize/globalize”,'Globalize.number':baseUrl+“/Script/globalize/number”,‘Globalize.date’,'Globalize.date':baseUrl+“/Script/globalize/date”},shim:{ 'cldr':{ exports:"cldr“},'cldr/event':{ deps:"cldr”},‘cldr/增刊’:{ deps:"cldr“},‘cldr/未决’:{ deps:"cldr”},'Globalize':{ deps:"cldr“},"json!cldr-data/supplemental/likelySubtags.json",“json!cldr-data/main/en/numbers.json s.json”,"json!cldr-data/main/en/ca-gregorian.json“,导出:"Globalize”},'Globalize.number':{ deps:"cldr","Globalize“、”cldr/event“、”cldr/补件“}、'Globalize.date':{ deps:"cldr”、"Globalize“、"Globalize.number”、"cldr/event",(“cldr/补充”} });要求(“cldr”、"Globalize“、"Globalize.number”、"Globalize.date“、function() { });
  2. 显然,我还需要修改number.jsdate.js,如下所示: number.js: .// AMD定义( "cldr“、//”./Globalize“、"Globalize”、"cldr/event“、”cldr/增补“、工厂); date.js: ./ AMD定义( "cldr",/*“./Globalize”,"./number",*/ "Globalize","Globalize.number","cldr/event",“cldr/补”,工厂);.
  3. 最后把它用得像: //以下依赖项也可以通过对服务器的单独http调用来加载,例如,require("json!cldr-data/supplemental/likelySubtags.json");const likelySubtags = $.ajax const enNumbers = require("json!cldr-data/main/en/numbers.json");const enGregorianCal = require("json!cldr-data/main/en/ca-gregorian.json");.Globalize.load(likelySubtags);Globalize.load(enNumbers);Globalize.load(enGregorianCal);var globEn =Globalize.load(“en”);var numFormatter = globEn.numberFormatter({ maximumFractionDigits:2});console.log(".numberFormatter()(Math.PI)->",numFormatter(Math.PI));var dateFormatter = globEn.dateFormatter({骨架:“Math.PI”});enGregorianCal((新日期())“,(新日期();

我还是很想听听你对此的看法:)

EN

回答 1

Stack Overflow用户

发布于 2019-05-05 13:10:32

您可以使用requirejs中的地图,这样就不必在步骤2中修改"number.js“和"date.js”:

代码语言:javascript
复制
require.config({
    [..]
    map : {
        "*" : {
            "../globalize" : "Globalize",
            "number" : "Globalize.number"
        }
    },
    [..]
});

当您只想在需要的时候定义Globalize并加载所有依赖项时,您可以这样做:

代码语言:javascript
复制
define("GlobalizeCLDR", [
    "Globalize.date",
    "Globalize.number",
    "json!cldr-data/supplemental/likelySubtags.json",
    "json!cldr-data/main/en/numbers.json",
    "json!cldr-data/main/en/ca-gregorian.json",
    ], function(GlobalizeDate, GlobalizeNumber, likelySubtags, enNumbers, enGregorianCal) {
        // GlobalizeDate = GlobalizeNumber
        GlobalizeDate.load(likelySubtags);
        GlobalizeDate.load(enNumbers);
        GlobalizeDate.load(enGregorianCal);
        GlobalizeDate.locale("en");
        return GlobalizeDate;
    });

// Use it some where later
require([
    "GlobalizeCLDR"
    ], function(Globalize) {
        console.log(Globalize.formatNumber(Math.PI));
        console.log(Globalize.formatDate(new Date()));
});

代码语言:javascript
复制
require.config({
	baseUrl: "",
	paths: {
		/*requirejs plugins*/
		'json': "https://cdnjs.cloudflare.com/ajax/libs/requirejs-plugins/1.0.3/json",
		'text': "https://cdnjs.cloudflare.com/ajax/libs/require-text/2.0.12/text",

		/*CLDR and Globalize*/
		'cldr': "https://cdnjs.cloudflare.com/ajax/libs/cldrjs/0.5.1/cldr.min",
		'cldr/event': "https://cdnjs.cloudflare.com/ajax/libs/cldrjs/0.5.1/cldr/event.min",
		'cldr/supplemental': "https://cdnjs.cloudflare.com/ajax/libs/cldrjs/0.5.1/cldr/supplemental.min",
		'cldr/unresolved': "https://cdnjs.cloudflare.com/ajax/libs/cldrjs/0.5.1/cldr/unresolved.min",

		'Globalize': "https://cdnjs.cloudflare.com/ajax/libs/globalize/1.4.2/globalize.min",
		'Globalize.number': "https://cdnjs.cloudflare.com/ajax/libs/globalize/1.4.2/globalize/number.min",
		'Globalize.date': "https://cdnjs.cloudflare.com/ajax/libs/globalize/1.4.2/globalize/date.min"
	},
	map : {
		"*" : {
			"../globalize" : "Globalize",
			"number" : "Globalize.number"
		}
	},
	shim: {       
		'cldr/event': {
			deps: ["cldr"]
		},
		'cldr/supplement': {
			deps: ["cldr"]
		},
		'cldr/unresolved': {
			deps: ["cldr"]
		},
		'Globalize': {
			deps: [
				"cldr",
			], exports: "Globalize"
		},
		'Globalize.number': {
			deps: [
				"Globalize",
				"cldr/event",
				"cldr/supplemental"
			]
		},
		'Globalize.date': {
			deps: [
				"Globalize.number",
			]
		},
		'json' : {
			deps: [
				"text"
			]
		}
	}
});

define("GlobalizeCLDR", [
	"Globalize.date",
	"Globalize.number",
	"json!https://raw.githubusercontent.com/unicode-cldr/cldr-core/master/supplemental/likelySubtags.json",
	"json!https://raw.githubusercontent.com/unicode-cldr/cldr-numbers-full/master/main/en/numbers.json",
	"json!https://raw.githubusercontent.com/unicode-cldr/cldr-dates-full/master/main/en/ca-gregorian.json",
	], function(GlobalizeDate, GlobalizeNumber, likelySubtags, enNumbers, enGregorianCal) {
		// GlobalizeDate = GlobalizeNumber
		GlobalizeDate.load(likelySubtags);
		GlobalizeDate.load(enNumbers);
		GlobalizeDate.load(enGregorianCal);
		GlobalizeDate.locale("en");
		return GlobalizeDate;
	});

function insertData() {
  require([
    "GlobalizeCLDR"
    ], function(Globalize) {
    document.getElementById('result').innerHTML = Globalize.formatNumber(Math.PI)
    	+ '<br>'
      + Globalize.formatDate(new Date(), { skeleton: "GyMMMEdhms" });
  });
}
document.getElementById("btn").addEventListener('click', insertData);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.js"></script>
<button id="btn">Load Globalize & show result</button>
<h2>Result:</h2>
<div id="result"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34905140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档