2009-03-09 6 views
0

Je construis C# WinForms en utilisant le modèle MVP dans VS 2008. Je les migrerai vers WPF à l'avenir. Ces formulaires devront prendre en charge plusieurs langues pour les étiquettes et les menus d'entrée. Je veux stocker le texte d'étiquette dans une base de données SQL Server et extraire l'étiquette appropriée basée sur la langue.Internationalisation: Dois-je utiliser des ressources ou MVP pour les étiquettes?

Laquelle de ces options (ou une autre option peut-être) utiliseriez-vous?

  • Utilisez Visual Studio 2008 capacité intégrée des ressources et écrire un fournisseur personnalisé pour obtenir propriétés de SQL.

  • Intégrer le texte de l'étiquette dans le présentateur MVP
    .

Répondre

1

Comme vous visez à changer l'interface utilisateur à un moment donné à l'avenir, vous devez garder la couche de présentation aussi mince que possible, pour éviter d'écrire beaucoup de code supplémentaire. Dans cette optique, cliquer sur le code de globalisation/localisation dans le présentateur n'est pas une bonne idée. Un fournisseur personnalisé pour la gestion intégrée des ressources est une meilleure option que le chargement du présentateur, IMO.

Regardez les articles de Michele Bustamante sur la mondialisation sur MSDN. Si vous devez stocker les chaînes localisées dans SQL Server, vous devrez décider si vous pouvez utiliser les fichiers de ressources dans une grande variété de types de projets. Je vais devoir trouver son article sur la construction d'un fournisseur de globalisation personnalisé.

Un rapide Google trouve cet article: http://www.codeproject.com/KB/aspnet/customsqlserverprovider.aspx?fid=308557&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=1619351

Je n'ai pas joué avec le code, mais il semble être un bon début.

+0

Aucun problème. J'espère que cela aide. –

+0

Après plus de recherches et de bricolages, je suis convaincu qu'avant de «réinventer la roue», je devrais vraiment essayer ce qui est déjà intégré dans le cadre. Ce n'est pas 100% ce que je cherche, mais je vais passer moins de temps (et traiter beaucoup moins de bugs) en restant simple! Encore merci pour votre contribution! –