Use clear, simple and consistent language
Using clear, simple and consistent language and terminology is very important. Not only does it benefit the users of the American English version of the software, it also significantly helps the translation process and in the end the users of the localized versions. Please remember that the majority of the translators are not native English speakers. Any questions regarding the interpretation of the messages in the software may thus result in accidental mistranslations and problems for the end user of the localized version. Even if the translator does interpret the message correctly, an ambiguous original message will often become even more ambiguous when translated.
Specifically, never use slang, and avoid using abbreviations. These are usually exceptionally hard to translate correctly. As an example of these guidelines, write "IP number" instead of just "IP" when possible, "character set" instead of "charset", "application" instead of "app", "the folder /foo" instead of just "/foo", "proxy server" instead of just "proxy", "information" instead of just "info", "database" instead of just "db", and "application launcher" instead of just "launcher" if that's what you're referring to.
Also try to be consistent. Avoid using different terminology or different spellings in different places in your software. As an example, avoid to use several variants of "e-mail", "E-Mail", "email", and "Email" simultaneously. Also try to be consistent with the terminology of other software and especially the ones in the same software project, such as other GNOME software if your application is a GNOME application. The GNOME Word List is an useful resource when choosing terminology, and its terminology and spelling should be used whenever possible. This helps translators a lot, since they can keep translation databases small and still have a useful result when translating other applications, if a magnitude of different terminology and different spellings of the same terminology can be avoided.
Keep in mind that being consistent when designing messages is not only about using consistent writing. It's also about having a consistent use of white space and newlines. Every change in white space or the number of trailing newlines in otherwise identical messages means additional messages for the translators to translate. For this reason, try to avoid trailing spaces and newlines if possible. Also, try to be consistent and don't use white space before colons, question marks, exclamation marks and other punctuation marks. As examples of all this, avoid the following:
g_printf ("This preference controls the focus behavior. "); g_printf ("You need to supply a username.\n"); g_printf ("\nThe requested resolution is too big.\n\n"); g_printf ("Preferred username :"); g_printf ("Preferred password: "); g_printf ("You forgot to enter a username !");
Instead, try to eliminate the trailing spaces, newlines and white space before punctuation marks:
g_printf ("This preference controls the focus behavior."); g_printf ("You need to supply a username."); g_printf ("The requested resolution is too big."); g_printf ("Preferred username:"); g_printf ("Preferred password:"); g_printf ("You forgot to enter a username!");
Also avoid using tabs inside messages. Tabs are often used for alignment inside console text messages, but the amount of spacing the tab character (\t) represents is not easily clear from a visual inspection, and it's difficult to get the correct amount of tabs to use in the translated message in order for the translated message to align properly, since the translated words or sentence often is of a different length than the original. Please replace tabs with spaces inside messages (if you have to use spacing inside the message).
Standardize capitalization in your messages. The GNOME Human Interface Guidelines (HIG) has a chapter on capitalization, with guidelines for when to use capitalization and when not to.
Finally, please remember that GNU guidelines demand that original software messages should be written using American English. Please set (potential) personal feelings aside and avoid other spellings than the commonly accepted American English ones. Specifically, avoid using British English ones, like "colour" and "centre". Use "color" and "center" instead in the original software messages. British English spellings can be, and are, provided by British English translations instead, and standardizing on one way of spelling words in original messages helps the translation effort for all translators.