Some basic rules and guidelines for handling strings in VLC source code:- Determine wether your string is user visible (GUI string) or not.- _("") makes a string translatable and also actually does translation (calls gettext)- _NS("") is the macosx variant of _(""). it is a short of [NSApp localizedString: ""] There is also a [NSApp delocalizeString:@""] OSX is entirely UTF8 native.- N_() only makes a string translatable. it is safe to use it in #defines and in arrays. Also use this when translating strings during the creation of config variables.- User visible strings should start with a capital. (Module descriptions for instance)- Sentences should end with a '.'- Menu-items with multiple words Should Uppercase the Big Words (look at your windows/IE menus) (only menu-items)- msg_* should not be translated and don't have strict punctuation (no . or capitals).- Write correct american english.- Beware of duplicity with strings that already occur in other files. Use those when possible.- When writing descriptions (especially for config options) make the string descriptive. Think to yourself: If the user reads this, will it help him understand this?- Config options short descriptions should contain range and unit of the option when appropriate. ( 0-360 degrees) ( Hz )- mms:// http:// UDP RTP are things that don't need translation, neither do variables, config options, module names and module shortcuts.- Consistent use of terminology throughout the sourcecode- Try to keep strings UTF8 where possible, to make sure a string can be displayed in chinese just as easily as in english in your window.- wxU is used for c UTF8 strings to unicode conversion. wxL2U transforms from current locale to unicode.