:B~ Style guide

1~style-guide Style guide

2~ Guidelines for authors

This section deals with some general considerations to be taken into account when writing technical documentation for live-manual. They are divided into linguistic features and recommended procedures.

*{Note:}* Authors should first read {Contributing to this document}#how-to-contribute

3~ Linguistic features

_* /{Use plain English}/

Keep in mind that a high percentage of your readers are not native speakers of English. So as a general rule try to use short, meaningful sentences, followed by a full stop.

This does not mean that you have to use a simplistic, naive style. It is a suggestion to try to avoid, as much as possible, complex subordinate sentences that make the text difficult to understand for non-native speakers of English.

_* /{Variety of English}/

The most widely spread varieties of English are British and American so it is very likely that most authors will use either one or the other. In a collaborative environment, the ideal variety would be "International English" but it is very difficult, not to say impossible, to decide on which variety among all the existing ones, is the best to use.

We expect that different varieties may mix without creating misunderstandings but in general terms you should try to be coherent and before deciding on using British, American or any other English flavour at your discretion, please take a look at how other people write and try to imitate them.

_* /{Be balanced}/

Do not be biased. Avoid including references to ideologies completely unrelated to live-manual. Technical writing should be as neutral as possible. It is in the very nature of scientific writing.

_* /{Be politically correct}/

Try to avoid sexist language as much as possible. If you need to make references to the third person singular preferably use "they" rather than "he" or "she" or awkward inventions such as "s/he", "s(he)" and the like.

_* /{Be concise}/

Go straight to the point and do not wander around aimlessly. Give as much information as necessary but do not give more information than necessary, this is to say, do not explain unnecessary details. Your readers are intelligent. Presume some previous knowledge on their part.

_* /{Minimize translation work}/

Keep in mind that whatever you write will have to be translated into several other languages. This implies that a number of people will have to do an extra work if you add useless or redundant information.

_* /{Be coherent}/

As suggested before, it is almost impossible to standardize a collaborative document into a perfectly unified whole. However, every effort on your side to write in a coherent way with the rest of the authors will be appreciated.

_* /{Be cohesive}/

Use as many text-forming devices as necessary to make your text cohesive and unambiguous. (Text-forming devices are linguistic markers such as connectors).

_* /{Be descriptive}/

It is preferable to describe the point in one or several paragraphs than merely using a number of sentences in a typical "changelog" style. Describe it! Your readers will appreciate it.

_* /{Dictionary}/

Look up the meaning of words in a dictionary or encyclopedia if you do not know how to express certain concepts in English. But keep in mind that a dictionary can either be your best friend or can turn into your worst enemy if you do not know how to use it correctly.

English has the largest vocabulary that exists (with over one million words). Many of these words are borrowings from other languages. When looking up the meaning of words in a bilingual dictionary the tendency of a non-native speaker of English is to choose the one that sounds more similar in their mother tongue. This often turns into an excessively formal discourse which does not sound quite natural in English.

As a general rule, if a concept can be expressed using different synonyms, it is a good advice to choose the first word proposed by the dictionary. If in doubt, choosing words of Germanic origin (Usually monosyllabic words) is often the right thing to do. Be warned that these two techniques might produce a rather informal discourse but at least your choice of words will be of wide use and generally accepted.

Using a dictionary of collocations is recommended. They are extremely helpful when it comes to know which words usually occur together.

Again it is a good practice to learn from the work of others. Using a search engine to check how other authors use certain expressions may help a lot.

_* /{False friends, idioms and other idiomatic expressions}/

Watch out for false friends. No matter how proficient you are in a foreign language you cannot help falling from time to time in the trap of the so called "false friends", words that look similar in two languages but whose meanings or uses might be completely different.

Try to avoid idioms as much as possible. "Idioms" are expressions that may convey a completely different meaning from what their individual words seem to mean. Sometimes, idioms might be difficult to understand even for native speakers of English!

_* /{Avoid slang, abbreviations, contractions...}/

Even though you are encouraged to use plain, everyday English, technical writing belongs to the formal register of the language.

Try to avoid slang, unusual abbreviations that are difficult to understand and above all contractions that try to imitate the spoken language. Not to mention typical irc and family friendly expressions.

3~ Procedures

_* /{Test before write}/

It is important that authors test their examples before adding them to live-manual to ensure that everything works as described. Testing on a clean chroot or VM can be a good starting point. Besides, it would be ideal if the tests were then carried out on different machines with different hardware to spot possible problems that may arise.

_* /{Examples}/

When providing an example try to be as specific as you can. An example is, after all, just an example.

It is often better to use a line that only applies to a specific case than using abstractions that may confuse your readers. In this case you can provide a brief explanation of the effects of the proposed example.

There may be some exceptions when the example suggests using some potentially dangerous commands that, if misused, may cause data loss or other similar undesirable effects. In this case you should provide a thorough explanation of the possible side effects.

_* /{External links}/

Links to external sites should only be used when the information on those sites is crucial when it comes to understanding a special point. Even so, try to use links to external sites as sparsely as possible. Internet links are likely to change from time to time resulting in broken links and leaving your arguments in an incomplete state.

