+ // I'd rather have an Assert on str, we should not allow
+ // null pointers here. Lgb
+ // Assert(str);
+ if (str && str[0])
+ return gettext(str);
+ else
+ return "";
+}
+
+
+string const _(string const & str)
+{
+ if (!str.empty()) {
+ int const s = str.length();
+ boost::scoped_array<char> tmp(new char[s + 1]);
+ str.copy(tmp.get(), s);
+ tmp[s] = '\0';
+ string const ret(gettext(tmp.get()));
+ return ret;
+ } else {
+ return string();
+ }
+}
+
+
+void locale_init()
+{
+# ifdef HAVE_LC_MESSAGES
+ setlocale(LC_MESSAGES, "");
+# endif
+ setlocale(LC_CTYPE, "");
+ setlocale(LC_NUMERIC, "C");
+}
+
+
+void gettext_init(string const & localedir)
+{
+ bindtextdomain(PACKAGE, localedir.c_str());
+ textdomain(PACKAGE);
+}
+
+
+#else // ENABLE_NLS
+
+void locale_init()
+{
+ setlocale(LC_NUMERIC, "C");