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.


