Napisany sty-24-2009

smarty i gettext

W nawiązaniu do mojego poprzedniego wpisu wyjaśnię w jaki sposób korzystać z gettext’a w szablonach Smarty. Choć na pierwszy rzut oka wydaje się, że będziemy musieli włożyć sporo pracy, by uzyskać efekt końcowy, to w rzeczywistości okaże się to dużo prostsze.

raz, dwa,trzy gotowe!

Na początku ściągamy sobie Smarty. Aby użyć gettext’a potrzebna nam będzie odpowiednia wtyczka - możecie ją znaleźć TUTAJ. Po pobraniu umieszczamy block.t w lokalizacji:

libs/plugins/

Przy pisaniu szablonów korzystamy z funkcji blokowej (t}. Spójrzmy na przykład index.tpl:

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html;charset=utf-8″ />
</head>
<body>
{t}Message to conversion{/t}
</body>
</html>

W kolejnym kroku na podstawie index.tpl generujemy plik języka c - dokona tego dołączony do pluginu skrypt tsmarty2c.php. Jego zadaniem jest parsowanie dokumentu w poszukiwaniu łańcuchów znaków znajdujących się pomiędzy znacznikami {t},{/t} i zamiana ich na wywołania funkcji gettext(). Uruchamiamy go z linii komend:

php -q tsmarty2c.php index.tpl > index_c.c

Teraz z pomocą przychodzi doskonale znane narzędzie xgettext:

D:\gettext>”C:\Program Files (x86)\GnuWin32\bin\xgettext.exe” -o messages.po index_c.c

Dalej postępujemy identycznie jak w przykładzie z poprzedniego posta (zapraszam do lektury). Działający kod udostępniam do pobrania TUTAJ.

Tagi : ,

Napisz komentarz