5

Je ne connais pas beaucoup le processus de localisation dans DNN. La question est la suivante: comment pouvez-vous localiser un nouveau module?Localisation du module dans DNN

Est-il possible d'inclure des fichiers de localisation avec chaque module séparément? Quelles solutions pouvez-vous trouver?

Répondre

4

La localisation d'un module est assez facile grâce à DotNetNuke. Quel que soit le fichier .ascx (View), le dossier App_LocalResources doit toujours l'accompagner, au même niveau. Il devrait également y avoir un fichier .ascx.resx correspondant dans ce dossier.

view.ascx 
App_LocalResources 
- view.ascx.resx 

Une fois que vous avez cette structure dans votre module. DNN choisira le fichier immédiatement.

Pour utiliser ces chaînes de ressources dans le resx. Un point d'amure simple sur la propriété ResourceKey à la fin de vos contrôles d'asp. par exemple.

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

Vous devriez avoir un lblExample.Text dans votre fichier resx qui correspond avec cette étiquette. Notez qu'il y ajoute .Text automatiquement.

Si cela ne se présente pas, il y a quelques petites choses à vérifier

  1. LocalResourceFile propriété dans le code. À quel endroit pointe-t-il?
  2. définissez ShowMissingKeys=true dans web.config et vous verrez les chaînes de ressources qui vous manquent.
+1

J'ajouterais aussi que vous pouvez utiliser 'DotNetNuke.Entities.Modules.LocalizeString (" YourKeyName.Text ")' pour insérer une ressource localisée dans votre code. Ceci est également utile à la fin d'ASCX dans un nugget de code pour quand vous voulez un morceau de texte localisé mais ne voulez pas utiliser un contrôle. Exemple: '<% = LocalizeString (" YourKeyName.Text ")%>' – lukejkw

1

Veuillez trouver this document. Je ne sais pas si cela couvre vos questions et comment la localisation des modules DotNetNuke est différente des autres applications Asp.Net, mais essayez-la.
Si je peux suggérer quelque chose, j'ajouterais plus de balises dans le futur (comme C# par exemple), il sera visible par un public plus large ce qui pourrait donner de meilleures réponses.

+0

J'avais déjà vérifié cela et trouvé rien d'utile pour ce cas. Merci pour votre réponse. – Manoochehr

0

Créez simplement un dossier appelé "App_LocalResources" au même niveau que vos fichiers d'affichage .ascx dans votre projet. Pour chaque fichier que vous voulez localiser, ajoutez simplement un fichier .resx avec le même nom que l'affichage (y compris l'extension .ascx).

Resx Nom Exemple:

"View.ascx.resx"

L'utilisation localistion est vraiment facile après. Il suffit de définir la ressource propriété clé de contrôles que selon vous voulez tirer de votre fichier resx à un nom significatif

Exemple:

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

Resx fichier:

« lblName.Text » assignera au La propriété textuelle de l'étiquette "lblName.Help" affectera à la propriété DNN Tooltip si vous utilisez dnn: Étiquettes comme ci-dessus

Si vous voulez commencer à utiliser les étiquettes DNN, mettez simplement cette étiquette en haut de votre page.

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

Une autre méthode pratique disponible est:

LocalizeString("key") 

Il va tirer de votre fichier de ressources et très pratique lorsque vous travaillez avec des choses comme des modèles de courriel.

Questions connexes