Question

Je développe mon premier site multilingue C # et tout va bien sauf pour un aspect crucial. Je ne suis pas 100% sûr de ce que la meilleure option est de stocker des chaînes (généralement des mots simples) qui sera traduit par le code de mon code derrière pages.

À l'avant du site, je vais utiliser des fichiers de ressources asp.net pour le libellé des pages. Cette partie est très bien. Cependant, ce site fera des appels XML et les réponses XML ne sont jamais en anglais. J'ai donné une feuille Excel avec tous les mots qui seront retournés par le XML cassé dans les différentes langues, mais je ne sais pas la meilleure façon de stocker / accéder à cette information. Il y a environ 80 mots x 7 langues.

Je pense à la création d'un objet dictionnaire pour chaque langue qui est créé par mon fichier global.asax au moment de l'exécution et l'application juste garder en mémoire. Le côté positif pour ce faire est que l'objet dictionnaire ne doit être créé une fois (jusqu'à ce que IIS redémarre) et peut être consulté par tout utilisateur sans avoir besoin d'être reconstruit, mais l'inconvénient est que j'ai 7 objets dictionnaire constamment stockés dans la mémoire. Le serveur est un 64 bits avec 4 Go de RAM dois-je être encore concernés si Win 2008 avec une mémoire pris en utilisant cette méthode?

Qu'est-ce que vous en pensez serait la meilleure façon de stocker / récupérer différents mots de la langue qui seraient utilisés par tous les utilisateurs?

Merci pour vos commentaires.

Rich

Était-ce utile?

La solution

D'après ce que vous dites, vous êtes à la recherche à 560 mots qui doivent varier en fonction de l'environnement local. Ceci est une goutte dans l'océan. La méthode de fichier de ressources que vous avez envisagé est adapté à l'usage et je recommande de les utiliser. Ils intègrent des contrôles afin que vous allez tirer le meilleur parti d'eux.

Si elle a du mal à vous, vous pourriez avoir sur un cache coulissant, à savoir le cache coulissant de 20 minutes par exemple, mais je ne vois rien de mal avec votre choix dans cette solution.

OMO

Cheers,

Andrew

P.s. ont une lecture à travers ce, pour voir comment vous pouvez trouver et lier les valeurs dans les différents fichiers de ressources aux contrôles et littéraux et utiliser programatically.

http://msdn.microsoft.com/en-us/magazine /cc163566.aspx

Autres conseils

Tant que vous êtes au courant de l'impact de le faire alors oui, le stockage de ces données dans la mémoire serait bien (aussi longtemps que vous avez assez de le faire). Une fois que vous savez ce qui est approprié pour l'utilisateur actuel puis lancer dans la mémoire serait bien. Vous pouvez regarder quelque chose comme MemCached Win32 ou Velocity mais pour décharger le stockage à un autre serveur d'application. Utilisez ce même sur votre application locale pour le moment de cette façon quand il est temps de pousser cela à un autre serveur ou développer votre application, vous avez une séparation claire des préoccupations définies à votre couche de mise en cache. Et garder à l'esprit que plus les langues que vous prennent en charge le plus de choses que vous stockez dans la mémoire. Gardez un oeil sur la quantité de données stockées dans la mémoire sur votre serveur d'applications seul car cela pourrait devenir écrasante dans le temps. Aussi, assurez-vous que les clés que vous utilisez sont spécifiques à la langue. Sinon, vous trouverez peut-être que vous stockez un menu en allemand pour un utilisateur anglais.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top