From 6d3abfb6141b6ee56a05d5968364a53bc255738a Mon Sep 17 00:00:00 2001
From: Vitaly Livshic <shiche@yandex.ru>
Date: Fri, 21 Jul 2017 07:56:14 +0300
Subject: [PATCH] Russian translations improvement

---
 src/dlangide/ui/settings.d | 87 +++++++++++++++++++-------------------
 views/res/i18n/en.ini      | 36 ++++++++++++++++
 views/res/i18n/ru.ini      | 63 ++++++++++++++++++++++++---
 3 files changed, 137 insertions(+), 49 deletions(-)

diff --git a/src/dlangide/ui/settings.d b/src/dlangide/ui/settings.d
index 2c5448b..930b47d 100644
--- a/src/dlangide/ui/settings.d
+++ b/src/dlangide/ui/settings.d
@@ -14,20 +14,21 @@ public import dlangide.workspace.workspacesettings;
 SettingsPage createSettingsPages() {
     SettingsPage res = new SettingsPage("", UIString(""d));
 
-    SettingsPage ui = res.addChild("interface", UIString("Interface"d));
-    ui.addStringComboBox("interface/theme", UIString("Theme"d), [
-            StringListValue("ide_theme_default", "Default"d), 
-            StringListValue("ide_theme_dark", "Dark"d)]);
-    ui.addStringComboBox("interface/language", UIString("Language"d), [
-            StringListValue("en", "English"d), 
-            StringListValue("ru", "Russian"d), 
-            StringListValue("es", "Spanish"d),
-	    StringListValue("cs", "Čeština"d)]);
+    SettingsPage ui = res.addChild("interface", UIString("OPTION_INTERFACE"c));
+    ui.addStringComboBox("interface/theme", UIString("OPTION_THEME"c), [
+            StringListValue("ide_theme_default", "OPTION_DEFAULT"c), 
+            StringListValue("ide_theme_dark", "OPTION_DARK"c)]);
+    ui.addStringComboBox("interface/language", UIString("OPTION_LANGUAGE"c), [
+            StringListValue("en", "MENU_VIEW_LANGUAGE_EN"c), 
+            StringListValue("ru", "MENU_VIEW_LANGUAGE_RU"c), 
+            StringListValue("es", "MENU_VIEW_LANGUAGE_ES"c),
+	    StringListValue("cs", "MENU_VIEW_LANGUAGE_CS"c)]);
 
-    ui.addIntComboBox("interface/hintingMode", UIString("Font hinting mode"d), [StringListValue(0, "Normal"d), StringListValue(1, "Force Auto Hint"d), 
-                StringListValue(2, "Disabled"d), StringListValue(3, "Light"d)]);
-    ui.addIntComboBox("interface/minAntialiasedFontSize", UIString("Minimum font size for antialiasing"d), 
-                      [StringListValue(0, "Always ON"d), 
+    ui.addIntComboBox("interface/hintingMode", UIString("OPTION_FONT_HINTING"c), [StringListValue(0, "OPTION_FONT_HINTING_NORMAL"c), 
+                StringListValue(1, "OPTION_FONT_HINTING_FORCE"c), 
+                StringListValue(2, "OPTION_FONT_HINTING_DISABLED"c), StringListValue(3, "OPTION_FONT_HINTING_LIGHT"c)]);
+    ui.addIntComboBox("interface/minAntialiasedFontSize", UIString("OPTION_FONT_ANTIALIASING"c), 
+                      [StringListValue(0, "OPTION_FONT_ANTIALIASING_ALWAYS_ON"c), 
                       StringListValue(12, "12"d), 
                       StringListValue(14, "14"d), 
                       StringListValue(16, "16"d), 
@@ -35,8 +36,8 @@ SettingsPage createSettingsPages() {
                       StringListValue(24, "24"d), 
                       StringListValue(32, "32"d), 
                       StringListValue(48, "48"d), 
-                      StringListValue(255, "Always OFF"d)]);
-    ui.addFloatComboBox("interface/fontGamma", UIString("Font gamma"d), 
+                      StringListValue(255, "OPTION_FONT_ANTIALIASING_ALWAYS_OFF"c)]);
+    ui.addFloatComboBox("interface/fontGamma", UIString("OPTION_FONT_GAMMA"c), 
                    [
                     StringListValue(500,  "0.5   "d),
                     StringListValue(600,  "0.6   "d),
@@ -57,12 +58,12 @@ SettingsPage createSettingsPages() {
                     StringListValue(1700, "1.7   "d), 
                     StringListValue(2000, "2.0   "d)]);
 
-    SettingsPage ed = res.addChild("editors", UIString("Editors"d));
-    SettingsPage texted = ed.addChild("editors/textEditor", UIString("Text Editors"d));
+    SettingsPage ed = res.addChild("editors", UIString("OPTION_EDITORS"c));
+    SettingsPage texted = ed.addChild("editors/textEditor", UIString("OPTION_TEXT_EDITORS"c));
 
     // font faces
     StringListValue[] faces;
-    faces ~= StringListValue("Default", "Default"d);
+    faces ~= StringListValue("Default", "OPTION_DEFAULT"c);
     import dlangui.graphics.fonts;
     import std.utf : toUTF32;
     FontFaceProps[] allFaces = FontManager.instance.getFaces();
@@ -89,45 +90,45 @@ SettingsPage createSettingsPages() {
         else
             faces ~= StringListValue(face.face, toUTF32(face.face));
     }
-    texted.addStringComboBox("editors/textEditor/fontFace", UIString("Font face"d), faces);
+    texted.addStringComboBox("editors/textEditor/fontFace", UIString("OPTION_FONT_FACE"c), faces);
 
-    texted.addNumberEdit("editors/textEditor/tabSize", UIString("Tab size"d), 1, 16, 4);
-    texted.addCheckbox("editors/textEditor/useSpacesForTabs", UIString("Use spaces for tabs"d));
-    texted.addCheckbox("editors/textEditor/smartIndents", UIString("Smart indents"d));
-    texted.addCheckbox("editors/textEditor/smartIndentsAfterPaste", UIString("Smart indent after paste"d));
-    texted.addCheckbox("editors/textEditor/showWhiteSpaceMarks", UIString("Show white space marks"d));
-    texted.addCheckbox("editors/textEditor/showTabPositionMarks", UIString("Show tab position marks"d));
+    texted.addNumberEdit("editors/textEditor/tabSize", UIString("OPTION_TAB"c), 1, 16, 4);
+    texted.addCheckbox("editors/textEditor/useSpacesForTabs", UIString("OPTION_USE_SPACES"c));
+    texted.addCheckbox("editors/textEditor/smartIndents", UIString("OPTION_SMART_INDENTS"c));
+    texted.addCheckbox("editors/textEditor/smartIndentsAfterPaste", UIString("OPTION_SMART_INDENTS_PASTE"c));
+    texted.addCheckbox("editors/textEditor/showWhiteSpaceMarks", UIString("OPTION_SHOW_SPACES"c));
+    texted.addCheckbox("editors/textEditor/showTabPositionMarks", UIString("OPTION_SHOW_TABS"c));
 
 
     SettingsPage dlang = res.addChild("dlang", UIString("D"d));
     SettingsPage dub = dlang.addChild("dlang/dub", UIString("DUB"d));
-    dub.addExecutableFileNameEdit("dlang/dub/executable", UIString("DUB executable"d), "dub");
-    dub.addStringEdit("dlang/dub/additional_params", UIString("DUB additional params"d), "");
+    dub.addExecutableFileNameEdit("dlang/dub/executable", UIString("OPTION_DUB_EXECUTABLE"c), "dub");
+    dub.addStringEdit("dlang/dub/additional_params", UIString("OPTION_DUB_ADDITIONAL_PARAMS"c), "");
     SettingsPage rdmd = dlang.addChild("dlang/rdmd", UIString("rdmd"d));
-    rdmd.addExecutableFileNameEdit("dlang/rdmd/executable", UIString("rdmd executable"d), "rdmd");
-    rdmd.addStringEdit("dlang/rdmd/additional_params", UIString("rdmd additional params"d), "");
-    SettingsPage ddebug = dlang.addChild("dlang/debugger", UIString("Debugger"d));
+    rdmd.addExecutableFileNameEdit("dlang/rdmd/executable", UIString("OPTION_RDMD_EXECUTABLE"c), "rdmd");
+    rdmd.addStringEdit("dlang/rdmd/additional_params", UIString("OPTION_RDMD_ADDITIONAL_PARAMS"c), "");
+    SettingsPage ddebug = dlang.addChild("dlang/debugger", UIString("OPTION_DEBUGGER"c));
     version (Windows) {
-        ddebug.addExecutableFileNameEdit("dlang/debugger/executable", UIString("Debugger executable"d), "gdb");
+        ddebug.addExecutableFileNameEdit("dlang/debugger/executable", UIString("OPTION_DEBUGGER_EXECUTABLE"c), "gdb");
     } else {
-        ddebug.addExecutableFileNameEdit("dlang/debugger/executable", UIString("Debugger executable"d), "mago-mi");
+        ddebug.addExecutableFileNameEdit("dlang/debugger/executable", UIString("OPTION_DEBUGGER_EXECUTABLE"c), "mago-mi");
     }
-    SettingsPage terminal = dlang.addChild("dlang/terminal", UIString("Terminal"d));
-    terminal.addExecutableFileNameEdit("dlang/terminal/executable", UIString("Terminal executable"d), "xterm");
+    SettingsPage terminal = dlang.addChild("dlang/terminal", UIString("OPTION_TERMINAL"c));
+    terminal.addExecutableFileNameEdit("dlang/terminal/executable", UIString("OPTION_TERMINAL_EXECUTABLE"c), "xterm");
 
-    SettingsPage toolchains = dlang.addChild("dlang/toolchains", UIString("Toolchains"d));
+    SettingsPage toolchains = dlang.addChild("dlang/toolchains", UIString("OPTION_TOOLCHANS"c));
     SettingsPage dmdtoolchain = toolchains.addChild("dlang/toolchains/dmd", UIString("DMD"d));
-    dmdtoolchain.addExecutableFileNameEdit("dlang/toolchains/dmd/executable", UIString("DMD executable"d), "dmd");
-    dmdtoolchain.addStringEdit("dlang/toolchains/dmd/dub_additional_params", UIString("DUB additional params"d), "");
+    dmdtoolchain.addExecutableFileNameEdit("dlang/toolchains/dmd/executable", UIString("OPTION_DMD_EXECUTABLE"c), "dmd");
+    dmdtoolchain.addStringEdit("dlang/toolchains/dmd/dub_additional_params", UIString("OPTION_DUB_ADDITIONAL_PARAMS"c), "");
     SettingsPage ldctoolchain = toolchains.addChild("dlang/toolchains/ldc", UIString("LDC"d));
-    ldctoolchain.addExecutableFileNameEdit("dlang/toolchains/ldc/executable", UIString("LDC2 executable"d), "ldc2");
-    ldctoolchain.addStringEdit("dlang/toolchains/ldc/dub_additional_params", UIString("DUB additional params"d), "");
+    ldctoolchain.addExecutableFileNameEdit("dlang/toolchains/ldc/executable", UIString("OPTION_LDC2_EXECUTABLE"c), "ldc2");
+    ldctoolchain.addStringEdit("dlang/toolchains/ldc/dub_additional_params", UIString("OPTION_DUB_ADDITIONAL_PARAMS"c), "");
     SettingsPage ldmdtoolchain = toolchains.addChild("dlang/toolchains/ldmd", UIString("LDMD"d));
-    ldmdtoolchain.addExecutableFileNameEdit("dlang/toolchains/ldmd/executable", UIString("LDMD2 executable"d), "ldmd2");
-    ldmdtoolchain.addStringEdit("dlang/toolchains/ldmd/dub_additional_params", UIString("DUB additional params"d), "");
+    ldmdtoolchain.addExecutableFileNameEdit("dlang/toolchains/ldmd/executable", UIString("OPTION_LDMD2_EXECUTABLE"c), "ldmd2");
+    ldmdtoolchain.addStringEdit("dlang/toolchains/ldmd/dub_additional_params", UIString("OPTION_DUB_ADDITIONAL_PARAMS"c), "");
     SettingsPage gdctoolchain = toolchains.addChild("dlang/toolchains/gdc", UIString("GDC"d));
-    gdctoolchain.addExecutableFileNameEdit("dlang/toolchains/gdc/executable", UIString("GDC executable"d), "gdc");
-    gdctoolchain.addStringEdit("dlang/toolchains/gdc/dub_additional_params", UIString("DUB additional params"d), "");
+    gdctoolchain.addExecutableFileNameEdit("dlang/toolchains/gdc/executable", UIString("OPTION_GDC_EXECUTABLE"c), "gdc");
+    gdctoolchain.addStringEdit("dlang/toolchains/gdc/dub_additional_params", UIString("OPTION_DUB_ADDITIONAL_PARAMS"c), "");
 
     return res;
 }
diff --git a/views/res/i18n/en.ini b/views/res/i18n/en.ini
index 03130fc..72673dd 100644
--- a/views/res/i18n/en.ini
+++ b/views/res/i18n/en.ini
@@ -97,3 +97,39 @@ MENU_PROJECT_FOLDER_RENAME_ITEM=Rename...
 MENU_PROJECT_FOLDER_REFRESH=Refresh
 MENU_PROJECT_REVEAL_IN_EXPLORER=Reveal in Explorer
 
+OPTION_DARK=Dark
+OPTION_DEBUGGER=Debugger
+OPTION_DEBUGGER_EXECUTABLE=Debugger executable
+OPTION_DEFAULT=Default
+OPTION_DMD_EXECUTABLE=DMD executable
+OPTION_DUB_ADDITIONAL_PARAMS=DUB additional params
+OPTION_DUB_EXECUTABLE=DUB executable
+OPTION_EDITORS=Editors
+OPTION_INTERFACE=Interface
+OPTION_FONT_ANTIALIASING=Minimum font size for antialiasing
+OPTION_FONT_ANTIALIASING_ALWAYS_OFF=Always OFF
+OPTION_FONT_ANTIALIASING_ALWAYS_ON=Always ON
+OPTION_FONT_HINTING=Font hinting mode
+OPTION_FONT_HINTING_DISABLED=Disabled
+OPTION_FONT_HINTING_FORCE=Force Auto Hint
+OPTION_FONT_HINTING_NORMAL=Normal
+OPTION_FONT_HINTING_LIGHT=LIGHT
+OPTION_FONT_FACE=Font face
+OPTION_FONT_GAMMA=Font gamma
+OPTION_GDC_EXECUTABLE=GDC executable
+OPTION_LANGUAGE=Language
+OPTION_LDC2_EXECUTABLE=LDC2 executable
+OPTION_LDMD2_EXECUTABLE=LDMD2 executable
+OPTION_RDMD_ADDITIONAL_PARAMS=rdmd additional params
+OPTION_RDMD_EXECUTABLE=rdmd executable
+OPTION_SHOW_SPACES=Show white space marks
+OPTION_SHOW_TABS=Show tab position marks
+OPTION_SMART_INDENTS=Smart indents
+OPTION_SMART_INDENTS_PASTE=Smart indent after paste
+OPTION_TAB=Tab size
+OPTION_TEXT_EDITORS=Text Editors
+OPTION_TERMINAL=Terminal
+OPTION_TERMINAL_EXECUTABLE=Terminal executable
+OPTION_THEME=Theme
+OPTION_TOOLCHANS=Toolchains
+OPTION_USE_SPACES=Use spaces for tabs
diff --git a/views/res/i18n/ru.ini b/views/res/i18n/ru.ini
index 3c98e7b..b735437 100644
--- a/views/res/i18n/ru.ini
+++ b/views/res/i18n/ru.ini
@@ -3,14 +3,14 @@ MENU_FILE=&Файл
 MENU_FILE_NEW=&Создать
 MENU_FILE_NEW_SOURCE_FILE=Новый файл
 MENU_FILE_NEW_PROJECT=Новый проект
-MENU_FILE_NEW_WORKSPACE=Новый workspace
+MENU_FILE_NEW_WORKSPACE=Новый рабочее пространство
 MENU_FILE_OPEN=&Открыть файл
-MENU_FILE_OPEN_WORKSPACE=Открыть проект или workspace...
+MENU_FILE_OPEN_WORKSPACE=Открыть проект или рабочее пространство...
 MENU_FILE_OPEN_RECENT=Открыть недавние
 MENU_FILE_SAVE=&Сохранить файл
 MENU_FILE_SAVE_AS=&Сохранить файл как...
 MENU_FILE_SAVE_ALL=&Сохранить все
-MENU_FILE_WORKSPACE_CLOSE=Закрыть workspace
+MENU_FILE_WORKSPACE_CLOSE=Закрыть рабочее пространство
 MENU_FILE_EXIT=Вы&ход
 
 MENU_EDIT=&Правка
@@ -28,26 +28,41 @@ MENU_EDIT_PREFERENCES=&Настройки
 
 MENU_PROJECT=&Проект
 MENU_PROJECT_CONFIGURATIONS=Конфигурации проекта
+MENU_PROJECT_SET_AS_STARTUP=Установить как начальный проект
 MENU_PROJECT_SETTINGS=Свойства проекта
+MENU_PROJECT_REFRESH=Обновить элементы рабочего пространства
 MENU_PROJECT_UPDATE_DEPENDENCIES=Обновить зависимости
 
 MENU_NAVIGATE=&Навигация
 GO_TO_DEFINITION=Перейти к определению
+SHOW_COMPLETIONS=Автозавершение
 SHOW_DOC_COMMENTS=Показать документацию
 SHOW_PAREN_COMPLETION=Показать параметры вызова
 
 FIND_IN_FILES=Найти в файлах...
 
 MENU_BUILD=&Сборка
-MENU_BUILD_WORKSPACE_BUILD=Собрать workspace
-MENU_BUILD_WORKSPACE_REBUILD=Пересобрать workspace
-MENU_BUILD_WORKSPACE_CLEAN=Очистить workspace
+MENU_BUILD_WORKSPACE_BUILD=Собрать рабочее пространство
+MENU_BUILD_WORKSPACE_REBUILD=Пересобрать рабочее пространство
+MENU_BUILD_WORKSPACE_CLEAN=Очистить рабочее пространство
 MENU_BUILD_PROJECT_BUILD=Собрать проект
 MENU_BUILD_PROJECT_REBUILD=Пересобрать проект
 MENU_BUILD_PROJECT_CLEAN=Очистить проект
 MENU_BUILD_RUN_WITH_RDMD=Запустить с rdmd
 
 MENU_DEBUG=&Отладка
+MENU_DEBUG_START_DEBUGGING=&Начать отладку
+MENU_DEBUG_START_NO_DEBUGGING=&Запустить без отладки
+MENU_DEBUG_CONTINUE=Продолжить &выполнение
+MENU_DEBUG_STOP=&Останов
+MENU_DEBUG_PAUSE=Па&уза
+MENU_DEBUG_RESTART=&Перезагрузить
+MENU_DEBUG_STEP_INTO=В&ход внутрь
+MENU_DEBUG_STEP_OVER=Пере&шагнуть
+MENU_DEBUG_STEP_OUT=Вы&йти
+MENU_DEBUG_BREAKPOINT_TOGGLE=Переключить &точку останова
+MENU_DEBUG_BREAKPOINT_ENABLE=В&ключить точку останова
+MENU_DEBUG_BREAKPOINT_DISABLE=В&ыключить точку останова
 
 MENU_WINDOW=&Окно
 MENU_WINDOW_PREFERENCES=&Настройки
@@ -74,3 +89,39 @@ TAB_ANIMATION=Анимация
 TAB_TABLE_LAYOUT=Табличный layout
 TAB_EDITORS=Редакторы
 
+OPTION_DARK=Темная
+OPTION_DEBUGGER=Отладчик
+OPTION_DEBUGGER_EXECUTABLE=Исполняемый файл отладчика
+OPTION_DEFAULT=По умолчанию
+OPTION_DMD_EXECUTABLE=Исполняемый файл DMD
+OPTION_DUB_ADDITIONAL_PARAMS=Доп.параметры DUB
+OPTION_DUB_EXECUTABLE=Исполняемый файл DUB
+OPTION_EDITORS=Редакторы
+OPTION_INTERFACE=Внешний вид
+OPTION_FONT_ANTIALIASING=Минимальный размер шрифта для сглаживания
+OPTION_FONT_ANTIALIASING_ALWAYS_OFF=Всегда выключено
+OPTION_FONT_ANTIALIASING_ALWAYS_ON=Всегда включено
+OPTION_FONT_HINTING=Читаемость шрифтов
+OPTION_FONT_HINTING_DISABLED=Отключено
+OPTION_FONT_HINTING_FORCE=Включить автомат.улучшение
+OPTION_FONT_HINTING_LIGHT=Частично
+OPTION_FONT_HINTING_NORMAL=Нормально
+OPTION_FONT_FACE=Имя шрифта
+OPTION_FONT_GAMMA=Контрастность шрифта
+OPTION_GDC_EXECUTABLE=Исполняемый файл GDC
+OPTION_LANGUAGE=Язык
+OPTION_LDC2_EXECUTABLE=Исполняемый файл LDC2
+OPTION_LDMD2_EXECUTABLE=Исполняемый файл LDMD2
+OPTION_RDMD_ADDITIONAL_PARAMS=Доп.параметры rdmd
+OPTION_RDMD_EXECUTABLE=Исполняемый файл rdmd
+OPTION_SHOW_SPACES=Показать пробелы
+OPTION_SHOW_TABS=Показать табуляцию
+OPTION_SMART_INDENTS=Умные отступы
+OPTION_SMART_INDENTS_PASTE=Умные отступы после вставки
+OPTION_TAB=Размер Tab
+OPTION_TEXT_EDITORS=Текстовые редакторы
+OPTION_TERMINAL=Командная строка
+OPTION_TERMINAL_EXECUTABLE=Исполняемый файл терминала
+OPTION_THEME=Тема оформления
+OPTION_TOOLCHANS=Наборы инструментов
+OPTION_USE_SPACES=Использовать пробелы вместо табуляции