8
votes

ASP.NET n'utilise pas d'autres fichiers de ressources locales

J'ai un default.aspx fichier où je récupère des valeurs localisées:

par défaut.aspx : xxx < P> I Créez ensuite un fichier de ressource correspondant :

par défaut.aspx.resx : xxx

Et cela fonctionne:

Entrez la description de l'image ici

Maintenant, je veux créer, par exemple, une localisation française:

par défaut.aspx.fr.resx : xxx

Et je change mon navigateur pour envoyer une locale de langue française:

Entrez la description de l'image ici

(lequel il fait): xxx

sauf que cela ne fonctionne pas:

 Entrez la description de l'image ici

Je suis sur quoi Microsoft dit :

Par exemple, si vous avez une page nommée par défaut.aspx dans le dossier App_LocalResources, vous pouvez créer les fichiers suivants:

  • par défaut.aspx.resx . Ceci est le fichier de ressources local par défaut (le fichier de ressources de secours) si aucun match de langue n'est trouvé.

  • par défaut.aspx.es.resx . Ceci est le fichier de ressources pour l'espagnol, sans informations de culture.

  • par défaut.aspx.es-mx.resx . Ceci est le fichier de ressources pour l'espagnol (Mexico) spécifiquement.

  • par défaut.aspx.fr.resx . Ceci est le fichier de ressources du français, sans informations de culture.

    Pourquoi .net ne fait pas quoi .net ne devrait pas faire?


    Mise à jour:

    / p>

    Sélection de fichiers de ressources pour différentes langues

    ASP.NET peut définir les propriétés de l'uculture et de la culture de la page sur les valeurs de langue et de culture passées par le navigateur. ... Pour des informations détaillées, voir Comment: Définir la culture et la culture d'interface utilisateur pour ASP .NET Page Web de la mondialisation.

    Comment puis-je obtenir ASP.NET pour définir le uiculture et culture propriétés de la page à la langue et les valeurs de culture passées par le navigateur ?


    de Comment: définir La culture de la culture et de l'interface utilisateur pour la page Web de la page Web ASP.NET :

    Les utilisateurs peuvent définir la culture et la culture de l'UI dans leurs navigateurs. Pour Exemple, dans Microsoft Internet Explorer, dans le menu Outils, les utilisateurs peuvent Cliquez sur Options Internet, dans l'onglet Général, cliquez sur Langue, puis définir leur préférence linguistique. Si l'enclassement de l'encombrement L'attribut de l'élément de mondialisation dans le fichier web.config est défini ASP.NET peut définir la culture et la culture de l'UI pour une page Web automatiquement, basé sur les valeurs envoyées par un navigateur.

    Pour définir la culture et la culture d'interface utilisateur d'une page Web ASP.NET déclara

    • Pour que ASP.Net définisse la culture et la culture de l'UI à la première langue spécifiée dans les paramètres actuels du navigateur, définir l'uculture et la culture sur Auto. Sinon, vous pouvez définir cette valeur sur Auto: culture_info_name , où culture_info_name est un nom de culture. Pour une liste de noms de culture, voir cultureInfo . Vous pouvez faire ce paramètre dans le @ page directive ou web.config Fichier.


0 commentaires

3 Réponses :


6
votes

Par défaut, la langue du navigateur n'affecte pas les paramètres régionaux d'application. Vous devez ajouter du code pour y parvenir. Une solution consiste à ajouter du code dans global.asax code> ou à httpmodule, sur beginRequest code>.

Pour lire le réglage de la langue à partir du navigateur, vous pouvez utiliser quelque chose sur les lignes. de: p> xxx pré>

si vous souhaitez affecter également la date d'heure, les formats de numéro, etc., définissez également courrielculture code>. p>

Thread.CurrentThread.CurrentCulture = new CultureInfo(lang);


0 commentaires

1
votes

Je ne crois pas que le temps d'exécution ASP.NET par défaut définit la culture de l'interface utilisateur du thread de traitement. Vous devez l'attribuer explicitement. Vous pouvez le faire avec votre propre httpmodule personnalisé ou même dans votre global.aSax.cs.

quelque chose sur les lignes de: xxx

voir http://msdn.microsoft.com/en-us/library/bz9tc508.aspx pour un exemple comme point de départ.


0 commentaires

12
votes

essayez de paramétrer uiculture = "auto" code> et culture = "auto" code> dans la directive code> page code> dans votre fichier .Aspx.

Comment: Définir la culture de la culture et de l'UI de la page Web ASP.NET La mondialisation p>

ou, vous pouvez accomplir la même chose dans le Web.config, sauf que cela s'appliquerait à chaque page: P>

<system.web>
    <globalization uiCulture="auto" culture="auto" />
</system.web>


1 commentaires

Merci. Qui a résolu le problème et les paramètres régionaux sont désormais définis correctement en fonction de l'en-tête HTTP de langue acceptée