Besides, people who read the manual offline will not have the chance to follow those links.

_* /{Avoid branding and things that violate the license under which the manual is published}/

Try to avoid branding as much as possible. Keep in mind that other downstream projects might make use of the documentation you write. So you are complicating things for them if you add certain specific material.

live-manual is licensed under the GNU GPL. This has a number of implications that apply to the distribution of the material (of any kind, including copyrighted graphics or logos) that is published with it.

_* /{Write a first draft, revise, edit, improve, redo if necessary}/

 - Brainstorm!. You need to organize your ideas first in a logical sequence of events.

 - Once you have somehow organized those ideas in your mind write a first draft.

 - Revise grammar, syntax and spelling. Keep in mind that the proper names of the releases, such as ${testing} or sid, should not be capitalized when referred to as code names. In order to check the spelling you can run the "spell" target. i.e. #{make spell}#

 - Improve your statements and redo any part if necessary.

_* /{Chapters}/

Use the conventional numbering system for chapters and subtitles. e.g. 1, 1.1, 1.1.1, 1.1.2 ... 1.2, 1.2.1, 1.2.2 ... 2, 2.1 ... and so on. See markup below.

If you have to enumerate a series of steps or stages in your description, you can also use ordinal numbers: First, second, third ... or First, Then, After that, Finally ... Alternatively you can use bulleted items.

_* /{Markup}/

And last but not least, live-manual uses {SiSU}http://www.sisudoc.org/ to process the text files and produce a multiple format output. It is recommended to take a look at {SiSU's manual}http://www.sisudoc.org/manual/en/html/sisu_manual/markup.html to get familiar with its markup, or else type:

code{

 $ sisu --help markup

}code

Here are some markup examples that may prove useful:

 - For emphasis/bold text:

code{

*{foo}* or !{foo}!

}code

produces: *{foo}* or !{foo}!. Use it to emphasize certain key words.

 - For italics:

code{

/{foo}/

}code

produces: /{foo}/.  Use them e.g. for the names of Debian packages.

 - For monospace:

code{

#{foo}#

}code

produces: #{foo}#. Use it e.g. for the names of commands. And also to highlight some key words or things like paths.

 - For code blocks:

code{

 code{

  $ foo
  # bar

 }code

}code

produces:

code{

 $ foo
 # bar

}code

Use #{code{}# to open and #{}code}# to close the tags. It is important to remember to leave a space at the beginning of each line of code.

2~guidelines-translators Guidelines for translators

This section deals with some general considerations to be taken into account when translating the contents of live-manual.

As a general recommendation, translators should have read and understood the translation rules that apply to their specific languages. Usually, translation groups and mailing lists provide information on how to produce translated work that complies with Debian quality standards.

*{Note:}* Translators should also read {Contributing to this document}#how-to-contribute. In particular the section {Translation}#translation

3~ Translation hints

_* /{Comments}/

The role of the translator is to convey as faithfully as possible the meaning of words, sentences, paragraphs and texts as written by the original authors into their target language.

So they should refrain from adding personal comments or extra bits of information of their own. If they want to add a comment for other translators working on the same documents, they can leave it in the space reserved for that. That is, the header of the strings in the *{po}* files preceded by a number sign *{#}*. Most graphical translation programs can automatically handle those types of comments.

_* /{TN, Translator's Note}/

It is perfectly acceptable however, to include a word or an expression in brackets in the translated text if, and only if, that makes the meaning of a difficult word or expression clearer to the reader. Inside the brackets the translator should make evident that the addition was theirs using the abbreviation "TN" or "Translator's Note".

_* /{Impersonal sentences}/

Documents written in English make an extensive use of the impersonal form "you". In some other languages that do not share this characteristic, this might give the false impression that the original texts are directly addressing the reader when they are actually not doing so. Translators must be aware of that fact and reflect it in their language as accurately as possible.

_* /{False friends}/

The trap of "false friends" explained before especially applies to translators. Double check the meaning of suspicious false friends if in doubt.

_* /{Markup}/

Translators working initially with *{pot}* files and later on with *{po}* files will find many markup features in the strings. They can translate the text anyway, as long as it is translatable, but it is extremely important that they use exactly the same markup as the original English version.

_* /{Code blocks}/

Even though the code blocks are usually untranslatable, including them in the translation is the only way to score a 100% complete translation. And even though it means more work at first because it might require the intervention of the translators if the code changes, it is the best way, in the long run, to identify what has already been translated and what has not when checking the integrity of the .po files.

_* /{Newlines}/

The translated texts need to have the exact same newlines as the original texts. Be careful to press the "Enter" key or type *{\n}* if they appear in the original files. These newlines often appear, for instance, in the code blocks.

Make no mistake, this does not mean that the translated text needs to have the same length as the English version. That is nearly impossible.

_* /{Untranslatable strings}/

Translators should never translate:

 - The code names of releases (which should be written in lowercase)

 - The names of programs

 - The commands given as examples

 - Metadata (often between colons *{:metadata:}*)

 - Links

 - Paths
