Chcę pomóc w tłumaczeniu...


Spis treści: Copyright: Info:
Copyright (c) 2002 by Piotr Szymański. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0.8 or later (the latest version is presently available at http://www.opencontent.org/openpub/). Najnowsza wersja tego artykułu jest zawsze dostępna pod adresem http://www.linuxpl.org/people/djurban/varia/kde.html
Changelog:
  • v. 1.0: Pierwsze wydanie

Wstęp
W górę

Po mojej prośbie o pomoc w tłumaczeniu KDE, na listę napisało wiele nowych osób, tak więc sytuacja zaczęła się poprawiać i nie mam już wątpliwości, że uda się zrobić tłumaczenie z prawdziwego zdarzenia. Jednakże, po wyrażeniu chęci pomocy pada pytanie: ale jak mogę pomóc? Zaczynaliśmy od wyjaśniania tego na liście, ale każdemu to się znudzi, kiedy musi pisać to samo któryś raz z rzędu. Tak narodził się pomysł napisania tego artykułu. Patrząc jednak trochę dalej w przyszłość, pomyślałem, że być może byłby on początkiem całej serii artykułów o tym, w jaki sposób można włączyć się w tworzenie polskiego linuksa. O KDE będzie na początek, ale potem spróbuję (a może ktoś inny) napisać także o innych projektach:

Tyle słowem wstępu, przejdźmy do projektu tłumaczeń KDE. Oto co należy zrobić, żeby zacząć pracę w naszym zespole:

Dołączenie do zespołu tłumaczy KDE
W górę

Zapisać się na listę dyskusyjną kde-transl. Tutaj moja uwaga do wszystkich którzy zgłosili się do pomocy, proszę jak najszybciej zapisać się i napisać, że już jesteście. Oprócz nowych osób, mam tu na myśli Krystiana Zubel, od którego nie dostałem żadnej odpowiedzi. Do tego dochodzi Norbert Popiołek, mógłbyś powiedzieć którymi tłumaczeniami będziesz się jeszcze zajmował? Robi się to wysyłając email pod adres: majordomo@mer.chemia.polsl.gliwice.pl o treści (bez cudzysłowów): "subscribe kde-transl". Nowi tłumacze nie otrzymają plików bez zapisania się na listę.

Po zapisaniu się wysłać list, gdzie można napisać jak dobrze zna się język i ile czasu można poświęcić na tłumaczenie. Pamiętać należy także o podaniu imienia i nazwiska, gdyż na liście autorów musi być takowe odnotowane.

Na liście zostaną przydzielone pliki do tłumaczenia. trzeba się za nie zabrać. Jak? O tym poniżej.


Zaczynamy od ściągnięcia plików. Pliki są podzielone na pakiety i dostępne pod adresem: http://mer.chemia.polsl.gliwice.pl/kde/transl/index.html Podczas przydzielania zostaje podana nazwa pliku i pakiet do którego należy, więc nie powinno być problemów ze znalezieniem plików.

Teraz tworzymy dowolny katalog w którym będziemy trzymać tłumaczenia. W tym katalogu tworzymy serię podkatalogów, każdy o nazwie danego pakietu np. kdenetwork, pożniej przenosimy przydzielone pliki do podkatalogu o nazwie pakietu do którego on należy np. knode.po przenosimy do kdenetwork. Gdy będziemy wysyłać juz wykonane tłumaczenia, pakujemy tylko katalog główny tych tłumaczeń i wysyłamy do mnie. Nim zaczniemy tłumaczenie należy zapoznać się z tekstami: Wytyczne dla tłumaczy KDE i Słownikiem tłumaczy KDE i GNOME. Odnośniki dostępne w częsci zasoby

Ustawienia KBabel
W górę

Przystępujemy do tłumaczenia, osobiście używam do tego vi, ale będzie wam najłatwiej jeśli zaczniecie od KBabel. Jest to bardzo rozbudowany zestaw programów do tworzenia i zarządzania tłumaczeniami. Najbardziej zainteresować was powinien moduł do tłumaczeń, zatem klikamy na menu KDE->Narzędzia Programistów(Development)->KBabel (Translation tool). Po uruchomieniu przystępujemy do dostosowania opcji.

  1. Identify:
  2. Edit:
  3. Save:
  4. Resztę ustawiamy wedle życzenia.

Struktura pliku po
W górę

Następnie korzystając z Kbabel otwieramy plik i zaczynamy tłumaczyć, niby to takie proste a jednak można się natknąć na wiele trudności. Obecnie większość osób nie ma czasu czytać kde-18n howto, zatem postaram się przedstawić po krótce wytyczne nakreślone przez kierownictwo kde-18n.
Plik .po dzieli się na dwie części:


Tłumaczenie interfejsu użytkownika (GUI)
W górę

W tłumaczeniu interfejsu użytkownika występuje wiele specjalnych par stringów, które należy potraktować niestandartowo:

  1. Teksty znajdujące się w oknach "About...", w zakładce tłumacze:
    msgid ""
    "_: NAME OF TRANSLATORS\n"
    "Your names"
    Tłumaczymy jako:
    msgstr "Imię i nazwisko tłumacza1, Imię i nazwisko tłumacza 2, itp..."

    #: _translatorinfo.cpp:3
    msgid ""
    "_: EMAIL OF TRANSLATORS\n"
    "Your emails"
    Jako:
    msgstr "email tłumacza1, email tłumacza2, itp..."

    Gdzie tłumacz jeden to my, a tłumacze2 do n to osoby które wcześniej tłumaczyły ten plik, jeżeli przejęliśmy go po kimś, to wypadałoby umieścić odpowiednią adnotację. Jeśli od zera tłumaczymy dany plik to oczywiście podajemy tylko swoje dane.
  2. Pozostałości po nieużywanych tłumaczeniach.
    #~ msgid "Where do you want to go tomorrow?"
    #~ msgstr "Where do you want to go tomorrow?"
    #~ msgid "No comment available"

    Jeśli otrzymany plik zawiera linijki zaczynające się od #~ to takie linijki należy usunąć, gdyż są to pozostałe ze starszej wersji pliku linie zawierające tłumaczenie tekstów nie używanych już w danym programie, jeżeli używamy KBabel, on zrobi to za nas automatycznie.
  3. Podkreślenia i skróty klawiaturowe.
    msgid "Show &Status Bar"
    msgstr ""
    tłumaczymy jako:
    msgid "Show &Status Bar"
    msgstr "Pokaż pasek &stanu"

    Gdyż znak & oznacza podkreślenie litery i uznanie jej za skrót klawiaturowy do danej pozycji. Rzadko jednak zdarza się, żeby te litera podkreślona w msgid występowały w msgstr,dlatego naszym najważniejszym celem jest, aby w danym menu nie powtarzały się te same skróty: np. w menu Plik: "&Zapisz" i "&Zapisz jako" tylko: "&Zapisz" i "Zapisz &jako". Nie zawsze jednak można się tego dopatrzyć, ale nie ma się o co martwić, bo my i tak wszystko sprawdzimy.
  4. Niejednoznaczne tłumaczenia.
    #: kvoctrain.cpp:1354 kvoctrain.cpp:1404
    #, fuzzy
    msgid "Create &Multiple Choice"
    tłumaczymy jako:
    #: kvoctrain.cpp:1354 kvoctrain.cpp:1404
    msgid "Create &Multiple Choice"
    msgstr "Test &wyboru"

    Gdyż komentarz fuzzy oznacza informację dla tłumacza, że ten string jest niejednoznaczny, powstaje ono na bazie prymitywnych heurystycznych skanerów gettexta, a oznaczane są tak stringi, które uległy zmianie w stosunku do poprzednich wersji, więc musimy usuwać każdy wpis fuzzy, jeśli jest on sam w linijce to usuwamy cala linijkę np.
    (#, fuzzy), ale jeżeli za informacją fuzzy stoi kolejna np. (#, fuzzy, c-format), to usuwamy jedynie część: ", fuzzy", tak, żeby pozostało: "#, c-format". Oczywiście KBabel robi to za nas automatycznie :)
  5. Tłumaczenia z przekazywaną zmienną.
    #: kpackage.cpp:613
    #, fuzzy, c-format
    msgid "Unknown package type: %1"
    msgstr "Nieznany typ pakietu: %s"
    należy przetłumaczyć:
    #: kpackage.cpp:613
    #, c-format
    msgid "Unknown package type: %1"
    msgstr "Nieznany typ pakietu: %1"

    Jak nietrudno zauważyć różnica pojawia się w znaku stojącym po %. Informacja c-format znajdująca się na msgid informuje nas, że są to wartości zmiennych. W standardach przyjętych przy KDE 1.x.x uznano, że będą stosowane formy %s, %d itp. aktualnie wymagane jest użycie %1, %2 itp., zatem, należy zamienić w starych tłumaczeniach nazwy zmiennych na uaktualnione. Jak można było przewidzieć KBabel robi to za nas.
  6. Komentarze w tłumaczeniach.
    #: kdeui/kstdaction.cpp:669
    msgid ""
    "_: beginning (of line)\n"
    "&Home"
    msgstr "&Początek linii"

    #: src/kernel/qaccel.cpp:562
    msgid ""
    "_: QAccel\n"
    "Home"
    msgstr "Pos1"

    Fragmentów msgid zaczynających się od _: nie tłumaczymy, gdyż są to tylko komentarze mające na celu ułatwienie tłumaczowi odgadnięcie kontekstu podanego stringa. KBabel
  7. Opuszczanie cudzysłowów.
    #: cardmaps.cpp:105
    #, c-format
    msgid "kpat: PANIC, cannot load card pixmap \"%1\"\n"
    msgstr "kpat: krytyczny błąd, nie można załadować mapy pikselowej karty \"%1\"\n"

    W tym momencie ze względu na konieczność użycia cudzysłowów w stringu, postępujemy jak w większości języków programowania poprzedzając istniejące cudzysłowy znakiem: "\". Najprościej jest po prostu wkleić msgid w miejsce msgstr, wcisnąć insert i zastępować znaki na bieżąco.

W ten oto sposób przechodzimy do tłumaczenia dokumentacji

Tłumaczenie dokumentacji
W górę

Format dokumentacji w KDE zmieniał się co wersję. Aktualnie obsługiwany jest format docbook, jednakże, żeby ułatwić tłumaczenie, zastosowano mechanizm tworzenia plików po, zatem za pomocą specjalnego programu (xml2po z kdesdk) pliki po są generowane i umieszczane w CVS.

Istnieją tutaj jednakże istotna różnica w porównaniu do tłumaczeń GUI:

Zasoby
W górę

Na koniec artykuły zawierające informacje (niezwykle przydatne!), które pozwolą na podniesienia jakości swoich tłumaczeń, opisują one m.in. techniki tłumaczeń, a także wskazówki od doświadczonych tłumaczy.

  1. Artykuły:
  2. Słowniki:
  3. Listy tłumaczeń:
W sondzie LN chęć do pomocy zgłosiło już ponad 500 osób, miejmy nadzieje, że przynajmniej część z nich zrobi krok dalej i dołączy do któregoś z polskich projektów: dystrybucji, tłumaczeń, aplikacji...