DoX CMS siirtyi versioon 8.5, ja se toi mukanaan toiminnon, joka antaa julkaista usean kielen sisällöt yhtenä julkaisuna. Käy tässä artikkelissa läpi huomioita koskien tämän toiminnon käyttöönottoa. Toistaiseksi tämä toiminto sallii vain PDF-julkaisut joko oletuskasaajan tai DocRaptor-kasaajan kautta. Se otetaan käyttöön julkaisukohtaisesti Muokkaa Julkaisua -valikossa ja sen käyttäminen muutoin kuin käyttöympäristönne kaikilla kielillä vaatii kieliryhmien määrittämistä sen käyttöön. Yksityiskohdat tältä osin löytyvät alempaa.
Monikielisten julkaisujen kasaamisen perusteiden lisäksi käyn läpi eroja niiden säädöissä. DocRaptor vaatii myös tyylitiedostojen käyttämistä tältä osin, koska sivutunnisteet ja sivunumerot DocRaptor-julkaisuissa määritetään tyylitiedoston kautta. Oletuskasaajan tapauksessa nämä seikat on määritetty järjestelmän sisäisesti. Käyn kuitenkin myös läpi yleisiä ohjeita tyylien lisäämiseen tällaisten julkaisujen yleisiin osuuksiin.
Monikielisten julkaisujen käytön vaiheet
Seuraa näitä ohjeita uuden monikielisen julkaisun kasaamiseksi. Lisäksi tyylitiedostoihin täytyy tehdä muutoksia niiden huomioimiseksi, mutta ohjeet siihen löytyvät erikseen alempaa.
Kieliryhmät
Kieliryhmät ovat uusi DoX CMS:n toiminto, joka toistaiseksi liittyy ainoastaan monikielisiin julkaisuihin. Kieliryhmä koostuu järjestetystä joukosta kieliä. Se määrittää, minkä kielien sisällöt tulevat monikieliseen julkaisuun sekä niiden järjestyksen. Kaikki voivat käyttää myös kaikki heidän ympäristönsä kielet aakkosjärjestyksessä sisältävää oletuskieliryhmää.
Kieliryhmät löytyvät Käännöstenhallinta-työkalun alta uudesta Kieliryhmät-näkymästä. Tämä näkymä antaa lisätä uusia kieliryhmiä, muokata niitä sekä poistaa niitä.
Uudet kieliryhmät täytyy nimetä. Tämän jälkeen niihin täytyy lisätä halutut kielet kielilistalta ja järjestää ne halutulla tavoin. Tämä valikko muistuttaa Muokkaa Otsikkopuuta -valikkoa, paitsi että kieliä ei voi vetää ja pudottaa kieliryhmään. Lisäksi niille ei voi määrittää hierarkiaa. Sen sijaan kieliryhmän järjesteleminen tapahtuu vetämällä kielet niiden haluttuihin sijainteihin kieliryhmän sisällä.
Jatkossa kieliryhmille löytyy luultavasti myös muuta käyttöä. Tällä hetkellä niiden tarkoitus on poistaa tarve määrittää käytetty joukko kieliä erikseen joka kerta, kun julkaisu täytyy julkaista monikielisenä. Julkaise-valikko antaa vaihtaa käytetyn kielijoukon samaan tapaan kuin käytetyn kielen.
Muokkaa julkaisua
Enemmistö monikielisten julkaisujen käyttöön ottamisesta tapahtuu Muokkaa Julkaisua -valikossa. Julkaisulle täytyy antaa määreet sitä varten täällä, mutta nämä määreet saaneen julkaisun saa julkaistua edelleen myös yksikielisenä.
Ensimmäinen askel tältä osin on ottaa käyttöön Kieliryhmänä Julkaisemisen Tiedot -kenttä. Tällöin valikko näyttää tarkemmat määreet, joita voit säätää:
- Kieliryhmä: Valitse käytetty oletuskieliryhmä.
- Ulkokansilehti: Valitse etukansi koko julkaisulle. Se käyttää aina kyseistä otsikkosisältöä senhetkisellä kielellä.
- Ulkotakakansilehti: Valitse takakansi koko julkaisulle. Se käyttää aina kyseistä otsikkosisältöä senhetkisellä kielellä.
- Sivunumerointi: Määritä, onko sivunumerointi oletuskasaajalla PDF:ille yhtenäinen halki koko monikielisen julkaisun vai kielikohtainen.
- Käytä Ryhmäluetteloa: Määritä, tuleeko julkaisuun yhteinen sisällysluettelo eri kielien sisällöille vai ei.
- Ryhmäluettelon Sisältö: Määritä millainen eri kielien yhteinen sisällysluettelo on, jos sellainen on käytössä. Tämä sisällysluettelo voi näyttää joko listan eri kielistä ja niiden alkamissivuista tai täydet sisällysluettelot kaikilla kielillä.
- Kielikohtaiset Sisällysluettelot: Määritä, tuleeko jokaisen kielen yhteyteen erillinen sisällysluettelo kyseisen kielen sisällöille.
Tällä tavoin monikielisiin julkaisuihin saa esimerkiksi vain yhdet ulkokannet tai sekä ulkokannet että erilliset kielikohtaiset sisäkannet. Lisäksi sisällysluettelot saa näkyviin kielikohtaisesti ja jaettu sisällysluettelo näyttää vain kielien nimet, tai jaettu sisällysluettelo voi olla ainoa sisällysluettelo ja se näyttää sisällöt kaikilla kielillä. Tähän jaettuun sisällysluetteloon saa lisättyä esimerkiksi kielien nimet ennen niihin liittyviä sisältöjä tyylitiedoston kautta.
Julkaise
Julkaisupohjan Julkaise-valikon Kieliasetus-kenttä antaa päättää, julkaistaanko sisällöt yksikielisinä vai monikielisinä.
Kun valinta on Valitse Kieli, näyttää Julkaise-valikko tavalliseen tapaan listan kielistä. Valitse julkaisemiskieli tältä listalta. Oletusvalinta on senhetkinen kieli.
Kun valinta on Valitse Kieliryhmä, näyttää Julkaise-valikko listan kieliryhmistä. Valitse monikielisen julkaisun käyttämä kieliryhmä tältä listalta. Oletusvalinta on Muokkaa Julkaisua -valikossa valittu Kieliryhmä-kentän arvo. Myös julkaisumuuttujat piilotetaan tällöin Julkaise-valikossa. Tämä johtuu vaaditusta erosta niiden käsittelemisen tavassa. Jos normaalisti määrität julkaisumuuttujan arvon julkaisuvaiheessa, joudut tekemään niin Muokkaa Julkaisua -valikossa monikielistä julkaisua varten.
Esikatselu-komento antaa edelleen tarkastella julkaisupohjan tunnisteita selaimen Tarkista-toiminnon avulla. Vain monikielisiin julkaisuihin liittyvillä osuuksilla on omat tunnisteensa.
Monikieliset julkaisut ja tyylitiedostot
Monikielisten julkaisujen käyttöön ottaminen vaatii lisäyksiä ja mahdollisesti myös muita muutoksia tyylitiedostoihin. Esimerkiksi sivunumerot DocRaptor-julkaisuissa määritetään tyylitiedoston kautta. Käyn alla läpi näitä tyylitiedostoissa huomioitavia seikkoja. Ehdottamani ratkaisut eivät kuitenkaan ole täysin yksiselitteisesti toimivia, vaan niitä täytyy soveltaa teille soveltuvalla tavalla.
Käyn alla läpi sekä monikielisiä julkaisuja varten järjestelmään lisättyjen uusien osuuksien tunnisteet että DocRaptor-julkaisuihin soveltuvia keinoja erilaisille toteutuksille, joita oletuskasaajassa hallinnoidaan Muokkaa Julkaisua -valikon kautta.
Lisäosuudet
Nämä ovat tunnisteet uusille osuuksille, joita vain monikieliset julkaisut käyttävät. Niihin liittyvät säännöt voi lisätä osaksi oletusarvoista tyylitiedostoa, koska nämä osuudet puuttuvat yksikielisistä julkaisuista. Jos tyylitiedostoon täytyy tehdä muita muutoksia, on luultavasti hyvä ajatus erottaa toisistaan monikielisten julkaisujen ja yksikielisten julkaisujen tyylit. Monikielisten julkaisujen osuudet voi tosin silti erottaa omaksi tyylitiedostokseen jaettujen osuuksien hallinnoinnin helpottamiseksi.
Tässä on lista uusien osuuksien tunnisteista sekä niiden selitykset:
- .langContentWrapper: Nämä ovat kunkin kielen osuudet monikielisissä DocRaptor-julkaisuissa.
- .langGroupFullTocWrapper: Tämä on jaettu sisällysluettelo, joka sisältää sisällöt kaikilla käytetyillä kielillä.
- .langGroupTocWrapper: Tämä on jaettu sisällysluettelo, joka sisältää vain kielien nimet.
- [langID=”tunniste”]: Nämä ovat kunkin eri kielen alaiset osuudet jaetussa sisällysluettelossa. Niiden arvoina tältä osin ovat vastaavat kielitunnisteet.
- .outerBackCoverPageWrapper: Tämä on ulkotakakansilehti.
- .outerFrontCoverPageWrapper: Tämä on ulkoetukansilehti.
Esimerkiksi on hyvä ajatus lisätä sivunvaihdot ennen kunkin kielen osuutta, jotta ne alkavat uudelta sivulta.
Lisäksi sisällysluetteloihin liittyvät tunnisteet antavat muotoilla jaetun sisällysluettelon halutunlaiseksi esimerkiksi erottamalla kielikohtaiset osuudet omille sivuilleen ja lisäämällä kielen nimen niiden alkuun. Tämä vaatii kielten nimet sisältävät ::before-pseudoelementit eri langID-arvoille paitsi edellisen listan kohdan langID-arvon ollessa sama. Kielikohtainen mallitoteutus tälle löytyy alta:
.tocline[langID="en"]::before {
content: "English";
display: block;
break-before: page;
}
.tocline[langID="en"] ~ .tocline[langID="en"]::before {
content: none;
break-before: none;
}
.toccontent {
break-before: none;
}
Tämän toteutuksen kielikohtaiset osuudet täytyy toistaa jokaiselle kielelle. Koska laskureita kuten :first-child ei voi käyttää kuin elementtityyppeihin, sitä ei voi kytkeä luokkiin tai attribuuttien arvoihin. Tästä syystä toteutus on, että ensin säännöt lisätään jokaiseen kyseisen attribuutin omaavaan elementtiin ja sitten ne poistetaan jokaiselta tällaiselta elementiltä, joka tulee toisen vastaavan elementin jälkeen.
Muutokset DocRaptor-julkaisuihin
DocRaptor vaatii, että monikielisiin julkaisuihin liittyvät sovitukset tehdään CSS:n avulla tyylitiedostoon. Näitä julkaisuja voi hallinnoida näiltä osin vain tätä kautta, vaikka siihen on käytettävissä laajempi joukko komentoja.
Sivutunnisteet
Monikielisyys lisää uusia osuuksia, joiden sivuille voi olla syytä lisätä omat ylä- ja alatunnisteensa. Koska eri kielien sisällöt tulevat peräkkäin, on sääntöjen osalta myös syytä huomioida tarve päivittää näytetyt sivutunnisteet kielikohtaisesti. Koska määritetyt sivutunnisteet lisätään samoihin sijainteihin jokaisella kielellä näiden kielien mukaisilla arvoilla esimerkiksi muuttujien osalta, oletustoteutukseen niiden osalta ei välttämättä tarvita muutoksia. Sen sijaan jaettuihin osuuksiin täytyy lisätä sivutunnisteet erikseen ja tällöin on syytä tarkistaa, että kyseiset sivutunnisteet eivät epähuomiossa jatku muihin osuuksiin.
Tältä osin tärkeintä on määrittää sivuryhmät jaetuille kansille sekä jaetulle sisällysluettelolle. Kaikilla voi olla omansa tai niillä voi olla kaikilla yhteinen sivuryhmä. Ne voidaan myös lisätä aiempiin kielikohtaisten osuuksien sivuryhmiin, jos käytetyt sivutunnisteet ovat tältä osin yhtenevät. Näiden osuuksien tunnisteet löytyvät yltä. Sivuryhmien määrittäminen tapahtuu komennolla ’page: nimi’. Kaikki käytetyn valitsijan mukaisia osuuksia sisältävät sivut kuuluvat tällä tavoin nimettyyn sivuryhmään. Kyseistä kieliryhmää voi sitten käyttää osana sivuvalitsijoita.
Lisäksi jaetuille osuuksille täytyy määrittää erikseen niiden sivutunnisteina käytetyt tiedostot Muokkaa Tyyliä -valikossa. Näille osuuksille on lisätty omat kohtansa tässä valikossa. Niiden tunnisteet lisätään samalla tavoin kuin muihin julkaisujen osuuksiin. Koska kyseiset osuudet käyttävät aina valittuna olevaa kieltä, sama pätee myös niiden sivutunnisteisiin. Jos näihin osuuksiin soveltuvat samat sivutunnisteet kuin kielikohtaisiin osuuksiin, voi niitä käyttää, mutta ne täytyy silti määrittää näiden osuuksien käyttöön.
Sivunumerot
DocRaptor ei salli lisätä sivunumeroita suoraan osana sivutunnisteita, vaan ne täytyy lisätä sivutunnisteiden oheen erikseen. Sivunumeroinnin jatkuvuuden osalta ratkaisevaa on, milloin sivunumerointi aloitetaan ja nollataan sekä mitkä sivujoukot näyttävät sivunumeron. Alla on esitetty esimerkkitavat lisätä sivunumerot joko ainoastaan kielikohtaisina tai jatkuvina halki koko dokumentin, mukaan lukien jaettujen osuuksien.
Kielikohtaiset sivunumerot
Kielikohtaiset sivunumerot vaativat sivunumeroinnin aloittamista alusta kullakin kielellä. Periaatteessa tämä voi tapahtua oletusarvoisesti vanhoilla tyylitiedoston asetuksilla. Sivunumeroinnin aloittaminen vaatii sen laskemisen alkamispisteen määrittämistä, ja tällä tavoin määritetyt alkamispisteet kullakin kielellä toimivat myös alusta aloittamisen kohtina. Jos näin ei kuitenkaan ole, jokaisen kielen osuuden saa erotettua omat sivunumeronsa omaaviksi tällä tavoin:
.langContentWrapper {
counter-reset: page 1;
break-before: right;
}
Yllä esitetty malli aloittaa sivunumeroinnin alusta jokaisen kielen alussa ja aloittaa jokaisen kielen aukeaman oikeanpuoleiselta sivulta. En siis suosittele sen käyttämistä esimerkiksi, jos jokaisella kielellä on omat kantensa. Vaihtoehtoisesti aloitussivu kielikohtaisilla kansilla voi olla sivu 0 eikä sivu 1.
Huomioithan, että tämän säännön käyttäminen vaatii muiden sivunumeroinnin alusta aloittavien sääntöjen käytöstä poistamista monikielisissä julkaisuissa. Tämä onnistuu esimerkiksi lisäämällä normaalin säännön valitsijan viimeiseen osuuteen ehdon ’:not(.langContentWrapper *)’. Asteriski on syytä korvata kyseisen viimeisen osuuden omalla perustunnisteella. Tämä toimii, koska .langContentWrapper on käytössä monikielisissä julkaisuissa muttei yksikielisissä julkaisuissa.
Jatkuvat sivunumerot
Jatkuvat sivunumerot monikielisissä julkaisuissa vaativat sivunumeroinnin aloittamista vain yhdessä sijainnissa ja sivunumeroinnin alusta aloittamisen poistamista.
Alla esitetyt esimerkit liittyvät eri malleihin tältä osin. Ne on kumpikin syytä yhdistää yllä mainittuun ratkaisuun oletusarvoisten sivunumeroinnin alusta aloittamisen estämiseksi monikielisissä julkaisuissa. Ensimmäinen esimerkki aloittaa sivunumeroinnin jaetusta sisällysluettelosta riippumatta sen toteutustavasta. Toinen esimerkki aloittaa sivunumeroinnin ensimmäisen kielen osuudesta.
.langGroupTocWrapper, .langGroupFullTocWrapper {
counter-reset: page 1;
}
.langContentWrapper {
counter-reset: page 1;
break-before: right;
}
.langContentWrapper ~ .langContentWrapper {
counter-reset: none;
}