diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 46 | ||||
-rwxr-xr-x | configure | 135 | ||||
-rw-r--r-- | core/mp_msg.c | 6 |
4 files changed, 22 insertions, 167 deletions
diff --git a/.gitignore b/.gitignore index 6fc7816d5c..7ceff799c5 100644 --- a/.gitignore +++ b/.gitignore @@ -14,8 +14,6 @@ /core/input/input_conf.h /tags /TAGS -/locale -/po /video/out/vo_opengl_shaders.h /video/out/vdpau_template.c /demux/ebml_defs.c @@ -286,11 +286,9 @@ ALL_PRG += mpv$(EXESUF) INSTALL_TARGETS += check_rst2man \ install-mpv \ - install-mpv-man \ - install-mpv-msg + install-mpv-man -INSTALL_NO_MAN_TARGETS += install-mpv \ - install-mpv-msg +INSTALL_NO_MAN_TARGETS += install-mpv DIRS = . \ audio \ @@ -309,8 +307,6 @@ DIRS = . \ video/filter \ video/out -MOFILES := $(MSG_LANGS:%=locale/%/LC_MESSAGES/mpv.mo) - ADDSUFFIXES = $(foreach suf,$(1),$(addsuffix $(suf),$(2))) ADD_ALL_DIRS = $(call ADDSUFFIXES,$(1),$(DIRS)) @@ -325,7 +321,7 @@ endif ###### generic rules ####### -all: $(ALL_PRG) locales +all: $(ALL_PRG) %.1: %.rst $(RST2MAN) $< $@ @@ -392,16 +388,9 @@ version.h .version: version.sh %$(EXESUF): %.c $(CC) $(CFLAGS) -o $@ $^ -locales: $(MOFILES) - -locale/%/LC_MESSAGES/mpv.mo: po/%.po - mkdir -p $(dir $@) - msgfmt -c -o $@ $< - %.ho: %.h $(CC) $(CFLAGS) -Wno-unused -c -o $@ -x c $< - ###### dependency declarations / specific CFLAGS ###### core/version.c osdep/mpv-rc.o: version.h @@ -421,46 +410,26 @@ install-no-man: $(INSTALL_NO_MAN_TARGETS) install-dirs: if test ! -d $(BINDIR) ; then $(INSTALL) -d $(BINDIR) ; fi if test ! -d $(CONFDIR) ; then $(INSTALL) -d $(CONFDIR) ; fi - if test ! -d $(LIBDIR) ; then $(INSTALL) -d $(LIBDIR) ; fi install-%: %$(EXESUF) install-dirs $(INSTALL) -m 755 $(INSTALLSTRIP) $< $(BINDIR) -install-mpv-man: $(foreach lang,$(MAN_LANGS),install-mpv-man-$(lang)) -install-mpv-msg: $(foreach lang,$(MSG_LANGS),install-mpv-msg-$(lang)) +install-mpv-man: install-mpv-man-en install-mpv-man-en: DOCS/man/en/mpv.1 if test ! -d $(MANDIR)/man1 ; then $(INSTALL) -d $(MANDIR)/man1 ; fi $(INSTALL) -m 644 DOCS/man/en/mpv.1 $(MANDIR)/man1/ -define MPLAYER_MAN_RULE -install-mpv-man-$(lang): DOCS/man/$(lang)/mpv.1 - if test ! -d $(MANDIR)/$(lang)/man1 ; then $(INSTALL) -d $(MANDIR)/$(lang)/man1 ; fi - $(INSTALL) -m 644 DOCS/man/$(lang)/mpv.1 $(MANDIR)/$(lang)/man1/ -endef - -$(foreach lang,$(filter-out en,$(MAN_LANG_ALL)),$(eval $(MPLAYER_MAN_RULE))) - -define MPLAYER_MSG_RULE -install-mpv-msg-$(lang): - if test ! -d $(LOCALEDIR)/$(lang)/LC_MESSAGES ; then $(INSTALL) -d $(LOCALEDIR)/$(lang)/LC_MESSAGES ; fi - $(INSTALL) -m 644 locale/$(lang)/LC_MESSAGES/mpv.mo $(LOCALEDIR)/$(lang)/LC_MESSAGES/ -endef - -$(foreach lang,$(MSG_LANG_ALL),$(eval $(MPLAYER_MSG_RULE))) - uninstall: $(RM) $(BINDIR)/mpv$(EXESUF) $(RM) $(MANDIR)/man1/mpv.1 - $(RM) $(foreach lang,$(MAN_LANGS),$(foreach man,mpv.1,$(MANDIR)/$(lang)/man1/$(man))) - $(RM) $(foreach lang,$(MSG_LANGS),$(LOCALEDIR)/$(lang)/LC_MESSAGES/mpv.1) + $(RM) $(MANDIR)/en/man1/mpv.1 clean: -$(RM) $(call ADD_ALL_DIRS,/*.o /*.d /*.a /*.ho /*~) - -$(RM) $(foreach lang,$(MAN_LANGS),$(foreach man,mpv.1,DOCS/man/$(lang)/$(man))) -$(RM) $(call ADD_ALL_DIRS,/*.o /*.a /*.ho /*~) -$(RM) $(call ADD_ALL_EXESUFS,mpv) - -$(RM) $(MOFILES) + -$(RM) DOCS/man/en/mpv.1 -$(RM) version.h -$(RM) core/codecs.conf.h -$(RM) core/input/input_conf.h @@ -470,7 +439,6 @@ clean: -$(RM) sub/osd_font.h distclean: clean - -$(RM) -r locale -$(RM) config.log config.mak config.h TAGS tags TAGS: @@ -484,7 +452,7 @@ osxbundle: -include $(DEP_FILES) -.PHONY: all locales *install* +.PHONY: all *install* .PHONY: checkheaders *clean .version # Disable suffix rules. Most of the builtin rules are suffix rules, @@ -272,10 +272,6 @@ case $(echo -n) in *) _echo_n='-n ' _echo_c= ;; # BSD echo esac -msg_lang_all='' -ls po/*.po >/dev/null 2>&1 && msg_lang_all=$(echo po/*.po | sed -e 's:po/\([^[:space:]]*\)\.po:\1:g') -man_lang_all=$(echo DOCS/man/??/mpv.1 DOCS/man/??_??/mpv.1 | sed -e "s:DOCS/man/\(..\)/mpv.1:\1:g" -e "s:DOCS/man/\(.._..\)/mpv.1:\1:g") -doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g") show_help(){ cat << EOF @@ -292,12 +288,9 @@ Installation directories: --mandir=DIR directory for installing man pages [PREFIX/share/man] --confdir=DIR directory for installing configuration files [PREFIX/etc/mpv] - --localedir=DIR directory for locale tree [PREFIX/share/locale] - --libdir=DIR directory for object code libraries [PREFIX/lib] - --codecsdir=DIR directory for binary codecs [LIBDIR/codecs] + --localedir=DIR directory for gettext locales [PREFIX/share/locale] Optional features: - --disable-mpv disable mpv compilation [enable] --disable-encoding disable encoding functionality [enable] --enable-termcap use termcap database for key codes [autodetect] --enable-termios use termios database for key codes [autodetect] @@ -378,22 +371,8 @@ Audio output: --disable-dsound disable DirectSound audio output [autodetect] --disable-select disable using select() on the audio device [enable] -Language options: - --enable-translation enable support for translated output [disable] - --language-doc=lang language to use for the documentation [en] - --language-man=lang language to use for the man pages [en] - --language-msg=lang extra languages for program messages [all] - --language=lang default language to use [en] -Specific options override --language. You can pass a list of languages separated -by whitespace or commas instead of a single language. Nonexisting translations -will be dropped from each list. All translations available in the list will be -installed. The value "all" will activate all translations. The LINGUAS -environment variable is honored. In all cases the fallback is English. -The program always supports English-language output; additional message -languages are only installed if --enable-translation is also specified. -Available values for --language-doc are: all $doc_lang_all -Available values for --language-man are: all $man_lang_all -Available values for --language-msg are: all $msg_lang_all +Localization options: + --enable-gettext enable gettext() usage [disable] Miscellaneous options: --enable-cross-compile enable cross-compilation [disable] @@ -492,9 +471,8 @@ _apple_remote=auto _apple_ir=auto _termcap=auto _termios=auto -#language=en _shm=auto -_translation=no +_gettext=no _cdda=auto _cddb=auto _coreaudio=auto @@ -541,12 +519,6 @@ for ac_option do --confdir=*) _confdir=$(echo $ac_option | cut -d '=' -f 2) ;; - --libdir=*) - _libdir=$(echo $ac_option | cut -d '=' -f 2) - ;; - --codecsdir=*) - _codecsdir=$(echo $ac_option | cut -d '=' -f 2) - ;; --localedir=*) _localedir=$(echo $ac_option | cut -d '=' -f 2) ;; @@ -580,18 +552,6 @@ for ac_option do --windres=*) _windres=$(echo $ac_option | cut -d '=' -f 2) ;; - --language-doc=*) - language_doc=$(echo $ac_option | cut -d '=' -f 2) - ;; - --language-man=*) - language_man=$(echo $ac_option | cut -d '=' -f 2) - ;; - --language-msg=*) - language_msg=$(echo $ac_option | cut -d '=' -f 2) - ;; - --language=*) - language=$(echo $ac_option | cut -d '=' -f 2) - ;; --enable-static) _ld_static='-static' @@ -616,8 +576,8 @@ for ac_option do --disable-debug) _debug= ;; - --enable-translation) _translation=yes ;; - --disable-translation) _translation=no ;; + --enable-gettext) _gettext=yes ;; + --disable-gettext) _gettext=no ;; --enable-cross-compile) _cross_compile=yes ;; --disable-cross-compile) _cross_compile=no ;; --enable-encoding) _encoding=yes ;; @@ -785,7 +745,6 @@ test -z "$_bindir" && _bindir="$_prefix/bin" test -z "$_datadir" && _datadir="$_prefix/share/mpv" test -z "$_mandir" && _mandir="$_prefix/share/man" test -z "$_confdir" && _confdir="$_prefix/etc/mpv" -test -z "$_libdir" && _libdir="$_prefix/lib" test -z "$_localedir" && _localedir="$_prefix/share/locale" for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do @@ -1271,54 +1230,13 @@ else fi -echocheck "translation support" -if test "$_translation" = yes; then - def_translation="#define CONFIG_TRANSLATION 1" +echocheck "gettext support" +if test "$_gettext" = yes; then + def_gettext="#define CONFIG_GETTEXT 1" else - def_translation="#undef CONFIG_TRANSLATION" + def_gettext="#undef CONFIG_GETTEXT" fi -echores "$_translation" - -echocheck "language" -# Set preferred languages, "all" uses English as main language. -test -z "$language" && language=$LINGUAS -test -z "$language_doc" && language_doc=$language -test -z "$language_man" && language_man=$language -test -z "$language_msg" && language_msg=$language -test -z "$language_msg" && language_msg="all" -language_doc=$(echo $language_doc | tr , " ") -language_man=$(echo $language_man | tr , " ") -language_msg=$(echo $language_msg | tr , " ") - -test "$language_doc" = "all" && language_doc=$doc_lang_all -test "$language_man" = "all" && language_man=$man_lang_all -test "$language_msg" = "all" && language_msg=$msg_lang_all - -if test "$_translation" != yes ; then - language_msg="" -fi - -# Prune non-existing translations from language lists. -# Set message translation to the first available language. -# Fall back on English. -for lang in $language_doc ; do - test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang" -done -language_doc=$tmp_language_doc -test -z "$language_doc" && language_doc=en - -for lang in $language_man ; do - test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang" -done -language_man=$tmp_language_man -test -z "$language_man" && language_man=en - -for lang in $language_msg ; do - test -f po/$lang.po && tmp_language_msg="$tmp_language_msg $lang" -done -language_msg=$tmp_language_msg - -echores "messages (en+): $language_msg - man pages: $language_man - documentation: $language_doc" +echores "$_gettext" echocheck "__builtin_expect" @@ -2910,22 +2828,6 @@ test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1" echores "$_libbs2b" -if test -z "$_codecsdir" ; then - for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \ - /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do - if test -d "$dir" ; then - _codecsdir="$dir" - break; - fi; - done -fi -# Fall back on default directory. -if test -z "$_codecsdir" ; then - _codecsdir="$_libdir/codecs" - mingw32 && _codecsdir="codecs" -fi - - echocheck "LCMS2 support" if test "$_lcms2" = auto ; then _lcms2=no @@ -3304,17 +3206,9 @@ export LC_ALL = C CONFIGURATION = $configuration -DOC_LANGS = $language_doc -DOC_LANG_ALL = $doc_lang_all -MAN_LANGS = $language_man -MAN_LANG_ALL = $man_lang_all -MSG_LANGS = $language_msg -MSG_LANG_ALL = $msg_lang_all - prefix = \$(DESTDIR)$_prefix BINDIR = \$(DESTDIR)$_bindir DATADIR = \$(DESTDIR)$_datadir -LIBDIR = \$(DESTDIR)$_libdir MANDIR = \$(DESTDIR)$_mandir CONFDIR = \$(DESTDIR)$_confdir LOCALEDIR = \$(DESTDIR)$_localedir @@ -3457,7 +3351,7 @@ cat > $TMPH << EOF #define MPLAYER_CONFDIR "$_confdir" #define MPLAYER_LOCALEDIR "$_localedir" -$def_translation +$def_gettext /* system headers */ @@ -3659,11 +3553,6 @@ Config files successfully generated by ./configure $configuration ! Data directory: $_datadir Config direct.: $_confdir - Languages: - Messages (in addition to English): $language_msg - Manual pages: $language_man - Documentation: $language_doc - Enabled optional drivers: Input: $inputmodules Codecs: libavcodecs $codecmodules diff --git a/core/mp_msg.c b/core/mp_msg.c index d0cce8e064..2e6f148438 100644 --- a/core/mp_msg.c +++ b/core/mp_msg.c @@ -26,7 +26,7 @@ #include "osdep/getch2.h" #include "osdep/io.h" -#ifdef CONFIG_TRANSLATION +#ifdef CONFIG_GETTEXT #include <locale.h> #include <libintl.h> #endif @@ -86,7 +86,7 @@ void mp_msg_init(void){ for(i=0;i<MSGT_MAX;i++) mp_msg_levels[i] = -2; mp_msg_cancolor = isatty(fileno(stdout)); mp_msg_levels[MSGT_IDENTIFY] = -1; // no -identify output by default -#ifdef CONFIG_TRANSLATION +#ifdef CONFIG_GETTEXT textdomain("mpv"); char *localedir = getenv("MPV_LOCALEDIR"); if (localedir == NULL && strlen(MPLAYER_LOCALEDIR)) @@ -249,7 +249,7 @@ void mp_msg(int mod, int lev, const char *format, ...) char *mp_gtext(const char *string) { -#ifdef CONFIG_TRANSLATION +#ifdef CONFIG_GETTEXT /* gettext expects the global locale to be set with * setlocale(LC_ALL, ""). However doing that would suck for a * couple of reasons (locale stuff is badly designed and sucks in |