Når man lager temaer så er det mest naturlig å la språket være på engelsk, men nå er det ikke alltid slik at bloggen temaet skal brukes på er engelsk, så derfor er det greit å tilrettelegge temaet for oversettelse.

Helt enkelt gjøres dette ved at i stedet for å skrive all tekst rett ut, så legger man teksten inn i kode av typen

Så for eksempel i stedet for å sette opp meny overskrifter til

Categories

så blir koden

Når det gjelder tekst som skrives inne i template kode, så bruker man __('text'). Et enkelt eksempel er koden for redigeringslinken man gjerne ser i poster når man er innlogget (edit_post_link ). Uten støtte for oversettelse kan denne koden ser omtrent slik ut:

For å legge inn støtte må koden omgjøres til:

I template koder med flere tekststrenger, så skal disse separeres med komma, som eksempel kan vi bruke comments_number som viser antall kommentarer til en post:

Til sist er det det de mer komplekse kodene, hvor teksten er en del av selve koden, for eksempel opplisting av Sider wp_list_pages

Denne koden kan i noen tilfeller se slik ut:

<?php wp_list_pages('title_li=

Pages

' ); ?>

For å tilrette legge dette for oversetting må man bruke '. __('text') .' dvs. at man setter koden mellom '. og .' så i eksempelet med opplistingen får vi:

<?php wp_list_pages('title_li=

'. __('Pages') .'

' ); ?>

Det er akkurat samme systemet for innstikk, men det hender seg at man må bruke " i stedet for ' (apostrof).

Hvis du nå ønsker at folk skal kunne lage en språkpakke for ditt tema eller innstikk spesielt, må du ta i bruk funksjonene load_theme_textdomain for temaer og load_plugin_textdomain for plugins.

For temaer må du sette inn følgende kode helt i toppen på header.php:

“temanavn” må da byttes ut med noe som reflekterer navnet på temaet ditt. For eksempel hvis temaet heter “Fint Tema”, så bruker du “finttema”.

Har du en functions.php fil i temaet ditt kan du legge inn load_theme_textdomain('temanavn'); helt øverst i fila, rett etter <?php

Når du nå skal gi støtte for oversettelse i temaet ditt, så må du legge til tekstdomenet (textdomain) sammen med tekststrengen din:

Når det gjelder innstikk så er prinsippet det samme men man bruker da i stedet load_plugin_textdomain('innstikknavn');

For de som da skal lage en språkpakke/ fil for enten temaet eller innstikket, så skal de ha navn som temanavn-*.mo eller innstikknavn-*.mo. En fil for norsk bokmål vil da bli hetende, temanavn-nb_NO.mo.

Relaterte lenker