Je suis confronté à un problème qui semble ne pas avoir de solution raisonnable/traitable avec laquelle je suis satisfait. Silverlight et l'internationalisation - un bourbier en devenir.Silverlight - Valeurs de ressources paramétrées pour l'internationalisation
J'ai un ensemble de fichiers de ressources qui contiennent des chaînes traduites.
Dans le cas simple, je peux déclarer la ressource de langue etc. et lier le contenu/texte d'une valeur dans la ressource fortement typée. Thats bien - beaucoup d'exemples de cela posté autour.
Un cas moins simple est que les chaînes peuvent avoir un paramètre, j'ai donc besoin d'injecter une valeur dans la chaîne pour l'afficher, ce qui en soi peut être une liaison de données.
Le scénario le plus complexe est une chaîne avec plusieurs paramètres. Vous pouvez argumenter que la machine virtuelle devrait fournir cette capacité, mais je suis mécontent de cela car elle brise le fossé entre le concepteur UX et le développeur, exigeant que le développeur implémente une propriété/méthode sur la machine virtuelle pour supporter chaque chaîne l'interface utilisateur nécessite. Par exemple: Le concepteur décide après les commentaires de l'utilisateur d'ajouter une info-bulle personnalisée avec plus d'informations à ce sujet. L'info-bulle est faite de manière déclarative et combine une meilleure explication avec les valeurs du datacontext. L'explication est stockée dans les ressources et les valeurs utilisées proviennent soit d'un contexte de données existant, soit d'un élément à une liaison d'élément.
Si je dois exécuter chaque chaîne via la machine virtuelle, l'ajout de quelque chose comme ceci nécessite des changements de machine virtuelle. De même, si la source des paramètres provient d'autres éléments, la machine virtuelle n'est pas nécessairement en mesure de fournir la chaîne formatée.
Comment les gens ont-ils contourné/abordé ce problème?
A.
Cette solution remet tout dans la machine virtuelle qui est le problème original et ce que je souhaite éviter. Whist une machine virtuelle devrait être consciente qu'elle va être consommée par une vue, pour que chaque chaîne de chaque vue consommant la machine virtuelle sortant de la machine virtuelle soit impraticable, et tout élément à la liaison d'élément qui ne provient pas de la machine virtuelle pouvoir être utilisé. par exemple. Un bloc de texte indiquant "La valeur actuelle est {0}" et l'espace réservé provenant d'un curseur sur la vue. la VM peut ne pas avoir connaissance du curseur car c'est un morceau UX pur qui n'est pas persistant (disons le niveau de zoom actuel.) – Andrew
J'ai essayé votre solution mais j'ai aussi un ResourceDictionary dans mon ayant mon défaut feuille de style. À cause de cela, je reçois une erreur "Le type" ResourceDictionary "est dans un ResourceDictionary et n'a pas de clé." Savez-vous ce que je pourrais faire pour résoudre ce problème, parce que quand je mets une clé je ne suis pas capable d'utiliser le style à travers les applications. J'utilise les étapes décrites sur http://msdn.microsoft.com/en-us/library/dd882554(VS.96).aspx –
Nordes
Les styles doivent être inclus en tant que dictionnaire. Pour moi, cela signifie que la section des ressources qui ressemble à: ResourceDictionary> –
R4cOON