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:20] – [Wprowadzanie zmian] psokol | translations:team_pl [2013/10/01 15:18] – 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 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: | ||
- | 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, | + | * 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 | ||
+ | * focus - uaktywniać | ||
+ | * bits per sample - rozdzielczość bitowa (dźwięku) | ||
+ | * support - obsługa, nie wsparcie | ||
+ | * acceleration - wspomaganie sprzętowe | ||
+ | * refresh - wczytywać ponownie, | ||
+ | * operation - działanie | ||
+ | * tweak - usprawnienie | ||
+ | * desktop file - plik aktywatora, w odniesieniu | ||
+ | * 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 | ||
- | ===== Przydatne odnośniki ===== | + | ===== Odnośniki ===== |
* [[http:// | * [[http:// | ||
Line 37: | Line 122: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
- | --- // | + | --- // |