summaryrefslogtreecommitdiff
path: root/translit.h
diff options
context:
space:
mode:
authorWalker Thompson <walker.thompson@urz.uni-heidelberg.de>2026-06-03 21:29:42 +0200
committerWalker Thompson <walker.thompson@urz.uni-heidelberg.de>2026-06-03 21:29:42 +0200
commit25b73b9e3afe877b08816a6eaab5c1e95b5cadfd (patch)
tree82c1cf1263057e198abed6329ac76d863021e033 /translit.h
Initial commit
Diffstat (limited to 'translit.h')
-rw-r--r--translit.h510
1 files changed, 510 insertions, 0 deletions
diff --git a/translit.h b/translit.h
new file mode 100644
index 0000000..7fd61c0
--- /dev/null
+++ b/translit.h
@@ -0,0 +1,510 @@
+#include <iostream>
+#include <map>
+#include <wx/wx.h>
+#include <wx/clipbrd.h>
+#include <wx/regex.h>
+
+#define SCHEME_LC 0
+#define SCHEME_DIN 1
+#define SCHEME_PCGN 2
+#define SCHEME_OUP 3
+#define SCHEME_ISO 4
+#define SCHEME_SRB 5
+
+#define LANG_RUS 0
+#define LANG_UKR 1
+#define LANG_BEL 2
+#define LANG_BG 3
+#define LANG_CS 4
+#define LANG_SRB 5
+
+using namespace std;
+
+class TranslitGUI: public wxApp {
+ public:
+ virtual bool OnInit();
+};
+
+class TranslitFrame: public wxFrame {
+ public:
+ TranslitFrame();
+
+ private:
+ wxPanel *main_panel;
+ wxBoxSizer *main_sizer;
+ wxBoxSizer *select_sizer;
+ wxBoxSizer *button_sizer;
+
+ wxComboBox *select_scheme;
+ wxComboBox *select_lang;
+ wxTextCtrl *textfield_in;
+ wxTextCtrl *textfield_out;
+
+ void set_lang_options(wxCommandEvent& event);
+ wxButton *translit_button;
+ void do_translit(wxCommandEvent& event);
+ wxButton *quit_button;
+ wxButton *copy_button;
+ void copy_text(wxCommandEvent& event);
+ wxButton *clear_button;
+ void clear_text(wxCommandEvent& event);
+ void OnExit(wxCommandEvent& event);
+
+ wxString replace_chars(wxString& text,
+ map<wxString, wxString> char_map,
+ int schema, int lang);
+};
+
+vector <map<wxString, wxString>> ala_lc = {
+ // common
+ {
+ // uppercase
+ {L"А", L"A"}, {L"Б", L"B"}, {L"В", L"V"},
+ {L"Д", L"D"}, {L"Е", L"E"}, {L"Ж", L"Zh"},
+ {L"З", L"Z"}, {L"І", L"I"}, {L"Й", L"I"},
+ {L"К", L"K"}, {L"Л", L"L"}, {L"М", L"M"},
+ {L"Н", L"N"}, {L"О", L"O"}, {L"П", L"P"},
+ {L"Р", L"R"}, {L"С", L"S"}, {L"Т", L"T"},
+ {L"У", L"U"}, {L"Ф", L"F"}, {L"Х", L"Kh"},
+ {L"Ц", L"Ts"}, {L"Ч", L"Ch"}, {L"Ш", L"Sh"},
+ {L"Ю", L"Iu"}, {L"Я", L"Ia"},
+ // lowercase
+ {L"а", L"a"}, {L"б", L"b"}, {L"в", L"v"},
+ {L"д", L"d"}, {L"е", L"e"}, {L"ж", L"zh"},
+ {L"з", L"z"}, {L"і", L"i"}, {L"й", L"i"},
+ {L"к", L"k"}, {L"л", L"l"}, {L"м", L"m"},
+ {L"н", L"n"}, {L"о", L"o"}, {L"п", L"p"},
+ {L"р", L"r"}, {L"с", L"s"}, {L"т", L"t"},
+ {L"у", L"u"}, {L"ф", L"f"}, {L"х", L"kh"},
+ {L"ц", L"ts"}, {L"ч", L"ch"}, {L"ш", L"sh"},
+ {L"ю", L"iu"}, {L"я", L"ia"}
+ },
+ // Russian
+ {
+ // uppercase
+ {L"Г", L"G"}, {L"Ё", L"E"}, {L"И", L"I"},
+ {L"Ы", L"Y"}, {L"Щ", L"Shch"}, {L"Э", L"E"},
+ {L"Ѵ", L"I"}, {L"Ѳ", L"F"}, {L"Ѣ", L"E"},
+ // lowercase
+ {L"г", L"g"}, {L"ё", L"e"}, {L"и", L"i"},
+ {L"ы", L"y"}, {L"щ", L"shch"}, {L"э", L"e"},
+ {L"ѵ", L"i"}, {L"ѳ", L"f"}, {L"ѣ", L"e"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Ukrainian
+ {
+ // uppercase
+ {L"Г", L"H"}, {L"Ґ", L"G"}, {L"И", L"Y"},
+ {L"Щ", L"Shch"}, {L"Є", L"Ie"}, {L"Ї", L"I"},
+ // lowercase
+ {L"г", L"h"}, {L"ґ", L"g"}, {L"и", L"y"},
+ {L"щ", L"shch"}, {L"Є", L"ie"}, {L"Ї", L"i"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Belarusian
+ {
+ // uppercase
+ {L"Г", L"H"}, {L"Ё", L"E"}, {L"Ы", L"Y"},
+ {L"Щ", L"Shch"}, {L"Ў", L"Ŭ"}, {L"Э", L"E"},
+ // lowercase
+ {L"г", L"h"}, {L"ё", L"e"}, {L"ы", L"y"},
+ {L"щ", L"shch"}, {L"ў", L"ŭ"}, {L"э", L"e"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Bulgarian
+ {
+ // uppercase
+ {L"Г", L"G"}, {L"Щ", L"Sht"},
+ {L"Ѫ", L"Â"}, {L"Ъ", L"Â"},
+ // lowercase
+ {L"г", L"g"}, {L"щ", L"sht"},
+ {L"ѫ", L"â"}, {L"ъ", L"â"}
+ },
+ // (Old) Church Slavonic
+ {
+ // uppercase
+ {L"Щ", L"Shch"}, {L"Ѵ", L"I"}, {L"Ѳ", L"Th"},
+ {L"Ѣ", L"E"}, {L"Ѧ", L"Ę"}, {L"Ѫ", L"Ǫ"},
+ {L"Ѩ", L"Ię"}, {L"Ѭ", L"Iǫ"}, {L"Ѿ", L"Ot"},
+ {L"Ѡ", L"O"}, {L"Ї", L"Ï"}, {L"Є", L"Ie"},
+ {L"Ѕ", L"Dz"}, {L"Ѥ", L"Ie"}, {L"Ѱ", L"Ps"},
+ {L"Ѯ", L"Ks"}, {L"Ґ", L"G"}, {L"Ꙋ", L"Ou"},
+ {L"Ѹ", L"Ou"}, {L"Ѷ", L"I"},
+ // lowercase
+ {L"щ", L"shch"}, {L"ѵ", L"i"}, {L"ѳ", L"th"},
+ {L"ѣ", L"e"}, {L"ѧ", L"ę"}, {L"ѫ", L"ǫ"},
+ {L"ѩ", L"ię"}, {L"ѭ", L"iǫ"}, {L"ѿ", L"ot"},
+ {L"ѡ", L"o"}, {L"ї", L"ï"}, {L"є", L"ie"},
+ {L"ѕ", L"dz"}, {L"ѥ", L"ie"}, {L"ѱ", L"ps"},
+ {L"ѯ", L"ks"}, {L"ґ", L"g"}, {L"ꙋ", L"ou"},
+ {L"ѹ", L"ou"}, {L"ѷ", L"i"}
+ // yers are not transliterated
+ }
+};
+
+vector <map<wxString, wxString>> din_1460 = {
+ // common
+ {
+ // uppercase
+ {L"А", L"A"}, {L"Б", L"B"}, {L"В", L"V"},
+ {L"Д", L"D"}, {L"Е", L"E"}, {L"Ж", L"Ž"},
+ {L"З", L"Z"}, {L"І", L"I"}, {L"Й", L"J"},
+ {L"К", L"K"}, {L"Л", L"L"}, {L"М", L"M"},
+ {L"Н", L"N"}, {L"О", L"O"}, {L"П", L"P"},
+ {L"Р", L"R"}, {L"С", L"S"}, {L"Т", L"T"},
+ {L"У", L"U"}, {L"Ф", L"F"}, {L"Х", L"Ch"},
+ {L"Ц", L"C"}, {L"Ч", L"Č"}, {L"Ш", L"Š"},
+ {L"Ю", L"Ju"}, {L"Я", L"Ja"}, {L"Ћ", L"Ǵ"},
+ // lowercase
+ {L"а", L"a"}, {L"б", L"b"}, {L"в", L"v"},
+ {L"д", L"d"}, {L"е", L"e"}, {L"ж", L"ž"},
+ {L"з", L"z"}, {L"і", L"i"}, {L"й", L"j"},
+ {L"к", L"k"}, {L"л", L"l"}, {L"м", L"m"},
+ {L"н", L"n"}, {L"о", L"o"}, {L"п", L"p"},
+ {L"р", L"r"}, {L"с", L"s"}, {L"т", L"t"},
+ {L"у", L"u"}, {L"ф", L"f"}, {L"х", L"ch"},
+ {L"ц", L"c"}, {L"ч", L"č"}, {L"ш", L"š"},
+ {L"ю", L"ju"}, {L"я", L"ja"}, {L"ћ", L"ǵ"}
+ },
+ // Russian
+ {
+ // uppercase
+ {L"Г", L"G"}, {L"Ё", L"Ë"}, {L"И", L"I"},
+ {L"Ы", L"Y"}, {L"Щ", L"Šč"}, {L"Э", L"Ė"},
+ {L"Ѵ", L"Ẏ"}, {L"Ѳ", L"Ḟ"}, {L"Ѣ", L"Ě"},
+ // lowercase
+ {L"г", L"g"}, {L"ё", L"ë"}, {L"и", L"i"},
+ {L"ы", L"y"}, {L"щ", L"šč"}, {L"э", L"ė"},
+ {L"ѵ", L"ẏ"}, {L"ѳ", L"ḟ"}, {L"ѣ", L"ě"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Ukrainian
+ {
+ // uppercase
+ {L"Г", L"H"}, {L"Ґ", L"G"}, {L"И", L"Y"},
+ {L"Щ", L"Šč"}, {L"Є", L"Je"}, {L"Ї", L"Ï"},
+ // lowercase
+ {L"г", L"h"}, {L"ґ", L"g"}, {L"и", L"y"},
+ {L"щ", L"šč"}, {L"Є", L"je"}, {L"Ї", L"ï"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Belarusian
+ {
+ // uppercase
+ {L"Г", L"H"}, {L"Ё", L"E"}, {L"Ы", L"Y"},
+ {L"Щ", L"Šč"}, {L"Ў", L"Ŭ"}, {L"Э", L"Ė"},
+ // lowercase
+ {L"г", L"h"}, {L"ё", L"e"}, {L"ы", L"y"},
+ {L"щ", L"šč"}, {L"ў", L"ŭ"}, {L"э", L"ė"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Bulgarian
+ {
+ // uppercase
+ {L"Г", L"G"}, {L"Щ", L"Št"},
+ {L"Ѫ", L"Ȧ"}, {L"Ъ", L"Ȧ"},
+ // lowercase
+ {L"г", L"g"}, {L"щ", L"št"},
+ {L"ѫ", L"ȧ"}, {L"ъ", L"ȧ"}
+ },
+ // (Old) Church Slavonic
+ {
+ // uppercase
+ {L"Щ", L"Šč"}, {L"Ѵ", L"I"}, {L"Ѳ", L"Ḟ"},
+ {L"Ѣ", L"Ě"}, {L"Ѧ", L"Ę"}, {L"Ѫ", L"Ǫ"},
+ {L"Ѩ", L"ję"}, {L"Ѭ", L"jǫ"}, {L"Ѿ", L"Ot"},
+ {L"Ѡ", L"Ô"}, {L"Ї", L"Ï"}, {L"Є", L"Ie"},
+ {L"Ѕ", L"Dz"}, {L"Ѥ", L"Je"}, {L"Ѱ", L"Ps"},
+ {L"Ѯ", L"Ks"}, {L"Ґ", L"G"}, {L"Ꙋ", L"Ou"},
+ {L"Ѹ", L"Ou"}, {L"Ѷ", L"I"},
+ // lowercase
+ {L"щ", L"šč"}, {L"ѵ", L"i"}, {L"ѳ", L"ḟ"},
+ {L"ѣ", L"e"}, {L"ѧ", L"ę"}, {L"ѫ", L"ǫ"},
+ {L"ѩ", L"ię"}, {L"ѭ", L"jǫ"}, {L"ѿ", L"ot"},
+ {L"ѡ", L"ô"}, {L"ї", L"ï"}, {L"є", L"ie"},
+ {L"ѕ", L"dz"}, {L"ѥ", L"je"}, {L"ѱ", L"ps"},
+ {L"ѯ", L"ks"}, {L"ґ", L"g"}, {L"ꙋ", L"ou"},
+ {L"ѹ", L"ou"}, {L"ѷ", L"ẏ"}
+ // yers are not transliterated
+ }
+};
+
+
+vector <map<wxString, wxString>> bgp_pcgn = {
+ // common
+ {
+ // uppercase
+ {L"А", L"A"}, {L"Б", L"B"}, {L"В", L"V"},
+ {L"Д", L"D"}, {L"Е", L"E"}, {L"Ж", L"Zh"},
+ {L"З", L"Z"}, {L"І", L"I"}, {L"Й", L"Y"},
+ {L"К", L"K"}, {L"Л", L"L"}, {L"М", L"M"},
+ {L"Н", L"N"}, {L"О", L"O"}, {L"П", L"P"},
+ {L"Р", L"R"}, {L"С", L"S"}, {L"Т", L"T"},
+ {L"У", L"U"}, {L"Ф", L"F"}, {L"Х", L"Kh"},
+ {L"Ц", L"Ts"}, {L"Ч", L"Ch"}, {L"Ш", L"Sh"},
+ {L"Ю", L"Yu"}, {L"Я", L"Ya"},
+ // lowercase
+ {L"а", L"a"}, {L"б", L"b"}, {L"в", L"v"},
+ {L"д", L"d"}, {L"е", L"e"}, {L"ж", L"zh"},
+ {L"з", L"z"}, {L"і", L"i"}, {L"й", L"y"},
+ {L"к", L"k"}, {L"л", L"l"}, {L"м", L"m"},
+ {L"н", L"n"}, {L"о", L"o"}, {L"п", L"p"},
+ {L"р", L"r"}, {L"с", L"s"}, {L"т", L"t"},
+ {L"у", L"u"}, {L"ф", L"f"}, {L"х", L"kh"},
+ {L"ц", L"ts"}, {L"ч", L"ch"}, {L"ш", L"sh"},
+ {L"ю", L"yu"}, {L"я", L"ya"}
+ },
+ // Russian
+ {
+ // uppercase
+ {L"Г", L"G"}, {L"Ё", L"E"}, {L"И", L"I"},
+ {L"Ы", L"Y"}, {L"Щ", L"Shch"}, {L"Э", L"E"},
+ {L"Ѵ", L"I"}, {L"Ѳ", L"F"}, {L"Ѣ", L"E"},
+ // lowercase
+ {L"г", L"g"}, {L"ё", L"e"}, {L"и", L"i"},
+ {L"ы", L"y"}, {L"щ", L"shch"}, {L"э", L"e"},
+ {L"ѵ", L"i"}, {L"ѳ", L"f"}, {L"ѣ", L"e"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Ukrainian
+ {
+ // uppercase
+ {L"Г", L"H"}, {L"Ґ", L"G"}, {L"И", L"Y"},
+ {L"Щ", L"Shch"}, {L"Є", L"Ye"}, {L"Ї", L"Yi"},
+ // lowercase
+ {L"г", L"h"}, {L"ґ", L"g"}, {L"и", L"y"},
+ {L"щ", L"shch"}, {L"Є", L"ye"}, {L"Ї", L"yi"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Belarusian
+ {
+ // uppercase
+ {L"Г", L"H"}, {L"Ё", L"E"}, {L"Ы", L"Y"},
+ {L"Щ", L"Shch"}, {L"Ў", L"Ŭ"}, {L"Э", L"E"},
+ // lowercase
+ {L"г", L"h"}, {L"ё", L"e"}, {L"ы", L"y"},
+ {L"щ", L"shch"}, {L"ў", L"ŭ"}, {L"э", L"e"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Bulgarian
+ {
+ // uppercase
+ {L"Г", L"G"}, {L"Щ", L"Sht"},
+ {L"Ѫ", L"Â"}, {L"Ъ", L"Â"},
+ // lowercase
+ {L"г", L"g"}, {L"щ", L"sht"},
+ {L"ѫ", L"â"}, {L"ъ", L"â"}
+ },
+ // (Old) Church Slavonic
+ {
+ // uppercase
+ {L"Щ", L"Shch"}, {L"Ѵ", L"I"}, {L"Ѳ", L"Th"},
+ {L"Ѣ", L"E"}, {L"Ѧ", L"Ę"}, {L"Ѫ", L"Ǫ"},
+ {L"Ѩ", L"Yę"}, {L"Ѭ", L"Yǫ"}, {L"Ѿ", L"Ot"},
+ {L"Ѡ", L"O"}, {L"Ї", L"Yi"}, {L"Є", L"Ye"},
+ {L"Ѕ", L"Dz"}, {L"Ѥ", L"Ye"}, {L"Ѱ", L"Ps"},
+ {L"Ѯ", L"Ks"}, {L"Ґ", L"G"}, {L"Ꙋ", L"Ou"},
+ {L"Ѹ", L"Ou"}, {L"Ѷ", L"I"},
+ // lowercase
+ {L"щ", L"shch"}, {L"ѵ", L"i"}, {L"ѳ", L"th"},
+ {L"ѣ", L"e"}, {L"ѧ", L"ę"}, {L"ѫ", L"ǫ"},
+ {L"ѩ", L"yę"}, {L"ѭ", L"yǫ"}, {L"ѿ", L"ot"},
+ {L"ѡ", L"o"}, {L"ї", L"yi"}, {L"є", L"ye"},
+ {L"ѕ", L"dz"}, {L"ѥ", L"ye"}, {L"ѱ", L"ps"},
+ {L"ѯ", L"ks"}, {L"ґ", L"g"}, {L"ꙋ", L"ou"},
+ {L"ѹ", L"ou"}, {L"ѷ", L"i"}
+ // yers are not transliterated
+ }
+};
+
+vector <map<wxString, wxString>> iso9_old = {
+ // common
+ {
+ // uppercase
+ {L"А", L"A"}, {L"Б", L"B"}, {L"В", L"V"},
+ {L"Д", L"D"}, {L"Е", L"E"}, {L"Ж", L"Ž"},
+ {L"З", L"Z"}, {L"І", L"I"}, {L"Й", L"J"},
+ {L"К", L"K"}, {L"Л", L"L"}, {L"М", L"M"},
+ {L"Н", L"N"}, {L"О", L"O"}, {L"П", L"P"},
+ {L"Р", L"R"}, {L"С", L"S"}, {L"Т", L"T"},
+ {L"У", L"U"}, {L"Ф", L"F"}, {L"Х", L"X"},
+ {L"Ц", L"C"}, {L"Ч", L"Č"}, {L"Ш", L"Š"},
+ {L"Ю", L"Ju"}, {L"Я", L"Ja"},
+ // lowercase
+ {L"а", L"a"}, {L"б", L"b"}, {L"в", L"v"},
+ {L"д", L"d"}, {L"е", L"e"}, {L"ж", L"ž"},
+ {L"з", L"z"}, {L"і", L"i"}, {L"й", L"j"},
+ {L"к", L"k"}, {L"л", L"l"}, {L"м", L"m"},
+ {L"н", L"n"}, {L"о", L"o"}, {L"п", L"p"},
+ {L"р", L"r"}, {L"с", L"s"}, {L"т", L"t"},
+ {L"у", L"u"}, {L"ф", L"f"}, {L"х", L"x"},
+ {L"ц", L"c"}, {L"ч", L"č"}, {L"ш", L"š"},
+ {L"ю", L"ju"}, {L"я", L"ja"}
+ },
+ // Russian
+ {
+ // uppercase
+ {L"Г", L"G"}, {L"Ё", L"Ë"}, {L"И", L"I"},
+ {L"Ы", L"Y"}, {L"Щ", L"Šč"}, {L"Э", L"Ė"},
+ {L"Ѵ", L"Ü"}, {L"Ѳ", L"Ḟ"}, {L"Ѣ", L"Ě"},
+ // lowercase
+ {L"г", L"g"}, {L"ё", L"ë"}, {L"и", L"i"},
+ {L"ы", L"y"}, {L"щ", L"šč"}, {L"э", L"ė"},
+ {L"ѵ", L"ü"}, {L"ѳ", L"ḟ"}, {L"ѣ", L"ě"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Ukrainian
+ {
+ // uppercase
+ {L"Г", L"H"}, {L"Ґ", L"G"}, {L"И", L"Y"},
+ {L"Щ", L"Šč"}, {L"Є", L"Je"}, {L"Ї", L"Ï"},
+ // lowercase
+ {L"г", L"h"}, {L"ґ", L"g"}, {L"и", L"y"},
+ {L"щ", L"šč"}, {L"Є", L"je"}, {L"Ї", L"ï"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Belarusian
+ {
+ // uppercase
+ {L"Г", L"H"}, {L"Ё", L"E"}, {L"Ы", L"Y"},
+ {L"Щ", L"Šč"}, {L"Ў", L"Ŭ"}, {L"Э", L"Ė"},
+ // lowercase
+ {L"г", L"h"}, {L"ё", L"e"}, {L"ы", L"y"},
+ {L"щ", L"šč"}, {L"ў", L"ŭ"}, {L"э", L"ė"},
+ // yers
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"}
+ },
+ // Bulgarian
+ {
+ // uppercase
+ {L"Г", L"G"}, {L"Щ", L"Št"},
+ {L"Ѫ", L"Ȧ"}, {L"Ъ", L"Ȧ"},
+ // lowercase
+ {L"г", L"g"}, {L"щ", L"št"},
+ {L"ѫ", L"ȧ"}, {L"ъ", L"ȧ"}
+ },
+ // (Old) Church Slavonic
+ {
+ // uppercase
+ {L"Щ", L"Šč"}, {L"Ѵ", L"I"}, {L"Ѳ", L"Ḟ"},
+ {L"Ѣ", L"Ě"}, {L"Ѧ", L"Ę"}, {L"Ѫ", L"Ǫ"},
+ {L"Ѩ", L"ję"}, {L"Ѭ", L"jǫ"}, {L"Ѿ", L"Ot"},
+ {L"Ѡ", L"Ô"}, {L"Ї", L"Ï"}, {L"Є", L"Ie"},
+ {L"Ѕ", L"Dz"}, {L"Ѥ", L"Je"}, {L"Ѱ", L"Ps"},
+ {L"Ѯ", L"Ks"}, {L"Ґ", L"G"}, {L"Ꙋ", L"Ou"},
+ {L"Ѹ", L"Ou"}, {L"Ѷ", L"I"},
+ // lowercase
+ {L"щ", L"šč"}, {L"ѵ", L"i"}, {L"ѳ", L"ḟ"},
+ {L"ѣ", L"e"}, {L"ѧ", L"ę"}, {L"ѫ", L"ǫ"},
+ {L"ѩ", L"ię"}, {L"ѭ", L"jǫ"}, {L"ѿ", L"ot"},
+ {L"ѡ", L"ô"}, {L"ї", L"ï"}, {L"є", L"ie"},
+ {L"ѕ", L"dz"}, {L"ѥ", L"je"}, {L"ѱ", L"ps"},
+ {L"ѯ", L"ks"}, {L"ґ", L"g"}, {L"ꙋ", L"ou"},
+ {L"ѹ", L"ou"}, {L"ѷ", L"ẏ"}
+ // yers are not transliterated
+ }
+};
+
+map<wxString, wxString> iso9_new = {
+ {L"А", L"A"}, {L"а", L"a"},
+ {L"Б", L"B"}, {L"б", L"b"},
+ {L"В", L"V"}, {L"в", L"v"},
+ {L"Г", L"G"}, {L"г", L"g"},
+ {L"Ґ", L"G̀"}, {L"ґ", L"g̀"},
+ {L"Д", L"D"}, {L"д", L"d"},
+ {L"Ѓ", L"Ǵ"}, {L"ѓ", L"ǵ"},
+ {L"Ђ", L"Đ"}, {L"ђ", L"đ"},
+ {L"Е", L"E"}, {L"е", L"e"},
+ {L"Ё", L"Ë"}, {L"ё", L"ë"},
+ {L"Є", L"Ê"}, {L"є", L"ê"},
+ {L"Ж", L"Ž"}, {L"ж", L"ž"},
+ {L"З", L"Z"}, {L"з", L"z"},
+ {L"Ѕ", L"Ẑ"}, {L"ѕ", L"ẑ"},
+ {L"И", L"I"}, {L"и", L"i"},
+ {L"I", L"Ì"}, {L"і", L"ì"},
+ {L"Ї", L"Ï"}, {L"ї", L"ï"},
+ {L"Й", L"J"}, {L"й", L"j"},
+ {L"Ј", L"J̌"}, {L"ј", L"ǰ"},
+ {L"К", L"K"}, {L"к", L"k"},
+ {L"Л", L"L"}, {L"л", L"l"},
+ {L"Љ", L"L̂"}, {L"љ", L"l̂"},
+ {L"М", L"M"}, {L"м", L"m"},
+ {L"Н", L"N"}, {L"н", L"n"},
+ {L"\u040a", L"N̂"}, {L"њ", L"n"},
+ {L"О", L"O"}, {L"о", L"o"},
+ {L"П", L"P"}, {L"п", L"p"},
+ {L"Р", L"R"}, {L"р", L"r"},
+ {L"С", L"S"}, {L"с", L"s"},
+ {L"Т", L"T"}, {L"т", L"t"},
+ {L"Ќ", L"Ḱ"}, {L"ќ", L"ḱ"},
+ {L"Ћ", L"Ć"}, {L"ћ", L"ć"},
+ {L"У", L"U"}, {L"у", L"u"},
+ {L"Ў", L"Ŭ"}, {L"ў", L"ŭ"},
+ {L"Ф", L"F"}, {L"ф", L"f"},
+ {L"Х", L"H"}, {L"х", L"h"},
+ {L"Ц", L"C"}, {L"ц", L"c"},
+ {L"Ч", L"Č"}, {L"ч", L"č"},
+ {L"Џ", L"D̂"}, {L"џ", L"d̂"},
+ {L"Ш", L"Š"}, {L"ш", L"š"},
+ {L"Щ", L"Ŝ"}, {L"щ", L"ŝ"},
+ {L"Ъ", L"ʺ"}, {L"ъ", L"ʺ"},
+ {L"Ы", L"Y"}, {L"ы", L"y"},
+ {L"Ь", L"ʹ"}, {L"ь", L"ʹ"},
+ {L"Ѣ", L"Ě"}, {L"ѣ", L"ě"},
+ {L"Э", L"È"}, {L"э", L"è"},
+ {L"Ю", L"Û"}, {L"ю", L"û"},
+ {L"Я", L"Â"}, {L"я", L"â"},
+ {L"Ѫ", L"Ǎ"}, {L"ѫ", L"ǎ"},
+ {L"Ѳ", L"F̀"}, {L"ѳ", L"f̀"},
+ {L"Ѵ", L"Ỳ"}, {L"ѵ", L"ỳ"}
+};
+
+map<wxString, wxString> srb_nat = {
+ // uppercase
+ {L"А", L"A"}, {L"Б", L"B"}, {L"В", L"V"},
+ {L"Г", L"G"}, {L"Д", L"D"}, {L"Ђ", L"Đ"},
+ {L"Е", L"E"}, {L"Ж", L"Ž"}, {L"З", L"Z"},
+ {L"И", L"I"}, {L"Ј", L"J"}, {L"К", L"K"},
+ {L"Л", L"L"}, {L"М", L"M"}, {L"Н", L"N"},
+ {L"\u0409", L"Lj"}, {L"\u040a", L"Nj"},
+ {L"О", L"O"}, {L"П", L"P"}, {L"Р", L"R"},
+ {L"С", L"S"}, {L"Т", L"T"}, {L"Ћ", L"Ć"},
+ {L"У", L"U"}, {L"Ф", L"F"}, {L"Х", L"H"},
+ {L"Ц", L"C"}, {L"Ч", L"Č"},
+ {L"Џ", L"Dž"}, {L"Ш", L"Š"},
+ // lowercase
+ {L"а", L"a"}, {L"б", L"b"}, {L"в", L"v"},
+ {L"г", L"g"}, {L"д", L"d"}, {L"ђ", L"đ"},
+ {L"е", L"e"}, {L"ж", L"ž"}, {L"з", L"z"},
+ {L"и", L"i"}, {L"ј", L"j"}, {L"к", L"k"},
+ {L"л", L"l"}, {L"м", L"m"}, {L"н", L"n"},
+ {L"\u0459", L"lj"}, {L"\u045a", L"nj"},
+ {L"о", L"o"}, {L"п", L"p"}, {L"р", L"r"},
+ {L"с", L"s"}, {L"т", L"t"}, {L"ћ", L"ć"},
+ {L"у", L"u"}, {L"ф", L"f"}, {L"х", L"h"},
+ {L"ц", L"c"}, {L"ч", L"č"},
+ {L"џ", L"dž"}, {L"ш", L"š"}
+};