2009-03-13 7 views
9

Comment puis-je extériorisent des chaînes dans le plugin.xml de mon plugin Eclipse?chaînes extériorisés plugin.xml pour plugin Eclipse

Un clic droit sur le projet de plug-in> Outils PDE> Externaliser Strings ne montre pas mon plug-in. J'essaye de faire ceci manuellement maintenant. J'ai ajouté des entrées dans plugin.properties et remplacé la chaîne équivalente dans plugin.xml par un signe% suivi de la clé de chaîne. Mais cela ne semble pas fonctionner. Qu'est-ce que j'oublie ici?

Répondre

18

J'ai finalement trouvé comment extérioriser manuellement le plugin.

Eclipse, il se trouve, extériorise plugin.xml ainsi:

  • Dans le plug-in manifeste (META-INF/MANIFEST.MF), ajoutez la ligne suivante

    Bundle-Localization: plugin 
    

    où vous avez l'intention de stocker les chaînes externalisées dans un fichier appelé "plugin.properties" (Il s'avère que c'était la pièce manquante). Ajoutez les paires clé-valeur de chaînes externalisées dans plugin.properties.

  • Remplacez les chaînes réelles dans plugin.xml par les clés de plugin.properties (préfixées par%).

+0

Merci pour ce commentaire. +1 J'ai ajouté quelques liens liés à ce problème "Bundle-Localisation" dans ma réponse ci-dessous. – VonC

3

Si votre jeu de travail contient des projets de plug-in, le Externalize Strings wizard pour vous aider à externaliser les chaînes de vos fichiers Manifest et plugin.xml doit être disponible.
L'extériorisation de fichiers manifest extrait des chaînes traduisibles et les stocke dans un fichier de propriétés pour une prise en charge multilingue.

L'assistant est disponible dans le menu Outils PDE dans le menu contextuel des fichiers MANIFEST.MF ou plugin.xml d'un projet PDE.

alt text http://help.eclipse.org/stable/topic/org.eclipse.pde.doc.user/guide/images/pde_actions/externalize_strings_selection.png

Soyez conscient qu'il y avait des bugs liés à detecting all non-externalized attributes/values of the <extension-point> and <extension> elements, ou showing up un-externalized names of extension(-point), qui ne sont résolus en 3.4 ou très récente 3.5M4.

Cependant, si le « Externaliser Strings » menu ne montre pas du tout sur vos projets de plug-in, peut-être son « project nature » est corrompu en quelque sorte, peut-être votre ancien projet Java est not properly converted to a PDE project?

donc deux suggestions:

  • essayer avec une nouvelle installation d'un eclipse3.5M4
  • importer votre projet de plug-in et vérifier sa nature

Et puis nous dire si ce menu est toujours indisponible.


Comme vous le mentionnez in your own answer, le processus d'extériorisation est déclarée par la chaîne

Bundle-Localization: plugin 

dans le fichier MANIFEST.MF, comme mentionné dans this message.

A bug has been created, mais:

  • La localisation n'est pas quelque chose de spécifique à la PDE, mais plutôt la spécification OSGi
  • cette ligne n'est pas toujours dans le MANIFESTE:

    Avant 3.3 , nous avons créé tous nos manifestes en créant un fichier plugin.xml puis en le convertissant en . Le convertisseur a toujours ajouté "Bundle-Localization: plugin" au manifeste , puisqu'il s'agit de l'emplacement par défaut si le plug-in n'a pas de manifeste.
    Si un plug-in n'avait pas de fichiers de traduction, cet en-tête était inutile.
    En 3.3, nous avons créé des projets plug-in en créant Manifest directement, ce qui signifie que nous décidé de créer uniquement les en-têtes nécessaires à la création de projet.

  • il est susceptible d'être un problème pour ceux qui ont créé des faisceaux avec extériorisation < 3.2, puis de ne pas pouvoir les voir lors de l'exécution en 3.3.

+0

Pour une raison quelconque, l'assistant Externalize String affiche d'autres plugins mais pas le plugin requis. J'ai réussi à résoudre le problème. Je l'ai ajouté comme nouvelle réponse ici. – PlagueHammer

+0

+1 Pour une solution complète que je ne savais pas qui existait. J'ai normalement internationalisé toutes ces chaînes à la main. –

+0

Merci Nocturne pour le post. Avec les changements que vous avez mentionnés dans votre message, je voudrais ajouter une ligne supplémentaire. Lors de l'exportation du fichier plug-in, faites l'entrée de plugin.properties dans le fichier build.properties. –

Questions connexes