Slint installer
Slint package
The Slackware Internationalization Project

So, you want to help and contribute to the Slint project? Welcome on board!

Needed work to provide Slint’s products is mostly translating and reviewing shell scripts, that make up Slackware’s installers and administration tools, and documentation intended for Slackware users taking the form of text files or manual pages.

Ideally, we would like that translators:

  • be able to communicate in English and very fluent in the target language, preferably their native language

  • understand technical vocabulary associated to installation and administration of a Linux system

  • be Slackware users

  • be able to read and understand simple shell scripts

But even if you don’t meet all of these expectations, don’t hesitate to volunteer: there still are many tasks that can benefit of your skills.

Volunteer and define your contributions

To volunteer as a translator, preferably use the Transifex platform: first register on Transifex (it’s free), then go to Transifex' Slint project page:

  • If your language is listed, click on it, then in that language’s page click "Join the team".

  • Else, click "Request a language" (in the light blue stripe just above languages' list)

But if you’d like to ask questions before, or propose your help for other tasks than translation, send an email to Slint’s maintainer: didier dot spaier at epsm dot fr.

Then you will consult with your team’s coordinator or Slint maintainer to define the "why", "what", "how" and "when" of your contributions to Slint.

Know our methods & tools and be ready to communicate inside Slint team

Then, get acquainted with the Tools we use. To better use them you’ll need to have installed a Linux distribution, preferably a full Slackware system, including following packages:

  • ../extra/aspell-words-lists/<packages for your language> for spelling checks

  • ../kdei/<package kde-l10n for your language> to localize UI of Lokalize if you use it

Last but not least, we need to work together as a team, so:

  • Please register on Transifex, even if you don’t use its on line editor, then check all notification settings, as it makes easier to keep all contributors informed at once of anything of general interest. Please indicate you full name, even if you use a nickname.

  • We strongly suggest that you subscribe to slint-translators mailing-list. This will allow you to ask and answer questions, participate in discussions, make suggestions and proposals.

  • Be ready to provide an email address allowing your team’s coordinator and Slint’s maintainer to reach you.

  • You can also use the Discussion feature available on Transifex in your language’s page of the Slint project.

  • You can also follow this thread in Slackware forum of LinuxQuestions.org. For that, register to LQ and either post a message in the thread, or display it then click Thread Tools ⇒ Subscribe to this Thread (in the dark blue stripe just above the first message displayed).

Translation scope

Target languages

At time of writing slint installer and main Slackware administration tools are fully translated in French, German, Polish, Portuguese, Russian, Spanish and Ukrainian. Other translations are in progress, their current status can be checked on this page.

Manual pages are translated in more languages, complete translations are listed in file MAN_PAGES.TXT

Translated content

Translated content takes the form of files including original English messages alongside their translations, called PO files, produced and processed through GNU gettext. Each given set of messages (in English in Slint’s case) to be translated is recorded in a so called POT file, from which is generated one corresponding PO file for each target language, see Internationalization and localization of shell scripts on SlackDocs to know more.

Messages included in a given POT file are gathered from one or several shell scripts or manual pages. Here is the current list of Slint’s POT files and their scopes (see page Tools to know how to use associated tools).

POT File name Resource name (Transifex) Scope Associated tool
Slint installer Slint package (without man pages)
man pages contained in package pkgtools
man pages contained in package slackpkg
script slint.sh, see page Tools
Sidebar and top title of Slint web pages

Transition from old to new web pages

Our old home page has been written directly in xhtml. This page has been translated in 13 languages, and will be progressively replaced by the current one, tentatively named slint.html.

Web pages are listed in the menu on the sidebar. The home page will progressively replace the old one, that will be neither translated to more languages nor updated any more.

Translation of web pages

Some of the web pages are intended for end-user: slint.html, installer.html and package.html. Translation of these pages and of template.po (used to generate translated top title and left sidebar of web pages) should be given priority.

Other web pages: Contribute, Translators, Tools and ChangeLog may also be translated (that’s up to each translation team) but after pages listed in above paragraph have been translated.

Note For a given language, when translating template.po it’s better to leave in English names of (yet) untranslated web pages, so that visitors will understand that clicking on corresponding links in the menu will display these pages in English.

All new pages are generated using application AsciiDoc, included in Slackware (shipped in package linuxdoc-tools). The source files are text files, including formatting instructions for AsciiDoc, e.g. a line begining with two equal signs will be considered as a header of level two, that will be written as a <h2> tag in XHTML file generated by asciidoc.

Specific instructions and tips to translate text files to be processed by AsciiDoc are provided in Translation of text files to be processed by AsciiDoc to generate web pages.

For each language, when translation of template.po, slint.html, installer.html and package.html will be completed, the old home page will be replaced by the new one so that end users benefit of new pages in that language.

Practical recommendations for translators

  • Depending on amount of work needed and available resources, there can be one translator or a team of translators per target language. In all cases, I recommend that at least one person be responsible for organizing the team’s work, checking the translations and transmitting the checked PO file to the maintainer(s). Let’s call this person the team coordinator.

  • Don’t feel obliged to translate verbatim. Not only is this rarely the best way to convey the meaning, but in addition this often leads to sentences too long to fit in allowed space.

  • Use a specialized PO editor, not a general text editor. This will not only prevent inadvertently editing msgid strings but also facilitate their work and automatize additional checks, as the presence of a variable in the translation with the same spelling as in the original.

  • While translating, choose a serif fixed width (or "monospaced") font, like Courier. That allow to visually distinguish characters that otherwise would look the same, and check line’s length when that matters.

  • If possible, check the layout of the messages. You could do that looking at the context in the relevant source file. Even better, simply run the translated script. This is especially important if you are translating dialog boxes. In particular, take care not to write too long sentences on one single line if it appears that the text can’t flow on next one.

  • Bear in mind that in VGA mode (used in text installers, in particular), line’s width is limited theoretically to 80 characters, but practically often to 74.

  • Do not add question marks that are not present in the original message.

  • If the message refers to tags (text on the buttons) of dialog boxes, like "OK", "Yes", "NO", "Continue", "Cancel", check how theses tags are translated in your language in dialog’s interface and use the same words.

  • Avoid colloquialisms and technical slang.

  • To "cut" (or end) a line inside a "dialog" box you should type \n: pressing [Enter] will not insert a "new line" character in the text viewed by user.

In addition, you will have to comply to gettext’s requirements for it to work:

  • If a word beginning with a dollar sign is included in the original text it should be present in the translation with exactly the same spelling (case matters).

  • The translation text should include a "new line" character (or line feed, represented by "\n") at the beginning or at the end, exactly as the original text does. Conversely, if the original text doesn’t have the character, then the translation shouldn’t have it.

  • A single backslash character "\" is not allowed in the translation.

To check your translation against gettext’s requirements you could run following command:

  msgfmt -c <name of the PO file>

Warning about translation of man pages

Preserve carefully syntax of man pages found in English markup. For instance don’t replace:

  • B< with B < (don’t insert a space)

  • B< with b< (keep the B as a capital letter - and don’t replace it by the Greek capital letter BETA that looks the same on the screen)

  • "I" with | (don’t replace the capital letter I with a pipe symbol)

When translating shell commands, preserve English names of paths when needed. But you may and should translate arguments to be replaced by a value like packagename