Nous allons développer un site Web ASP.NET en 30 langues. Quelle est la meilleure solution pour développer ce site? quelle architecture utiliser?Meilleure pratique pour développer un site Web ASP.NET en 30 langues?
Répondre
Je suggère stocker des propriétés de l'interface utilisateur dans les fichiers de ressources (.resx
) et ont le CurrentUICulture
à la langue spécifique pour chaque demande:
<globalization culture="auto" uiCulture="auto" />
Si votre site Web est la plupart du temps l'application axée sur le contenu plutôt que d'une entreprise orientée que diffère fortement en fonction de la langue, vous pouvez envisager de créer un ensemble distinct de pages pour chaque langue et rediriger l'utilisateur en fonction d'un cookie ou d'une propriété de profil ou Request.UserLanguages
. Il n'est pas possible de donner une prescription générale pour le problème de la mondialisation. La meilleure architecture diffère considérablement en fonction de la nature de chaque projet individuel.
NLS est une exigence récurrente, et souvent lorsque la question sur la fonctionnalité NLS est posée, les personnes demandant ne sont pas conscients de la complexité. NLS généralement divisé en (au moins) 2 zones:
NLS dans l'interface utilisateur
NLS dans les données
Dans votre cas, un site basé sur le contenu, vous pouvez même divisé le deuxième point en - données générées par le fournisseur de site Web et - données générées par l'utilisateur. Pour UI NLS, vous pouvez utiliser le mécanisme .resx mentionné par Mehrdad, mais sachez que chaque travail de localisation nécessite toujours d'éditer le code source (c'est-à-dire les fichiers resx). Quand j'ai dû développer une application web multi-langes, j'ai donc choisi de gérer l'exigence NLS dans mon code, et j'ai créé quelques tables spécifiques à NLS qui reflétaient l'interface utilisateur (ce qui était la motivation pour écrire graspx : extrait tous les textes visibles de la source aspx, tels que Label.Text etc). Il existe une application distincte pour télécharger la définition de l'interface utilisateur et laisser les traducteurs faire leur travail. L'application principale possède une fonctionnalité d'importation pour les textes traduits. Le modèle de données ressemble à ceci: Page - PageItems - PageItemTexts (avec une référence à une langue), donc c'est assez simple. Le même modèle peut être appliqué au contenu: au lieu de Page et PageItems, vous avez simplement des ContentItems, qui contiennent uniquement un PK et un identifiant, et une table contenant le texte des ContentItems associés à une langue. En outre, vous pouvez définir une sorte de chaîne de repli de langue, de sorte qu'un texte qui n'est pas encore traduit soit affiché dans la langue d'origine ou dans une autre langue (proche).
La langue affichée peut être sélectionnée par la langue fournie par le navigateur (HTTP_ACCEPT_LANGUAGE), mais devrait être autorisée à être écrasée par l'utilisateur (par exemple via une liste déroulante). La langue sélectionnée doit être stockée dans une variable de session, dans un cookie ou dans la base de données (pour les utilisateurs enregistrés).
- 1. Meilleure pratique pour exposer des services Web
- 2. en utilisant le site Web pour développer ou utiliser une application Web dans ASP.Net?
- 3. Meilleure pratique pour les services Web
- 4. Meilleure pratique pour gérer les classes de site
- 5. Meilleure pratique pour la structure de fichiers du serveur Web
- 6. Quelle est la meilleure pratique pour développer un cadre d'importation de données PHP?
- 7. asp.net meilleure pratique concaténation de chaîne
- 8. Meilleure pratique pour intégrer TDD au développement d'applications Web?
- 9. Code d'erreur ou Exception - quelle est la meilleure pratique pour un service Web ASP.Net?
- 10. Meilleure pratique pour un grand service WCF?
- 11. comment créer un site Web ASP.Net enfichable?
- 12. Meilleure pratique pour Java IPC
- 13. Conseil en architecture pour un site web
- 14. Meilleure pratique pour les téléchargements de sous-versions et d'images
- 15. Comment puis-je commencer à développer un site en arabe dans ASP.NET?
- 16. Comment localiser un site SharePoint pour différentes langues
- 17. Meilleure pratique pour profiler une application SharePoint
- 18. Développer un site SharePoint en langue non anglaise
- 19. Meilleures pratiques pour stocker un site Web ASP.NET dans Subversion?
- 20. Comment développer les meilleures robots d'exploration Web
- 21. Meilleure pratique pour utiliser fopen() ou file_get_contents() pour récupérer des pages Web
- 22. DatePicker pour un site Web mobile?
- 23. Comment déployer/publier un site Web ASP.NET?
- 24. Meilleure pratique pour l'idiome de référence scopé?
- 25. Site Web pour mettre en pratique les compétences de conception OOP
- 26. publier un site web en utilisant msbuild
- 27. Meilleure pratique pour le hachage bidirectionnel en python?
- 28. ASP.Net/MySQL: Traduire le contenu en plusieurs langues
- 29. Meilleure pratique pour initialiser les variables membres?
- 30. Mysql colation pour toutes les langues
Le site Web est orienté contenu – Ahmed
Quelle est la meilleure architecture pour développer ceci? – Ahmed
Si le contenu et l'orientation de la page diffèrent significativement pour chaque langue (et qu'il n'y a pas de relation directe entre chaque élément de l'interface utilisateur), je pense qu'il est préférable d'avoir un jeu de pages aspx pour chaque langue. logique en utilisant une bibliothèque de classes. –