馃寪 US-Proxy
class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
Skip to content

Repository files navigation

Polskie t艂umaczenie dokumentacji PHP

To repozytorium zawiera pliki polskiego t艂umaczenia dokumentacji na php.net, a ten dokument opisuje, w jaki spos贸b mo偶na uczestniczy膰 w procesie t艂umaczenia.

Spis tre艣ci

  1. Instalacja
  2. Zbuduj dokumentacj臋
  3. 艢ledzenie wersji
  4. T艂umaczenie
    1. S艂owniczek
    2. Inne porady dot. t艂umaczenia
  5. Praca z git
  6. Obecny stan polskiego t艂umaczenia

Instalacja

Aby wzi膮膰 udzia艂 w tworzeniu t艂umaczenia dokumentacji PHP na j臋zyk polski, musisz zacz膮膰 od zrobienia forka tego repozytorium, tj. doc-pl.

Uwaga: Je艣li posiadasz konto na php.net (przydzielane r臋cznie za d艂ugotrwa艂y wk艂ad) i uprawnienia do tego repozytorium, to mo偶esz pracowa膰 bez u偶ycia forka, ale jest to rzadka sytuacja, wi臋c skupmy si臋 na tym, co dotyczy wi臋kszo艣ci ludzi.

Poza doc-pl potrzebujesz jeszcze dw贸ch dodatkowych repozytori贸w. W zdecydowanej wi臋kszo艣ci sytuacji nie ma potrzeby dokonywa膰 w nich 偶adnych zmian, aby pracowa膰 nad polsk膮 dokumentacj膮, tak wi臋c nie ma potrzeby ich forkowa膰. Mo偶esz sklonowa膰 je prosto z oryginalnych repozytori贸w organizacji PHP na GitHubie.

Najlepiej jest stworzy膰 jeden katalog, do kt贸rego zostan膮 sklonowane wszystkie trzy repozytoria, na przyk艂ad phpdoc.

  • php/doc-base: to repozytorium zawiera narz臋dzia do tworzenia dokumentacji. Repozytorium znajduje si臋 pod adresem https://github.com/php/doc-base
  • php/doc-en: angielska wersja dokumentacji, kt贸ra jest u偶ywana m.in. wtedy, gdy dana podstrona nie zosta艂a przet艂umaczona na j. polski. Repozytorium znajduje si臋 pod adresem https://github.com/php/doc-en
  • php/doc-pl: polskie t艂umaczenie dokumentacji PHP. Jak wspomniane wy偶ej, prawdopodobnie musisz stworzy膰 fork tego repozytorium i sklonowa膰 repozytorium znajduj膮ce si臋 na Twoim w艂asnym koncie GitHub

Uwaga: upewnij si臋 (przy klonowaniu lub zmieniaj膮c nazw臋 bezpo艣rednio po nim), 偶e folder z angielsk膮 dokumentacj膮 nazywa si臋 en, a polsk膮 pl. Innymi s艂owy, upewnij si臋, 偶e w sklonowanych repozytoriach katalogi z wersjami j臋zykowymi (poza doc-base) nie zaczynaj膮 si臋 od doc-!

Zbuduj dokumentacj臋

Po dokonaniu jakichkolwiek zmian w t艂umaczeniu powiniene艣 skorzysta膰 ze skryptu, kt贸ry buduje dokumentacj臋, aby upewni膰 si臋, 偶e kod XML nie zawiera 偶adnych b艂臋d贸w. W tym momencie powiniene艣 mie膰 nast臋puj膮c膮 struktur臋 katalog贸w:

|- phpdoc
 |- doc-base
 |- en
 |- pl
  |- ...

Je艣li znajdujesz si臋 w katalogu pl, to musisz uruchomi膰 po prostu nast臋puj膮ce polecenie:

php ../doc-base/configure.php --with-lang=pl

Je偶eli wszystko posz艂o okej, to zobaczysz komunikat podobny do tego:

