Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Russian translation of handbook #13

Merged
merged 10 commits into from Mar 1, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -36,3 +36,4 @@
# general nonsense
Thumbs.db
.DS_Store
*.pdf
169 changes: 169 additions & 0 deletions ErlangHandbook-RU.tex
@@ -0,0 +1,169 @@
% !TEX encoding = UTF-8 Unicode
%% NOTE: Due to using fontspec and UTF8 to avoid encoding problems and stuff, Russian
%% version of this document builds using xe(la)tex and TexStudio
\documentclass[russian,14pt,oneside]{book}
\usepackage{extsizes} % additional font sizes for documentclass

%%%%%%
%% package includes
\usepackage{ifxetex}
\ifxetex
\else
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\fi

\usepackage[russian]{babel}
\usepackage{hyperref}
\usepackage{textcomp}
\usepackage{array}
\usepackage{color}
\usepackage[hmargin=2.5cm,vmargin=2.5cm]{geometry}
\usepackage{minted}
\usepackage{todonotes}
\usepackage{parskip}
\usepackage[Bjornstrup]{fncychap}
\usepackage{listings}

%%%%%%
%% package setup
\hypersetup{
colorlinks=true,
linktoc=all,
linkcolor=red,
}

%%%%%%
%% Fonts
\ifxetex
\usepackage{fontspec}
\defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text}
\setmainfont[Path=fonts/,ItalicFont=PTF56F.ttf,
BoldFont=PTF75F.ttf]{PTF55F.ttf}
\setmonofont[Ligatures={NoRequired,NoCommon,NoContextual},
Path=fonts/,BoldFont=FiraMono-Bold.ttf]{FiraMono-Regular.ttf}
\usepackage{titlesec}
\newfontfamily\erlChapterFont[Path=fonts/,BoldFont=PTF75F.ttf]{PTF55F.ttf}
\ChTitleVar{\erlChapterFont\fontsize{28}{28}\bf\selectfont\hfill}
\ChNameVar{\erlChapterFont\fontsize{16}{16}\bf\selectfont}
\fi

%%%%%%
%% hacks and macros
\newminted[erlang]{erlang}{xleftmargin=0cm,xrightmargin=0cm,frame=single,framerule=1pt}

%% Framed code fragment coloring, for code examples where Russian variable
%% names break syntax and coloring
\usepackage{fancyvrb}
\DefineVerbatimEnvironment{erlangru}{Verbatim}{frame=single,samepage=true}

%% hack to fix the margin issue in \item s in 1.2.1
\newminted[erlangim]{erlang}{xleftmargin=-1.5cm}

