X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgettext.C;h=46053cfc59e5407e4e66316470accbf6ed59e26d;hb=e7f4618bcce770369cf46335c2c7f0164b4b8857;hp=2ad36ede3bc6b60653de37e8cb948793ec4bcc3b;hpb=4fbee583466a423566f62992dfac41909da4a45d;p=lyx.git diff --git a/src/gettext.C b/src/gettext.C index 2ad36ede3b..46053cfc59 100644 --- a/src/gettext.C +++ b/src/gettext.C @@ -1,57 +1,37 @@ -/* 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 "LString.h" -#include "support/LAssert.h" -#include +#include "support/environment.h" +#include "support/lstrings.h" + + +namespace lyx { #ifdef HAVE_LOCALE_H # include #endif -namespace { - -boost::scoped_ptr lyx_messages; - -} // anon namespace - - -char const * _(char const * str) -{ - lyx::Assert(str && str[0]); - - if (!lyx_messages.get()) - return str; - - return lyx_messages->get(str).c_str(); -} - - -string const _(string const & str) -{ - lyx::Assert(!str.empty()); - - if (!lyx_messages.get()) - return str; +using support::setEnv; - return lyx_messages->get(str); -} +using std::string; -void gettext_init(string const & localedir) +docstring const _(string const & str) { - lyx_messages.reset(new Messages("", localedir)); + return getGuiMessages().get(str); } @@ -59,6 +39,8 @@ void gettext_init(string const & localedir) void locale_init() { + // Disable, as otherwise it overrides everything else incl. the doc language + setEnv("LANGUAGE", ""); # ifdef HAVE_LC_MESSAGES setlocale(LC_MESSAGES, ""); # endif @@ -74,3 +56,20 @@ void locale_init() } #endif + + +docstring const translateIfPossible(docstring const & name) +{ + if (support::isAscii(name)) + // Probably from a standard configuration file, try to + // translate + return _(to_ascii(name)); + else + // This must be from a user defined configuration file. We + // cannot translate this, since gettext accepts only ascii + // keys. + return name; +} + + +} // namespace lyx