[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.3/kdelibs/kdecore/localization
From:       Chusslove Illich <caslav.ilic () gmx ! net>
Date:       2009-11-09 20:04:47
Message-ID: 1257797087.748738.25623.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1046830 by ilic:

More thourough coverage of casing in ijek->ek mappings. Latin mappings added. (bport: 1046829)

 M  +64 -15    ktranslit.cpp  


--- branches/KDE/4.3/kdelibs/kdecore/localization/ktranslit.cpp #1046829:1046830
@@ -198,7 +198,7 @@
 {
     public:
     QHash<QString, bool> latinNames;
-    QHash<QString, bool> yekavianNames;
+    QHash<QString, bool> ijekavianNames;
     QHash<QChar, QString> dictC2L;
     QHash<QString, QString> dictI2E;
     int maxReflexLen;
@@ -218,16 +218,16 @@
     SR_NAME_ENTRY(d->latinNames, "ijekavianlatin");
     SR_NAME_ENTRY(d->latinNames, "yekavianlatin");
     SR_NAME_ENTRY(d->latinNames, "iyekavianlatin");
-    SR_NAME_ENTRY(d->yekavianNames, "ije");
-    SR_NAME_ENTRY(d->yekavianNames, "ijelatin");
-    SR_NAME_ENTRY(d->yekavianNames, "jekavian");
-    SR_NAME_ENTRY(d->yekavianNames, "jekavianlatin");
-    SR_NAME_ENTRY(d->yekavianNames, "ijekavian");
-    SR_NAME_ENTRY(d->yekavianNames, "ijekavianlatin");
-    SR_NAME_ENTRY(d->yekavianNames, "yekavian");
-    SR_NAME_ENTRY(d->yekavianNames, "yekavianlatin");
-    SR_NAME_ENTRY(d->yekavianNames, "iyekavian");
-    SR_NAME_ENTRY(d->yekavianNames, "iyekavianlatin");
+    SR_NAME_ENTRY(d->ijekavianNames, "ije");
+    SR_NAME_ENTRY(d->ijekavianNames, "ijelatin");
+    SR_NAME_ENTRY(d->ijekavianNames, "jekavian");
+    SR_NAME_ENTRY(d->ijekavianNames, "jekavianlatin");
+    SR_NAME_ENTRY(d->ijekavianNames, "ijekavian");
+    SR_NAME_ENTRY(d->ijekavianNames, "ijekavianlatin");
+    SR_NAME_ENTRY(d->ijekavianNames, "yekavian");
+    SR_NAME_ENTRY(d->ijekavianNames, "yekavianlatin");
+    SR_NAME_ENTRY(d->ijekavianNames, "iyekavian");
+    SR_NAME_ENTRY(d->ijekavianNames, "iyekavianlatin");
 
     #define SR_DICTC2L_ENTRY(a, b) do { \
         d->dictC2L[QString::fromUtf8(a)[0]] = QString::fromUtf8(b); \
@@ -306,33 +306,82 @@
     #define SR_DICTI2E_ENTRY(a, b) do { \
         d->dictI2E[QString::fromUtf8(a)] = QString::fromUtf8(b); \
     } while (0)
-    // basic
+    // basic, Cyrillic
     SR_DICTI2E_ENTRY("ије", "е");
+    SR_DICTI2E_ENTRY("Ије", "Е");
     SR_DICTI2E_ENTRY("ИЈЕ", "Е");
     SR_DICTI2E_ENTRY("иј", "е");
+    SR_DICTI2E_ENTRY("Иј", "Е");
     SR_DICTI2E_ENTRY("ИЈ", "Е");
     SR_DICTI2E_ENTRY("је", "е");
+    SR_DICTI2E_ENTRY("Је", "Е");
     SR_DICTI2E_ENTRY("ЈЕ", "Е");
     SR_DICTI2E_ENTRY("ље", "ле");
+    SR_DICTI2E_ENTRY("Ље", "Ле");
     SR_DICTI2E_ENTRY("ЉЕ", "ЛЕ");
     SR_DICTI2E_ENTRY("ње", "не");
+    SR_DICTI2E_ENTRY("Ње", "Не");
     SR_DICTI2E_ENTRY("ЊЕ", "НЕ");
     SR_DICTI2E_ENTRY("ио", "ео");
+    SR_DICTI2E_ENTRY("Ио", "Ео");
     SR_DICTI2E_ENTRY("ИО", "ЕО");
     SR_DICTI2E_ENTRY("иљ", "ел");
+    SR_DICTI2E_ENTRY("Иљ", "Ел");
     SR_DICTI2E_ENTRY("ИЉ", "ЕЛ");
-    // special cases (include one prev. letter)
+    // basic, Latin
+    SR_DICTI2E_ENTRY("ije", "e");
+    SR_DICTI2E_ENTRY("Ije", "E");
+    SR_DICTI2E_ENTRY("IJE", "E");
+    SR_DICTI2E_ENTRY("ij", "e");
+    SR_DICTI2E_ENTRY("Ij", "E");
+    SR_DICTI2E_ENTRY("IJ", "E");
+    SR_DICTI2E_ENTRY("je", "e");
+    SR_DICTI2E_ENTRY("Je", "E");
+    SR_DICTI2E_ENTRY("JE", "E");
+    SR_DICTI2E_ENTRY("lje", "le");
+    SR_DICTI2E_ENTRY("Lje", "Le");
+    SR_DICTI2E_ENTRY("LJE", "LE");
+    SR_DICTI2E_ENTRY("nje", "ne");
+    SR_DICTI2E_ENTRY("Nje", "Ne");
+    SR_DICTI2E_ENTRY("NJE", "NE");
+    SR_DICTI2E_ENTRY("io", "eo");
+    SR_DICTI2E_ENTRY("Io", "Eo");
+    SR_DICTI2E_ENTRY("IO", "EO");
+    SR_DICTI2E_ENTRY("ilj", "el");
+    SR_DICTI2E_ENTRY("Ilj", "El");
+    SR_DICTI2E_ENTRY("ILJ", "EL");
+    // special cases, Cyrillic
     SR_DICTI2E_ENTRY("лије", "ли");
+    SR_DICTI2E_ENTRY("Лије", "Ли");
     SR_DICTI2E_ENTRY("ЛИЈЕ", "ЛИ");
     SR_DICTI2E_ENTRY("лијен", "лењ");
     SR_DICTI2E_ENTRY("Лијен", "Лењ");
     SR_DICTI2E_ENTRY("ЛИЈЕН", "ЛЕЊ");
     SR_DICTI2E_ENTRY("мија", "меја");
+    SR_DICTI2E_ENTRY("Мија", "Меја");
     SR_DICTI2E_ENTRY("МИЈА", "МЕЈА");
     SR_DICTI2E_ENTRY("мије", "мејe");
+    SR_DICTI2E_ENTRY("Мије", "Мејe");
     SR_DICTI2E_ENTRY("МИЈЕ", "МЕЈE");
     SR_DICTI2E_ENTRY("није", "ни");
+    SR_DICTI2E_ENTRY("Није", "Ни");
     SR_DICTI2E_ENTRY("НИЈЕ", "НИ");
+    // special cases, Latin
+    SR_DICTI2E_ENTRY("lije", "li");
+    SR_DICTI2E_ENTRY("Lije", "Li");
+    SR_DICTI2E_ENTRY("LIJE", "LI");
+    SR_DICTI2E_ENTRY("lijen", "lenj");
+    SR_DICTI2E_ENTRY("Lijen", "Lenj");
+    SR_DICTI2E_ENTRY("LIJEN", "LENJ");
+    SR_DICTI2E_ENTRY("mija", "meja");
+    SR_DICTI2E_ENTRY("Mija", "Meja");
+    SR_DICTI2E_ENTRY("MIJA", "MEJA");
+    SR_DICTI2E_ENTRY("mije", "meje");
+    SR_DICTI2E_ENTRY("Mije", "Meje");
+    SR_DICTI2E_ENTRY("MIJE", "MEJE");
+    SR_DICTI2E_ENTRY("nije", "ni");
+    SR_DICTI2E_ENTRY("Nije", "Ni");
+    SR_DICTI2E_ENTRY("NIJE", "NI");
 
     d->maxReflexLen = 0;
     foreach (const QString &reflex, d->dictI2E.keys()) {
@@ -355,8 +404,8 @@
 
     QString str = str_;
 
-    // Resolve Ekavian/Yekavian (must come before Cyrillic/Latin).
-    if (d->yekavianNames.contains(script)) {
+    // Resolve Ekavian/Ijekavian.
+    if (d->ijekavianNames.contains(script)) {
         // Just remove reflex marks.
         str.remove(d->reflexMark);
         str = resolveInserts(str, 2, 1, insHeadIje);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic