Локализация модуля в DNN - PullRequest
5 голосов
/ 29 апреля 2011

Я не знаю много о процессе локализации в DNN. Вопрос в том, как локализовать новый модуль?

Можно ли включать файлы локализации в каждый модуль отдельно? Какие решения вы можете придумать?

Ответы [ 3 ]

4 голосов
/ 04 июля 2011

Локализация модуля довольно проста благодаря DotNetNuke.

Где бы ни находился ваш файл .ascx (View), папка App_LocalResources должна всегда сопровождать его на одном уровне. В этой папке также должен быть соответствующий файл .ascx.resx.

view.ascx
App_LocalResources
- view.ascx.resx

Как только у вас есть эта структура в вашем модуле. DNN немедленно заберет файл.

Чтобы использовать строки этого ресурса в resx. Просто прикрепите свойство ResourceKey к концу элемента управления asp. например, * +1008 *

<asp:Label ID="lblExample" runat="server" ResourceKey="lblExample" />

У вас должен быть lblExample.Text в вашем файле resx, который совпадает с этим ярлыком. Обратите внимание, что он добавляет .Text к нему автоматически.

Если он не появляется, есть несколько вещей, которые нужно проверить

  1. LocalResourceFile собственность в коде. На какое место он указывает?
  2. установите ShowMissingKeys=true в web.config, и вы увидите, какие строки ресурсов вам не хватает.
1 голос
/ 29 апреля 2011

Пожалуйста, найдите этот документ . Я не уверен, что он охватывает ваши вопросы и чем локализация модулей DotNetNuke отличается от других приложений Asp.Net, но, пожалуйста, попробуйте.
Если я могу что-то предложить, я бы добавил больше тегов в будущем (например, C #), это будет видно для более широкой аудитории, что может привести к лучшим ответам.

0 голосов
/ 17 ноября 2014

Просто создайте папку с именем "App_LocalResources" на том же уровне, что и ваши файлы .ascx view в вашем проекте. Для каждого файла, который вы хотите локализовать, просто добавьте файл .resx с тем же именем, что и представление (включая расширение .ascx).

Пример имени Resx:

"View.ascx.resx"

После этого очень легко использовать локализацию. Просто установите свойство Resource Key любого элемента управления, который вы хотите извлечь из файла resx, к значимому имени

Пример:

<dnn:Label id="lblName" ResourceKey="lblName" runat="server" />

Файл Resx:

"lblName.Text" назначит свойству Text метки «lblName.Help» назначит свойству всплывающей подсказки DNN, если вы используете dnn: Labels, как указано выше

Если вы хотите начать использовать ярлыки DNN, просто поместите этот тег вверху вашей страницы.

<%@ Register TagPrefix="dnn" Assembly="DotNetNuke.Web" Namespace="DotNetNuke.Web.UI.WebControls" %>
<%@ Register TagPrefix="dnn" TagName="Label" Src="~/controls/LabelControl.ascx" %>

Еще один удобный метод:

LocalizeString("key")

Он будет извлечен из файла ресурсов и весьма удобен при работе с такими вещами, как шаблоны электронной почты.

...