goldendict-ng/greektranslit.cc
2010-05-29 13:22:08 +04:00

656 lines
16 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* This file is (c) 2010 Jennie Petoumenou <epetoumenou@gmail.com>
* Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */
#include "greektranslit.hh"
#include "transliteration.hh"
#include <QCoreApplication>
namespace GreekTranslit {
class GreekTable: public Transliteration::Table
{
public:
GreekTable();
};
GreekTable::GreekTable()
{
// Utf8
//ANCIENT GREEK DIACRITICS (BETA CODE)
// Adapted from beta2unicode.py by James Tauber <http://jtauber.com/>
//uppercase (asterisk & capitals)
//oceia - bareia
ins("*)A", "");
ins("*(A", "");
ins("*\\A", "");
ins("*/A", "Ά");
ins("*)\\A", "");
ins("*(\\A", "");
ins("*)/A", "");
ins("*(/A", "");
ins("*)E", "");
ins("*(E", "");
ins("*\\E", "");
ins("*/E", "Έ");
ins("*)\\E", "");
ins("*(\\E", "");
ins("*)/E", "");
ins("*(/E", "");
ins("*)H", "");
ins("*(H", "");
ins("*\\H", "");
ins("*/H", "Ή");
ins("*)\\H", "");
ins("*(\\H", "");
ins("*)/H", "");
ins("*(/H", "");
ins("*)I", "");
ins("*(I", "");
ins("*\\I", "");
ins("*/I", "Ί");
ins("*)\\I", "");
ins("*(\\I", "");
ins("*)/I", "");
ins("*(/I", "");
ins("*)O", "");
ins("*(O", "");
ins("*\\O", "");
ins("*/O", "Ό");
ins("*)\\O", "");
ins("*(\\O", "");
ins("*)/O", "");
ins("*(/O", "");
ins("*(R", "");
ins("*(U", "");
ins("*\\U", "");
ins("*/U", "Ύ");
ins("*(\\U", "");
ins("*(/U", "");
ins("*)W", "");
ins("*(W", "");
ins("*\\W", "");
ins("*/W", "Ώ");
ins("*)\\W", "");
ins("*(\\W", "");
ins("*)/W", "");
ins("*(/W", "");
//perispwmenh
ins("*)=A", "");
ins("*(=A", "");
ins("*)=H", "");
ins("*(=H", "");
ins("*)=I", "");
ins("*(=I", "Ἷ");
ins("*(=U", "");
ins("*)=W", "");
ins("*(=W", "");
//upogegrammenh
ins("*A|", "");
ins("*)A|", "");
ins("*(A|", "");
ins("*)/A|", "");
ins("*(/A|", "");
ins("*)=A|", "");
ins("*(=A|", "");
ins("*H|", "");
ins("*)H|", "");
ins("*(H|", "");
ins("*)/H|", "");
ins("*(/H|", "");
ins("*)=H|", "");
ins("*(=H|", "");
ins("*W|", "");
ins("*)W|", "");
ins("*(W|", "");
ins("*)/W|", "");
ins("*(/W|", "");
ins("*)=W|", "");
ins("*(=W|", "");
ins("*|A", "");
ins("*)|A", "");
ins("*(|A", "");
ins("*)/|A", "");
ins("*(/|A", "");
ins("*)=|A", "");
ins("*(=|A", "");
ins("*|H", "");
ins("*)|H", "");
ins("*(|H", "");
ins("*)/|H", "");
ins("*(/|H", "");
ins("*)=|H", "");
ins("*(=|H", "");
ins("*|W", "");
ins("*)|W", "");
ins("*(|W", "");
ins("*)/|W", "");
ins("*(/|W", "");
ins("*)=|W", "");
ins("*(=|W", "");
//dialutika
ins("*+I", "Ϊ");
ins("*+U", "Ϋ");
//uppercase (asterisk & small letters)
//oceia - bareia
ins("*)a", "");
ins("*(a", "");
ins("*\\a", "");
ins("*/a", "Ά");
ins("*)\\a", "");
ins("*(\\a", "");
ins("*)/a", "");
ins("*(/a", "");
ins("*)e", "");
ins("*(e", "");
ins("*\\e", "");
ins("*/e", "Έ");
ins("*)\\e", "");
ins("*(\\e", "");
ins("*)/e", "");
ins("*(/e", "");
ins("*)h", "");
ins("*(h", "");
ins("*\\h", "");
ins("*/h", "Ή");
ins("*)\\h", "");
ins("*(\\h", "");
ins("*)/h", "");
ins("*(/h", "");
ins("*)i", "");
ins("*(i", "");
ins("*\\i", "");
ins("*/i", "Ί");
ins("*)\\i", "");
ins("*(\\i", "");
ins("*)/i", "");
ins("*(/i", "");
ins("*)o", "");
ins("*(o", "");
ins("*\\o", "");
ins("*/o", "Ό");
ins("*)\\o", "");
ins("*(\\o", "");
ins("*)/o", "");
ins("*(/o", "");
ins("*(r", "");
ins("*(u", "");
ins("*\\u", "");
ins("*/u", "Ύ");
ins("*(\\u", "");
ins("*(/u", "");
ins("*)w", "");
ins("*(w", "");
ins("*\\w", "");
ins("*/w", "Ώ");
ins("*)\\w", "");
ins("*(\\w", "");
ins("*)/w", "");
ins("*(/w", "");
//perispwmenh
ins("*)=a", "");
ins("*(=a", "");
ins("*)=h", "");
ins("*(=h", "");
ins("*)=i", "");
ins("*(=i", "Ἷ");
ins("*(=u", "");
ins("*)=w", "");
ins("*(=w", "");
//upogegrammenh
ins("*a|", "");
ins("*)a|", "");
ins("*(a|", "");
ins("*)/a|", "");
ins("*(/a|", "");
ins("*)=a|", "");
ins("*(=a|", "");
ins("*h|", "");
ins("*)h|", "");
ins("*(h|", "");
ins("*)/h|", "");
ins("*(/h|", "");
ins("*)=h|", "");
ins("*(=h|", "");
ins("*w|", "");
ins("*)w|", "");
ins("*(w|", "");
ins("*)/w|", "");
ins("*(/w|", "");
ins("*)=w|", "");
ins("*(=w|", "");
ins("*|a", "");
ins("*)|a", "");
ins("*(|a", "");
ins("*)/|a", "");
ins("*(/|a", "");
ins("*)=|a", "");
ins("*(=|a", "");
ins("*|h", "");
ins("*)|h", "");
ins("*(|h", "");
ins("*)/|h", "");
ins("*(/|h", "");
ins("*)=|h", "");
ins("*(=|h", "");
ins("*|w", "");
ins("*)|w", "");
ins("*(|w", "");
ins("*)/|w", "");
ins("*(/|w", "");
ins("*)=|w", "");
ins("*(=|w", "");
//dialutika
ins("*+i", "Ϊ");
ins("*+u", "Ϋ");
//lowercase (capitals)
//oceia - bareia
ins("A)", "");
ins("A(", "");
ins("A\\", "");
ins("A/", "ά");
ins("A)\\", "");
ins("A(\\", "");
ins("A)/", "");
ins("A(/", "");
ins("E)", "");
ins("E(", "");
ins("E\\", "");
ins("E/", "έ");
ins("E)\\", "");
ins("E(\\", "");
ins("E)/", "");
ins("E(/", "");
ins("H)", "");
ins("H(", "");
ins("H\\", "");
ins("H/", "ή");
ins("H)\\", "");
ins("H(\\", "");
ins("H)/", "");
ins("H(/", "");
ins("I)", "");
ins("I(", "");
ins("I\\", "");
ins("I/", "ί");
ins("I)\\", "");
ins("I(\\", "");
ins("I)/", "");
ins("I(/", "");
ins("O)", "");
ins("O(", "");
ins("O\\", "");
ins("O/", "ό");
ins("O)\\", "");
ins("O(\\", "");
ins("O)/", "");
ins("O(/", "");
ins("R(", "");
ins("U)", "");
ins("U(", "");
ins("U\\", "");
ins("U/", "ύ");
ins("U)\\", "");
ins("U(\\", "");
ins("U)/", "");
ins("U(/", "");
ins("W)", "");
ins("W(", "");
ins("W\\", "");
ins("W/", "ώ");
ins("W)\\", "");
ins("W(\\", "");
ins("W)/", "");
ins("W(/", "");
//perispwmenh
ins("A=", "");
ins("A)=", "");
ins("A(=", "");
ins("H=", "");
ins("H)=", "");
ins("H(=", "");
ins("I=", "");
ins("I)=", "");
ins("I(=", "");
ins("U=", "");
ins("U)=", "");
ins("U(=", "");
ins("W=", "");
ins("W)=", "");
ins("W(=", "");
//upogegrammenh
ins("A|", "");
ins("A)|", "");
ins("A(|", "");
ins("A/|", "");
ins("A)/|", "");
ins("A(/|", "");
ins("A=|", "");
ins("A)=|", "");
ins("A(=|", "");
ins("H|", "");
ins("H)|", "");
ins("H(|", "");
ins("H/|", "");
ins("H)/|", "");
ins("H(/|", "");
ins("H=|", "");
ins("H)=|", "");
ins("H(=|", "");
ins("W|", "");
ins("W)|", "");
ins("W(|", "");
ins("W/|", "");
ins("W)/|", "");
ins("W(/|", "");
ins("W=|", "");
ins("W)=|", "");
ins("W(=|", "");
//dialutika
ins("I+", "ϊ");
ins("I\\+", "");
ins("I+\\", "");
ins("I/+", "");
ins("I+/", "");
ins("U+", "ϋ");
ins("U\\+", "");
ins("U+\\", "");
ins("U/+", "");
ins("U+/", "");
//lowercase (small letters)
//oceia - bareia
ins("a)", "");
ins("a(", "");
ins("a\\", "");
ins("a/", "ά");
ins("a)\\", "");
ins("a(\\", "");
ins("a)/", "");
ins("a(/", "");
ins("e)", "");
ins("e(", "");
ins("e\\", "");
ins("e/", "έ");
ins("e)\\", "");
ins("e(\\", "");
ins("e)/", "");
ins("e(/", "");
ins("h)", "");
ins("h(", "");
ins("h\\", "");
ins("h/", "ή");
ins("h)\\", "");
ins("h(\\", "");
ins("h)/", "");
ins("h(/", "");
ins("i)", "");
ins("i(", "");
ins("i\\", "");
ins("i/", "ί");
ins("i)\\", "");
ins("i(\\", "");
ins("i)/", "");
ins("i(/", "");
ins("o)", "");
ins("o(", "");
ins("o\\", "");
ins("o/", "ό");
ins("o)\\", "");
ins("o(\\", "");
ins("o)/", "");
ins("o(/", "");
ins("r(", "");
ins("u)", "");
ins("u(", "");
ins("u\\", "");
ins("u/", "ύ");
ins("u)\\", "");
ins("u(\\", "");
ins("u)/", "");
ins("u(/", "");
ins("w)", "");
ins("w(", "");
ins("w\\", "");
ins("w/", "ώ");
ins("w)\\", "");
ins("w(\\", "");
ins("w)/", "");
ins("w(/", "");
//perispwmenh
ins("a=", "");
ins("a)=", "");
ins("a(=", "");
ins("h=", "");
ins("h)=", "");
ins("h(=", "");
ins("i=", "");
ins("i)=", "");
ins("i(=", "");
ins("u=", "");
ins("u)=", "");
ins("u(=", "");
ins("w=", "");
ins("w)=", "");
ins("w(=", "");
//upogegrammenh
ins("a|", "");
ins("a)|", "");
ins("a(|", "");
ins("a/|", "");
ins("a)/|", "");
ins("a(/|", "");
ins("a=|", "");
ins("a)=|", "");
ins("a(=|", "");
ins("h|", "");
ins("h)|", "");
ins("h(|", "");
ins("h/|", "");
ins("h)/|", "");
ins("h(/|", "");
ins("h=|", "");
ins("h)=|", "");
ins("h(=|", "");
ins("w|", "");
ins("w)|", "");
ins("w(|", "");
ins("w/|", "");
ins("w)/|", "");
ins("w(/|", "");
ins("w=|", "");
ins("w)=|", "");
ins("w(=|", "");
//dialutika
ins("i+", "ϊ");
ins("i\\+", "");
ins("i+\\", "");
ins("i/+", "");
ins("i+/", "");
ins("u+", "ϋ");
ins("u\\+", "");
ins("u+\\", "");
ins("u/+", "");
ins("u+/", "");
//MODERN GREEK DIACRITICS
ins("'a", "ά");
ins("'e", "έ");
ins("'h", "ή");
ins("'i", "ί");
ins("\"i", "ϊ");
ins("\"'i", "ΐ");
ins("':i", "ΐ");
ins("'o", "ό");
ins("'u", "ύ");
ins("\"u", "ϋ");
ins("\"'u", "ΰ");
ins("':u", "ΰ");
ins("'w", "ώ");
ins("'A", "ά");
ins("'E", "έ");
ins("'H", "ή");
ins("'I", "ί");
ins("\"I", "ϊ");
ins("'O", "ό");
ins("'U", "ύ");
ins("\"U", "ϋ");
ins("'W", "ώ");
//BASE CHARACTERS
ins("a", "α");
ins("b", "β");
ins("v", "β");
ins("g", "γ");
ins("d", "δ");
ins("e", "ε");
ins("z", "ζ");
ins("h", "η");
ins("q", "θ");
ins("8", "θ");
ins("i", "ι");
ins("k", "κ");
ins("l", "λ");
ins("m", "μ");
ins("n", "ν");
ins("c", "ξ");
ins("3", "ξ");
ins("ks", "ξ");
ins("o", "ο");
ins("p", "π");
ins("r", "ρ");
ins("s", "σ");
ins("s1", "σ");
ins("j", "ς");
ins("s2", "ς");
ins("s\\n", "ς");
ins("t", "τ");
ins("u", "υ");
ins("f", "φ");
ins("x", "χ");
ins("y", "ψ");
ins("ps", "ψ");
ins("w", "ω");
ins("A", "α");
ins("B", "β");
ins("V", "β");
ins("G", "γ");
ins("D", "δ");
ins("E", "ε");
ins("Z", "ζ");
ins("H", "η");
ins("Q", "θ");
ins("I", "ι");
ins("K", "κ");
ins("L", "λ");
ins("M", "μ");
ins("N", "ν");
ins("C", "ξ");
ins("KS", "ξ");
ins("Ks", "ξ");
ins("O", "ο");
ins("P", "π");
ins("R", "ρ");
ins("S", "σ");
ins("S1", "σ");
ins("J", "ς");
ins("S2", "ς");
ins("S\\n", "ς");
ins("T", "τ");
ins("U", "υ");
ins("F", "φ");
ins("X", "χ");
ins("Y", "ψ");
ins("PS", "ψ");
ins("Ps", "ψ");
ins("W", "ω");
}
sptr< Dictionary::Class > makeDictionary() throw( std::exception )
{
static GreekTable t;
return new Transliteration::TransliterationDictionary( "baa9e37a1aa69cdb5daca14a48ffe5ae",
QCoreApplication::translate( "GreekTranslit", "Greek Transliteration" ).toUtf8().data(),
QIcon( ":/flags/gr.png" ), t );
}
}