2008-11-25 9 views
1

Dans mon application asp.net, un utilisateur peut télécharger plusieurs images localisées (de boutons). Par exemple, il va télécharger 'send.gif', 'send.fr.gif', 'send.en-UK, gif;Trouver un fichier localisé

Lorsqu'un visiteur arrive sur sa page, je dois récupérer le bon fichier en fonction de la localisation du visiteur.

Existe-t-il une API (ou un moyen simple) pour trouver la meilleure image appropriée en fonction des paramètres régionaux? Par exemple, si un visiteur est originaire de France, l'API renvoie "send.fr.gif". Australie l'API renverra 'send.en.gif' etc ...

La logique devrait être la même que ASP.NET choisir le bon fichier de ressources localisé.

Merci.

Répondre

1

Il semble de votre message que vous avez déjà un moyen de détecter les paramètres régionaux des utilisateurs. Donc, je vais supposer que vous détenez cette information. Pour ce faire, nous stockons les paramètres régionaux des utilisateurs dans la session et stockons toutes les ressources localisées dans les noms de répertoire correspondants. par exemple:

/ 
    /images 
     sendButton.gif 
     background.gif 
     /de-de/ 
      sendButton.gif 
     /fr-fr/ 
      sendButton.gif 

Un HttpHandler est ensuite utilisé pour cartographier les répertoires localisés sur le dessus du répertoire par défaut, sur la base des utilisateurs actuels paramètres régionaux. Cela permet une intégration transparente des images dans tout le code, et css, et utilisera l'image dans le répertoire de base si aucune image localisée n'est trouvée.

Si un tri plus sophistiqué est requis, je vous suggérerais d'imbriquer vos pays dans vos langues. comme ceci:

/ 
    /images 
     sendButton.gif 
     background.gif 
     /de 
      /de 
       sendButton.gif 
     /fr 
      sendButton.gif 
      /fr 
      /be 

Vous pouvez ensuite spécifier les ressources au niveau du lenguage. Et même avoir vos fichiers de mappeur http dans la façon dont ils se propagent plutôt que dans l'arbre. Ainsi, la ressource fr-fr sera utilisée pour tous les pays francophones qui n'ont pas leur propre ressource de ce nom.

Bien sûr, à ce stade, cela devient assez complexe, surtout quand on décide quel pays francophone est utilisé par défaut pour la langue française si aucune n'est spécifiée. vous voudrez peut-être commencer à stocker des priorités quelque part afin de décider de ce que vous voulez servir dans quelle région. Et si les ressources se propagent vers le haut ou le bas de l'arbre. Mais en tant que structure transparente pour localiser des images tout en gardant votre balisage et votre CSS propres, cela devrait fonctionner très bien.

+0

Merci - mais en gros ma question est à quel point est-il compliqué d'écrire le HttpHandler? Il n'y a pas toujours un mappage 1-1 entre les paramètres régionaux de l'interface utilisateur et le répertoire. Il doit y avoir un mécanisme de secours. Par exemple s'il y a un fr-FR et un francais Belgique (fr-BE) arrive - où devrait-il aller? – LeJeune

+0

J'ai répondu à cela en éditant le post. Malheureusement, si vous avez besoin de ce complexe, j'imagine que vous devrez stocker un mapping weightetd entre les locales. Je crois toujours que le mappage des ressources choisies sur un répertoire standard est meilleur d'un point de vue de balisage et de CSS cependant. –

Questions connexes