Palveluvalikon kielten määrittäminen

Palveluvalikon kääntäminen

Perinteisen palveluvalikon käännökset ovat HTML-tiedostoissa, joten niiden kääntäminen on kohtuullisen työlästä. Nellin perusasennuksessa on käännökset suomeksi ja ruotsiksi. Uudessa "Simplified" menussa käännökset ovat SFX:n tietokannassa, ja niitä voi muokata SFXAdminista löytyvällä Translations & Display -toiminnolla. Simplified menun käyttöönotto ja ulkoasun säätäminen onnistuu Menu Configuration -kohdassa.

Palveluiden kuvaus useilla kielillä

Oletuksena SFX:ssä voi määritellä kullekin targetille ja palvelulle nimen yhdellä kielellä. Teemu Nuutisen tekemää ja kaikkiin instansseihin asennettua Translate -displayeria käytettäessä voidaan targetin ja servicen Public name -kenttiin määritellä vaihtoehtoiset kielikohtaiset tekstit hakasulkuihin näin:

Holdings found in [fi=Viitteitä löytyy] [se=Poster hittades i]

Servicen Displayer-kentässä on oltava L_Translate::Inline. Systeemi ei toimi muiden displayereiden kanssa.

Tarkempia ohjeita L_Translate -käännösluokkien käyttöön

L_Translate::Inline ja L_Translate::Lookup

SFX 4 validoi nyt Displayer-kentän ja kelpuuttaa tähän vain kansio::parseri -formaatissa olevan arvon. Vanha arvo Translate toimii niin kauan kuin aineiston asetuksia ei muuta - kun tarvitsee tehdä muutoksia niin päivitä uuteen versioon. Muinainen Translate.pm ei myöskään tue kunnolla Simplified templatea. Jos template on aktivoituna, SFX ei enää käytä kielen määrittelevää locale-arvoa (.fi ym. tiedostopäätteet) ja käännökset epäonnistuvat. Lisäksi jos päivityksessä kielikoodit ovat muuttuneet esim. fi → fin, käännös epäonnistuu.

Uudet, SFX 4 -yhteensopivat käännösparserit on linkattu oman instanssinne alle hakemistoon ./lib/Parsers/TargetDisplayer/L_Translate/ ja niihin viitataan seuraavasti:

  • L_Translate::Inline - toimii kuten vanha Translate, tukee hieman paremmin kielikoodeja (re:kielikoodi? eli fi tai fin ok, se tai swe ei).
  • L_Translate::Lookup - toimii kuten MetaLibin käännökset, käännöstiedosto(t) ./config/local_translations.fin. Tiedostopäätteenä oleva kielikoodi vaihdettava fi tai fin riippuen map_languages.config_ arvoista.

Inline-käännöstä

[kielikoodi1=käännös][kielikoodikoodi2=käännös]

ei käytännössä voi käyttää service public namen kääntämiseen, sillä kentän maksimipituus on nyt 40 merkkiä. Useamman kielen kanssa kannattaa siis käyttää Lookup-käännöstä.

Globaalin displayerin kääntäminen

Jos servicen Displayer (global) kentässä on jo arvo, esimerkiksi A::B (näyttöluokka), pitää käännöstä varten tehdä oma aliluokka.

  1. Siirry displayer-hakemistoon komennolla $ td.
  2. Tee omille tiedostoille sopiva HAKEMISTO (tai käytä esim. L_Translate ym.)
  3. Tee hakemistoon tiedosto OMANIMI.pm tai vaikka esimerkin logiikan mukaisesti B.pm ja laita tiedostoon seuraava:
    package Parsers::TargetDisplayer::HAKEMISTO::OMANIMI;
    use mro 'c3';
    use base qw(Parsers::TargetDisplayer::A::B
                Parsers::TargetDisplayer::L_Translate::Lookup);
    1;
    
  4. Lisää SFX Adminissa lokaali Displayer ja laita sen arvoksi HAKEMISTO::OMANIMI
  5. Lisää lokaalit Public Name kentät ja laita vastaavat käännökset local_translations-tiedostoihin.

A ja B pitää olla Displayer (global) kentän mukainen ja vaihda HAKEMISTO, OMANIMI käyttämiksesi arvoiksi.


Katso myös:








  • No labels