04 Tłumaczenie dodatku Jedyne czego brakuje do pełni szczęścia naszej erze, to tłumaczeń na inne języki. Aby przygotować tłumaczenie, będziemy potrzebowali specjalnego pliku z końcówką
.po oraz edytor takich plików. Tutaj masz listę proponowanych edytorów:
https://wiki.wesn...tors#Tools. Ja będę korzystał z multiplatformowego
poEdit.
Przygotowanie dodatku do przetłumaczenia Zanim zdobędziemy plik
.po, musimy odpowiednio przygotować dodatek. Otwórz plik
_main.cfg. Na początek potrzebujemy domeny tłumaczeń. Stworzymy ją znacznikiem
[textdomain]. Dwa niezbędne klucze to
name oraz
path.
name to nazwa naszego tłumaczenia. Powinno się je nazywać
wesnoth-<nazwa_folderu_dodatku>.
path to ścieżka do naszego folderu z tłumaczeniami, zaczynająca się od folderu
data. Powinna wyglądać tak:
data/add-ons/<nazwa_folderu_dodatku>/<folder_z_tłumaczeniami>.
Kod źródłowy
[textdomain]
name="wesnoth-MojDodatek"
path="data/add-ons/MojDodatek/translations"
[/textdomain]
Ponieważ nasz dodatek nie ma jeszcze folderu na tłumaczenia, stwórzmy go sobie. Ja nazwałem go
translations. Dodajmy jeszcze
#textdomain <nazwa_tłumaczenia> na początek pliku. Wszystkie pliki, które mają być przetłumaczone, muszą się tak zaczynać.
Kod źródłowy
#textdomain wesnoth-MojDodatek
[textdomain]
name="wesnoth-MojDodatek"
path="data/add-ons/MojDodatek/translations"
[/textdomain]
Teraz przerobimy trochę kod naszej ery. Zmienimy nazwy widoczne w grze z polskich na angielskie. Dzięki temu, jeśli ktoś gra w języku, na który nasz dodatek nie jest przetłumaczony, będzie miał wszystko po angielsku. Dodatkowo, przed każdym tekstem, który ma zostać przetłumaczony stawiamy znak
_. Pozwoli to później na automatyczne wygenerowanie pliku
.po.
Kod źródłowy
#ifdef MULTIPLAYER
[era]
id = MojaEra
name = _"My Era"
{RANDOM_SIDE}
#Pierwszy komentarz. Pod spodem frakcja elfów.
[multiplayer_side]
id = Elfy
name = _"Evles"
{MAGENTA_IS_THE_TEAM_COLOR}
leader = Elvish Lord
recruit = Elvish Archer
image = _"units/undead/avenger+female-sword-1.png"
[/multiplayer_side]
#Drugi komentarz. Poniżej mamy frakcję nieumarłych.
[multiplayer_side]
id = Nieumarli
name = _"Undead"
{MAGENTA_IS_THE_TEAM_COLOR}
leader = Dark Sorcerer, Skeleton
recruit = Walking Corpse
image = "units/undead/shadow-s-attack-4.png"
[/multiplayer_side]
[/era]
#endif
Jeśli przyjrzysz się powyższemu kodowi, zauważysz że postawiłem znak
_ również przed ścieżką do obrazka. Jakkolwiek dziwnie to nie zabrzmi, ścieżki też można tłumaczyć. Pozwoli to np. na podmianę obrazka zawierającego angielski tekst, na jego spolszczoną wersję.
Wszystko gotowe. Oto ostateczna wersja pliku
_main.cfg:
Kod źródłowy
#textdomain wesnoth-MojDodatek
[textdomain]
name="wesnoth-MojDodatek"
path="data/add-ons/MojDodatek/translations"
[/textdomain]
#ifdef MULTIPLAYER
[era]
id = MojaEra
name = _"My Era"
{RANDOM_SIDE}
#Pierwszy komentarz. Pod spodem frakcja elfów.
[multiplayer_side]
id = Elfy
name = _"Evles"
{MAGENTA_IS_THE_TEAM_COLOR}
leader = Elvish Lord
recruit = Elvish Archer
image = _"units/undead/avenger+female-sword-1.png"
[/multiplayer_side]
#Drugi komentarz. Poniżej mamy frakcję nieumarłych.
[multiplayer_side]
id = Nieumarli
name = _"Undead"
{MAGENTA_IS_THE_TEAM_COLOR}
leader = Dark Sorcerer, Skeleton
recruit = Walking Corpse
image = "units/undead/shadow-s-attack-4.png"
[/multiplayer_side]
[/era]
#endif
W końcu możemy zająć się sprawą pliku
.po.
Pozyskiwanie pliku .po Istnieją trzy sposoby pozyskania pliku
.po.
WesCamp Aby pozyskać plik
.po z WesCamp należy ustawić w naszym pliku
_server.pbl klucz
translate na
true
Kod źródłowy
translate=true
Następnie nasz dodatek musi zostać opublikowany na serwerze (i dlatego na razie nie polecam tego sposobu), a my za jakiś czas będziemy mogli znaleźć nasz plik
.po na stronie
https://www.wesno...g/gettext/.
Użycie programu, który potrafi generować pliki .po dla Wesnoth Takim programem jest
WesPo. Można go pozyskać z tąd:
http://wespo.sour.... Uruchamiamy
WesPo i wskazujemy folder naszego dodatku. Możemy też zaznaczyć opcję
Fuzzy.
Fuzzy oznaczy wszystkie teksty w pliku .po jako niepewne. To czy zaznaczysz tę opcję, nie ma tak na prawdę znaczenia. Niektóre edytory .po specjalnie wyróżniają tak oznaczone teksty. Może to poprawić komfort pracy tłumaczowi, który łatwiej odróżni teksty przetłumaczone od tych, którymi jeszcze się nie zajął.
Klikamy na
Create skele.po. W folderze dodatku pojawi się plik
skele.po.
Ręczne stworzenie pliku .po To wcale nie jest trudne! Stwórz w dodatku nowy plik tekstowy. Nazwij go nazwą swojego tłumaczenia i zmień końcówkę na
.po (
wesnoth-MojDodatek.po). Na początku naszego nowego pliku dodajemy dwie linijki:
msgid "" i
msgstr "".
Kod źródłowy
msgid ""
msgstr ""
Zostawiamy linijkę przerwy i ponowne dodajemy
msgid "" i
msgstr "". Tym razem uzupełnimy sobie cudzysłowy. Po
msgid będzie tekst oryginalny, jaki ma zostać przetłumaczony. Po
msgstr będzie jego przetłumaczona wersja.
Kod źródłowy
msgid ""
msgstr ""
msgid "My Era"
msgstr "Moja Era"
Dodajmy jeszcze wszystkie pozostałe teksty, które chcemy przetłumaczyć. Nie musimy od razu tłumaczyć naszych tekstów. Wygodniej będzie dokończyć tłumaczenie w edytorze
.po.
Kod źródłowy
msgid ""
msgstr ""
msgid "My Era"
msgstr "Moja Era"
msgid "Elves"
msgstr ""
msgid "Undead"
msgstr ""
msgid "units/elves-wood/avenger+female-sword-1.png"
msgstr ""
Co zrobić z gotowym plikem .po Mamy już plik
.po. Posłuży on do wygenerowania pliku
.mo, z którego kożysta gra. Ponieważ
.mo musi się nazywać
<nazwa_tłumaczenia>.mo, dla wygody upewnij się twój plik
.po nazywa się
<nazwa_tłumaczenia>.po (
wesnoth-MojDodatek.po). Przenieś go folderu tłumaczeń (
translations).
W folderze tłumaczeń konieczne będzie utworzenie właściwie nazwanego folderu dla języka, na jaki tłumaczymy. Podpowiedź co do nazwy, możesz znaleźć w
<folder_z_zainstalowanym_Wesnoth>/translations. Dla polskiego języka będzie to
pl. W folderze
pl utwórz folder o nazwie
LC_MESSAGES (to w nim Wesnoth będzie szukać pliku tłumaczenia). Do niego przenieś plik
.po. Możesz zostawić również kopię pliku
.po w folderze
translations, jako bazę dla innych tłumaczeń.
Tłumaczenie dodatku i generowanie pliku .mo Otwórz plik
.po w
pl/LC_MESSAGES za pomocą edytora
.po.

Teraz wybierając teksty z listy możesz dopisywać do nich tłumaczenia.
My era przetłumaczyłem na
Moja Era,
Elves na
Elfy,
Undead na
Nieumarli, a ścieżkę do obrazka podmieniłem na
units/elves-wood/shyde.png.
Nawet jeśli edytor każe ci uzupełnić jakieś informacje o twoim tłumaczeniu, nie musisz tego robić. Po prostu przetłumacz teksty, a resztą się nie przejmuj.
Na koniec zapisz. Jeśli twój edytor nie skompiluje pliku
.po na plik
.mo automatyczne przy zapisie, powinien posiadać gdzieś opcję kompilacji. W folderze
LC_MESSAGES powinien pojawić się plik
.mo.
Pliki .po są grze niepotrzebne i teraz możesz je bezpiecznie usunąć. Radzę je jednak zachować. Ułatwi to nanoszenie poprawek, albo tworzenie nowych tłumaczeń. Oczywiście, gdy dodatek się rozrośnie, trzeba będzie przygotować nowy plik .po.
Przetestuj swoje tłumaczenie w grze.
Autor: Smok