INTERNATIONALIZATION AND LOCALIZATION OF SHELL SCRIPTS 5. Practical recommendations for developers and maintainers ------------------------------------------------------------ Many English words are polysemous: their meaning can only be determined from the context of their usage. As a practical consequence, the more context you provide, the more accurate the translation can be. Example: recently, while downloading a software I saw something like this: 31min gauche Go figure? After a while I realized that "left" had been translated "gauche" (as in "left hand"). Also, the order of words in a sentence vary upon the languages, furthermore not all languages are written left to right. So I suggest to mark entire paragraphs, or at least entire sentences, not lines, let alone isolated words but in special cases. For instance, if text paragraphs were split in lines displayed by 'echo' commands, replace all consecutive 'echo' commands by a single 'gettext' or 'eval_gettext' command. Do not fear to include the variable substitutions in the sentences, the PO editor will check that they be present as is in the translations. *** Recommendations for 'dialog' program. The 'dialog' program provides an UI taking the form of dialog boxes. There are other programs with similar feature, to which I guess (only a guess), these recommendations are also applicable. Bear in mind following considerations, when making or reviewing the design choices for dialog's boxes. - Messages translated in other languages will often be significantly longer than the original (usually in English) ones. - In situations where only VGA drivers are available (e.g. in text installers) screen display is generally restricted to 25 rows of 80 columns with most widely used fonts, but in practice word wrapping occurs if line's length is more than 74 characters. As a consequence, for static layouts text lines' length should be at most 74 characters -- as in this document :-) - Vertical scrolling of text is widely accepted as frequently used to display web pages, and sometimes unavoidable. On the contrary, horizontal scrolling should be avoided as much as possible. Therefore I suggest to: - renounce to tightly adjust the dimensions of the boxes to the size of the English text as the translation will probably break your carefully crafted layout, unless you impose unreasonable (IMO) constraints to the translators, - in particular, not narrow boxes' width to what is strictly needed for displaying English texts, especially in tabular layouts where the text can't flow on next lines, - favor a fluid layout of the displayed text over a fixed one to avoid too long lines in translations, whose complete display would then necessitate horizontal scrolling (which, moreover, is not always possible). In particular, I recommend to favor options which take as first argument a text string instead of a file, to allow line wrapping. It is still possible to preserve the intended layout using white spaces for indentation. For instance, dialog --textbox can be replaced with dialog --no-collapse --msgbox "`cat `" Didier Spaier