aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarkko Koivikko <jarkko.koivikko@code-q.fi>2017-07-05 00:33:18 +0300
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-07-25 10:06:27 +0000
commit27eb4f5683d9fe1426d3d3b51cb3c7f2b74082a6 (patch)
treecd29b4ce03946f435ddd1f6529a5216552b88042
parent2f03202810f6c264509fb704511301d51f282292 (diff)
3rdparty/openwnn: Fix and optimize the engine due to QStringLiteral
QStringLiteral is broken in MSVC2015 onwards when used with \uXXXX encoded character literals. This was the reason Japanese tests were failing - the OpenWNN engine was actually broken and producing garbage. Not only this change eliminates QStringLiteral from openwnn, but also reduces runtime memory usage by replacing QMap<QString, QString>. The new solution is based on simple binary lookup table WnnLookupTable. WnnLookupTable data was converted from existing QMap structures using WnnLookupTable::create() method, which was left there for future reference. This change also removes the unnecessary QObjectPrivate definitions from Romkan* classes. [ChangeLog][OpenWNN] Fixed and optimized OpenWNN engine (as a workaround for QStringLiteral breakage) Task-number: QTBUG-62133 Change-Id: I50c9e2f5c363e1314f47d7023685da543ec9a7eb Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> (cherry picked from commit 0bf1c6ad9e0b5572b8ea99f5fc8945dade5675b7)
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/openwnn.pro6
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/letterconverter.h7
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkan.h8
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkanfullkatakana.h3
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkanhalfkatakana.h3
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/wnnlookuptable.h47
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/kanaconverter.cpp334
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/letterconverter.cpp5
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkan.cpp439
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkanfullkatakana.cpp395
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkanhalfkatakana.cpp388
-rw-r--r--src/virtualkeyboard/3rdparty/openwnn/wnnEngine/wnnlookuptable.cpp86
-rw-r--r--tests/auto/inputpanel/BLACKLIST10
13 files changed, 390 insertions, 1341 deletions
diff --git a/src/virtualkeyboard/3rdparty/openwnn/openwnn.pro b/src/virtualkeyboard/3rdparty/openwnn/openwnn.pro
index a61e4860..9d9fc9b5 100644
--- a/src/virtualkeyboard/3rdparty/openwnn/openwnn.pro
+++ b/src/virtualkeyboard/3rdparty/openwnn/openwnn.pro
@@ -26,7 +26,8 @@ SOURCES += \
wnnEngine/letterconverter.cpp \
wnnEngine/romkan.cpp \
wnnEngine/romkanfullkatakana.cpp \
- wnnEngine/romkanhalfkatakana.cpp
+ wnnEngine/romkanhalfkatakana.cpp \
+ wnnEngine/wnnlookuptable.cpp
HEADERS += \
wnnDictionary/include/nj_dic.h \
@@ -46,7 +47,8 @@ HEADERS += \
wnnEngine/include/letterconverter.h \
wnnEngine/include/romkan.h \
wnnEngine/include/romkanfullkatakana.h \
- wnnEngine/include/romkanhalfkatakana.h
+ wnnEngine/include/romkanhalfkatakana.h \
+ wnnEngine/include/wnnlookuptable.h
load(qt_helper_lib)
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/letterconverter.h b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/letterconverter.h
index ddbb45fa..5aa1cc56 100644
--- a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/letterconverter.h
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/letterconverter.h
@@ -25,16 +25,9 @@
#include <QObject>
#include "composingtext.h"
-QT_BEGIN_NAMESPACE
-class QObjectPrivate;
-QT_END_NAMESPACE
-
class LetterConverter : public QObject
{
Q_OBJECT
-protected:
- LetterConverter(QObjectPrivate &dd, QObject *parent = 0);
-
public:
explicit LetterConverter(QObject *parent = 0);
~LetterConverter();
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkan.h b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkan.h
index e886ec88..5889a659 100644
--- a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkan.h
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkan.h
@@ -25,16 +25,12 @@
#include "letterconverter.h"
#include <QMap>
-class RomkanPrivate;
+class WnnLookupTable;
class Romkan : public LetterConverter
{
Q_OBJECT
Q_DISABLE_COPY(Romkan)
- Q_DECLARE_PRIVATE(Romkan)
-protected:
- Romkan(QObjectPrivate &dd, QObject *parent = 0);
-
public:
explicit Romkan(QObject *parent = 0);
~Romkan();
@@ -42,7 +38,7 @@ public:
bool convert(ComposingText &text) const;
protected:
- bool convertImpl(ComposingText &text, const QMap<QString, QString> &table) const;
+ bool convertImpl(ComposingText &text, const WnnLookupTable &table) const;
};
#endif // ROMKAN_H
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkanfullkatakana.h b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkanfullkatakana.h
index a3fcccf0..9e9db9fc 100644
--- a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkanfullkatakana.h
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkanfullkatakana.h
@@ -24,13 +24,10 @@
#include "romkan.h"
-class RomkanFullKatakanaPrivate;
-
class RomkanFullKatakana : public Romkan
{
Q_OBJECT
Q_DISABLE_COPY(RomkanFullKatakana)
- Q_DECLARE_PRIVATE(RomkanFullKatakana)
public:
explicit RomkanFullKatakana(QObject *parent = 0);
~RomkanFullKatakana();
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkanhalfkatakana.h b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkanhalfkatakana.h
index e0613cb5..884fe493 100644
--- a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkanhalfkatakana.h
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/romkanhalfkatakana.h
@@ -24,13 +24,10 @@
#include "romkan.h"
-class RomkanHalfKatakanaPrivate;
-
class RomkanHalfKatakana : public Romkan
{
Q_OBJECT
Q_DISABLE_COPY(RomkanHalfKatakana)
- Q_DECLARE_PRIVATE(RomkanHalfKatakana)
public:
explicit RomkanHalfKatakana(QObject *parent = 0);
~RomkanHalfKatakana();
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/wnnlookuptable.h b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/wnnlookuptable.h
new file mode 100644
index 00000000..49d88208
--- /dev/null
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/include/wnnlookuptable.h
@@ -0,0 +1,47 @@
+/*
+ * Qt implementation of OpenWnn library
+ * This file is part of the Qt Virtual Keyboard module.
+ * Contact: http://www.qt.io/licensing/
+ *
+ * Copyright (C) 2017 The Qt Company
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef WNNLOOKUPTABLE_H
+#define WNNLOOKUPTABLE_H
+
+#include <QString>
+#if WNN_LOOKUP_TABLE_CREATE
+#include <QMap>
+#endif
+
+class WnnLookupTable
+{
+public:
+ explicit WnnLookupTable(const char **keys, const char **values, const int length);
+
+ const QString value(const QString &what) const;
+ inline const QString operator[](const QString &what) const { return value(what); }
+
+#if WNN_LOOKUP_TABLE_CREATE
+ static void create(const QMap<QString, QString> &map, const QString &privatePrefix, const QString &fileName);
+#endif
+
+private:
+ const char **keys;
+ const char **values;
+ const int length;
+};
+
+#endif // WNNLOOKUPTABLE_H
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/kanaconverter.cpp b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/kanaconverter.cpp
index ce2e4fe0..2b200b9e 100644
--- a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/kanaconverter.cpp
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/kanaconverter.cpp
@@ -20,256 +20,13 @@
*/
#include "kanaconverter.h"
+#include "wnnlookuptable.h"
#include <QtCore/private/qobject_p.h>
class KanaConverterPrivate : public QObjectPrivate
{
public:
- static QMap<QString, QString> initHalfKatakanaMap()
- {
- QMap<QString, QString> map;
- map.insert(QStringLiteral("\u3042"), QStringLiteral("\uff71"));
- map.insert(QStringLiteral("\u3044"), QStringLiteral("\uff72"));
- map.insert(QStringLiteral("\u3046"), QStringLiteral("\uff73"));
- map.insert(QStringLiteral("\u3048"), QStringLiteral("\uff74"));
- map.insert(QStringLiteral("\u304a"), QStringLiteral("\uff75"));
- map.insert(QStringLiteral("\u3041"), QStringLiteral("\uff67"));
- map.insert(QStringLiteral("\u3043"), QStringLiteral("\uff68"));
- map.insert(QStringLiteral("\u3045"), QStringLiteral("\uff69"));
- map.insert(QStringLiteral("\u3047"), QStringLiteral("\uff6a"));
- map.insert(QStringLiteral("\u3049"), QStringLiteral("\uff6b"));
- //map.insert(QStringLiteral("\u30f4\u3041"), QStringLiteral("\uff73\uff9e\uff67"));
- //map.insert(QStringLiteral("\u30f4\u3043"), QStringLiteral("\uff73\uff9e\uff68"));
- map.insert(QStringLiteral("\u30f4"), QStringLiteral("\uff73\uff9e"));
- //map.insert(QStringLiteral("\u30f4\u3047"), QStringLiteral("\uff73\uff9e\uff6a"));
- //map.insert(QStringLiteral("\u30f4\u3049"), QStringLiteral("\uff73\uff9e\uff6b"));
- map.insert(QStringLiteral("\u304b"), QStringLiteral("\uff76"));
- map.insert(QStringLiteral("\u304d"), QStringLiteral("\uff77"));
- map.insert(QStringLiteral("\u304f"), QStringLiteral("\uff78"));
- map.insert(QStringLiteral("\u3051"), QStringLiteral("\uff79"));
- map.insert(QStringLiteral("\u3053"), QStringLiteral("\uff7a"));
- map.insert(QStringLiteral("\u304c"), QStringLiteral("\uff76\uff9e"));
- map.insert(QStringLiteral("\u304e"), QStringLiteral("\uff77\uff9e"));
- map.insert(QStringLiteral("\u3050"), QStringLiteral("\uff78\uff9e"));
- map.insert(QStringLiteral("\u3052"), QStringLiteral("\uff79\uff9e"));
- map.insert(QStringLiteral("\u3054"), QStringLiteral("\uff7a\uff9e"));
- map.insert(QStringLiteral("\u3055"), QStringLiteral("\uff7b"));
- map.insert(QStringLiteral("\u3057"), QStringLiteral("\uff7c"));
- map.insert(QStringLiteral("\u3059"), QStringLiteral("\uff7d"));
- map.insert(QStringLiteral("\u305b"), QStringLiteral("\uff7e"));
- map.insert(QStringLiteral("\u305d"), QStringLiteral("\uff7f"));
- map.insert(QStringLiteral("\u3056"), QStringLiteral("\uff7b\uff9e"));
- map.insert(QStringLiteral("\u3058"), QStringLiteral("\uff7c\uff9e"));
- map.insert(QStringLiteral("\u305a"), QStringLiteral("\uff7d\uff9e"));
- map.insert(QStringLiteral("\u305c"), QStringLiteral("\uff7e\uff9e"));
- map.insert(QStringLiteral("\u305e"), QStringLiteral("\uff7f\uff9e"));
- map.insert(QStringLiteral("\u305f"), QStringLiteral("\uff80"));
- map.insert(QStringLiteral("\u3061"), QStringLiteral("\uff81"));
- map.insert(QStringLiteral("\u3064"), QStringLiteral("\uff82"));
- map.insert(QStringLiteral("\u3066"), QStringLiteral("\uff83"));
- map.insert(QStringLiteral("\u3068"), QStringLiteral("\uff84"));
- map.insert(QStringLiteral("\u3063"), QStringLiteral("\uff6f"));
- map.insert(QStringLiteral("\u3060"), QStringLiteral("\uff80\uff9e"));
- map.insert(QStringLiteral("\u3062"), QStringLiteral("\uff81\uff9e"));
- map.insert(QStringLiteral("\u3065"), QStringLiteral("\uff82\uff9e"));
- map.insert(QStringLiteral("\u3067"), QStringLiteral("\uff83\uff9e"));
- map.insert(QStringLiteral("\u3069"), QStringLiteral("\uff84\uff9e"));
- map.insert(QStringLiteral("\u306a"), QStringLiteral("\uff85"));
- map.insert(QStringLiteral("\u306b"), QStringLiteral("\uff86"));
- map.insert(QStringLiteral("\u306c"), QStringLiteral("\uff87"));
- map.insert(QStringLiteral("\u306d"), QStringLiteral("\uff88"));
- map.insert(QStringLiteral("\u306e"), QStringLiteral("\uff89"));
- map.insert(QStringLiteral("\u306f"), QStringLiteral("\uff8a"));
- map.insert(QStringLiteral("\u3072"), QStringLiteral("\uff8b"));
- map.insert(QStringLiteral("\u3075"), QStringLiteral("\uff8c"));
- map.insert(QStringLiteral("\u3078"), QStringLiteral("\uff8d"));
- map.insert(QStringLiteral("\u307b"), QStringLiteral("\uff8e"));
- map.insert(QStringLiteral("\u3070"), QStringLiteral("\uff8a\uff9e"));
- map.insert(QStringLiteral("\u3073"), QStringLiteral("\uff8b\uff9e"));
- map.insert(QStringLiteral("\u3076"), QStringLiteral("\uff8c\uff9e"));
- map.insert(QStringLiteral("\u3079"), QStringLiteral("\uff8d\uff9e"));
- map.insert(QStringLiteral("\u307c"), QStringLiteral("\uff8e\uff9e"));
- map.insert(QStringLiteral("\u3071"), QStringLiteral("\uff8a\uff9f"));
- map.insert(QStringLiteral("\u3074"), QStringLiteral("\uff8b\uff9f"));
- map.insert(QStringLiteral("\u3077"), QStringLiteral("\uff8c\uff9f"));
- map.insert(QStringLiteral("\u307a"), QStringLiteral("\uff8d\uff9f"));
- map.insert(QStringLiteral("\u307d"), QStringLiteral("\uff8e\uff9f"));
- map.insert(QStringLiteral("\u307e"), QStringLiteral("\uff8f"));
- map.insert(QStringLiteral("\u307f"), QStringLiteral("\uff90"));
- map.insert(QStringLiteral("\u3080"), QStringLiteral("\uff91"));
- map.insert(QStringLiteral("\u3081"), QStringLiteral("\uff92"));
- map.insert(QStringLiteral("\u3082"), QStringLiteral("\uff93"));
- map.insert(QStringLiteral("\u3084"), QStringLiteral("\uff94"));
- map.insert(QStringLiteral("\u3086"), QStringLiteral("\uff95"));
- map.insert(QStringLiteral("\u3088"), QStringLiteral("\uff96"));
- map.insert(QStringLiteral("\u3083"), QStringLiteral("\uff6c"));
- map.insert(QStringLiteral("\u3085"), QStringLiteral("\uff6d"));
- map.insert(QStringLiteral("\u3087"), QStringLiteral("\uff6e"));
- map.insert(QStringLiteral("\u3089"), QStringLiteral("\uff97"));
- map.insert(QStringLiteral("\u308a"), QStringLiteral("\uff98"));
- map.insert(QStringLiteral("\u308b"), QStringLiteral("\uff99"));
- map.insert(QStringLiteral("\u308c"), QStringLiteral("\uff9a"));
- map.insert(QStringLiteral("\u308d"), QStringLiteral("\uff9b"));
- map.insert(QStringLiteral("\u308f"), QStringLiteral("\uff9c"));
- map.insert(QStringLiteral("\u3092"), QStringLiteral("\uff66"));
- map.insert(QStringLiteral("\u3093"), QStringLiteral("\uff9d"));
- map.insert(QStringLiteral("\u308e"), QStringLiteral("\uff9c"));
- map.insert(QStringLiteral("\u30fc"), QStringLiteral("\uff70"));
- return map;
- }
-
- static QMap<QString, QString> initFullKatakanaMap()
- {
- QMap<QString, QString> map;
- map.insert(QStringLiteral("\u3042"), QStringLiteral("\u30a2"));
- map.insert(QStringLiteral("\u3044"), QStringLiteral("\u30a4"));
- map.insert(QStringLiteral("\u3046"), QStringLiteral("\u30a6"));
- map.insert(QStringLiteral("\u3048"), QStringLiteral("\u30a8"));
- map.insert(QStringLiteral("\u304a"), QStringLiteral("\u30aa"));
- map.insert(QStringLiteral("\u3041"), QStringLiteral("\u30a1"));
- map.insert(QStringLiteral("\u3043"), QStringLiteral("\u30a3"));
- map.insert(QStringLiteral("\u3045"), QStringLiteral("\u30a5"));
- map.insert(QStringLiteral("\u3047"), QStringLiteral("\u30a7"));
- map.insert(QStringLiteral("\u3049"), QStringLiteral("\u30a9"));
- //map.insert(QStringLiteral("\u30f4\u3041"), QStringLiteral("\u30f4\u30a1"));
- //map.insert(QStringLiteral("\u30f4\u3043"), QStringLiteral("\u30f4\u30a3"));
- map.insert(QStringLiteral("\u30f4"), QStringLiteral("\u30f4"));
- //map.insert(QStringLiteral("\u30f4\u3047"), QStringLiteral("\u30f4\u30a7"));
- //map.insert(QStringLiteral("\u30f4\u3049"), QStringLiteral("\u30f4\u30a9"));
- map.insert(QStringLiteral("\u304b"), QStringLiteral("\u30ab"));
- map.insert(QStringLiteral("\u304d"), QStringLiteral("\u30ad"));
- map.insert(QStringLiteral("\u304f"), QStringLiteral("\u30af"));
- map.insert(QStringLiteral("\u3051"), QStringLiteral("\u30b1"));
- map.insert(QStringLiteral("\u3053"), QStringLiteral("\u30b3"));
- map.insert(QStringLiteral("\u304c"), QStringLiteral("\u30ac"));
- map.insert(QStringLiteral("\u304e"), QStringLiteral("\u30ae"));
- map.insert(QStringLiteral("\u3050"), QStringLiteral("\u30b0"));
- map.insert(QStringLiteral("\u3052"), QStringLiteral("\u30b2"));
- map.insert(QStringLiteral("\u3054"), QStringLiteral("\u30b4"));
- map.insert(QStringLiteral("\u3055"), QStringLiteral("\u30b5"));
- map.insert(QStringLiteral("\u3057"), QStringLiteral("\u30b7"));
- map.insert(QStringLiteral("\u3059"), QStringLiteral("\u30b9"));
- map.insert(QStringLiteral("\u305b"), QStringLiteral("\u30bb"));
- map.insert(QStringLiteral("\u305d"), QStringLiteral("\u30bd"));
- map.insert(QStringLiteral("\u3056"), QStringLiteral("\u30b6"));
- map.insert(QStringLiteral("\u3058"), QStringLiteral("\u30b8"));
- map.insert(QStringLiteral("\u305a"), QStringLiteral("\u30ba"));
- map.insert(QStringLiteral("\u305c"), QStringLiteral("\u30bc"));
- map.insert(QStringLiteral("\u305e"), QStringLiteral("\u30be"));
- map.insert(QStringLiteral("\u305f"), QStringLiteral("\u30bf"));
- map.insert(QStringLiteral("\u3061"), QStringLiteral("\u30c1"));
- map.insert(QStringLiteral("\u3064"), QStringLiteral("\u30c4"));
- map.insert(QStringLiteral("\u3066"), QStringLiteral("\u30c6"));
- map.insert(QStringLiteral("\u3068"), QStringLiteral("\u30c8"));
- map.insert(QStringLiteral("\u3063"), QStringLiteral("\u30c3"));
- map.insert(QStringLiteral("\u3060"), QStringLiteral("\u30c0"));
- map.insert(QStringLiteral("\u3062"), QStringLiteral("\u30c2"));
- map.insert(QStringLiteral("\u3065"), QStringLiteral("\u30c5"));
- map.insert(QStringLiteral("\u3067"), QStringLiteral("\u30c7"));
- map.insert(QStringLiteral("\u3069"), QStringLiteral("\u30c9"));
- map.insert(QStringLiteral("\u306a"), QStringLiteral("\u30ca"));
- map.insert(QStringLiteral("\u306b"), QStringLiteral("\u30cb"));
- map.insert(QStringLiteral("\u306c"), QStringLiteral("\u30cc"));
- map.insert(QStringLiteral("\u306d"), QStringLiteral("\u30cd"));
- map.insert(QStringLiteral("\u306e"), QStringLiteral("\u30ce"));
- map.insert(QStringLiteral("\u306f"), QStringLiteral("\u30cf"));
- map.insert(QStringLiteral("\u3072"), QStringLiteral("\u30d2"));
- map.insert(QStringLiteral("\u3075"), QStringLiteral("\u30d5"));
- map.insert(QStringLiteral("\u3078"), QStringLiteral("\u30d8"));
- map.insert(QStringLiteral("\u307b"), QStringLiteral("\u30db"));
- map.insert(QStringLiteral("\u3070"), QStringLiteral("\u30d0"));
- map.insert(QStringLiteral("\u3073"), QStringLiteral("\u30d3"));
- map.insert(QStringLiteral("\u3076"), QStringLiteral("\u30d6"));
- map.insert(QStringLiteral("\u3079"), QStringLiteral("\u30d9"));
- map.insert(QStringLiteral("\u307c"), QStringLiteral("\u30dc"));
- map.insert(QStringLiteral("\u3071"), QStringLiteral("\u30d1"));
- map.insert(QStringLiteral("\u3074"), QStringLiteral("\u30d4"));
- map.insert(QStringLiteral("\u3077"), QStringLiteral("\u30d7"));
- map.insert(QStringLiteral("\u307a"), QStringLiteral("\u30da"));
- map.insert(QStringLiteral("\u307d"), QStringLiteral("\u30dd"));
- map.insert(QStringLiteral("\u307e"), QStringLiteral("\u30de"));
- map.insert(QStringLiteral("\u307f"), QStringLiteral("\u30df"));
- map.insert(QStringLiteral("\u3080"), QStringLiteral("\u30e0"));
- map.insert(QStringLiteral("\u3081"), QStringLiteral("\u30e1"));
- map.insert(QStringLiteral("\u3082"), QStringLiteral("\u30e2"));
- map.insert(QStringLiteral("\u3084"), QStringLiteral("\u30e4"));
- map.insert(QStringLiteral("\u3086"), QStringLiteral("\u30e6"));
- map.insert(QStringLiteral("\u3088"), QStringLiteral("\u30e8"));
- map.insert(QStringLiteral("\u3083"), QStringLiteral("\u30e3"));
- map.insert(QStringLiteral("\u3085"), QStringLiteral("\u30e5"));
- map.insert(QStringLiteral("\u3087"), QStringLiteral("\u30e7"));
- map.insert(QStringLiteral("\u3089"), QStringLiteral("\u30e9"));
- map.insert(QStringLiteral("\u308a"), QStringLiteral("\u30ea"));
- map.insert(QStringLiteral("\u308b"), QStringLiteral("\u30eb"));
- map.insert(QStringLiteral("\u308c"), QStringLiteral("\u30ec"));
- map.insert(QStringLiteral("\u308d"), QStringLiteral("\u30ed"));
- map.insert(QStringLiteral("\u308f"), QStringLiteral("\u30ef"));
- map.insert(QStringLiteral("\u3092"), QStringLiteral("\u30f2"));
- map.insert(QStringLiteral("\u3093"), QStringLiteral("\u30f3"));
- map.insert(QStringLiteral("\u308e"), QStringLiteral("\u30ee"));
- map.insert(QStringLiteral("\u30fc"), QStringLiteral("\u30fc"));
- return map;
- }
-
- static QMap<QString, QString> initFullAlphabetMapQwety()
- {
- QMap<QString, QString> map;
- map.insert(QStringLiteral("a"), QStringLiteral("\uff41"));
- map.insert(QStringLiteral("b"), QStringLiteral("\uff42"));
- map.insert(QStringLiteral("c"), QStringLiteral("\uff43"));
- map.insert(QStringLiteral("d"), QStringLiteral("\uff44"));
- map.insert(QStringLiteral("e"), QStringLiteral("\uff45"));
- map.insert(QStringLiteral("f"), QStringLiteral("\uff46"));
- map.insert(QStringLiteral("g"), QStringLiteral("\uff47"));
- map.insert(QStringLiteral("h"), QStringLiteral("\uff48"));
- map.insert(QStringLiteral("i"), QStringLiteral("\uff49"));
- map.insert(QStringLiteral("j"), QStringLiteral("\uff4a"));
- map.insert(QStringLiteral("k"), QStringLiteral("\uff4b"));
- map.insert(QStringLiteral("l"), QStringLiteral("\uff4c"));
- map.insert(QStringLiteral("m"), QStringLiteral("\uff4d"));
- map.insert(QStringLiteral("n"), QStringLiteral("\uff4e"));
- map.insert(QStringLiteral("o"), QStringLiteral("\uff4f"));
- map.insert(QStringLiteral("p"), QStringLiteral("\uff50"));
- map.insert(QStringLiteral("q"), QStringLiteral("\uff51"));
- map.insert(QStringLiteral("r"), QStringLiteral("\uff52"));
- map.insert(QStringLiteral("s"), QStringLiteral("\uff53"));
- map.insert(QStringLiteral("t"), QStringLiteral("\uff54"));
- map.insert(QStringLiteral("u"), QStringLiteral("\uff55"));
- map.insert(QStringLiteral("v"), QStringLiteral("\uff56"));
- map.insert(QStringLiteral("w"), QStringLiteral("\uff57"));
- map.insert(QStringLiteral("x"), QStringLiteral("\uff58"));
- map.insert(QStringLiteral("y"), QStringLiteral("\uff59"));
- map.insert(QStringLiteral("z"), QStringLiteral("\uff5a"));
- map.insert(QStringLiteral("A"), QStringLiteral("\uff21"));
- map.insert(QStringLiteral("B"), QStringLiteral("\uff22"));
- map.insert(QStringLiteral("C"), QStringLiteral("\uff23"));
- map.insert(QStringLiteral("D"), QStringLiteral("\uff24"));
- map.insert(QStringLiteral("E"), QStringLiteral("\uff25"));
- map.insert(QStringLiteral("F"), QStringLiteral("\uff26"));
- map.insert(QStringLiteral("G"), QStringLiteral("\uff27"));
- map.insert(QStringLiteral("H"), QStringLiteral("\uff28"));
- map.insert(QStringLiteral("I"), QStringLiteral("\uff29"));
- map.insert(QStringLiteral("J"), QStringLiteral("\uff2a"));
- map.insert(QStringLiteral("K"), QStringLiteral("\uff2b"));
- map.insert(QStringLiteral("L"), QStringLiteral("\uff2c"));
- map.insert(QStringLiteral("M"), QStringLiteral("\uff2d"));
- map.insert(QStringLiteral("N"), QStringLiteral("\uff2e"));
- map.insert(QStringLiteral("O"), QStringLiteral("\uff2f"));
- map.insert(QStringLiteral("P"), QStringLiteral("\uff30"));
- map.insert(QStringLiteral("Q"), QStringLiteral("\uff31"));
- map.insert(QStringLiteral("R"), QStringLiteral("\uff32"));
- map.insert(QStringLiteral("S"), QStringLiteral("\uff33"));
- map.insert(QStringLiteral("T"), QStringLiteral("\uff34"));
- map.insert(QStringLiteral("U"), QStringLiteral("\uff35"));
- map.insert(QStringLiteral("V"), QStringLiteral("\uff36"));
- map.insert(QStringLiteral("W"), QStringLiteral("\uff37"));
- map.insert(QStringLiteral("X"), QStringLiteral("\uff38"));
- map.insert(QStringLiteral("Y"), QStringLiteral("\uff39"));
- map.insert(QStringLiteral("Z"), QStringLiteral("\uff3a"));
- return map;
- }
-
void createPseudoCandidateListForQwerty(QList<WnnWord> &list, const QString &inputHiragana, const QString &inputRomaji)
{
/* Create pseudo candidates for half width alphabet */
@@ -281,7 +38,7 @@ public:
/* Create pseudo candidates for the full width alphabet */
QString convZenEiji;
- if (createCandidateString(inputRomaji, mFullAlphabetMapQwety, convZenEiji)) {
+ if (createCandidateString(inputRomaji, fullAlphabetTableQwerty, convZenEiji)) {
QString convZenEijiLower = convZenEiji.toLower();
list.append(WnnWord(convZenEiji, inputHiragana, mPosSymbol));
list.append(WnnWord(convZenEijiLower, inputHiragana, mPosSymbol));
@@ -290,11 +47,11 @@ public:
}
}
- static bool createCandidateString(const QString &input, const QMap<QString, QString> &map, QString &outBuf) {
+ static bool createCandidateString(const QString &input, const WnnLookupTable &map, QString &outBuf)
+ {
outBuf.clear();
- const QString empty;
for (int index = 0, length = input.length(); index < length; index++) {
- QString out = map.value(input.mid(index, 1), empty);
+ QString out = map.value(input.mid(index, 1));
if (out.isEmpty())
return false;
outBuf.append(out);
@@ -302,7 +59,8 @@ public:
return true;
}
- QString convertCaps(const QString &moji) {
+ QString convertCaps(const QString &moji)
+ {
QString tmp;
if (!moji.isEmpty()) {
tmp.append(moji.left(1).toUpper());
@@ -311,18 +69,80 @@ public:
return tmp;
}
- static const QMap<QString, QString> mHalfKatakanaMap;
- static const QMap<QString, QString> mFullKatakanaMap;
- static const QMap<QString, QString> mFullAlphabetMapQwety;
+ static const int halfKatakanaLength = 83;
+ static const char *halfKatakanaKey[KanaConverterPrivate::halfKatakanaLength];
+ static const char *halfKatakanaValue[KanaConverterPrivate::halfKatakanaLength];
+ static const int fullKatakanaLength = 83;
+ static const char *fullKatakanaKey[KanaConverterPrivate::fullKatakanaLength];
+ static const char *fullKatakanaValue[KanaConverterPrivate::fullKatakanaLength];
+ static const int fullAlphabetLength = 52;
+ static const char *fullAlphabetKey[KanaConverterPrivate::fullAlphabetLength];
+ static const char *fullAlphabetValue[KanaConverterPrivate::fullAlphabetLength];
+ static const WnnLookupTable halfKatakanaTable;
+ static const WnnLookupTable fullKatakanaTable;
+ static const WnnLookupTable fullAlphabetTableQwerty;
WnnPOS mPosDefault;
WnnPOS mPosNumber;
WnnPOS mPosSymbol;
};
-const QMap<QString, QString> KanaConverterPrivate::mHalfKatakanaMap = KanaConverterPrivate::initHalfKatakanaMap();
-const QMap<QString, QString> KanaConverterPrivate::mFullKatakanaMap = KanaConverterPrivate::initFullKatakanaMap();
-const QMap<QString, QString> KanaConverterPrivate::mFullAlphabetMapQwety = KanaConverterPrivate::initFullAlphabetMapQwety();
+const char *KanaConverterPrivate::halfKatakanaKey[] = {
+"ぁ", "あ", "ぃ", "い", "ぅ", "う", "ぇ", "え", "ぉ", "お", "か", "が", "き", "ぎ", "く", "ぐ",
+"け", "げ", "こ", "ご", "さ", "ざ", "し", "じ", "す", "ず", "せ", "ぜ", "そ", "ぞ", "た", "だ",
+"ち", "ぢ", "っ", "つ", "づ", "て", "で", "と", "ど", "な", "に", "ぬ", "ね", "の", "は", "ば",
+"ぱ", "ひ", "び", "ぴ", "ふ", "ぶ", "ぷ", "へ", "べ", "ぺ", "ほ", "ぼ", "ぽ", "ま", "み", "む",
+"め", "も", "ゃ", "や", "ゅ", "ゆ", "ょ", "よ", "ら", "り", "る", "れ", "ろ", "ゎ", "わ", "を",
+"ん", "ヴ", "ー"
+};
+const char *KanaConverterPrivate::halfKatakanaValue[] = {
+"ァ", "ア", "ィ", "イ", "ゥ", "ウ", "ェ", "エ", "ォ", "オ", "カ", "ガ", "キ", "ギ", "ク", "グ",
+"ケ", "ゲ", "コ", "ゴ", "サ", "ザ", "シ", "ジ", "ス", "ズ", "セ", "ゼ", "ソ", "ゾ", "タ", "ダ",
+"チ", "ヂ", "ッ", "ツ", "ヅ", "テ", "デ", "ト", "ド", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "バ",
+"パ", "ヒ", "ビ", "ピ", "フ", "ブ", "プ", "ヘ", "ベ", "ペ", "ホ", "ボ", "ポ", "マ", "ミ", "ム",
+"メ", "モ", "ャ", "ヤ", "ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ワ", "ヲ",
+"ン", "ヴ", "ー"
+};
+const char *KanaConverterPrivate::fullKatakanaKey[] = {
+"ぁ", "あ", "ぃ", "い", "ぅ", "う", "ぇ", "え", "ぉ", "お", "か", "が", "き", "ぎ", "く", "ぐ",
+"け", "げ", "こ", "ご", "さ", "ざ", "し", "じ", "す", "ず", "せ", "ぜ", "そ", "ぞ", "た", "だ",
+"ち", "ぢ", "っ", "つ", "づ", "て", "で", "と", "ど", "な", "に", "ぬ", "ね", "の", "は", "ば",
+"ぱ", "ひ", "び", "ぴ", "ふ", "ぶ", "ぷ", "へ", "べ", "ぺ", "ほ", "ぼ", "ぽ", "ま", "み", "む",
+"め", "も", "ゃ", "や", "ゅ", "ゆ", "ょ", "よ", "ら", "り", "る", "れ", "ろ", "ゎ", "わ", "を",
+"ん", "ヴ", "ー"
+};
+const char *KanaConverterPrivate::fullKatakanaValue[] = {
+"ァ", "ア", "ィ", "イ", "ゥ", "ウ", "ェ", "エ", "ォ", "オ", "カ", "ガ", "キ", "ギ", "ク", "グ",
+"ケ", "ゲ", "コ", "ゴ", "サ", "ザ", "シ", "ジ", "ス", "ズ", "セ", "ゼ", "ソ", "ゾ", "タ", "ダ",
+"チ", "ヂ", "ッ", "ツ", "ヅ", "テ", "デ", "ト", "ド", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "バ",
+"パ", "ヒ", "ビ", "ピ", "フ", "ブ", "プ", "ヘ", "ベ", "ペ", "ホ", "ボ", "ポ", "マ", "ミ", "ム",
+"メ", "モ", "ャ", "ヤ", "ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ヮ", "ワ", "ヲ",
+"ン", "ヴ", "ー"
+};
+const char *KanaConverterPrivate::fullAlphabetKey[] = {
+"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
+"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f",
+"g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
+"w", "x", "y", "z"
+};
+const char *KanaConverterPrivate::fullAlphabetValue[] = {
+"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
+"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f",
+"g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
+"w", "x", "y", "z"
+};
+const WnnLookupTable KanaConverterPrivate::halfKatakanaTable = WnnLookupTable(
+ KanaConverterPrivate::halfKatakanaKey,
+ KanaConverterPrivate::halfKatakanaValue,
+ KanaConverterPrivate::halfKatakanaLength);
+const WnnLookupTable KanaConverterPrivate::fullKatakanaTable = WnnLookupTable(
+ KanaConverterPrivate::fullKatakanaKey,
+ KanaConverterPrivate::fullKatakanaValue,
+ KanaConverterPrivate::fullKatakanaLength);
+const WnnLookupTable KanaConverterPrivate::fullAlphabetTableQwerty = WnnLookupTable(
+ KanaConverterPrivate::fullAlphabetKey,
+ KanaConverterPrivate::fullAlphabetValue,
+ KanaConverterPrivate::fullAlphabetLength);
KanaConverter::KanaConverter(QObject *parent) :
QObject(*new KanaConverterPrivate(), parent)
@@ -355,10 +175,10 @@ QList<WnnWord> KanaConverter::createPseudoCandidateList(const QString &inputHira
/* Hiragana(reading) / Full width katakana / Half width katakana */
list.append(WnnWord(inputHiragana, inputHiragana));
QString stringBuff;
- if (d->createCandidateString(inputHiragana, KanaConverterPrivate::mFullKatakanaMap, stringBuff)) {
+ if (d->createCandidateString(inputHiragana, KanaConverterPrivate::fullKatakanaTable, stringBuff)) {
list.append(WnnWord(stringBuff, inputHiragana, d->mPosDefault));
}
- if (d->createCandidateString(inputHiragana, KanaConverterPrivate::mHalfKatakanaMap, stringBuff)) {
+ if (d->createCandidateString(inputHiragana, KanaConverterPrivate::halfKatakanaTable, stringBuff)) {
list.append(WnnWord(stringBuff, inputHiragana, d->mPosDefault));
}
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/letterconverter.cpp b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/letterconverter.cpp
index 3003594d..7dc94580 100644
--- a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/letterconverter.cpp
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/letterconverter.cpp
@@ -21,11 +21,6 @@
#include "letterconverter.h"
-LetterConverter::LetterConverter(QObjectPrivate &dd, QObject *parent) :
- QObject(dd, parent)
-{
-}
-
LetterConverter::LetterConverter(QObject *parent) :
QObject(parent)
{
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkan.cpp b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkan.cpp
index 314db57d..3a555e2b 100644
--- a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkan.cpp
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkan.cpp
@@ -21,393 +21,78 @@
#include "romkan.h"
#include "strsegment.h"
-#include <QMap>
+#include "wnnlookuptable.h"
-#include <QtCore/private/qobject_p.h>
-
-class RomkanPrivate : public QObjectPrivate
+class RomkanPrivate
{
public:
- /** HashMap for Romaji-to-Kana conversion (Japanese mode) */
- static QMap<QString, QString> initRomkanTable()
- {
- QMap<QString, QString> map;
- map.insert(QStringLiteral("la"), QStringLiteral("\u3041"));
- map.insert(QStringLiteral("xa"), QStringLiteral("\u3041"));
- map.insert(QStringLiteral("a"), QStringLiteral("\u3042"));
- map.insert(QStringLiteral("li"), QStringLiteral("\u3043"));
- map.insert(QStringLiteral("lyi"), QStringLiteral("\u3043"));
- map.insert(QStringLiteral("xi"), QStringLiteral("\u3043"));
- map.insert(QStringLiteral("xyi"), QStringLiteral("\u3043"));
- map.insert(QStringLiteral("i"), QStringLiteral("\u3044"));
- map.insert(QStringLiteral("yi"), QStringLiteral("\u3044"));
- map.insert(QStringLiteral("ye"), QStringLiteral("\u3044\u3047"));
- map.insert(QStringLiteral("lu"), QStringLiteral("\u3045"));
- map.insert(QStringLiteral("xu"), QStringLiteral("\u3045"));
- map.insert(QStringLiteral("u"), QStringLiteral("\u3046"));
- map.insert(QStringLiteral("whu"), QStringLiteral("\u3046"));
- map.insert(QStringLiteral("wu"), QStringLiteral("\u3046"));
- map.insert(QStringLiteral("wha"), QStringLiteral("\u3046\u3041"));
- map.insert(QStringLiteral("whi"), QStringLiteral("\u3046\u3043"));
- map.insert(QStringLiteral("wi"), QStringLiteral("\u3046\u3043"));
- map.insert(QStringLiteral("we"), QStringLiteral("\u3046\u3047"));
- map.insert(QStringLiteral("whe"), QStringLiteral("\u3046\u3047"));
- map.insert(QStringLiteral("who"), QStringLiteral("\u3046\u3049"));
- map.insert(QStringLiteral("le"), QStringLiteral("\u3047"));
- map.insert(QStringLiteral("lye"), QStringLiteral("\u3047"));
- map.insert(QStringLiteral("xe"), QStringLiteral("\u3047"));
- map.insert(QStringLiteral("xye"), QStringLiteral("\u3047"));
- map.insert(QStringLiteral("e"), QStringLiteral("\u3048"));
- map.insert(QStringLiteral("lo"), QStringLiteral("\u3049"));
- map.insert(QStringLiteral("xo"), QStringLiteral("\u3049"));
- map.insert(QStringLiteral("o"), QStringLiteral("\u304a"));
- map.insert(QStringLiteral("ca"), QStringLiteral("\u304b"));
- map.insert(QStringLiteral("ka"), QStringLiteral("\u304b"));
- map.insert(QStringLiteral("ga"), QStringLiteral("\u304c"));
- map.insert(QStringLiteral("ki"), QStringLiteral("\u304d"));
- map.insert(QStringLiteral("kyi"), QStringLiteral("\u304d\u3043"));
- map.insert(QStringLiteral("kye"), QStringLiteral("\u304d\u3047"));
- map.insert(QStringLiteral("kya"), QStringLiteral("\u304d\u3083"));
- map.insert(QStringLiteral("kyu"), QStringLiteral("\u304d\u3085"));
- map.insert(QStringLiteral("kyo"), QStringLiteral("\u304d\u3087"));
- map.insert(QStringLiteral("gi"), QStringLiteral("\u304e"));
- map.insert(QStringLiteral("gyi"), QStringLiteral("\u304e\u3043"));
- map.insert(QStringLiteral("gye"), QStringLiteral("\u304e\u3047"));
- map.insert(QStringLiteral("gya"), QStringLiteral("\u304e\u3083"));
- map.insert(QStringLiteral("gyu"), QStringLiteral("\u304e\u3085"));
- map.insert(QStringLiteral("gyo"), QStringLiteral("\u304e\u3087"));
- map.insert(QStringLiteral("cu"), QStringLiteral("\u304f"));
- map.insert(QStringLiteral("ku"), QStringLiteral("\u304f"));
- map.insert(QStringLiteral("qu"), QStringLiteral("\u304f"));
- map.insert(QStringLiteral("kwa"), QStringLiteral("\u304f\u3041"));
- map.insert(QStringLiteral("qa"), QStringLiteral("\u304f\u3041"));
- map.insert(QStringLiteral("qwa"), QStringLiteral("\u304f\u3041"));
- map.insert(QStringLiteral("qi"), QStringLiteral("\u304f\u3043"));
- map.insert(QStringLiteral("qwi"), QStringLiteral("\u304f\u3043"));
- map.insert(QStringLiteral("qyi"), QStringLiteral("\u304f\u3043"));
- map.insert(QStringLiteral("qwu"), QStringLiteral("\u304f\u3045"));
- map.insert(QStringLiteral("qe"), QStringLiteral("\u304f\u3047"));
- map.insert(QStringLiteral("qwe"), QStringLiteral("\u304f\u3047"));
- map.insert(QStringLiteral("qye"), QStringLiteral("\u304f\u3047"));
- map.insert(QStringLiteral("qo"), QStringLiteral("\u304f\u3049"));
- map.insert(QStringLiteral("qwo"), QStringLiteral("\u304f\u3049"));
- map.insert(QStringLiteral("qya"), QStringLiteral("\u304f\u3083"));
- map.insert(QStringLiteral("qyu"), QStringLiteral("\u304f\u3085"));
- map.insert(QStringLiteral("qyo"), QStringLiteral("\u304f\u3087"));
- map.insert(QStringLiteral("gu"), QStringLiteral("\u3050"));
- map.insert(QStringLiteral("gwa"), QStringLiteral("\u3050\u3041"));
- map.insert(QStringLiteral("gwi"), QStringLiteral("\u3050\u3043"));
- map.insert(QStringLiteral("gwu"), QStringLiteral("\u3050\u3045"));
- map.insert(QStringLiteral("gwe"), QStringLiteral("\u3050\u3047"));
- map.insert(QStringLiteral("gwo"), QStringLiteral("\u3050\u3049"));
- map.insert(QStringLiteral("ke"), QStringLiteral("\u3051"));
- map.insert(QStringLiteral("ge"), QStringLiteral("\u3052"));
- map.insert(QStringLiteral("co"), QStringLiteral("\u3053"));
- map.insert(QStringLiteral("ko"), QStringLiteral("\u3053"));
- map.insert(QStringLiteral("go"), QStringLiteral("\u3054"));
- map.insert(QStringLiteral("sa"), QStringLiteral("\u3055"));
- map.insert(QStringLiteral("za"), QStringLiteral("\u3056"));
- map.insert(QStringLiteral("ci"), QStringLiteral("\u3057"));
- map.insert(QStringLiteral("shi"), QStringLiteral("\u3057"));
- map.insert(QStringLiteral("si"), QStringLiteral("\u3057"));
- map.insert(QStringLiteral("syi"), QStringLiteral("\u3057\u3043"));
- map.insert(QStringLiteral("she"), QStringLiteral("\u3057\u3047"));
- map.insert(QStringLiteral("sye"), QStringLiteral("\u3057\u3047"));
- map.insert(QStringLiteral("sha"), QStringLiteral("\u3057\u3083"));
- map.insert(QStringLiteral("sya"), QStringLiteral("\u3057\u3083"));
- map.insert(QStringLiteral("shu"), QStringLiteral("\u3057\u3085"));
- map.insert(QStringLiteral("syu"), QStringLiteral("\u3057\u3085"));
- map.insert(QStringLiteral("sho"), QStringLiteral("\u3057\u3087"));
- map.insert(QStringLiteral("syo"), QStringLiteral("\u3057\u3087"));
- map.insert(QStringLiteral("ji"), QStringLiteral("\u3058"));
- map.insert(QStringLiteral("zi"), QStringLiteral("\u3058"));
- map.insert(QStringLiteral("jyi"), QStringLiteral("\u3058\u3043"));
- map.insert(QStringLiteral("zyi"), QStringLiteral("\u3058\u3043"));
- map.insert(QStringLiteral("je"), QStringLiteral("\u3058\u3047"));
- map.insert(QStringLiteral("jye"), QStringLiteral("\u3058\u3047"));
- map.insert(QStringLiteral("zye"), QStringLiteral("\u3058\u3047"));
- map.insert(QStringLiteral("ja"), QStringLiteral("\u3058\u3083"));
- map.insert(QStringLiteral("jya"), QStringLiteral("\u3058\u3083"));
- map.insert(QStringLiteral("zya"), QStringLiteral("\u3058\u3083"));
- map.insert(QStringLiteral("ju"), QStringLiteral("\u3058\u3085"));
- map.insert(QStringLiteral("jyu"), QStringLiteral("\u3058\u3085"));
- map.insert(QStringLiteral("zyu"), QStringLiteral("\u3058\u3085"));
- map.insert(QStringLiteral("jo"), QStringLiteral("\u3058\u3087"));
- map.insert(QStringLiteral("jyo"), QStringLiteral("\u3058\u3087"));
- map.insert(QStringLiteral("zyo"), QStringLiteral("\u3058\u3087"));
- map.insert(QStringLiteral("su"), QStringLiteral("\u3059"));
- map.insert(QStringLiteral("swa"), QStringLiteral("\u3059\u3041"));
- map.insert(QStringLiteral("swi"), QStringLiteral("\u3059\u3043"));
- map.insert(QStringLiteral("swu"), QStringLiteral("\u3059\u3045"));
- map.insert(QStringLiteral("swe"), QStringLiteral("\u3059\u3047"));
- map.insert(QStringLiteral("swo"), QStringLiteral("\u3059\u3049"));
- map.insert(QStringLiteral("zu"), QStringLiteral("\u305a"));
- map.insert(QStringLiteral("ce"), QStringLiteral("\u305b"));
- map.insert(QStringLiteral("se"), QStringLiteral("\u305b"));
- map.insert(QStringLiteral("ze"), QStringLiteral("\u305c"));
- map.insert(QStringLiteral("so"), QStringLiteral("\u305d"));
- map.insert(QStringLiteral("zo"), QStringLiteral("\u305e"));
- map.insert(QStringLiteral("ta"), QStringLiteral("\u305f"));
- map.insert(QStringLiteral("da"), QStringLiteral("\u3060"));
- map.insert(QStringLiteral("chi"), QStringLiteral("\u3061"));
- map.insert(QStringLiteral("ti"), QStringLiteral("\u3061"));
- map.insert(QStringLiteral("cyi"), QStringLiteral("\u3061\u3043"));
- map.insert(QStringLiteral("tyi"), QStringLiteral("\u3061\u3043"));
- map.insert(QStringLiteral("che"), QStringLiteral("\u3061\u3047"));
- map.insert(QStringLiteral("cye"), QStringLiteral("\u3061\u3047"));
- map.insert(QStringLiteral("tye"), QStringLiteral("\u3061\u3047"));
- map.insert(QStringLiteral("cha"), QStringLiteral("\u3061\u3083"));
- map.insert(QStringLiteral("cya"), QStringLiteral("\u3061\u3083"));
- map.insert(QStringLiteral("tya"), QStringLiteral("\u3061\u3083"));
- map.insert(QStringLiteral("chu"), QStringLiteral("\u3061\u3085"));
- map.insert(QStringLiteral("cyu"), QStringLiteral("\u3061\u3085"));
- map.insert(QStringLiteral("tyu"), QStringLiteral("\u3061\u3085"));
- map.insert(QStringLiteral("cho"), QStringLiteral("\u3061\u3087"));
- map.insert(QStringLiteral("cyo"), QStringLiteral("\u3061\u3087"));
- map.insert(QStringLiteral("tyo"), QStringLiteral("\u3061\u3087"));
- map.insert(QStringLiteral("di"), QStringLiteral("\u3062"));
- map.insert(QStringLiteral("dyi"), QStringLiteral("\u3062\u3043"));
- map.insert(QStringLiteral("dye"), QStringLiteral("\u3062\u3047"));
- map.insert(QStringLiteral("dya"), QStringLiteral("\u3062\u3083"));
- map.insert(QStringLiteral("dyu"), QStringLiteral("\u3062\u3085"));
- map.insert(QStringLiteral("dyo"), QStringLiteral("\u3062\u3087"));
- map.insert(QStringLiteral("ltsu"), QStringLiteral("\u3063"));
- map.insert(QStringLiteral("ltu"), QStringLiteral("\u3063"));
- map.insert(QStringLiteral("xtu"), QStringLiteral("\u3063"));
- map.insert(QStringLiteral(""), QStringLiteral("\u3063"));
- map.insert(QStringLiteral("tsu"), QStringLiteral("\u3064"));
- map.insert(QStringLiteral("tu"), QStringLiteral("\u3064"));
- map.insert(QStringLiteral("tsa"), QStringLiteral("\u3064\u3041"));
- map.insert(QStringLiteral("tsi"), QStringLiteral("\u3064\u3043"));
- map.insert(QStringLiteral("tse"), QStringLiteral("\u3064\u3047"));
- map.insert(QStringLiteral("tso"), QStringLiteral("\u3064\u3049"));
- map.insert(QStringLiteral("du"), QStringLiteral("\u3065"));
- map.insert(QStringLiteral("te"), QStringLiteral("\u3066"));
- map.insert(QStringLiteral("thi"), QStringLiteral("\u3066\u3043"));
- map.insert(QStringLiteral("the"), QStringLiteral("\u3066\u3047"));
- map.insert(QStringLiteral("tha"), QStringLiteral("\u3066\u3083"));
- map.insert(QStringLiteral("thu"), QStringLiteral("\u3066\u3085"));
- map.insert(QStringLiteral("tho"), QStringLiteral("\u3066\u3087"));
- map.insert(QStringLiteral("de"), QStringLiteral("\u3067"));
- map.insert(QStringLiteral("dhi"), QStringLiteral("\u3067\u3043"));
- map.insert(QStringLiteral("dhe"), QStringLiteral("\u3067\u3047"));
- map.insert(QStringLiteral("dha"), QStringLiteral("\u3067\u3083"));
- map.insert(QStringLiteral("dhu"), QStringLiteral("\u3067\u3085"));
- map.insert(QStringLiteral("dho"), QStringLiteral("\u3067\u3087"));
- map.insert(QStringLiteral("to"), QStringLiteral("\u3068"));
- map.insert(QStringLiteral("twa"), QStringLiteral("\u3068\u3041"));
- map.insert(QStringLiteral("twi"), QStringLiteral("\u3068\u3043"));
- map.insert(QStringLiteral("twu"), QStringLiteral("\u3068\u3045"));
- map.insert(QStringLiteral("twe"), QStringLiteral("\u3068\u3047"));
- map.insert(QStringLiteral("two"), QStringLiteral("\u3068\u3049"));
- map.insert(QStringLiteral("do"), QStringLiteral("\u3069"));
- map.insert(QStringLiteral("dwa"), QStringLiteral("\u3069\u3041"));
- map.insert(QStringLiteral("dwi"), QStringLiteral("\u3069\u3043"));
- map.insert(QStringLiteral("dwu"), QStringLiteral("\u3069\u3045"));
- map.insert(QStringLiteral("dwe"), QStringLiteral("\u3069\u3047"));
- map.insert(QStringLiteral("dwo"), QStringLiteral("\u3069\u3049"));
- map.insert(QStringLiteral("na"), QStringLiteral("\u306a"));
- map.insert(QStringLiteral("ni"), QStringLiteral("\u306b"));
- map.insert(QStringLiteral("nyi"), QStringLiteral("\u306b\u3043"));
- map.insert(QStringLiteral("nye"), QStringLiteral("\u306b\u3047"));
- map.insert(QStringLiteral("nya"), QStringLiteral("\u306b\u3083"));
- map.insert(QStringLiteral("nyu"), QStringLiteral("\u306b\u3085"));
- map.insert(QStringLiteral("nyo"), QStringLiteral("\u306b\u3087"));
- map.insert(QStringLiteral("nu"), QStringLiteral("\u306c"));
- map.insert(QStringLiteral("ne"), QStringLiteral("\u306d"));
- map.insert(QStringLiteral("no"), QStringLiteral("\u306e"));
- map.insert(QStringLiteral("ha"), QStringLiteral("\u306f"));
- map.insert(QStringLiteral("ba"), QStringLiteral("\u3070"));
- map.insert(QStringLiteral("pa"), QStringLiteral("\u3071"));
- map.insert(QStringLiteral("hi"), QStringLiteral("\u3072"));
- map.insert(QStringLiteral("hyi"), QStringLiteral("\u3072\u3043"));
- map.insert(QStringLiteral("hye"), QStringLiteral("\u3072\u3047"));
- map.insert(QStringLiteral("hya"), QStringLiteral("\u3072\u3083"));
- map.insert(QStringLiteral("hyu"), QStringLiteral("\u3072\u3085"));
- map.insert(QStringLiteral("hyo"), QStringLiteral("\u3072\u3087"));
- map.insert(QStringLiteral("bi"), QStringLiteral("\u3073"));
- map.insert(QStringLiteral("byi"), QStringLiteral("\u3073\u3043"));
- map.insert(QStringLiteral("bye"), QStringLiteral("\u3073\u3047"));
- map.insert(QStringLiteral("bya"), QStringLiteral("\u3073\u3083"));
- map.insert(QStringLiteral("byu"), QStringLiteral("\u3073\u3085"));
- map.insert(QStringLiteral("byo"), QStringLiteral("\u3073\u3087"));
- map.insert(QStringLiteral("pi"), QStringLiteral("\u3074"));
- map.insert(QStringLiteral("pyi"), QStringLiteral("\u3074\u3043"));
- map.insert(QStringLiteral("pye"), QStringLiteral("\u3074\u3047"));
- map.insert(QStringLiteral("pya"), QStringLiteral("\u3074\u3083"));
- map.insert(QStringLiteral("pyu"), QStringLiteral("\u3074\u3085"));
- map.insert(QStringLiteral("pyo"), QStringLiteral("\u3074\u3087"));
- map.insert(QStringLiteral("fu"), QStringLiteral("\u3075"));
- map.insert(QStringLiteral("hu"), QStringLiteral("\u3075"));
- map.insert(QStringLiteral("fa"), QStringLiteral("\u3075\u3041"));
- map.insert(QStringLiteral("fwa"), QStringLiteral("\u3075\u3041"));
- map.insert(QStringLiteral("fi"), QStringLiteral("\u3075\u3043"));
- map.insert(QStringLiteral("fwi"), QStringLiteral("\u3075\u3043"));
- map.insert(QStringLiteral("fyi"), QStringLiteral("\u3075\u3043"));
- map.insert(QStringLiteral("fwu"), QStringLiteral("\u3075\u3045"));
- map.insert(QStringLiteral("fe"), QStringLiteral("\u3075\u3047"));
- map.insert(QStringLiteral("fwe"), QStringLiteral("\u3075\u3047"));
- map.insert(QStringLiteral("fye"), QStringLiteral("\u3075\u3047"));
- map.insert(QStringLiteral("fo"), QStringLiteral("\u3075\u3049"));
- map.insert(QStringLiteral("fwo"), QStringLiteral("\u3075\u3049"));
- map.insert(QStringLiteral("fya"), QStringLiteral("\u3075\u3083"));
- map.insert(QStringLiteral("fyu"), QStringLiteral("\u3075\u3085"));
- map.insert(QStringLiteral("fyo"), QStringLiteral("\u3075\u3087"));
- map.insert(QStringLiteral("bu"), QStringLiteral("\u3076"));
- map.insert(QStringLiteral("pu"), QStringLiteral("\u3077"));
- map.insert(QStringLiteral("he"), QStringLiteral("\u3078"));
- map.insert(QStringLiteral("be"), QStringLiteral("\u3079"));
- map.insert(QStringLiteral("pe"), QStringLiteral("\u307a"));
- map.insert(QStringLiteral("ho"), QStringLiteral("\u307b"));
- map.insert(QStringLiteral("bo"), QStringLiteral("\u307c"));
- map.insert(QStringLiteral("po"), QStringLiteral("\u307d"));
- map.insert(QStringLiteral("ma"), QStringLiteral("\u307e"));
- map.insert(QStringLiteral("mi"), QStringLiteral("\u307f"));
- map.insert(QStringLiteral("myi"), QStringLiteral("\u307f\u3043"));
- map.insert(QStringLiteral("mye"), QStringLiteral("\u307f\u3047"));
- map.insert(QStringLiteral("mya"), QStringLiteral("\u307f\u3083"));
- map.insert(QStringLiteral("myu"), QStringLiteral("\u307f\u3085"));
- map.insert(QStringLiteral("myo"), QStringLiteral("\u307f\u3087"));
- map.insert(QStringLiteral("mu"), QStringLiteral("\u3080"));
- map.insert(QStringLiteral("me"), QStringLiteral("\u3081"));
- map.insert(QStringLiteral("mo"), QStringLiteral("\u3082"));
- map.insert(QStringLiteral("lya"), QStringLiteral("\u3083"));
- map.insert(QStringLiteral("xya"), QStringLiteral("\u3083"));
- map.insert(QStringLiteral("ya"), QStringLiteral("\u3084"));
- map.insert(QStringLiteral("lyu"), QStringLiteral("\u3085"));
- map.insert(QStringLiteral("xyu"), QStringLiteral("\u3085"));
- map.insert(QStringLiteral("yu"), QStringLiteral("\u3086"));
- map.insert(QStringLiteral("lyo"), QStringLiteral("\u3087"));
- map.insert(QStringLiteral("xyo"), QStringLiteral("\u3087"));
- map.insert(QStringLiteral("yo"), QStringLiteral("\u3088"));
- map.insert(QStringLiteral("ra"), QStringLiteral("\u3089"));
- map.insert(QStringLiteral("ri"), QStringLiteral("\u308a"));
- map.insert(QStringLiteral("ryi"), QStringLiteral("\u308a\u3043"));
- map.insert(QStringLiteral("rye"), QStringLiteral("\u308a\u3047"));
- map.insert(QStringLiteral("rya"), QStringLiteral("\u308a\u3083"));
- map.insert(QStringLiteral("ryu"), QStringLiteral("\u308a\u3085"));
- map.insert(QStringLiteral("ryo"), QStringLiteral("\u308a\u3087"));
- map.insert(QStringLiteral("ru"), QStringLiteral("\u308b"));
- map.insert(QStringLiteral("re"), QStringLiteral("\u308c"));
- map.insert(QStringLiteral("ro"), QStringLiteral("\u308d"));
- map.insert(QStringLiteral("lwa"), QStringLiteral("\u308e"));
- map.insert(QStringLiteral("xwa"), QStringLiteral("\u308e"));
- map.insert(QStringLiteral("wa"), QStringLiteral("\u308f"));
- map.insert(QStringLiteral("wo"), QStringLiteral("\u3092"));
- map.insert(QStringLiteral("nn"), QStringLiteral("\u3093"));
- map.insert(QStringLiteral("xn"), QStringLiteral("\u3093"));
- map.insert(QStringLiteral("vu"), QStringLiteral("\u30f4"));
- map.insert(QStringLiteral("va"), QStringLiteral("\u30f4\u3041"));
- map.insert(QStringLiteral("vi"), QStringLiteral("\u30f4\u3043"));
- map.insert(QStringLiteral("vyi"), QStringLiteral("\u30f4\u3043"));
- map.insert(QStringLiteral("ve"), QStringLiteral("\u30f4\u3047"));
- map.insert(QStringLiteral("vye"), QStringLiteral("\u30f4\u3047"));
- map.insert(QStringLiteral("vo"), QStringLiteral("\u30f4\u3049"));
- map.insert(QStringLiteral("vya"), QStringLiteral("\u30f4\u3083"));
- map.insert(QStringLiteral("vyu"), QStringLiteral("\u30f4\u3085"));
- map.insert(QStringLiteral("vyo"), QStringLiteral("\u30f4\u3087"));
- map.insert(QStringLiteral("bb"), QStringLiteral("\u3063b"));
- map.insert(QStringLiteral("cc"), QStringLiteral("\u3063c"));
- map.insert(QStringLiteral("dd"), QStringLiteral("\u3063d"));
- map.insert(QStringLiteral("ff"), QStringLiteral("\u3063f"));
- map.insert(QStringLiteral("gg"), QStringLiteral("\u3063g"));
- map.insert(QStringLiteral("hh"), QStringLiteral("\u3063h"));
- map.insert(QStringLiteral("jj"), QStringLiteral("\u3063j"));
- map.insert(QStringLiteral("kk"), QStringLiteral("\u3063k"));
- map.insert(QStringLiteral("ll"), QStringLiteral("\u3063l"));
- map.insert(QStringLiteral("mm"), QStringLiteral("\u3063m"));
- map.insert(QStringLiteral("pp"), QStringLiteral("\u3063p"));
- map.insert(QStringLiteral("qq"), QStringLiteral("\u3063q"));
- map.insert(QStringLiteral("rr"), QStringLiteral("\u3063r"));
- map.insert(QStringLiteral("ss"), QStringLiteral("\u3063s"));
- map.insert(QStringLiteral("tt"), QStringLiteral("\u3063t"));
- map.insert(QStringLiteral("vv"), QStringLiteral("\u3063v"));
- map.insert(QStringLiteral("ww"), QStringLiteral("\u3063w"));
- map.insert(QStringLiteral("xx"), QStringLiteral("\u3063x"));
- map.insert(QStringLiteral("yy"), QStringLiteral("\u3063y"));
- map.insert(QStringLiteral("zz"), QStringLiteral("\u3063z"));
- map.insert(QStringLiteral("nb"), QStringLiteral("\u3093b"));
- map.insert(QStringLiteral("nc"), QStringLiteral("\u3093c"));
- map.insert(QStringLiteral("nd"), QStringLiteral("\u3093d"));
- map.insert(QStringLiteral("nf"), QStringLiteral("\u3093f"));
- map.insert(QStringLiteral("ng"), QStringLiteral("\u3093g"));
- map.insert(QStringLiteral("nh"), QStringLiteral("\u3093h"));
- map.insert(QStringLiteral("nj"), QStringLiteral("\u3093j"));
- map.insert(QStringLiteral("nk"), QStringLiteral("\u3093k"));
- map.insert(QStringLiteral("nm"), QStringLiteral("\u3093m"));
- map.insert(QStringLiteral("np"), QStringLiteral("\u3093p"));
- map.insert(QStringLiteral("nq"), QStringLiteral("\u3093q"));
- map.insert(QStringLiteral("nr"), QStringLiteral("\u3093r"));
- map.insert(QStringLiteral("ns"), QStringLiteral("\u3093s"));
- map.insert(QStringLiteral("nt"), QStringLiteral("\u3093t"));
- map.insert(QStringLiteral("nv"), QStringLiteral("\u3093v"));
- map.insert(QStringLiteral("nw"), QStringLiteral("\u3093w"));
- map.insert(QStringLiteral("nx"), QStringLiteral("\u3093x"));
- map.insert(QStringLiteral("nz"), QStringLiteral("\u3093z"));
- map.insert(QStringLiteral("nl"), QStringLiteral("\u3093l"));
- map.insert(QStringLiteral("-"), QStringLiteral("\u30fc"));
- map.insert(QStringLiteral("."), QStringLiteral("\u3002"));
- map.insert(QStringLiteral(","), QStringLiteral("\u3001"));
- map.insert(QStringLiteral("?"), QStringLiteral("\uff1f"));
- map.insert(QStringLiteral("/"), QStringLiteral("\u30fb"));
- map.insert(QStringLiteral("@"), QStringLiteral("\uff20"));
- map.insert(QStringLiteral("#"), QStringLiteral("\uff03"));
- map.insert(QStringLiteral("%"), QStringLiteral("\uff05"));
- map.insert(QStringLiteral("&"), QStringLiteral("\uff06"));
- map.insert(QStringLiteral("*"), QStringLiteral("\uff0a"));
- map.insert(QStringLiteral("+"), QStringLiteral("\uff0b"));
- map.insert(QStringLiteral("="), QStringLiteral("\uff1d"));
- map.insert(QStringLiteral("("), QStringLiteral("\uff08"));
- map.insert(QStringLiteral(")"), QStringLiteral("\uff09"));
- map.insert(QStringLiteral("~"), QStringLiteral("\uff5e"));
- map.insert(QStringLiteral("\""), QStringLiteral("\uff02"));
- map.insert(QStringLiteral("'"), QStringLiteral("\uff07"));
- map.insert(QStringLiteral(":"), QStringLiteral("\uff1a"));
- map.insert(QStringLiteral(";"), QStringLiteral("\uff1b"));
- map.insert(QStringLiteral("!"), QStringLiteral("\uff01"));
- map.insert(QStringLiteral("^"), QStringLiteral("\uff3e"));
- map.insert(QStringLiteral("\u00a5"), QStringLiteral("\uffe5"));
- map.insert(QStringLiteral("$"), QStringLiteral("\uff04"));
- map.insert(QStringLiteral("["), QStringLiteral("\u300c"));
- map.insert(QStringLiteral("]"), QStringLiteral("\u300d"));
- map.insert(QStringLiteral("_"), QStringLiteral("\uff3f"));
- map.insert(QStringLiteral("{"), QStringLiteral("\uff5b"));
- map.insert(QStringLiteral("}"), QStringLiteral("\uff5d"));
- map.insert(QStringLiteral("`"), QStringLiteral("\uff40"));
- map.insert(QStringLiteral("<"), QStringLiteral("\uff1c"));
- map.insert(QStringLiteral(">"), QStringLiteral("\uff1e"));
- map.insert(QStringLiteral("\\"), QStringLiteral("\uff3c"));
- map.insert(QStringLiteral("|"), QStringLiteral("\uff5c"));
- map.insert(QStringLiteral("1"), QStringLiteral("\uff11"));
- map.insert(QStringLiteral("2"), QStringLiteral("\uff12"));
- map.insert(QStringLiteral("3"), QStringLiteral("\uff13"));
- map.insert(QStringLiteral("4"), QStringLiteral("\uff14"));
- map.insert(QStringLiteral("5"), QStringLiteral("\uff15"));
- map.insert(QStringLiteral("6"), QStringLiteral("\uff16"));
- map.insert(QStringLiteral("7"), QStringLiteral("\uff17"));
- map.insert(QStringLiteral("8"), QStringLiteral("\uff18"));
- map.insert(QStringLiteral("9"), QStringLiteral("\uff19"));
- map.insert(QStringLiteral("0"), QStringLiteral("\uff10"));
- return map;
- }
-
- static const QMap<QString, QString> romkanTable;
+ static const int romkanTableLength = 356;
+ static const char *romkanTableKey[romkanTableLength];
+ static const char *romkanTableValue[romkanTableLength];
+ static const WnnLookupTable romkanTable;
/** Max length of the target text */
static const int MAX_LENGTH;
};
+const char *RomkanPrivate::romkanTableKey[] = {
+"", "!", "\"", "#", "$", "%", "&", "\'", "(", ")", "*", "+", ",", "-", ".", "/",
+"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?",
+"@", "[", "\\", "]", "^", "_", "`", "a", "ba", "bb", "be", "bi", "bo", "bu", "bya", "bye",
+"byi", "byo", "byu", "ca", "cc", "ce", "cha", "che", "chi", "cho", "chu", "ci", "co", "cu", "cya", "cye",
+"cyi", "cyo", "cyu", "da", "dd", "de", "dha", "dhe", "dhi", "dho", "dhu", "di", "do", "du", "dwa", "dwe",
+"dwi", "dwo", "dwu", "dya", "dye", "dyi", "dyo", "dyu", "e", "fa", "fe", "ff", "fi", "fo", "fu", "fwa",
+"fwe", "fwi", "fwo", "fwu", "fya", "fye", "fyi", "fyo", "fyu", "ga", "ge", "gg", "gi", "go", "gu", "gwa",
+"gwe", "gwi", "gwo", "gwu", "gya", "gye", "gyi", "gyo", "gyu", "ha", "he", "hh", "hi", "ho", "hu", "hya",
+"hye", "hyi", "hyo", "hyu", "i", "ja", "je", "ji", "jj", "jo", "ju", "jya", "jye", "jyi", "jyo", "jyu",
+"ka", "ke", "ki", "kk", "ko", "ku", "kwa", "kya", "kye", "kyi", "kyo", "kyu", "la", "le", "li", "ll",
+"lo", "ltsu", "ltu", "lu", "lwa", "lya", "lye", "lyi", "lyo", "lyu", "ma", "me", "mi", "mm", "mo", "mu",
+"mya", "mye", "myi", "myo", "myu", "na", "nb", "nc", "nd", "ne", "nf", "ng", "nh", "ni", "nj", "nk",
+"nl", "nm", "nn", "no", "np", "nq", "nr", "ns", "nt", "nu", "nv", "nw", "nx", "nya", "nye", "nyi",
+"nyo", "nyu", "nz", "o", "pa", "pe", "pi", "po", "pp", "pu", "pya", "pye", "pyi", "pyo", "pyu", "qa",
+"qe", "qi", "qo", "qq", "qu", "qwa", "qwe", "qwi", "qwo", "qwu", "qya", "qye", "qyi", "qyo", "qyu", "ra",
+"re", "ri", "ro", "rr", "ru", "rya", "rye", "ryi", "ryo", "ryu", "sa", "se", "sha", "she", "shi", "sho",
+"shu", "si", "so", "ss", "su", "swa", "swe", "swi", "swo", "swu", "sya", "sye", "syi", "syo", "syu", "ta",
+"te", "tha", "the", "thi", "tho", "thu", "ti", "to", "tsa", "tse", "tsi", "tso", "tsu", "tt", "tu", "twa",
+"twe", "twi", "two", "twu", "tya", "tye", "tyi", "tyo", "tyu", "u", "va", "ve", "vi", "vo", "vu", "vv",
+"vya", "vye", "vyi", "vyo", "vyu", "wa", "we", "wha", "whe", "whi", "who", "whu", "wi", "wo", "wu", "ww",
+"xa", "xe", "xi", "xn", "xo", "xtu", "xu", "xwa", "xx", "xya", "xye", "xyi", "xyo", "xyu", "ya", "ye",
+"yi", "yo", "yu", "yy", "za", "ze", "zi", "zo", "zu", "zya", "zye", "zyi", "zyo", "zyu", "zz", "{",
+"|", "}", "~", "¥"
+};
+const char *RomkanPrivate::romkanTableValue[] = {
+"っ", "!", """, "#", "$", "%", "&", "'", "(", ")", "*", "+", "、", "ー", "。", "・",
+"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?",
+"@", "「", "\", "」", "^", "_", "`", "あ", "ば", "っb", "べ", "び", "ぼ", "ぶ", "びゃ", "びぇ",
+"びぃ", "びょ", "びゅ", "か", "っc", "せ", "ちゃ", "ちぇ", "ち", "ちょ", "ちゅ", "し", "こ", "く", "ちゃ", "ちぇ",
+"ちぃ", "ちょ", "ちゅ", "だ", "っd", "で", "でゃ", "でぇ", "でぃ", "でょ", "でゅ", "ぢ", "ど", "づ", "どぁ", "どぇ",
+"どぃ", "どぉ", "どぅ", "ぢゃ", "ぢぇ", "ぢぃ", "ぢょ", "ぢゅ", "え", "ふぁ", "ふぇ", "っf", "ふぃ", "ふぉ", "ふ", "ふぁ",
+"ふぇ", "ふぃ", "ふぉ", "ふぅ", "ふゃ", "ふぇ", "ふぃ", "ふょ", "ふゅ", "が", "げ", "っg", "ぎ", "ご", "ぐ", "ぐぁ",
+"ぐぇ", "ぐぃ", "ぐぉ", "ぐぅ", "ぎゃ", "ぎぇ", "ぎぃ", "ぎょ", "ぎゅ", "は", "へ", "っh", "ひ", "ほ", "ふ", "ひゃ",
+"ひぇ", "ひぃ", "ひょ", "ひゅ", "い", "じゃ", "じぇ", "じ", "っj", "じょ", "じゅ", "じゃ", "じぇ", "じぃ", "じょ", "じゅ",
+"か", "け", "き", "っk", "こ", "く", "くぁ", "きゃ", "きぇ", "きぃ", "きょ", "きゅ", "ぁ", "ぇ", "ぃ", "っl",
+"ぉ", "っ", "っ", "ぅ", "ゎ", "ゃ", "ぇ", "ぃ", "ょ", "ゅ", "ま", "め", "み", "っm", "も", "む",
+"みゃ", "みぇ", "みぃ", "みょ", "みゅ", "な", "んb", "んc", "んd", "ね", "んf", "んg", "んh", "に", "んj", "んk",
+"んl", "んm", "ん", "の", "んp", "んq", "んr", "んs", "んt", "ぬ", "んv", "んw", "んx", "にゃ", "にぇ", "にぃ",
+"にょ", "にゅ", "んz", "お", "ぱ", "ぺ", "ぴ", "ぽ", "っp", "ぷ", "ぴゃ", "ぴぇ", "ぴぃ", "ぴょ", "ぴゅ", "くぁ",
+"くぇ", "くぃ", "くぉ", "っq", "く", "くぁ", "くぇ", "くぃ", "くぉ", "くぅ", "くゃ", "くぇ", "くぃ", "くょ", "くゅ", "ら",
+"れ", "り", "ろ", "っr", "る", "りゃ", "りぇ", "りぃ", "りょ", "りゅ", "さ", "せ", "しゃ", "しぇ", "し", "しょ",
+"しゅ", "し", "そ", "っs", "す", "すぁ", "すぇ", "すぃ", "すぉ", "すぅ", "しゃ", "しぇ", "しぃ", "しょ", "しゅ", "た",
+"て", "てゃ", "てぇ", "てぃ", "てょ", "てゅ", "ち", "と", "つぁ", "つぇ", "つぃ", "つぉ", "つ", "っt", "つ", "とぁ",
+"とぇ", "とぃ", "とぉ", "とぅ", "ちゃ", "ちぇ", "ちぃ", "ちょ", "ちゅ", "う", "ヴぁ", "ヴぇ", "ヴぃ", "ヴぉ", "ヴ", "っv",
+"ヴゃ", "ヴぇ", "ヴぃ", "ヴょ", "ヴゅ", "わ", "うぇ", "うぁ", "うぇ", "うぃ", "うぉ", "う", "うぃ", "を", "う", "っw",
+"ぁ", "ぇ", "ぃ", "ん", "ぉ", "っ", "ぅ", "ゎ", "っx", "ゃ", "ぇ", "ぃ", "ょ", "ゅ", "や", "いぇ",
+"い", "よ", "ゆ", "っy", "ざ", "ぜ", "じ", "ぞ", "ず", "じゃ", "じぇ", "じぃ", "じょ", "じゅ", "っz", "{",
+"|", "}", "~", "¥"
+};
+const WnnLookupTable RomkanPrivate::romkanTable = WnnLookupTable(
+ RomkanPrivate::romkanTableKey,
+ RomkanPrivate::romkanTableValue,
+ RomkanPrivate::romkanTableLength);
const int RomkanPrivate::MAX_LENGTH = 4;
-const QMap<QString, QString> RomkanPrivate::romkanTable = RomkanPrivate::initRomkanTable();
-
-Romkan::Romkan(QObjectPrivate &dd, QObject *parent) :
- LetterConverter(dd, parent)
-{
-}
-
Romkan::Romkan(QObject *parent) :
- LetterConverter(*new RomkanPrivate(), parent)
+ LetterConverter(parent)
{
}
@@ -420,7 +105,7 @@ bool Romkan::convert(ComposingText &text) const
return convertImpl(text, RomkanPrivate::romkanTable);
}
-bool Romkan::convertImpl(ComposingText &text, const QMap<QString, QString> &table) const
+bool Romkan::convertImpl(ComposingText &text, const WnnLookupTable &table) const
{
int cursor = text.getCursor(ComposingText::LAYER1);
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkanfullkatakana.cpp b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkanfullkatakana.cpp
index 7cf77689..32726f6b 100644
--- a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkanfullkatakana.cpp
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkanfullkatakana.cpp
@@ -21,351 +21,70 @@
#include "romkanfullkatakana.h"
#include "strsegment.h"
-#include <QMap>
+#include "wnnlookuptable.h"
-#include <QtCore/private/qobject_p.h>
-
-class RomkanFullKatakanaPrivate : public QObjectPrivate
+class RomkanFullKatakanaPrivate
{
public:
- /** HashMap for Romaji-to-Kana conversion (Japanese mode) */
- static QMap<QString, QString> initRomkanTable()
- {
- QMap<QString, QString> map;
- map.insert(QStringLiteral("la"), QStringLiteral("\u30a1"));
- map.insert(QStringLiteral("xa"), QStringLiteral("\u30a1"));
- map.insert(QStringLiteral("a"), QStringLiteral("\u30a2"));
- map.insert(QStringLiteral("li"), QStringLiteral("\u30a3"));
- map.insert(QStringLiteral("lyi"), QStringLiteral("\u30a3"));
- map.insert(QStringLiteral("xi"), QStringLiteral("\u30a3"));
- map.insert(QStringLiteral("xyi"), QStringLiteral("\u30a3"));
- map.insert(QStringLiteral("i"), QStringLiteral("\u30a4"));
- map.insert(QStringLiteral("yi"), QStringLiteral("\u30a4"));
- map.insert(QStringLiteral("ye"), QStringLiteral("\u30a4\u30a7"));
- map.insert(QStringLiteral("lu"), QStringLiteral("\u30a5"));
- map.insert(QStringLiteral("xu"), QStringLiteral("\u30a5"));
- map.insert(QStringLiteral("u"), QStringLiteral("\u30a6"));
- map.insert(QStringLiteral("whu"), QStringLiteral("\u30a6"));
- map.insert(QStringLiteral("wu"), QStringLiteral("\u30a6"));
- map.insert(QStringLiteral("wha"), QStringLiteral("\u30a6\u30a1"));
- map.insert(QStringLiteral("whi"), QStringLiteral("\u30a6\u30a3"));
- map.insert(QStringLiteral("wi"), QStringLiteral("\u30a6\u30a3"));
- map.insert(QStringLiteral("we"), QStringLiteral("\u30a6\u30a7"));
- map.insert(QStringLiteral("whe"), QStringLiteral("\u30a6\u30a7"));
- map.insert(QStringLiteral("who"), QStringLiteral("\u30a6\u30a9"));
- map.insert(QStringLiteral("le"), QStringLiteral("\u30a7"));
- map.insert(QStringLiteral("lye"), QStringLiteral("\u30a7"));
- map.insert(QStringLiteral("xe"), QStringLiteral("\u30a7"));
- map.insert(QStringLiteral("xye"), QStringLiteral("\u30a7"));
- map.insert(QStringLiteral("e"), QStringLiteral("\u30a8"));
- map.insert(QStringLiteral("lo"), QStringLiteral("\u30a9"));
- map.insert(QStringLiteral("xo"), QStringLiteral("\u30a9"));
- map.insert(QStringLiteral("o"), QStringLiteral("\u30aa"));
- map.insert(QStringLiteral("ca"), QStringLiteral("\u30ab"));
- map.insert(QStringLiteral("lka"), QStringLiteral("\u30f5"));
- map.insert(QStringLiteral("xka"), QStringLiteral("\u30f5"));
- map.insert(QStringLiteral("ka"), QStringLiteral("\u30ab"));
- map.insert(QStringLiteral("ga"), QStringLiteral("\u30ac"));
- map.insert(QStringLiteral("ki"), QStringLiteral("\u30ad"));
- map.insert(QStringLiteral("kyi"), QStringLiteral("\u30ad\u30a3"));
- map.insert(QStringLiteral("kye"), QStringLiteral("\u30ad\u30a7"));
- map.insert(QStringLiteral("kya"), QStringLiteral("\u30ad\u30e3"));
- map.insert(QStringLiteral("kyu"), QStringLiteral("\u30ad\u30e5"));
- map.insert(QStringLiteral("kyo"), QStringLiteral("\u30ad\u30e7"));
- map.insert(QStringLiteral("gi"), QStringLiteral("\u30ae"));
- map.insert(QStringLiteral("gyi"), QStringLiteral("\u30ae\u30a3"));
- map.insert(QStringLiteral("gye"), QStringLiteral("\u30ae\u30a7"));
- map.insert(QStringLiteral("gya"), QStringLiteral("\u30ae\u30e3"));
- map.insert(QStringLiteral("gyu"), QStringLiteral("\u30ae\u30e5"));
- map.insert(QStringLiteral("gyo"), QStringLiteral("\u30ae\u30e7"));
- map.insert(QStringLiteral("cu"), QStringLiteral("\u30af"));
- map.insert(QStringLiteral("ku"), QStringLiteral("\u30af"));
- map.insert(QStringLiteral("qu"), QStringLiteral("\u30af"));
- map.insert(QStringLiteral("kwa"), QStringLiteral("\u30af\u30a1"));
- map.insert(QStringLiteral("qa"), QStringLiteral("\u30af\u30a1"));
- map.insert(QStringLiteral("qwa"), QStringLiteral("\u30af\u30a1"));
- map.insert(QStringLiteral("qi"), QStringLiteral("\u30af\u30a3"));
- map.insert(QStringLiteral("qwi"), QStringLiteral("\u30af\u30a3"));
- map.insert(QStringLiteral("qyi"), QStringLiteral("\u30af\u30a3"));
- map.insert(QStringLiteral("qwu"), QStringLiteral("\u30af\u30a5"));
- map.insert(QStringLiteral("qe"), QStringLiteral("\u30af\u30a7"));
- map.insert(QStringLiteral("qwe"), QStringLiteral("\u30af\u30a7"));
- map.insert(QStringLiteral("qye"), QStringLiteral("\u30af\u30a7"));
- map.insert(QStringLiteral("qo"), QStringLiteral("\u30af\u30a9"));
- map.insert(QStringLiteral("qwo"), QStringLiteral("\u30af\u30a9"));
- map.insert(QStringLiteral("qya"), QStringLiteral("\u30af\u30e3"));
- map.insert(QStringLiteral("qyu"), QStringLiteral("\u30af\u30e5"));
- map.insert(QStringLiteral("qyo"), QStringLiteral("\u30af\u30e7"));
- map.insert(QStringLiteral("gu"), QStringLiteral("\u30b0"));
- map.insert(QStringLiteral("gwa"), QStringLiteral("\u30b0\u30a1"));
- map.insert(QStringLiteral("gwi"), QStringLiteral("\u30b0\u30a3"));
- map.insert(QStringLiteral("gwu"), QStringLiteral("\u30b0\u30a5"));
- map.insert(QStringLiteral("gwe"), QStringLiteral("\u30b0\u30a7"));
- map.insert(QStringLiteral("gwo"), QStringLiteral("\u30b0\u30a9"));
- map.insert(QStringLiteral("lke"), QStringLiteral("\u30f6"));
- map.insert(QStringLiteral("xke"), QStringLiteral("\u30f6"));
- map.insert(QStringLiteral("ke"), QStringLiteral("\u30b1"));
- map.insert(QStringLiteral("ge"), QStringLiteral("\u30b2"));
- map.insert(QStringLiteral("co"), QStringLiteral("\u30b3"));
- map.insert(QStringLiteral("ko"), QStringLiteral("\u30b3"));
- map.insert(QStringLiteral("go"), QStringLiteral("\u30b4"));
- map.insert(QStringLiteral("sa"), QStringLiteral("\u30b5"));
- map.insert(QStringLiteral("za"), QStringLiteral("\u30b6"));
- map.insert(QStringLiteral("ci"), QStringLiteral("\u30b7"));
- map.insert(QStringLiteral("shi"), QStringLiteral("\u30b7"));
- map.insert(QStringLiteral("si"), QStringLiteral("\u30b7"));
- map.insert(QStringLiteral("syi"), QStringLiteral("\u30b7\u30a3"));
- map.insert(QStringLiteral("she"), QStringLiteral("\u30b7\u30a7"));
- map.insert(QStringLiteral("sye"), QStringLiteral("\u30b7\u30a7"));
- map.insert(QStringLiteral("sha"), QStringLiteral("\u30b7\u30e3"));
- map.insert(QStringLiteral("sya"), QStringLiteral("\u30b7\u30e3"));
- map.insert(QStringLiteral("shu"), QStringLiteral("\u30b7\u30e5"));
- map.insert(QStringLiteral("syu"), QStringLiteral("\u30b7\u30e5"));
- map.insert(QStringLiteral("sho"), QStringLiteral("\u30b7\u30e7"));
- map.insert(QStringLiteral("syo"), QStringLiteral("\u30b7\u30e7"));
- map.insert(QStringLiteral("ji"), QStringLiteral("\u30b8"));
- map.insert(QStringLiteral("zi"), QStringLiteral("\u30b8"));
- map.insert(QStringLiteral("jyi"), QStringLiteral("\u30b8\u30a3"));
- map.insert(QStringLiteral("zyi"), QStringLiteral("\u30b8\u30a3"));
- map.insert(QStringLiteral("je"), QStringLiteral("\u30b8\u30a7"));
- map.insert(QStringLiteral("jye"), QStringLiteral("\u30b8\u30a7"));
- map.insert(QStringLiteral("zye"), QStringLiteral("\u30b8\u30a7"));
- map.insert(QStringLiteral("ja"), QStringLiteral("\u30b8\u30e3"));
- map.insert(QStringLiteral("jya"), QStringLiteral("\u30b8\u30e3"));
- map.insert(QStringLiteral("zya"), QStringLiteral("\u30b8\u30e3"));
- map.insert(QStringLiteral("ju"), QStringLiteral("\u30b8\u30e5"));
- map.insert(QStringLiteral("jyu"), QStringLiteral("\u30b8\u30e5"));
- map.insert(QStringLiteral("zyu"), QStringLiteral("\u30b8\u30e5"));
- map.insert(QStringLiteral("jo"), QStringLiteral("\u30b8\u30e7"));
- map.insert(QStringLiteral("jyo"), QStringLiteral("\u30b8\u30e7"));
- map.insert(QStringLiteral("zyo"), QStringLiteral("\u30b8\u30e7"));
- map.insert(QStringLiteral("su"), QStringLiteral("\u30b9"));
- map.insert(QStringLiteral("swa"), QStringLiteral("\u30b9\u30a1"));
- map.insert(QStringLiteral("swi"), QStringLiteral("\u30b9\u30a3"));
- map.insert(QStringLiteral("swu"), QStringLiteral("\u30b9\u30a5"));
- map.insert(QStringLiteral("swe"), QStringLiteral("\u30b9\u30a7"));
- map.insert(QStringLiteral("swo"), QStringLiteral("\u30b9\u30a9"));
- map.insert(QStringLiteral("zu"), QStringLiteral("\u30ba"));
- map.insert(QStringLiteral("ce"), QStringLiteral("\u30bb"));
- map.insert(QStringLiteral("se"), QStringLiteral("\u30bb"));
- map.insert(QStringLiteral("ze"), QStringLiteral("\u30bc"));
- map.insert(QStringLiteral("so"), QStringLiteral("\u30bd"));
- map.insert(QStringLiteral("zo"), QStringLiteral("\u30be"));
- map.insert(QStringLiteral("ta"), QStringLiteral("\u30bf"));
- map.insert(QStringLiteral("da"), QStringLiteral("\u30c0"));
- map.insert(QStringLiteral("chi"), QStringLiteral("\u30c1"));
- map.insert(QStringLiteral("ti"), QStringLiteral("\u30c1"));
- map.insert(QStringLiteral("cyi"), QStringLiteral("\u30c1\u30a3"));
- map.insert(QStringLiteral("tyi"), QStringLiteral("\u30c1\u30a3"));
- map.insert(QStringLiteral("che"), QStringLiteral("\u30c1\u30a7"));
- map.insert(QStringLiteral("cye"), QStringLiteral("\u30c1\u30a7"));
- map.insert(QStringLiteral("tye"), QStringLiteral("\u30c1\u30a7"));
- map.insert(QStringLiteral("cha"), QStringLiteral("\u30c1\u30e3"));
- map.insert(QStringLiteral("cya"), QStringLiteral("\u30c1\u30e3"));
- map.insert(QStringLiteral("tya"), QStringLiteral("\u30c1\u30e3"));
- map.insert(QStringLiteral("chu"), QStringLiteral("\u30c1\u30e5"));
- map.insert(QStringLiteral("cyu"), QStringLiteral("\u30c1\u30e5"));
- map.insert(QStringLiteral("tyu"), QStringLiteral("\u30c1\u30e5"));
- map.insert(QStringLiteral("cho"), QStringLiteral("\u30c1\u30e7"));
- map.insert(QStringLiteral("cyo"), QStringLiteral("\u30c1\u30e7"));
- map.insert(QStringLiteral("tyo"), QStringLiteral("\u30c1\u30e7"));
- map.insert(QStringLiteral("di"), QStringLiteral("\u30c2"));
- map.insert(QStringLiteral("dyi"), QStringLiteral("\u30c2\u30a3"));
- map.insert(QStringLiteral("dye"), QStringLiteral("\u30c2\u30a7"));
- map.insert(QStringLiteral("dya"), QStringLiteral("\u30c2\u30e3"));
- map.insert(QStringLiteral("dyu"), QStringLiteral("\u30c2\u30e5"));
- map.insert(QStringLiteral("dyo"), QStringLiteral("\u30c2\u30e7"));
- map.insert(QStringLiteral("ltsu"), QStringLiteral("\u30c3"));
- map.insert(QStringLiteral("ltu"), QStringLiteral("\u30c3"));
- map.insert(QStringLiteral("xtu"), QStringLiteral("\u30c3"));
- map.insert(QStringLiteral(""), QStringLiteral("\u30c3"));
- map.insert(QStringLiteral("tsu"), QStringLiteral("\u30c4"));
- map.insert(QStringLiteral("tu"), QStringLiteral("\u30c4"));
- map.insert(QStringLiteral("tsa"), QStringLiteral("\u30c4\u30a1"));
- map.insert(QStringLiteral("tsi"), QStringLiteral("\u30c4\u30a3"));
- map.insert(QStringLiteral("tse"), QStringLiteral("\u30c4\u30a7"));
- map.insert(QStringLiteral("tso"), QStringLiteral("\u30c4\u30a9"));
- map.insert(QStringLiteral("du"), QStringLiteral("\u30c5"));
- map.insert(QStringLiteral("te"), QStringLiteral("\u30c6"));
- map.insert(QStringLiteral("thi"), QStringLiteral("\u30c6\u30a3"));
- map.insert(QStringLiteral("the"), QStringLiteral("\u30c6\u30a7"));
- map.insert(QStringLiteral("tha"), QStringLiteral("\u30c6\u30e3"));
- map.insert(QStringLiteral("thu"), QStringLiteral("\u30c6\u30e5"));
- map.insert(QStringLiteral("tho"), QStringLiteral("\u30c6\u30e7"));
- map.insert(QStringLiteral("de"), QStringLiteral("\u30c7"));
- map.insert(QStringLiteral("dhi"), QStringLiteral("\u30c7\u30a3"));
- map.insert(QStringLiteral("dhe"), QStringLiteral("\u30c7\u30a7"));
- map.insert(QStringLiteral("dha"), QStringLiteral("\u30c7\u30e3"));
- map.insert(QStringLiteral("dhu"), QStringLiteral("\u30c7\u30e5"));
- map.insert(QStringLiteral("dho"), QStringLiteral("\u30c7\u30e7"));
- map.insert(QStringLiteral("to"), QStringLiteral("\u30c8"));
- map.insert(QStringLiteral("twa"), QStringLiteral("\u30c8\u30a1"));
- map.insert(QStringLiteral("twi"), QStringLiteral("\u30c8\u30a3"));
- map.insert(QStringLiteral("twu"), QStringLiteral("\u30c8\u30a5"));
- map.insert(QStringLiteral("twe"), QStringLiteral("\u30c8\u30a7"));
- map.insert(QStringLiteral("two"), QStringLiteral("\u30c8\u30a9"));
- map.insert(QStringLiteral("do"), QStringLiteral("\u30c9"));
- map.insert(QStringLiteral("dwa"), QStringLiteral("\u30c9\u30a1"));
- map.insert(QStringLiteral("dwi"), QStringLiteral("\u30c9\u30a3"));
- map.insert(QStringLiteral("dwu"), QStringLiteral("\u30c9\u30a5"));
- map.insert(QStringLiteral("dwe"), QStringLiteral("\u30c9\u30a7"));
- map.insert(QStringLiteral("dwo"), QStringLiteral("\u30c9\u30a9"));
- map.insert(QStringLiteral("na"), QStringLiteral("\u30ca"));
- map.insert(QStringLiteral("ni"), QStringLiteral("\u30cb"));
- map.insert(QStringLiteral("nyi"), QStringLiteral("\u30cb\u30a3"));
- map.insert(QStringLiteral("nye"), QStringLiteral("\u30cb\u30a7"));
- map.insert(QStringLiteral("nya"), QStringLiteral("\u30cb\u30e3"));
- map.insert(QStringLiteral("nyu"), QStringLiteral("\u30cb\u30e5"));
- map.insert(QStringLiteral("nyo"), QStringLiteral("\u30cb\u30e7"));
- map.insert(QStringLiteral("nu"), QStringLiteral("\u30cc"));
- map.insert(QStringLiteral("ne"), QStringLiteral("\u30cd"));
- map.insert(QStringLiteral("no"), QStringLiteral("\u30ce"));
- map.insert(QStringLiteral("ha"), QStringLiteral("\u30cf"));
- map.insert(QStringLiteral("ba"), QStringLiteral("\u30d0"));
- map.insert(QStringLiteral("pa"), QStringLiteral("\u30d1"));
- map.insert(QStringLiteral("hi"), QStringLiteral("\u30d2"));
- map.insert(QStringLiteral("hyi"), QStringLiteral("\u30d2\u30a3"));
- map.insert(QStringLiteral("hye"), QStringLiteral("\u30d2\u30a7"));
- map.insert(QStringLiteral("hya"), QStringLiteral("\u30d2\u30e3"));
- map.insert(QStringLiteral("hyu"), QStringLiteral("\u30d2\u30e5"));
- map.insert(QStringLiteral("hyo"), QStringLiteral("\u30d2\u30e7"));
- map.insert(QStringLiteral("bi"), QStringLiteral("\u30d3"));
- map.insert(QStringLiteral("byi"), QStringLiteral("\u30d3\u30a3"));
- map.insert(QStringLiteral("bye"), QStringLiteral("\u30d3\u30a7"));
- map.insert(QStringLiteral("bya"), QStringLiteral("\u30d3\u30e3"));
- map.insert(QStringLiteral("byu"), QStringLiteral("\u30d3\u30e5"));
- map.insert(QStringLiteral("byo"), QStringLiteral("\u30d3\u30e7"));
- map.insert(QStringLiteral("pi"), QStringLiteral("\u30d4"));
- map.insert(QStringLiteral("pyi"), QStringLiteral("\u30d4\u30a3"));
- map.insert(QStringLiteral("pye"), QStringLiteral("\u30d4\u30a7"));
- map.insert(QStringLiteral("pya"), QStringLiteral("\u30d4\u30e3"));
- map.insert(QStringLiteral("pyu"), QStringLiteral("\u30d4\u30e5"));
- map.insert(QStringLiteral("pyo"), QStringLiteral("\u30d4\u30e7"));
- map.insert(QStringLiteral("fu"), QStringLiteral("\u30d5"));
- map.insert(QStringLiteral("hu"), QStringLiteral("\u30d5"));
- map.insert(QStringLiteral("fa"), QStringLiteral("\u30d5\u30a1"));
- map.insert(QStringLiteral("fwa"), QStringLiteral("\u30d5\u30a1"));
- map.insert(QStringLiteral("fi"), QStringLiteral("\u30d5\u30a3"));
- map.insert(QStringLiteral("fwi"), QStringLiteral("\u30d5\u30a3"));
- map.insert(QStringLiteral("fyi"), QStringLiteral("\u30d5\u30a3"));
- map.insert(QStringLiteral("fwu"), QStringLiteral("\u30d5\u30a5"));
- map.insert(QStringLiteral("fe"), QStringLiteral("\u30d5\u30a7"));
- map.insert(QStringLiteral("fwe"), QStringLiteral("\u30d5\u30a7"));
- map.insert(QStringLiteral("fye"), QStringLiteral("\u30d5\u30a7"));
- map.insert(QStringLiteral("fo"), QStringLiteral("\u30d5\u30a9"));
- map.insert(QStringLiteral("fwo"), QStringLiteral("\u30d5\u30a9"));
- map.insert(QStringLiteral("fya"), QStringLiteral("\u30d5\u30e3"));
- map.insert(QStringLiteral("fyu"), QStringLiteral("\u30d5\u30e5"));
- map.insert(QStringLiteral("fyo"), QStringLiteral("\u30d5\u30e7"));
- map.insert(QStringLiteral("bu"), QStringLiteral("\u30d6"));
- map.insert(QStringLiteral("pu"), QStringLiteral("\u30d7"));
- map.insert(QStringLiteral("he"), QStringLiteral("\u30d8"));
- map.insert(QStringLiteral("be"), QStringLiteral("\u30d9"));
- map.insert(QStringLiteral("pe"), QStringLiteral("\u30da"));
- map.insert(QStringLiteral("ho"), QStringLiteral("\u30db"));
- map.insert(QStringLiteral("bo"), QStringLiteral("\u30dc"));
- map.insert(QStringLiteral("po"), QStringLiteral("\u30dd"));
- map.insert(QStringLiteral("ma"), QStringLiteral("\u30de"));
- map.insert(QStringLiteral("mi"), QStringLiteral("\u30df"));
- map.insert(QStringLiteral("myi"), QStringLiteral("\u30df\u30a3"));
- map.insert(QStringLiteral("mye"), QStringLiteral("\u30df\u30a7"));
- map.insert(QStringLiteral("mya"), QStringLiteral("\u30df\u30e3"));
- map.insert(QStringLiteral("myu"), QStringLiteral("\u30df\u30e5"));
- map.insert(QStringLiteral("myo"), QStringLiteral("\u30df\u30e7"));
- map.insert(QStringLiteral("mu"), QStringLiteral("\u30e0"));
- map.insert(QStringLiteral("me"), QStringLiteral("\u30e1"));
- map.insert(QStringLiteral("mo"), QStringLiteral("\u30e2"));
- map.insert(QStringLiteral("lya"), QStringLiteral("\u30e3"));
- map.insert(QStringLiteral("xya"), QStringLiteral("\u30e3"));
- map.insert(QStringLiteral("ya"), QStringLiteral("\u30e4"));
- map.insert(QStringLiteral("lyu"), QStringLiteral("\u30e5"));
- map.insert(QStringLiteral("xyu"), QStringLiteral("\u30e5"));
- map.insert(QStringLiteral("yu"), QStringLiteral("\u30e6"));
- map.insert(QStringLiteral("lyo"), QStringLiteral("\u30e7"));
- map.insert(QStringLiteral("xyo"), QStringLiteral("\u30e7"));
- map.insert(QStringLiteral("yo"), QStringLiteral("\u30e8"));
- map.insert(QStringLiteral("ra"), QStringLiteral("\u30e9"));
- map.insert(QStringLiteral("ri"), QStringLiteral("\u30ea"));
- map.insert(QStringLiteral("ryi"), QStringLiteral("\u30ea\u30a3"));
- map.insert(QStringLiteral("rye"), QStringLiteral("\u30ea\u30a7"));
- map.insert(QStringLiteral("rya"), QStringLiteral("\u30ea\u30e3"));
- map.insert(QStringLiteral("ryu"), QStringLiteral("\u30ea\u30e5"));
- map.insert(QStringLiteral("ryo"), QStringLiteral("\u30ea\u30e7"));
- map.insert(QStringLiteral("ru"), QStringLiteral("\u30eb"));
- map.insert(QStringLiteral("re"), QStringLiteral("\u30ec"));
- map.insert(QStringLiteral("ro"), QStringLiteral("\u30ed"));
- map.insert(QStringLiteral("lwa"), QStringLiteral("\u30ee"));
- map.insert(QStringLiteral("xwa"), QStringLiteral("\u30ee"));
- map.insert(QStringLiteral("wa"), QStringLiteral("\u30ef"));
- map.insert(QStringLiteral("wo"), QStringLiteral("\u30f2"));
- map.insert(QStringLiteral("nn"), QStringLiteral("\u30f3"));
- map.insert(QStringLiteral("xn"), QStringLiteral("\u30f3"));
- map.insert(QStringLiteral("vu"), QStringLiteral("\u30f4"));
- map.insert(QStringLiteral("va"), QStringLiteral("\u30f4\u30a1"));
- map.insert(QStringLiteral("vi"), QStringLiteral("\u30f4\u30a3"));
- map.insert(QStringLiteral("vyi"), QStringLiteral("\u30f4\u30a3"));
- map.insert(QStringLiteral("ve"), QStringLiteral("\u30f4\u30a7"));
- map.insert(QStringLiteral("vye"), QStringLiteral("\u30f4\u30a7"));
- map.insert(QStringLiteral("vo"), QStringLiteral("\u30f4\u30a9"));
- map.insert(QStringLiteral("vya"), QStringLiteral("\u30f4\u30e3"));
- map.insert(QStringLiteral("vyu"), QStringLiteral("\u30f4\u30e5"));
- map.insert(QStringLiteral("vyo"), QStringLiteral("\u30f4\u30e7"));
-
- map.insert(QStringLiteral("bb"), QStringLiteral("\u30c3b"));
- map.insert(QStringLiteral("cc"), QStringLiteral("\u30c3c"));
- map.insert(QStringLiteral("dd"), QStringLiteral("\u30c3d"));
- map.insert(QStringLiteral("ff"), QStringLiteral("\u30c3f"));
- map.insert(QStringLiteral("gg"), QStringLiteral("\u30c3g"));
- map.insert(QStringLiteral("hh"), QStringLiteral("\u30c3h"));
- map.insert(QStringLiteral("jj"), QStringLiteral("\u30c3j"));
- map.insert(QStringLiteral("kk"), QStringLiteral("\u30c3k"));
- map.insert(QStringLiteral("ll"), QStringLiteral("\u30c3l"));
- map.insert(QStringLiteral("mm"), QStringLiteral("\u30c3m"));
- map.insert(QStringLiteral("pp"), QStringLiteral("\u30c3p"));
- map.insert(QStringLiteral("qq"), QStringLiteral("\u30c3q"));
- map.insert(QStringLiteral("rr"), QStringLiteral("\u30c3r"));
- map.insert(QStringLiteral("ss"), QStringLiteral("\u30c3s"));
- map.insert(QStringLiteral("tt"), QStringLiteral("\u30c3t"));
- map.insert(QStringLiteral("vv"), QStringLiteral("\u30c3v"));
- map.insert(QStringLiteral("ww"), QStringLiteral("\u30c3w"));
- map.insert(QStringLiteral("xx"), QStringLiteral("\u30c3x"));
- map.insert(QStringLiteral("yy"), QStringLiteral("\u30c3y"));
- map.insert(QStringLiteral("zz"), QStringLiteral("\u30c3z"));
- map.insert(QStringLiteral("nb"), QStringLiteral("\u30f3b"));
- map.insert(QStringLiteral("nc"), QStringLiteral("\u30f3c"));
- map.insert(QStringLiteral("nd"), QStringLiteral("\u30f3d"));
- map.insert(QStringLiteral("nf"), QStringLiteral("\u30f3f"));
- map.insert(QStringLiteral("ng"), QStringLiteral("\u30f3g"));
- map.insert(QStringLiteral("nh"), QStringLiteral("\u30f3h"));
- map.insert(QStringLiteral("nj"), QStringLiteral("\u30f3j"));
- map.insert(QStringLiteral("nk"), QStringLiteral("\u30f3k"));
- map.insert(QStringLiteral("nm"), QStringLiteral("\u30f3m"));
- map.insert(QStringLiteral("np"), QStringLiteral("\u30f3p"));
- map.insert(QStringLiteral("nq"), QStringLiteral("\u30f3q"));
- map.insert(QStringLiteral("nr"), QStringLiteral("\u30f3r"));
- map.insert(QStringLiteral("ns"), QStringLiteral("\u30f3s"));
- map.insert(QStringLiteral("nt"), QStringLiteral("\u30f3t"));
- map.insert(QStringLiteral("nv"), QStringLiteral("\u30f3v"));
- map.insert(QStringLiteral("nw"), QStringLiteral("\u30f3w"));
- map.insert(QStringLiteral("nx"), QStringLiteral("\u30f3x"));
- map.insert(QStringLiteral("nz"), QStringLiteral("\u30f3z"));
- map.insert(QStringLiteral("nl"), QStringLiteral("\u30f3l"));
-
- map.insert(QStringLiteral("-"), QStringLiteral("\u30fc"));
- map.insert(QStringLiteral("."), QStringLiteral("\u3002"));
- map.insert(QStringLiteral(","), QStringLiteral("\u3001"));
- map.insert(QStringLiteral("?"), QStringLiteral("\uff1f"));
- map.insert(QStringLiteral("/"), QStringLiteral("\u30fb"));
- return map;
- }
-
- static const QMap<QString, QString> romkanTable;
+ static const int romkanTableLength = 322;
+ static const char *romkanTableKey[romkanTableLength];
+ static const char *romkanTableValue[romkanTableLength];
+ static const WnnLookupTable romkanTable;
};
-const QMap<QString, QString> RomkanFullKatakanaPrivate::romkanTable = RomkanFullKatakanaPrivate::initRomkanTable();
+const char *RomkanFullKatakanaPrivate::romkanTableKey[] = {
+"", ",", "-", ".", "/", "?", "a", "ba", "bb", "be", "bi", "bo", "bu", "bya", "bye", "byi",
+"byo", "byu", "ca", "cc", "ce", "cha", "che", "chi", "cho", "chu", "ci", "co", "cu", "cya", "cye", "cyi",
+"cyo", "cyu", "da", "dd", "de", "dha", "dhe", "dhi", "dho", "dhu", "di", "do", "du", "dwa", "dwe", "dwi",
+"dwo", "dwu", "dya", "dye", "dyi", "dyo", "dyu", "e", "fa", "fe", "ff", "fi", "fo", "fu", "fwa", "fwe",
+"fwi", "fwo", "fwu", "fya", "fye", "fyi", "fyo", "fyu", "ga", "ge", "gg", "gi", "go", "gu", "gwa", "gwe",
+"gwi", "gwo", "gwu", "gya", "gye", "gyi", "gyo", "gyu", "ha", "he", "hh", "hi", "ho", "hu", "hya", "hye",
+"hyi", "hyo", "hyu", "i", "ja", "je", "ji", "jj", "jo", "ju", "jya", "jye", "jyi", "jyo", "jyu", "ka",
+"ke", "ki", "kk", "ko", "ku", "kwa", "kya", "kye", "kyi", "kyo", "kyu", "la", "le", "li", "lka", "lke",
+"ll", "lo", "ltsu", "ltu", "lu", "lwa", "lya", "lye", "lyi", "lyo", "lyu", "ma", "me", "mi", "mm", "mo",
+"mu", "mya", "mye", "myi", "myo", "myu", "na", "nb", "nc", "nd", "ne", "nf", "ng", "nh", "ni", "nj",
+"nk", "nl", "nm", "nn", "no", "np", "nq", "nr", "ns", "nt", "nu", "nv", "nw", "nx", "nya", "nye",
+"nyi", "nyo", "nyu", "nz", "o", "pa", "pe", "pi", "po", "pp", "pu", "pya", "pye", "pyi", "pyo", "pyu",
+"qa", "qe", "qi", "qo", "qq", "qu", "qwa", "qwe", "qwi", "qwo", "qwu", "qya", "qye", "qyi", "qyo", "qyu",
+"ra", "re", "ri", "ro", "rr", "ru", "rya", "rye", "ryi", "ryo", "ryu", "sa", "se", "sha", "she", "shi",
+"sho", "shu", "si", "so", "ss", "su", "swa", "swe", "swi", "swo", "swu", "sya", "sye", "syi", "syo", "syu",
+"ta", "te", "tha", "the", "thi", "tho", "thu", "ti", "to", "tsa", "tse", "tsi", "tso", "tsu", "tt", "tu",
+"twa", "twe", "twi", "two", "twu", "tya", "tye", "tyi", "tyo", "tyu", "u", "va", "ve", "vi", "vo", "vu",
+"vv", "vya", "vye", "vyi", "vyo", "vyu", "wa", "we", "wha", "whe", "whi", "who", "whu", "wi", "wo", "wu",
+"ww", "xa", "xe", "xi", "xka", "xke", "xn", "xo", "xtu", "xu", "xwa", "xx", "xya", "xye", "xyi", "xyo",
+"xyu", "ya", "ye", "yi", "yo", "yu", "yy", "za", "ze", "zi", "zo", "zu", "zya", "zye", "zyi", "zyo",
+"zyu", "zz"
+};
+const char *RomkanFullKatakanaPrivate::romkanTableValue[] = {
+"ッ", "、", "ー", "。", "・", "?", "ア", "バ", "ッb", "ベ", "ビ", "ボ", "ブ", "ビャ", "ビェ", "ビィ",
+"ビョ", "ビュ", "カ", "ッc", "セ", "チャ", "チェ", "チ", "チョ", "チュ", "シ", "コ", "ク", "チャ", "チェ", "チィ",
+"チョ", "チュ", "ダ", "ッd", "デ", "デャ", "デェ", "ディ", "デョ", "デュ", "ヂ", "ド", "ヅ", "ドァ", "ドェ", "ドィ",
+"ドォ", "ドゥ", "ヂャ", "ヂェ", "ヂィ", "ヂョ", "ヂュ", "エ", "ファ", "フェ", "ッf", "フィ", "フォ", "フ", "ファ", "フェ",
+"フィ", "フォ", "フゥ", "フャ", "フェ", "フィ", "フョ", "フュ", "ガ", "ゲ", "ッg", "ギ", "ゴ", "グ", "グァ", "グェ",
+"グィ", "グォ", "グゥ", "ギャ", "ギェ", "ギィ", "ギョ", "ギュ", "ハ", "ヘ", "ッh", "ヒ", "ホ", "フ", "ヒャ", "ヒェ",
+"ヒィ", "ヒョ", "ヒュ", "イ", "ジャ", "ジェ", "ジ", "ッj", "ジョ", "ジュ", "ジャ", "ジェ", "ジィ", "ジョ", "ジュ", "カ",
+"ケ", "キ", "ッk", "コ", "ク", "クァ", "キャ", "キェ", "キィ", "キョ", "キュ", "ァ", "ェ", "ィ", "ヵ", "ヶ",
+"ッl", "ォ", "ッ", "ッ", "ゥ", "ヮ", "ャ", "ェ", "ィ", "ョ", "ュ", "マ", "メ", "ミ", "ッm", "モ",
+"ム", "ミャ", "ミェ", "ミィ", "ミョ", "ミュ", "ナ", "ンb", "ンc", "ンd", "ネ", "ンf", "ンg", "ンh", "ニ", "ンj",
+"ンk", "ンl", "ンm", "ン", "ノ", "ンp", "ンq", "ンr", "ンs", "ンt", "ヌ", "ンv", "ンw", "ンx", "ニャ", "ニェ",
+"ニィ", "ニョ", "ニュ", "ンz", "オ", "パ", "ペ", "ピ", "ポ", "ッp", "プ", "ピャ", "ピェ", "ピィ", "ピョ", "ピュ",
+"クァ", "クェ", "クィ", "クォ", "ッq", "ク", "クァ", "クェ", "クィ", "クォ", "クゥ", "クャ", "クェ", "クィ", "クョ", "クュ",
+"ラ", "レ", "リ", "ロ", "ッr", "ル", "リャ", "リェ", "リィ", "リョ", "リュ", "サ", "セ", "シャ", "シェ", "シ",
+"ショ", "シュ", "シ", "ソ", "ッs", "ス", "スァ", "スェ", "スィ", "スォ", "スゥ", "シャ", "シェ", "シィ", "ショ", "シュ",
+"タ", "テ", "テャ", "テェ", "ティ", "テョ", "テュ", "チ", "ト", "ツァ", "ツェ", "ツィ", "ツォ", "ツ", "ッt", "ツ",
+"トァ", "トェ", "トィ", "トォ", "トゥ", "チャ", "チェ", "チィ", "チョ", "チュ", "ウ", "ヴァ", "ヴェ", "ヴィ", "ヴォ", "ヴ",
+"ッv", "ヴャ", "ヴェ", "ヴィ", "ヴョ", "ヴュ", "ワ", "ウェ", "ウァ", "ウェ", "ウィ", "ウォ", "ウ", "ウィ", "ヲ", "ウ",
+"ッw", "ァ", "ェ", "ィ", "ヵ", "ヶ", "ン", "ォ", "ッ", "ゥ", "ヮ", "ッx", "ャ", "ェ", "ィ", "ョ",
+"ュ", "ヤ", "イェ", "イ", "ヨ", "ユ", "ッy", "ザ", "ゼ", "ジ", "ゾ", "ズ", "ジャ", "ジェ", "ジィ", "ジョ",
+"ジュ", "ッz"
+};
+const WnnLookupTable RomkanFullKatakanaPrivate::romkanTable = WnnLookupTable(
+ RomkanFullKatakanaPrivate::romkanTableKey,
+ RomkanFullKatakanaPrivate::romkanTableValue,
+ RomkanFullKatakanaPrivate::romkanTableLength);
RomkanFullKatakana::RomkanFullKatakana(QObject *parent) :
- Romkan(*new RomkanFullKatakanaPrivate(), parent)
+ Romkan(parent)
{
}
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkanhalfkatakana.cpp b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkanhalfkatakana.cpp
index 36b489eb..14bdf527 100644
--- a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkanhalfkatakana.cpp
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/romkanhalfkatakana.cpp
@@ -21,346 +21,68 @@
#include "romkanhalfkatakana.h"
#include "strsegment.h"
-#include <QMap>
+#include "wnnlookuptable.h"
-#include <QtCore/private/qobject_p.h>
-
-class RomkanHalfKatakanaPrivate : public QObjectPrivate
+class RomkanHalfKatakanaPrivate
{
public:
- /** HashMap for Romaji-to-Kana conversion (Japanese mode) */
- static QMap<QString, QString> initRomkanTable()
- {
- QMap<QString, QString> map;
- map.insert(QStringLiteral("la"), QStringLiteral("\uff67"));
- map.insert(QStringLiteral("xa"), QStringLiteral("\uff67"));
- map.insert(QStringLiteral("a"), QStringLiteral("\uff71"));
- map.insert(QStringLiteral("li"), QStringLiteral("\uff68"));
- map.insert(QStringLiteral("lyi"), QStringLiteral("\uff68"));
- map.insert(QStringLiteral("xi"), QStringLiteral("\uff68"));
- map.insert(QStringLiteral("xyi"), QStringLiteral("\uff68"));
- map.insert(QStringLiteral("i"), QStringLiteral("\uff72"));
- map.insert(QStringLiteral("yi"), QStringLiteral("\uff72"));
- map.insert(QStringLiteral("ye"), QStringLiteral("\uff72\uff6a"));
- map.insert(QStringLiteral("lu"), QStringLiteral("\uff69"));
- map.insert(QStringLiteral("xu"), QStringLiteral("\uff69"));
- map.insert(QStringLiteral("u"), QStringLiteral("\uff73"));
- map.insert(QStringLiteral("whu"), QStringLiteral("\uff73"));
- map.insert(QStringLiteral("wu"), QStringLiteral("\uff73"));
- map.insert(QStringLiteral("wha"), QStringLiteral("\uff73\uff67"));
- map.insert(QStringLiteral("whi"), QStringLiteral("\uff73\uff68"));
- map.insert(QStringLiteral("wi"), QStringLiteral("\uff73\uff68"));
- map.insert(QStringLiteral("we"), QStringLiteral("\uff73\uff6a"));
- map.insert(QStringLiteral("whe"), QStringLiteral("\uff73\uff6a"));
- map.insert(QStringLiteral("who"), QStringLiteral("\uff73\uff6b"));
- map.insert(QStringLiteral("le"), QStringLiteral("\uff6a"));
- map.insert(QStringLiteral("lye"), QStringLiteral("\uff6a"));
- map.insert(QStringLiteral("xe"), QStringLiteral("\uff6a"));
- map.insert(QStringLiteral("xye"), QStringLiteral("\uff6a"));
- map.insert(QStringLiteral("e"), QStringLiteral("\uff74"));
- map.insert(QStringLiteral("lo"), QStringLiteral("\uff6b"));
- map.insert(QStringLiteral("xo"), QStringLiteral("\uff6b"));
- map.insert(QStringLiteral("o"), QStringLiteral("\uff75"));
- map.insert(QStringLiteral("ca"), QStringLiteral("\uff76"));
- map.insert(QStringLiteral("ka"), QStringLiteral("\uff76"));
- map.insert(QStringLiteral("ga"), QStringLiteral("\uff76\uff9e"));
- map.insert(QStringLiteral("ki"), QStringLiteral("\uff77"));
- map.insert(QStringLiteral("kyi"), QStringLiteral("\uff77\uff68"));
- map.insert(QStringLiteral("kye"), QStringLiteral("\uff77\uff6a"));
- map.insert(QStringLiteral("kya"), QStringLiteral("\uff77\uff6c"));
- map.insert(QStringLiteral("kyu"), QStringLiteral("\uff77\uff6d"));
- map.insert(QStringLiteral("kyo"), QStringLiteral("\uff77\uff6e"));
- map.insert(QStringLiteral("gi"), QStringLiteral("\uff77\uff9e"));
- map.insert(QStringLiteral("gyi"), QStringLiteral("\uff77\uff9e\uff68"));
- map.insert(QStringLiteral("gye"), QStringLiteral("\uff77\uff9e\uff6a"));
- map.insert(QStringLiteral("gya"), QStringLiteral("\uff77\uff9e\uff6c"));
- map.insert(QStringLiteral("gyu"), QStringLiteral("\uff77\uff9e\uff6d"));
- map.insert(QStringLiteral("gyo"), QStringLiteral("\uff77\uff9e\uff6e"));
- map.insert(QStringLiteral("cu"), QStringLiteral("\uff78"));
- map.insert(QStringLiteral("ku"), QStringLiteral("\uff78"));
- map.insert(QStringLiteral("qu"), QStringLiteral("\uff78"));
- map.insert(QStringLiteral("kwa"), QStringLiteral("\uff78\uff67"));
- map.insert(QStringLiteral("qa"), QStringLiteral("\uff78\uff67"));
- map.insert(QStringLiteral("qwa"), QStringLiteral("\uff78\uff67"));
- map.insert(QStringLiteral("qi"), QStringLiteral("\uff78\uff68"));
- map.insert(QStringLiteral("qwi"), QStringLiteral("\uff78\uff68"));
- map.insert(QStringLiteral("qyi"), QStringLiteral("\uff78\uff68"));
- map.insert(QStringLiteral("qwu"), QStringLiteral("\uff78\uff69"));
- map.insert(QStringLiteral("qe"), QStringLiteral("\uff78\uff6a"));
- map.insert(QStringLiteral("qwe"), QStringLiteral("\uff78\uff6a"));
- map.insert(QStringLiteral("qye"), QStringLiteral("\uff78\uff6a"));
- map.insert(QStringLiteral("qo"), QStringLiteral("\uff78\uff6b"));
- map.insert(QStringLiteral("qwo"), QStringLiteral("\uff78\uff6b"));
- map.insert(QStringLiteral("qya"), QStringLiteral("\uff78\uff6c"));
- map.insert(QStringLiteral("qyu"), QStringLiteral("\uff78\uff6d"));
- map.insert(QStringLiteral("qyo"), QStringLiteral("\uff78\uff6e"));
- map.insert(QStringLiteral("gu"), QStringLiteral("\uff78\uff9e"));
- map.insert(QStringLiteral("gwa"), QStringLiteral("\uff78\uff9e\uff67"));
- map.insert(QStringLiteral("gwi"), QStringLiteral("\uff78\uff9e\uff68"));
- map.insert(QStringLiteral("gwu"), QStringLiteral("\uff78\uff9e\uff69"));
- map.insert(QStringLiteral("gwe"), QStringLiteral("\uff78\uff9e\uff6a"));
- map.insert(QStringLiteral("gwo"), QStringLiteral("\uff78\uff9e\uff6b"));
- map.insert(QStringLiteral("ke"), QStringLiteral("\uff79"));
- map.insert(QStringLiteral("ge"), QStringLiteral("\uff79\uff9e"));
- map.insert(QStringLiteral("co"), QStringLiteral("\uff7a"));
- map.insert(QStringLiteral("ko"), QStringLiteral("\uff7a"));
- map.insert(QStringLiteral("go"), QStringLiteral("\uff7a\uff9e"));
- map.insert(QStringLiteral("sa"), QStringLiteral("\uff7b"));
- map.insert(QStringLiteral("za"), QStringLiteral("\uff7b\uff9e"));
- map.insert(QStringLiteral("ci"), QStringLiteral("\uff7c"));
- map.insert(QStringLiteral("shi"), QStringLiteral("\uff7c"));
- map.insert(QStringLiteral("si"), QStringLiteral("\uff7c"));
- map.insert(QStringLiteral("syi"), QStringLiteral("\uff7c\uff68"));
- map.insert(QStringLiteral("she"), QStringLiteral("\uff7c\uff6a"));
- map.insert(QStringLiteral("sye"), QStringLiteral("\uff7c\uff6a"));
- map.insert(QStringLiteral("sha"), QStringLiteral("\uff7c\uff6c"));
- map.insert(QStringLiteral("sya"), QStringLiteral("\uff7c\uff6c"));
- map.insert(QStringLiteral("shu"), QStringLiteral("\uff7c\uff6d"));
- map.insert(QStringLiteral("syu"), QStringLiteral("\uff7c\uff6d"));
- map.insert(QStringLiteral("sho"), QStringLiteral("\uff7c\uff6e"));
- map.insert(QStringLiteral("syo"), QStringLiteral("\uff7c\uff6e"));
- map.insert(QStringLiteral("ji"), QStringLiteral("\uff7c\uff9e"));
- map.insert(QStringLiteral("zi"), QStringLiteral("\uff7c\uff9e"));
- map.insert(QStringLiteral("jyi"), QStringLiteral("\uff7c\uff9e\uff68"));
- map.insert(QStringLiteral("zyi"), QStringLiteral("\uff7c\uff9e\uff68"));
- map.insert(QStringLiteral("je"), QStringLiteral("\uff7c\uff9e\uff6a"));
- map.insert(QStringLiteral("jye"), QStringLiteral("\uff7c\uff9e\uff6a"));
- map.insert(QStringLiteral("zye"), QStringLiteral("\uff7c\uff9e\uff6a"));
- map.insert(QStringLiteral("ja"), QStringLiteral("\uff7c\uff9e\uff6c"));
- map.insert(QStringLiteral("jya"), QStringLiteral("\uff7c\uff9e\uff6c"));
- map.insert(QStringLiteral("zya"), QStringLiteral("\uff7c\uff9e\uff6c"));
- map.insert(QStringLiteral("ju"), QStringLiteral("\uff7c\uff9e\uff6d"));
- map.insert(QStringLiteral("jyu"), QStringLiteral("\uff7c\uff9e\uff6d"));
- map.insert(QStringLiteral("zyu"), QStringLiteral("\uff7c\uff9e\uff6d"));
- map.insert(QStringLiteral("jo"), QStringLiteral("\uff7c\uff9e\uff6e"));
- map.insert(QStringLiteral("jyo"), QStringLiteral("\uff7c\uff9e\uff6e"));
- map.insert(QStringLiteral("zyo"), QStringLiteral("\uff7c\uff9e\uff6e"));
- map.insert(QStringLiteral("su"), QStringLiteral("\uff7d"));
- map.insert(QStringLiteral("swa"), QStringLiteral("\uff7d\uff67"));
- map.insert(QStringLiteral("swi"), QStringLiteral("\uff7d\uff68"));
- map.insert(QStringLiteral("swu"), QStringLiteral("\uff7d\uff69"));
- map.insert(QStringLiteral("swe"), QStringLiteral("\uff7d\uff6a"));
- map.insert(QStringLiteral("swo"), QStringLiteral("\uff7d\uff6b"));
- map.insert(QStringLiteral("zu"), QStringLiteral("\uff7d\uff9e"));
- map.insert(QStringLiteral("ce"), QStringLiteral("\uff7e"));
- map.insert(QStringLiteral("se"), QStringLiteral("\uff7e"));
- map.insert(QStringLiteral("ze"), QStringLiteral("\uff7e\uff9e"));
- map.insert(QStringLiteral("so"), QStringLiteral("\uff7f"));
- map.insert(QStringLiteral("zo"), QStringLiteral("\uff7f\uff9e"));
- map.insert(QStringLiteral("ta"), QStringLiteral("\uff80"));
- map.insert(QStringLiteral("da"), QStringLiteral("\uff80\uff9e"));
- map.insert(QStringLiteral("chi"), QStringLiteral("\uff81"));
- map.insert(QStringLiteral("ti"), QStringLiteral("\uff81"));
- map.insert(QStringLiteral("cyi"), QStringLiteral("\uff81\uff68"));
- map.insert(QStringLiteral("tyi"), QStringLiteral("\uff81\uff68"));
- map.insert(QStringLiteral("che"), QStringLiteral("\uff81\uff6a"));
- map.insert(QStringLiteral("cye"), QStringLiteral("\uff81\uff6a"));
- map.insert(QStringLiteral("tye"), QStringLiteral("\uff81\uff6a"));
- map.insert(QStringLiteral("cha"), QStringLiteral("\uff81\uff6c"));
- map.insert(QStringLiteral("cya"), QStringLiteral("\uff81\uff6c"));
- map.insert(QStringLiteral("tya"), QStringLiteral("\uff81\uff6c"));
- map.insert(QStringLiteral("chu"), QStringLiteral("\uff81\uff6d"));
- map.insert(QStringLiteral("cyu"), QStringLiteral("\uff81\uff6d"));
- map.insert(QStringLiteral("tyu"), QStringLiteral("\uff81\uff6d"));
- map.insert(QStringLiteral("cho"), QStringLiteral("\uff81\uff6e"));
- map.insert(QStringLiteral("cyo"), QStringLiteral("\uff81\uff6e"));
- map.insert(QStringLiteral("tyo"), QStringLiteral("\uff81\uff6e"));
- map.insert(QStringLiteral("di"), QStringLiteral("\uff81\uff9e"));
- map.insert(QStringLiteral("dyi"), QStringLiteral("\uff81\uff9e\uff68"));
- map.insert(QStringLiteral("dye"), QStringLiteral("\uff81\uff9e\uff6a"));
- map.insert(QStringLiteral("dya"), QStringLiteral("\uff81\uff9e\uff6c"));
- map.insert(QStringLiteral("dyu"), QStringLiteral("\uff81\uff9e\uff6d"));
- map.insert(QStringLiteral("dyo"), QStringLiteral("\uff81\uff9e\uff6e"));
- map.insert(QStringLiteral("ltsu"), QStringLiteral("\uff6f"));
- map.insert(QStringLiteral("ltu"), QStringLiteral("\uff6f"));
- map.insert(QStringLiteral("xtu"), QStringLiteral("\uff6f"));
- map.insert(QStringLiteral(""), QStringLiteral("\uff6f"));
- map.insert(QStringLiteral("tsu"), QStringLiteral("\uff82"));
- map.insert(QStringLiteral("tu"), QStringLiteral("\uff82"));
- map.insert(QStringLiteral("tsa"), QStringLiteral("\uff82\uff67"));
- map.insert(QStringLiteral("tsi"), QStringLiteral("\uff82\uff68"));
- map.insert(QStringLiteral("tse"), QStringLiteral("\uff82\uff6a"));
- map.insert(QStringLiteral("tso"), QStringLiteral("\uff82\uff6b"));
- map.insert(QStringLiteral("du"), QStringLiteral("\uff82\uff9e"));
- map.insert(QStringLiteral("te"), QStringLiteral("\uff83"));
- map.insert(QStringLiteral("thi"), QStringLiteral("\uff83\uff68"));
- map.insert(QStringLiteral("the"), QStringLiteral("\uff83\uff6a"));
- map.insert(QStringLiteral("tha"), QStringLiteral("\uff83\uff6c"));
- map.insert(QStringLiteral("thu"), QStringLiteral("\uff83\uff6d"));
- map.insert(QStringLiteral("tho"), QStringLiteral("\uff83\uff6e"));
- map.insert(QStringLiteral("de"), QStringLiteral("\uff83\uff9e"));
- map.insert(QStringLiteral("dhi"), QStringLiteral("\uff83\uff9e\uff68"));
- map.insert(QStringLiteral("dhe"), QStringLiteral("\uff83\uff9e\uff6a"));
- map.insert(QStringLiteral("dha"), QStringLiteral("\uff83\uff9e\uff6c"));
- map.insert(QStringLiteral("dhu"), QStringLiteral("\uff83\uff9e\uff6d"));
- map.insert(QStringLiteral("dho"), QStringLiteral("\uff83\uff9e\uff6e"));
- map.insert(QStringLiteral("to"), QStringLiteral("\uff84"));
- map.insert(QStringLiteral("twa"), QStringLiteral("\uff84\uff67"));
- map.insert(QStringLiteral("twi"), QStringLiteral("\uff84\uff68"));
- map.insert(QStringLiteral("twu"), QStringLiteral("\uff84\uff69"));
- map.insert(QStringLiteral("twe"), QStringLiteral("\uff84\uff6a"));
- map.insert(QStringLiteral("two"), QStringLiteral("\uff84\uff6b"));
- map.insert(QStringLiteral("do"), QStringLiteral("\uff84\uff9e"));
- map.insert(QStringLiteral("dwa"), QStringLiteral("\uff84\uff9e\uff67"));
- map.insert(QStringLiteral("dwi"), QStringLiteral("\uff84\uff9e\uff68"));
- map.insert(QStringLiteral("dwu"), QStringLiteral("\uff84\uff9e\uff69"));
- map.insert(QStringLiteral("dwe"), QStringLiteral("\uff84\uff9e\uff6a"));
- map.insert(QStringLiteral("dwo"), QStringLiteral("\uff84\uff9e\uff6b"));
- map.insert(QStringLiteral("na"), QStringLiteral("\uff85"));
- map.insert(QStringLiteral("ni"), QStringLiteral("\uff86"));
- map.insert(QStringLiteral("nyi"), QStringLiteral("\uff86\uff68"));
- map.insert(QStringLiteral("nye"), QStringLiteral("\uff86\uff6a"));
- map.insert(QStringLiteral("nya"), QStringLiteral("\uff86\uff6c"));
- map.insert(QStringLiteral("nyu"), QStringLiteral("\uff86\uff6d"));
- map.insert(QStringLiteral("nyo"), QStringLiteral("\uff86\uff6e"));
- map.insert(QStringLiteral("nu"), QStringLiteral("\uff87"));
- map.insert(QStringLiteral("ne"), QStringLiteral("\uff88"));
- map.insert(QStringLiteral("no"), QStringLiteral("\uff89"));
- map.insert(QStringLiteral("ha"), QStringLiteral("\uff8a"));
- map.insert(QStringLiteral("ba"), QStringLiteral("\uff8a\uff9e"));
- map.insert(QStringLiteral("pa"), QStringLiteral("\uff8a\uff9f"));
- map.insert(QStringLiteral("hi"), QStringLiteral("\uff8b"));
- map.insert(QStringLiteral("hyi"), QStringLiteral("\uff8b\uff68"));
- map.insert(QStringLiteral("hye"), QStringLiteral("\uff8b\uff6a"));
- map.insert(QStringLiteral("hya"), QStringLiteral("\uff8b\uff6c"));
- map.insert(QStringLiteral("hyu"), QStringLiteral("\uff8b\uff6d"));
- map.insert(QStringLiteral("hyo"), QStringLiteral("\uff8b\uff6e"));
- map.insert(QStringLiteral("bi"), QStringLiteral("\uff8b\uff9e"));
- map.insert(QStringLiteral("byi"), QStringLiteral("\uff8b\uff9e\uff68"));
- map.insert(QStringLiteral("bye"), QStringLiteral("\uff8b\uff9e\uff6a"));
- map.insert(QStringLiteral("bya"), QStringLiteral("\uff8b\uff9e\uff6c"));
- map.insert(QStringLiteral("byu"), QStringLiteral("\uff8b\uff9e\uff6d"));
- map.insert(QStringLiteral("byo"), QStringLiteral("\uff8b\uff9e\uff6e"));
- map.insert(QStringLiteral("pi"), QStringLiteral("\uff8b\uff9f"));
- map.insert(QStringLiteral("pyi"), QStringLiteral("\uff8b\uff9f\uff68"));
- map.insert(QStringLiteral("pye"), QStringLiteral("\uff8b\uff9f\uff6a"));
- map.insert(QStringLiteral("pya"), QStringLiteral("\uff8b\uff9f\uff6c"));
- map.insert(QStringLiteral("pyu"), QStringLiteral("\uff8b\uff9f\uff6d"));
- map.insert(QStringLiteral("pyo"), QStringLiteral("\uff8b\uff9f\uff6e"));
- map.insert(QStringLiteral("fu"), QStringLiteral("\uff8c"));
- map.insert(QStringLiteral("hu"), QStringLiteral("\uff8c"));
- map.insert(QStringLiteral("fa"), QStringLiteral("\uff8c\uff67"));
- map.insert(QStringLiteral("fwa"), QStringLiteral("\uff8c\uff67"));
- map.insert(QStringLiteral("fi"), QStringLiteral("\uff8c\uff68"));
- map.insert(QStringLiteral("fwi"), QStringLiteral("\uff8c\uff68"));
- map.insert(QStringLiteral("fyi"), QStringLiteral("\uff8c\uff68"));
- map.insert(QStringLiteral("fwu"), QStringLiteral("\uff8c\uff69"));
- map.insert(QStringLiteral("fe"), QStringLiteral("\uff8c\uff6a"));
- map.insert(QStringLiteral("fwe"), QStringLiteral("\uff8c\uff6a"));
- map.insert(QStringLiteral("fye"), QStringLiteral("\uff8c\uff6a"));
- map.insert(QStringLiteral("fo"), QStringLiteral("\uff8c\uff6b"));
- map.insert(QStringLiteral("fwo"), QStringLiteral("\uff8c\uff6b"));
- map.insert(QStringLiteral("fya"), QStringLiteral("\uff8c\uff6c"));
- map.insert(QStringLiteral("fyu"), QStringLiteral("\uff8c\uff6d"));
- map.insert(QStringLiteral("fyo"), QStringLiteral("\uff8c\uff6e"));
- map.insert(QStringLiteral("bu"), QStringLiteral("\uff8c\uff9e"));
- map.insert(QStringLiteral("pu"), QStringLiteral("\uff8c\uff9f"));
- map.insert(QStringLiteral("he"), QStringLiteral("\uff8d"));
- map.insert(QStringLiteral("be"), QStringLiteral("\uff8d\uff9e"));
- map.insert(QStringLiteral("pe"), QStringLiteral("\uff8d\uff9f"));
- map.insert(QStringLiteral("ho"), QStringLiteral("\uff8e"));
- map.insert(QStringLiteral("bo"), QStringLiteral("\uff8e\uff9e"));
- map.insert(QStringLiteral("po"), QStringLiteral("\uff8e\uff9f"));
- map.insert(QStringLiteral("ma"), QStringLiteral("\uff8f"));
- map.insert(QStringLiteral("mi"), QStringLiteral("\uff90"));
- map.insert(QStringLiteral("myi"), QStringLiteral("\uff90\uff68"));
- map.insert(QStringLiteral("mye"), QStringLiteral("\uff90\uff6a"));
- map.insert(QStringLiteral("mya"), QStringLiteral("\uff90\uff6c"));
- map.insert(QStringLiteral("myu"), QStringLiteral("\uff90\uff6d"));
- map.insert(QStringLiteral("myo"), QStringLiteral("\uff90\uff6e"));
- map.insert(QStringLiteral("mu"), QStringLiteral("\uff91"));
- map.insert(QStringLiteral("me"), QStringLiteral("\uff92"));
- map.insert(QStringLiteral("mo"), QStringLiteral("\uff93"));
- map.insert(QStringLiteral("lya"), QStringLiteral("\uff6c"));
- map.insert(QStringLiteral("xya"), QStringLiteral("\uff6c"));
- map.insert(QStringLiteral("ya"), QStringLiteral("\uff94"));
- map.insert(QStringLiteral("lyu"), QStringLiteral("\uff6d"));
- map.insert(QStringLiteral("xyu"), QStringLiteral("\uff6d"));
- map.insert(QStringLiteral("yu"), QStringLiteral("\uff95"));
- map.insert(QStringLiteral("lyo"), QStringLiteral("\uff6e"));
- map.insert(QStringLiteral("xyo"), QStringLiteral("\uff6e"));
- map.insert(QStringLiteral("yo"), QStringLiteral("\uff96"));
- map.insert(QStringLiteral("ra"), QStringLiteral("\uff97"));
- map.insert(QStringLiteral("ri"), QStringLiteral("\uff98"));
- map.insert(QStringLiteral("ryi"), QStringLiteral("\uff98\uff68"));
- map.insert(QStringLiteral("rye"), QStringLiteral("\uff98\uff6a"));
- map.insert(QStringLiteral("rya"), QStringLiteral("\uff98\uff6c"));
- map.insert(QStringLiteral("ryu"), QStringLiteral("\uff98\uff6d"));
- map.insert(QStringLiteral("ryo"), QStringLiteral("\uff98\uff6e"));
- map.insert(QStringLiteral("ru"), QStringLiteral("\uff99"));
- map.insert(QStringLiteral("re"), QStringLiteral("\uff9a"));
- map.insert(QStringLiteral("ro"), QStringLiteral("\uff9b"));
- map.insert(QStringLiteral("lwa"), QStringLiteral("\uff9c"));
- map.insert(QStringLiteral("xwa"), QStringLiteral("\uff9c"));
- map.insert(QStringLiteral("wa"), QStringLiteral("\uff9c"));
- map.insert(QStringLiteral("wo"), QStringLiteral("\uff66"));
- map.insert(QStringLiteral("nn"), QStringLiteral("\uff9d"));
- map.insert(QStringLiteral("xn"), QStringLiteral("\uff9d"));
- map.insert(QStringLiteral("vu"), QStringLiteral("\uff73\uff9e"));
- map.insert(QStringLiteral("va"), QStringLiteral("\uff73\uff9e\uff67"));
- map.insert(QStringLiteral("vi"), QStringLiteral("\uff73\uff9e\uff68"));
- map.insert(QStringLiteral("vyi"), QStringLiteral("\uff73\uff9e\uff68"));
- map.insert(QStringLiteral("ve"), QStringLiteral("\uff73\uff9e\uff6a"));
- map.insert(QStringLiteral("vye"), QStringLiteral("\uff73\uff9e\uff6a"));
- map.insert(QStringLiteral("vo"), QStringLiteral("\uff73\uff9e\uff6b"));
- map.insert(QStringLiteral("vya"), QStringLiteral("\uff73\uff9e\uff6c"));
- map.insert(QStringLiteral("vyu"), QStringLiteral("\uff73\uff9e\uff6d"));
- map.insert(QStringLiteral("vyo"), QStringLiteral("\uff73\uff9e\uff6e"));
-
- map.insert(QStringLiteral("bb"), QStringLiteral("\uff6fb"));
- map.insert(QStringLiteral("cc"), QStringLiteral("\uff6fc"));
- map.insert(QStringLiteral("dd"), QStringLiteral("\uff6fd"));
- map.insert(QStringLiteral("ff"), QStringLiteral("\uff6ff"));
- map.insert(QStringLiteral("gg"), QStringLiteral("\uff6fg"));
- map.insert(QStringLiteral("hh"), QStringLiteral("\uff6fh"));
- map.insert(QStringLiteral("jj"), QStringLiteral("\uff6fj"));
- map.insert(QStringLiteral("kk"), QStringLiteral("\uff6fk"));
- map.insert(QStringLiteral("ll"), QStringLiteral("\uff6fl"));
- map.insert(QStringLiteral("mm"), QStringLiteral("\uff6fm"));
- map.insert(QStringLiteral("pp"), QStringLiteral("\uff6fp"));
- map.insert(QStringLiteral("qq"), QStringLiteral("\uff6fq"));
- map.insert(QStringLiteral("rr"), QStringLiteral("\uff6fr"));
- map.insert(QStringLiteral("ss"), QStringLiteral("\uff6fs"));
- map.insert(QStringLiteral("tt"), QStringLiteral("\uff6ft"));
- map.insert(QStringLiteral("vv"), QStringLiteral("\uff6fv"));
- map.insert(QStringLiteral("ww"), QStringLiteral("\uff6fw"));
- map.insert(QStringLiteral("xx"), QStringLiteral("\uff6fx"));
- map.insert(QStringLiteral("yy"), QStringLiteral("\uff6fy"));
- map.insert(QStringLiteral("zz"), QStringLiteral("\uff6fz"));
- map.insert(QStringLiteral("nb"), QStringLiteral("\uff9db"));
- map.insert(QStringLiteral("nc"), QStringLiteral("\uff9dc"));
- map.insert(QStringLiteral("nd"), QStringLiteral("\uff9dd"));
- map.insert(QStringLiteral("nf"), QStringLiteral("\uff9df"));
- map.insert(QStringLiteral("ng"), QStringLiteral("\uff9dg"));
- map.insert(QStringLiteral("nh"), QStringLiteral("\uff9dh"));
- map.insert(QStringLiteral("nj"), QStringLiteral("\uff9dj"));
- map.insert(QStringLiteral("nk"), QStringLiteral("\uff9dk"));
- map.insert(QStringLiteral("nm"), QStringLiteral("\uff9dm"));
- map.insert(QStringLiteral("np"), QStringLiteral("\uff9dp"));
- map.insert(QStringLiteral("nq"), QStringLiteral("\uff9dq"));
- map.insert(QStringLiteral("nr"), QStringLiteral("\uff9dr"));
- map.insert(QStringLiteral("ns"), QStringLiteral("\uff9ds"));
- map.insert(QStringLiteral("nt"), QStringLiteral("\uff9dt"));
- map.insert(QStringLiteral("nv"), QStringLiteral("\uff9dv"));
- map.insert(QStringLiteral("nw"), QStringLiteral("\uff9dw"));
- map.insert(QStringLiteral("nx"), QStringLiteral("\uff9dx"));
- map.insert(QStringLiteral("nz"), QStringLiteral("\uff9dz"));
- map.insert(QStringLiteral("nl"), QStringLiteral("\uff9dl"));
-
- map.insert(QStringLiteral("-"), QStringLiteral("\uff70"));
- map.insert(QStringLiteral("."), QStringLiteral("\uff61"));
- map.insert(QStringLiteral(","), QStringLiteral("\uff64"));
- map.insert(QStringLiteral("/"), QStringLiteral("\uff65"));
- return map;
- }
-
- static const QMap<QString, QString> romkanTable;
+ static const int romkanTableLength = 317;
+ static const char *romkanTableKey[romkanTableLength];
+ static const char *romkanTableValue[romkanTableLength];
+ static const WnnLookupTable romkanTable;
};
-const QMap<QString, QString> RomkanHalfKatakanaPrivate::romkanTable = RomkanHalfKatakanaPrivate::initRomkanTable();
+const char *RomkanHalfKatakanaPrivate::romkanTableKey[] = {
+"", ",", "-", ".", "/", "a", "ba", "bb", "be", "bi", "bo", "bu", "bya", "bye", "byi", "byo",
+"byu", "ca", "cc", "ce", "cha", "che", "chi", "cho", "chu", "ci", "co", "cu", "cya", "cye", "cyi", "cyo",
+"cyu", "da", "dd", "de", "dha", "dhe", "dhi", "dho", "dhu", "di", "do", "du", "dwa", "dwe", "dwi", "dwo",
+"dwu", "dya", "dye", "dyi", "dyo", "dyu", "e", "fa", "fe", "ff", "fi", "fo", "fu", "fwa", "fwe", "fwi",
+"fwo", "fwu", "fya", "fye", "fyi", "fyo", "fyu", "ga", "ge", "gg", "gi", "go", "gu", "gwa", "gwe", "gwi",
+"gwo", "gwu", "gya", "gye", "gyi", "gyo", "gyu", "ha", "he", "hh", "hi", "ho", "hu", "hya", "hye", "hyi",
+"hyo", "hyu", "i", "ja", "je", "ji", "jj", "jo", "ju", "jya", "jye", "jyi", "jyo", "jyu", "ka", "ke",
+"ki", "kk", "ko", "ku", "kwa", "kya", "kye", "kyi", "kyo", "kyu", "la", "le", "li", "ll", "lo", "ltsu",
+"ltu", "lu", "lwa", "lya", "lye", "lyi", "lyo", "lyu", "ma", "me", "mi", "mm", "mo", "mu", "mya", "mye",
+"myi", "myo", "myu", "na", "nb", "nc", "nd", "ne", "nf", "ng", "nh", "ni", "nj", "nk", "nl", "nm",
+"nn", "no", "np", "nq", "nr", "ns", "nt", "nu", "nv", "nw", "nx", "nya", "nye", "nyi", "nyo", "nyu",
+"nz", "o", "pa", "pe", "pi", "po", "pp", "pu", "pya", "pye", "pyi", "pyo", "pyu", "qa", "qe", "qi",
+"qo", "qq", "qu", "qwa", "qwe", "qwi", "qwo", "qwu", "qya", "qye", "qyi", "qyo", "qyu", "ra", "re", "ri",
+"ro", "rr", "ru", "rya", "rye", "ryi", "ryo", "ryu", "sa", "se", "sha", "she", "shi", "sho", "shu", "si",
+"so", "ss", "su", "swa", "swe", "swi", "swo", "swu", "sya", "sye", "syi", "syo", "syu", "ta", "te", "tha",
+"the", "thi", "tho", "thu", "ti", "to", "tsa", "tse", "tsi", "tso", "tsu", "tt", "tu", "twa", "twe", "twi",
+"two", "twu", "tya", "tye", "tyi", "tyo", "tyu", "u", "va", "ve", "vi", "vo", "vu", "vv", "vya", "vye",
+"vyi", "vyo", "vyu", "wa", "we", "wha", "whe", "whi", "who", "whu", "wi", "wo", "wu", "ww", "xa", "xe",
+"xi", "xn", "xo", "xtu", "xu", "xwa", "xx", "xya", "xye", "xyi", "xyo", "xyu", "ya", "ye", "yi", "yo",
+"yu", "yy", "za", "ze", "zi", "zo", "zu", "zya", "zye", "zyi", "zyo", "zyu", "zz"
+};
+const char *RomkanHalfKatakanaPrivate::romkanTableValue[] = {
+"ッ", "、", "ー", "。", "・", "ア", "バ", "ッb", "ベ", "ビ", "ボ", "ブ", "ビャ", "ビェ", "ビィ", "ビョ",
+"ビュ", "カ", "ッc", "セ", "チャ", "チェ", "チ", "チョ", "チュ", "シ", "コ", "ク", "チャ", "チェ", "チィ", "チョ",
+"チュ", "ダ", "ッd", "デ", "デャ", "デェ", "ディ", "デョ", "デュ", "ヂ", "ド", "ヅ", "ドァ", "ドェ", "ドィ", "ドォ",
+"ドゥ", "ヂャ", "ヂェ", "ヂィ", "ヂョ", "ヂュ", "エ", "ファ", "フェ", "ッf", "フィ", "フォ", "フ", "ファ", "フェ", "フィ",
+"フォ", "フゥ", "フャ", "フェ", "フィ", "フョ", "フュ", "ガ", "ゲ", "ッg", "ギ", "ゴ", "グ", "グァ", "グェ", "グィ",
+"グォ", "グゥ", "ギャ", "ギェ", "ギィ", "ギョ", "ギュ", "ハ", "ヘ", "ッh", "ヒ", "ホ", "フ", "ヒャ", "ヒェ", "ヒィ",
+"ヒョ", "ヒュ", "イ", "ジャ", "ジェ", "ジ", "ッj", "ジョ", "ジュ", "ジャ", "ジェ", "ジィ", "ジョ", "ジュ", "カ", "ケ",
+"キ", "ッk", "コ", "ク", "クァ", "キャ", "キェ", "キィ", "キョ", "キュ", "ァ", "ェ", "ィ", "ッl", "ォ", "ッ",
+"ッ", "ゥ", "ワ", "ャ", "ェ", "ィ", "ョ", "ュ", "マ", "メ", "ミ", "ッm", "モ", "ム", "ミャ", "ミェ",
+"ミィ", "ミョ", "ミュ", "ナ", "ンb", "ンc", "ンd", "ネ", "ンf", "ンg", "ンh", "ニ", "ンj", "ンk", "ンl", "ンm",
+"ン", "ノ", "ンp", "ンq", "ンr", "ンs", "ンt", "ヌ", "ンv", "ンw", "ンx", "ニャ", "ニェ", "ニィ", "ニョ", "ニュ",
+"ンz", "オ", "パ", "ペ", "ピ", "ポ", "ッp", "プ", "ピャ", "ピェ", "ピィ", "ピョ", "ピュ", "クァ", "クェ", "クィ",
+"クォ", "ッq", "ク", "クァ", "クェ", "クィ", "クォ", "クゥ", "クャ", "クェ", "クィ", "クョ", "クュ", "ラ", "レ", "リ",
+"ロ", "ッr", "ル", "リャ", "リェ", "リィ", "リョ", "リュ", "サ", "セ", "シャ", "シェ", "シ", "ショ", "シュ", "シ",
+"ソ", "ッs", "ス", "スァ", "スェ", "スィ", "スォ", "スゥ", "シャ", "シェ", "シィ", "ショ", "シュ", "タ", "テ", "テャ",
+"テェ", "ティ", "テョ", "テュ", "チ", "ト", "ツァ", "ツェ", "ツィ", "ツォ", "ツ", "ッt", "ツ", "トァ", "トェ", "トィ",
+"トォ", "トゥ", "チャ", "チェ", "チィ", "チョ", "チュ", "ウ", "ヴァ", "ヴェ", "ヴィ", "ヴォ", "ヴ", "ッv", "ヴャ", "ヴェ",
+"ヴィ", "ヴョ", "ヴュ", "ワ", "ウェ", "ウァ", "ウェ", "ウィ", "ウォ", "ウ", "ウィ", "ヲ", "ウ", "ッw", "ァ", "ェ",
+"ィ", "ン", "ォ", "ッ", "ゥ", "ワ", "ッx", "ャ", "ェ", "ィ", "ョ", "ュ", "ヤ", "イェ", "イ", "ヨ",
+"ユ", "ッy", "ザ", "ゼ", "ジ", "ゾ", "ズ", "ジャ", "ジェ", "ジィ", "ジョ", "ジュ", "ッz"
+};
+const WnnLookupTable RomkanHalfKatakanaPrivate::romkanTable = WnnLookupTable(
+ RomkanHalfKatakanaPrivate::romkanTableKey,
+ RomkanHalfKatakanaPrivate::romkanTableValue,
+ RomkanHalfKatakanaPrivate::romkanTableLength);
RomkanHalfKatakana::RomkanHalfKatakana(QObject *parent) :
- Romkan(*new RomkanHalfKatakanaPrivate(), parent)
+ Romkan(parent)
{
}
diff --git a/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/wnnlookuptable.cpp b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/wnnlookuptable.cpp
new file mode 100644
index 00000000..87f83dad
--- /dev/null
+++ b/src/virtualkeyboard/3rdparty/openwnn/wnnEngine/wnnlookuptable.cpp
@@ -0,0 +1,86 @@
+/*
+ * Qt implementation of OpenWnn library
+ * This file is part of the Qt Virtual Keyboard module.
+ * Contact: http://www.qt.io/licensing/
+ *
+ * Copyright (C) 2017 The Qt Company
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "wnnlookuptable.h"
+#include <qalgorithms.h>
+#if WNN_LOOKUP_TABLE_CREATE
+#include <QFile>
+#endif
+
+WnnLookupTable::WnnLookupTable(const char **keys, const char **values, const int length) :
+ keys(keys),
+ values(values),
+ length(length)
+{
+}
+
+const QString WnnLookupTable::value(const QString &what) const
+{
+ const char **key = qBinaryFind(keys, keys + length, what.toUtf8().constData(),
+ [] (const char *lhs, const char *rhs) { return strcmp(lhs, rhs) < 0; });
+ int index = key - keys;
+ if (index == length)
+ return QString();
+ return QString::fromUtf8(values[index]);
+}
+
+#if WNN_LOOKUP_TABLE_CREATE
+void WnnLookupTable::create(const QMap<QString, QString> &map, const QString &tablePrefix, const QString &fileName)
+{
+ QFile file(fileName);
+ if (file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) {
+ QList<QString> keys = map.keys();
+ std::sort(keys.begin(), keys.end(), [] (const QString &lhs, const QString &rhs) {
+ return strcmp(lhs.toUtf8().constData(), rhs.toUtf8().constData()) < 0;
+ });
+ file.write(QString("static const int %1Length = %2;\n").arg(tablePrefix).arg(keys.count()).toUtf8().constData());
+ file.write(QString("static const char *%1Key[%1Length];\n").arg(tablePrefix).toUtf8().constData());
+ file.write(QString("static const char *%1Value[%1Length];\n").arg(tablePrefix).toUtf8().constData());
+ file.write(QString("const char *%1Key[] = {\n").arg(tablePrefix).toUtf8().constData());
+ int c = 0;
+ for (const QString &key : keys) {
+ if (c > 0 && c % 16 != 0)
+ file.write(", ");
+ file.write("\"");
+ QString escaped = QString(key).replace("\\", "\\\\").replace("'", "\\'").replace("\"", "\\\"");
+ file.write(escaped.toUtf8().constData());
+ file.write("\"");
+ c++;
+ if (c % 16 == 0)
+ file.write(",\n");
+ }
+ file.write("\n};\n");
+ file.write(QString("const char *%1Value[] = {\n").arg(tablePrefix).toUtf8().constData());
+ c = 0;
+ for (const QString &key : keys) {
+ if (c > 0 && c % 16 != 0)
+ file.write(", ");
+ file.write("\"");
+ QString escaped = QString(map.value(key)).replace("\\", "\\\\").replace("'", "\\'").replace("\"", "\\\"");
+ file.write(escaped.toUtf8().constData());
+ file.write("\"");
+ c++;
+ if (c % 16 == 0)
+ file.write(",\n");
+ }
+ file.write("\n};\n");
+ }
+}
+#endif
diff --git a/tests/auto/inputpanel/BLACKLIST b/tests/auto/inputpanel/BLACKLIST
index 9d4e1e38..e69de29b 100644
--- a/tests/auto/inputpanel/BLACKLIST
+++ b/tests/auto/inputpanel/BLACKLIST
@@ -1,10 +0,0 @@
-[tst_plugin::test_inputLocale:row 10]
-windows msvc-2015
-[tst_plugin::test_japaneseInputModes:row 0]
-windows msvc-2015
-[tst_plugin::test_japaneseInputModes:row 1]
-windows msvc-2015
-[tst_plugin::test_japaneseInputModes:row 2]
-windows msvc-2015
-[tst_plugin::test_japaneseInputModes:row 3]
-windows msvc-2015