+ /* Check for translation config option */
+#if defined( ENABLE_NLS ) \
+ && ( defined( HAVE_GETTEXT ) || defined( HAVE_INCLUDED_GETTEXT ) )
+
+ /* This ain't really nice to have to reload the config here but it seems
+ * the only way to do it. */
+ config_LoadConfigFile( p_vlc, "main" );
+ config_LoadCmdLine( p_vlc, &i_argc, ppsz_argv, VLC_TRUE );
+
+ /* Check if the user specified a custom language */
+ psz_language = config_GetPsz( p_vlc, "language" );
+ if( psz_language && *psz_language && strcmp( psz_language, "auto" ) )
+ {
+ /* Reset the default domain */
+ SetLanguage( psz_language );
+
+ /* Translate "C" to the language code: "fr", "en_GB", "nl", "ru"... */
+ msg_Dbg( p_vlc, "translation test: code is \"%s\"", _("C") );
+
+ textdomain( PACKAGE );
+
+#if defined( SYS_BEOS ) || defined ( SYS_DARWIN ) || \
+ ( defined( WIN32 ) && !defined( HAVE_INCLUDED_GETTEXT ) )
+ /* BeOS only support UTF8 strings */
+ /* Mac OS X prefers UTF8 */
+ bind_textdomain_codeset( PACKAGE, "UTF-8" );
+#endif
+
+ module_EndBank( p_vlc );
+ module_InitBank( p_vlc );
+ module_LoadMain( p_vlc );
+ config_LoadCmdLine( p_vlc, &i_argc, ppsz_argv, VLC_TRUE );
+ }
+ if( psz_language ) free( psz_language );
+#endif
+