All good. Saving .manual.xml... done.
All you have to do now is run 'phd -d /home/user/Dev/phpdoc/doc-base/.manual.xml'
If the script hangs here, you can abort with ^C.
         _ _..._ __
        \)`    (` /
         /      `\
        |  d  b   |
        =\  Y    =/--..-="````"-.
          '.=__.-'               `\
             o/                 /\ \
              |                 | \ \   / )
               \    .--""`\    <   \ '-' /
              //   |      ||    \   '---'
         jgs ((,,_/      ((,,___/

 (Run `nice php configure.php` next time!)

W przeciwnym razie zobaczysz informacj臋 o b艂臋dach, kt贸re wyst膮pi艂y w plikach XML.

Uwaga: mimo i偶 proces nazywa si臋 "budowanie", to ten krok nie tworzy jeszcze plik贸w dokumentacji, kt贸re mo偶na wygodnie czyta膰 (np. plik贸w HTML). Komenda powy偶ej tworzy jedynie jeden gigantyczny plik XML i sprawdza jego poprawno艣膰, a renderowaniem dokumentacji do czytelnej formy zajmuje si臋 phd

艢ledzenie wersji

Kluczow膮 spraw膮 przy t艂umaczeniu dokumentacji jest jej zgodno艣膰 z angielskim pierwowzorem. W tym celu powsta艂 system revcheck, kt贸ry jest dost臋pny m.in. na doc.php.net, kt贸ry 艣ledzi zmiany, jakie wyst膮pi艂y w angielskiej wersji manuala, a wi臋c to, co musimy zmieni膰 w polskim t艂umaczeniu, aby by艂o ono aktualne.

Ca艂y system opiera si臋 o hashe commit贸w gita i komentarze zawarte na g贸rze ka偶dego przet艂umaczonego pliku XML:

<!-- EN-Revision: git-hash Maintainer: XXXX Status: ready -->

Kiedy t艂umaczymy jaki艣 plik, to git-hash w komentarzu powy偶ej musi by膰 zamieniony na hash angielskiej wersji pliku, na kt贸rym opierali艣my t艂umaczenie. Pomaga w tym wspomniana witryna doc.php.net. Na przyk艂ad zak艂adka "Outdated files" pokazuje, kt贸re z plik贸w przet艂umaczonych ju偶 na j臋zyk polski, wymagaj膮 aktualizacji. Podaje ona wtedy, o jaki hash jest oparte obecne t艂umaczenie, hash najnowszej angielskiej wersji, a tak偶e diff (wykaz zmian) mi臋dzy nimi. Hash najnowszej angielskiej wersji musimy umie艣ci膰 w polu EN-Revision wy偶ej wspomnianego komentarza.

Podobnie ma si臋 sprawa przy t艂umaczeniu nowych stron, przechodzimy do sekcji "Untranslated files" http://doc.php.net/revcheck.php?p=missfiles&lang=pl, wybieramy katalog na g贸rze, po czym widzimy, jakie pliki nie zosta艂y przet艂umaczone i jaki jest ich obecny hash commita w angielskiej wersji manuala. Wtedy do naszego nowego t艂umaczenia dodajemy komentarz jak powy偶ej, a podany na stronie hash umieszczamy jako warto艣膰 EN-Revision.

Uwaga: informacje na stronie doc.php.net s膮 aktualizowane co cztery godziny. Czasy ostatniej aktualizacji, podane tam w stopce, s膮 w UTC.

Je偶eli chodzi o pole Maintainer to przy aktualizacji t艂umacze艅 zasadniczo nie zmieniamy go. W wypadku nowych t艂umacze艅 mo偶emy tam poda膰 kt贸r膮艣 z istniej膮cych ju偶 warto艣ci lub, je艣li bierzemy ju偶 cz臋stszy udzia艂 w t艂umaczeniu na j. polski, pokusi膰 si臋 o "stworzenie" w艂asnego nicku. Nie wymaga to 偶adnej rejestracji, a jedynie dodania wpisu do pliku translation.xml, znajduj膮cego si臋 w g艂贸wnym katalogu tego repozytorium.

T艂umaczenie

Pliki XML powinny u偶ywa膰 wci臋膰 o szeroko艣ci jednej spacji. W tym repozytorium do艂膮czono plik .editorconfig, wi臋c je艣li u偶ywasz edytora, kt贸ry wspiera ten standard (bezpo艣rednio lub przez wtyczki), to powinno to zosta膰 wykryte automatycznie.

T艂umacz膮c pliki, warto zadba膰 o to, aby tekst by艂 podzielony na nowe linie w tych samych miejscach, co angielski pierwowz贸r. Bardzo u艂atwia to p贸藕niejsz膮 analiz臋 diff贸w na doc.php.net, a wi臋c i aktualizacj臋 t艂umacze艅. Wiadomo, 偶e nie zawsze jest to mo偶liwe, bo cz臋sto szyk zdania w j臋zyku polskim jest zupe艂nie inny ni偶 w angielskim, ale warto dba膰 o to tam, gdzie to mo偶liwe.

S艂owniczek

Poni偶ej zamieszczono list臋 kilku z cz臋艣ciej wyst臋puj膮cych i mniej oczywistych t艂umacze艅, na kt贸re 艂atwo si臋 natkn膮膰 w dokumentacji PHP.

Uwaga: 偶adna z os贸b bior膮cych udzia艂 w pracach nad polsk膮 wersj膮 podr臋cznika PHP nie jest zawodowym t艂umaczem. Pewne frazy mo偶na zapewne przet艂umaczy膰 lepiej, wi臋c sugestie s膮 mile widziane. Dobrze by艂oby jednak zadba膰 o sp贸jno艣膰, wi臋c do momentu osi膮gni臋cia ewentualnego konsensusu w sprawie nowego t艂umaczenia, stosujmy si臋 do tych, kt贸re ju偶 s膮 u偶ywane w polskiej wersji i zosta艂y wymienione poni偶ej.

Angielski wyraz lub wyra偶enie Polskie t艂umaczenie Komentarz
coercive typing lu藕ne typowanie Odnosi si臋 do trybu, w kt贸rym dzia艂a system typ贸w PHP (strict types vs. coercive typing); prawdopodobnie jest to dalekie od poprawnego t艂umaczenia
constructor property promotion automatyczne tworzenie w艂a艣ciwo艣ci Pomimo wielu poszukiwa艅 nie znalaz艂em 偶adnego t艂umaczenia w polskim internecie. To tylko moja radosna tw贸rczo艣膰, jestem otwarty na lepsze propozycje
first class callable syntax Obs艂uga callable przy u偶yciu dedykowanej sk艂adni (first-class) Poda艂em najbardziej rozbudowane t艂umaczenie, u偶ywane np. jako pe艂en nag艂贸wek opisuj膮cy t臋 funkcjonalno艣膰. Oczywi艣cie w wielu kontekstach wystarczy kr贸tsza forma, np. "dedykowana sk艂adnia"
handler funkcja obs艂ugi
intersection types typy przecinaj膮ce si臋? Bardzo mo偶liwe, 偶e lepiej po prostu tego nie t艂umaczy膰. Na razie dorzucam zawsze oryginalny termin w nawiasie
Locale settings Ustawienia regionalne (locale) Jako i偶 nie ma powszechnie u偶ywanego t艂umaczenia na j. polski to zawieramy te偶 oryginalne s艂贸wko, aby u艂atwi膰 np. Googlowanie
locale-dependent / locale-specific z uwzgl臋dnieniem ustawie艅 regionalnych (locale)
locale-independent bez uwzgl臋dnienia ustawie艅 regionalnych (locale)
null-coalescing operator - Nie jest mi znane 偶adne t艂umaczenie, tym bardziej 偶adne powszechnie zrozumia艂e
property w艂a艣ciwo艣膰 W kontek艣cie w艂a艣ciwo艣ci klas
scope zasi臋g W kontek艣cie zmiennych
string ci膮g znak贸w Ewentualnie 艂a艅cuch znak贸w, je艣li gdzie艣 chcemy unikn膮膰 powt贸rze艅
trait, traits trait, traity Brak t艂umaczenia, jedynie polska odmiana
type juggling dopasowywanie typ贸w Dos艂owne t艂umaczenie "偶onglowanie typami" nie istnieje nigdzie w wynikach Google, wi臋c "dopasowywanie typ贸w" przynajmniej daje okazj臋 zrozumie膰 o czym mowa
variable variables zmienne zmiennych
will generate deprecation notice wygeneruje komunikat <constant>E_DEPRECATED</constant>
<constant>E_WARNING</constant> is raised generowane jest ostrze偶enie (<constant>E_WARNING</constant>)
<parameter>foo</parameter> Parametr <parameter>foo</parameter> Poprzedzi膰 s艂owem "parametr" przynajmniej przy pierwszym opisywaniu danego parametru na danej stronie. W przeciwnym razie dostajemy mieszkank臋 polskiego i angielskiego, kt贸ra nie zawsze jest zrozumia艂a
<parameter>foo</parameter> is nullable now Parametr `foo dopuszcza teraz &null;
<function>bar</function> example Przyk艂ad u偶ycia <function>bar</function> W tytu艂ach wi臋kszo艣ci przyk艂ad贸w
&array; <link linkend="language.types.array">Tablica</link> Nie zawsze warto t艂umaczy膰, patrz pkt. 4 poni偶ej
&bool; <link linkend="language.types.bool">Warto艣膰 logiczna</link> Nie zawsze warto t艂umaczy膰, patrz pkt. 4 poni偶ej
&float; <link linkend="language.types.float">Liczba zmiennoprzecinkowa</link> Nie zawsze warto t艂umaczy膰, patrz pkt. 4 poni偶ej
&integer; <link linkend="language.types.integer">Liczba</link> Czasami te偶 "liczba ca艂kowita". Nie zawsze warto t艂umaczy膰, patrz pkt. 4 poni偶ej
&object; <link linkend="language.types.object">Obiekt</link> Nie zawsze warto t艂umaczy膰, patrz pkt. 4 poni偶ej
&resource; <link linkend="language.types.resource">Zas贸b</link> Nie zawsze warto t艂umaczy膰, patrz pkt. 4 poni偶ej
&string; <link linkend="language.types.string">Ci膮g znak贸w</link> Nie zawsze warto t艂umaczy膰, patrz pkt. 4 poni偶ej

