J'ai un site web ASP.Net qui utilise une base de données MySQL pour le back-end. Le site Web est un système de commerce électronique en anglais, et nous examinons la possibilité de le traduire en cinq autres langues (français, espagnol, etc.). Nous ferons appel à des traducteurs humains pour effectuer la traduction - nous avons examiné les services automatisés, mais ceux-ci ne sont pas suffisants.ASP.Net/MySQL: Traduire le contenu en plusieurs langues
Le texte statique sur le site (par exemple, en-têtes, boutons, etc.) peut facilement être servi en plusieurs langues via les fonctions de localisation intégrées de .Net (fichiers resx, etc.). La chose que je ne suis pas si sûr de la meilleure façon de stocker et de récupérer le contenu multilingue dans la base de données. Par exemple, il y a une table de produits qui inclut ces champs ...
- productId (int)
- categoryId (int)
- titre (varchar)
- résumé (varchar)
- Description (texte)
- caractéristiques (texte)
Le titre, le résumé, la description et dispose tex Il faudrait qu'il soit disponible dans toutes les langues.
Voici les deux options que je suis venu avec ...
Créer champ supplémentaire pour chaque langue Par exemple, nous pourrions avoir titleEn, titleFr, titleEs etc pour toutes les langues, et répétez ceci pour toutes les colonnes de texte. Nous adapterons ensuite notre code pour utiliser le champ approprié en fonction de la langue sélectionnée. Cela semble un peu hacky, et conduirait aussi à de très grandes tables. En outre, si nous voulions ajouter d'autres langues à l'avenir, il serait fastidieux d'ajouter encore plus de colonnes.
Utilisez une table de recherche Nous pourrions créer une nouvelle table avec le format suivant ...
textId | languageId | content
-------------------------------
10 | EN | Car
10 | FR | Voiture
10 | ES | Coche
11 | EN | Bike
11 | FR | Vélo
Nous avions adaptons notre table de produits pour faire référence à la textID appropriée pour le titre, le résumé, Description et fonctionnalités au lieu d'avoir le texte stocké dans la table des produits. Cela semble beaucoup plus élégant, mais je ne peux pas penser à un moyen simple d'extraire ces données de la base de données et sur la page sans utiliser d'instructions SQL complexes. Bien sûr, l'ajout de nouvelles langues à l'avenir serait très simple par rapport à l'option précédente.
Je serais très reconnaissant pour toutes les suggestions sur la meilleure façon d'y parvenir! Existe-t-il des conseils sur les «meilleures pratiques»? Est-ce que quelqu'un a déjà fait ça?
Excellente idée, je pense que cela fonctionnera bien. Merci beaucoup pour votre réponse. – philwilks