#include "support/filetools.h"
#include "support/lassert.h"
#include "support/lstrings.h"
+#include "support/qstring_helpers.h"
#include "support/Messages.h"
+#include <QLocale>
+#include <QString>
+
using namespace std;
using namespace lyx::support;
}
+docstring Language::decimalSeparator() const
+{
+ if (lyxrc.default_decimal_sep == "locale") {
+ QLocale loc = QLocale(toqstr(code()));
+ return qstring_to_ucs4(QString(loc.decimalPoint()));
+ }
+ return from_utf8(lyxrc.default_decimal_sep);
+}
+
+
bool Language::readLanguage(Lexer & lex)
{
enum LanguageTags {
LA_LANG_VARIETY,
LA_POLYGLOSSIANAME,
LA_POLYGLOSSIAOPTS,
+ LA_XINDYNAME,
LA_POSTBABELPREAMBLE,
LA_PREBABELPREAMBLE,
LA_PROVIDES,
LA_REQUIRES,
LA_QUOTESTYLE,
LA_RTL,
- LA_WORDWRAP
+ LA_WORDWRAP,
+ LA_ACTIVECHARS
};
// Keep these sorted alphabetically!
LexerKeyword languageTags[] = {
+ { "activechars", LA_ACTIVECHARS },
{ "babelname", LA_BABELNAME },
{ "dateformats", LA_DATEFORMATS },
{ "encoding", LA_ENCODING },
{ "quotestyle", LA_QUOTESTYLE },
{ "requires", LA_REQUIRES },
{ "rtl", LA_RTL },
- {"wordwrap", LA_WORDWRAP }
+ { "wordwrap", LA_WORDWRAP },
+ { "xindyname", LA_XINDYNAME }
};
bool error = false;
case LA_POLYGLOSSIAOPTS:
lex >> polyglossia_opts_;
break;
+ case LA_XINDYNAME:
+ lex >> xindy_;
+ break;
case LA_QUOTESTYLE:
lex >> quote_style_;
break;
+ case LA_ACTIVECHARS:
+ lex >> active_chars_;
+ break;
case LA_ENCODING:
lex >> encodingStr_;
break;
if ((code.size() == 2) && (langcode.size() > 2)
&& (code + '_' == langcode.substr(0, 3)))
return ApproximateMatch;
- if (code.substr(0,2) == langcode.substr(0,2))
+ if (code.substr(0,2) == langcode.substr(0,2))
return VeryApproximateMatch;
return NoMatch;
}