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 plug-in originale.
Sono disponibili due meccanismi per l'individuazione dei file specifici di paese in un plug-in.
È 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 plug-in.
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 plug-in. Ad esempio, nella struttura ad albero di installazione che segue viene illustrato un semplice plug-in (privo di codice) con conversioni specifiche di paese del file about.properties. Le diverse conversioni sono rappresentate come se provenissero da un frammento di plug-in anziché dal plug-in 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 plug-in 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 (frammento 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 franco 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 plug-in.
In fase di runtime è possibile accedere solo al file più specifico. La ricerca dei percorsi file viene eseguita nell'ambito dei meccanismi IPluginDescriptor.find e Plugin.find. Ad esempio, si supponga che l'impostazione internazionale predefinita sia en_CA e che un plug-in 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 plug-in per la ricerca di nomi file noti all'interno di altri plug-in, quali ad esempio:
(Nota: i file plugin.properties e fragment.xml non sono presenti in questo elenco. Per ragioni storiche, essi vengono considerati come insiemi di risorse delle proprietà Java e utilizzano l'altro meccanismo.)
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 plug-in 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à.
Come si è osservato sopra, ai file plugin.properties e fragment.xml si accede mediante questa tecnica.