Как загрузить основной индексный файл с помощью hexo i18n? - PullRequest
0 голосов
/ 24 июня 2019

Я использую Hexo , чтобы создать простой блог в NodeJS, и я столкнулся с проблемой, связанной с локализацией.

По сути, Hexo позволяет вам создавать многоязычный блог, для этого необходимо отредактировать основной config.yml, включая :/lang перед permalink и new_post_name:

languages [it, en] #first language is the default language
permalink: :lang/:year/:month/:day/:title/
new_post_name: :lang/:title.md

поэтому я отредактировал config.yml, включая эти изменения, а затем создал файл локализации для italian и english, эти файлы включены в папку languages темы:

theme_name
    languages
         en.yml
         it.yml

it.yml выглядит так:

hello_world: "Ciao Mondo"

и en.yml:

hello_world: "Hello World"

поэтому я определил index.ejs (я использую EJS в качестве шаблона представления), и я включил следующее содержимое:

<p><%= __('hello_world') %></p>

по сути, когда я перейду к: http://localhost:4000 я увижу строку Ciao Mondo.

Теперь возникает проблема, связанная с тем, что, когда я переключаюсь на язык english, Hexo заглядывает внутрь папки en, которая создается внутри source, как подсказывает документация .

Проблема в том, что для каждого языка мне нужно иметь index.ejs, который не может включать основной index.ejs, поэтому в этот момент localization становится совершенно бесполезным.

Для лучшего объяснения проблемы:

  • Вы создаете основной index.ejs, который загружается layout.ejs, который также включает верхний и нижний колонтитулы
  • Вы создаете файлы конфигурации для каждого языка
  • Когда вы переключаетесь на другой язык, Hexo смотрите на это route: http://localhost:4000/en, поэтому index.ejs отличается.

Как использовать рут index.ejs из всех языковых папок?

Я уже пытался использовать <%= include ... %>, но, похоже, index.ejs не поддерживает встроенный шаблон JavaScript.

Заранее спасибо.

...