javascript - FullCalendar 今天按钮 : date instead of text//issue with the lang

标签 javascript fullcalendar momentjs spip

我想在今天按钮中显示当前日期而不是固定文本。 这个>> 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 步:链接语言文件。 为了安全起见,我将它们链接在我将 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 步:使用它。现在您可以 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>

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

关于javascript - FullCalendar 今天按钮 : date instead of text//issue with the lang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30570024/

相关文章:

javascript - 书架注册表插件和 Node 循环依赖错误

javascript - Mousedown 事件处理程序会干扰按键处理程序

javascript - 时刻 fromNow 替换今天显示的小时数

jquery - 如何确定 FullCalendar 中议程周 View 的开始和结束日期?

javascript - Moment.js 时区 valueOf 返回错误的时间戳

node.js - 无法在 Lambda 中创建具有 UTC 旁边时区的日期对象

javascript - 表格单元格自动设置valign

javascript - 两个带有 onchange 的函数

angularjs - Angular fullcalendar 指令从单个事件源过滤事件

javascript - fullCalendar 事件Click 未触发