Вопрос по ruby – Jekyll Liquid - динамический доступ к _config.yml

3

Для интернационализации моего приложения мне нужно иметь возможность динамического доступа к записям в файле YAML.

Это лучше всего объяснить на примере:

Page:

---
layout: default
title: title_homepage
---

Это разрешит доступ к переменной title_homepage в шаблоне макета по умолчанию:

Макет по умолчанию:

page.title = "title_homepage"

Теперь я обычно получаю доступ к своему файлу _config.yml следующим образом:

{{ site.locales[site.default_locale].variable }}

Однако теперь, чтобы это работало, мне нужно получить доступ к _config.yml со значением page.title. Это не будет работать

{{ site.locales[site.default_locale].page.title }}

Мне нужно следующее (псевдокод):

{{ site.locales[site.default_locale].#{value of page.title}}

Ваш Ответ

1   ответ
5

как установлены твои переменные, это будет что-то вроде строк

{{ site.locales[site.default_locale][page.title] }}

Дело в том, ... я не вижу смысла делать это. Допустим, ваша страница является английской страницей. Локаль должна быть определена на странице, как и ваш заголовок!

---
locale: en
title: My Wonderful Page
---

Который вы можете получить с помощью{{ page.title }} ...

Какой смысл ставить название в_config.yml файл

(редактировать) хорошо, если вы не хотите получить доступ кpage.title когда на другой странице / посте, в этом случае у вас нет выбора, кроме как поместить его в_config.yml.

Ты жжешь. Это работает. Я не знал, что вы можете получить доступ к этому массиву с помощью переменной page.title. Теперь я могу определить локаль один раз в файле _config.yml. Затем на каждой странице я могу установить собственный заголовок, он будет проверять мой config.yml с локали для перевода, а затем использовать его в качестве заголовка. эпос. Hendrik

Похожие вопросы