TYPO3: как работать с многоязыковой поддержкой с помощью гибких шаблонов - PullRequest
0 голосов
/ 07 июня 2018

Я работаю на странице с многоязычной поддержкой.Мне удалось заставить его работать с realurl и бэкэндом.

Теперь я не совсем уверен, как отобразить переведенный текст из бэкэнда.

Например: у меня естьстраница на языке по умолчанию (en) с заголовком «Контакт».Сейчас я создал перевод на немецкий язык с названием «Контакт».

В моей конфигурации мой URL теперь говорит:

  • ru: domain.com/en/contact
  • de: domain.com/de/kontakt

Но моя навигация, отображаемая с помощью жидкого шаблона, все еще показывает язык по умолчанию даже на немецком URL.Есть ли переменная для {page.title.currentLanguage} или что-то в этом роде?

Конечно, я мог бы создать перевод внутри файла locallang.xlf, но для того, чтобы использовать представление вида f: translate, но этозначит, мне нужно дважды перевести название страницы, верно?

Я ценю всю помощь!

Мой текущий фрагмент для рендеринга навигации:

<nav>
    <div class="container">
        <ul class="content btns">
            <f:for each="{mainnavigation}" as="mainnavigationItem">
                <li class="{f:if(condition: mainnavigationItem.active, then:'active')}">
                    <a href="{mainnavigationItem.link}" target="{mainnavigationItem.target}" title="{mainnavigationItem.title}">{mainnavigationItem.title}</a>
                    <f:if condition="{mainnavigationItem.children}">
                        <ul>
                            <f:for each="{mainnavigationItem.children}" as="child">
                                <li class="{f:if(condition: child.active, then:'active')}">
                                    <a href="{child.link}" target="{child.target}" title="{child.title}">{child.title}</a>
                                </li>
                            </f:for>
                        </ul>
                    </f:if>
                </li>
            </f:for>
        </ul>
    </div>
</nav>

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Я нашел решение, которое искал:

При настройке обычных настроек локализации я добавил конфигурацию TypoScript из документации по локализации.Я добавил следующие строки:

# Localization:
config {
        linkVars = L(int)
        sys_language_uid = 0
        sys_language_overlay = 1
        sys_language_mode = content_fallback
        language = en
        locale_all = en_US.UTF-8
        htmlTag_setParams = lang="en" dir="ltr" class="no-js"
}
[globalVar = GP:L = 1]
        config {
                sys_language_uid = 1
                language = de
                locale_all = de_DE.UTF-8
                htmlTag_setParams = lang="de" dir="ltr" class="no-js"
        }
[global]
[globalVar = GP:L = 2]
        config {
                sys_language_uid = 2
                language = da
                locale_all = da_DK.UTF-8
                htmlTag_setParams = lang="da" dir="ltr" class="no-js"
        }
[global]

Конечно, используя мои языковые идентификаторы.Это решило мою проблему, теперь переведенный заголовок страницы появляется в теге title и в моей навигации.

Я предполагаю, что опция "sys_language_overlay = 1" предназначена для этой цели.

0 голосов
/ 08 июня 2018

Я использую typolink для рендеринга моего тега следующим образом:

<f:link.typolink parameter="{item.data.uid}" target="{item.target}" title="{item.title}" class="menu-link">{item.title}</f:link.typolink>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...