diff --git a/LANGS.md b/LANGS.md
index c524e745ed7..40edb26daeb 100644
--- a/LANGS.md
+++ b/LANGS.md
@@ -1,6 +1,14 @@
-* [English](en)
-* [Polski](pl)
-* [Українська](uk)
-* [Español (beta)](es)
-* [Français (beta)](fr)
-* [Português-brasileiro (beta)](pt/)
+* [🇺🇸 English](en/)
+* [🇨🇿 Czech (beta)](cs/)
+* [🇪🇸 Español (beta)](es/)
+* [🇫🇷 Français](fr/)
+* [🇮🇹 Italian (beta)](it/)
+* [🇭🇺 Magyar (beta)](hu/)
+* [🇵🇱 Polski](pl/)
+* [🇵🇹 Português-brasileiro (beta)](pt/)
+* [🇹🇷 Türkçe (beta)](tr/)
+* [🇷🇺 Русский (beta)](ru/)
+* [🇺🇦 Українська](uk/)
+* [🇨🇳 简体中文](zh/)
+* [🇰🇵/🇰🇷 한국어 (beta)](ko/)
+* [🇸🇰 Slovak (beta)](sk)
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000000..fcdd44ca093
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,2 @@
+This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
+To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/
\ No newline at end of file
diff --git a/README.md b/README.md
index 6ddb2cd19ee..ebcd69bd8ea 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,15 @@
# Django Girls Tutorial
-This is the source code repository for the Django Girls Tutorial. Django Girls Tutorial is used on [tutorial.djangogirls.org](http://tutorial.djangogirls.org) so if you want to read it, please go there. If you want to contribute please do go further with this file.
+This is the source code repository for the Django Girls Tutorial. Django Girls Tutorial is used on [tutorial.djangogirls.org](http://tutorial.djangogirls.org) so if you want to read it, please go there. If you want to contribute please do go further with this file.
# How to contribute
-The Django Girls Tutorial is licensed under a *Creative Commons Attribution-ShareAlike 4.0* license. Everyone is free to add, edit and correct the tutorial.
+The Django Girls Tutorial is licensed under a [*Creative Commons Attribution-ShareAlike 4.0*](https://creativecommons.org/licenses/by-sa/4.0/) license. Everyone is free to add, edit and correct the tutorial.
# Editing basics
-The source code of the tutorial is [hosted on Github](http://github.com/DjangoGirls/tutorial). The Github [Fork & Pull workflow](https://help.github.com/articles/using-pull-requests) is used to accept and review changes.
+The source code of the tutorial is [hosted on Github](https://github.com/DjangoGirls/tutorial). The Github [Fork & Pull workflow](https://help.github.com/articles/using-pull-requests) is used to accept and review changes.
The tutorial uses the [GitBook](https://www.gitbook.io/) service for publishing its documentation. [See more information about how Gitbook works](http://help.gitbook.io/).
@@ -17,6 +17,8 @@ The tutorial is written in [Markdown mark up language](https://help.github.com/a
You can find any discussions about the contents of the tutorial on the [Github issue tracker](https://github.com/DjangoGirls/tutorial/issues).
+[Crowdin](https://crowdin.com/project/django-girls-tutorial) platform is used to manage translations. If you want to join an existing translation team or launch a new translation, send an email to the [translation managers](mailto:translations@djangogirls.org) or contact [support team](mailto:hello@djangogirls.org). If you want to propose some small changes or fix typos in existing translations, please create a Pull Request.
+
# Getting started and prerequisites
For contributing to the tutorial the following is needed to get started:
@@ -58,7 +60,11 @@ Either use the Github app for your operating system (mentioned above) or `git` c
git clone git@github.com:yourgithubusername/tutorial.git
-Download the [Gitbook Editor](https://github.com/GitbookIO/editor/releases) app to your computer.
+Then, create a branch for your new changes to sit in. It helps to call the branch something related to the changes you are going to make.
+
+ git checkout -b contributing
+
+Download the [Gitbook Editor](https://www.gitbook.com/editor) app to your computer.
Then you can open the tutorial in Gitbook Editor (*File* > *Open book*).
@@ -90,8 +96,8 @@ Example:
Total 5 (delta 1), reused 0 (delta 0)
To git@github.com:miohtama/tutorial.git
b37ca59..fe36152 contributing -> contributing
-
-If you don't want to download the Gitbook Editor app you can also go to the [Gitbook website](http://gitbook.com), sign up for free and work directly in your browser.
+
+If you don't want to download the Gitbook Editor app you can also go to the [Gitbook website](https://gitbook.com), sign up for free and work directly in your browser.
# Making a pull request
@@ -111,5 +117,4 @@ Github emails will notify you for the follow up process.
GitHub has an excellent [documentation](https://help.github.com/). Check it out if you need help!
-For further questions please [contact DjangoGirls](http://djangogirls.org/).
-
+For further questions please [contact DjangoGirls](https://djangogirls.org/).
diff --git a/book.json b/book.json
index 409e2e2b75f..c667d875bff 100644
--- a/book.json
+++ b/book.json
@@ -1,25 +1,41 @@
- {
+{
+ "gitbook": ">=3.2.0",
"links": {
"sidebar": {
"Need help? Talk to us!": "https://gitter.im/DjangoGirls/tutorial"
}
},
-
+ "pdf": {
+ "fontSize": 14
+ },
"plugins": [
- "anchors@0.4.0", "ga@0.2.1", "richquotes@0.0.5", "edit-link@1.4.1"
+ "heading-anchors@1.0.3",
+ "ga@1.0.1",
+ "richquotes@0.0.7",
+ "github@2.0.0",
+ "language-picker",
+ "sidebar-ad",
+ "codeblock-label",
+ "sectionx"
],
"pluginsConfig": {
"ga": {
"token": "UA-51680040-3"
},
- "richquotes" : {
- "todos" : true
+ "richquotes": {
+ "default": false
+ },
+ "github": {
+ "url": "https://github.com/DjangoGirls/tutorial"
},
- "edit-link": {
- "base": "https://github.com/djangogirls/tutorial/edit/master",
- "label": "Edit This Page"
+ "language-picker": {
+ "grid-columns": 3
+ },
+ "sidebar-ad": {
+ "imageUrl": "https://cdn.shopify.com/s/files/1/0992/7712/products/codelikeagirl---mockup4_large.jpg",
+ "url": "https://store.djangogirls.org/",
+ "description": "💖 Support our work and buy a Django Girls t-shirt! ✨",
+ "btnText": "Get a t-shirt!"
}
- },
-
- "gitbook": "2.1.0"
+ }
}
diff --git a/cs/GLOSSARY.md b/cs/GLOSSARY.md
new file mode 100755
index 00000000000..3107893bace
--- /dev/null
+++ b/cs/GLOSSARY.md
@@ -0,0 +1,3 @@
+# editor zdrojového kódu
+
+Editor kódu je aplikace, která umožňuje uložit váš kód, takže bude možné vrátit se k němu později. Kde ho můžeš získat se dozvíš v [Kapitole editor kódu](./code_editor/README.md).
\ No newline at end of file
diff --git a/cs/README.md b/cs/README.md
new file mode 100755
index 00000000000..5ad33b27ddd
--- /dev/null
+++ b/cs/README.md
@@ -0,0 +1,53 @@
+# Django Girls Tutoriál
+[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/DjangoGirls/tutorial?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+> Tento návod je licencován pod Creative Commons Attribution-ShareAlike 4.0 mezinárodní licencí. Chcete-li zobrazit kopii této licence, navštivte https://creativecommons.org/licenses/by-sa/4.0/
+
+## Úvod
+
+Už jsi někdy měla pocit, že svět stále více a více používá technologie a ty zůstáváš nějak pozadu? Přemýšlela jsi někdy, jak vytvořit webové stránky, ale nikdy jsi neměla dostatek motivace začít? Přemýšlela jsi někdy, že svět softwaru je pro tebe příliš složitý na to, abys zkusila něco naprogramovat sama?
+
+Máme pro tebe dobrou zprávu! Programování není tak těžké, jak se zdá, a zde ti chceme ukázat, jak zábavné to může být.
+
+Tento návod tě magicky nepromění v programátora. Jestli chceš být dobrá programátorka, budeš potřebovat měsíce nebo dokonce roky učení a praxe. Ale chceme ti ukázat, že programování nebo tvorba webových stránek není tak složitá, jak se zdá. Budeme se snažit ti vysvětlit různé kousky a střípky tak jednoduše, jak dokážeme, aby ses necítila technologiemi zastrašena.
+
+Doufáme, že se nám podaří přiblížit ti tuto technologii tak, abys ji měla stejně ráda jako my!
+
+## Co se naučíš během kurzu?
+
+Po dokončení kurzu budeš mít jednoduchou, fungující webovou aplikaci: vlastní blog. Ukážeme ti, jak ho zprovoznit online tak, aby se ostatní mohli na tvoji práci podívat!
+
+Tvá aplikace bude (více či méně) vypadat takto:
+
+![Figure 0.1][2]
+
+ [2]: images/application.png
+
+> Pokud budeš procházet kurz sama bez učitele, který ti by ti pomáhal v případě, že narazíš na nějaký problém, máme pro tebe chat: [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/DjangoGirls/tutorial?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge). Požádali jsme kouče a předchozí účastníky kurzu, aby čas od času pomáhali ostatním s tímto kurzem. Neboj se zde zeptat na jakoukoliv otázku!
+
+OK, [začněme od začátku...][3]
+
+ [3]: ./how_the_internet_works/README.md
+
+## O kurzu a přispěvatelích
+
+Tento kurz je provozován organizací [DjangoGirls][4]. Pokud najdeš nějaké chyby, nebo chceš aktualizovat návod, prosím, [postupuj podle pokynů pro přispívající][5].
+
+ [4]: https://djangogirls.org/
+ [5]: https://github.com/DjangoGirls/tutorial/blob/master/README.md
+
+## Český překlad
+
+Původní DjangoGirls tutoriál přeložila do češtiny skupina dobrovolníků. Poděkování patří hlavně:
+Davidovi (dakf), Kristýně Kumpánové, Veronice Gabrielové, Tomáši Ehrlichovi,
+Aničce Jaegerové, Matějovi Stuchlíkovi, Filipovi Sivákovi a Juraji M. Bezručkovi.
+
+## Chtěla bys nám pomoci přeložit návod do jiných jazyků?
+
+V současné době jsou překlady provozovány na platformě crowdin.com na adrese:
+
+https://crowdin.com/project/django-girls-tutorial
+
+Pokud tvůj jazyk není uveden v seznamu na crowdin, prosím, [založ nový požadavek][6] pro přidání dalšího jazyka.
+
+ [6]: https://github.com/DjangoGirls/tutorial/issues/new
diff --git a/cs/SUMMARY.md b/cs/SUMMARY.md
new file mode 100755
index 00000000000..44793ad9d19
--- /dev/null
+++ b/cs/SUMMARY.md
@@ -0,0 +1,26 @@
+# Shrnutí
+
+* [Úvod](README.md)
+* [Instalace](installation/README.md)
+* [Jak funguje internet](how_the_internet_works/README.md)
+* [Úvod do příkazové řádky](intro_to_command_line/README.md)
+* [Instalace Pythonu](python_installation/README.md)
+* [Editor zdrojového kódu](code_editor/README.md)
+* [Úvod do Pythonu](python_introduction/README.md)
+* [Co je Django?](django/README.md)
+* [Instalace Django](django_installation/README.md)
+* [Tvůj první Django projekt!](django_start_project/README.md)
+* [Django modely](django_models/README.md)
+* [Django admin](django_admin/README.md)
+* [Nasazení!](deploy/README.md)
+* [Django URL](django_urls/README.md)
+* [Django views -- je čas začít tvořit!](django_views/README.md)
+* [Úvod do HTML](html/README.md)
+* [Django ORM (tvorba dotazů)](django_orm/README.md)
+* [Dynamická data v šablonách](dynamic_data_in_templates/README.md)
+* [Django šablony](django_templates/README.md)
+* [CSS - udělejte svou aplikaci hezčí](css/README.md)
+* [Rozšíření šablon](template_extending/README.md)
+* [Rozšíření vaší aplikace](extend_your_application/README.md)
+* [Django formuláře](django_forms/README.md)
+* [Co dál?](whats_next/README.md)
diff --git a/cs/code_editor/README.md b/cs/code_editor/README.md
new file mode 100755
index 00000000000..f91d7968087
--- /dev/null
+++ b/cs/code_editor/README.md
@@ -0,0 +1,7 @@
+# Editor zdrojového kódu
+
+Právě se chystáš napsat svůj první řádek kódu, takže je čas sáhnout po editoru kódu!
+
+> **Poznámka** Mohla jsi to udělat už dříve v kapitole o instalaci - jestli je to tak, prostě jen tuhle kapitolu přeskoč a vrhni se na další!
+
+{% include "/code_editor/instructions.md" %}
\ No newline at end of file
diff --git a/cs/code_editor/instructions.md b/cs/code_editor/instructions.md
new file mode 100755
index 00000000000..9666843aff6
--- /dev/null
+++ b/cs/code_editor/instructions.md
@@ -0,0 +1,31 @@
+Existuje mnoho různých editorů a z velké části se výběr scvrkává na osobní preference. Většina programátorům v Pythonu používá složité, ale mimořádně mocné IDE (integrovaná vývojová prostředí), například PyCharm. Pro začátečníka to může být pravděpodobně méně vhodné; naše doporučení jsou stejně mocná, ale mnohem jednodušší.
+
+Naše návrhy jsou napsané níže, ale neváhejte se zeptat svého kouče, jaké jsou jeho preference - poté bude i jednodušší získat od něj pomoc s prací v editoru.
+
+## Gedit
+
+Gedit je open-source editor. Je k dispozici zdarma pro všechny operační systémy.
+
+[Stáhnout si jej můžeš zde](https://wiki.gnome.org/Apps/Gedit#Download)
+
+## Sublime Text 3
+
+Sublime Text je velmi oblíbený editor s bezplatnou zkušební dobou. Lze jej snadno nainstalovat a používat. Je k dispozici pro všechny operační systémy.
+
+[Stáhnout si jej můžeš zde](https://www.sublimetext.com/3)
+
+## Atom
+
+Atom je velmi nový editor kódu vytvořen [GitHub](https://github.com/)em. Je zdarma, je open-source a má snadnou instalaci a snadné použití. Je k dispozici pro Windows, OS X a Linux.
+
+[Stáhnout si jej můžeš zde](https://atom.io/)
+
+## Proč jsme instalovali editor kódu?
+
+Možná přemýšlíš, proč instalujeme speciální editor kódu a proč raději nezvolíme něco jako Notepad nebo Word.
+
+První důvod je, že kód musí být **prostý text** a programy jako Word a Textedit ve skutečnosti produkují bohatý text (s fonty a formátováním), používají vlastní formáty jako [RTF (Rich Text Format)](https://en.wikipedia.org/wiki/Rich_Text_Format).
+
+Druhým důvodem je, že editory kódu se specializují na editaci kódu, takže mohou poskytovat užitečné funkce, jako je barevné zvýraznění kódu podle jeho významu nebo automatické ukončování uvozovek apod.
+
+Vše to uvidíme v akci později. Brzy ti přijde tvůj oblíbený editor kódu jako jeden z tvých nejlepších nástrojů :)
\ No newline at end of file
diff --git a/cs/css/README.md b/cs/css/README.md
new file mode 100755
index 00000000000..5c79c1a08a7
--- /dev/null
+++ b/cs/css/README.md
@@ -0,0 +1,296 @@
+# CSS - udělej svou aplikaci hezčí!
+
+Náš blog nevypadá stále dost pěkně, že? Je na čase ho udělat hezčí! Použijeme na to CSS.
+
+## Co je to CSS?
+
+CSS (neboli Cascading Style Sheets) je jazyk používaný pro popis vzhledu a formátování webové stránky. Je to značkovací jazyk (jako HTML). Ber ho jako make-up pro náš web ;).
+
+Nechceme ale zase začínat úplně od začátku, že? Opět použijeme něco, co již bylo vytvořeno jinými programátory a sdíleno na internetu pro použití zdarma. Vymýšlet znovu, co již před námi někdo vymyslel, to by nebyla žádná legrace.
+
+## Použijme Bootstrap!
+
+Bootstrap je jedním z nejpopulárnějších HTML a CSS frameworků pro vývoj pěkné webové stránky: https://getbootstrap.com/
+
+Byl napsán programátory, kteří pracovali pro Twitter a je nyní vyvíjeno dobrovolníky z celého světa.
+
+## Instalace Bootstrapu
+
+Chceš-li nainstalovat Bootstrap, je třeba přidat do `< head >` v souboru `.html` (`blog/templates/blog/post_list.html`):
+
+```html
+
+
+```
+
+To nepřidá žádné soubory do projektu. Jen to odkazuje na soubory, které existují na internetu. Jen do toho, otevři tvůj web a aktualizuj stránku. Tady to je!
+
+![Obrázek 14.1][1]
+
+ [1]: images/bootstrap1.png
+
+Hned to vypadá lépe!
+
+## Statické soubory v Djangu
+
+Konečně se podíváme zblízka na téma, které jsme již zmínili, **statické soubory**. Statické soubory jsou všechny naše CSS soubory a obrázky, které nejsou dynamické, takže jejich obsah není závislý na kontextu požadavku a budou stejné pro každého uživatele.
+
+### Kam umístit statické soubory pro Django
+
+Jak jsi viděla, když jsme spustili `collectstatic` na serveru, Django už ví, kde najít statické soubory pro vestavěnou aplikaci "admin". Teď jen musíme přidat nějaké statické soubory pro vlastní aplikaci, `blog`.
+
+Uděláš to tak, že vytvoříš složku s názvem `static` uvnitř aplikace blog:
+
+```
+ djangogirls
+ ├── blog
+ │ ├── migrations
+ │ └── static
+ └── mysite
+```
+
+Django automaticky najde všechny složky s názvem "static" uvnitř vašich složek aplikací, a bude moci využívat jejich obsahu jako statické soubory.
+
+## Tvůj první soubor CSS!
+
+Vytvoř soubor CSS, chceš-li na stránku www přidat svůj vlastní styl. Vytvoř nový adresář s názvem `css` uvnitř adresáře `static`. Vytvoř nový soubor s názvem `blog.css` uvnitř tohoto adresáře `css`. Připraveno?
+
+```
+ djangogirls
+ └─── blog
+ └─── static
+ └─── css
+ └─── blog.css
+```
+
+Čas k napsání nějakého CSS! Otevři soubor `blog/static/css/blog.css` v editoru kódu.
+
+Nepůjdeme příliš hluboko do přizpůsobení webu a učení o CSS, protože je to docela snadné, a můžeš se o tom dozvědět sama po tomto workshopu. Opravdu můžeme doporučit [Codeacademy HTML & CSS kurz][2] kde se dozvíš vše, co potřebuješ vědět, aby tvoje stránky s CSS vypadaly dobře.
+
+ [2]: https://www.codecademy.com/tracks/web
+
+Ale pojďme něco málo udělat. Možná bychom mohli změnit barvu našeho záhlaví? Pro interpretaci barev, počítače používají speciální kódy. Začínají `#` a následuje 6 písmen (A-F) a číslic (0-9). Kódy barev můžeš najít například zde: http://www.colorpicker.com/. Můžeš také použít [předdefinované barvy][3], `červená/red` a `zelená/green`.
+
+ [3]: http://www.w3schools.com/cssref/css_colornames.asp
+
+V souboru `blog/static/css/blog.css` přidej následující kód:
+
+```css
+ h1 a {
+ color: #FCA205;
+ }
+```
+
+`h1` je CSS selector. To znamená, že budeme aplikovat naše styly na jakýkoliv `a` element uvnitř `h1` (např. když máme v kódu něco jako: `< h1 >< href = "" > odkaz < /a >< / h1 >`). V takovém případě sdělujeme, že barvu elementu měníme na `#FCA205`, což je oranžová. Samozřejmě zde můžeš vložit vlastní barvu!
+
+V CSS souboru určujeme styly pro prvky v souboru HTML. Prvky jsou identifikovány pomocí názvu prvku (tj, `a`,`h1`, `body`), atributem `class` nebo atributem `id`. Třídy/Class a id jsou jména, které pojmenovávají samotný prvek. Třídy definují skupiny prvků a Id poukazují na konkrétní prvky. Například, následující tag může identifikovat pomocí CSS tag `a`, třídu `external_link` nebo id `link_to_wiki_page`:
+
+```html
+
+```
+
+Přečti si o [CSS selektorech ve w3schools][4].
+
+ [4]: http://www.w3schools.com/cssref/css_selectors.asp
+
+Pak je třeba také říct naší HTML šabloně, že jsme přidali nějaké CSS. Otevři soubor `blog/templates/blog/post_list.html` a přidej tento řádek na samý začátek:
+
+```html
+ {% load staticfiles %}
+```
+
+Právě nahráváme statické soubory :). Pak mezi `< head >` `a/< / head >`, za odkazy na soubory Bootstrap CSS (prohlížeč načte soubory v pořadí, ve kterém jsou zapsány, takže kód v našem souboru může přepsat kód v Bootstrap souborech), přidejte tento řádek:
+
+ html
+
+
+
+Právě jsi řekla naší šabloně, kde je umístěn náš soubor CSS.
+
+Soubor by měl nyní vypadat takto:
+
+```html
+ {% load staticfiles %}
+
+
+ Django Girls blog
+
+
+
+
+
+
+ {% endfor %}
+
+
+```
+
+OK, ulož soubor a aktualizuj stránky!
+
+![Obrázek 14.2][5]
+
+ [5]: images/color2.png
+
+Dobrá práce! Možná bychom také chtěli provzdušnit náš web a zvětšit okraj na levé straně? Pojďme to zkusit!
+
+```css
+ body {
+ padding-left: 15px;
+ }
+```
+
+Přidej toto do svého CSS souboru, ulož soubor a koukni se, jak to funguje!
+
+![Obrázek 14.3][6]
+
+ [6]: images/margin2.png
+
+Možná můžeme také chtít přizpůsobit písmo v našem záhlaví? Vlož mezi tag `< head >` v souboru `blog/templates/blog/post_list.html`:
+
+```html
+
+```
+
+Tento řádek bude importovat písmo s názvem *Lobster* z Google písem (https://www.google.com/fonts).
+
+Nyní přidej řádek `font-family: "Lobster";` do CSS souboru `blog/static/css/blog.css` uvnitř deklarace `h1` bloku (kód mezi závorkami `{` a `}`) a aktualizuj stránky:
+
+```css
+ h1 a {
+ color: #FCA205;
+ font-family: 'Lobster';
+ }
+```
+
+![Obrázek 14.3][7]
+
+ [7]: images/font.png
+
+Skvěle!
+
+Jak bylo uvedeno výše, CSS má koncept tříd, který v podstatě umožňuje pojmenovat části kódu HTML a styly aplikovat pouze na tyto části bez ovlivnění ostatních částí. Je to super užitečné, pokud máš dva div tagy, ale každý dělá něco jiného (jako záhlaví a příspěvek), takže nechceš, aby vypadaly stejně.
+
+Pokračuj a pojmenuj některé části kódu HTML. Přidáš třídu s názvem `page-header` do tvého `div` tagu, který obsahuje záhlaví, jako je tento:
+
+```html
+
+```
+
+Tyto soubory ulož a aktualizuj své webové stránky.
+
+![Obrázek 14.4][8]
+
+ [8]: images/final.png
+
+Woohoo! Vypadá to super, ne? Kód, který jsme vložili není opravdu tak těžký pochopit a měla bys být schopna pochopit jeho většinu, jen jeho čtením.
+
+Neobávej se trochu poupravit CSS a pokusit se změnit některé věci. Když něco rozbiješ, neboj se, můžeš jej vždy vrátit zpět!
+
+Mimochodem opravdu doporučujeme tento bezplatný online [Codeacademy HTML & CSS kurz][2] jako post-workshop úkol, naučíš se vše, co potřebuješ vědět, aby tvoje stránky byly hezčí s CSS.
+
+Připravena na další kapitolu?! :)
diff --git a/fr/css/images/images/bootstrap1.png b/cs/css/images/bootstrap1.png
similarity index 100%
rename from fr/css/images/images/bootstrap1.png
rename to cs/css/images/bootstrap1.png
diff --git a/fr/css/images/images/color2.png b/cs/css/images/color2.png
similarity index 100%
rename from fr/css/images/images/color2.png
rename to cs/css/images/color2.png
diff --git a/fr/css/images/images/final.png b/cs/css/images/final.png
similarity index 100%
rename from fr/css/images/images/final.png
rename to cs/css/images/final.png
diff --git a/fr/css/images/images/font.png b/cs/css/images/font.png
similarity index 100%
rename from fr/css/images/images/font.png
rename to cs/css/images/font.png
diff --git a/fr/css/images/images/margin2.png b/cs/css/images/margin2.png
similarity index 100%
rename from fr/css/images/images/margin2.png
rename to cs/css/images/margin2.png
diff --git a/cs/deploy/README.md b/cs/deploy/README.md
new file mode 100755
index 00000000000..bf4c84dd489
--- /dev/null
+++ b/cs/deploy/README.md
@@ -0,0 +1,317 @@
+# Nasazení!
+
+> **Poznámka:** Projití následující kapitoly, může být někdy trochu těžké. Vydrž a dokonči to; nasazení je důležitou součástí procesu vývoje webových stránek. Tato kapitola je umístěna uprostřed kurzu, aby ti tvůj kouč mohl pomoci s mírně složitějším procesem nasazení tvého webu online. To znamená, že stále můžeš dokončit kurz později sama, pokud ti dojde čas.
+
+Až dosud byly tvoje webové stránky k dispozici pouze ve tvém počítači, nyní se naučíš je nasadit! Nasazení je proces publikování aplikace na internetu, takže lidé konečně mohou najít a vidět tvou webovou aplikaci :).
+
+Jak jsi se dozvěděla, webové stránky musí být umístěny na serveru. Na internetu existuje mnoho poskytovatelů serverů. My budeme používat jednoho, který má relativně jednoduchý proces nasazení: [PythonAnywhere][1]. PythonAnywhere je zdarma pro malé aplikace, které nemají příliš mnoho návštěvníků, takže to pro tebe bude teď stačit.
+
+ [1]: https://pythonanywhere.com/
+
+Další externí službu, kterou budeme používa je [GitHub][2], což je hostingová služba pro zdrojové kódy. Na interntu existují i jiné služby, ale téměř všichni programátoři mají účet na GitHubu nyní ho budeš mít také!
+
+ [2]: https://www.github.com
+
+Budeme používat GitHub jako odrazový můstek k přesunu našeho kódu do a z PythonAnywhere.
+
+# Git
+
+Git je "systém pro správu verzí" používaný spoustou programátorů. Tento software může sledovat změny v souborech v průběhu času tak, že konkrétní verze můžeš později znovu zobrazit. Trochu jako funkce "sledování změn" v aplikaci Microsoft Word, ale mnohem silnější.
+
+## Instalace Git
+
+> **Poznámka:** Pokud jsi již prošla instalační kroky, není třeba se k tomu vracet - můžeš přeskočit k další části a začít vytvářet Git repozitář.
+
+{% include "/deploy/install_git.md" %}
+
+## Spuštění Git repositáře
+
+Git sleduje změny v sadě souborů v takzvaném úložišti kódu/repository (nebo zkráceně "repo"). Založme si jeden pro náš projekt. Otevři konzoli a v `djangogirls` adresáři spusť tyto příkazy:
+
+> **Poznámka:** Zkontroluj si svůj aktuální pracovní adresář pomocí `pwd` (OS x/Linux) nebo příkazem `cd` (Windows) před inicializací úložiště. Měla bys být ve složce `djangogirls`.
+
+```
+ $ git init
+ Initialized empty Git repository in ~/djangogirls/.git/
+ $ git config --global user.name "Your Name"
+ $ git config --global user.email you@example.com
+```
+
+Inicializace úložiště git je něco, co musíme udělat jednou za projekt (a nebudeš muset znovu zadávat uživatelské jméno a e-mailovou adresu).
+
+Git bude sledovat změny souborů a složek v tomto adresáři, ale jsou tam některé soubory, které chceme ignorovat. Uděláme to tak, že vytvoříš soubor s názvem `.gitignore` v základním adresáři. Otevři editor a vytvoř nový soubor s následujícím obsahem:
+
+```
+ *.pyc
+ __pycache__
+ myvenv
+ db.sqlite3
+ .DS_Store
+```
+
+A ulož ho jako `.gitignore` ve složce nejvyšší úrovně "djangogirls".
+
+> **Poznámka:** Tečka na začátku názvu souboru je důležitá! Pokud budeš mít jakékoliv potíže se vytvořením (například Macu se nelíbí vytvářet soubory, které začínají tečkou přes Finder), pak použij funkci "Uložit jako" v editoru, což je neprůstřelné.
+
+Je vhodné použít příkaz `git status` před použitím příkazu `git add` nebo vždy, když si nejste jisti, co se změnilo. To pomůže předejít jakýmkoliv překvapením, například přidání nesprávných souborů. Příkaz `git status` vrátí informace o všech souborech nesledovaných (untracked), upravených (modified) a připravených ke commitu (staged), stav větve a mnoho dalšího. Výstup by měl být podobný tomuto:
+
+```
+ $ git status
+ On branch master
+
+ Initial commit
+
+ Untracked files:
+ (use "git add ..." to include in what will be committed)
+ .gitignore
+ blog/
+ manage.py
+ mysite/
+
+ nothing added to commit but untracked files present (use "git add" to track)
+```
+
+A nakonec uložíme naše změny. Přejdi do konzole a spusť tyto příkazy:
+
+```
+ $ git add --all .
+ $ git commit -m "My Django Girls app, first commit"
+ [...]
+ 13 files changed, 200 insertions(+)
+ create mode 100644 .gitignore
+ [...]
+ create mode 100644 mysite/wsgi.py
+```
+
+## Přenesení našeho kódu na GitHub
+
+Přejdi na [GitHub.com][2] a zaregistruj si zdarma nový uživatelský účet. (Pokud jsi to již dříve ve workshopu udělala, tak to je skvělé!)
+
+Potom vytvoř nové úložiště, dej mu název "my-first-blog". Ponech zaškrtávací políčko "initialise with a README" nezašrkrtlé, ponechej prázdnou .gitignore možnost (to už jsme udělali ručně) a ponech licenci jako None.
+
+![][3]
+
+ [3]: images/new_github_repo.png
+
+> **Poznámka:** Název `my-first-blog` je důležitý – mohla by si vybrat něco jiného, ale použijeme ho ještě mnohokrát později a musela bys ho pokaždé nahrazovat. Tak je zřejmě snazší se držet názvu `my-first-blog`.
+
+Na další obrazovce se zobrazí clon URL tvého repo. Zvol verzi "HTTPS", zkopíruj jí, a za chvilku ji použijeme v terminálu:
+
+![][4]
+
+ [4]: images/github_get_repo_url_screenshot.png
+
+Teď potřebujeme připojit úložiště Git na tvém počítači s úložištěm na GitHub.
+
+Zadej následující příkaz do konzole (nahraď `< your-github-username >` uživatelským jménem, které jsi zadala, když jsi vytvořila svůj účet na GitHub, ale bez ostrých závorek):
+
+```
+ $ git remote add origin https://github.com//my-first-blog.git
+ $ git push -u origin master
+```
+
+Zadej své uživatelské jméno pro GitHub a heslo a měla bys vidět něco takového:
+
+```
+ Username for 'https://github.com': hjwp
+ Password for 'https://hjwp@github.com':
+ Counting objects: 6, done.
+ Writing objects: 100% (6/6), 200 bytes | 0 bytes/s, done.
+ Total 3 (delta 0), reused 0 (delta 0)
+ To https://github.com/hjwp/my-first-blog.git
+ * [new branch] master -> master
+ Branch master set up to track remote branch master from origin.
+```
+
+
+
+Tvůj kód je nyní na GitHubu. Můžeš jít a mrknout se na to! Zjistíš, že je v dobré společnosti - [Django][5], [Django girls tutorial][6] a mnoha dalších velkých open source software projektů, které také hostí svůj kód na GitHubu :)
+
+ [5]: https://github.com/django/django
+ [6]: https://github.com/DjangoGirls/tutorial
+
+# Vytvoření našeho blogu na PythonAnywhere
+
+> **Poznámka:** Možná, že jsi vytvořila účet PythonAnywhere již dříve, během instalačních kroků - pokud ano, nemusíš to nyní dělat znovu.
+
+{% include "/deploy/signup_pythonanywhere.md" %}
+
+## Natáhnutí našeho kódu na PythonAnywhere
+
+Když jsi se zaregistrovala na PythonAnywhere, budeš přesměrována na dashboard nebo na stránku "Konzole". Zvol možnost spustit konzoli "Bash" – je to PythonAnywhere verze konzole, stejná jako na tvém počítači.
+
+> **Poznámka:** PythonAnywhere je založen na Linuxu, takže pokud jsi na Windows, konzole bude vypadat trochu jinak, než ta, která je na tvém počítači.
+
+Pojďme natáhnout náš kód z GitHubu na PythonAnywhere vytvořením "klonu" našeho repo. Zadej následující příkaz do konzole na PythonAnywhere (nezapomeň používat GitHub uživatelské jméno namísto ``):
+
+```
+ $ git clone https://github.com//my-first-blog.git
+```
+
+Tento příkaz nahraje kopii tvého kódu, na PythonAnywhere. Podívej se zadáním `tree my-first-blog`:
+
+```
+ $ tree my-first-blog
+ my-first-blog/
+ ├── blog
+ │ ├── __init__.py
+ │ ├── admin.py
+ │ ├── migrations
+ │ │ ├── 0001_initial.py
+ │ │ └── __init__.py
+ │ ├── models.py
+ │ ├── tests.py
+ │ └── views.py
+ ├── manage.py
+ └── mysite
+ ├── __init__.py
+ ├── settings.py
+ ├── urls.py
+ └── wsgi.py
+```
+
+### Vytvoření virtualenv na PythonAnywhere
+
+Stejně jako na tvém počítači, můžeš vytvořit virtualenv na PythonAnywhere. V Bash konzoli zadej postupně následující příkazy:
+
+```
+ $ cd my-first-blog
+
+ $ virtualenv --python=python3.4 myvenv
+ Running virtualenv with interpreter /usr/bin/python3.4
+ [...]
+ Installing setuptools, pip...done.
+
+ $ source myvenv/bin/activate
+
+ (mvenv) $ pip install django whitenoise
+ Collecting django
+ [...]
+ Successfully installed django-1.8.2 whitenoise-2.0
+```
+
+> **Poznámka:** Krok `pip install` může trvat několik minut. Trpělivost, trpělivost! Ale pokud to trvá déle než 5 minut, něco není v pořádku. Zeptej se svého kouče.
+
+
+
+### Shromažďování statických souborů.
+
+Byla jsi zvědavá, co bylo to "whitenoise" vlastně zač? Je to nástroj pro obsluhu takzvaných "statických souborů". Statické soubory jsou soubory, které se pravidelně nemění nebo nespouštějí programový kód, například soubory HTML nebo CSS. Na serverech fungují odlišně než na tvém osobním počítači a proto potřebujeme nástroj jako "whitenoise" k jejich obsloužení.
+
+O statických souborech zjistíme trochu více později v tomto kurzu, až budeme upravovat CSS pro naše stránky.
+
+Nyní jen musíme spustit další příkaz na serveru s názvem `collectstatic`. Ten řekne Djangu, aby posbíral všechny statické soubory, které potřebuje na serveru. V současnosti jsou to hlavně soubory, které upravují vzhled admin stránky.
+
+```
+ (mvenv) $ python manage.py collectstatic
+
+ You have requested to collect static files at the destination
+ location as specified in your settings:
+ /home/edith/my-first-blog/static
+
+ This will overwrite existing files!
+ Are you sure you want to do this?
+
+ Type 'yes' to continue, or 'no' to cancel: yes
+```
+
+Zadej "Ano" a pokračujeme! Také zbožňuješ, když ti počítač začne vypisovat ty dlouhé stránky kódu? Já jsem to vždy doprovázela tichými zvuky. Brp, brp, brp...
+
+```
+ Copying '/home/edith/my-first-blog/mvenv/lib/python3.4/site-packages/django/contrib/admin/static/admin/js/actions.min.js' Copying '/home/edith/my-first-blog/mvenv/lib/python3.4/site-packages/django/contrib/admin/static/admin/js/inlines.min.js' [...] Copying '/home/edith/my-first-blog/mvenv/lib/python3.4/site-packages/django/contrib/admin/static/admin/css/changelists.css' Copying '/home/edith/my-first-blog/mvenv/lib/python3.4/site-packages/django/contrib/admin/static/admin/css/base.css' 62 static files copied to '/home/edith/my-first-blog/static'.
+```
+
+### Vytvoření databáze na PythonAnywhere
+
+Zde je další věc, která se liší mezi tvým počítačem a serverem: server používá jinou databázi. Takže uživatelské účty a příspěvky mohou být jiné, na serveru a na tvém počítači.
+
+Můžeme inicializovat databázi na serveru, stejně jako jsi to udělala v počítači, `migrate` a `createsuperuser`:
+
+```
+ (mvenv) $ python manage.py migrate
+ Operations to perform:
+ [...]
+ Applying sessions.0001_initial... OK
+
+
+ (mvenv) $ python manage.py createsuperuser
+```
+
+## Publikování našeho blogu jako webové aplikace
+
+Nyní je náš kód na PythonAnywhere a náš virtualenv je připraven, statické soubory jsou shromážděny a databáze inicializována. Jsme připraveni zveřejnit blog jako webovou aplikaci!
+
+Dostaň se zpět na dashboard PythonAnywhere kliknutím na logo a poté, klikni na kartu **Web**. Nakonec klikni na **Add a new web app**.
+
+Po potvrzení tvého názvu domény, zvol **manual configuration** (NB *není* "Django" volba) v dialogovém okně. Dále zvol **Python 3.4** a klepni na tlačítko Next pro dokončení průvodce.
+
+> **Poznámka:** Ujisti se, že volíš možnost "Manual configuration", nikoliv "Django". Jsme příliš cool pro výchozí nastavení PythonAnywhere Django ;-)
+
+### Nastavení virtualenv
+
+Budeš přesměrována na PythonAnywhere konfigurační obrazovku pro tvou webovou aplikaci, sem budeš muset jít pokaždé, když budeš chtít provést změny aplikace na serveru.
+
+![][7]
+
+ [7]: images/pythonanywhere_web_tab_virtualenv.png
+
+V části "Virtualenv" klepni na červený text, který říká "Enter the path to a virtualenv" a zadej: `/home/ /my-first-blog/myvenv/`. Klikni na modré zaškrtávací políčko a tím uložit cestu před pokračováním.
+
+> **Poznámka:** Nahraď své vlastní uživatelské jméno podle potřeby. Pokud uděláš chybu, PythonAnywhere Ti zobrazí malé varování.
+
+### Konfigurace souboru WSGI
+
+Django používá "WSGI protokol", standard pro obsluhu webových stránek pomocí Pythonu, který PythonAnywhere podporuje. Aby PythonAnywhere poznal a mohl používat náš Django blog upravme WSGI konfigurační soubor.
+
+Klikni na odkaz "WSGI configuration file" (v sekci "Code" v horní části stránky – bude pojmenována nějak takto `/var/www/_pythonanywhere_com_wsgi.py`), a budeš přesměrována do editoru.
+
+Odstraň veškerý obsah a nahraď jej upraveným následujícím kódem:
+
+```python
+ import os
+ import sys
+
+ path = '/home//my-first-blog' # use your own username here
+ if path not in sys.path:
+ sys.path.append(path)
+
+ os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
+
+ from django.core.wsgi import get_wsgi_application
+ from whitenoise.django import DjangoWhiteNoise
+ application = DjangoWhiteNoise(get_wsgi_application())
+```
+
+> **Poznámka:** Nezapomeň nahradit své vlastní uživatelské jméno, za ``
+
+Úkolem tohoto souboru je říct PythonAnywhere, kde je naše webová aplikace a jaký je název souboru nastavení Djanga. Také nastavuje nástroj pro statické soubory "whitenoise".
+
+Klikni na **Save** a přejdi zpět na kartu **Web**.
+
+Zvládli jsme to! Klikni na velké zelené tlačítko **Reload** a budeš mít možnost zobrazit svou aplikaci. Odkaz na to najdeš v horní části stránky.
+
+## Ladící tipy
+
+Pokud se ti zobrazí chyba při pokusu navštívit web, první místo kam se podívat na nějaké informace o ladění je v **error log**. Odkaz na něj najdeš na PythonAnywhere v [kartě Web][8]. Zkontroluj jestli tam nejsou nějaké chybové zprávy; nejnovější záznamy jsou na konci. Mezi běžné problémy patří:
+
+ [8]: https://www.pythonanywhere.com/web_app_setup/
+
+* Často zapomínané kroky jsou ty, které jsme dělali v konzoly: vytvoření virtualenv, aktivace, instalace Django, spuštění collectstatic, přenesení databáze.
+
+* Chyba k cestě virtualenv na kartě Web – bude obvykle označená malou červenou zprávou na stejném místě.
+
+* Chyba v konfiguračním souboru WSGI – máš cestu do složky my-first-blog v pořádku?
+
+* Vybrala jsi stejnou verzi Pythonu pro svůj virtualenv stejně jako pro svoji webovou aplikaci? Obe verze by měly být 3.4.
+
+* Existují některé [obecné tipy ladění na PythonAnywhere wiki][9].
+
+ [9]: https://www.pythonanywhere.com/wiki/DebuggingImportError
+
+A pamatuj si, že tvůj coach je tady, aby ti pomohl!
+
+# Jsme online!
+
+Výchozí stránka tvé webové aplikace by měla ukázat "Welcome to Django", stejně jako to dělá na tvém počítači. Zkus přidat `/admin/` na konec adresy URL, a budeš přesměrována na admin stránku. Přihlas se pomocí uživatelského jména a hesla, a uvidíš, že můžeš přidávat nové příspěvky na server.
+
+Poplácej sama sebe *ohromně* po zádech! Nasazení serveru je jednou z nejsložitější částí vývoje webových aplikací a trvá lidem často i několik dní, než je funkční. Ale ty máš své stránky online na Internetu, právě teď!
diff --git a/cs/deploy/images/github_get_repo_url_screenshot.png b/cs/deploy/images/github_get_repo_url_screenshot.png
new file mode 100644
index 00000000000..44412f84823
Binary files /dev/null and b/cs/deploy/images/github_get_repo_url_screenshot.png differ
diff --git a/cs/deploy/images/new_github_repo.png b/cs/deploy/images/new_github_repo.png
new file mode 100644
index 00000000000..6e19174ec88
Binary files /dev/null and b/cs/deploy/images/new_github_repo.png differ
diff --git a/cs/deploy/images/pythonanywhere_web_tab_virtualenv.png b/cs/deploy/images/pythonanywhere_web_tab_virtualenv.png
new file mode 100644
index 00000000000..cafa22c2d97
Binary files /dev/null and b/cs/deploy/images/pythonanywhere_web_tab_virtualenv.png differ
diff --git a/cs/deploy/install_git.md b/cs/deploy/install_git.md
new file mode 100755
index 00000000000..081798d74f2
--- /dev/null
+++ b/cs/deploy/install_git.md
@@ -0,0 +1,19 @@
+### Windows
+
+Git si můžeš stáhnout z [git-scm.com](https://git-scm.com/). Klikej na "další" ve všech krocích s výjimkou 5. kroku s názvem "Nastavení prostředí PATH", zvol "Spustit Git a související Unixové nástroje z příkazového řádku systému Windows" (spodní možnost). Ostatní výchozí hodnoty jsou v pořádku. Odškrtni Windows-style konce řádků, pro commit je Unixový styl konce řádků správný.
+
+### MacOS
+
+Stáhni Git z [git-scm.com](https://git-scm.com/) a postupuj podle pokynů.
+
+### Linux
+
+Pokud ho již nemáš nainstalovaný, git měl by být k dispozici pomocí Správce balíčků, zkus:
+
+```
+ sudo apt-get install git
+ # or
+ sudo yum install git
+ # or
+ sudo zypper install git
+```
diff --git a/cs/deploy/signup_pythonanywhere.md b/cs/deploy/signup_pythonanywhere.md
new file mode 100755
index 00000000000..fe6e67a8fe7
--- /dev/null
+++ b/cs/deploy/signup_pythonanywhere.md
@@ -0,0 +1,5 @@
+Dále je čas přihlásit se zdarma k účtu "Beginner" na PythonAnywhere.
+
+ * [www.pythonanywhere.com](https://www.pythonanywhere.com/)
+
+> **Poznámka:** Při výběru svého uživatelského jména měj na paměti, že adresa URL tvého blogu bude mít tvar `yourusername.pythonanywhere.com`, takže si pro svůj blog zvol vlastní přezdívku nebo jiné jméno.
diff --git a/cs/django/README.md b/cs/django/README.md
new file mode 100755
index 00000000000..3663ae96264
--- /dev/null
+++ b/cs/django/README.md
@@ -0,0 +1,27 @@
+# Co je Django?
+
+Django (*jang-goh/ˈdʒæŋɡoʊ /*) je svobodný a open source webový aplikační framework napsaný v Pythonu. Webový framework je sada komponent, která pomáhá vyvíjet webové stránky rychleji a snadněji.
+
+Když vytváříš webové stránky, vždy potřebuješ podobnou sadu komponent: způsob, jak zpracovat ověření uživatele (registraci, přihlášení, odhlášení), administrační panel pro tvé webové stránky, formuláře, způsob, jak nahrávat soubory, atd.
+
+Naštěstí si ostatní lidé již dávno všimli, že vývojáři čelí stejným problémům při vytváření nových stránek. Takže se spojili a vytvořili frameworky (Django je jedním z nich), které obsahují sadu hotových, snadno použitelných komponent.
+
+Frameworky existují, aby ti ušetřily čas a ty jsi nemusela znovu vynalézat, co už někdo zdlouhavě vymýšlel. Stejně tak by ti měly ušetřit čas při vytváření nových webových stránek.
+
+## Proč potřebuješ framework?
+
+Abychom pochopili, co ve skutečnosti Django je, musíme se blíže podívat na to, co dělá server. První věcí je, že server musí vědět, že chceš obsloužit tebou zvolenou webovou stránkou.
+
+Představ si poštovní schránku (port), která na zvoleném portu sleduje příchozí zprávy (požadavky). Podobně se chová webový server. Webový server čte požadavky od uživatele a odešle odpověď v podobě webové stránky. Ale když chceš něco poslat, musíš mít nějaký obsah. A Django je to, co ti pomůže vytvořit tento obsah.
+
+## Co se stane, když někdo požaduje webové stránky ze serveru?
+
+Pokud přijde žádost na webový server, je předána Django frameworku, který se snaží přijít na to, co vlastně uživatel požaduje. Nejprve vezme adresu webové stránky a snaží se přijít na to, co udělat. Tuto část provádí Django **urlresolver** (všimni si, že adresa webové stránky se nazývá URL - Uniform Resource Locator - proto jméno *urlresolver* dává smysl). Tato činnost není složitá - bere si seznam vzorů a v něm se pokouší vyhledat shodu s URL. Django kontroluje seznam vzorů od shora dolů a pokud některý odpovídá, pak Django předá žádost související funkci, která se nazývá *view*.
+
+Představ si pošťáka s dopisem. Kráčí po ulici a kontroluje každé číslo domu, jestli odpovídá adrese na dopisu. Pokud adresa odpovídá, dopis vloží do schránky. Stejným způsobem funguje urlresolver!
+
+Ve funkci *view* se provádí všechny zajímavé věci: můžeme se podívat do databáze a vyhledat nějaké informace. Co když chce uživatel změnit něco v datech? Dopis může říkat "prosím změňte popis mé práce." *View* může zkontrolovat, zda máš povolení tuto změnu provést, pak aktualizuje popis práce a odešle ti zprávu: "Hotovo!". V tuto chvíli *view* vygeneruje odpověď a Django ji může odeslat tvému webovému prohlížeci.
+
+Samozřejmě, že výše uvedený popis je trochu zjednodušený, ale prozatím není nutné znát všechny technické detaily. Pro obecnou představu to postačí.
+
+Takže místo studování přílišných podrobností jednoduše začneme něco vytvářet pomocí Djanga, čímž se naučíme všechny důležité části!
diff --git a/cs/django_admin/README.md b/cs/django_admin/README.md
new file mode 100755
index 00000000000..493e747936e
--- /dev/null
+++ b/cs/django_admin/README.md
@@ -0,0 +1,49 @@
+# Django admin
+
+Chceš-li přidávat, upravovat a mazat příspěvky, které jsme právě vymodelovaly, použijeme Django admin.
+
+Otevřeme soubor `blog/admin.py` a nahradíme jeho obsah následujícím kódem:
+
+```python
+ from django.contrib import admin
+ from .models import Post
+
+ admin.site.register(Post)
+```
+
+Jak vidíš, importujeme (vkládáme) Post model definovaný v předchozí kapitole. Pro zviditelnění našeho modelu na admin stránce musíme zaregistrovat model pomocí `admin.site.register(Post)`.
+
+OK, je čas se podívat na náš Post model. Nezapomeň spustit `Pythonu manage.py runserver` v konzoli www serveru. Přejdi do prohlížeče a zadej adresu http://127.0.0.1:8000/admin/. Uvidíš přihlašovací stránku jako je tato:
+
+![Login page][1]
+
+ [1]: images/login_page2.png
+
+Chceš-li se přihlásit, musíš vytvořit *superusera* - uživatele, který má kontrolu nad celou webovou stránkou. Vrať se do příkazového řádku, zadej `python manage.py createsuperuser` a stiskni klávesu enter. Po zobrazení výzvy zadej své uživatelské jméno (malá písmena, bez mezer), e-mailovou adresu a heslo. Nedělej si starosti, že nevidíš heslo, které zadáváš - tak to má být. Jen ho napiš a stiskni `enter` pro pokračování. Výstup by měl vypadat takto (kde uživatelské jméno a e-mail by měly být tvé vlastní):
+
+```
+ (myvenv) ~/djangogirls$ python manage.py createsuperuser
+ Username: admin
+ Email address: admin@admin.com
+ Password:
+ Password (again):
+ Superuser created successfully.
+```
+
+Vrať se do svého prohlížeče. Přihlas se pomocí pověření superuživatele, kterého jsi právě vytvořila; měla bys vidět Django admin dashboard/nástěnku.
+
+![Django admin][2]
+
+ [2]: images/django_admin3.png
+
+Klikni na příspěvky/Posts a trochu si s nimi pohraj. Přidej pět nebo šest příspěvků blogu. Nedělej si starosti s obsahem - pro ušetření času můžeš jednoduše kopírovat a vložit nějaký text z tohoto kurzu :).
+
+Ujisti se, že alespoň dva nebo tři příspěvky (ale ne všechny) mají nastavené datum publikování. Později to bude užitečné.
+
+![Django admin][3]
+
+ [3]: images/edit_post3.png
+
+Pokud chceš vědět více o Django admin, koukni se do Django dokumentace: https://docs.djangoproject.com/en/1.8/ref/contrib/admin/
+
+V tuto chvíli je asi dobrý čas dát si pro trochu vzpruhy kávu, čaj nebo něco k jídlu. Vytvořila jsi svůj první model Django - zasloužíš si malý oddech!
diff --git a/fr/django_admin/images/images/django_admin3.png b/cs/django_admin/images/django_admin3.png
similarity index 100%
rename from fr/django_admin/images/images/django_admin3.png
rename to cs/django_admin/images/django_admin3.png
diff --git a/fr/django_admin/images/images/edit_post3.png b/cs/django_admin/images/edit_post3.png
similarity index 100%
rename from fr/django_admin/images/images/edit_post3.png
rename to cs/django_admin/images/edit_post3.png
diff --git a/fr/django_admin/images/images/login_page2.png b/cs/django_admin/images/login_page2.png
similarity index 100%
rename from fr/django_admin/images/images/login_page2.png
rename to cs/django_admin/images/login_page2.png
diff --git a/cs/django_forms/README.md b/cs/django_forms/README.md
new file mode 100755
index 00000000000..b84bff0b8b3
--- /dev/null
+++ b/cs/django_forms/README.md
@@ -0,0 +1,395 @@
+# Django formuláře
+
+Poslední věc, kterou chceme udělat na našich webových stránkách, je vytvořit pohodlný způsob, jak přidávat a upravovat příspěvky na blogu. Django `admin` je super, ale je těžké ho přizpůsobit a upravit do hezčí podoby. S `formuláři` budeme mít absolutní moc nad naším rozhraním - můžeme dělat téměř cokoliv, co si dokážeme představit!
+
+Pěkná věc na Django formulářích je, že je můžeme definovat úplně od počátku nebo vytvořit `ModelForm`, který uloží výsledek z formuláře pomocí modelu.
+
+To je přesně to, co chceme udělat: vytvoříme formulář pro náš model `Post`.
+
+Stejně jako všechny důležité části Djanga mají formuláře své vlastní soubory: `forms.py`.
+
+V našem adresáři potřebujeme vytvořit soubor s názvem `blog`.
+
+```
+ blog
+ └── forms.py
+```
+
+OK, otevři ho a zadej následující kód:
+
+```python
+ from django import forms
+
+ from .models import Post
+
+ class PostForm(forms.ModelForm):
+ class Meta:
+ model = Post
+ fields = ('title', 'text',)
+```
+
+Musíme nejdříve importovat Django formuláře (`from django import forms`) a samozřejmě náš `Post` model (`from .models import Post`).
+
+`PostForm`, jak asi předpokládáš, je jméno našeho formuláře. Musíme říct Djangu, že tento formulář je `ModelForm` (tak pro nás bude moci Django udělat něco magického) - zodpovědný za to bude `forms.ModelForm`.
+
+Dále zde máme `třídu Meta`, kde řekneme Djangu, který model by měl být použit k vytvoření tohoto formuláře (`model = Post`).
+
+Nakonec můžeme Djangu říct, co se má stát s jednotlivými poli našeho formuláře. V tomto případě chceme pouze zobrazit pole `nadpis/title` a `text` - `autor` by měl být člověk, který je aktuálně přihlášen (ty!) a `created_date` by mělo být automaticky nastaveno, když vytvoříme příspěvek (tj. v kódu).
+
+A je to! Vše, co teď musíme udělat, je použít formulář ve *view* a zobrazit ho v šabloně.
+
+Takže ještě jednou: budeme vytvářet odkaz na stránky, URL, pohled a šablonu.
+
+## Odkaz na stránku s formulářem
+
+Je tedy čas otevřít soubor `blog/templates/blog/base.html`. Přidáme odkaz do `div` s názvem `page-header`:
+
+```html
+
+```
+
+Všimni si, že chceme zavolat náš nový view `post_new`.
+
+Po přidání řádku by měl tvůj html soubor vypadat takto:
+
+```html
+ {% load staticfiles %}
+
+
+ Django Girls blog
+
+
+
+
+
+
+
+
+
+```
+
+Po uložení a obnovení stránky http://127.0.0.1:8000 patrně uvidíš známou `NoReverseMatch` chybu.
+
+## URL
+
+Otevři `blog/urls.py` a přidej řádek:
+
+```python
+ url(r'^post/new/$', views.post_new, name='post_new'),
+```
+
+Výsledný kód bude vypadat takto:
+
+```python
+ from django.conf.urls import url
+ from . import views
+
+ urlpatterns = [
+ url(r'^$', views.post_list, name='post_list'),
+ url(r'^post/(?P[0-9]+)/$', views.post_detail, name='post_detail'),
+ url(r'^post/new/$', views.post_new, name='post_new'),
+ ]
+```
+
+Po aktualizaci webu vidíme `AttributeError`, protože nemáme implementovaný `post_new` view. Přidáme ho právě teď.
+
+## post_new view
+
+Musíme otevřít soubor `blog/views.py` a přidat následující řádky:
+
+```python
+ from .forms import PostForm
+```
+
+a náš *view*:
+
+```python
+ def post_new(request):
+ form = PostForm()
+ return render(request, 'blog/post_edit.html', {'form': form})
+```
+
+Chceš-li vytvořit nový formulář `Post`, musíš zavolat `PostForm()` a předat ho do šablony. Za chvilku se vrátíme k tomuto *view*, ale teď pojďme rychle vytvořit šablonu formuláře.
+
+## Šablona
+
+Musíme vytvořit soubor `post_edit.html` v adresáři `blog/templates/blog`. Pro vytvoření formuláře potřebujeme udělat několik věcí:
+
+* musíme zobrazit formulář. Můžeme to udělat například jednoduchým `{% raw %}{{ form.as_p }}{% endraw %}`.
+* formulář musíme obalit HTML značkou (přidej řádek nad formulář): `< method="POST" >... < / form >`
+* potřebujeme tlačítko `Uložit`. Vytvoříme HTML tlačítko: `< button type="submit"> Uložit < / button>`
+* a nakonec těsně za otevírací značku `< form... >` musíme přidat `{% raw %}{% csrf_token %}{% endraw %}`. Toto je velmi důležité, protože tak vytvoříme bezpečnější formulář! Django si bude stěžovat v okamžiku, kdy se pokusíš uložit formulář, pokud zapomeneš na tuto část:
+
+![CSFR zakázaná stránka][1]
+
+ [1]: images/csrf2.png
+
+Pojďme se nyní podívat, jak by mělo vypadat HTML v `post_edit.html`:
+
+```html
+ {% extends 'blog/base.html' %}
+
+ {% block content %}
+
New post
+
+ {% endblock %}
+```
+
+Čas aktualizovat naší stránku! Hurá! Zobrazil se formulář!
+
+![Nový formulář][2]
+
+ [2]: images/new_form2.png
+
+Ale ještě chvilku počkej! Když něco zadáš do polí `titulek` a `text` a pokusíš se formulář uložit - co se stane?
+
+Nic! Jsme opět na stejné stránce, náš text je pryč... a nepřidal se žádný nový příspěvek. Tak co se stalo?
+
+Odpověď je: nic. Musíme ještě trochu zapracovat na našem *view*.
+
+## Ukládání formuláře
+
+Otevři znovu `blog/views.py`. Vše, co máme aktuálně v `post_new`, je toto:
+
+```python
+ def post_new(request):
+ form = PostForm()
+ return render(request, 'blog/post_edit.html', {'form': form})
+```
+
+Když odešleme formulář, vrátíme se zpět na ten samý view, ale tentokrát obdržíme nějaká další data v `request`, přesněji v `request.POST` (pojmenování nemá nic společného s naším "post" v blogu, vychází to z toho, že "zasíláme" data). Pamatuješ si, že v našem HTML souboru ve `