%%% display todo notes or not?
\newcommand{\todonote}[1]{\todo[inline]{\textbf{Note:} #1}}
%\newcommand{\todonote}[1]{}

%% typesetting for the "results in" notation used.
\def\resultingin{$\quad\Rightarrow\quad$}

\begin{document}

%%%%%%
%% Title
\begin{titlepage}
\centering

\vspace*{70pt}
\includegraphics[scale=0.3]{includes/erlang-logo.png}\\[0.8\baselineskip]
{\Huge \sffamily НАСТОЛЬНАЯ КНИГА}\\
\vspace{250pt}
{\LARGE Бьярн Дэкер (Bjarne D\"acker)}\par
{\LARGE Роберт Вирдинг (Robert Virding)}\par

\end{titlepage}


%%%%%%
%% Info Page
\clearpage
\thispagestyle{empty}
{\Huge Настольная книга по Erlang}\\[0.1\baselineskip]
\hspace{10pt}{\large{Бьярн Дэкер (Bjarne Däcker) и Роберт Вирдинг (Robert Virding)}}

\vspace{10pt}
{\Large \textbf{Версия:}\\[0.2\baselineskip]
\immediate\write18{git log -n1 | grep 'Date:' | sed 's/Date: //g' > _revision.tex}
\input{_revision}
\immediate\write18{rm _revision.tex}
}

\vspace{10pt}
{\large Последняя версия этой книги находится по адресу:\\
\url{http://opensource.erlang-solutions.com/erlang-handbook}}

\vfill

\textbf{Главный редактор}\\[0.1\baselineskip]
%\begin{tabular}{@{\hspace{3ex}}p{42em}}
Омер Килич (Omer Kilic)
%\end{tabular}

\textbf{Прочие участники}\\[0.1\baselineskip]
%\begin{tabular}{@{\hspace{3ex}}p{42em}}
Список людей, которые помогли с изменениями и исправлениями находится
\href{https://github.com/esl/erlang-handbook/graphs/contributors}{в репозитории
проекта}.
%\end{tabular}

\vspace{10pt}
\textbf{Соглашения}\\
Спецификации синтаксиса задаются с помощью \texttt{этого моноширинного шрифта}.
В квадратные скобки ([ ]) заключаются необязательные части. Термы, начинающиеся
с заглавной буквы, как например \textit{Integer} должны быть заменены на
какое-нибудь подходящее значение. Термы, начинающиеся со строчной буквы, как
например \texttt{end}, являются зарезервированными словами языка Erlang.
Вертикальная черта (\textbar{}) разделяет альтернативные варианты, как например
Integer \textbar{} Float.

\vspace{10pt}
\textbf{Ошибки и улучшения}\\
Это живой документ, пожалуйста присылайте исправления и рекомендации по улучшению
содержимого используя систему учёта задач Github по адресу
\url{https://github.com/esl/erlang-handbook}. Вы также можете создать свою ветвь
репозитория (fork) и прислать нам запрос на соединение ветвей (pull request) с
вашими предлагаемыми исправлениями и предложениями. Новые ревизии этого документа
будут публиковаться по мере накопления больших изменений.

\vspace{10pt}
\includegraphics[scale=0.7]{includes/cc-by-sa.png}\\ Этот текст доступен согласно
условиям лицензии Creative Commons Attribution-ShareAlike 3.0 License. Вы имеете
право копировать, распространять и передавать эту книгу по условиям лицензии,
описанным по адресу \url{http://creativecommons.org/licenses/by-sa/3.0}

\newpage


%%%%%%
%% TOC
\tableofcontents


%%%%%%
%% Chapters

\input{chapters-RU/01-background}
\input{chapters-RU/02-structure-of-an-erlang-program}
\input{chapters-RU/03-data-types}
\input{chapters-RU/04-pattern-matching}
\input{chapters-RU/05-functions}
\input{chapters-RU/06-processes}
\input{chapters-RU/07-error-handling}
\input{chapters-RU/08-distributed-erlang}
\input{chapters-RU/09-ports-and-port-drivers}
\input{chapters-RU/10-code-loading}
\input{chapters-RU/11-macros}
\input{chapters-RU/12-further-reading}


\end{document}
43 changes: 43 additions & 0 deletions README-RU.md
@@ -0,0 +1,43 @@
# Настольная книга по Erlang

Изначально написанная Бьярном Дэкером (Bjarne Däcker) и позже пересмотренная
Робертом Вирдингом (Robert Virding), настольная книга по Erlang является
собранием возможностей языка и системы времени исполнения. Книга нацелена на людей
с некоторым опытом программирования, и служит кратким введением в область знаний,
касающуюся языка Erlang.


## Где скачать
Текущая версия может быть скачана [здесь][release].

Настольная книга свёрстана с помощью системы LaTeX. Если вы хотите собрать книгу
самостоятельно, вам поможет Makefile. Вам понадобится дополнительно установить
пакеты [minted] и [pygments] для того, чтобы магия раскраски исходных текстов
заработала, а также `xelatex`, поскольку русская версия использует Unicode шрифты,
и, в отличие от английской, не работает со стандартными шрифтами LaTeX.


## Ошибки и улучшения

Это живой документ, пожалуйста присылайте исправления и рекомендации по улучшению
содержимого используя [систему учёта задач][issue tracker]. Вы также можете создать
свою ветвь репозитория (fork) и прислать нам запрос на соединение ветвей (pull request)
с вашими предлагаемыми исправлениями и предложениями. Новые ревизии этого документа
будут публиковаться по мере накопления больших изменений


## Лицензия

![cc-by-sa](http://i.creativecommons.org/l/by-sa/3.0/88x31.png)

Этот текст доступен согласно Creative Commons Attribution-ShareAlike 3.0 License.
Вы имеете право копировать, распространять и передавать его согласно условиям
лицензии, описанным [здесь][cc-license].



[release]: https://github.com/esl/erlang-handbook/raw/master/output/ErlangHandbook-RU.pdf
[pygments]: http://pygments.org/
[minted]: https://github.com/gpoore/minted
[issue tracker]: https://github.com/esl/erlang-handbook/issues
[cc-license]: http://creativecommons.org/licenses/by-sa/3.0
26 changes: 26 additions & 0 deletions chapters-RU/01-background.tex
@@ -0,0 +1,26 @@
\chapter[Вступление, или почему Erlang такой, как он есть]{Вступление}
\section*{или почему Erlang такой, как он есть}
\label{background}

Erlang --- это результат проекта по улучшению программирования приложений для
телекоммуникаций в Лаборатории Компьютерных Наук (CSLab или Computer Science Lab)
компании Ericsson. Критически важным требованием была поддержка характеристик
этих приложений, таких, как:

\begin{itemize}
\item Массивная параллельность
\item Устойчивость к сбоям
\item Изоляция
\item Динамическое обновление кода во время его исполнения
\item Транзакционность
\end{itemize}

В течение всей истории Erlang процесс его разработки был исключительно
прагматичным. Характеристики и свойства видов систем, в которых была заинтересована
компания Ericsson, прямым образом влияли на ход разработки Erlang. Эти свойства
считались настолько фундаментальными, что было решено поддержку для них встроить
прямо в язык, вместо дополнительных библиотек. По причине прагматичного процесса
разработки вместо предварительного планирования, Erlang "<стал"> функциональным
языком --- поскольку свойства функциональных языков очень хорошо подходили к
свойствам систем, которые разрабатывались.