Skip to content

Commit

Permalink
First generated Polish draft
Browse files Browse the repository at this point in the history
  • Loading branch information
andre-wojtowicz committed Sep 27, 2020
1 parent 2a6d203 commit 1a1cceb
Show file tree
Hide file tree
Showing 32 changed files with 108 additions and 120 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,4 @@ index.sqlite
gline.js
gword.js
*.sublime*
*-eps-converted-to.pdf
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@
Python for Everybody (PY4E)
===========================

Polish translation progress
Polish translation
------------------

Generated `.pdf`, `.mobi` and `.mobi` are in [translations/PL](https://github.com/andre-wojtowicz/py4e-pl/tree/master/translations/PL).

| Element | Text | Code | Trinket | Index | Figures | Lectures | YouTube | Autograder | Review |
|------------------------|------|------|-------|-------|---------|----------|---------|------------|--------|
Expand Down Expand Up @@ -34,6 +37,7 @@ Polish translation progress
| "ciągi znaków" -> "napisy" | | | | | | | | | |
| Functions and methods with `()` | | | |
| Inline code within grave accents | | | |
| Fix URLs to be full URLs in `<...>` | | | |
| `unit.sh` check | | | |

(*) moved `book3/figs2` to `images`.
Expand Down
8 changes: 4 additions & 4 deletions book3/01-intro.mkd
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ chodziło na spacer po to by poprawić ich ogólny stan zdrowia", większość p
prawdopodobnie usłyszy: "bla bla bla *spacer* bla bla bla bla". Dzieje się tak,
ponieważ "spacer" jest zarezerwowanym słowem w języku komunikacji z psami.
Natomiast wiele wskazuje na to, że język komunikacji między ludźmi a kotami
nie ma zastrzeżonych słów^[<http://xkcd.com/231/>].
nie ma zastrzeżonych słów^[<https://xkcd.com/231/>].

Lista zastrzeżonych słów języka, w którym ludzie komunikują się z Pythonem,
zawiera następujące wyrazy:
Expand Down Expand Up @@ -262,7 +262,7 @@ nowe umiejętności językowe.
Zanim będziesz mógł rozmawiać z Pythonem, musisz najpierw zainstalować na swoim
komputerze oprogramowanie Pythona oraz nauczyć się jak uruchomić Pythona na
swoim komputerze. Jest to zbyt wiele szczegółów jak na ten rozdział, więc
sugeruję zajrzeć na stronę [www.py4e.com](http://www.py4e.com), gdzie umieściłem
sugeruję zajrzeć na stronę [www.py4e.com](https://www.py4e.com), gdzie umieściłem
szczegółowe instrukcje i zrzuty ekranu dotyczące konfiguracji i uruchamiania
Pythona w systemach komputerów Macintosh i Windows. W pewnym momencie znajdziesz
się w terminalu lub oknie wiersza poleceń i wpiszesz *python*, a interpreter
Expand Down Expand Up @@ -469,7 +469,7 @@ właściwie się dzieje?

Interpreter Pythona jest napisany w języku wysokiego poziomu o nazwie "C".
Możesz spojrzeć na rzeczywisty kod źródłowy interpretera Pythona, przechodząc na
stronę [www.python.org](http://www.python.org) i sprawdzając kod źródłowy. Tak
stronę [www.python.org](https://www.python.org) i sprawdzając kod źródłowy. Tak
więc Python sam w sobie jest programem i jest skompilowany do kodu maszynowego.
Gdy zainstalowałeś język Python na swoim komputerze (lub zainstalował go
sprzedawca), to skopiowałeś do systemu kopię programu Python przetłumaczonego do
Expand Down Expand Up @@ -567,7 +567,7 @@ techniki Pythona, które zostały użyte do stworzenia tego programu. Jesteś
użytkownikiem końcowym, więc po prostu korzystasz z programu i zachwycasz się
jego sprytem oraz oszczędnością ręcznego wysiłku. Po prostu wpisujesz powyższy
kod do pliku o nazwie *words.py* i go uruchamiasz, lub pobierasz kod źródłowy ze
strony <http://www.py4e.com/code3/> i uruchamiasz.
strony <https://pl.py4e.com/code3/> i uruchamiasz.

\index{program}

Expand Down
1 change: 1 addition & 0 deletions book3/02-variables.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Zmienne, wyrażenia i instrukcje
===============================

Expand Down
1 change: 1 addition & 0 deletions book3/03-conditional.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Wykonanie warunkowe
===================

Expand Down
1 change: 1 addition & 0 deletions book3/04-functions.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Funkcje
=========

Expand Down
1 change: 1 addition & 0 deletions book3/06-strings.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Ciągi znaków
============

Expand Down
6 changes: 3 additions & 3 deletions book3/07-files.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Pliki
=====

Expand Down Expand Up @@ -513,12 +514,11 @@ Innym problemem, na który możesz się natknąć, jest to, że różne systemy

\index{nowa linia}
\index{znak końca linii}

Więcej o tym problemie możesz poczytać na stronie [pl.wikipedia.org/wiki/Koniec_linii](https://pl.wikipedia.org/wiki/Koniec_linii). Dla większości systemów istnieją aplikacje do konwersji z jednego formatu na drugi. Możesz je znaleźć na stronie [en.wikipedia.org/wiki/Newline](https://en.wikipedia.org/wiki/Newline) w sekcji "Conversion between newline formats". Oczywiście możesz też samodzielnie napisać taki konwerter.

\index{kodowanie pliku}
\index{plik!kodowanie}

Więcej o tym problemie możesz poczytać na stronie <https://pl.wikipedia.org/wiki/Koniec_linii>. Dla większości systemów istnieją aplikacje do konwersji z jednego formatu na drugi. Możesz je znaleźć na stronie <https://en.wikipedia.org/wiki/Newline> w sekcji "Conversion between newline formats". Oczywiście możesz też samodzielnie napisać taki konwerter.

Słowniczek
----------

Expand Down
1 change: 1 addition & 0 deletions book3/08-lists.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Listy
=====

Expand Down
7 changes: 4 additions & 3 deletions book3/09-dictionaries.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Słowniki
========

Expand Down Expand Up @@ -388,12 +389,12 @@ Sprawdź podsumowania i typy

Częstą przyczyną błędów czasu wykonania jest wartość, która nie jest właściwego typu. Do debugowania tego typu błędów często wystarczy wydrukować typ wartości.

Napisz mechanizm do samokontroli
: Czasami możesz napisać kod do automatycznego sprawdzania błędów. Na przykład, jeśli obliczasz średnią z listy liczb, możesz sprawdzić, czy wynik nie jest większy od największego elementu na liście lub mniejszy od najmniejszego. Nazywa się to "sprawdzaniem poczytalności" (ang. sanity check), ponieważ wykrywa ono wyniki, które są "zupełnie nielogiczne".

\index{sprawdzenie poczytalności}
\index{sprawdzenie spójności}

Napisz mechanizm do samokontroli
: Czasami możesz napisać kod do automatycznego sprawdzania błędów. Na przykład, jeśli obliczasz średnią z listy liczb, możesz sprawdzić, czy wynik nie jest większy od największego elementu na liście lub mniejszy od najmniejszego. Nazywa się to "sprawdzaniem poczytalności" (ang. sanity check), ponieważ wykrywa ono wyniki, które są "zupełnie nielogiczne".

Inny rodzaj sprawdzenia porównuje wyniki dwóch różnych obliczeń, tak aby sprawdzić czy są one spójne. Nazywa się to "sprawdzaniem spójności" (ang. consistency check).

Ładne wyświetlenie wyniku
Expand Down
1 change: 1 addition & 0 deletions book3/10-tuples.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Krotki
======

Expand Down
1 change: 1 addition & 0 deletions book3/11-regex.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Wyrażenia regularne
===================

Expand Down
1 change: 1 addition & 0 deletions book3/12-network.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Programy sieciowe
=================

Expand Down
9 changes: 5 additions & 4 deletions book3/13-web.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Korzystanie z usług sieciowych
==============================

Expand Down Expand Up @@ -235,7 +236,7 @@ Usługa geokodowania jest bezpłatna, ale ograniczona ilościowo, więc w aplika

Możesz zapoznać się z dokumentacją online dotyczącą tej usługi^[<https://nominatim.org/release-docs/develop/api/Search/>], ale jest ona na tyle prosta, że możesz ją nawet przetestować za pomocą przeglądarki, wpisując w niej następujący adres URL:

[`https://nominatim.openstreetmap.org/search.php?q=Ann%20Arbor%2C%20MI&format=geojson&limit=1`](https://nominatim.openstreetmap.org/search.php?q=Ann%20Arbor%2C%20MI&format=geojson&limit=1)
<https://nominatim.openstreetmap.org/search.php?q=Ann%20Arbor%2C%20MI&format=geojson&limit=1>

\index{GeoJSON}

Expand All @@ -254,7 +255,7 @@ Wynik działania programu jest następujący (część zwróconych danych JSON z
~~~~
$ python3 geojson.py
Podaj nazwę miejsca: Ann Arbor, MI
Pobieranie https://nominatim.openstreetmap.org/search.php?q=Ann+Arbor%2C+MI&format=geojson&limit=1
Pobieranie https://nominatim.openstreetmap.org/search.php?q=...
Pobrano 587 znaków
~~~~

Expand All @@ -274,7 +275,7 @@ Pobrano 587 znaków
"category": "place",
"type": "city",
"importance": 0.837069344370284,
"icon": "https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png"
"icon": "https://nominatim.openstreetmap.org/..."
},
"bbox": [
-83.8912291,
Expand Down Expand Up @@ -302,7 +303,7 @@ Podaj nazwę miejsca:

Możesz pobrać [pl.py4e.com/code3/geoxml.py](https://pl.py4e.com/code3/geoxml.py), aby sprawdzić wariant XML w API geokodowania OpenStreetMap.

**Ćwiczenie 1: Zmień** [`geojson.py`**`](https://pl.py4e.com/code3/geojson.py) **lub** [`geoxml.py`](https://pl.py4e.com/code3/geoxml.py) **w celu wypisania nazwy stanu z pobranych danych (jeżeli podane miejsce jest w USA). Dodaj sprawdzanie błędów, tak aby Twój program nie wyświetlał danych z mechanizmu traceback w momencie gdy w danych nie ma nazwy stanu. Gdy kod już zacznie działać, wyszukaj "Atlantic Ocean" i upewnij się, że obsługuje on lokalizacje, które nie znajdują się w żadnym kraju.**
**Ćwiczenie 1: Zmień** [`geojson.py`](https://pl.py4e.com/code3/geojson.py) **lub** [`geoxml.py`](https://pl.py4e.com/code3/geoxml.py) **w celu wypisania nazwy stanu z pobranych danych (jeżeli podane miejsce jest w USA). Dodaj sprawdzanie błędów, tak aby Twój program nie wyświetlał danych z mechanizmu traceback w momencie gdy w danych nie ma nazwy stanu. Gdy kod już zacznie działać, wyszukaj "Atlantic Ocean" i upewnij się, że obsługuje on lokalizacje, które nie znajdują się w żadnym kraju.**

Aplikacja nr 2: Twitter
-----------------------
Expand Down
1 change: 1 addition & 0 deletions book3/14-objects.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Programowanie obiektowe
=======================

Expand Down
11 changes: 6 additions & 5 deletions book3/15-database.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Korzystanie z baz danych i języka SQL
=====================================

Expand All @@ -15,7 +16,7 @@ Podobnie jak słownik, oprogramowanie bazodanowe jest zaprojektowane tak, aby do

Istnieje wiele różnych systemów bazodanowych, które są wykorzystywane do wielu różnych celów, w tym: Oracle, MySQL, Microsoft SQL Server, PostgreSQL i SQLite. W tej książce skupimy się na SQLite, ponieważ jest to bardzo popularna baza danych i jest już wbudowana w Pythona. SQLite jest przeznaczony do bycia *wbudowanym* (*osadzonym*) w innych aplikacjach, tak aby zapewnić obsługę bazy danych w obrębie tych aplikacji. Na przykład, przeglądarka Firefox również korzysta wewnętrznie z bazy danych SQLite, podobnie jak wiele innych aplikacji.

<http://sqlite.org/>
<https://sqlite.org/>

SQLite doskonale nadaje się do rozwiązywania niektórych informatycznych problemów z zarządzaniem danymi, takich jak robot internetowy do zbierania danych z Twittera, który opiszemy w tym rozdziale.

Expand Down Expand Up @@ -72,7 +73,7 @@ Kiedy w bazie danych tworzymy *tabelę*, to musimy z wyprzedzeniem podać nazwę

Możesz zapoznać się z różnymi typami danych obsługiwanymi przez SQLite pod następującym adresem URL:

<http://www.sqlite.org/datatypes.html>
<https://www.sqlite.org/datatypes.html>

Zdefiniowanie z góry struktury dla Twoich danych może się początkowo wydawać niewygodne, ale zyskiem z tego jest szybkie uzyskiwanie dostępu do Twoich danych, nawet jeśli baza danych zawiera ich dużą ilość.

Expand Down Expand Up @@ -256,7 +257,7 @@ Podsumowując, przy pierwszym uruchomieniu programu i podaniu konta Twittera, pr

~~~~
Podaj nazwę konta na Twitterze lub wprowadź 'koniec': drchuck
Pobieranie http://api.twitter.com/1.1/friends ...
Pobieranie https://api.twitter.com/1.1/friends ...
(...)
Nowe konta= 20 widziane ponownie= 0
Podaj nazwę konta na Twitterze lub wprowadź 'koniec': koniec
Expand Down Expand Up @@ -288,11 +289,11 @@ W tym momencie nasza baza danych odzwierciedla pobieranie danych o znajomych z n

~~~~
Podaj nazwę konta na Twitterze lub wprowadź 'koniec':
Pobieranie http://api.twitter.com/1.1/friends ...
Pobieranie https://api.twitter.com/1.1/friends ...
(...)
Nowe konta= 18 widziane ponownie= 2
Podaj nazwę konta na Twitterze lub wprowadź 'koniec':
Pobieranie http://api.twitter.com/1.1/friends ...
Pobieranie https://api.twitter.com/1.1/friends ...
(...)
Nowe konta= 17 widziane ponownie= 3
Podaj nazwę konta na Twitterze lub wprowadź 'koniec': koniec
Expand Down
1 change: 1 addition & 0 deletions book3/16-viz.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Wizualizacja danych
===================

Expand Down
16 changes: 9 additions & 7 deletions book3/A0-preface.mkd
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Podziękowania autorskie
Historia wydań
--------------

* 2020-09-27 Pierwsza wersja robocza polskiej wersji językowej
* 2016-07-05 Pierwsza kompletna wersja Pythona 3.0
* 2015-12-20 Pierwsza wstępna konwersja do Pythona 3.0

Expand All @@ -30,13 +31,6 @@ O tym co autor uważa za komercyjne i niekomercyjne wykorzystanie tego materiał
Przedmowa
=========

Informacja dotycząca polskiego wydania
--------------------------------------

Książka "Python dla wszystkich", w odniesieniu do swojego oryginału "Python for Everybody", jest nie tylko jej tłumaczeniem, ale posiada również szereg poprawek, rozwinięć i nowych materiałów.

W rozdziale 7 dodano sekcję o przetwarzaniu plików zawierających polski tekst. Rozdziały 13 i 16 korzystają z usługi Nominatim dostarczanej przez OpenStreetMap zamiast z płatnego GoogleAPI. Skorowidz został poprawiony, usunięto zbędne odniesienia oraz dodano nowe w celu łatwiejszego wyszukiwania treści. W tekście dodano przypisy w celu rozjaśnienia polskiej terminologii. Na stronie internetowej, będącej uzupełnieniem tej książki, rozwinięto sekcję dotyczącą korzystania z Pythona pod Windowsem przy użyciu PowerShella. W kodach programów nie tłumaczono nazw zmiennych - jest to pewna ogólna konwencja programistyczna, ktora powinna również pomóc w sprawniejszym operowaniu pojęciami programistycznymi np. podczas wyszukiwania w internecie treści na zadany problem.

Remiksowanie otwartej książki
-----------------------------

Expand Down Expand Up @@ -73,3 +67,11 @@ Ann Arbor, MI, USA\

Charles Severance zajmuje stanowisko Clinical Associate Professor w School of Information na Uniwersytecie Michigan.

Informacja dotycząca polskiego wydania
--------------------------------------

Książka "Python dla wszystkich", w odniesieniu do swojego oryginału "Python for Everybody", jest nie tylko jej tłumaczeniem, ale posiada również szereg poprawek, rozwinięć i nowych materiałów.

W rozdziale 7 dodano sekcję o przetwarzaniu plików zawierających polski tekst. Rozdziały 13 i 16 korzystają z usługi Nominatim dostarczanej przez OpenStreetMap zamiast z płatnego GoogleAPI. Indeks został poprawiony, usunięto zbędne odniesienia oraz dodano nowe w celu łatwiejszego wyszukiwania treści. W tekście dodano przypisy w celu rozjaśnienia polskiej terminologii. W kodach programów nie tłumaczono nazw zmiennych - jest to pewna ogólna konwencja programistyczna, ktora powinna również pomóc w sprawniejszym operowaniu pojęciami programistycznymi np. podczas wyszukiwania w internecie treści na zadany problem.

Na stronie internetowej, będącej uzupełnieniem tej książki, rozwinięto sekcję dotyczącą korzystania z Pythona pod Windowsem przy użyciu PowerShella.
1 change: 1 addition & 0 deletions book3/AA-contrib.mkd
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

Wsparcie i współpraca nad książką
=================================

Expand Down
3 changes: 2 additions & 1 deletion book3/AB-copyright.mkd
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@

Szczegóły dotyczące praw autorskich
===================================

Ten utwór jest objęty licencją Creative Commons
Uznanie autorstwa-Użycie niekomercyjne-Na tych samych warunkach 3.0 Unported.
Licencja jest dostępna pod adresem

[creativecommons.org/licenses/by-nc-sa/3.0/](https://creativecommons.org/licenses/by-nc-sa/3.0/).
[https://creativecommons.org/licenses/by-nc-sa/3.0/](https://creativecommons.org/licenses/by-nc-sa/3.0/)

Wolałbym udostępniać książkę na mniej restrykcyjnej licencji CC-BY-SA. Ale niestety istnieje kilka pozbawionych skrupułów organizacji, które szukają i znajdują książki z wolnymi licencjami, a następnie publikują i sprzedają praktycznie niezmienione egzemplarze książek w usłudze druku na żądanie takich jak LuLu czy KDP. KDP (na szczęście) dodało zasady, która daje pierwszeństwo woli rzeczywistego posiadacza praw autorskich przed podmiotami nie posiadającymi praw autorskich, które próbują opublikować wolny utwór objęty licencją. Niestety, istnieje wiele usług druku na żądanie i bardzo niewiele z nich rozważa takie zasady jak przyjęte przez KDP.

Expand Down
48 changes: 2 additions & 46 deletions book3/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,60 +65,16 @@ Note that each build script plays nicely with the others and the represent paral
workflows. Please don't alter any of the python scripts that are used by another
script if you intend on contributing a new script.

## KindleGen
## Calibre

The `book.sh` script will generate the `x.mobi` file is KindleGen is in the path:

https://www.amazon.com/gp/feature.html?docId=1000765211

For Linux:

curl -O http://kindlegen.s3.amazonaws.com/kindlegen_linux_2.6_i386_v2_9.tar.gz
tar xfv kindlegen_linux_2.6_i386_v2_9.tar.gz
cp kindlegen /usr/local/bin
The `book.sh` script will generate the `x.mobi` file with Calibre.

## Createspace

Just take the `x.pdf` and `x.mobi` files and copy them into the `createspace`
folder, adding a date in the filename as version and then upload them to
createspace ins kindle publishing.

Chinese Version
---------------

If you are building the file for Chinese, touch the file

touch .chinese

So it runs LaTeX in a way to produce chinese documents.

Install the 'Noto Serif CJK SC' Font. Download from here and unzip:

https://noto-website.storage.googleapis.com/pkgs/NotoSerifCJK.ttc.zip

You should get a file like `NotoSerifCJK.ttc`.

On Mac copy the file to `~/Library/Fonts` and rebuild font cache:

sudo atsutil databases -remove

On Linux put them in `/usr/share/fonts`:

[ -d /usr/share/fonts/opentype ] || sudo mkdir /usr/share/fonts/opentype
[ -d /usr/share/fonts/opentype/noto ] || sudo mkdir /usr/share/fonts/opentype/noto
sudo mv NotoSerifCJK.ttc /usr/share/fonts/opentype/noto
sudo fc-cache -f -v

Strange Note: If you are running on a small memory linux system, you
may encounter the error "I can't write on file `test.pdf'" - turns
out this is `xelatex` running out of RAM - this fixed it.

dd if=/dev/zero of=/var/512mb.swap bs=1M count=512
mkswap /var/512mb.swap
swapon /var/512mb.swap

Ref: https://tex.stackexchange.com/questions/16801/xelatex-i-cant-write-on-file-test-pdf

## Contributing

If you want to contribute, feel free to fork the py4e
Expand Down
Loading

0 comments on commit 1a1cceb

Please sign in to comment.