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.
- Instalacja
- Zbuduj dokumentacj臋
- 艢ledzenie wersji
- T艂umaczenie
- Praca z git
- Obecny stan polskiego t艂umaczenia
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-basephp/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-enphp/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 (pozadoc-base) nie zaczynaj膮 si臋 oddoc-!
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=plJe偶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
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.
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.
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 |
- 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.
<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臋"- Odpowiedniki wielu angielskich wyra偶e艅, np.
As of PHP X,Prior to PHP X, czyhowever, nie maj膮 po sobie obowi膮zkowego przecinka w j臋zyku polskim - 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- 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
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.
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 :)