⚈ Kuopassa.net

Lisää kertomuksia netistä. 摆烂

Textpattern-sivusto monikieliseksi

Pitkästä aikaa jotain juttua Textpatternista. Kirjoitan tätä hommaa korvatulppien ja sangallisten kuulonsuojainten turvin, koska seinän takana se remontti, joka alkaa vasta kuukauden kuluttua, kuulostaa innostuneen käynnistymään jo vähän etuajassa.

Textpatternissa voi laittaa omia yksirivisiä kenttiä samaan tapaan kuin WordPressin avulla voi luoda avainkenttiä. Nämä avainkentät, tai custom fieldit, voivat sisältää jotain tekstiä tai koodia tai mitä nyt halutaankaan tallentaa yksittäisiin artikkeleihin.

Tämän blogin tapauksessa loin avainkentän ja annoin sille nimeksi kieli. Tuohon avainkenttään tallennan kielikoodiksi vaikkapa kirjainyhdistelmän en silloin kun haluan laittaa jonkun blogipostauksen englanniksi.

Toki voin kirjoittaa vain blogikirjoituksen englanniksi, mutta silloin muut blogissa olevat toiminnot, kuten navigaation linkit ja kommentointilomake, jäävät englannittamatta. Jos blogipostaukseen on tallennettu avainkenttä, johon määritellään vaikkapa se kaksikirjaiminen kielikoodi, voidaan tunnistaa onko kyseessä "spessupostaus" ja sen jälkeen tehdä kaikenlaisia asioita. Esimerkiksi tämän blogin tapauksessa sivupohjan lähdekoodissa tuo slogan mikä näkyy pääotsikon alapuolella on koodattu näin yksinkertaisesti:

<txp:if_custom_field name="kieli">
<p>More writings about the Web.</p>
<txp:else />
<p>Lisää kertomuksia netistä.</p>
</txp:if_custom_field>

Yllä oleva koodi tarkistaa josko yksittäiseltä sivulta löytyisi ei-tyhjä avainkenttä, nimeltään kieli. Jos avainkenttä ei ole tyhjä, tunnuslauseen englanninkielinen käännös näytetään. Jos avainkenttä on tyhjä, näytetään suomenkielinen vaihtoehto. Samaan tapaan voi kääntää muitakin asioita. Tämä on ehkä yksinkertaisin vaihtoehto, koska tässä koodissahan ei tarkisteta mitä avainkentässä sanotaan. Jos haluaisin tehdä koodin monimutkaisemmaksi, tarkistaisin avainkentän arvon. Jos avainkentän arvo on en, voitaisiin näyttää englanninkielinen slogani, jos arvona on de, tunnari voisi olla saksankielinen jne.

Blogissa on vasta yksi englanniksi kirjoitettu juttu. Se on Mod DB’s blog post system for registered users.

Tietoa kirjoittajasta