Как создать глобальный контент для GRAV CMS

Как я могу локализовать контент с помощью Grav CMS? Например, у меня есть содержимое нижнего колонтитула на английском и французском языках. Поэтому вместо жесткого кодирования содержимого нижнего колонтитула мне нужно, чтобы он был динамическим, чтобы, если пользователь переходит на французский маршрут сайта, содержимое нижнего колонтитула при этом менялось на французский. Было бы идеально, если бы я мог просто хранить этот локализованный контент в файле YAML, а затем извлекать его что-то вроде {{footer.title}}.

Если у вас есть идеи, это было бы здорово.

Спасибо


person Brady    schedule 13.04.2016    source источник


Ответы (1)


В разделе документации Многоязычный есть различные варианты, но, похоже, ищу перевод через Twig

<h1 id="site-name">{{ "SITE_NAME"|t }}</h1>
<section id="header">
    <h2>{{ "HEADER.MAIN_TEXT"|t }}</h2>
    <h3>{{ "HEADER.SUB_TEXT"|t }}</h3>
</section>

Затем в \system\languages создайте en.yaml с чем-то вроде этого

SITE_NAME: My Blog Site
HEADER:
    MAIN_TEXT: Welcome to my new blog site
    SUB_TEXT: Check back daily for the latest news
person Matt McCabe    schedule 14.04.2016
comment
Это замечательно! Спасибо большое. Быстрый вопрос, мы используем jsonToYaml в нашем файле gulp для преобразования данных для нас. Есть ли способ просто включить файл с преобразованием jsonToYaml в файл en.yaml? Потому что единственная проблема заключается в том, что мы будем удалять весь предварительно добавленный контент внутри файла en.yaml всякий раз, когда запускаем наш глоток. Или содержимое, которое уже было включено в файл en.yaml, по большей части неактуально? - person Brady; 14.04.2016
comment
Также знаете ли вы, как я буду перебирать массив в этом файле. Кажется, я не могу заставить ее работать. - person Brady; 14.04.2016
comment
Извините, не уверен, может быть лучше как отдельный вопрос, возможно, вы могли бы сделать шаг, объединив конкатенацию en.yaml (вы могли бы переименовать его в en-old.yaml, чтобы новый файл был en.yawml), но я думаю, вы бы возможно, просто замените это своим контентом. - person Matt McCabe; 14.04.2016