Как заставить голландский язык работать в Додзё? - PullRequest
4 голосов
/ 23 декабря 2009

Мне нужно отформатировать дату в строку с нидерландским языком (нидерландский язык). Я обнаружил, что dojo поддерживает это, но я не могу заставить его работать. Я новичок в Javascript. Не стоит недооценивать мое блаженное невежество.

EDITED

<html>
  <title>title</title>
    <body>
    <SCRIPT TYPE="text/javascript" SRC="http://ajax.googleapis.com/ajax/libs/dojo/1.4/dojo/dojo.xd.js"> 
    </SCRIPT>

    <script type="text/javascript">
        dojo.require("dojo.date");
        dojo.require("dojo.date.locale");

        dojo.addOnLoad(function() {
            var d = new Date('2009/12/23');
            console.log(d, dojo, dojo.date);

            var dstr = dojo.date.locale.format(d, {locale:'nl-nl'});
            document.write(dstr);
        });


    </script>
</body>

Firebug дает мне пощечину:

Пакет не найден: григорианский в dojo.cldr, locale = nl-nl

(function () {var _1 = null; if ((_ 1 || (typeof .... setTimeout (dojo._loadInit, 1000);}}) (); \ n

Ответы [ 4 ]

4 голосов
/ 23 декабря 2009

Феликс, пожалуйста, попробуйте еще раз. Вы должны просто указать локаль (и), которые вы хотите использовать на странице во время начальной загрузки, в теге, который включает dojo.js. Тогда нет необходимости упоминать это где-либо еще, если только вы не хотите поддерживать несколько локалей на странице с помощью djConfig.extraLocale

<SCRIPT TYPE="text/javascript" SRC="http://ajax.googleapis.com/ajax/libs/dojo/1.4/dojo/dojo.xd.js" djConfig="locale: 'nl'"> 

Если вы не укажете это, языковой стандарт по умолчанию - navigator.language, который является установленным языком вашего браузера. Оставив аргумент "locale" вне вызова формата, вы обычно захотите это сделать. Тогда он просто выберет значение по умолчанию для этой страницы.

4 голосов
/ 23 декабря 2009

Стандартные пакеты Dojo поставляются с выбором локалей. Вам нужно запустить скрипт, чтобы создать недостающие. См. Мои инструкции на веб-сайте Dojo: Встроенные локали, добавление локалей с пользовательской сборкой :

  1. Запустить сборку ANT dojo-src/util/buildscripts/cldr
  2. Запуск сборки Dojo с параметром localeList
  3. Укажите djConfig.locale или добавьте djConfig.extraLocale

В качестве альтернативы вы можете использовать версию CDN Google, в которой все местные жители уже созданы и определить djConfig.extraLocale .

1 голос
/ 23 декабря 2009

Ваш код работал бы, если бы вы включали dojo из локального URI. Кросс-доменные запросы вынуждены быть асинхронными. См. сообщение на форуме додзё по этому вопросу.

Вы можете использовать dojo.addOnLoad, чтобы обойти эту проблему:

dojo.require("dojo.date");
dojo.require("dojo.date.locale");

dojo.addOnLoad(function() {
    var d = new Date('2009/12/23');
    console.log(d, dojo, dojo.date);

    var dstr = dojo.date.locale.format(d, {locale:'nl-nl'});
    document.write(dstr);
});

Однако затем он жалуется на ваш языковой пакет. Но это совсем другая история.

0 голосов
/ 23 декабря 2009

Мне это надоело. Закодировал это в манере DIY. Неудача в додзё.

            function formatDutchDate(date) {
            monthnames = ['januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december'];
            monthname = monthnames[date.getMonth()];
            return date.getDate()+' '+monthname+' '+date.getFullYear();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...