我正在研究React/Webpack/Globalize应用程序.在开发模式中,事情是好的(尽管Globalize坚持编译所有语言环境而不是我选择的语言环境,但这是另一天的另一个问题).
但是,当我production: true在我的webpack配置中设置时,我在运行时遇到以下错误npm run build
> webpack --config webpack.prod.config.js
/opt/app/ui/node_modules/globalize-webpack-plugin/GlobalizeCompilerHelper.js:72
throw e;
^
Error: No formatters or parsers has been provided
Run Code Online (Sandbox Code Playgroud)
我的印象是globalize webpack插件用于处理预编译.知道我为什么会看到这个错误吗?当我设置的production: false东西编译正常.
我的插件设置是:
new GlobalizePlugin({
production: true,
developmentLocale: "en",
supportedLocales: [ "en"],
output: "i18n/[locale].[hash].js"
}),
Run Code Online (Sandbox Code Playgroud)
当文件更改并且webpack dev服务器重建时,我收到很多这些消息,表明我没有使用的语言环境的重新编译:
[461] ./~/cldr-data/main/es-PY/dateFields.json 15 kB {0} [optional]
[462] ./~/cldr-data/main/es-SV/dateFields.json 15 kB {0} [optional]
[463] ./~/cldr-data/main/es-US/dateFields.json 15 kB {0} [optional]
[464] ./~/cldr-data/main/es-UY/dateFields.json 15 kB {0} [optional]
[465] ./~/cldr-data/main/es-VE/dateFields.json 15 kB {0} [optional]
[466] ./~/cldr-data/main/es/dateFields.json 15 kB {0} [optional] …Run Code Online (Sandbox Code Playgroud) 我有一个基于 Django 的 API 层,它在内部使用 Django 的 i18n 设施(ugettext 等)来提供对某些输出的翻译。该 API 提供一个单页 Javascript 应用程序,该应用程序通过 CLDN/消息文件等使用 jQuery 的 Globalize 及其自己的消息传递工具。
目前,我为 Globalize 的消息模块以 JSON 文件的形式为 UI 生成了自己的语言文件。
理想情况下,我想从一个位置驱动所有可翻译文本。我希望使用 Django 作为可翻译语言的唯一真实来源(因为我可以使用 Rosetta 作为促进翻译的一种方式)。然而,如何让两者一起工作并不是那么简单,我试图避免在它们可能已经存在的地方发明我自己的约定,以防止将来与其他开发人员混淆。
首先,有些文本块比几个单词还大。使用 Django 的 ugettext 我应该提供要翻译的文本或作为参数显示的文本 - 仅提供一个键并要求翻译存在(否则,只显示键)是否是好的约定?
其次,这种用例是否有既定的约定?
如果规范对这种情况有意义,我不想重新发明轮子或偏离规范。
第三- 我应该在两者之间做出选择吗?或者翻译是否可以存在于 Django/API 世界中,然后在 UI 请求时输出为 Globalize/messages 格式?或者我应该使用 Django 为 Javascript 提供的 gettext 实现?
谢谢
django internationalization django-i18n django-rosetta jquery-globalize
我正在尝试使用建议的js/json设置(对于日期模块)使用此处建议的javascript示例来设置jquery globalize .
在这段代码中,我试图设置它并使用它来格式化jquery-ui datepicker:
(function () {
$(function () {
$.when(
$.getJSON("/Scripts/cldr/cldr-json/cldr-core-master/supplemental/likelySubtags.json"),
$.getJSON("/Scripts/cldr/cldr-json/cldr-numbers-modern-master/main/en/numbers.json"),
$.getJSON("/Scripts/cldr/cldr-json/cldr-core-master/supplemental/numberingSystems.json"),
$.getJSON("/Scripts/cldr/cldr-json/cldr-dates-modern-master/main/en/ca-gregorian.json"),
$.getJSON("/Scripts/cldr/cldr-json/cldr-dates-full-master/main/en/timeZoneNames.json"),
$.getJSON("/Scripts/cldr/cldr-json/cldr-core-master/supplemental/timeData.json"),
$.getJSON("/Scripts/cldr/cldr-json/cldr-core-master/supplemental/weekData.json")
).then(function () {
// Normalize $.get results, we only need the JSON, not the request statuses.
return [].slice.apply(arguments, [0]).map(function (result) {
return result[0];
});
}).then(Globalize.load).then(function () {
var culture = "en";
Globalize(culture);
$("input.datepicker").datepicker({
prevText: '<i class="fa fa-chevron-left"></i>',
nextText: '<i class="fa fa-chevron-right"></i>',
dateFormat: Globalize.dateFormatter({ date: "short" })
});
});
});})();
Run Code Online (Sandbox Code Playgroud)
而我得到的错误是
E_DEFAULT_LOCALE_NOT_DEFINED:尚未定义默认语言环境.在globalize.js @第105行
我究竟做错了什么?
我正在尝试在 MVC5 中将 MVC 不显眼的验证与 jquery globalize 插件一起使用(与包jquery-validate-globalize结合使用)。出于学习目的,我按照此处启动了一个演示项目,但它无法使用全球化运行(它适用于默认的 Microsoft 不显眼的验证)。该模型非常简单:
public class GlobalizeModel
{
[Range(10.5D, 20.3D)]
public decimal Double { get; set; }
[Required]
public DateTime? DateTime { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我尝试在 _Layout 页面底部按如下方式启动 Globalize(视图很小,只有 2 个输入):(我从https://johnnyreilly.github.io/globalize-so-what-c ha 获取必要文件的列表-想/)
<script src="~/Scripts/bootstrap.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<!--cldr scripts-->
<script src="~/Scripts/cldr.js"></script>
<script src="~/Scripts/cldr/event.js"></script>
<script src="~/Scripts/cldr/supplemental.js"></script>
<!--globalize scripts-->
<script src="~/Scripts/globalize.js"></script>
<script src="~/Scripts/globalize/number.js"></script>
<script src="~/Scripts/globalize/date.js"></script>
<!--jquery globalize-->
<script src="~/Scripts/jquery.validate.globalize.js"></script>
<script>
$.when(
$.getJSON("/Scripts/cldr/supplemental/likelySubtags.json"),
$.getJSON("/Scripts/cldr/main/en/numbers.json"),
$.getJSON("/Scripts/cldr/supplemental/numberingSystems.json"),
$.getJSON("/Scripts/cldr/main/en/ca-gregorian.json"),
$.getJSON("/Scripts/cldr/main/en/timeZoneNames.json"),
$.getJSON("/Scripts/cldr/supplemental/timeData.json"), …Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×1
c# ×1
django ×1
django-i18n ×1
javascript ×1
jquery ×1
node.js ×1
npm ×1
webpack ×1