Skip to content

Latest commit

 

History

History
129 lines (97 loc) · 5.7 KB

Translation.md

File metadata and controls

129 lines (97 loc) · 5.7 KB

Want to translate this book to some other language?

Easy way

Just send me any piece of translated text (no matter how short) and I'll put it into my LaTeX source code.

Speed isn't important, because this is open-source project, after all. Your name will be mentioned as project contributor.

Korean, Chinese and Persian languages are reserved by publishers.

English and Russian versions I do by myself, but my English is still that horrible, so I'm very grateful for any notes about grammar, etc. Even my Russian is also flawed, so I'm grateful for notes about Russian text as well!

So do not hesitate to contact me: dennis(a)yurichev.com

Hard way

Keep in mind, it's a very hard and tedious work. You'll need basic understanding of git, LaTeX and m4. Aside from this, I do a lot of changes, so translators may need to syncronize their work often.

But anyway, everything is simple: as you may see, all English text is enclosed in \EN{} LaTeX macro, all Russian text in \RU{}. m4 (used here for assembly listings) has _EN() and _RU() macros.

Since translation project is large, work can be done gradually. Try to start at ["patterns" directory] (https://github.com/dennis714/RE-for-beginners/tree/master/patterns). There are also lite (introductory) version, and that's a good idea to translate it first. Translators may use git to get to know which TeX files are in somewhat stable state so can be translated before those parts which I still rework occasionally.

Choose a new macro name, for example, \FR{} for French or \PTBR{} for Brazilian Portuguese. Create a new fork at Github and I'll setup everything to build a book in your language. Or just send me files you had changed to dennis(a)yurichev.com.

In past, I often translated sentences by parts, so each sentence may contain several \RU{} and \EN{} macros, like here. It was not a good idea, as I realized. Better way to provide translations to a sentence is to list them, like here:

`\EN{English sentence.}`
`\RU{Russian sentence.}`
`\FR{French sentence.}`
...
`\EN{Another English sentence.}`
`\RU{Another Russian sentence.}`
`\FR{Another French sentence.}`
...

Github may be used as for coordination.

Do not be discouraged by the size of the whole project. Try to translate some small piece with familiar material to you. Start the ball rolling, as they say. Some other translator may continue your work.

All your work will be licensed, like this book, in CC BY-NC-ND terms. Korean, Chinese and Farsi translations are reserved by publishers. English and Russian versions I maintain by myself, but any fixes are very welcome!

Contact me for any questions.

Style

I deeply convinced that technical literature should should be terse and formal. Imagine you've got some reference book on your bookshelf. You need it once a month, to get Pi exact value from it or something like that. Perfect reference is a book where you'll see "Pi=3.14159..." and nothing else. Informal or verbose language in technical books annoys you each time you looking up for the information you need.

Language

On the other hand, terminology may be informal, just as typical modern IT bloggers use. Don't hesitate to use English words in your language if this is norm in IT speech of your language and there are no good translation yet. For example, Russian IT language is a mix of Russian and English words, and this is current language norm (at least in 2015), so I use this language in this book.

Defined macros

Spanish: \ES{} Brazilian Portuguese: \PTBR{} Polish: \PL{} Italian: \ITA{} German: \DE{} Thai: \THA{} Dutch: \NL{}

You may start to translate right now. To check your results, just run make ES-lite, make PTBR-lite, make PL-lite, make IT-lite, make DE-lite (let's start with LITE version anyway). You'll see almost blank pages with only listings and screenshots, without any text. Grep for each \EN{} macro in .tex file and add your translation. Same story with .m4 files, there are _ES(), _PTBR(), _PL(), _DE() and _IT() macros.

There is also \ESph{}, \PTBRph{}, \PLph{}, \DEph{} and \ITph{} placeholder macros in .tex files, where the translated text must be. You may start to translate there.

Do not hesitate to contact me if you have any questions.

How would I understand, what piece of LaTeX source code is included in LITE version, and which is not?

There is a \LITE macros for this. For example:

...
\input{patterns/14_bitfields/1_check/main}
\input{patterns/14_bitfields/2_set_reset/main}
\input{patterns/14_bitfields/3_shifts/main}
\ifx\LITE\undefined
\input{patterns/14_bitfields/35_set_reset_FPU/main}
\fi
\input{patterns/14_bitfields/4_popcnt/main}
\input{patterns/14_bitfields/conclusion}
\ifdefined\IncludeExercises
\input{patterns/14_bitfields/exercises}
\fi
...

Whenever you see \ifx\LITE\undefined - the following part up to \fi is not included in LITE version, but only in full one, so you may skip it.

Another example.