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

Skomentuj


O mnie

justyna kubisztal

Cześć, jestem Justyna. Programistka Pythona z trzyletnim doświadczeniem w zawodzie i kilkuletnim doświadczeniem w IT. Mentor i współorganizatorka Django Girls Kraków, tłumaczka Coursery, pasjonatka języków obcych i zwolenniczka uczenia się przez całe życie.

Bądźmy w kontakcie

Ostatnie wpisy

Wspieram

Szkoła 3.0

Kategorie

Tags

Mapa strony

Sitemap