Inne porady dot. t艂umaczenia

  1. Nie nale偶y si臋 ba膰 zmian szyku zdania. Zbyt dos艂owne przek艂adanie szyku zdania z angielskiego jest chyba najcz臋stszym powodem, dla kt贸rego polska tre艣膰, mimo i偶 zrozumia艂a, jest mocno nienaturalna w odbiorze.
  2. <refpurpose> czyli jednozdaniowy opis na g贸rze strony funkcji t艂umaczymy w trybie oznajmuj膮cym, czyli np. "Pobiera obecn膮 dat臋", a nie "Pobierz obecn膮 dat臋"
  3. Odpowiedniki wielu angielskich wyra偶e艅, np. As of PHP X, Prior to PHP X, czy however, nie maj膮 po sobie obowi膮zkowego przecinka w j臋zyku polskim
  4. Je艣li chodzi o encje reprezentuj膮ce link do opisu typu danych (np. &array; czy &string;) to nie zawsze jest konieczno艣膰 linkowania ich do konkretnej strony. Ze wzgl臋du na brak konieczno艣ci t艂umaczenia i odmiany tych wyraz贸w w j. angielskim, te encje s膮 u偶ywane znacznie cz臋艣ciej ni偶 jest to niezb臋dne
    1. Ponadto ci臋偶ko tutaj o regu艂臋, ale nie widz臋 konieczno艣ci ka偶dorazowego t艂umaczenia np. "string" na "ci膮g znak贸w". W tych czasach nazwy typ贸w s膮 raczej zrozumia艂e nawet dla ludzi niepos艂uguj膮cych si臋 j. angielskim. Osobi艣cie staram si臋 przet艂umaczy膰 nazw臋 typu przynajmniej raz na stronie, a potem nie mam problemu z pozostawieniem angielskiej wersji

