5

No sé mucho sobre el proceso de localización en DNN. La pregunta es ¿cómo se puede localizar un nuevo módulo?Localización de módulo en DNN

¿Es posible incluir archivos de localización con cada módulo por separado? ¿Qué soluciones puedes encontrar?

Respuesta

4

La localización de un módulo es bastante fácil gracias a DotNetNuke.

Dondequiera que esté su archivo .ascx (Ver), la carpeta App_LocalResources siempre debe acompañarlo, en el mismo nivel. También debe haber un archivo .ascx.resx correspondiente en esa carpeta.

view.ascx 
App_LocalResources 
- view.ascx.resx 

Una vez que tenga esa estructura en su módulo. DNN recogerá el archivo inmediatamente.

Para usar las cadenas de recursos en el resx. Tachuela simple en la propiedad ResourceKey hasta el final de sus controles asp. p.ej.

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

Usted debe tener un lblExample.Text en su resx que coincide con esa etiqueta. Tenga en cuenta que agrega .Text automáticamente.

Si no está apareciendo, hay algunas cosas para comprobar

  1. LocalResourceFile propiedad en el código. ¿A qué ubicación apunta?
  2. configure ShowMissingKeys=true en web.config y verá qué recursos faltan.
+1

También agregaría que puede usar 'DotNetNuke.Entities.Modules.LocalizeString (" YourKeyName.Text ")' para insertar un recurso localizado en su código. Esto también es útil en el extremo ASCX en un nugget de código para cuando quiere un fragmento de texto localizado pero no quiere usar un control. Ejemplo: '<% = LocalizeString (" YourKeyName.Text ")%>' – lukejkw

1

Encuentra this document. No estoy seguro si cubre sus preguntas y cómo la localización de módulos DotNetNuke es diferente de otras aplicaciones Asp.Net, pero por favor pruébelo.
Si puedo sugerir algo, agregaría más etiquetas en el futuro (como C# por ejemplo), será visible para un público más amplio que puede dar como resultado mejores respuestas.

+0

Ya lo había comprobado y no encontré nada útil para este caso. Gracias por tu respuesta. – Manoochehr

0

Simplemente cree una carpeta llamada "App_LocalResources" en el mismo nivel que sus archivos de vista .ascx en su proyecto. Para cada archivo que desee localizado, simplemente agregue un archivo .resx con el mismo nombre que la vista (incluida la extensión .ascx).

Resx Nombre Ejemplo:

"View.ascx.resx"

Usando localistion es muy fácil después de eso. Basta con establecer la propiedad Key de recursos de lo que controles que desea sacar de su resx a un nombre significativo

Ejemplo:

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

Resx del archivo:

"lblName.Text" asignará a la La propiedad de texto de la etiqueta "lblName.Help" asignará a la propiedad DNN Tooltip si está utilizando dnn: Etiquetas como las de arriba

Si desea comenzar a usar etiquetas DNN, simplemente coloque esta etiqueta en la parte superior de la página.

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

Otro método útil disponible es:

LocalizeString("key") 

Se tirará de su archivo de recursos y que sea muy útil cuando se trabaja con cosas como plantillas de correo electrónico.