diff -urN mplayer-svn-r23545.orig/configure mplayer-svn-r23545/configure --- mplayer-svn-r23545.orig/configure 2007-06-11 00:49:37 +0300 +++ mplayer-svn-r23545/configure 2007-06-12 21:58:10 +0300 @@ -225,6 +225,7 @@ --enable-linux-devfs set default devices to devfs [disable] --enable-termcap use termcap database for key codes [autodetect] --enable-termios use termios database for key codes [autodetect] + --enable-nls use Native Language Support [disable] --disable-iconv disable iconv for encoding conversion [autodetect] --disable-langinfo do not use langinfo [autodetect] --enable-lirc enable LIRC (remote control) support [autodetect] @@ -530,6 +531,7 @@ _dxr2=auto _dxr3=auto _ivtv=auto +_nls=no _iconv=auto _langinfo=auto _rtc=auto @@ -835,6 +837,8 @@ --disable-dxr3) _dxr3=no ;; --enable-ivtv) _ivtv=yes ;; --disable-ivtv) _ivtv=no ;; + --enable-nls) _nls=yes ;; + --disable-nls) _nls=no ;; --enable-iconv) _iconv=yes ;; --disable-iconv) _iconv=no ;; --enable-langinfo) _langinfo=yes ;; @@ -3078,6 +3082,14 @@ fi echores "$_rpath" +echocheck "NLS" +if test "$_nls" = yes ; then + _def_nls='#define ENABLE_NLS 1' +else + _def_nls='#undef ENABLE_NLS' +fi +echores "$_nls" + echocheck "iconv" if test "$_iconv" = auto ; then _iconv_tmp='#include ' @@ -7838,6 +7850,10 @@ try to recompile MPlayer with this option disabled! */ $_def_select +$_def_nls +#define PACKAGE "mplayer" +#define LOCALEDIR "$_prefix/share/locale" + /* define this to use iconv(3) function to codepage conversions */ $_def_iconv diff -urN mplayer-svn-r23545.orig/mp_msg.c mplayer-svn-r23545/mp_msg.c --- mplayer-svn-r23545.orig/mp_msg.c 2007-06-05 23:28:31 +0300 +++ mplayer-svn-r23545/mp_msg.c 2007-06-12 22:05:07 +0300 @@ -8,6 +8,13 @@ #include "config.h" +#ifdef ENABLE_NLS +#include +#define _(x) gettext(x) +#else +#define _(x) (x) +#endif + #ifdef USE_ICONV #include #include @@ -25,7 +32,7 @@ #include "mp_msg.h" /* maximum message length of mp_msg */ -#define MSGSIZE_MAX 3072 +#define MSGSIZE_MAX 4096 int mp_msg_levels[MSGT_MAX]; // verbose level of this module. inited to -2 int mp_msg_level_all = MSGL_STATUS; @@ -64,6 +71,11 @@ } *precoded = '\0'; return recoded_filename; +#ifdef ENABLE_NLS + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); +#endif #endif } @@ -77,7 +89,14 @@ #ifdef USE_ICONV mp_msg_charset = getenv("MPLAYER_CHARSET"); if (!mp_msg_charset) + //setlocale(LC_CTYPE, ""); mp_msg_charset = get_term_charset(); + //setlocale(LC_CTYPE, "C"); +#ifdef ENABLE_NLS + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); +#endif #endif } @@ -92,14 +111,14 @@ if (!mp_msg_test(mod, lev)) return; // do not display va_start(va, format); - vsnprintf(tmp, MSGSIZE_MAX, format, va); + vsnprintf(tmp, MSGSIZE_MAX, _(format), va); va_end(va); tmp[MSGSIZE_MAX-2] = '\n'; tmp[MSGSIZE_MAX-1] = 0; #ifdef HAVE_NEW_GUI if(use_gui) - guiMessageBox(lev, tmp); + guiMessageBox(lev, _(tmp)); #endif #if defined(USE_ICONV) && defined(MSG_CHARSET)