while (ch == ' ' || ch == '=' || ch == ':' || ch == '\t') ch = get(cl);
if (ch == NULLCHAR || ch == '\n') {
- ExitArgError("No value provided for argument", argName, TRUE);
+ ExitArgError(_("No value provided for argument"), argName, TRUE);
}
q = argValue;
if (ch == '{') {
typedef enum { CheckBox, ComboBox, TextBox, Button, Spin, ResetButton, SaveButton,
FileName, PathName, Slider, Message, Fractional, Label, Break, EndMark } Control;
+/* Flags Option.min used for ComboBox: */
+#define COMBO_CALLBACK (1 << 0)
+#define NO_GETTEXT (1 << 1)
+
+/* Flags for Option.min used for Button, SaveButton, EndMark: */
+#define SAME_ROW (1 << 0)
+#define NO_OK (1 << 1)
+
typedef struct _OPT { // [HGM] options: descriptor of UCI-style option
int value; // current setting, starts as default
- int min;
+ int min; // Also used for flags
int max;
void *handle; // for use by front end
void *target; // for use by front end
SFprepareToReturn();
return stderr;
}
- if ((*name_return)[strlen(*name_return)-1] != '/' && // [HGM] refuse directories
+ if ((!(*name_return)[0] || (*name_return)[strlen(*name_return)-1] != '/') && // [HGM] refuse directories
(fp = SFopenFile(*name_return, mode, prompt, failed))) {
SFprepareToReturn();
return fp;
# Yuri Chornoivan <yurchor@ukr.net>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: GNU xboard 4.6.0.20111101\n"
+"Project-Id-Version: GNU xboard 4.6.0.20111203\n"
"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
"POT-Creation-Date: 2011-12-03 08:20-0800\n"
-"PO-Revision-Date: 2011-11-03 14:56+0200\n"
+"PO-Revision-Date: 2011-12-08 18:41+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Language: uk\n"
#: backend.c:1072
#, c-format
msgid "Variant %s supported only in ICS mode"
-msgstr ""
+msgstr "Підтримку варіанта %s передбачено лише у режимі ICS"
#: backend.c:1090
#, c-format
#: backend.c:1377
msgid "Pick new game"
-msgstr ""
+msgstr "Виберіть нову гру"
#: backend.c:1442
msgid ""
#: backend.c:1456
msgid "Can't have a match with no chess programs"
-msgstr ""
+msgstr "Не можна розпочати матч, якщо не встановлено шахових програм"
#: backend.c:1490
#, c-format
#: backend.c:1641
msgid "TwoMachines mode requires a chess engine"
-msgstr ""
-"Режимом гри між двома комп’ютерами можна скористатися, лише якщо встановлено "
-"шаховий рушій"
+msgstr "Режимом гри між двома комп’ютерами можна скористатися, лише якщо встановлено шаховий рушій"
#: backend.c:1646
msgid "TwoMachines mode does not work with ICS mode"
#: backend.c:2159
#, c-format
msgid "recognized '%s' (%d) as variant %s\n"
-msgstr ""
+msgstr "розпізнано «%s» (%d) як варіант %s\n"
#: backend.c:2224 xboard.c:7310
msgid "Error writing to display"
#: backend.c:3489
msgid "Error gathering move list: two headers"
-msgstr ""
+msgstr "Помилка під час збирання списку ходів: два заголовки"
#: backend.c:3503
#, c-format
#: backend.c:3536
msgid "Error gathering move list: nested"
-msgstr ""
+msgstr "Помилка під час збирання списку ходів: вкладеність"
#: backend.c:3639 backend.c:6667 backend.c:11582 backend.c:13197
#: backend.c:13274 backend.c:13336
#, c-format
msgid "%s vs. %s"
-msgstr ""
+msgstr "%s проти %s"
#: backend.c:3768
msgid "Illegal move (rejected by ICS)"
#: backend.c:4057
#, c-format
msgid "%s [%s] vs. %s [%s]"
-msgstr ""
+msgstr "%s [%s] проти %s [%s]"
#: backend.c:4106
msgid "Connection closed by ICS"
#: backend.c:4192 backend.c:9437
msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr ""
-"Гра є занадто довгою. Збільшіть значення MAX_MOVES і перезберіть програму."
+msgstr "Гра є занадто довгою. Збільшіть значення MAX_MOVES і перезберіть програму."
#: backend.c:4286
msgid "Error gathering move list: extra board"
#: backend.c:4781
#, c-format
msgid "%s (%d) vs. %s (%d) {%d %d}"
-msgstr ""
+msgstr "%s (%d) проти %s (%d) {%d %d}"
#: backend.c:4785
#, c-format
msgid "%s (%d) vs. %s (%d) {%d %d %s}"
-msgstr ""
+msgstr "%s (%d) проти %s (%d) {%d %d %s}"
#: backend.c:4964
#, c-format
#: backend.c:5034
msgid "You cannot do this while you are playing or observing"
-msgstr ""
+msgstr "Ця дія неможлива у режимі гри або спостереження"
#: backend.c:5912
msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr ""
+msgstr "Повторно зберіть програму з підтримкою цих значень BOARD_RANKS і BOARD_FILES!"
#: backend.c:6264
msgid "You are playing Black"
#: backend.c:7924
#, c-format
msgid "Illegal move \"%s\" from %s machine"
-msgstr ""
+msgstr "Некоректний хід «%s» від комп’ютера %s"
#: backend.c:8149
msgid "Bad FEN received from engine"
#: backend.c:8359
#, c-format
msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr ""
-"Недозволений хід «%s» (у реєстрації ходу відмовлено шаховою програмою %s)"
+msgstr "Недозволений хід «%s» (у реєстрації ходу відмовлено шаховою програмою %s)"
#: backend.c:8384
#, c-format
msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr ""
+msgstr "Не вдалося запустити шахову програму %s %s на %s: %s\n"
#: backend.c:8405
#, c-format
"Machine offers a draw\n"
"Select Action / Draw to agree"
msgstr ""
+"Комп’ютером запропоновано нічию\n"
+"Скористайтеся пунктом меню «Дія->Нічия», щоб погодитися"
#: backend.c:8667
msgid "failed writing PV"
#: backend.c:8966
#, c-format
msgid "Ambiguous move in ICS output: \"%s\""
-msgstr ""
+msgstr "Неоднозначний хід у виведених ICS даних: «%s»"
#: backend.c:8976
#, c-format
#: backend.c:12900
#, c-format
msgid "Still need to make moves for both games\n"
-msgstr ""
+msgstr "Слід зробити ходити у обох іграх\n"
#: backend.c:12904
#, c-format
msgid "Still need to make moves for all %d games\n"
-msgstr ""
+msgstr "Слід зробити ходити у всіх %d іграх\n"
#: backend.c:12911
#, c-format
msgid "Still need to make a move for game %s\n"
-msgstr ""
+msgstr "Слід зробити хід у грі %s\n"
#: backend.c:12917
#, c-format
#: backend.c:12924
#, c-format
msgid "Still need to make moves for games %s\n"
-msgstr ""
+msgstr "Слід зробити ходи у іграх %s\n"
#: backend.c:13081
msgid "Edit comment"
#: backend.c:13319
#, c-format
msgid "%s vs. %s (%d/%d%s)"
-msgstr ""
+msgstr "%s проти %s (%d/%d%s)"
#: backend.c:13325 backend.c:13330
#, c-format
msgid "%s vs. %s (%d-%d-%d)"
-msgstr ""
+msgstr "%s проти %s (%d-%d-%d)"
#: backend.c:13365
#, c-format
#: backend.c:13998 backend.c:14024
msgid "There is no pending offer on this move"
-msgstr ""
+msgstr "У черзі немає пропозицій щодо цього ходу"
#: backend.c:14060 backend.c:14071
msgid "Your opponent is not out of time"
-msgstr ""
+msgstr "У вашого суперника ще залишився час"
#: backend.c:14137
msgid "You must make your move before offering a draw"
#: backend.c:14471
msgid "You can't revert while pausing"
-msgstr ""
+msgstr "Скасовувати ходи у призупиненій грі не можна"
#: backend.c:14525 backend.c:14532
msgid "It is your turn"
#: backend.c:15058
#, c-format
msgid "Error writing to %s chess program"
-msgstr ""
+msgstr "Помилка під час спроби запису даних до шахової програми %s"
#: backend.c:15061 backend.c:15097
#, c-format
msgid "%s program exits in draw position (%s)"
-msgstr ""
+msgstr "Програма %s завершила роботу у нічийній позиції (%s)"
#: backend.c:15093
#, c-format
msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr ""
+msgstr "Помилка: шахова програма %s (%s) несподівано завершила роботу"
#: backend.c:15110
#, c-format
msgid "Error reading from %s chess program (%s)"
-msgstr ""
+msgstr "Помилка під час спроби читання даних з шахової програми %s (%s)"
#: backend.c:15523
#, c-format
msgid "%s engine has too many options\n"
-msgstr ""
+msgstr "Для рушія %s передбачено занадто багато параметрів\n"
#: backend.c:15676
msgid "Displayed move is not current"
#: backend.c:15814 backend.c:15836
msgid "Both flags fell"
-msgstr ""
+msgstr "Обидва прапорці впали"
#: backend.c:15816
msgid "White's flag fell"
-msgstr ""
+msgstr "Прапорець білих впав"
#: backend.c:15838
msgid "Black's flag fell"
-msgstr ""
+msgstr "Прапорець чорних впав"
#: backend.c:15972
msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr ""
+msgstr "Коригування годинника у режимі автоматичних прапорців заборонене"
#: backend.c:16782
msgid "Bad FEN position in clipboard"
#: book.c:512 book.c:686
msgid "Polyglot book not valid"
-msgstr ""
+msgstr "Некоректна бібліотека позицій"
#: book.c:572
msgid "Book Fault"
-msgstr ""
+msgstr "Помилка бібліотеки позицій"
#: book.c:689
msgid "Hash keys are different"
-msgstr ""
+msgstr "Ключі хешів не збігаються"
#: engineoutput.c:97
-#, fuzzy, c-format
+#, c-format
msgid "Engine Output"
msgstr "Вивід рушія"
#: filebrowser/selfile.c:301
-#, fuzzy
msgid "Browse"
-msgstr "вибрати"
+msgstr "Ð\92ибрати"
#: filebrowser/selfile.c:404
msgid "Filter on extensions:"
-msgstr ""
+msgstr "Фільтр суфіксів:"
#: filebrowser/selfile.c:785
msgid "Pathname:"
-msgstr ""
+msgstr "Назва шляху:"
#: filebrowser/selfile.c:789 xgamelist.c:761 xgamelist.c:886 xoptions.c:904
#: xoptions.c:1207
msgstr "Гаразд"
#: filebrowser/selfile.c:793
-#, fuzzy
msgid "Cancel"
-msgstr "скасувати"
+msgstr "Скасувати"
#: filebrowser/selfile.c:837
msgid "XsraSelFile: can't get current directory"
-msgstr ""
+msgstr "XsraSelFile: не вдалося отримати назву поточного каталогу"
#: xboard.c:615
msgid "New Game Ctrl+N"
#: xboard.c:702
msgid "Call Flag F5"
-msgstr ""
+msgstr "Перевірити прапорець F5"
#: xboard.c:703
msgid "Draw F6"
#: xboard.c:752
msgid "Auto Flag Ctrl+Shift+F"
-msgstr ""
+msgstr "Автопрапорець Ctrl+Shift+F"
#: xboard.c:753 xoptions.c:387
msgid "Auto Flip View"
-msgstr ""
+msgstr "Автоматичне обертання дошки"
#: xboard.c:754 xoptions.c:388
msgid "Blindfold"
#: xboard.c:765
msgid "Ponder Next Move Ctrl+Shift+P"
-msgstr ""
+msgstr "Обдумати наступний хід Ctrl+Shift+P"
#: xboard.c:766
msgid "Popup Exit Message"
#: xboard.c:1214
#, c-format
msgid "%s: Can't access XPM directory %s\n"
-msgstr ""
+msgstr "%s: не вдалося отримати доступ до каталогу XPM %s\n"
#: xboard.c:1237
#, c-format
#: xboard.c:1360
#, c-format
msgid "%s: can't parse foreground color in `%s'\n"
-msgstr ""
+msgstr "%s: не вдалося обробити колір тексту у «%s»\n"
#: xboard.c:1746 xboard.c:2496
#, c-format
msgid "%s: titleWidget geometry error %d %d %d %d %d\n"
-msgstr ""
+msgstr "%s: помилка у геометричних параметрах titleWidget — %d %d %d %d %d\n"
#: xboard.c:1855
#, c-format
msgid "%s: can't parse color names; disabling colorization\n"
-msgstr ""
+msgstr "%s: не вдалося обробити назви кольорів; розфарбовування вимкнено\n"
#: xboard.c:2032
#, c-format
msgid "%s: can't cd to CHESSDIR: "
-msgstr ""
+msgstr "%s: не вдалося перейти до каталогу CHESSDIR: "
#: xboard.c:2041
#, c-format
#: xboard.c:2116
#, c-format
msgid "%s: unrecognized boardSize name %s\n"
-msgstr ""
+msgstr "%s: невідома назва boardSize %s\n"
#: xboard.c:2141
#, c-format
msgid "Error expanding path name \"%s\"\n"
-msgstr ""
+msgstr "Помилка під час спроби розгортання адреси каталогу «%s»\n"
#: xboard.c:2146
#, c-format
#: xboard.c:2227
#, c-format
msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr ""
+msgstr "%s: занадто мало кольорів; спробуємо монохромний режим\n"
#: xboard.c:2243
#, c-format
msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr ""
+msgstr "білий піксель = 0x%lx, чорний піксель = 0x%lx\n"
#: xboard.c:2462 xboard.c:2472
#, c-format
msgid "%s: messageWidget geometry error %d %d %d %d %d\n"
-msgstr ""
+msgstr "%s: помилка у геометричних параметрах messageWidget — %d %d %d %d %d\n"
#: xboard.c:3229
#, c-format
msgid "Unable to create font set for %s.\n"
-msgstr ""
+msgstr "Не вдалося створити набір шрифтів для %s.\n"
#: xboard.c:3254
#, c-format
msgid "%s: no fonts match pattern %s\n"
-msgstr ""
+msgstr "%s: взірцеві %s не відповідає жоден шрифт\n"
#: xboard.c:3296
#, c-format
#: xboard.c:3546
msgid "XIM pieces cannot be used in monochrome mode"
-msgstr ""
+msgstr "У монохромному режимі не можна користуватися фігурами XIM"
#: xboard.c:3550
#, c-format
#: xboard.c:3663
msgid "XPM pieces cannot be used in monochrome mode"
-msgstr ""
+msgstr "У монохромному режимі не можна користуватися фігурами XPM"
#: xboard.c:3673
#, c-format
msgid "No builtin XPM pieces of size %d\n"
-msgstr ""
+msgstr "Немає вбудованих фігур XPM розміру %d\n"
#: xboard.c:3683
#, c-format
msgid "Error %d loading XPM image \"%s\"\n"
-msgstr ""
+msgstr "Помилка %d під час спроби завантаження зображення XPM «%s»\n"
#: xboard.c:3696
#, c-format
#: xboard.c:3719
#, c-format
msgid "(Replace by File:%s:) "
-msgstr ""
+msgstr "(Замінено на File:%s:) "
#: xboard.c:3726 xboard.c:3749 xboard.c:3760
#, c-format
msgid "Error %d loading XPM file \"%s\"\n"
-msgstr ""
+msgstr "Помилка %d під час спроби завантаження файла XPM «%s»\n"
#: xboard.c:3850
#, c-format
msgid "Can't open bitmap file %s"
-msgstr ""
+msgstr "Не вдалося відкрити файл растрового зображення %s"
#: xboard.c:3853
#, c-format
msgid "Invalid bitmap in file %s"
-msgstr ""
+msgstr "Некоректне растрове зображення у файлі %s"
#: xboard.c:3856
#, c-format
msgid "Ran out of memory reading bitmap file %s"
-msgstr ""
+msgstr "Під час читання растрового зображення %s було вичерпано обсяг пам’яті"
#: xboard.c:3860
#, c-format
msgid "Unknown XReadBitmapFile error %d on file %s"
-msgstr ""
+msgstr "Невідома помилка XReadBitmapFile %d під час обробки файла %s"
#: xboard.c:3864
#, c-format
msgid "%s: %s...using built-in\n"
-msgstr ""
+msgstr "%s: %s… використовуємо вбудоване\n"
#: xboard.c:3868
#, c-format
msgstr "Викинути"
#: xboard.c:5035
-#, fuzzy
msgid "could not open: "
-msgstr "Ð\9dе вдалоÑ\81Ñ\8f обÑ\80обиÑ\82и Ñ\85Ñ\96д"
+msgstr "Ð\9dе вдалоÑ\81Ñ\8f вÑ\96дкÑ\80иÑ\82и:"
#: xboard.c:5061 xboard.c:5187 xboard.c:5235 xboard.c:7141 xboard.c:7182
#: xgamelist.c:767 xgamelist.c:875 xoptions.c:900 xoptions.c:1211
#: xboard.c:5184 xboard.c:5243
msgid "Defer"
-msgstr ""
+msgstr "Зменшити пріоритет"
#: xboard.c:5306
msgid "ok"
#: xboard.c:5503
msgid "Load game file name?"
-msgstr ""
+msgstr "Назва файла гри для завантаження?"
#: xboard.c:5569
msgid "Load position file name?"
-msgstr ""
+msgstr "Назва файла позиції для завантаження?"
#: xboard.c:5578
msgid "Save game file name?"
-msgstr ""
+msgstr "Назва файли гри для збереження?"
#: xboard.c:5590
msgid "Save position file name?"
-msgstr ""
+msgstr "Назва файла позиції для збереження?"
#: xboard.c:5821
msgid "Can't open temp file"
-msgstr ""
+msgstr "Не вдалося відкрити тимчасовий файл даних"
#: xboard.c:5911
#, c-format
msgid "You are not observing a game"
-msgstr ""
+msgstr "Ви не спостерігаєте за грою"
#: xboard.c:5916
#, c-format
#: xboard.c:5930
#, c-format
msgid "ICS engine analyze starting... \n"
-msgstr ""
+msgstr "Розпочинаємо аналіз за допомогою рушія ICS… \n"
#: xboard.c:6831
msgid " (with Zippy code)"
"Enhancements Copyright 1992-2009 Free Software Foundation\n"
"Enhancements Copyright 2005 Alessandro Scotti\n"
"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information."
+"%s is free software and carries NO WARRANTY;see the file COPYING for more information."
msgstr ""
#: xboard.c:7028
#: xboard.c:7095
#, c-format
msgid "AskQuestionProc needed 4 parameters, got %d\n"
-msgstr ""
+msgstr "AskQuestionProc потребує 4 параметрів, отримано %d\n"
#: xboard.c:7128
msgid "Error writing to chess program"
-msgstr ""
+msgstr "Помилка під час спроби запису даних до шахової програми"
#: xboard.c:7180
msgid "enter"
#: xboard.c:7384
#, c-format
msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr ""
+msgstr "Помилка: невідомий користувач %s (шлях — %s)\n"
#: xboard.c:7778
msgid "Socket support is not configured in"
-msgstr ""
+msgstr "Підтримку сокетів ще не налаштовано"
#: xboard.c:7869
msgid "internal rcmd not implemented for Unix"
-msgstr ""
+msgstr "вбудований rcmd ще не реалізовано для Unix"
#: xboard.c:8649
#, c-format
msgid "AnimateMove: piece %d hops from %d,%d to %d,%d \n"
-msgstr ""
+msgstr "Анімація ходів: фігура %d перестрибує з %d,%d до %d,%d \n"
#: xboard.c:8650
#, c-format
msgid "AnimateMove: piece %d slides from %d,%d to %d,%d \n"
-msgstr ""
+msgstr "Анімація ходів: фігура %d пересувається з %d,%d до %d,%d \n"
#: xengineoutput.c:145
#, c-format
msgid "Error %d loading icon image\n"
-msgstr ""
+msgstr "Помилка %d під час завантаження зображення піктограми\n"
#: xengineoutput.c:358
msgid "NPS"
#: xgamelist.c:114
msgid "no games matched your request"
-msgstr ""
+msgstr "вашому запиту не відповідає жодна гра"
#: xgamelist.c:193 xgamelist.c:423
msgid "thresholds"
#: xgamelist.c:204 xgamelist.c:450 xgamelist.c:457
msgid "find position"
-msgstr ""
+msgstr "знайти позицію"
#: xgamelist.c:215 xgamelist.c:435
msgid "next"
#: xgamelist.c:438
msgid "Can't go forward any further"
-msgstr ""
+msgstr "Подальший рух вперед списком неможливий"
#: xgamelist.c:442
msgid "prev"
#: xgamelist.c:541
msgid "There is no game list"
-msgstr ""
+msgstr "Немає списку ходів гри"
#: xgamelist.c:679
-#, fuzzy
msgid "Game list not loaded or empty"
-msgstr "Ще не заванÑ\82ажено жодноÑ\97 гÑ\80и"
+msgstr "СпиÑ\81ок гÑ\80и не заванÑ\82ажено або Ñ\86ей Ñ\81пиÑ\81ок Ñ\94 поÑ\80ожнÑ\96м"
#: xgamelist.c:775
msgid "No tag selected"
msgstr ""
#: xgamelist.c:815
-#, fuzzy
msgid "Game-list options"
-msgstr "Ð\97агалÑ\8cнÑ\96 паÑ\80амеÑ\82ри"
+msgstr "Ð\9fаÑ\80амеÑ\82Ñ\80и Ñ\81пиÑ\81кÑ\83 гри"
#: xhistory.c:145
msgid "Move list"
#: xoptions.c:303
msgid "First Engine"
-msgstr ""
+msgstr "Перший рушій"
#: xoptions.c:303
msgid "Second Engine"
-msgstr ""
+msgstr "Другий рушій"
#: xoptions.c:352
msgid "Tournament file:"
-msgstr ""
+msgstr "Файл турніру:"
#: xoptions.c:353
msgid "Sync after round (for concurrent playing of a single"
msgstr ""
#: xoptions.c:355
-#, fuzzy
msgid "Tourney participants:"
-msgstr "Ð\9dедоÑ\81Ñ\82аÑ\82нÑ\8cо Ñ\83Ñ\87аÑ\81никÑ\96в"
+msgstr "УÑ\87аÑ\81ники Ñ\82Ñ\83Ñ\80нÑ\96Ñ\80Ñ\83:"
#: xoptions.c:356
msgid "Select Engine:"
-msgstr ""
+msgstr "Виберіть рушій:"
#: xoptions.c:357
msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr ""
+msgstr "Система турніру (0 = кругова, 1 = почергова):"
#: xoptions.c:358
msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr ""
+msgstr "Кількість раундів турніру (швейцарських раундів):"
#: xoptions.c:359
msgid "Default Number of Games in Match (or Pairing):"
-msgstr ""
+msgstr "Типова кількість ігор у матчі:"
#: xoptions.c:360
msgid "Pause between Match Games (msec):"
-msgstr ""
+msgstr "Проміжок між іграми у матчі (у мілісекундах):"
#: xoptions.c:361
msgid "Save Tourney Games on:"
#: xoptions.c:363
msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr ""
+msgstr "Номер гри (-1 або -2 = автоматичне збільшення):"
#: xoptions.c:364
msgid "File with Start Positions:"
-msgstr ""
+msgstr "Файл з початковими позиціями:"
#: xoptions.c:365
msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr ""
+msgstr "Номер позиції (-1 або -2 = автоматичне збільшення):"
#: xoptions.c:366
msgid "Rewind Index after this many Games (0 = never):"
#: xoptions.c:367
msgid "Disable own engine books by default"
-msgstr ""
+msgstr "Типово вимкнути власні бібліотеки позицій рушія"
#: xoptions.c:368
msgid "Replace Engine"
#: xoptions.c:385
msgid "Animate Moving"
-msgstr ""
+msgstr "Анімація ходів"
#: xoptions.c:386
msgid "Auto Flag"
-msgstr ""
+msgstr "Автопрапорець"
#: xoptions.c:389
msgid "Drop Menu"
#: xoptions.c:390
msgid "Hide Thinking from Human"
-msgstr ""
+msgstr "Приховувати обмірковування від людини"
#: xoptions.c:391
msgid "Highlight Dragging (Show Move Targets)"
#: xoptions.c:393
msgid "Highlight with Arrow"
-msgstr ""
+msgstr "Позначити за допомогою стрілки"
#: xoptions.c:396
msgid "Periodic Updates (in Analysis Mode)"
-msgstr ""
+msgstr "Періодичні оновлення (у режимі аналізу)"
#: xoptions.c:397 xoptions.c:504
msgid "Ponder Next Move"
-msgstr ""
+msgstr "Обдумати наступний хід"
#: xoptions.c:398
msgid "Popup Exit Messages"
#: xoptions.c:402
msgid "Show Target Squares"
-msgstr ""
+msgstr "Показувати клітинки призначення"
#: xoptions.c:403
msgid "Test Legality"
-msgstr ""
+msgstr "Перевіряти коректність"
#: xoptions.c:404
msgid "Flash Moves (0 = no flashing):"
#: xoptions.c:406
msgid "Animation Speed (high = slow):"
-msgstr ""
+msgstr "Швидкість анімації (висока = повільно):"
#: xoptions.c:407
msgid "Zoom factor in Evaluation Graph:"
#: xoptions.c:448
msgid "wild castle"
-msgstr ""
+msgstr "дика тура"
#: xoptions.c:449
msgid "Superchess"
-msgstr ""
+msgstr "Супершахи"
#: xoptions.c:450
msgid "no castle"
#: xoptions.c:464
msgid "two kings"
-msgstr ""
+msgstr "два королі"
#: xoptions.c:465
msgid "Capablanca (10x8)"
#: xoptions.c:477
msgid "Number of Board Files:"
-msgstr ""
+msgstr "Кількість файлів дошки:"
#: xoptions.c:478
msgid "Holdings Size:"
#: xoptions.c:505
msgid "Maximum Number of CPUs per Engine:"
-msgstr ""
+msgstr "Максимальна кількість процесорів на рушій:"
#: xoptions.c:506
msgid "Polygot Directory:"
-msgstr ""
+msgstr "Каталог бібліотек Polygot:"
#: xoptions.c:507
msgid "Hash-Table Size (MB):"
-msgstr ""
+msgstr "Розмір таблиці хешів (у МБ):"
#: xoptions.c:508
msgid "Nalimov EGTB Path:"
#: xoptions.c:509
msgid "EGTB Cache Size (MB):"
-msgstr ""
+msgstr "Розмір кешу EGTB (у МБ):"
#: xoptions.c:510
msgid "Use GUI Book"
#: xoptions.c:511
msgid "Opening-Book Filename:"
-msgstr ""
+msgstr "Назва файла даних дебютів:"
#: xoptions.c:512
msgid "Book Depth (moves):"
#: xoptions.c:522
msgid "Draw if Insufficient Mating Material"
-msgstr ""
+msgstr "Нічия, якщо недостатньо фігур для мату"
#: xoptions.c:523
msgid "Adjudicate Trivial Draws (3-Move Delay)"
#: xoptions.c:548
msgid "Seek Graph"
-msgstr ""
+msgstr "Граф викликів"
#: xoptions.c:549
msgid "Auto-Refresh Seek Graph"
#: xoptions.c:564
msgid "Kibitz Text Colors:"
-msgstr ""
+msgstr "Кольори тексту порад:"
#: xoptions.c:565
msgid "Tell Text Colors:"
#: xoptions.c:566
msgid "Challenge Text Colors:"
-msgstr ""
+msgstr "Кольори тексту викликів:"
#: xoptions.c:567
msgid "Request Text Colors:"
#: xoptions.c:672
msgid "Seek:"
-msgstr ""
+msgstr "Пошук:"
#: xoptions.c:752
msgid "White Piece Color:"
#: xoptions.c:754 xoptions.c:760 xoptions.c:766 xoptions.c:772 xoptions.c:778
#: xoptions.c:784
msgid "R"
-msgstr ""
+msgstr "Ч"
#: xoptions.c:755 xoptions.c:761 xoptions.c:767 xoptions.c:773 xoptions.c:779
#: xoptions.c:785
msgid "G"
-msgstr ""
+msgstr "З"
#: xoptions.c:756 xoptions.c:762 xoptions.c:768 xoptions.c:774 xoptions.c:780
#: xoptions.c:786
msgid "B"
-msgstr ""
+msgstr "С"
#: xoptions.c:757 xoptions.c:763 xoptions.c:769 xoptions.c:775 xoptions.c:781
#: xoptions.c:787
msgid "D"
-msgstr ""
+msgstr "Т"
#: xoptions.c:758
msgid "Black Piece Color:"
msgstr ""
#: xoptions.c:1295
-#, fuzzy
msgid "Adjudicate non-ICS Games"
-msgstr "Визначити виграш білих"
+msgstr ""
#: xoptions.c:1306
msgid "Common Engine Settings"
#: xoptions.c:1441
msgid "clear"
-msgstr ""
+msgstr "спорожнити"
#: xoptions.c:1442 xoptions.c:1494
msgid "save changes"
-msgstr ""
+msgstr "зберегти зміни"
#: xoptions.c:1501
msgid "Edit book"
#: xoptions.c:1541
msgid "ICS input box"
-msgstr ""
+msgstr "Поле введення ICS"
#: xoptions.c:1568
msgid "Type a move"
#: xoptions.c:1599
msgid "Engine Settings"
-msgstr ""
+msgstr "Параметри рушія"
#: xoptions.c:1629
msgid "Select engine from list:"
#: xoptions.c:1636
msgid "UCI"
-msgstr ""
+msgstr "UCI"
#: xoptions.c:1637
msgid "WB protocol v1 (do not wait for engine features)"
msgstr ""
#: xoptions.c:1679
-#, fuzzy
msgid "shuffle"
-msgstr "Ð\9fеремішати"
+msgstr "перемішати"
#: xoptions.c:1680
msgid "Start-position number:"
msgstr "Номер початкової позиції:"
#: xoptions.c:1681
-#, fuzzy
msgid "randomize"
msgstr "випадково"
void UploadProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void BackwardProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void ForwardProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
+void TempBackwardProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
+void TempForwardProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
+Boolean TempBackwardActive = False;
void ToStartProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void ToEndProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void RevertProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void AboutProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void DebugProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void NothingProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void Iconify P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
void DisplayMove P((int moveNumber));
void DisplayTitle P((char *title));
void ICSInitScript P((void));
{ "PieceMenuPopup", PieceMenuPopup },
{ "WhiteClock", WhiteClock },
{ "BlackClock", BlackClock },
- { "Iconify", Iconify },
{ "ResetProc", ResetProc },
{ "NewVariantProc", NewVariantProc },
{ "LoadGameProc", LoadGameProc },
{ "UploadProc", UploadProc },
{ "BackwardProc", BackwardProc },
{ "ForwardProc", ForwardProc },
+ { "TempBackwardProc", TempBackwardProc },
+ { "TempForwardProc", TempForwardProc },
{ "ToStartProc", ToStartProc },
{ "ToEndProc", ToEndProc },
{ "RevertProc", RevertProc },
:Ctrl<Key>H: HideThinkingProc() \n "
#endif
"\
- :<Key>-: Iconify() \n \
:<Key>F1: ManProc() \n \
:<Key>F2: FlipViewProc() \n \
- <KeyDown>.: BackwardProc() \n \
- <KeyUp>.: ForwardProc() \n \
- Shift<Key>1: AskQuestionProc(\"Direct command\",\
+ :Ctrl<KeyDown>.: TempBackwardProc() \n \
+ :Ctrl<KeyUp>.: TempForwardProc() \n \
+ :Ctrl<Key>1: AskQuestionProc(\"Direct command\",\
\"Send to chess program:\",,1) \n \
- Shift<Key>2: AskQuestionProc(\"Direct command\",\
+ :Ctrl<Key>2: AskQuestionProc(\"Direct command\",\
\"Send to second chess program:\",,2) \n";
char boardTranslations[] =
*value_return = targets_tmp;
*type_return = XA_ATOM;
*length_return = 2;
+#if 0
+ // This code leads to a read of value_return out of bounds on 64-bit systems.
+ // Other code which I have seen always sets *format_return to 32 independent of
+ // sizeof(Atom) without adjusting *length_return. For instance see TextConvertSelection()
+ // at http://cgit.freedesktop.org/xorg/lib/libXaw/tree/src/Text.c -- BJ
*format_return = 8 * sizeof(Atom);
if (*format_return > 32) {
*length_return *= *format_return / 32;
*format_return = 32;
}
+#else
+ *format_return = 32;
+#endif
return True;
} else {
return False;
*value_return = targets_tmp;
*type_return = XA_ATOM;
*length_return = 2;
+#if 0
+ // This code leads to a read of value_return out of bounds on 64-bit systems.
+ // Other code which I have seen always sets *format_return to 32 independent of
+ // sizeof(Atom) without adjusting *length_return. For instance see TextConvertSelection()
+ // at http://cgit.freedesktop.org/xorg/lib/libXaw/tree/src/Text.c -- BJ
*format_return = 8 * sizeof(Atom);
if (*format_return > 32) {
*length_return *= *format_return / 32;
*format_return = 32;
}
+#else
+ *format_return = 32;
+#endif
return True;
} else {
return False;
BackwardEvent();
}
+void TempBackwardProc(w, event, prms, nprms)
+ Widget w;
+ XEvent *event;
+ String *prms;
+ Cardinal *nprms;
+{
+ if (!TempBackwardActive) {
+ TempBackwardActive = True;
+ BackwardEvent();
+ }
+}
+
+void TempForwardProc(w, event, prms, nprms)
+ Widget w;
+ XEvent *event;
+ String *prms;
+ Cardinal *nprms;
+{
+ /* Check to see if triggered by a key release event for a repeating key.
+ * If so the next queued event will be a key press of the same key at the same time */
+ if (XEventsQueued(xDisplay, QueuedAfterReading)) {
+ XEvent next;
+ XPeekEvent(xDisplay, &next);
+ if (next.type == KeyPress && next.xkey.time == event->xkey.time &&
+ next.xkey.keycode == event->xkey.keycode)
+ return;
+ }
+ ForwardEvent();
+ TempBackwardActive = False;
+}
+
void ToStartProc(w, event, prms, nprms)
Widget w;
XEvent *event;
return;
}
-void Iconify(w, event, prms, nprms)
- Widget w;
- XEvent *event;
- String *prms;
- Cardinal *nprms;
-{
- Arg args[16];
-
- fromX = fromY = -1;
- XtSetArg(args[0], XtNiconic, True);
- XtSetValues(shellWidget, args, 1);
-}
-
void DisplayMessage(message, extMessage)
char *message, *extMessage;
{
file like ~/.xboardrc in the user's home directory.
When XBoard is iconized, its graphical icon is a white knight if
-it is White's turn to move, a black knight if it is Black's turn. See
-Iconize in @ref{Keys} below if you have problems getting this
-feature to work.
+it is White's turn to move, a black knight if it is Black's turn.
@node Menus
@chapter Menus, buttons, and keys
@cindex Keys
@cindex Shortcut keys
@table @asis
-@item Iconize
-Pressing the @kbd{-} key iconizes XBoard. The graphical
-icon displays a white knight if it is White's move, or a black knight
-if it is Black's move. If your X window manager displays only text
-icons, not graphical ones, check its documentation; there is probably
-a way to enable graphical icons. If you get black and white reversed,
-we would like to hear about it; see @ref{Problems} below for
-instructions on how to report this problem.
+@item Show last move
+By hitting @kbd{Ctrl+.} the last move will be re-animated.
+@item Send a command directly to the chess engine
+Using @kbd{Ctrl+1} a popup window will prompt you for a command that
+will be send directly to the first chess engines. @kbd{Ctrl+2} does the
+same for a second chess engine, if present.
@item Load Next Game
@cindex Load Next Game, Menu Item
Loads the next game from the last game record file you loaded.
DebugProc, DeclineProc, DrawProc, EditCommentProc, EditGameProc,
EditPositionProc, EditTagsProc, EnterKeyProc, FlashMovesProc,
FlipViewProc, ForwardProc, GetMoveListProc, HighlightLastMoveProc,
-HintProc, Iconify, IcsAlarmProc, IcsClientProc, IcsInputBoxProc,
+HintProc, IcsAlarmProc, IcsClientProc, IcsInputBoxProc,
InfoProc, LoadGameProc, LoadNextGameProc, LoadNextPositionProc,
LoadPositionProc, LoadPrevGameProc, LoadPrevPositionProc,
LoadSelectedProc, MachineBlackProc, MachineWhiteProc, MailMoveProc,
@item -noGUI
@cindex noGUI, option
Suppresses all GUI functions of XBoard
-(to speed up automated ultra-fast engine-engine games, which you don\92t want to watch).
+(to speed up automated ultra-fast engine-engine games, which you don't want to watch).
There will be no board or clock updates, no printing of moves,
and no update of the icon on the task bar in this mode.
@item -movesound/-xmovesound or -ringBellAfterMoves true/false
String name, val;
Arg args[16];
char buf[MSG_SIZ], *p;
- int j;
+ int j = 0; // Initialiasation is necessary because the text value may be non-numeric causing the scanf conversion to fail
int data = (intptr_t) client_data;
XtSetArg(args[0], XtNlabel, &name);
GetWidgetText(¤tOption[data], &val);
sscanf(val, "%d", &j);
- if (strcmp(name, "browse") == 0) {
+ if (strcmp(name, _("browse")) == 0) {
char *q=val, *r;
for(r = ""; *q; q++) if(*q == '.') r = q; else if(*q == '/') r = ""; // last dot after last slash
if(!strcmp(r, "") && !currentCps && currentOption[data].type == FileName && currentOption[data].textValue)
int j = 255 & (intptr_t) addr;
values[i] = j; // store in temporary, for transfer at OK
- XtSetArg(args[0], XtNlabel, _(((char**)currentOption[i].textValue)[j]));
+
+ if(currentOption[i].min & NO_GETTEXT)
+ XtSetArg(args[0], XtNlabel, ((char**)currentOption[i].textValue)[j]);
+ else
+ XtSetArg(args[0], XtNlabel, _(((char**)currentOption[i].textValue)[j]));
+
XtSetValues(currentOption[i].handle, args, 1);
- if(currentOption[i].min & 1 && !currentCps && comboCallback) (comboCallback)(i);
+ if(currentOption[i].min & COMBO_CALLBACK && !currentCps && comboCallback) (comboCallback)(i);
}
-void CreateComboPopup(parent, name, n, mb)
+void CreateComboPopup(parent, option, n)
Widget parent;
- String name;
+ Option *option;
int n;
- char *mb[];
{
int i=0, j;
Widget menu, entry;
Arg args[16];
- menu = XtCreatePopupShell(name, simpleMenuWidgetClass,
+ menu = XtCreatePopupShell(option->name, simpleMenuWidgetClass,
parent, NULL, 0);
j = 0;
XtSetArg(args[j], XtNwidth, 100); j++;
// XtSetArg(args[j], XtNright, XtChainRight); j++;
- while (mb[i] != NULL) {
- XtSetArg(args[j], XtNlabel, _(mb[i]));
- entry = XtCreateManagedWidget(mb[i], smeBSBObjectClass,
- menu, args, j+1);
- XtAddCallback(entry, XtNcallback,
- (XtCallbackProc) ComboSelect,
- (caddr_t)(intptr_t) (256*n+i));
+ char **mb = (char **) option->textValue;
+ while (mb[i] != NULL)
+ {
+ if (option->min & NO_GETTEXT)
+ XtSetArg(args[j], XtNlabel, mb[i]);
+ else
+ XtSetArg(args[j], XtNlabel, _(mb[i]));
+ entry = XtCreateManagedWidget((String) mb[i], smeBSBObjectClass,
+ menu, args, j+1);
+ XtAddCallback(entry, XtNcallback,
+ (XtCallbackProc) ComboSelect,
+ (caddr_t)(intptr_t) (256*n+i));
i++;
- }
+ }
}
{ 0, 0, 0, NULL, (void*) &appData.roundSync, "", NULL, CheckBox, N_("Sync after round (for concurrent playing of a single") },
{ 0, 0, 0, NULL, (void*) &appData.cycleSync, "", NULL, CheckBox, N_("Sync after cycle tourney with multiple XBoards)") },
{ 0xD, 150, 0, NULL, (void*) &engineName, "", NULL, TextBox, N_("Tourney participants:") },
-{ 0, 1, 0, NULL, (void*) &engineChoice, (char*) (engineMnemonic+1), (engineMnemonic+1), ComboBox, N_("Select Engine:") },
+{ 0, COMBO_CALLBACK | NO_GETTEXT,
+ 0, NULL, (void*) &engineChoice, (char*) (engineMnemonic+1), (engineMnemonic+1), ComboBox, N_("Select Engine:") },
{ 0, 0, 10, NULL, (void*) &appData.tourneyType, "", NULL, Spin, N_("Tourney type (0 = round-robin, 1 = gauntlet):") },
{ 0, 1, 1000000000, NULL, (void*) &appData.tourneyCycles, "", NULL, Spin, N_("Number of tourney cycles (or Swiss rounds):") },
{ 0, 1, 1000000000, NULL, (void*) &appData.defaultMatchGames, "", NULL, Spin, N_("Default Number of Games in Match (or Pairing):") },
char *soundFiles[] = { // sound files corresponding to above names
"",
"$",
- "*", // kludge alert: as first thing in the dialog readout this is replaced with the user-given .WAV filename
+ NULL, // kludge alert: as first thing in the dialog readout this is replaced with the user-given .WAV filename
"honkhonk.wav",
"cymbal.wav",
"ding1.wav",
case Fractional:
XtSetArg(args[0], XtNstring, &val);
XtGetValues(currentOption[i].handle, args, 1);
+ x = 0.0; // Initialise because sscanf() will fail if non-numeric text is entered
sscanf(val, "%f", &x);
if(x > currentOption[i].max) x = currentOption[i].max;
if(x < currentOption[i].min) x = currentOption[i].min;
if(!n) { DisplayNote(_("Engine has no options")); currentCps = NULL; return 0; }
if(n > 50) width = 4; else if(n>24) width = 2; else width = 1;
height = n / width + 1;
- if(n && (currentOption[n-1].type == Button || currentOption[n-1].type == SaveButton)) currentOption[n].min = 1; // OK on same line
+ if(n && (currentOption[n-1].type == Button || currentOption[n-1].type == SaveButton)) currentOption[n].min = SAME_ROW; // OK on same line
currentOption[n].type = EndMark; currentOption[n].target = NULL; // delimit list by callback-less end mark
}
i = 0;
XtSetArg(args[j], XtNleft, XtChainRight); j++;
XtSetArg(args[j], XtNright, XtChainRight); j++;
if(option[i].type == FileName || option[i].type == PathName) {
- w = 50; msg = _("browse");
+ msg = _("browse");
+ /* automatically scale to width of text */
+ XtSetArg(args[j], XtNwidth, (XtArgVal) NULL ); j++;
} else {
- XtSetArg(args[j], XtNheight, 10); j++;
w = 20; msg = "+";
+ XtSetArg(args[j], XtNheight, 10); j++;
+ XtSetArg(args[j], XtNwidth, w); j++;
}
- XtSetArg(args[j], XtNwidth, w); j++;
edit = XtCreateManagedWidget(msg, commandWidgetClass, form, args, j);
XtAddCallback(edit, XtNcallback, SpinCallback, (XtPointer)(intptr_t) i);
case SaveButton:
case Button:
j=0;
- XtSetArg(args[j], XtNfromVert, option[i].min & 1 ? lastrow : last); j++;
+ if(option[i].min & SAME_ROW) {
+ XtSetArg(args[j], XtNfromVert, lastrow); j++;
+ XtSetArg(args[j], XtNfromHoriz, last); j++;
+ } else {
+ XtSetArg(args[j], XtNfromVert, last); j++;
+ XtSetArg(args[j], XtNfromHoriz, NULL); j++; lastrow = forelast;
+ }
XtSetArg(args[j], XtNlabel, _(option[i].name)); j++;
- if(option[i].min & 1) { XtSetArg(args[j], XtNfromHoriz, last); j++; }
- else { XtSetArg(args[j], XtNfromHoriz, NULL); j++; lastrow = forelast; }
if(option[i].max) { XtSetArg(args[j], XtNwidth, option[i].max); j++; }
if(option[i].textValue) { // special for buttons of New Variant dialog
XtSetArg(args[j], XtNsensitive, appData.noChessProgram || option[i].value < 0
XtSetArg(args[j], XtNlabel, _(((char**)option[i].textValue)[option[i].value])); j++;
option[i].handle = (void*)
(last = XtCreateManagedWidget(" ", menuButtonWidgetClass, form, args, j));
- CreateComboPopup(last, option[i].name, i, (char **) option[i].textValue);
+ CreateComboPopup(last, option + i, i);
values[i] = option[i].value;
break;
case Break:
for(h=0; h<height; h++) {
i = h + c*height;
if(option[i].type == EndMark) break;
- if(!texts[h]) continue;
+ if(!texts[h]) continue; // Note: texts[h] can be undefined (giving errors in valgrind), but then both if's below will be false.
j=0;
if(option[i].type == Spin) {
XtSetArg(args[j], XtNwidth, maxWidth); j++;
}
}
- if(!(option[i].min & 2)) {
+ if(!(option[i].min & NO_OK)) {
j=0;
- if(option[i].min & 1) {
- for(j=i-1; option[j+1].min&1 && option[j].type == Button; j--) {
+ if(option[i].min & SAME_ROW) {
+ for(j=i-1; option[j+1].min & SAME_ROW && option[j].type == Button; j--) {
XtSetArg(args[0], XtNtop, XtChainBottom);
XtSetArg(args[1], XtNbottom, XtChainBottom);
XtSetValues(option[j].handle, args, 2);
String *prms;
Cardinal *nprms;
{
- soundFiles[2] = "*";
+ free(soundFiles[2]);
+ soundFiles[2] = strdup("*");
GenericPopUp(soundOptions, _("Sound Options"), 0);
}
{
char buf[10], keys[32];
KeySym sym;
- KeyCode metaL, metaR;
+ KeyCode metaL, metaR, ctrlL, ctrlR;
int n = XLookupString(&(event->xkey), buf, 10, &sym, NULL);
XQueryKeymap(xDisplay,keys);
metaL = XKeysymToKeycode(xDisplay, XK_Meta_L);
metaR = XKeysymToKeycode(xDisplay, XK_Meta_R);
- if ( n == 1 && *buf >= 32 && !(keys[metaL>>3]&1<<(metaL&7)) && !(keys[metaR>>3]&1<<(metaR&7))) { // printable, no alt
+ ctrlL = XKeysymToKeycode(xDisplay, XK_Control_L);
+ ctrlR = XKeysymToKeycode(xDisplay, XK_Control_R);
+ if ( n == 1 && *buf >= 32 // printable
+ && !(keys[metaL>>3]&1<<(metaL&7)) && !(keys[metaR>>3]&1<<(metaR&7)) // no alt key pressed
+ && !(keys[ctrlL>>3]&1<<(ctrlL&7)) && !(keys[ctrlR>>3]&1<<(ctrlR&7)) // no ctrl key pressed
+ )
+ {
if(appData.icsActive) { // text typed to board in ICS mode: divert to ICS input box
if(shells[4]) { // box already exists: append to current contents
char *p, newText[MSG_SIZ];
}
Option installOptions[] = {
-{ 0, 0, 0, NULL, (void*) &engineLine, (char*) engineMnemonic, engineList, ComboBox, N_("Select engine from list:") },
+{ 0, NO_GETTEXT, 0, NULL, (void*) &engineLine, (char*) engineMnemonic, engineList, ComboBox, N_("Select engine from list:") },
{ 0, 0, 0, NULL, NULL, NULL, NULL, Label, N_("or specify one below:") },
{ 0, 0, 0, NULL, (void*) &nickName, NULL, NULL, TextBox, N_("Nickname (optional):") },
{ 0, 0, 0, NULL, (void*) &useNick, NULL, NULL, CheckBox, N_("Use nickname in PGN player tags of engine-engine games") },