2015-12-08 3 views
1

J'ai une petite question sur l'utilisation de Fragments dans Eclipse RCP. Actuellement, j'utilise le mécanisme Messages pour traduire mes chaînes. Les fichiers Messages.java et * .properties se trouvent dans mon plugin et tout fonctionne correctement. Maintenant, j'aimerais utiliser différentes chaînes/traductions pour différents clients. Pour autant que je sache, Plugin-Fragments est une solution possible ici. J'ai lu qu'il n'est pas possible de remplacer les fichiers d'un plugin hôte en utilisant un fragment. Donc je pense que je dois utiliser 2 fragments différents qui fournissent le bon fichier * .properties. L'image suivante montre le schéma que je pense devoir utiliser.Eclipse RCP - Utiliser un fragment pour fournir des traductions

Host-Fragment-Usage

Après avoir configuré les projets de fragments (les plug-ins d'hôte-sont définies et les fichiers * .properties sont dans un paquet également nommé à celui de l'hôte) Je voudrais commencer mon application RCP via Eclipse IDE. Les 2 configurations d'exécution sont également configurées. En utilisant la console OSGI, je vois que mon fragment est présent et RESOLU.

Mais mon problème est que les chaînes/traductions fournies par les fragments ne sont pas utilisées. Chaque fois que je lance l'application, d'anciennes chaînes/traductions sont utilisées (celle qui a été utilisée avant de déplacer la propriété-Fichiers vers les fragments).

Est-ce que quelqu'un a une idée de ce que je fais de mal et si ma solution est la bonne approche?

Merci à l'avance :)

+0

je ne suis pas sûr, mais il semble que vous utilisez deux fragments identiques - peut-être est tout simplement copier et coller, mais vous ne pouvez pas fournir deux packs de langue (Deutschland) en deux fragments .... –

+0

vous normalement créer un fragment pour le support de la langue allemande et un autre fragment pour (peut-être) le soutien de la langue italienne ... –

+0

J'ai créé les deux plugins via le nouvel assistant - pas de copier-coller. J'ai 2 produits différents et 2 configuration d'exécution différente. En fonction de la configuration, j'ajoute Fragment1 OR Fragment2 - pas les deux en même temps. Chaque produit doit avoir ses propres messages.properties et traduction allemande. Le plugin hôte lui-même ne fournit pas de messages.properties ou traduction allemande. – AnarchoEnte

Répondre

0

vous devez exécuter le produit Eclipse avec la configuration appropriée - si vous voulez voir (et test) votre soutien de la langue que vous devez commencer éclipse avec les bonnes informations !! enter image description here

essayez de définir la langue directement

-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl de_DE -consoleLog

+0

Malheureusement, cela ne fonctionne pas non plus. Je me demande si ces Strings/Traductions sont utilisées qui ont été placées dans le plugin hôte avant que je ne les déplace vers des fragments. Même si je change les propriétés de mes fragments, les chaînes ne sont pas utilisées. Peut-être que Eclipse utilise un mécanisme de mise en cache? – AnarchoEnte

+0

Si vous démarrez l'application Eclipse, voyez-vous quel contenu est installé? Aide -> À propos de -> Détails de l'installation -> Plugins? votre fragment devrait être listé ici ... –

+0

Le plugin hôte et le fragment sont installés – AnarchoEnte

0

-vous fournir l'en-tête du manifeste?

Bundle-Localization: plugin 
+0

J'ai ajouté ceci à mon fragment Manifest.MF mais sans succès :( Le fragment est en état "RÉSOLU" et a un lien vers mon host-plugin, qui est en état "ACTIVE" Je pense que la connexion est bonne, mais les messages fournis dans le fragment ne sont pas utilisés Peut-être que Eclipse met en cache des données? Les messages utilisés ont été déplacés (!) de l'hôte vers le fragment et changé mais les anciens messages sont toujours utilisés – AnarchoEnte

+0

Il doit être à l'intérieur de l'hôte Pas dans le fragment –

+0

Malheureusement, je n'ai pas réussi, je commence à me demander s'il est possible d'ajouter les messages.properties via fragment au plugin de l'hôte. À mon humble avis cela devrait être possible via des fragments.Les propriétés - Les fichiers sont situés dans un package nommé de manière égale à celui dans le plugin hôte – AnarchoEnte