Improved i18n support
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Thu, 12 Jul 2007 19:35:44 +0000 (19:35 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Thu, 12 Jul 2007 19:35:44 +0000 (19:35 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@327 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/configure.in
navit/po/Makefile.am [new file with mode: 0644]
navit/po/Makefile.in [deleted file]
navit/po/Makefile.in.in [deleted file]
navit/po/navit.pot [deleted file]

index cdaab14..218e7fc 100644 (file)
@@ -175,6 +175,63 @@ AC_SUBST(PYTHON_CFLAGS)
 AC_SUBST(PYTHON_LIBS)
 AM_CONDITIONAL(BINDING_PYTHON, [test "x$python" = "xyes"])
 
+# NLS
+
+AC_ARG_ENABLE(nls,
+  [  --disable-nls        disable Native Language Support ( gettext/libintl )],
+   enable_nls=$enableval, enable_nls=yes)
+
+
+INTLIBS=""
+MOFILES=""
+POFILES=""
+LINGUAS=""
+
+if test x$enable_nls = xyes; then
+
+  AC_CHECK_FUNC(gettext, [HAVEGETTEXT="yes"], 
+            AC_CHECK_LIB(intl, gettext, [INTLIBS="-lintl" HAVEGETTEXT="yes"],
+                        INTLIBS="" ))
+
+  AC_CHECK_PROG(XGETTEXT, xgettext, xgettext)
+  AC_CHECK_PROG(MSGMERGE, msgmerge, msgmerge)
+  AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt)
+
+  if test "$XGETTEXT" != ""; then 
+    if $XGETTEXT --help 2>&1 | grep illegal >/dev/null ; then
+        echo "xgettext isn't GNU version"
+        XGETTEXT=""
+    fi
+  fi
+
+  if test "$XGETTEXT" != "" -a "$HAVEGETTEXT" != ""; then
+     PO=""
+     if test "$LINGUAS" = ""; then
+           ling=` (cd po; /bin/ls *.po) `
+          for l in $ling; do
+               lcode=`basename $l .po`
+               LINGUAS="$LINGUAS$lcode "
+           done
+    fi
+    AC_DEFINE(ENABLE_NLS, [1], [NLS Please])
+    echo "xgettext and gettext() exist; will build i18n support for $LINGUAS"
+  else
+   LINGUAS=""
+   PO=""
+   echo "xgettext and libintl.a don't both exist; will not build i18n support"
+ fi
+ for lang in $LINGUAS; do
+    MOFILES="$MOFILES $lang.mo"
+ done
+ for lang in $LINGUAS; do
+    POFILES="$POFILES $lang.po"
+ done
+fi
+
+AC_SUBST(INTLIBS)
+AC_SUBST(MOFILES)
+AC_SUBST(POFILES)
+
 LIBS="$LIBS -lm -rdynamic"
 
 PACKAGE=navit
@@ -182,8 +239,6 @@ AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
 AC_SUBST(PACKAGE)
 AC_SUBST(VERSION)
-ALL_LINGUAS="fr de pl it"
-AM_GNU_GETTEXT
 
 AC_OUTPUT([
 Makefile
diff --git a/navit/po/Makefile.am b/navit/po/Makefile.am
new file mode 100644 (file)
index 0000000..107ce23
--- /dev/null
@@ -0,0 +1,47 @@
+CATALOGS = @MOFILES@
+
+CLEANFILES = $(CATALOGS) navit.pot
+
+# keep this sorted
+EXTRA_DIST = @POFILES@
+
+POTFILES  = \
+       $(top_builddir)/src/main.c \
+       $(top_builddir)/src/navigation.c \
+       $(top_builddir)/src/navit.c \
+       $(top_builddir)/src/country.c \
+       $(top_builddir)/src/gui/gtk/destination.c \
+       $(top_builddir)/src/gui/gtk/gui_gtk_action.c
+
+
+SUFFIXES = .po .mo
+
+.po.mo: 
+       $(MSGFMT) --check --verbose --statistics --output-file=$@ $<
+
+all: @MOFILES@
+
+@POFILES@: navit.pot
+       $(MSGMERGE) --update --verbose $@ navit.pot
+
+navit.pot: $(POTFILES)
+        $(XGETTEXT) --default-domain=navit \
+       --add-comments --keyword=_ --keyword=_n $(POTFILES)
+       if cmp -s navit.po navit.pot; then \
+           rm -f navit.po; \
+       else \
+           mv -f navit.po navit.pot; \
+       fi
+
+install-data-local:  $(CATALOGS)
+       $(mkinstalldirs) $(DESTDIR)$(datadir)/locale
+       chmod 755 $(DESTDIR)$(datadir)/locale 
+       for n in $(CATALOGS) __DuMmY ; do \
+               if test "$$n" -a "$$n" != "__DuMmY" ; then \
+                       l=`basename $$n .mo`; \
+                       $(mkinstalldirs) $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES; \
+                       chmod 755 $(DESTDIR)$(datadir)/locale/$$l; \
+                       chmod 755 $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES; \
+                       $(INSTALL_DATA) -m 644 $$n $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES/navit.mo; \
+               fi; \
+       done
diff --git a/navit/po/Makefile.in b/navit/po/Makefile.in
deleted file mode 100644 (file)
index 8447494..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-PO-FILES=de.po fr.po pl.po it.po
-LANGUAGES=$(PO-FILES:.po=)
-
-# Maybe this should be autogenerated by "configure".
-LOCALEDIR=@LOCALEDIR@
-
-# If other files will be translated, they must be also here:
-CSOURCES=../src/main.c \
-       ../src/navigation.c \
-       ../src/navit.c \
-       ../src/country.c \
-       ../src/gui/gtk/destination.c \
-       ../src/gui/gtk/gui_gtk_action.c \
-       ../src/gui/sdl/gui_sdl_window.cpp
-
-
-MO-FILES = $(LANGUAGES:=.mo)
-
-all: $(MO-FILES)
-
-install: $(MO-FILES)
-       @for i in $(LANGUAGES); do \
-        /usr/bin/install -c -d $(DESTDIR)$(LOCALEDIR)/$$i/LC_MESSAGES; \
-        /usr/bin/install -c -m 444 $$i.mo $(DESTDIR)$(LOCALEDIR)/$$i/LC_MESSAGES/xaos.mo; \
-        done
-
-clean:
-       rm -f $(MO-FILES)
-
-distclean: clean
-       rm Makefile
-
-navit.pot: $(CSOURCES)
-       /usr/bin/xgettext -k_ -k_n -o navit.pot $(CSOURCES)
-
-$(PO-FILES): navit.pot
-       test -e $@
-       /usr/bin/msgmerge $@ navit.pot > $@.new
-       mv $@.new $@
-
-$(MO-FILES): $(PO-FILES)
-       /usr/bin/msgfmt -o $@ -c -v --statistics $(@:.mo=.po)
-
-new-languages: Makefile
-       @for i in $(LANGUAGES); do \
-        test -e $$i.po || cp navit.pot $$i.po; \
-        done
diff --git a/navit/po/Makefile.in.in b/navit/po/Makefile.in.in
deleted file mode 100644 (file)
index ae108ad..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-PO-FILES=fr.po
-LANGUAGES=$(PO-FILES:.po=)
-
-# Maybe this should be autogenerated by "configure".
-LOCALEDIR=@LOCALEDIR@
-
-# If other files will be translated, they must be also here:
-CSOURCES=../src/main.c ../src/navigation.c
-
-
-MO-FILES = $(LANGUAGES:=.mo)
-
-all: $(MO-FILES)
-
-install: $(MO-FILES)
-       @for i in $(LANGUAGES); do \
-        @INSTALL@ -d $(DESTDIR)$(LOCALEDIR)/$$i/LC_MESSAGES; \
-        @INSTALL@ -m 444 $$i.mo $(DESTDIR)$(LOCALEDIR)/$$i/LC_MESSAGES/xaos.mo; \
-        done
-
-clean:
-       rm -f $(MO-FILES)
-
-distclean: clean
-       rm Makefile
-
-messages.pot: $(CSOURCES)
-       @XGETTEXT@ -o navit.pot $(CSOURCES)
-
-$(PO-FILES): navit.pot
-       test -e $@
-       @MSGMERGE@ $@ navit.pot > $@.new
-       mv $@.new $@
-
-$(MO-FILES): $(PO-FILES)
-       @MSGFMT@ -o $@ -c -v --statistics $(@:.mo=.po)
-
-new-languages: Makefile
-       @for i in $(LANGUAGES); do \
-        test -e $$i.po || cp navit.pot $$i.po; \
-        done
diff --git a/navit/po/navit.pot b/navit/po/navit.pot
deleted file mode 100644 (file)
index 8e43422..0000000
+++ /dev/null
@@ -1,517 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-07-12 20:20+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../src/main.c:110
-#, c-format
-msgid "Error parsing '%s': %s\n"
-msgstr ""
-
-#: ../src/main.c:112
-#, c-format
-msgid "Using '%s'\n"
-msgstr ""
-
-#: ../src/main.c:115
-#, c-format
-msgid "No instance has been created, exiting\n"
-msgstr ""
-
-#: ../src/navigation.c:181
-#, c-format
-msgid "%d meters"
-msgstr ""
-
-#: ../src/navigation.c:183
-#, c-format
-msgid "in %d meters"
-msgstr ""
-
-#: ../src/navigation.c:189
-#, c-format
-msgid "%d.%d kilometer"
-msgstr ""
-
-#: ../src/navigation.c:191
-#, c-format
-msgid "in %d.%d kilometers"
-msgstr ""
-
-#: ../src/navigation.c:197
-msgid "one kilometer"
-msgstr ""
-
-#: ../src/navigation.c:199
-msgid "in one kilometer"
-msgstr ""
-
-#: ../src/navigation.c:202
-msgid "two kilometers"
-msgstr ""
-
-#: ../src/navigation.c:204
-msgid "in two kilometers"
-msgstr ""
-
-#: ../src/navigation.c:207
-msgid "three kilometers"
-msgstr ""
-
-#: ../src/navigation.c:209
-msgid "in three kilometers"
-msgstr ""
-
-#: ../src/navigation.c:212
-msgid "four kilometers"
-msgstr ""
-
-#: ../src/navigation.c:214
-msgid "in four kilometers"
-msgstr ""
-
-#: ../src/navigation.c:217
-#, c-format
-msgid "%d kilometers"
-msgstr ""
-
-#: ../src/navigation.c:219
-#, c-format
-msgid "in %d kilometers"
-msgstr ""
-
-#: ../src/navigation.c:423
-msgid "right"
-msgstr ""
-
-#: ../src/navigation.c:431
-msgid "left"
-msgstr ""
-
-#: ../src/navigation.c:435
-msgid "easily "
-msgstr ""
-
-#: ../src/navigation.c:439
-msgid "strongly "
-msgstr ""
-
-#: ../src/navigation.c:442
-msgid "unknown "
-msgstr ""
-
-#: ../src/navigation.c:448
-msgid "When possible, please turn"
-msgstr ""
-
-#: ../src/navigation.c:455
-#, c-format
-msgid "Follow the road for the next %s"
-msgstr ""
-
-#: ../src/navigation.c:459
-msgid "soon"
-msgstr ""
-
-#: ../src/navigation.c:465
-msgid "now"
-msgstr ""
-
-#: ../src/navigation.c:468
-msgid "error"
-msgstr ""
-
-#: ../src/navigation.c:473
-msgid "strength_pos"
-msgstr ""
-
-#: ../src/navigation.c:475
-msgid "direction_pos"
-msgstr ""
-
-#: ../src/navigation.c:477
-msgid "distance_pos"
-msgstr ""
-
-#: ../src/navigation.c:487
-#, c-format
-msgid "Turn %s%s %s"
-msgstr ""
-
-#: ../src/navigation.c:490
-#, c-format
-msgid "You have reached your destination %s"
-msgstr ""
-
-#: ../src/navit.c:313 ../src/gui/gtk/gui_gtk_action.c:159
-msgid "Layout"
-msgstr ""
-
-#: ../src/navit.c:326
-msgid "Projection"
-msgstr ""
-
-#: ../src/country.c:23
-msgid "Czech Republic"
-msgstr ""
-
-#: ../src/country.c:24
-msgid "Slovakia"
-msgstr ""
-
-#: ../src/country.c:25
-msgid "San Marino"
-msgstr ""
-
-#: ../src/country.c:26
-msgid "Estonia"
-msgstr ""
-
-#: ../src/country.c:27
-msgid "Georgia"
-msgstr ""
-
-#: ../src/country.c:28
-msgid "Latvia"
-msgstr ""
-
-#: ../src/country.c:29
-msgid "Lithuania"
-msgstr ""
-
-#: ../src/country.c:30
-msgid "Moldova"
-msgstr ""
-
-#: ../src/country.c:31
-msgid "Russian Federation"
-msgstr ""
-
-#: ../src/country.c:32
-msgid "Ukraine"
-msgstr ""
-
-#: ../src/country.c:33
-msgid "Belarus"
-msgstr ""
-
-#: ../src/country.c:34
-msgid "Egypt"
-msgstr ""
-
-#: ../src/country.c:35
-msgid "Greece"
-msgstr ""
-
-#: ../src/country.c:36
-msgid "Netherlands"
-msgstr ""
-
-#: ../src/country.c:37
-msgid "Belgium"
-msgstr ""
-
-#: ../src/country.c:38
-msgid "France"
-msgstr ""
-
-#: ../src/country.c:39
-msgid "Spain"
-msgstr ""
-
-#: ../src/country.c:40
-msgid "Hungary"
-msgstr ""
-
-#: ../src/country.c:41
-msgid "Italy"
-msgstr ""
-
-#: ../src/country.c:42
-msgid "Romania"
-msgstr ""
-
-#: ../src/country.c:43
-msgid "Switzerland"
-msgstr ""
-
-#: ../src/country.c:44
-msgid "Austria"
-msgstr ""
-
-#: ../src/country.c:45
-msgid "United Kingdom"
-msgstr ""
-
-#: ../src/country.c:46
-msgid "Denmark"
-msgstr ""
-
-#: ../src/country.c:47
-msgid "Sweden"
-msgstr ""
-
-#: ../src/country.c:48
-msgid "Norway"
-msgstr ""
-
-#: ../src/country.c:49
-msgid "Poland"
-msgstr ""
-
-#: ../src/country.c:50
-msgid "Germany"
-msgstr ""
-
-#: ../src/country.c:51
-msgid "Gibraltar"
-msgstr ""
-
-#: ../src/country.c:52
-msgid "Portugal"
-msgstr ""
-
-#: ../src/country.c:53
-msgid "Luxembourg"
-msgstr ""
-
-#: ../src/country.c:54
-msgid "Ireland"
-msgstr ""
-
-#: ../src/country.c:55
-msgid "Iceland"
-msgstr ""
-
-#: ../src/country.c:56
-msgid "Albania"
-msgstr ""
-
-#: ../src/country.c:57
-msgid "Malta"
-msgstr ""
-
-#: ../src/country.c:58
-msgid "Cyprus"
-msgstr ""
-
-#: ../src/country.c:59
-msgid "Finland"
-msgstr ""
-
-#: ../src/country.c:60
-msgid "Bulgaria"
-msgstr ""
-
-#: ../src/country.c:61
-msgid "Lebanon"
-msgstr ""
-
-#: ../src/country.c:62
-msgid "Andorra"
-msgstr ""
-
-#: ../src/country.c:63
-msgid "Syria"
-msgstr ""
-
-#: ../src/country.c:64
-msgid "Saudi Arabia"
-msgstr ""
-
-#: ../src/country.c:65
-msgid "Libia"
-msgstr ""
-
-#: ../src/country.c:66
-msgid "Israel"
-msgstr ""
-
-#: ../src/country.c:67
-msgid "Palestinia"
-msgstr ""
-
-#: ../src/country.c:68
-msgid "Liechtenstein"
-msgstr ""
-
-#: ../src/country.c:69
-msgid "Morocco"
-msgstr ""
-
-#: ../src/country.c:70
-msgid "Algeria"
-msgstr ""
-
-#: ../src/country.c:71
-msgid "Tunisia"
-msgstr ""
-
-#: ../src/country.c:72
-msgid "Serbia"
-msgstr ""
-
-#: ../src/country.c:73
-msgid "Jordan"
-msgstr ""
-
-#: ../src/country.c:74
-msgid "Croatia"
-msgstr ""
-
-#: ../src/country.c:75
-msgid "Slovenia"
-msgstr ""
-
-#: ../src/country.c:76
-msgid "Bosnia and Herzegovina"
-msgstr ""
-
-#: ../src/country.c:77
-msgid "Macedonia"
-msgstr ""
-
-#: ../src/country.c:78
-msgid "Turkey"
-msgstr ""
-
-#: ../src/country.c:79
-msgid "Monaco"
-msgstr ""
-
-#: ../src/country.c:80
-msgid "Azerbaijan"
-msgstr ""
-
-#: ../src/country.c:81
-msgid "Armenia"
-msgstr ""
-
-#: ../src/country.c:82
-msgid "Faroe Islands"
-msgstr ""
-
-#: ../src/country.c:83
-msgid "Western Sahara"
-msgstr ""
-
-#: ../src/country.c:84
-msgid "Svalbard and Jan Mayen"
-msgstr ""
-
-#: ../src/gui/gtk/destination.c:293 ../src/gui/sdl/gui_sdl_window.cpp:610
-msgid "Country"
-msgstr ""
-
-#: ../src/gui/gtk/destination.c:295
-msgid "Zip Code"
-msgstr ""
-
-#: ../src/gui/gtk/destination.c:297 ../src/gui/sdl/gui_sdl_window.cpp:611
-msgid "City"
-msgstr ""
-
-#: ../src/gui/gtk/destination.c:299
-msgid "District/Township"
-msgstr ""
-
-#: ../src/gui/gtk/destination.c:302 ../src/gui/sdl/gui_sdl_window.cpp:612
-msgid "Street"
-msgstr ""
-
-#: ../src/gui/gtk/destination.c:304
-msgid "Number"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:156
-msgid "Display"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:157
-msgid "Route"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:158
-msgid "Map"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:160 ../src/gui/sdl/gui_sdl_window.cpp:595
-msgid "ZoomOut"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:161 ../src/gui/sdl/gui_sdl_window.cpp:592
-msgid "ZoomIn"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:162
-msgid "Refresh"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:163
-msgid "Info"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:164
-msgid "Destination"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:165
-msgid "Test"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:166
-msgid "_Quit"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:173
-msgid "Cursor"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:174
-msgid "Orientation"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:181
-msgid "Data"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:182
-msgid "VisibleBlocks"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:183
-msgid "VisibleTowns"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:184
-msgid "VisiblePolys"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:185
-msgid "VisibleStreets"
-msgstr ""
-
-#: ../src/gui/gtk/gui_gtk_action.c:186
-msgid "VisiblePoints"
-msgstr ""
-
-#: ../src/gui/sdl/gui_sdl_window.cpp:586
-msgid "RoadBook"
-msgstr ""
-
-#: ../src/gui/sdl/gui_sdl_window.cpp:598
-msgid "Quit"
-msgstr ""