Praca z git

Przygotuj jak膮艣 ilo艣膰 zmian. Mo偶esz zaj膮膰 si臋 jednym lub kilkunastoma plikami, ale zalecane jest, aby na pocz膮tek bra膰 mniejsze ilo艣ci plik贸w. W ten spos贸b b臋dzie mniej do ewentualnej poprawki po procesie code review. P贸藕niej mo偶na stopniowo zwi臋ksza膰 ilo艣膰 zmian, wraz z nabieraniem do艣wiadczenia ...cho膰 te偶 bez przesady ze zmianami w jednym pull reque艣cie, 偶eby przegl膮danie zmian nie trwa艂o wiek贸w, bo to mo偶e by膰 demotywuj膮ce :)

Opisy commit贸w tworzymy w j臋zyku angielskim, cho膰by ze wzgl臋du na to, 偶e pewne zmiany struktury s膮 wykonywane przez ludzi z r贸偶nych kraj贸w dla wszystkich t艂umacze艅 jednocze艣nie, tak wi臋c w ten prosty spos贸b znacz膮co u艂atwiamy prac臋 komukolwiek spoza Polski.

Po przygotowaniu zmian w forku nale偶y otworzy膰 pull request do repozytorium php/doc-pl, a nast臋pnie poczeka膰 na przejrzenie i zatwierdzenie zmian. Najlepiej zapozna膰 si臋 z ca艂膮 sekcj膮 "Propose changes" w spisie tre艣ci wy艣wietlanym po lewej stronie, po otwarciu powy偶szego linku. Mo偶na te偶 oczywi艣cie poszuka膰 materia艂贸w w j臋zyku polskim na ten temat.

