2010-01-22 5 views
1

Je suis sur le point de commencer à traduire mon application vb.net et je ne souhaite pas utiliser les méthodes par défaut fournies par Visual Studio pour le faire. J'ai besoin que mon application soit très légère, et elle double presque sa taille pour utiliser l'option ressources. Par conséquent, je prévois d'utiliser quelque chose comme une classe, dont j'aurais une instance par langue. Puisque je ne veux pas distribuer des fichiers de langue en tant que fichiers séparés (je préfère les avoir codés en dur), j'aimerais trouver un moyen facile de vérifier si chaque champ de la classe est initialisé. Je pensais à quelque chose comme une interface, où je ferais quelque chose comme ceci:Internationalisation dans VB.Net: Choix du type de structure correct

Public Interface Language 
    Dim HelloMsg As String 
    Dim GoodbyeMsg As String 
End Interface 

Public class English Implements Language 
    HelloMsg = "Hello!" 
    GoodbyeMsg = "Goodbye!" 
End Class 

Il est évidemment pas la bonne façon de le faire (même si je pouvais utiliser les propriétés au lieu de vars), mais je me demandais si la était un moyen d'avoir le compilateur vérifier que tout est traduit et avertir à ce sujet sinon.

De toute façon, peut-être y a-t-il une bien meilleure façon de gérer ce problème?

Merci beaucoup! CFP.

Répondre

0

J'ai décidé d'utiliser une classe singleton qui charge un fichier de traduction, avec une méthode qui parcourt tous les éléments d'un formulaire et les traduit à la volée. Voir Create Synchronicity code source pour plus de détails (plus précisément this code file)

CFP.

+0

Bien que cette méthode ne permette pas la vérification automatique des chaînes non traduites. –

1

Je ne suis pas convaincu que vous devriez vider l'approche de localisation basée sur les ressources juste parce que votre application a grandi en taille. En effet, il aurait pu passer de 100 Ko à 200 Ko, mais c'est tout! Ça ne va pas grandir beaucoup plus. Et 200 Kb n'est rien de nos jours.

Donc, mon conseil est de reconsidérer et d'aller à base de ressources.

+1

Je pourrais bien, mais ce n'est pas vraiment une option pour moi d'augmenter la taille de mon application par autant ... Quoi qu'il en soit, je n'aime pas vraiment les options de localisation basées sur les ressources. Ils se sentent surdimensionnés, et assez inefficace pour moi, surtout à condition qu'ils rendent très compliqué d'éditer le code sans Visual Studio. Avez-vous une idée de comment je pourrais gérer sans cette fonctionnalité? –