Собственная поддержка интернационализации в виде

В проекте я работаю по стандарту i18n интернационализация не используется. Скорее обычай был создан некоторое время назад.

Теперь с переходом на AEM 6.1 мы хотим использовать Sightly, но по-прежнему использовать собственную систему. Очевидно, что есть поддержка i18n, и мне было интересно, возможно ли создать нечто подобное для нашей собственной системы.

Я пытался использовать шаблоны, но изо всех сил пытался использовать их в различных хитросплетенных тегах, а затем вызывать. (например, data-sly-attribute) Я делаю ошибку здесь?

template.html

<template data-sly-template.foo="${ @ key }">bar</template>
<sly data-sly-call="${ foo }" data-sly-unwrap></sly>
<div data-sly-attribute="${ foo }"></div>

output.html

bar
<div></div>

Я пытался заставить что-то работать с интерфейсом Java RuntimeExtension, но это не сработало.

Наша система в основном представляет собой XML-файл с тегами и строками. Я могу получить данные оттуда без проблем с сервисом.

Пример:

<en>
    <com.example.title jcr:primaryType="nt:unstructured" value="A title"/>
    <com.example.desc jcr:primaryType="nt:unstructured" value="Description"/>
</en>
<de>
    <com.example.title jcr:primaryType="nt:unstructured" value="Ein Tiel"/>
    <com.example.desc jcr:primaryType="nt:unstructured" value="Beschreibung"/>
</de>

Если у вас есть какие-либо вопросы относительно проблемы, не стесняйтесь спрашивать.

1 ответ

Решение

Вы не можете определить собственные визуальные теги. Самое большее, что вы можете сделать, - это воспользоваться директивой use и использовать другой шаблон в качестве пользовательского тега. Вы можете посмотреть на рабочий пример в /libs/granite/sightly/templates/clientlib.html, который в основном соответствует следующей структуре:.html

<template data-sly-template.customi18n="${@ i18nkey}">do something here</template>

.html

<div data-sly-use.i18n="${'/path/to/templates/customi18n.html'}" data-sly-unwrap>
   <span data-sly-call="${i18n.customi18n @ i18nkey='My Translation Key'}" data-sly-unwrap></span>
</div>
Другие вопросы по тегам