X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgettext.C;h=925e433363d50ab80972a4c4c70d3f5df129db64;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=e65081c71cd10a286db1ce4881e7e0006d27825f;hpb=8283e978f8d621041c432b9b88a476bfd567385c;p=lyx.git diff --git a/src/gettext.C b/src/gettext.C index e65081c71c..925e433363 100644 --- a/src/gettext.C +++ b/src/gettext.C @@ -1,60 +1,56 @@ -/* This file is part of - * ====================================================== +/** + * \file src/gettext.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * LyX, The Document Processor + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2001 The LyX Team. - * - * ====================================================== */ + * Full author contact details are available in file CREDITS. + */ #include +#include "gettext.h" +#include "messages.h" +#include "support/environment.h" + + +namespace lyx { + #ifdef HAVE_LOCALE_H # include #endif -#include "LString.h" +using support::setEnv; -#include +using std::string; -#ifdef ENABLE_NLS -# if HAVE_GETTEXT -# include // use the header already in the system *EK* -# else -# include "../intl/libintl.h" -# endif +namespace { -char const * _(char const * str) +static Messages & getLyXMessages() { - // 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 ""; + static Messages lyx_messages; + + return lyx_messages; } +} // anon namespace + -string const _(string const & str) +docstring const _(string const & str) { - 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(); - } + return getLyXMessages().get(str); } +#ifdef ENABLE_NLS + void locale_init() { + // Disable, as otherwise it overrides everything else incl. the doc language + setEnv("LANGUAGE", ""); # ifdef HAVE_LC_MESSAGES setlocale(LC_MESSAGES, ""); # endif @@ -62,14 +58,6 @@ void locale_init() setlocale(LC_NUMERIC, "C"); } - -void gettext_init(string const & localedir) -{ - bindtextdomain(PACKAGE, localedir.c_str()); - textdomain(PACKAGE); -} - - #else // ENABLE_NLS void locale_init() @@ -77,8 +65,7 @@ void locale_init() setlocale(LC_NUMERIC, "C"); } - -void gettext_init(string const &) -{ -} #endif + + +} // namespace lyx