diff --git a/XaoS.qrc b/XaoS.qrc
index 4a964049..d6ef19ff 100644
--- a/XaoS.qrc
+++ b/XaoS.qrc
@@ -4,10 +4,11 @@
i18n/XaoS_de.qm
i18n/XaoS_es.qm
i18n/XaoS_fr.qm
+ i18n/XaoS_he.qm
i18n/XaoS_hi.qm
i18n/XaoS_hu.qm
- i18n/XaoS_it.qm
i18n/XaoS_is.qm
+ i18n/XaoS_it.qm
i18n/XaoS_pt.qm
i18n/XaoS_ro.qm
i18n/XaoS_ru.qm
diff --git a/i18n/XaoS_he.ts b/i18n/XaoS_he.ts
new file mode 100644
index 00000000..003cb974
--- /dev/null
+++ b/i18n/XaoS_he.ts
@@ -0,0 +1,1819 @@
+
+
+
+
+ Dialog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Error
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Menu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/i18n/i18n.pri b/i18n/i18n.pri
index e6c92c7b..3be1f22c 100644
--- a/i18n/i18n.pri
+++ b/i18n/i18n.pri
@@ -3,6 +3,7 @@ TRANSLATIONS = \
$$PWD/XaoS_de.ts \
$$PWD/XaoS_es.ts \
$$PWD/XaoS_fr.ts \
+ $$PWD/XaoS_he.ts \
$$PWD/XaoS_hi.ts \
$$PWD/XaoS_hu.ts \
$$PWD/XaoS_is.ts \
diff --git a/src/include/ui_helper.h b/src/include/ui_helper.h
index 663a541e..c6b6e5d2 100644
--- a/src/include/ui_helper.h
+++ b/src/include/ui_helper.h
@@ -1,4 +1,4 @@
-#ifndef UI_HELPER_H
+#ifndef UI_HELPER_H
#define UI_HELPER_H
#include "timers.h"
#include "xio.h"
@@ -313,17 +313,18 @@ typedef struct uih_context uih_context;
#define UIH_LANG_EN 2
#define UIH_LANG_FR 3
#define UIH_LANG_DE 4
-#define UIH_LANG_HI 5
-#define UIH_LANG_HU 6
-#define UIH_LANG_IS 7
-#define UIH_LANG_IT 8
-#define UIH_LANG_PT 9
-#define UIH_LANG_RO 10
-#define UIH_LANG_RU 11
-#define UIH_LANG_RS 12
-#define UIH_LANG_ES 13
-#define UIH_LANG_SV 14
-#define UIH_LANG_VI 15
+#define UIH_LANG_HE 5
+#define UIH_LANG_HI 6
+#define UIH_LANG_HU 7
+#define UIH_LANG_IS 8
+#define UIH_LANG_IT 9
+#define UIH_LANG_PT 10
+#define UIH_LANG_RO 11
+#define UIH_LANG_RU 12
+#define UIH_LANG_RS 13
+#define UIH_LANG_ES 14
+#define UIH_LANG_SV 15
+#define UIH_LANG_VI 16
#define RANDOM_PALETTE_SIZE 1
#define FULLSCREEN 2
diff --git a/src/ui/main.cpp b/src/ui/main.cpp
index 0334b422..daa239ec 100644
--- a/src/ui/main.cpp
+++ b/src/ui/main.cpp
@@ -1,4 +1,4 @@
-/*
+/*
* XaoS, a fast portable realtime fractal zoomer
* Copyright (C) 1996 by
*
@@ -394,7 +394,7 @@ static int ui_fullscreenselected(struct uih_context *uih)
#endif
/* WARNING: Increase this number in case there are new menu items added. */
-#define MAX_MENUITEMS_I18N 33
+#define MAX_MENUITEMS_I18N 34
/* These variables must be global: */
static menuitem *menuitems;
static menuitem menuitems_i18n[MAX_MENUITEMS_I18N];
@@ -415,10 +415,10 @@ char languageSetting[6] = "";
bool languageSysDefault = true;
// please keep the languages in the same order
const char *languages1[] = {
- "__", "cs", "en", "fr", "de", "hi", "hu", "is", "it", "pt", "ro", "ru", "rs", "es", "sv", "vi"
+ "__", "cs", "en", "fr", "de", "he", "hi", "hu", "is", "it", "pt", "ro", "ru", "rs", "es", "sv", "vi"
};
const char *languages2[] = {
- "_____", "cs_CZ", "en_US", "fr_FR", "de_DE", "hi_HI", "hu_HU", "is_IS", "it_IT", "pt_PT", "ro_RO", "ru_RU", "rs_RS", "es_ES", "sv_SV", "vi_VN"
+ "_____", "cs_CZ", "en_US", "fr_FR", "de_DE", "he_IL", "hi_HI", "hu_HU", "is_IS", "it_IT", "pt_PT", "ro_RO", "ru_RU", "rs_RS", "es_ES", "sv_SV", "vi_VN"
};
const char *lang1(int i) {
@@ -496,6 +496,8 @@ static void ui_registermenus_i18n(void)
UIH_LANG_FR, ui_languageselected);
MENUINTRB_I("setlang", NULL, "German", "de", UI, uih_setlanguage,
UIH_LANG_DE, ui_languageselected);
+ MENUINTRB_I("setlang", NULL, "Hebrew", "he", UI, uih_setlanguage,
+ UIH_LANG_HE, ui_languageselected);
MENUINTRB_I("setlang", NULL, "Hindi", "hi", UI, uih_setlanguage,
UIH_LANG_HI, ui_languageselected);
MENUINTRB_I("setlang", NULL, "Hungarian", "hu", UI, uih_setlanguage,