J'ai cherché à créer des applications adaptées à plusieurs langues en C#, car je dois travailler sur un petit projet dans lequel c'est le cas. J'ai trouvé essentiellement deux façons de le faire :
Définissez la propriété Localizable d'un formulaire à true, définissez la propriété Language, remplissez toutes les étiquettes et autres, et vous avez "fini". Le principal inconvénient que je vois dans ce système est le suivant : comment faire en sorte que d'autres éléments qui ne font pas partie d'un formulaire puissent être localisés dans plusieurs langues (par exemple, les fenêtres pop-up, les fichiers journaux ou les fenêtres, etc).
Créez un fichier de ressources, par exemple 'Lang.en-us.resx' et un autre pour chaque langue, par exemple 'Lang.nl-nl.resx' et remplissez-le de chaînes. L'IDE semble générer automatiquement une classe pour moi, de sorte que dans le code, je peux simplement utiliser Lang.SomeText. Le plus gros inconvénient que je vois dans cette méthode est que, pour chaque formulaire, je dois définir toutes les étiquettes et autres légendes moi-même dans le code (et il ne semble pas que la liaison de données fonctionne avec ces ressources).
Je suis cependant certain qu'il existe d'autres méthodes pour y parvenir.
Alors, quelle est la meilleure pratique ? Qu'est-ce qui est le plus simple pour les petites applications (quelques formulaires, connexion à une base de données, etc.) et qu'est-ce qui est le plus adapté aux grandes applications ?