Fragmentit ovat kätevä tapa pakata kansallisten kielten käännöksiä. Seuraavassa tarkastellaan hakemistorakennetta, jonka avulla paikallistunnuskohtaiset käännöstiedostot asennetaan. Tätä tiedostorakennetta käytetään huolimatta siitä, onko käännöstiedostot pakattu fragmenttiin vai toimitettu alkuperäisessä lisäosassa.
Paikallistunnuskohtaiset tiedostot voi etsiä lisäosasta kolmella tavalla.
On tärkeää ymmärtää, minkä menetelmän avulla käännettävää tiedostoa käytetään, jotta tiedät, kuinka nimetä tiedosto ja minne sijoittaa se tiedostojärjestelmässä suhteessa lisäosaan.
Ympäristön ydin määrittää hakemistorakenteen, joka käyttää paikallistunnuskohtaisia alihakemistoja paikallistunnuksen mukaan eroaville tiedostoille. Käännetyt tiedostot sijoitetaan hakemistoon nimeltä nl lisäosan kohdalle. Esimerkiksi seuraava asennusrakenne näyttää merkityksettömän lisäosan (ei koodia), jolla on paikallistunnuskohtaisia käännöksiä about.properties-tiedostostaan. Eri käännökset näyttävät tulevan lisäosan fragmentista eivätkä lisäosasta itsestään. Tämä on tyypillistä, kun käännökset toimitetaan täysin erillään perustuotteesta, mutta voit myös sijoittaa nl-alihakemiston lisäosan itsensä kohdalle.
acmeweb/ eclipse/ plugins/ com.example.acme.acmewebsupport_1.0.0/ plugin.xml about.properties (oletusarvoinen paikallistunnus) com.example.acme.fragmentofacmewebsupport_1.0.0/ fragment.xml (com.example.acme.acmewebsupport 1.0.0 -fragmentti) nl/ fr/ about.properties (ranska) CA/ about.properties (ranska (Kanada)) FR/ EURO/ about.properties (ranska (Ranska, eurot)) en/ about.properties (englanti) CA/ about.properties (englanti (Kanada)) US/ about.properties (englanti (US) de/ about.properties (saksa)
Käännettävät tiedostot eivät ole JAR-tiedostoissa. Kullakin tiedostolla tulee olla täsmälleen sama tiedostonimi, mutta niiden on sijaittava fragmentin tai lisäosan juurihakemiston nl-alihakemiston alaisissa alihakemistoissa.
Ajon aikana käytetään vain tarkinta tiedostoa. Tiedostopolut haetaan osana kohteisiin Platform.find, IPluginDescriptor.find ja Plugin.find perustuvaa menettelyä. Oletetaan esimerkiksi, että oletusarvoinen paikallistunnus on en_CA ja lisäosa hakee about.properties-tiedostoa seuraavasti:
somePlugin.find("$nl$/about.properties");
Metodi palauttaa URL-osoitteen, joka vastaa ensimmäistä paikkaa, josta about.properties-tiedosto löytyy seuraavan järjestyksen mukaan:
com.example.acme.acmewebsupport_1.0.0/nl/en/CA/about.properties com.example.acme.fragmentofacmewebsupport_1.0.0/nl/en/CA/about.properties ... <mitkä tahansa muut fragmentit> 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
Tämän menetelmän avulla lisäosat hakevat tunnettuja tiedostonimiä muiden lisäosien sisältä. Tämä sisältää seuraavat hyvin tunnetut tiedostonimet:
(Huomautus: plugin.properties ja fragment.properties puuttuvat tästä luettelosta. Niitä käsitellään hieman toisella tavalla, kuten seuraavassa kuvataan.)
Muiden tiedostojen osalta käytetään ominaisuuksien resurssitiedostojen tavallista Java-käsittelyä. Käännetyt tiedostot sijaitsevat JAR-tiedostossa, ja kullakin ominaisuustiedostolla on paikallistunnuskohtainen nimi, esimerkiksi "message_en_CA.properties". Tiedostot ovat pakkauskohtaisissa alihakemistoissa ja voivat näkyä lisäosassa itsessään tai jossakin sen fragmenteista. Kukin käännetty ominaisuustiedosto voi olla osittainen, koska avainhaku käyttää ominaisuustiedostojen ketjua.
NL-fragmentit ovat kehittyneet hieman versiosta 2.1.
Aiemmin kaikki käännöstiedostot (mukaan luettuna plugin.properties) toimitettiin jar-tiedostossa.
Tämä ei ollut johdonmukaista, koska plugin.properties-tiedosto toimitettiin lisäosan juuressa.
Voit mukauttaa NL-fragmentin uuteen malliin poistamalla plugin.properties-käännöstiedostot jar-tiedostosta ja sijoittamalla ne fragmentin juureen fragment.xml-tiedoston rinnakkaiselementteinä.
Esimerkiksi org.eclipse.ui.workbench-kohteen uusi NL-fragmentti näyttää seuraavalta:
org.eclipse.ui.workbench.nl/ fragment.xml plugin_fr.properties plugin_pt_BR.properties ... nl1.jar