lyx_mirror/src/support/gettext.cpp
Jean-Marc Lasgouttes 19024f7255 Implement native reading of mo files.
Get the default language by a mix of QLocale and LyXRC::gui_language

Known limitations:
   * encoding is supposed to be UTF-8 (the charset parameter is checked);
   * context is not handled (implemented differently in LyX);
   * plural forms not implemented (not used for now in LyX);.
   * tThe byte endianness of the machine on which the .mo file have been
     built is expected to be the same as the one of the machine where this
     code is run.
2013-05-30 22:10:01 +02:00

59 lines
1.3 KiB
C++

/**
* \file src/gettext.cpp
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Lars Gullik Bjønnes
* \author Jean-Marc Lasgouttes
*
* Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "support/gettext.h"
#include "support/lstrings.h"
#include "support/Messages.h"
#include "support/Package.h"
using namespace std;
namespace lyx {
docstring const _(string const & str)
{
return getGuiMessages().get(str);
}
docstring const translateIfPossible(docstring const & name)
{
if (support::isAscii(name) && !name.empty())
// 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;
}
docstring const translateIfPossible(docstring const & name, std::string const & language)
{
if (support::isAscii(name) && !name.empty())
// Probably from a standard configuration file, try to
// translate
return getMessages(language).get(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