msgcat file_downloaded_from_Transifex > file_renamed
The Transifex platform eases cooperation between translators, being a place where each translation team can centralize its PO files and share information. It provides an on line editor, that can also be used to review translations.
To learn how to to use it visit the Transifex Help Desk.
You may use Transifex' on line editor as it comes handy, but:
don’t forget to make frequent local backups, just in case
text formatting of translations is easier to do and check locally, using a specialized PO editor like Lokalize or Poedit
To translate webpages in asciidoc format, usage of Transifex is mandatory (see below).
|If you prefer to translate locally, be sure to check in Transifex Download for translation (not Download for use) and Lock this translation to notify others you're working on it. This could avoid duplicating efforts… But two team members can share the same big PO file, as long as they first agree on who translates what.|
Transifex doesn’t wrap lines of translated text. This can lead to very long lines, hard to read in a text editor and that can even make it crash eating all the CPU. To avoid that, after having downloaded the PO file, just type:
then use Lokalize or Poedit to translate file_renamed. This file will have wrapped lines but will be otherwise identical to downloaded one, so that won’t hurt.
If you translate locally don’t forget to upload edited file on Transifex when you’re idle, not to let it locked uselessly.
Lokalize is included in Slackware. You can either read the Lokalize Handbook on line or access it from the Help menu of pressing [F1]. Recommended settings:
Settings ⇒ Configure Lokalize ⇒ Identity: Choose your language (set to target language).
Settings ⇒ Configure Lokalize ⇒ Appearance: Choose a serif fixed width (mono spaced) font like Courier. This will help you distinguish 0 (the digit) and O (the letter) or | (the pipe) from I (the letter) and check formatting, for instance first word’s alignment on consecutive lines.
Settings ⇒ Configure Lokalize ⇒ Appearance: Check LEDS to indicate Fuzzy and Untranslated status as well as cursor column number, very handy to check line’s length when that matters.
Poedit is not shipped in Slackware but is available @ SlackBuilds.org.
It lacks a handy way to check line’s length, but this put aside its features are similar to those of Lokalize, so choosing one or the other is a matter of personal preference.
In Edit ⇒ Preferences ⇒ Editor, check Automatic spell checking and, as with Lokalize, choose a serif fixed width font.
This compressed archive includes all that is needed to build slint products as well as tools intended for slint contributors. It is named slint-[date].tar.xz and provided in directory pub/.
To unpack it, type:
tar xf slint-[date].tar.xz
This will output a directory slint-[date]. See file CONTENT.TXT in it for details, table below only lists scripts used to build slint products, and tools intended for translators. All paths indicated are relative to that directory.
|Script name and location||Purpose|
Make hybrid (CD/DVD or USB) image of slackware installer or of a Slackware distribution including it
Internationalize some Slackware packages and build package SlintLocales.
Make a package including all up to date translations of Slackware scripts included in Slint installers (all versions) or in tools intended for Slackware.
This toolbox manage translations of messages gathered in slackware.pot.
This toolbox manage translations of messages output of script slint.sh .
Generate localized man pages for some tools intended for Slackware. This allows to check PO files. Usage of this script requires to have installed package po4a, available in directory extra/.
Resource slint, file slackware.pot
When you are done with the translation, just put the file in directory wip/, (re)named e.g. as pt_BR.slackware.po, then run /path/to/tools_for_translators/toolbox.sh and choose check_PO in the menu. If all goes well:
copy pt_BR.slackware.po in directory po/ (translation in Brazilian Portuguese in this example)
run /path/to/build/SlintLocales.SlackBuild to include your updated translation in package SlintLocales
run /path/to/build/slint.sh to make an hybrid CD or USB image of installer
burn the image on a CD or USB key
try the installer (in Portuguese in this case, of course), either in a virtual or a real machine
|To run the installer in a virtual machine you can use directly the file ending in .iso as virtual media, no need to burn it on a physical media in that case.|
Resource POT file for slint.sh
When you are done with the translation, just put the file in directory wip/, (re)named for instance as de_DE.slint.po for German, then run /path/to/tools_for_translators/toolbox_slint_sh and choose check_PO in the menu.
If all goes well, run again /path/to/tools_for_translators/toolbox_slint_sh but choose format_PO in the menu. If all goes well this will generate file slint.mo and put it in its place in the slint-[date] tree (in directory slint_locales/de/LC_MESSAGES in this example).
Then try your translation comparing English and German versions with commands like this:
/path/to/build/slint.sh LANG=de_DE.utf8 /path/to/build/slint.sh
Again, put PO file in directory wip/, (re)named for instance as es.pkgtools.po (man pages included in package pkgtools in Spanish). Then run this command:
If all goes this will output all included man pages (in this case: es.explodepkg, es.installpkg, es.makepkg, es.pkgtool, es.removepkg, es.upgradepkg). Else read the error messages, make needed fixes then do it again. You can avoid most errors following this Warning.
To compare localized vs genuine man pages, do this for instance (example for translation in Ukrainian) :
cd /path/to/wip/ LANG=uk_UA.utf8 GROFF_ENCODING=utf8 man ./installpkg # localized man page GROFF_ENCODING=utf8 man installpkg # genuine man page
To save typing "GROFF_ENCODING=utf8" every time, put this line in ~/.bashrc:
As indicated in Translation of web pages, following pages are generated by asciidoc from source text files: slint.html, installer.html, package.html, Contribute, Translators, Tools and ChangeLog as well as template.po.
These source text files should be translated using Transifex on line editor: uploading a translated text file on Transifex fails with an error message for a reason unknown of the writer, so translating files locally then uploading them on Transifex is not an option.
But Transifex on line editor has the advantage of allowing to add in translation files sentences or paragraphs that will stay linked to a string of the original English file.
This allows translators to customize their translations in adding information specific to their locale, as for instance how user can get help in their specific language or country, pointers to localized documentation, etc.
Following an update of an original English text file, text strings in translation files that matched strings modified in the English file will disappear from Transifex editor.
You can save some typing if you kept a local copy of the translation (dowloading it from Transifex): copy the old translation from that local copy and paste it into Transifex editor, then edit it as need be.
Even easier, if your translation was already uploaded on the website: clicking on "Page Source" at the bottom of that page’s menu will display the corresponding source text file.
Also, Transifex editor has a "Suggestions" feature (similar to the "Translation Memory" in Lokalize) where it "remembers" similar past translations of a string. This feature can been really useful whenever a website page gets updated. Transifex will remember your last translation of the string and present a "Use this" link next to the suggestion, so you can just use it, avoid re-typing and re-translating, then modify it slightly, and on to the next one.
asciidoc --help syntax > asciidoc.txt
writes the AsciiDoc Markup Syntax Summary in file asciidoc.txt, that you can then display with a pager or print.
Be careful to preserve the markup as is. For instance, adding or removing spaces or "newline" characters can have unexpected effects. Here are a few examples :
Beginning a paragraph with a space will generate a literal paragraph displayed with a specific font
"= some text" will generate a level 0 header (document title), but only if "=" is the first character of the line, there is a space after it and there is a blank line before.
" +" appended to a line will generate a line break only if there is space before the "+", that should be the last character of the line
|To avoid messing with formatting instructions, we recommend that you first copy the source string (in English) to the translation (just click on the icon showing two pages on the upper right of the source string area) then edit it.|
You can easily check the rendering of the web page generated from your translation of a source text file. Just do this:
lftp -c "mirror http://slint.fr/website/" # Download your translation from Transifex (we'll call it <translation.txt>) to directory website/ just created cd website CONFIG_FILE=slint.conf.en # Optionally, if the top title and the menu translated in your language are already uploaded on the website: wget http://slint.fr/slint.conf.ll; CONFIG_FILE=slint.conf.ll # replace "ll" with your language code (two letters) # then generate the web page asciidoc -b xhtml11 -a icons -f $CONFIG_FILE <translation.txt> # this command generates <translation.html> firefox <translation.html> &
Following words have a special meaning for AsciiDoc and should not be translated when they begin an admonition paragraph (and are often replaced by icons): TIP, NOTE, IMPORTANT, WARNING and CAUTION.
Generally speaking, links and URLs should not be translated, but associated caption may, depending on the context. In following examples (taken from output of asciidoc --help syntax) only the value of caption may be translated:
Document links: [[id]] (define link target) <<id,caption>> (link to target id) link:filename#id[caption] (link to external HTML file) URLs: http:address[caption] (link to web page) mailto:address[caption] (link to mail recipient) Images: image:filename[caption] (inline image) image::filename[caption] (block image)