Code

improved handling of libintl issues
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sun, 18 May 2008 06:37:43 +0000 (06:37 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sun, 18 May 2008 06:37:43 +0000 (06:37 +0000)
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1362 a5681a0c-68f1-0310-ab6d-d61299d08faa

program/NEWS
program/configure.ac
program/src/rrd_i18n.h
program/src/rrd_tool.c

index c482d227ebb3128e4ac0a8d0bafcc9e1c92bef9b..2d2abf789e59bb12c268f2dacf9fe3f8911bb480 100644 (file)
@@ -36,7 +36,7 @@ NEW Graphing (Tobi Oetiker)
 * TEXTALIGN command to alter default text alignment behaviour
 * C API in-memory graphing with rrd_graph_v (Evan Miller)
 * draw dashed lines in graphs (Thomas Gutzler)
-* new interface graphv which returns inforamation useing the rrd_info
+* new interface graphv which returns inforamation using the rrd_info
   interface (Tobi Oetiker and Mark Plaksin)
 
 NEW Forecasting (Evan Miller)
@@ -45,6 +45,9 @@ NEW Forecasting (Evan Miller)
   method. It is a drop-in replacement for HWPREDICT, and is better suited for
   data whose seasonal variations grow or shrink in proportion to the average.
 
+* If you create an RRD with the new MHWPREDICT function, the resulting
+  rrdfile will be version 0004 and can only be used in rrdtool 1.3.
+
 Rewrites
 --------
 * rrd_restore now uses libxml for parsing which makes things much more
@@ -55,20 +58,23 @@ Rewrites
 * rrd_update rewritten to make it more modular. Fixed two longstanding
   HW bugs in the process (Evan Miller)
 
+Internationalization (Takao Fujiwara and Tobi Oetiker)
+--------------------
+* The help output by rrdtool has been internationalized. There are no real
+  translations included with rrdtool yet, contributions are welcome.
+* The internationalization will only be compiled if libintl and friends are
+  available on your system. Use the configure option --disable-libintl if
+  you want to disable this feature
+
 Misc
 ----
 * ruby rrd_fetch will return step as a last property -- Mike Perham
 
-Incompatibility
----------------
-* If you create an RRD with the new MHWPREDICT function, the resulting rrdfile will
-  be version 0004 and can only be used in rrdtool 1.3.
-
-Locale Independent Input
-------------------------
-* Regardles of locale you are in, rrdtool always expects input to be numbers (LC_NUMERIC)
-  in C or POSIX locale for numbers. (not 1,1 but 1.1) this is necessary to make
-  things like RPN work as it uses , as a separator.
+Locale Independent Numeric Input
+--------------------------------
+* Regardles of locale you are in, rrdtool always expects input to be numbers
+  (LC_NUMERIC) in C or POSIX locale for numbers. (not 1,1 but 1.1) this is
+  necessary to make things like RPN work as it uses , as a separator.
 
 RRDTOOL NEWS
 ============
index 913dc5a0031bf8f9fbf546a45067c1e31d1be438..f6e3545f57e531391fb1fc2490bd425eb0f864bb 100644 (file)
@@ -477,20 +477,27 @@ AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package])
 
 AM_GLIB_GNU_GETTEXT()
-IT_PROG_INTLTOOL([0.35.0],[no-xml])
 
 AC_ARG_ENABLE(libintl,[  --disable-libintl        i18n support (libintl)],
 [],[enable_libintl=yes])
 
 if test x$enable_libintl = xyes; then
+  IT_PROG_INTLTOOL([0.35.0],[no-xml])
+fi
+
+if test x$enable_libintl = xyes -a x$MSGFMT = xno; then
+  AC_MSG_WARN(I could not find msgfmt. Diabeling libintl build.)
+  enable_libintl=no
+fi
 
+if test x$enable_libintl = xyes; then
   AC_CHECK_HEADERS(libintl.h,[],[AC_MSG_RESULT(disabeling libintl build); enable_libintl=no])
+fi
 
-  if test x$enable_libintl = xyes ; then
-dnl it seems bsd synstems need to link against libintl
-dnl when compiling rrdupdate. lets check        
-    AC_CHECK_LIB(intl, libintl_gettext,[LIB_LIBINTL="-lintl"])
-  fi
+if test x$enable_libintl = xyes ; then
+  dnl it seems bsd synstems need to link against libintl
+  dnl when compiling rrdupdate. lets check        
+  AC_CHECK_LIB(intl, libintl_gettext,[LIB_LIBINTL="-lintl"])
 fi
 
 dnl use for linking rrdupdate
@@ -499,6 +506,9 @@ AC_SUBST(LIB_LIBINTL)
 dnl do not touch the po stuff if we are not going to build intl
 AM_CONDITIONAL(BUILD_LIBINTL,[test x$enable_libintl = xyes])
 
+if test x$enable_libintl = xyes; then
+   AC_DEFINE([BUILD_LIBINTL], [], [Use this in code sections to mark them for libintl build])
+fi
 
 CONFIGURE_PART(IEEE Math Checks)
  
@@ -508,7 +518,7 @@ AC_CHECK_FUNCS(fpclassify, ,
   [AC_MSG_CHECKING(for fpclassify with <math.h>)
     AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <math.h>
 volatile int x;volatile float f; ]], [[x = fpclassify(f)]])],[AC_MSG_RESULT(yes)
-      AC_DEFINE(HAVE_FPCLASSIFY,1)],[AC_MSG_RESULT(no)])])
+      AC_DEFINE(HAVE_FPCLASSIFY)],[AC_MSG_RESULT(no)])])
 
 AC_CHECK_FUNCS(isinf, ,
   [AC_MSG_CHECKING(for isinf with <math.h>)
index db5645531cc9c7b41f65972b3b2d16d7cbc59b66..aaa82ff7c0ffd1a9d7557cf07ccf011e9da510be 100644 (file)
@@ -14,7 +14,7 @@ extern    "C" {
 #ifndef _
 /* This is for other GNU distributions with internationalized messages.
    When compiling libc, the _ macro is predefined.  */
-#ifdef HAVE_LIBINTL_H
+#if defined(HAVE_LIBINTL_H) && defined(BUILD_LIBINTL)
 #  include <libintl.h>
 #define _(String) gettext (String)
 #else
index 56495ab293c47b93388b2730353c2d0363aa2be5..54cf12b55c24d6e6062f36f26c0683cde1a68c4e 100644 (file)
@@ -387,7 +387,8 @@ int main(
 #ifdef HAVE_LOCALE_H
     setlocale(LC_ALL, "");
 #endif
-#ifdef HAVE_LIBINTL_H
+
+#if defined(HAVE_LIBINTL_H) && defined(BUILD_LIBINTL)
     bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
     bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
     textdomain(GETTEXT_PACKAGE);