Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
translations:team_pl [2012/10/03 19:20] – [Wprowadzanie zmian] psokol | translations:team_pl [2012/12/25 14:33] – [Odnośniki] psokol | ||
---|---|---|---|
Line 8: | Line 8: | ||
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. | 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 ===== | ===== Zasady ===== | ||
Line 13: | Line 51: | ||
Aby stworzyć wartościowe tłumaczenie, | 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, | + | 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 | + | * używanie |
* używanie obowiązującego słownictwa, | * używanie obowiązującego słownictwa, | ||
* nie zwracanie się w komunikatach bezpośrednio do użytkownika, | * nie zwracanie się w komunikatach bezpośrednio do użytkownika, | ||
* stosowanie odpowiednich form w zależności od elementu interfejsu, | * 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), | * dokumentowanie zmian w plikach źródłowych (przede wszystkim w nagłówkach oraz komunikatach przeznaczonych dla tłumaczy), | ||
- | * sprawdzanie tłumaczenia w praktyce | + | * sprawdzanie tłumaczeń |
Większość reguł tłumaczenia pokrywa się z tymi stosowanymi przez GNOME, dlatego nie ma sensu ich tu wszystkich szczegółowo opisywać. | Większość reguł tłumaczenia pokrywa się z tymi stosowanymi przez GNOME, dlatego nie ma sensu ich tu wszystkich szczegółowo opisywać. | ||
Line 26: | Line 64: | ||
===== Wprowadzanie zmian ===== | ===== Wprowadzanie zmian ===== | ||
- | Inną niepisaną zasadą, którą należałoby przyjąć, to taka, która mówi, że to co znajduje się w repozytorium, | + | 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 | + | 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 |
- | ===== Przydatne odnośniki ===== | + | ===== Odnośniki ===== |
* [[http:// | * [[http:// | ||
Line 37: | Line 75: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
- | --- // | + | --- // |