File specifici locali

I frammenti consentono di creare pacchetti di conversioni delle lingue nazionali in modo efficace. Si osservi più attentamente la struttura di directory utilizzata per l'installazione di file di conversione specifici di paese. Questa struttura viene utilizzata indipendentemente dal fatto che i file convertiti vengano inseriti in un frammento o forniti nel plugin originale.

Sono disponibili tre meccanismi per l'individuazione dei file specifici di impostazioni internazionali in un plugin.  

È importante comprendere quale dei due meccanismi è utilizzato per accedere ai file da convertire, in modo da poter stabilire quale nome assegnare al file e dove inserirlo all'interno del file system relativo al plugin.

Meccanismo principale della piattaforma

Il tipo principale di piattaforma definisce una struttura di directory che utilizza sottodirectory specifiche di paese per i file che presentano impostazioni internazionali differenti. I file convertiti vengono inseriti in una directory denominata nl al di sotto del plugin. Ad esempio, nella struttura ad albero di installazione che segue viene illustrato un semplice plugin (privo di codice) con conversioni specifiche di paese del file about.properties. Le diverse conversioni sono rappresentate come se provenissero da un frammento di plugin anziché dal plugin stesso. Tale situazione si verifica generalmente quando le conversioni vengono fornite separatamente dalla base, ma è anche possibile collocare la sottodirectory nl al di sotto del plugin stesso.

acmeweb/
  eclipse/
    plugins/
      com.example.acme.acmewebsupport_1.0.0/
        plugin.xml
        about.properties    (impostazioni internazionali predefinite)
      com.example.acme.fragmentofacmewebsupport_1.0.0/
        fragment.xml   (rammento di com.example.acme.acmewebsupport 1.0.0)
        nl/
          fr/
            about.properties    (impostazioni internazionali per il francese)
            CA/
              about.properties    (impostazioni internazionali per il francese canadese)
            FR/
              EURO/
                about.properties (Euro per il francese)
          en/
            about.properties    (impostazioni internazionali per l'inglese)
            CA/
              about.properties    (impostazioni internazionali per l'inglese canadese)
            US/
              about.properties    (impostazioni internazionali per l'inglese americano)
         de/
            about.properties    (impostazioni internazionali per il tedesco) 

I file da convertire non sono contenuti nei file JAR. Ogni file deve presentare esattamente lo stesso nome, ma trovarsi in sottodirectory ubicate al di sotto della sottodirectory nl nella directory principale del frammento o del plugin.

In fase di runtime è possibile accedere solo al file più specifico.  La ricerca dei percorsi file viene eseguita nell'ambito dei meccanismiPlatform.find, IPluginDescriptor.findePlugin.find. Ad esempio, si supponga che l'impostazione internazionale predefinita sia en_CA e che un plugin esegua la ricerca del file about.properties nel modo seguente:

somePlugin.find("$nl$/about.properties");

Il meccanismo restituirà un URL corrispondente alla prima posizione di about.properties rilevata in base al seguente ordine:

com.example.acme.acmewebsupport_1.0.0/nl/en/CA/about.properties
com.example.acme.fragmentofacmewebsupport_1.0.0/nl/en/CA/about.properties
 ...  		<any other fragments>
com.example.acme.acmewebsupport_1.0.0/nl/en/about.properties
com.example.acme.fragmentofacmewebsupport_1.0.0/nl/en/about.properties
 ...
com.example.acme.acmewebsupport_1.0.0/about.properties
com.example.acme.fragmentofacmewebsupport_1.0.0/about.properties

Questo meccanismo viene utilizzato dai plugin per la ricerca di nomi file noti all'interno di altri plugin, quali ad esempio:

(Nota: i file plugin.properties e fragment.properties non sono presenti in questo elenco. Tali file vengono considerati in un modo leggermente diverso descritto in basso).

Insiemi di risorse Java

Per gli altri file viene utilizzata la gestione Java standard degli insiemi di risorse delle proprietà. I file convertiti sono contenuti in un file JAR con ciascun file delle proprietà che dispone di un nome specifico di paese, quale "message_en_CA.properties". I file si trovano in sottodirectory specifiche di pacchetto e possono essere contenuti nel plugin stesso o in uno dei relativi frammenti. Ogni file delle proprietà convertito può essere parziale in quanto la ricerca delle chiavi consente di accedere a una catena ben definita di file delle proprietà.

Meccanismo plugin.properties

Il meccanismo utilizzato per convertire i file plugin.properties utilizza la convenzione di denominazione degli insiemi di risorse Java. I file, tuttavia, devono trovarsi nella directory principale del plugin o nella directory di un frammento di questo plugin. Le stesse regole si applicano alla conversione di MANIFEST.MF.

Definizione di frammenti NL

La forma dei frammenti NL è leggermente cambiata dalla versione 2.1. In passato, tutti i file di conversione (incluso il file plugin.properties) erano forniti in un jar. Ciò non era coerente, dal momento che il file plugin.properties era fornito nella directory principale del plugin.
Per adattare il frammento NL al nuovo modello, rimuovere i file di conversione plugin.properties dal jar e inserirli nella directory principale del frammento come elementi di pari livello di fragment.xml. Ad esempio, la nuova forma del frammento NL per org.eclipse.ui.workbench è la seguente:

  org.eclipse.ui.workbench.nl/
     fragment.xml
     plugin_fr.properties
     plugin_pt_BR.properties
     ...
     nl1.jar