2009-03-13 9 views
9

Come faccio a esternare le stringhe nel plugin.xml del mio plugin Eclipse?Externalizing stringhe in plugin.xml per il plugin Eclipse

Facendo clic con il pulsante destro del mouse sul progetto del plug-in> Strumenti PDE> Externalize Strings non viene visualizzato il plug-in.

Sto provando a farlo manualmente ora. Ho aggiunto voci in plugin.properties e sostituito la stringa equivalente in plugin.xml con un segno% seguito dalla chiave stringa. Ma non sembra funzionare. Cosa mi manca qui?

risposta

18

Ho finalmente capito come esternalizzare manualmente il plug-in.

Eclipse, si scopre, esteriorizza plugin.xml in questo modo:

  • nel plugin manifesta (META-INF/MANIFEST.MF), aggiungere la seguente riga

    Bundle-Localization: plugin 
    

    dove hai intenzione di memorizzare le stringhe esterne in un file chiamato "plugin.properties" (Risulta che questo era il pezzo mancante).

  • Aggiungere le coppie chiave-valore stringa esterna in plugin.properties.

  • Sostituire le stringhe effettive in plugin.xml con le chiavi da plugin.properties (con prefisso%).

+0

Grazie per questo feedback. +1. Ho aggiunto alcuni collegamenti relativi a questo problema di "localizzazione dei pacchetti" nella mia risposta di seguito. – VonC

3

Se il set di lavoro contiene progetti di plug-in, lo Externalize Strings wizard per facilitare l'esternalizzazione delle stringhe nei file Manifest e plugin.xml deve essere disponibile.
L'esternalizzazione dei file manifest estrae stringhe traducibili e li memorizza in un file di proprietà per il supporto multilingue.

La procedura guidata è disponibile nel menu Strumenti PDE nel menu di scelta rapida dei file MANIFEST.MF o plugin.xml di un progetto PDE.

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

essere consapevoli che ci sono stati alcuni bug relativi alla detecting all non-externalized attributes/values of the <extension-point> and <extension> elements o showing up un-externalized names of extension(-point), che vengono risolti solo in 3.4 o molto recente 3.5M4.

Tuttavia, se il menu "esternalizzazione Strings" non si presenta affatto sui vostri progetti di plugin, può essere il suo "project nature" è danneggiato in qualche modo, può essere il tuo primo progetto Java è not properly converted to a PDE project?

Così due suggerimenti:

  • prova con una nuova installazione di un eclipse3.5M4
  • importare il progetto plug-in e controllare la sua natura

e poi ci dicono se questo menu è ancora non disponibile.


Come si menziona in your own answer, il processo di esternalizzazione è dichiarato dalla stringa

Bundle-Localization: plugin 

nel file MANIFEST.MF, come detto in this message.

Un bug has been created, ma:

  • La localizzazione non è qualcosa di specifico per PDE, ma invece le specifiche OSGi
  • che la linea non è sempre nel manifesto:

    Prima di 3.3 , abbiamo creato tutti i nostri manifesti creando un plugin.xml e quindi convertendolo. Il convertitore ha sempre aggiunto "Bundle-Localization: plugin" al manifest , poiché questa è la posizione predefinita se il plug-in non ha manifest.
    Se un plug-in non aveva file di traduzione, questa intestazione non era necessaria.
    In 3.3, abbiamo creato progetti plug-in creando direttamente Manifest, il che significa che noi abbiamo deciso di creare solo le intestazioni necessarie per la creazione del progetto.

  • è probabile che sia un problema per coloro che hanno creato bundle con esternalizzazione < 3.2, e quindi non essere in grado di vederli durante l'esecuzione in 3.3.

+0

Per qualche motivo, la procedura guidata Externalize String mostra altri plug-in ma non il plug-in richiesto. Sono riuscito a risolvere il problema però. L'ho aggiunto come una nuova risposta qui. – PlagueHammer

+0

+1 Per una soluzione completa che non sapevo esistesse. Normalmente ho internazionalizzato tutte queste stringhe a mano. –

+0

Grazie a Notturno per il post. Insieme alle modifiche che hai menzionato nel tuo post, vorrei aggiungere un'altra riga. Durante l'esportazione del plug-in jar, inserire la voce plugin.properties nel file build.properties. –