msgfmt -c <name of the PO file>
So, you want to help and contribute to the Slint project? Welcome on board!
The work needed to provide Slint’s products mainly consists in 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.
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 (at) slint (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.
Please read Practical recommendations for translators below.
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).
At time of writing the Slint installers and main Slackware administration tools are fully translated in Langues listed in our home page. 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 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.
On Transifex you will find two sets of files to translate, that Transifex calls "projects", that share their language teams:
The slint space host POT files gathering messages from one or several shell scripts or manual pages, that allow localization of the installers and administration tools. Please take care of these files priority.
The slintwebsite spaces hosts one POT file for each of our web pages plus one for the template used to uniformize the look and layout of all pages.
Here is the current list of the POT files in the slint space 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
In the slintwebsite pages, the first part of each page name (before .pot) refers to the corresponding web page.
The web pages: slint.html, installer.html and package.html are intended to end users who do not speak English, so please translate them priority as well as template.pot after the files in the slint space.
|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.|
For your information, the web pages are generated from text files using the asciidoc software, and the PO and POT files converted back and forth using the po4a software.
Depending on the 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>
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)
|Using a monospace serif font helps in that matter, whatever be the tool you use: Transifex' UI or a specialzed PO editor.|
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