2

我想在今天按钮中显示当前日期而不是固定文本。这个 >> irismediainfo3.lili.de是我正在开发的开发网站。我在文档中找不到该选项,所以我在 moment.js-docs 中搜索并发现:

moment().format();

并像这样在 FullCalendar 中使用它:

buttonText: {
                next: '>',
                nextYear: '>>',
                prev: '<',
                prevYear: '<<',
                today: moment().format("MMMM YYYY")
            },

结果很好,但只有英文。FullCalendar 应该是多语言的,所以我尝试将它与

moment.locale(String);

第一次尝试:

buttonText: {
                next: '>',
                nextYear: '>>',
                prev: '<',
                prevYear: '<<',
                today: moment().locale('de').format("MMMM YYYY")
                },

但没有任何变化。我认为 moment.js 可能可以访问 FullCalendar 的语言文件。这是我的第一个问题:

moment.js 包含在 FullCalendar 中。我必须将 lang 文件放在 FullCalendar 目录中的什么位置才能使其对 moment.js 可访问?

我发现了一个更复杂的语法,下一次没有让我的 FullCalendar 崩溃的尝试是:

buttonText: {
                next: '>',
                nextYear: '>>',
                prev: '<',
                prevYear: '<<',
                today: moment().locale('de', {months : "Januar_Februar_M&#228;rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_")}).format("MMMM YYYY")
        },

它没有使我的 FullCalendar 崩溃,但也没有任何影响。

实际上,代码中的“de”和带有月份名称的长字符串是由我使用的 CMS 的编译器创建的。它被称为 SPIP。开头的 URL 包含一个语言变量。如果您将该变量更改为“en”、“fr”或“de”(其他也可以,但该网站将针对这些语言制作),您可以看到 FullCalendar 更改了语言。只有今天的按钮保持英文。URL 中的语言变量将自动提供给 FullCalendar 代码。只要 FullCalendar 的其余部分更改语言,URL 中的变量就会正确传递。

我什至尝试从 momentjs.com 主页获取所有语言的完整 moment.js 代码,并将其粘贴到 FullCalendar lib 目录中的 moment.js 文件中。但即便如此,语言也没有改变。

是否可以定义语言 moment.js 应该使用内联?

感谢您的时间和帮助。尼尔斯·T。

4

1 回答 1

2

好吧,我发现了如何做到这一点。

第 1 步:获取语言。 转到github 上 moment.js 的语言环境目录并下载您需要的语言。我拿了 de.js、en.js 和 fr.js。

第 2 步:将它们上传到您的服务器。 我在服务器上的 FullCalendar 目录中创建了一个新文件夹,并将其命名为“momentjs_locale”并将文件上传到那里。

第 3 步:链接语言文件。 为了安全起见,我将它们链接到了将 FullCalendar 文件链接到 moment.js 链接后面的同一个地方所以对我来说它看起来像:

<link href='../fullcalendar.css' rel='stylesheet' />

<link href='../fullcalendar.print.css' rel='stylesheet' media='print' />
<script src='../lib/moment.min.js'></script>
<script src="momentjs_locale/de.js"></script>
<script src="momentjs_locale/en.js"></script>
<script src="momentjs_locale/fr.js"></script>
<script src='../lib/jquery.min.js'></script>
<script src='../fullcalendar.min.js'></script>

第4步:使用它。现在您可以使用 moment.js 文档中描述的语言

<script>

    $(document).ready(function() {

//Here I am setting the global language for moment.js to german (which is "en" by default.)
    moment.locale("de");

        $('#calendar').fullCalendar({

            buttonText: {
                    //Here I make the button show French date instead of a text.
                    today: moment().locale("fr").format("MMMM YYYY") 
            },
            //more options...

        });

    });

</script>

所以如果有人有类似的问题,我希望这可以帮助它。再见 :)

于 2015-06-03T14:38:49.237 回答