Il y a plusieurs options disponibles.
Premièrement, les étiquettes et des éléments de l'interface utilisateur.
Deux options sont généralement possibles: soit vous utilisez des ressources (* .resx), soit vous déployez votre propre support multilingue au niveau de la base de données. Ils ont tous deux leurs avantages et leurs inconvénients.
Resoures:
[+] solution facile, tout est prêt pour une utilisation immédiate. Vous définissez une ressource textuelle dans une famille de fichiers nommée Orders.en.resx, Orders.fr.resx
etc. Dans le code, vous référencez ces chaînes sous la forme Resources.Orders.Title
. Donc, c'est une solution simple pour statique éléments de l'interface utilisateur. [+] Les fichiers de ressources sont essentiellement des documents XML simples qui peuvent être rapidement lus et analysés, ce qui réduit les frais généraux et les pertes de performances.
[-] Si vous devez changer quelque chose, vous devrez recompiler le projet. Cela signifie par conséquent que vous aurez besoin de l'environnement de développement (VS) installé pour quiconque peut envisager de mettre à jour des textes. Ensuite, vous devrez également déployer à nouveau la version recompilée. La même chose s'applique pour l'introduction de nouvelles langues dans le système.
[-] Ne fonctionnera pas pour des tâches non techniques, car la participation de spécialistes est requise.
solution multilingue en base de données personnalisée:
[-] il faudra un certain temps et d'efforts pour concevoir et mettre en œuvre
[-] Chaque texte de l'interface utilisateur sera tiré de la base de données, ce qui signifie baisse de performance et charge supplémentaire sur la base de données
[+] Permet le changement de texte dynamique à la volée et la suppression/ajout de nouvelles langues. Aucune recompilation ou déploiement ne sera nécessaire.
[+] Maintenant, un énorme avantage. Comme aucune compétence technique n'est requise pour travailler sur des textes, vous pouvez externaliser ce travail à n'importe quel endroit. Vous pouvez implémenter une interface web et changer le système de suivi pour les magasins professionnels de services de traduction pour corriger vos textes et effectuer des traductions dans n'importe quelle langue dont vous avez besoin rapidement après la découverte de nouveaux textes.
maintenant aux textes dynamiques (contenu réel).
Ici, vous pouvez soit scinder chaque texte en un enregistrement supplémentaire par langue dans une table, soit fusionner toutes les traductions en une seule entité.
enregistrements multiples:
modèle de base de données Imagine suivantes:
[Language]
-----------------
ID Description
[Translation]
------------------
ID FallbackText
[TranslationText]
--------------------------------
ID TRID LanguageID Text
[Order]
------------------------------------------------
ID TitleTRID DescriptionTRID RemarkTRID
Partout dans la base de données où vous devez stocker un texte multilingue vous à la place de référence certains TranslationID. Ensuite, en fonction de la langue active, votre système cherchera une traduction appropriée ou, s'il n'est pas trouvé, retournera un texte par défaut (généralement défini par les développeurs).
entité unique:
Vous conservez toutes les traductions pour un texte donné dans une chaîne en utilisant un moyen de distinguer les traductions particulières. XML fonctionne naturellement ici. Ici, votre modèle de base de données sera plus simple, mais vous devrez analyser chaque texte pour extraire la version nécessaire.
Ce sont les stratégies largement utilisées. Lequel fonctionnera le mieux pour vous dépendra de vos besoins et de vos scénarios d'utilisation attendus.
Espérons que ça aide. :)
Merci beaucoup pour la réponse .. Je pense que je vais aller de l'avant avec des ressources (pour le texte statique) et base de données multiples d'enregistrement entraîné pour les données réelles. – Lasker