X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fgettext.C;h=08a948e8f40d07dc416317f21ea084b9e41d1093;hb=6f2999d2916773be291c05059893beb6434d99b9;hp=ef13c283eaf6b25d2f6f9e2b3441e8fc0da79eab;hpb=893fe4da809f67ce91c78f2dfa64a9401d1b586f;p=lyx.git diff --git a/src/gettext.C b/src/gettext.C index ef13c283ea..08a948e8f4 100644 --- a/src/gettext.C +++ b/src/gettext.C @@ -1,25 +1,70 @@ +// -*- C++ -*- +/* This file is part of + * ====================================================== + * + * LyX, The Document Processor + * + * Copyright 1995 Matthias Ettrich + * Copyright 1995-2001 The LyX Team. + * + * ====================================================== */ + #include +#ifdef ENABLE_NLS + #include "LString.h" -#include "gettext.h" -#ifdef ENABLE_NLS +# if HAVE_GETTEXT +# include // use the header already in the system *EK* +# ifdef HAVE_LOCALE_H +# include // for LC_MESSAGES +# endif +# 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) { - int const s = str.length(); - char * tmp = new char[s + 1]; - str.copy(tmp, s); - tmp[s] = '\0'; - string ret(gettext(tmp)); - delete [] tmp; - return ret; + if (!str.empty()) { + int const s = str.length(); + char * tmp = new char[s + 1]; + str.copy(tmp, s); + tmp[s] = '\0'; + string ret(gettext(tmp)); + delete [] tmp; + return ret; + } + else + return string(); } +void locale_init() +{ +# ifdef HAVE_LC_MESSAGES + setlocale(LC_MESSAGES, ""); + setlocale(LC_CTYPE, ""); + setlocale(LC_NUMERIC, "C"); +# endif +} + +void gettext_init(string const & localedir) +{ + bindtextdomain(PACKAGE, localedir.c_str()); + textdomain(PACKAGE); +} + + #endif