2013-08-09 4 views
0

Есть ли способ использовать или отобразить код культуры (например, «en-US» или «fr-FR») в модуле HTML, используя версию сообщества DotNetNuke 7?Показать код языка/культуры в модуле HTML

Моя цель состоит в том, чтобы передать это в URL IFrame, который находится внутри HTML-модуля, вдоль этих линий:

<iframe src="http://www.awesome.com?language=[Language:Culture]" /> 

Я попробовал несколько вещей, чтобы узнать, как (или даже если) это возможно:

  • Поисковый запрос для таких запросов, как "DotNetNuke 7 language token in html module". Это приводит ко многим более старым страницам, лучший из которых - a page, который упоминает много токенов, но ни один из них не тот, который мне нужен.

  • Просмотр исходного кода DotNetNuke (в частности, TokenReplace.cs). Это означает, что маркеров [Language:...] нет.

  • Попросту примерка, как [Language:culture], но это дает ошибку:

    Error accessing [Language:culture], Language is an unknown datasource.

  • Going всем настройки, пытаясь найти какой-либо способ сделать модуль реагировать на выбранном язык какого-то образом. Единственное, что я нашел, это (многообещающая) настройка «Module Culture», которую я ожидал быть полезной (показать модуль только в определенной культуре будет достаточно для моего использования). Тем не менее, эта установка ...

    setting in DNN

    ... это не то, что вы можете установить . Возможно, это связано с тем, что модуль HTML не поддерживает взаимодействие с культурами вообще?

Может ли кто-нибудь сказать мне, есть ли способ сделать что-то в этом направлении с изданием сообщества? Или мне нужно либо сделать свой собственный модуль, либо прибегнуть к взломам с использованием javascript и еще чего?

+0

Ну, по крайней мере, этот вопрос получил меня мой «Перекати» значок ...: P – Jeroen

ответ

2

Начальные ноты:

  • по страницам по умолчанию являются нейтральными, но после включения многоязычных порталов, ваши страницы культура изменится на языке по умолчанию, вы можете проверить, что в настройке страницы (выглядит как ваш скриншот для модуля)
  • все модули внутри страницы имеют ту же культуру, что и ее страница.
  • поэтому, если культура вашего модуля нейтральна, это означает, что ваша страница нейтральна, и это означает, что вы не включили многоязычность.

вы должны:

  1. включить DNN многоязычный вариант в:
    • хоста> Настройки хоста> другие настройки> Разрешить содержание локализации
  2. установить язык по умолчанию (не изменяться позже) и составить список языков, которые вы хотите для своего портала.
    • админ> языки
  3. сделать ваш сайт готов для нескольких языков. (не отменяется)
    • Эта недействительная операция сделает копию всех страниц и их модулей со страниц с вашим языком по умолчанию (не нейтральным) для каждого языка, который у вас был в списке ваших языков. это означает, что после этого вы будете иметь каждую страницу/модуль на каждом языке. они могут иметь совершенно другой контент/настройку, но они связаны только друг с другом (рассматриваются как одно и то же, но на разных языках), поэтому пользователь может менять язык и видеть правильную страницу на другом языке. обратите внимание, что эти страницы на разных языках не являются той же страницей, что и их по умолчанию, поэтому они имеют отдельный tabid. , поэтому нет необходимости в токенах для каждой страницы на каждом языке, имеется отдельная копия модуля.
    • админ> Языки> Включить локализованного контента
  4. каждая копия должна быть опубликована первая, в противном случае его видимым только переводчиками группы/роли (и не государственные), так что вы должны отметить скопированные модули и страницы, переведенные по очереди. конечно, после перевода и обновления содержимого и настроек.
    • для упрощения перевода и маркировки и управления отношениями модулей по связанным страницам на другом языке, я предлагаю вам использовать http://dnncltools.codeplex.com/, используя этот инструмент, проще использовать тот же модуль на разных языках вместо использования его копий.
  5. поэтому, если вы создаете доступный модуль на нескольких страницах, теперь вам действительно нужен модуль, способный использовать несколько языков, как вы просили. для использования HTML-модуля http://nuntiocontent.codeplex.com/
  6. после маркировки всего, как переведено, вы должны опубликовать их, чтобы они получили нормальное разрешение.
    • админ> Языки> разместить иконку перед каждой языковой строки
+0

+1, спасибо за принимая время с таким обширным ответом! Не могу принять (пока), поскольку я не хочу дублировать мой * весь портал * на другой язык только для одного iframe (теперь я буду придерживаться только переведенных меток). – Jeroen

+0

это способ, которым многоязычный DNN работает, если вы хотите, чтобы один языковой портал притворялся более чем одним языком, это другое дело. вы можете прочитать язык queryParam в модуле, который вы написали сами, или даже на javascript на вашем скине, но, конечно, только HTML-модуль не будет работать для вас. – Unicornist

+0

также на многоязычном портале, у вас есть возможность маркировать все страницы как перевод, не переводя их и прикрепляя все вторичные языковые модули к их основным (вместо копирования), а копируя только тот, который вам нужен, с 'iframe'. – Unicornist