no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
Previous revisionNext revision | |||
— | translations:team_pl [2012/10/06 08:28] – [Liczba mnoga] 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, | ||
+ | * zachowanie poprawnej pisowni z uwzlę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ń w praktyce 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 ===== | ||
+ | |||
+ | Inną niepisaną zasadą, którą należałoby przyjąć, to taka, 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 enkcyklopedii Wikipedia. Zrzuca ona odpowiedzialność za opublikowanie własnej pracy edytorowi 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, | ||
+ | |||
+ | ===== Odnośniki ===== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | --- // |