Obecny stan polskiego t艂umaczenia

M贸wi膮c w wielkim skr贸cie: gorsza wiadomo艣膰 jest taka, 偶e polskie t艂umaczenie nie jest obecnie widoczne na php.net. Znacznie lepsza wiadomo艣膰 to taka, 偶e polskie t艂umaczenie jest jednocze艣nie w najlepszym stanie od przynajmniej o艣miu lat i 偶e w perspektywie oko艂o miesi膮ca (tj. okolice czerwca, ewentualnie lipca 2024) powinno si臋 to zmieni膰.

Polskie t艂umaczenie nie ma mo偶e najwi臋kszej ilo艣ci przet艂umaczonej tre艣ci (na maj 2024 jest to oko艂o 5% ca艂o艣ci), ale te偶 sam manual PHP jest gigantyczny. Wi臋kszo艣膰 zawarto艣ci manuala PHP to opisy rozszerze艅, w tym takich rzadko u偶ywanych lub niemal martwych rozszerze艅 PECL, z kt贸rych nikt nie korzysta i niemal nikt nie czyta ich dokumentacji. Polskie t艂umaczenie skupia si臋 w wi臋kszo艣ci na najcz臋艣ciej wykorzystywanych funkcjach i rozdzia艂ach podr臋cznika.

W po艂膮czeniu z faktem, 偶e polska wersja ma ma艂膮 ilo艣膰 zdeaktualizowanych t艂umacze艅, stawia nas to w naprawd臋 dobrej pozycji wyj艣ciowej w por贸wnaniu do wi臋kszo艣ci innych j臋zyk贸w. Nie wida膰 tego obecnie na doc.php.net, ale faktycznych t艂umacze艅 dokumentacji PHP jest oko艂o 30. Wi臋kszo艣膰 z nich po prostu jest w stanie tak z艂ym, 偶e zrezygnowano z cyklicznego analizowania ich statusu w tym narz臋dziu do momentu, gdy kto艣 zabra艂by si臋 za ich wskrzeszenie i zapewni艂 aktualne t艂umaczenie przynajmniej dla kilku setek plik贸w. Jest to co艣, czego polska wersja robi膰 nie musi :)

About

Polish translation of the PHP documentation

Resources

Stars

7 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages