Локаль Fullcalendar в Laravel не работает

Я использовал FullCalendar в своем проекте Laravel. Я следил за учебником на YouTube и https://github.com/maddhatter/laravel-fullcalendar помощник. Теперь я хочу добавить в свой календарь языковые настройки, чтобы я мог изменить его язык. Но ничего не работает. Я пробовал документы FullCalendar и все решения, которые мог найти в Интернете, но ничего не помогло. Я надеюсь, что вы можете мне помочь.

Я попытался использовать файлы js в своей общей папке и скрипт из cdnjs.cloudflare, но оба не сработали.

Мой взгляд:

@extends('layouts.layout')

<head>
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js"></script>

    <script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.7/fullcalendar.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.7/lang-all.js"></script>

    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.7/fullcalendar.min.css"/>
</head>

@section('content')
    </br>
    <div class="control">
    <button onclick="window.location.href = '/calendars/create';">Voeg betaalevenement toe</button>
    </div>
    </br>

    {!! $calendar_details->calendar() !!}
    {!! $calendar_details->script() !!}
@endsection

person Anna    schedule 26.03.2019    source источник
comment
Какую именно документацию вы проверяли? locale был введен только в версии 3. Если вы хотите использовать locale, перейдите на v3 вместо v2 и включите нужные файлы. В качестве альтернативы, в версии 2 вы можете использовать lang, использование немного отличается, но похоже идея. Но в любом случае приведенный выше код не пытается установить язык или локаль (если это не делается в рамках одной из этих функций - ›calendar () или -› script (), которые вы не показали), поэтому в таком случае неудивительно, что он ничего не делает.   -  person ADyson    schedule 26.03.2019
comment
Я проверил документацию fullcalendar.io/docs и использовал это руководство youtube.com/watch?v=JtMEGbCSqEg. Мне нужно было использовать такой код вместо кода, который использовал сайт fullcalendar, потому что это был единственный код, который действительно работал. Я не создавал функции calendar () и script (), они поставлялись с пакетом из laravel madhatter.   -  person Anna    schedule 26.03.2019
comment
нет причин, по которым стандартный код календаря не будет работать, если вы не реализовали его неправильно. Будьте осторожны при выборе документации, последняя версия - v4, которая очень отличается от предыдущих версий. На странице документации вы можете выбрать, для какой версии просматривать документы, убедитесь, что вы выбрали правильный вариант.   -  person ADyson    schedule 26.03.2019
comment
@ADyson Что ж, думаю, я сделал что-то не так, но это просто не сработало. Тот, что от Madhatter, сразу же работал в моем проекте Laravel. Я просмотрел разные версии и перепробовал их все, но ничего не помогло.   -  person Anna    schedule 26.03.2019
comment
Ok. Что ж, даже если вы используете код laravel для настройки календаря, если вы хотите указать дополнительную опцию, такую ​​как lang или locale, вам нужно сделать это с помощью метода - ›setOptions (как показано в демонстрационном коде на домашней странице проекта. ), иначе он не узнает, что вы хотите использовать эту опцию. Ты сделал это?   -  person ADyson    schedule 26.03.2019
comment
Но если вы только сейчас создаете свой календарь, версия 2 - это древняя история. Было бы гораздо лучше начать снова использовать новую версию v4. Он поддерживается с исправлениями, новыми функциями и т. Д. И имеет гораздо больше функций. Никто не написал для него библиотеку laravel, AFAIK, но это не имеет значения ... есть множество демонстраций, из которых вы можете скопировать код, чтобы запустить базовый календарь с использованием JavaScript.   -  person ADyson    schedule 26.03.2019
comment
@ADyson Нет, я ничего не делал с setOptions, я этого не заметил. Спасибо, сейчас попробую :) Это просто для школьной оценки, так что мне просто нужно, чтобы она работала сейчас и забыла об этом через неделю. Думаю, v2 пока будет работать?   -  person Anna    schedule 26.03.2019
comment
да, если у проекта нет будущего, тогда все в порядке   -  person ADyson    schedule 26.03.2019
comment
@ADyson Функция setOption сработала! Спасибо! :)   -  person Anna    schedule 26.03.2019
comment
Вы должны добавить окончательный код решения в качестве ответа ниже. Вы можете ответить на свой вопрос :-)   -  person ADyson    schedule 26.03.2019


