X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgettext.C;h=e65081c71cd10a286db1ce4881e7e0006d27825f;hb=98c966c64594611e469313314abd1e59524adb4a;hp=9d17c623c5e9ed392b07c3212d29a557c4a08582;hpb=efa42293bc4e1be7522351ee8eb1d0d7e78c8e2a;p=lyx.git diff --git a/src/gettext.C b/src/gettext.C index 9d17c623c5..e65081c71c 100644 --- a/src/gettext.C +++ b/src/gettext.C @@ -1,25 +1,84 @@ +/* This file is part of + * ====================================================== + * + * LyX, The Document Processor + * + * Copyright 1995 Matthias Ettrich + * Copyright 1995-2001 The LyX Team. + * + * ====================================================== */ + #include +#ifdef HAVE_LOCALE_H +# include +#endif + #include "LString.h" -#include "gettext.h" + +#include #ifdef ENABLE_NLS +# if HAVE_GETTEXT +# include // use the header already in the system *EK* +# else +# include "../intl/libintl.h" +# endif + char const * _(char const * str) { - return gettext(str); + // 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) +string const _(string const & str) { - int const s = str.length(); - char * tmp = new char[s + 1]; - str.copy(tmp, s); - tmp[s] = '\0'; - string ret(_(tmp)); - delete [] tmp; - return ret; + if (!str.empty()) { + int const s = str.length(); + boost::scoped_array 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"); +} + + +void gettext_init(string const &) +{ +} #endif