Postępy projektowe #4

Postępy projektowe #4
Aby dołożyć nowe wersje językowe do strony opartej na Django, nie potrzebujemy żadnych dodatkowych bibliotek. Sama biblioteka Django posiada narzędzia do automatycznego wygenerowania teksów do tłumaczenia w osobnym pliku, a także do późniejszej kompilacji tłumaczenia. Po publikacji, aplikacja sama będzie wykrywać preferowany język użytkownika i pokazywać mu przetłumaczoną stronę. Jeśli tłumaczenie jest niedostępne - sięgnie do tłumaczenia w standardowym języku, który można zdefiniować w ustawieniach.

Wersje językowe - adresy

Najprostszym sposobem na zachowanie spójności przy różnych wersjach językowych, jest dołączenie do adresu podstron informacji o języku. Przykładowy adres zmienia się zatem z: "programeria.pl" na "programeria.pl/en/" lub "programeria.pl/pl/" - w zależności od preferowanej wersji. Żeby wygenerować różne adresy, dla różnych języków, można skorzystać z dekoratora "i18n_patterns" w następujący sposób:

urlpatterns += i18n_patterns(
    url(r'^about$', views.about, name='about'),
)

Tłumaczenia w szablonach

Aby przetłumaczyć fragment strony, możemy do jej szablonu dodać tagi: "trans" i "blogtrans". Musimy też załadować odpowiednie tagi z biblioteki, dodając na początku szablonu: "{% load i18n %}" Przykład szablonu poniżej:

{% trans "About the project" %}

{% blocktrans %}Gender of german articles is not an easy thing to learn. This project helps in learning it, by letting you use quizes to memorize them.{% endblocktrans %}

Generowanie tłumaczeń

Aby wygenerować listę tekstów do przetłumaczenia do osobnego pliku używamy komendy:
python manage.py makemessages -l pl
zastępując 'pl' dowolnym językiem, na który chcemy przetłumaczyć stronę. To pozwala nam na wygenerowanie pliku "django.po", który edytujemy wpisując tłumaczenie. Plik możemy też wysłać np. tłumaczom, bez konieczności edycji osób trzecich źródeł naszego projektu. Po dodaniu wszystkich informacji, możemy przejść do kompilacji tłumaczenia komendą:
python manage.py compilemessages -l pl
To wygeneruje dodatkowy plik - "django.mo", który zapewnia już dostępne różne wersje językowe. Możesz podejrzeć jak działa to w mojej aplikacji na przykład: Wersja angielska i Wersja polska.

Dodatkowe ustawienia

Dodatkowo musimy dodać kilka ustawień w pliku setting.py m.in. odnośnie standardowego języka naszej aplikacji i dostępnych języków. Zobacz więcej na: [EN] Tutorial Mariny Mele Źródła: A jak Twój projekt konkursowy? Jeśli jest to strona lub aplikacja webowa to czy używasz różnych wersji językowych?

0 Komentarze