Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
translations:team_pl [2012/10/03 19:39] – removed psokol | translations:team_pl [2013/10/01 15:18] – psokol | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Tłumaczenie ====== | ||
+ | Microsoft wydając system Windows nie przewidział dla niego obsługi wielu języków. Kiedy stało się jasne, że ich produkt odniesie sukces nie tylko na rynku anglojęzycznym, | ||
+ | |||
+ | Trzeba bowiem wiedzieć, że w nowoczesnych środowiskach takich jak GNOME, Xfce czy KDE, wymiary widżetów automatycznie dopasowywane są do ich zawartości. Przypomina to trochę formatowanie hipertekstu podczas zmiany rozmiaru okna przeglądarki. W rezultacie Linux doskonale sprawdza się jako system wielojęzyczny. Nie narzuca się tu żadnych ograniczeń co do długości tłumaczonych komunikatów, | ||
+ | |||
+ | Niestety słownictwo, | ||
+ | |||
+ | Przygotowując tłumaczenie środowiska Xfce życzyłbym sobie, aby stanowiło ono inną jakość. Chcę by było ono bezkompromisowe i stało w tej kwestii w opozycji do innych podobnych projektów - nawet otwartoźródłowych. | ||
+ | |||
+ | ===== Proces ===== | ||
+ | |||
+ | Środowisko Xfce do procesu tłumaczenia używa systemu GNU gettext. | ||
+ | |||
+ | ==== Pliki źródłowe ==== | ||
+ | |||
+ | Komunikaty programów zawarte w kodzie źródłowym przechowywane są w specjalnych plikach: | ||
+ | * .pot (Portable Object Template) - przechowującym komunikaty wydobyte z kodu źródłowego, | ||
+ | * .po (Portable Object) - przechowującym tłumaczenia tychże komunikatów. | ||
+ | |||
+ | W praktyce plik .pot jest szablonem dla nowych plików tłumaczeń. Aby utworzyć plik z tłumaczeniami komunikatów w języku, którego dany program jeszcze nie obsługuje, wystarczy skopiować plik .pot zmieniając jego rozszerzenie na .po. | ||
+ | |||
+ | W większości plików tłumaczeń można wyróżnić 4 części: | ||
+ | * stopkę z danymi edytorów i innymi informacjami umieszczonymi za znakami komentarza, | ||
+ | * nagłówek zawierający szczegóły techniczne tłumaczenia, | ||
+ | * blok tłumaczeń oraz | ||
+ | * tłumaczenia które uległy przedawnieniu po aktualizacji komunikatów z kodów źródłowych. | ||
+ | |||
+ | Pliki .po można modyfikować jak zwykłe pliki tekstowe, używając do tego celu edytora tekstu. Taki sposób edycji jest jednak niewygodny i niewskazany ze względu na łatwość popełaniania błędów. W praktyce do tego celu najlepiej nadają się dedykowane edytory tłumaczeń. Udostępniają one udogodnienia, | ||
+ | |||
+ | ==== Parametry ==== | ||
+ | |||
+ | Komunikaty bardzo często zawierają parametry oznaczane w plikach źródłowych np. jako ciąg znaków „%s”. Podczas wyświetlania komunikatu parametr zastępowany jest niezmiennym i niezależnym od używanego języka ciągiem. Pominięcie oznaczenia parametru w tłumaczonym komunikacie może powodować błędy na różnych etapach tłumaczenia. | ||
+ | Jeśli w pierwotnym komunikacie znajduje się wiecej niż jeden parametr oznaczony w ten sam sposób, np. | ||
+ | |||
+ | '' | ||
+ | |||
+ | można zmienić ich kolejność dodając do oznaczenia liczbę porządkową i znak „$”: | ||
+ | |||
+ | '' | ||
+ | |||
+ | ==== Liczba mnoga ==== | ||
+ | |||
+ | GNU gettext umożliwia zadeklarowanie dowolnej ilości form komunikatów w liczbie mnogiej. Takie komunikaty zazwyczaj występują z parametrem reprezentującym liczebnik (zazwyczaj %d). Deklarację tę należy zamieścić w nagłówku pliku, używając specjalnej składni. Pozwoli to przetłumaczonemu programowi na wyświetlanie poprawnie brzmiących komunikatów, | ||
+ | Dla języka polskiego deklaracja form liczby mnogiej wygląda następująco: | ||
+ | |||
+ | '' | ||
+ | |||
+ | ===== Zasady ===== | ||
+ | |||
+ | Aby stworzyć wartościowe tłumaczenie, | ||
+ | |||
+ | Nadrzędną zasadą jest tu zachowanie spójności tłumaczeń w całym środowisku graficznym. Zarówno programy zewnętrzne jak i programy wchodzące w skład środowiska, | ||
+ | * używanie poprawnej pisowni z uwzględnieniem pisowni znaków interpunkcyjnych, | ||
+ | * używanie obowiązującego słownictwa, | ||
+ | * nie zwracanie się w komunikatach bezpośrednio do użytkownika, | ||
+ | * stosowanie odpowiednich form w zależności od elementu interfejsu, | ||
+ | * dokumentowanie zmian w plikach źródłowych (przede wszystkim w nagłówkach oraz komunikatach przeznaczonych dla tłumaczy), | ||
+ | * sprawdzanie tłumaczeń podczas działania programów. | ||
+ | Większość reguł tłumaczenia pokrywa się z tymi stosowanymi przez GNOME, dlatego nie ma sensu ich tu wszystkich szczegółowo opisywać. | ||
+ | |||
+ | W praktyce proces tłumaczenia interfejsu sprowadza się do tłumaczenia krótkich i zwięzłych komunikatów, | ||
+ | |||
+ | ===== Wprowadzanie zmian ===== | ||
+ | |||
+ | Inna niepisana zasada, którą należałoby przyjąć, to ta, która mówi, że to, co znajduje się w repozytorium, | ||
+ | |||
+ | System Transifex zarządzający tłumaczeniami umożliwia swobodne modyfikowania i przesyłanie tłumaczeń do repozytoriów programów. Jest to bardzo dobre rozwiązanie wzorowane na tym z internetowej encyklopedii Wikipedia. Zrzuca ona na edytora odpowiedzialność za opublikowanie własnej pracy i za szkody jakie może w ten sposób wyrządzić. Jednocześnie zmiany są łatwe do cofnięcia przez koordynatora projektu. Mimo wszystko modyfikowanie treści już zamieszczonych, | ||
+ | |||
+ | |||
+ | ===== Słownik ===== | ||
+ | |||
+ | Oto część obowiązującego słownictwa: | ||
+ | |||
+ | * hinting - przyciąganie do siatki | ||
+ | * debug - diagnozowanie błędów | ||
+ | * subtitles - lista dialogowa | ||
+ | * web application - program sieciowy, usługa sieciowa | ||
+ | * contributor - współtwórca | ||
+ | * snapshot - zrzut danych | ||
+ | * count - ilość, nie liczba | ||
+ | * database statement - zapytanie bazy danych | ||
+ | * backend - moduł obsługi | ||
+ | * hardlink - dowiązanie trwałe | ||
+ | * developer - twórca | ||
+ | * PPID - identyfikator nadrzędnego procesu | ||
+ | * tab - tabulator | ||
+ | * execute - uruchomić program, wykonać polecenie | ||
+ | * dockapp - aplet doku | ||
+ | * verify - potwierdzać | ||
+ | * decoration - obramowanie w odniesieniu do okna | ||
+ | * focus - uaktywniać | ||
+ | * bits per sample - rozdzielczość bitowa (dźwięku) | ||
+ | * support - obsługa, nie wsparcie | ||
+ | * acceleration - wspomaganie sprzętowe | ||
+ | * refresh - wczytywać ponownie, nie ładować | ||
+ | * operation - działanie | ||
+ | * tweak - usprawnienie | ||
+ | * desktop file - plik aktywatora, w odniesieniu do plików z rozszerzeniem .desktop | ||
+ | * overview - podsumowanie | ||
+ | * eject - odłączać napęd, urządzenie lub wysuwać w kontekście nośnika | ||
+ | * framework - platforma programistyczna | ||
+ | * permalink - odnośnik bezpośredni | ||
+ | * compose key - klawisz składania znaków | ||
+ | * race condition - zjawisko hazardu | ||
+ | * set - ustalać, nie ustawiać | ||
+ | * bug - błąd, usterka | ||
+ | * hook - skrypt zaczepu, w odniesieniu do systemów kontroli wersji | ||
+ | * fix - poprawka, naprawa błędu | ||
+ | * development release - wydanie testowe | ||
+ | * switcher - przełącznik okien (działanie klawiszy Alt+Tab) | ||
+ | * mainanance release - wydanie utrzymujące | ||
+ | * double-check - ostateczne sprawdzenie | ||
+ | * dock (to) - utwierdzać | ||
+ | * lokalization - regionalizacja | ||
+ | |||
+ | ===== Odnośniki ===== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | --- // |