Ответы (2)


В конце концов, у меня сработал следующий код. Я добавил '-> setOptions ([' lang '=>' nl ']); в моем контроллере к моему объекту календаря.

$calendar_details = \Calendar::addEvents($event_list)->setOptions(['lang' => 'nl']);
       return view('calendar.index')->with(compact('calendar_details'));

Еще я добавил в голову этот скрипт:

<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.7/lang-all.js"></script>
person Anna    schedule 26.03.2019
comment
Вы должны были сначала указать этот код в своем вопросе, потому что другие люди не должны терять свое время. - person Inzamam Idrees; 26.03.2019
comment
@InzamamIdrees Почему? Я включил всю необходимую информацию в свой вопрос. ADyson помог мне обнаружить, что мне нужна функция setOptions вместо добавления кода к моему представлению (что, как я думал, мне нужно сделать). Я не знал, что это был ответ, когда создавал свой вопрос, иначе я бы его не задал ... - person Anna; 26.03.2019

В разделе заголовок:

<head>
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.7/fullcalendar.min.css"/>
</head>

В разделе Содержание:

<div id="calendar"></div>

В разделе нижний колонтитул:

<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js"></script>

<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.7/fullcalendar.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.7/lang-all.js"></script>

<script type="text/javascript">
    $(document).ready(function(){

        $('#calendar').fullCalendar({
            // for v2
            lang: 'ar',
        });
    });
</script>

Надеюсь, это поможет.
Пример перевода v2 fullcalendar проверьте этот codepen.

Примечание. - Предполагается, что вам нужно установить языковой стандарт приложения для перевода.

person Inzamam Idrees    schedule 26.03.2019
comment
Да, мне это действительно нужно для перевода, но это не сработало. Имеет ли значение, куда я кладу сценарий? Я попытался поместить его в тело и голову (что, я думаю, не подходящее место для javascript) и под и над несколькими другими кодами. Но ничего не изменилось. Я живу в Нидерландах, поэтому, думаю, язык должен был быть изменен с английского на голландский. - person Anna; 26.03.2019
comment
посмотрите версию fullCalendar, которую использует OP ..._ 1_ не является допустимым параметром - person ADyson; 26.03.2019
comment
@InzamamIdrees Может быть, если у вас v3, он поймет lang, так как он унаследован, но если у вас v2, он не поймет локаль - а OP имеет v2 - person ADyson; 26.03.2019
comment
@InzamamIdrees, вы также должны упомянуть о включении файлов с правильными языками на страницу. И снова используемые файлы в версиях v2 и v3 различаются. - person ADyson; 26.03.2019
comment
@InzamamIdrees Ну, как я уже сказал, я изменил «locale» на «lang», но это ничего не изменило в моем календаре. Я также попытался разместить скрипт в нескольких местах своего кода, на всякий случай, если его нужно было поместить перед любым другим кодом для работы. Но язык моего календаря все тот же - person Anna; 26.03.2019
comment
Также стоит отметить, что в коде OP они используют серверный код для создания календаря ... поэтому, если они просто добавят этот код, он либо создаст второй календарь, либо вообще не создаст (если нет элемента HTML с id календаря на странице), и никак не влияют на основной. Это может объяснить, почему они не смогли использовать ваш ответ. - person ADyson; 26.03.2019
comment
@ADyson OP не упомянул код контроллера в вопросе, поэтому я предполагаю, что проблема возникает с основным из fullcalendar. - person Inzamam Idrees; 26.03.2019
comment
@InzamamIdrees {!! $calendar_details->calendar() !!} {!! $calendar_details->script() !!} - это Laravel (то есть серверный) код. Как видно из кода в вопросе, здесь напрямую не используется jQuery (он вводится laravel на основе предоставленного кода PHP - проверьте примеры на домашней странице проекта, указанного в вопросе). Основы fullCalendar создаются серверным кодом, поэтому нужно будет изменить именно этот серверный код. Теперь посмотрите, что OP ответил на свой вопрос, основываясь на моих предложениях в другой ветке комментариев. - person ADyson; 26.03.2019