X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgettext.C;h=1712961c45d324b6f501fd6f92d0133ac0781c16;hb=06f9f0ea08ddcf13e99ea02cff21471aa2020c9e;hp=49158949ce3a10148bbcccefc77478799881b80b;hpb=67ef45b7c842efd9c971112627109724564f0c74;p=lyx.git diff --git a/src/gettext.C b/src/gettext.C index 49158949ce..1712961c45 100644 --- a/src/gettext.C +++ b/src/gettext.C @@ -1,10 +1,31 @@ +/* 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) { // I'd rather have an Assert on str, we should not allow @@ -17,19 +38,47 @@ char const * _(char const * str) } -string const _(string const & str) +string const _(string const & str) { if (!str.empty()) { int const s = str.length(); - char * tmp = new char[s + 1]; - str.copy(tmp, s); + boost::scoped_array tmp(new char[s + 1]); + str.copy(tmp.get(), s); tmp[s] = '\0'; - string ret(gettext(tmp)); - delete [] tmp; + string const ret(gettext(tmp.get())); return ret; - } - else + } 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