FullCalendar today-button: date instead of text // lang 问题

FullCalendar today-button: date instead of text // issue with the lang

我想在今天按钮中显示当前日期而不是固定文本。 这个 >> 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 的 lang 文件。这是我的第一个问题:

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.

嗯,我知道怎么做了。

第 1 步:获取语言。 转到 locale directory of moment.js on github 并下载您需要的语言。我拿了 de.js, en.js & fr.js.

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

第 3 步:Link 语言文件。 为了安全起见,我 link 在我 link FullCalendar 文件就在 link 到 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 步:使用它。现在您可以use the languages like it is described in the documentation of 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>

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