Unit LangSupp;


interface


procedure DefineConstantsRUS;
   

   procedure DefineConstantsENU;
      

      procedure DefineConstantsDEU;
         

         procedure LoadConstants;
            

            procedure FontLoad;
               

               procedure FontErase;
                  
                  

var
   
   sSysVarTEMP: string;
   
   ReadCharSet: set of byte;
   // [192..255];
      {Русские слова}
   // [192..223];
      {Русские слова набранные БОЛЬШИМИ буквами}
      {Abbreviation: A - About
      C - Common
      D - Dictionary
      G - suGGest
      H - History
      K - sKip
      M - Main form
      S - Setup
      T - Top 10
      W - Word input}
   
   _A_cAuthor       //'Разработчик:';
   
   ,_A_cCaption      //'О Программе';
   
   ,_A_cName         //'Алексей Романов';
   
   ,_A_cOwner        //'Владелец:';
   
   ,_A_cOwnerName    //_ProductOwner;
   
   ,_A_cVersion      //'Версия: '+_ProductVersion;
   
   ,_C_cCaption      //'Словарь';
   
   ,_C_cClear        //'Очистить';
   
   ,_C_cClose        //'Закрыть';
   
   ,_C_cPoints       //'Очки';
   
   ,_C_cProductName  //'Эрудит';
   
   ,_C_cWord         //'Слово';
   
   ,_C_cTurn         //'Ход';
   
   ,_D_FNActive      //'Active.txt';
   
   ,_D_FNINActive    //'InActive.txt';
   
   ,_D_FNotFound     //'Файл "%s" не найден.';
   
   ,_D_StateReading  //'Состояние: Читаем новые слова...';
   
   ,_D_StateSaving   //'Состояние: Сохраняем старый словарь...';
   
   ,_D_StateWaiting  //'Состояние: Ждем Ваших пожеланий...';
   
   ,_D_StateWriting  //'Состояние: Записываем в словарь...';
   
   ,_D_cAddWord      //'Добавить слово >>';
   
   ,_D_cDelWord      //'Удалить слово <<';
   
   ,_D_cClear        //'Очистить словарь'
   ,_D_cFindWord     //'Найти слово';
   
   ,_D_cAdd          //'Добавить из файла';
   
   ,_D_cSave         //'Сохранить в файл';
   
   ,_D_cTotalWords   //'Итого %d слов';
   
   ,_D_hFindWord     //'Вы можете использовать символы: "%" как любые буквы и
   ,_D_mExist        //'Это слово уже есть в словаре.';
   
   ,_D_mIsClearAll   //'Вы уверены, что хотите полностью очистить словарь про
   ,_G_cCaption      //'Подсказка';
   
   ,_G_cDir          //'Пол';
   
   ,_G_cHelp         //'"%s" - подсказка';
   
   ,_G_cPosX         //'X';
   
   ,_G_cPosY         //'Y';
   
   ,_G_cThinking     //'Еще подумать';
   
   ,_G_cTotalPatts   //'Всего шаблонов: %d';
   
   ,_G_cTotalWords   //'Всего слов: %d';
   
   ,_G_cWWeight      //'Вес';
   
   ,_G_cavPatts      //'Список возможных шаблонов';
   
   ,_G_cavWords      //'Список возможных слов';
   
   ,_G_mIPoints      //'Я Вам набрал дополнительно %d очк%s'+#10+'...но и про
   ,_H_LGot          //'Получил';
   
   ,_H_LPName        //'Игрок';
   
   ,_H_LTotal        //'Итого';
   
   ,_H_LUsed         //'Использовал';
   
   ,_H_PAll          //'Все игроки';
   
   ,_H_cTotal        //'%d ход(ов)';
   
   ,_H_claPlayer     //'Показать историю для ';
   
   ,_K_cAll          //'Все поменять';
   
   ,_K_cCaption      //'Пропуск хода';
   
   ,_K_cChooseL      //'Выберите буквы для замены';
   
   ,_K_cContinue     //'Продолжить игру';
   
   ,_K_cSkip         //'Пропустить ход';
   
   ,_K_mIsSkip       //'Вы действительно хотите пропустить ход и не поменять
   
   ,_M_LgCenter      //'Первое слово должно проходить через середину поля.';
   
   ,_M_LgContactL    //'Проверка соприкосновения слова справа';
   
   ,_M_LgContactR    //'Проверка соприкосновения слова сверху';
   
   ,_M_LgContactD    //'Проверка соприкосновения слова снизу';
   
   ,_M_LgContactU    //'Проверка соприкосновения слова слева';
   
   ,_M_LgNoCross     //'Нет необходимого пересечения слов';
   
   ,_M_LgOut         //'Проверка выхода слова из поля';
   
   ,_M_LgNoL2Set     //'Вы не потратили ни одной буквы';
   
   ,_M_LgCrossError  //'Проверка совпадения букв на пересечениях';
   
   ,_M_ccb1          //'Игрок 1';
   
   ,_M_ccb2          //'Игрок 2';
   
   ,_M_ccb3          //'Игрок 3';
   
   ,_M_ccb4          //'Игрок 4';
   
   ,_M_ccb5          //'Игрок 5';
   
   ,_M_claPlayer     //'Игроки:';
   
   ,_M_claPoints     //'Очки:';
   
   ,_M_claLetters    //'Буквы:';
   
   ,_M_claTopNames   //'Горячая десятка';
   
   ,_M_ctbBack       //'Вернуть ход';
   
   ,_M_ctbExit       //'Выход';
   
   ,_M_ctbHelp       //'Инструкция';
   
   ,_M_ctbHistory    //'История ходов';
   
   ,_M_ctbLang       //'Language';
   
   ,_M_ctbLoadGame   //'Загрузить игру';
   
   ,_M_ctbSaveGame   //'Сохранить игру ';
   
   ,_M_ctbSetup      //'Настройки';
   
   ,_M_ctbSkip       //'Пропустить ход';
   
   ,_M_ctbSuggest    //'Подсказать слово';
   
   ,_M_ctbNet        //'Сетевая игра';
   
   ,_M_hPLetters     //'Буквы игрока %s';
   
   ,_M_hPPoints      //'Очки игрока %s';
   
   ,_M_mBack         //'Вернуть последний ход ?';
   
   ,_M_mBonus        //'Вы использовали все %d букв и достойны премии в %d оч
   ,_M_mDiffLVersion //'Языковая версия загружаемой игры - %s и не совпадает
   ,_M_mGIsStop      //'Окончить игру?';
   
   ,_M_mHIsNeed      //'Вы действительно хотите мою подсказку всего за %d очк
   ,_M_mINoWord      //'Да... С такими буквами я и сам не могу слово придумат
   ,_M_mIPoints      //'Я набрал дополнительно %d очк%s';
   
   ,_M_mISkip        //'Увы, я пропускаю ход...';
   
   ,_M_mLNot         //'"%s" - не Ваша буква';
   
   ,_M_mLNotPC       //'"%s" - не Ваша буква - но... поздно.';
   
   ,_M_mLNotReg      //'"%s" - не является зарегистрированной буквой алфавита
   ,_M_mPDelete      //'Удалить игрока "%s" ?';
   
   ,_M_mPEnter       //'Введите имя игрока';
   
   ,_M_mPUNames      //'Введите не повторяющиеся имена игроков';
   
   ,_M_mPoints       //'Вы набрали дополнительно %d очк%s';
   
   ,_M_mTimeOut      //'Ваше время вышло и ход переходит к следующему игроку.
   ,_M_mWUsed        //'Слово %s уже использовано, подумайте над другим слово
   ,_M_sFFilter      //'Сохраненная игра (*.eru)|*.eru';
   
   ,_M_sFNGame       //'Игра1.eru';
   
   ,_M_sGPlay        //'Игра !';
   
   ,_M_sGStop        //'Остановить';
   
   ,_M_sPPCName      //'Компьютер';
   
   ,_M_sSkip         //          = '-пропуск хода-';
   
   ,_M_cNetUsers     //'Итого %d пользователь';
   
   ,_M_cNetReadyCnt  //'Ready to play with %d players'
   ,_M_cNetErrLess   //'Not enought players to play'
   ,_M_cNetErrMore   //'Too many players to play'
   ,_M_cNetJoin      //'Join to game';
   
   
   ,_S_cALoad        //'Автозагрузка';
   
   ,_S_cASave        //'Автосохранение';
   
   ,_S_cTips         //'Показывать подсказки';
   
   ,_S_cAnim         //'Анимация при перемещинии букв';
   
   ,_S_cCaption      //'Настройки игры';
   
   ,_S_cDLevel       //'Уровень сложности';
   
   ,_S_cStore        //'Запомнить';
   
   ,_S_cTimeLimit    //'Ограничение времени (секунд)';
   
   ,_T_cPhrase       //'Введите Вашу фразу:';
   
   ,_T_mClear        //'Очистить таблицу лучих игроков?';
   
   ,_W_WDirHor       //'Горизонтально';
   
   ,_W_WDirVer       //'Вертикально';
   
   ,_W_cApply        //'Согласен';
   
   ,_W_cCancel       //'Отменить';
   
   ,_W_cCancelHint   //'Отменить ход и удалить слово из словаря программы';
   
   ,_W_cCaption      //'Ввод нового слова';
   
   ,_W_cNoUse        //'Удалить из словаря';
   
   ,_W_cNoUseConfirm //'Удалить это слово навсегда из словаря?';
   
   ,_W_cPCNewWord    //'Новое слово КОМПЬЮТЕРА';
   
   ,_W_cSet          //'Поставить';
   
   ,_W_mHelp         //'введите слово, которое вы хотите поставить.
   // Предварительно вы можете это слово составить
   //в Вашем шаблоне, перетащив буквы в нужном порядке
   //и обозначив последнюю букву выделением.';
   ,_W_mAbortAdd     //'Раз нельзя программе использовать это слово - значит
   ,_W_mIsAdd        //'Вы ввели слово "%s", которое отсутствует в словаре пр
   ,_W_mReplaceAst   //'Поставьте вместо звездочки желаемую букву.';
   
   ,_W_mSuggested    //'Это слово я Вам уже предлагал.'+#10+'Будете думать на
   ,_W_mWWeight      //'%d очк%s';
            
   : string;
   
   
   implementation
   
   uses  _fm_Sugg, _fm_Setup, _fm_Main, _fm_Word, _fm_WordC, _fm_DMan,
   _fm_Skip, _fm_PMoves, _fm_Top, _fm_About, Aphorism,
   Windows, SysUtils, Dialogs, Forms, Controls,
   
   Messages, Classes, Graphics, StdCtrls,
   ExtCtrls, Grids, Buttons, ComCtrls, Menus, ImgList, IniFiles,
   FMXUtils, ToolWin;
   
   
      {------------------------------------------------------------------------------}

procedure DefineConstantsRUS;
   
begin
   
   
   CurrentLanguage := lgRUS;
   
   ReadCharSet := [192..255];
   
   
   _A_cAuthor      := 'Разработчик:';
   
   _A_cCaption     := 'О Программе';
   
   _A_cName        := 'Алексей Романов';
   
   _A_cOwner       := 'Владелец:';
   
   _A_cOwnerName   := _ProductOwner;
   
   _A_cVersion     := 'Версия: '+_ProductVersion;
   
   
   _C_cCaption     := 'Словарь';
   
   _C_cClear       := 'Очистить';
   
   _C_cClose       := 'Закрыть';
   
   _C_cPoints      := 'Очки';
   
   _C_cProductName := 'Эрудит';
   
   _C_cWord        := 'Слово';
   
   _C_cTurn        := 'Ход';
   
   
   _D_FNActive     := 'Active.txt';
   
   _D_FNINActive   := 'InActive.txt';
   
   _D_FNotFound    := 'Файл "%s" не найден.';
   
   _D_StateReading := 'Состояние: Читаем новые слова...';
   
   _D_StateSaving  := 'Состояние: Сохраняем старый словарь...';
   
   _D_StateWaiting := 'Состояние: Ждем Ваших пожеланий...';
   
   _D_StateWriting := 'Состояние: Записываем в словарь...';
   
   _D_cAddWord     := 'Добавить слово >>';
   
   _D_cDelWord     := 'Удалить слово <<';
   
   _D_cClear       := 'Очистить словарь';
   
   _D_cFindWord    := 'Найти слово';
   
   _D_cAdd         := 'Добавить из файла';
   
   _D_cSave        := 'Сохранить в файл';
   
   _D_cTotalWords  := 'Итого %d слов';
   
   _D_hFindWord    := 'Вы можете использовать следующие символы в шаблоне:'+#10+
   '"%" в качестве любого множества букв и'+#10+'"_" в качестве любой одной буквы';
   
   _D_mExist       := 'Это слово уже есть в словаре.';
   
   _D_mIsClearAll  := 'Вы уверены, что хотите полностью очистить словарь программы?';
   
   
   _G_cCaption     := 'Подсказка';
   
   _G_cDir         := 'Пол';
   
   _G_cHelp        := '"%s" - подсказка';
   
   _G_cPosX        := 'X';
   
   _G_cPosY        := 'Y';
   
   _G_cThinking    := 'Еще подумать';
   
   _G_cTotalPatts  := 'Всего шаблонов: %d';
   
   _G_cTotalWords  := 'Всего слов: %d';
   
   _G_cWWeight     := 'Вес';
   
   _G_cavPatts     := 'Список возможных шаблонов';
   
   _G_cavWords     := 'Список возможных слов';
   
   _G_mIPoints     := 'Я Вам набрал дополнительно %d очк%s'+#10+
   '...но и про себя не забыл...';
   
   
   _H_LGot         := 'Получил';
   
   _H_LPName       := 'Игрок';
   
   _H_LTotal       := 'Итого';
   
   _H_LUsed        := 'Использовал';
   
   _H_PAll         := 'Все игроки';
   
   _H_cTotal       := '%d ход(ов)';
   
   _H_claPlayer    := 'Показать историю для ';
   
   
   _K_cAll         := 'Все поменять';
   
   _K_cCaption     := 'Пропуск хода';
   
   _K_cChooseL     := 'Выберите буквы для замены';
   
   _K_cContinue    := 'Продолжить игру';
   
   _K_cSkip        := 'Пропустить ход';
   
   _K_mIsSkip      := 
   'Вы действительно хотите пропустить ход и не поменять ни одной буквы ?';
   
   
   _M_LgCenter     := 'Первое слово должно проходить через середину поля.';
   
   _M_LgContactR   := 'Поставленное Вами слово соприкасается СПРАВА с другим словом,'+#10+
   'что не допустимо';
   
   _M_LgContactL   := 'Поставленное Вами слово соприкасается СЛЕВА  с другим словом,'+#10+
   'что не допустимо';
   
   _M_LgContactU   := 'Поставленное Вами слово соприкасается СВЕРХУ с другим словом,'+#10+
   'что не допустимо';
   
   _M_LgContactD   := 'Поставленное Вами слово соприкасается СНИЗУ  с другим словом,'+#10+
   'что не допустимо';
   
   _M_LgNoCross    := 'Нет необходимого пересечения слов';
   
   _M_LgOut        := 'Поставленное Вами слово выходит за границу поля';
   
   _M_LgNoL2Set    := 'Вы не потратили ни одной буквы';
   
   _M_LgCrossError := 
'Буквы, находящиеся на пересечении поставленного Вами слова с другими словами, не совпадают.'
   ;
   
   _M_ccb1         := 'Игрок 1';
   
   _M_ccb2         := 'Игрок 2';
   
   _M_ccb3         := 'Игрок 3';
   
   _M_ccb4         := 'Игрок 4';
   
   _M_ccb5         := 'Игрок 5';
   
   _M_claPlayer    := 'Игроки:';
   
   _M_claPoints    := 'Очки:';
   
   _M_claLetters   := 'Буквы:';
   
   _M_claTopNames  := 'Горячая десятка';
   
   _M_ctbBack      := 'Вернуть ход';
   
   _M_ctbExit      := 'Выход';
   
   _M_ctbHelp      := 'Инструкция';
   
   _M_ctbHistory   := 'История ходов';
   
   _M_ctbLang      := 'Language';
   
   _M_ctbLoadGame  := 'Загрузить';
   // игру';
   _M_ctbSaveGame  := 'Сохранить';
   // игру';
   _M_ctbSetup     := 'Настройки';
   
   _M_ctbSkip      := 'Пропустить ход';
   
   _M_ctbSuggest   := 'Подсказать слово';
   
   _M_ctbNet       := 'Сетевая игра';
   
   _M_hPLetters    := 'Буквы игрока %s';
   
   _M_hPPoints     := 'Очки игрока %s';
   
   _M_mBack        := 'Вернуть последний ход ?';
   
   _M_mBonus       := 'Вы использовали все %d букв и достойны премии в %d очков!';
   
   _M_mDiffLVersion := 'Языковая версия загружаемой игры не совпадает с текущей (Русской)'
   +#10+'Измените язык игры на "%s", чтобы загрузить эту игру';
   
   _M_mGIsStop     := 'Окончить игру?';
   
   _M_mHIsNeed     := 'Вы действительно хотите мою подсказку всего за %d очк%s ?';
   
   _M_mINoWord     := 'Да... С такими буквами я и сам не могу слово придумать...';
   
   _M_mIPoints     := 'Я набрал дополнительно %d очк%s';
   
   _M_mISkip       := 'Увы, я пропускаю ход...';
   
   _M_mLNot        := '"%s" - не Ваша буква';
   
   _M_mLNotPC      := '"%s" - не Ваша буква - но... поздно.';
   
   _M_mLNotReg     := '"%s" - не является зарегистрированной буквой алфавита';
   
   _M_mPDelete     := 'Удалить игрока "%s" ?';
   
   _M_mPEnter      := 'Введите имя игрока';
   
   _M_mPUNames     := 'Введите не повторяющиеся имена игроков';
   
   _M_mPoints      := 'Вы набрали дополнительно %d очк%s';
   
   _M_mTimeOut     := 'Ваше время вышло и ход переходит к следующему игроку...';
   
   _M_mWUsed       := 'Слово %s уже использовано, подумайте над другим словом.';
   
   _M_sFFilter     := 'Сохраненная игра (*.eru)|*.eru';
   
   _M_sFNGame      := 'Игра1.eru';
   
   _M_sGPlay       := 'Начать игру';
   
   _M_sGStop       := 'Окончить игру';
   
   _M_sPPCName     := 'Компьютер';
   
   _M_sSkip        := '-пропуск хода-';
   
   _M_cNetUsers    := 'Итого %d пользователей';
   
   _M_cNetReadyCnt := 'Готовы играть %d игроков';
   
   _M_cNetErrLess  := 'Мало игроков для игры';
   
   _M_cNetErrMore  := 'Слишком много игроков для игры';
   
   _M_cNetJoin     := 'Присоединиться к игре';
   
   
   _S_cALoad       := 'Автозагрузка';
   
   _S_cASave       := 'Автосохранение';
   
   _S_cTips        := 'Показывать подсказки';
   
   _S_cAnim        := 'Анимация при перемещении букв';
   
   _S_cCaption     := 'Настройки игры';
   
   _S_cDLevel      := 'Уровень сложности';
   
   _S_cStore       := 'Запомнить';
   
   _S_cTimeLimit   := 'Ограничение времени (секунд)';
   
   
   _T_cPhrase      := 'Введите Вашу фразу:';
   
   _T_mClear       := 'Очистить таблицу лучших игроков?';
   
   
   _W_WDirHor      := 'Горизонтально';
   
   _W_WDirVer      := 'Вертикально';
   
   _W_cApply       := 'Согласен';
   
   _W_cCancel      := 'Отменить';
   
   _W_cCancelHint  := 'Отменить ход и удалить слово из словаря программы';
   
   _W_cCaption     := 'Ввод нового слова';
   
   _W_cNoUse       := 'Удалить из словаря';
   
   _W_cNoUseConfirm := 'Удалить это слово навсегда из словаря?';
   
   _W_cPCNewWord   := 'Новое слово КОМПЬЮТЕРА';
   
   _W_cSet         := 'Поставить';
   
   _W_mHelp        := 'введите слово, которое вы хотите поставить.'+#10+
                     'Предварительно вы можете это слово составить'+#10+
                     'в Вашем шаблоне, перетащив буквы в нужном порядке'+#10+
                     'и обозначив последнюю букву выделением.';
   
   _W_mAbortAdd    := 'Раз нельзя программе использовать это слово - значит и Вам тоже :('
   ;
   
   _W_mIsAdd       := 'Вы ввели слово "%s", которое отсутствует в словаре программы.'+#10+
   'Добавить это слово в ее словарь ?';
   
   _W_mReplaceAst  := 'Поставьте вместо звездочки желаемую букву.';
   
   _W_mSuggested   := 'Это слово я Вам уже предлагал.'+#10+
   'Будете думать над другим словом ?';
   
   _W_mWWeight     := '%d очк%s';
   
   end;


{------------------------------------------------------------------------------}

procedure DefineConstantsENU;
   
begin
   
   CurrentLanguage := lgENU;
   
   ReadCharSet := [65..90,97..122];
   
   
   _A_cAuthor      := 'Developer:';
   
   _A_cCaption     := 'About...';
   
   _A_cName        := 'Alexey Romanov';
   
   _A_cOwner       := 'Owner:';
   
   _A_cOwnerName   := _ProductOwner;
   
   _A_cVersion     := 'Version: '+_ProductVersion;
   
   _C_cCaption     := 'Dictionary';
   
   _C_cClear       := 'Clear';
   
   _C_cClose       := 'Close';
   
   _C_cPoints      := 'Points';
   
   _C_cProductName := 'The Erudite';
   
   _C_cWord        := 'Word';
   
   _C_cTurn        := 'Turn';
   
   _D_FNActive     := 'Active.txt';
   
   _D_FNINActive   := 'InActive.txt';
   
   _D_FNotFound    := 'File "%s" not found.';
   
   _D_StateReading := 'State: Reading new words...';
   
   _D_StateSaving  := 'State: Saving the dictionary...';
   
   _D_StateWaiting := 'State: Waiting for user...';
   
   _D_StateWriting := 'State: Writing dictionary...';
   
   _D_cAddWord     := 'Add a word >>';
   
   _D_cDelWord     := 'Delete word <<';
   
   _D_cClear       := 'Clear dictionary';
   
   _D_cFindWord    := 'Find a word';
   
   _D_cAdd         := 'Add from file';
   
   _D_cSave        := 'Save to file';
   
   _D_cTotalWords  := 'Total %d words';
   
   _D_hFindWord    := 'You can use following characters in wildcard:'+#10+
   '"%" as set of any characters and'+#10+'"_" as one any character';
   
   _D_mExist       := 'This word is already in dictionary.';
   
   _D_mIsClearAll  := 'You are about to erase the programs dictionary. Continue?';
   
   _G_cCaption     := 'Computer`s Hint';
   
   _G_cDir         := 'Dir';
   
   _G_cHelp        := '"%s" - Computer`s hint';
   
   _G_cPosX        := 'X';
   
   _G_cPosY        := 'Y';
   
   _G_cThinking    := 'Think over';
   
   _G_cTotalPatts  := 'Total templates: %d';
   
   _G_cTotalWords  := 'Total words: %d';
   
   _G_cWWeight     := 'Weight';
   
   _G_cavPatts     := 'List of possible templates';
   
   _G_cavWords     := 'List of possible words';
   
   _G_mIPoints     := 'I have gained for you additional %d point%s...'+#10+
                     'And also took care of myself...';
   
   _H_LGot         := 'New';
   
   _H_LPName       := 'Player';
   
   _H_LTotal       := 'Total';
   
   _H_LUsed        := 'Used';
   
   _H_PAll         := 'All players';
   
   _H_cTotal       := '%d turn(s)';
   
   _H_claPlayer    := 'Show history of';
   
   _K_cAll         := 'All replace';
   
   _K_cCaption     := 'Skip turn';
   
   _K_cChooseL     := 'Select letters for replacement';
   
   _K_cContinue    := 'Continue game';
   
   _K_cSkip        := 'Skip turn';
   
   _K_mIsSkip      := 'Do you really want to skip your turn with all letters unchanged?';
   
   _M_LgCenter     := 'The first word should pass middle of the field';
   
   _M_LgContactR   := 'You have set the word, that adjoined on the RIGHT other word.'+#10+
   'This is not allowed';
   
   _M_LgContactL   := 'You have set the word, that adjoined on the LEFT  other word.'+#10+
   'This is not allowed';
   
   _M_LgContactU   := 'You have set the word, that adjoined on the UP    other word.'+#10+
   'This is not allowed';
   
   _M_LgContactD   := 'You have set the word, that adjoined on the DOWN  other word.'+#10+
   'This is not allowed';
   
   _M_LgNoCross    := 'There is no necessary intersection of words';
   
   _M_LgOut        := 'Checking word`s coming out of a field';
   
   _M_LgNoL2Set    := 'You have not spent any character';
   
   _M_LgCrossError := 
'The characters were on an intersection of a word, set by you, with in other words, do not coincide.'
   ;
   
   _M_ccb1         := 'Player 1';
   
   _M_ccb2         := 'Player 2';
   
   _M_ccb3         := 'Player 3';
   
   _M_ccb4         := 'Player 4';
   
   _M_ccb5         := 'Player 5';
   
   _M_claPlayer    := 'Players:';
   
   _M_claPoints    := 'Points:';
   
   _M_claLetters   := 'Letters:';
   
   _M_claTopNames  := 'Top 10';
   
   _M_ctbBack      := 'Back';
   
   _M_ctbExit      := 'Exit';
   
   _M_ctbHelp      := 'Help';
   
   _M_ctbHistory   := 'Turn`s history';
   
   _M_ctbLang      := 'Language';
   
   _M_ctbLoadGame  := 'Load game';
   
   _M_ctbSaveGame  := 'Save game';
   
   _M_ctbSetup     := 'Options';
   
   _M_ctbSkip      := 'Skip turn';
   
   _M_ctbSuggest   := 'Suggest a word';
   
   _M_ctbNet       := 'Network game';
   
   _M_hPLetters    := 'Letters of the player %s';
   
   _M_hPPoints     := 'Points of the player %s';
   
   _M_mBack        := 'Return to the last turn?';
   
   _M_mBonus       := 'You have used all %d letters and your bonus is %d points';
   
   _M_mDiffLVersion := 
   'The language of the loading game is different for the current (English)'+#10+
   'Change the current language to "%s", to load this game';
   
   _M_mGIsStop     := 'End the game?';
   
   _M_mHIsNeed     := 'Do you really want my hint just for %d point%s?';
   
   _M_mINoWord     := 'Yes... With such letters even I am unable to invent a word...';
   
   _M_mIPoints     := 'I have gained %d point%s';
   
   _M_mISkip       := 'Alas, I skip a turn...';
   
   _M_mLNot        := '"%s" - is not your letter';
   
   _M_mLNotPC      := '"%s" - is not your letter - but... Late.';
   
   _M_mLNotReg     := '"%s" - is not registered letter of the alphabet';
   
   _M_mPDelete     := 'Delete the player "%s"?';
   
   _M_mPEnter      := 'Enter a name of the player';
   
   _M_mPUNames     := 'Please don`t repeat the names of the players';
   
   _M_mPoints      := 'You have gained %d point%s';
   
   _M_mTimeOut     := 'Your time is over and your turn passes to the following player...';
   
   _M_mWUsed       := 'Word %s already used, think above other word';
   
   _M_sFFilter     := 'Saved game (*.eru) | *.eru';
   
   _M_sFNGame      := 'Game1.eru';
   
   _M_sGPlay       := 'Start the Game';
   
   _M_sGStop       := 'End the game';
   
   _M_sPPCName     := 'Computer';
   
   _M_sSkip        := 'Skip a turn';
   
   _M_cNetUsers    := 'Total %d net users';
   
   _M_cNetReadyCnt := 'Ready to play %d players';
   
   _M_cNetErrLess  := 'Not enought players to play';
   
   _M_cNetErrMore  := 'Too many players to play';
   
   _M_cNetJoin     := 'Join to game';
   
   
   _S_cALoad       := 'Autoload';
   
   _S_cASave       := 'Autosave';
   
   _S_cTips        := 'Show tool tips';
   
   _S_cAnim        := 'Animation of letters';
   
   _S_cCaption     := 'Game options';
   
   _S_cDLevel      := 'Difficulty level';
   
   _S_cStore       := 'Close';
   
   _S_cTimeLimit   := 'Time limit (seconds)';
   
   _T_cPhrase      := 'Enter your cool word:';
   
   _T_mClear       := 'Clear the leaders`s table?';
   
   _W_WDirHor      := 'Horizontally';
   
   _W_WDirVer      := 'Vertically';
   
   _W_cApply       := 'Ok';
   
   _W_cCancelHint  := 'Cancel the turn and delete this word from programs dictionary';
   
   _W_cCancel      := 'Cancel';
   
   _W_cCaption     := 'Input of a new word';
   
   _W_cNoUse       := 'Delete from dictionary';
   
   _W_cNoUseConfirm := 'Delete this word from the dictionary permanently?';
   
   _W_cPCNewWord   := 'A new word of the COMPUTER';
   
   _W_cSet         := 'Set';
   
   _W_mHelp        := 'enter a new word that you want to place.'+#10+
                     'Previously you can assemble this word'+#10+
                     'in your pattern by moving the letters in the necessary order'+#10+
                     'and mark the LAST letter with selection.';
   
   _W_mAbortAdd    := 
   'Since the computer is not allowed to use this word - so for you too :(';
   
   _W_mIsAdd       := 
   'You have entered a word "%s", which is missed in the program`s dictionary.'+#10+
   'To add this word in its(her) dictionary?';
   
   _W_mReplaceAst  := 'Insert a letter instead asterisk.';
   
   _W_mSuggested   := 'This word I already offered to you.'+#10+
   'Will you think over other word?';
   
   _W_mWWeight     := '%d point%s';
   
   end;


{------------------------------------------------------------------------------}

procedure DefineConstantsDEU;
   
begin
   
   CurrentLanguage := lgDEU;
   {ae AE  oe  OE  ue  UE  ss}
   ReadCharSet := [65..90,97..122, 228,196,246,214,252,220,223];
   
   
   _A_cAuthor      := 'Hersteller:';
   
   _A_cCaption     := 'Info';
   
   _A_cName        := 'Alexey Romanov';
   
   _A_cOwner       := 'Besitzer:';
   
   _A_cOwnerName   := _ProductOwner;
   
   _A_cVersion     := 'Version: '+_ProductVersion;
   
   _C_cCaption     := 'Wцrterbuch';
   
   _C_cClear       := 'Lцschen';
   
   _C_cClose       := 'SchlieЯen';
   
   _C_cPoints      := 'Punkte';
   
   _C_cProductName := 'Erudit';
   
   _C_cWord        := 'Wort';
   
   _D_FNActive     := 'Active.txt';
   
   _C_cTurn        := 'Gang';
   
   _D_FNINActive   := 'Inactive.txt';
   
   _D_FNotFound    := 'Datei "%s" wurde nicht gefunden.';
   
   _D_StateReading := 'Zustand: Neue Wцrter werden gelesen...';
   
   _D_StateSaving  := 'Zustand: Das alte Wцrterbuch wird gespeichert...';
   
   _D_StateWaiting := 'Zustand: Ihre Wьnschene werden erwartet...';
   
   _D_StateWriting := 'Zustand: Die neuen Wцrter werden ins Wцrterbuch gespeichert...';
   
   _D_cAddWord     := 'Wort einfьgen >>';
   
   _D_cDelWord     := 'Wort entfernen <<';
   
   _D_cClear       := 'Lцschen das Wцrterbuch';
   
   _D_cFindWord    := 'Wort suchen';
   
   _D_cAdd         := 'Einfьgen aus Detei';
   
   _D_cSave        := 'Speichern zu Detei';
   
   _D_cTotalWords  := 'Wцrterzahl insgesamt: %d';
   
   _D_hFindWord    := 
'Sie kцnnen die folgende Symbolen als Muster benutzen: "%" als jegliche Buchstabenmenge und "_" als eine jegliche Buchstabe'
   ;
   
   _D_mExist       := 'Dieses Wort gehцrt schon zu dem Wцrterbuch.';
   
   _D_mIsClearAll  := 'Wenn Sie alle Wцrter lцschen wollen, clicken Sie `OK`';
   
   _G_cCaption     := 'Tipp';
   
   _G_cDir         := 'Lage';
   
   _G_cHelp        := '"%s" - Computers Tip';
   
   _G_cPosX        := 'X';
   
   _G_cPosY        := 'Y';
   
   _G_cThinking    := 'Ьberlegen';
   
   _G_cTotalPatts  := 'Anzahl der Muster: %d';
   
   _G_cTotalWords  := 'Anzahl der Wцrter: %d';
   
   _G_cWWeight     := 'Wert';
   
   _G_cavPatts     := 'Liste der mцglichen Muster';
   
   _G_cavWords     := 'Liste der mцglichen Wцrter';
   
   _G_mIPoints     := 'Ich habe fьr Sie zusдtzlich %d Punkte erreicht...'+#10+
   'An mich denke ich aber auch noch...';
   
   _H_LGot         := 'Punkte';
   
   _H_LPName       := 'Spieler';
   
   _H_LTotal       := 'Insgesamt';
   
   _H_LUsed        := 'Buchstaben';
   
   _H_PAll         := 'Alle Spieler';
   
   _H_cTotal       := '%d Zьge';
   
   _H_claPlayer    := 'Spielablauf fьr';
   
   _K_cAll         := 'Alle umtauschen';
   
   _K_cCaption     := 'Zug durchlassen';
   
   _K_cChooseL     := 'Wдhlen Sie Buchstaben zum Umtauschen';
   
   _K_cContinue    := 'Weiter spielen';
   
   _K_cSkip        := 'Zug verlassen';
   
   _K_mIsSkip      := 
   'Wollen Sie wirklich den Zug durchlassen und dabei keine Buchstabe wechseln?';
   
   _M_LgCenter     := 'Das erste Wort soll durch die Mitte des Feldes durchgehen';
   
   _M_LgContactR   := 
   'Das von Ihnen gestelltes Wort kommt mit dem RECHTSstehenden Wort in Berьhrung.'+#10+
   'Das ist nicht zugelassen';
   
   _M_LgContactL   := 
   'Das von Ihnen gestelltes Wort kommt mit dem LINKSstehenden  Wort in Berьhrung.'+#10+
   'Das ist nicht zugelassen';
   
   _M_LgContactU   := 
   'Das von Ihnen gestelltes Wort kommt mit dem OBENstehenden   Wort in Berьhrung.'+#10+
   'Das ist nicht zugelassen';
   
   _M_LgContactD   := 
   'Das von Ihnen gestelltes Wort kommt mit dem UNTENstehenden  Wort in Berьhrung.'+#10+
   'Das ist nicht zugelassen';
   
   _M_LgNoCross    := 'Die notwendige Kreuzung der Wцrter ist nicht stattgefunden';
   
   _M_LgOut        := 'Das von Ihnen gestelltes Wort ьberschreitet die Feldgrenze';
   
   _M_LgNoL2Set    := 'Sie haben keine Buchstabe benutzt';
   
   _M_LgCrossError := 
'Die Buchstaben, die sich auf der Kreuzung des von Ihnen gestellten Wortes mit anderen Worten befinden, nicht zusammentreffen'
   ;
   
   _M_ccb1         := 'Spieler 1';
   
   _M_ccb2         := 'Spieler 2';
   
   _M_ccb3         := 'Spieler 3';
   
   _M_ccb4         := 'Spieler 4';
   
   _M_ccb5         := 'Spieler 5';
   
   _M_claPlayer    := 'Spieler:';
   
   _M_claPoints    := 'Punkts:';
   
   _M_claLetters   := 'Buchstaben:';
   
   _M_claTopNames  := 'Top 10';
   
   _M_ctbBack      := 'Zug zurьck';
   //nehmen';
   _M_ctbExit      := 'Beenden';
   
   _M_ctbHelp      := 'Hilfe';
   
   _M_ctbHistory   := 'Spielablauf';
   
   _M_ctbLang      := 'Language';
   
   _M_ctbLoadGame  := 'Spiel laden';
   
   _M_ctbSaveGame  := 'Spiel speichern';
   
   _M_ctbSetup     := 'Optionen';
   
   _M_ctbSkip      := 'Zug durchlassen';
   
   _M_ctbSuggest   := 'Computers Tip';
   
   _M_ctbNet       := 'Netzwerk Spiel';
   
   _M_hPLetters    := 'Buchstaben von %s';
   
   _M_hPPoints     := 'Punkte von %s';
   
   _M_mBack        := 'Nehmen den letzten Zug zurьck?';
   
   _M_mBonus       := 
'Sie haben alle %d Buchstaben benutzt und jetzt bekommen Sie zusдtzlich eine Premie - %d Punkte!'
   ;
   
   _M_mDiffLVersion := 'Sie laden das Spiel mit andere Sprachversion.'+#10+
   'Um dieses Spiel zu laden, wдhlen Sie "%s" als Sprache des Spieles.';
   
   _M_mGIsStop     := 'Das Spiel beenden?';
   
   _M_mHIsNeed     := 'Wollen Sie wirklich mein Tip fьr %d Punkt%s haben?';
   
   _M_mINoWord     := 
   'Oops!... Mit solchen Buchstaben kann ich Ihnen auch nicht weiter helfen...';
   
   _M_mIPoints     := 'Ich habe extra %d Punkt%s erreicht';
   
   _M_mISkip       := 'Leider, muss ich den Zug durchlassen...';
   
   _M_mLNot        := '"%s" - ist nicht Ihr Buchstabe';
   
   _M_mLNotPC      := '"%s" - ist nicht Ihr Buchstabe, aber leider... spдt.';
   
   _M_mLNotReg     := '"%s" - ist kein legitim Buchstabe des Alphabetes';
   
   _M_mPDelete     := 'Den Spieler "%s verweisen?';
   
   _M_mPEnter      := 'Geben Sie bitte Name des Spielers ein';
   
   _M_mPUNames     := 'Geben Sie bitte nicht wiederholten Namen der Spieler ein';
   
   _M_mPoints      := 'Sie haben zusдtzlich %d Punkt%s erreicht';
   
   _M_mTimeOut     := 'Ihre Zeit ist aus und der Zug geht zum nдchste Spieler...';
   
   _M_mWUsed       := 
   'Das Wort %s wurde schon frьher verwendet, ьberlegen Sie sich ein anderes Wort';
   
   _M_sFFilter     := 'Gespeicherte Spiel (*.eru)|*.eru';
   
   _M_sFNGame      := 'Game1.eru';
   
   _M_sGPlay       := 'Spiel starten';
   
   _M_sGStop       := 'Spiel beenden';
   
   _M_sPPCName     := 'Computer';
   
   _M_sSkip        := 'Zug durchlassen';
   
   _M_cNetUsers    := 'Insgesamt %d Netzwerkbenutzer';
   
   _M_cNetReadyCnt := '%d Spieler fertig zu spielen';
   {!}
   _M_cNetErrLess  := 'Zu wenig Spieler zu spielen';
   {!}
   _M_cNetErrMore  := 'Zu viel Spieler zu spielen';
   {!}
   _M_cNetJoin     := 'Sich anzuschlieЯen zu Spiel';
   {!}
   
   _S_cALoad       := 'Autoladung';
   
   _S_cASave       := 'Autospeicherung';
   
   _S_cTips        := 'Zeigen Hilfetipps';
   
   _S_cAnim        := 'Animation bei der Umstellung der Buchstaben';
   
   _S_cCaption     := 'Optionen';
   
   _S_cDLevel      := 'Schwierigkeitsgrad';
   
   _S_cStore       := 'Speichern';
   
   _S_cTimeLimit   := 'Zeitbegrenzung (Sekunden)';
   
   _T_cPhrase      := 'Schreiben Sie Ihren Coolspruch:';
   
   _T_mClear       := 'Die Gewinnertabelle lцschen?';
   
   _W_WDirHor      := 'Waagerecht';
   
   _W_WDirVer      := 'Senkrecht';
   
   _W_cApply       := 'Ok';
   
   _W_cCancel      := 'Abbrechen';
   
   _W_cCancelHint  := 'Abbrechen den Zug und entfernen dises Wort von Wцrterbuch';
   
   _W_cCaption     := 'Neues Wort eingaben';
   
   _W_cNoUse       := 'Entf. aus dem Wцrterbuch';
   
   _W_cNoUseConfirm := 'Entfernen dieses Wort vom Wцrterbuch?';
   
   _W_cPCNewWord   := 'Neues Wort des COMPUTERS';
   
   _W_cSet         := 'Benutzen';
   
   _W_mHelp        := 'eingeben Sie das neue Wort, das Sie stellen wollen.'+#10+

   'Vorlaufig konnen Sie in Ihrer Schablone, durch Umstellung die Buchstaben'+#10+
                     'in der notigen Ordnung und Bezeichnung die letzte Buchstabe'+#10+
                     'mit der Markierung, dieses Wort bilden.';
   
   _W_mAbortAdd    := 'Wenn selbst Computer dieses Wort nicht benutzen darf,'+#10+
   'selbstverstдndlich, dьrfen Sie es auch nicht... :(';
   
   _W_mIsAdd       := 'Das Wort "%s" ist nicht in Wцrterbuch gefunden.'+#10+
   'Wollen Sie dieses Wort eintragen?';
   
   _W_mReplaceAst  := 'Geben Sie bitte gewьnschte Buchstabe ein statt "*"';
   
   _W_mSuggested   := 'Dieses Wort habe ich Ihnen schon angeboten.'+#10+
   'Werden Sie nach anderes Wort suchen?';
   
   _W_mWWeight     := '%d Punkte';
   
   
   end;


{------------------------------------------------------------------------------}

procedure LoadConstants;
   

var
   f,i          : integer;
   
   Save_Cursor     : TCursor;
   
   CS         : TFontCharset;
   

begin
   
   {Charset}
   case CurrentLanguage of
   
   lgDEU:
      CS := EASTEUROPE_CHARSET;
   
   lgRUS:
      CS := RUSSIAN_CHARSET;
   
   else
      CS := DEFAULT_CHARSET;
   
   end;
   
   
   {Font}
   with Application do
      
      for f:=0 to Application.ComponentCount-1 do
         
         for i:=0 to Application.Components[f].ComponentCount-1 do
            
            if Application.Components[f].Components[i].ClassName='TForm' then
               
               if CurrentLanguage=lgRUS then
                  
                  (Application.Components[f].Components[i] as TForm).Font.Name := 
                  'RS Sans Serif'
            else
               
               (Application.Components[f].Components[i] as TForm).Font.Name := 
               'MS Sans Serif';
   
   {}
   with Application do
      
      for f:=0 to Application.ComponentCount-1 do
         
         for i:=0 to Application.Components[f].ComponentCount-1 do begin
            
            //NO!      if Application.Components[f].Components[i].ClassName='TCoolBar' 
            then
               (Application.Components[f].Components[i] as TCoolBar).Font.Charset := CS;
            
            if Application.Components[f].Components[i].ClassName='TButton' then
               (Application.Components[f].Components[i] as TButton).Font.Charset := CS;
            
            if Application.Components[f].Components[i].ClassName='TBitBtn' then
               (Application.Components[f].Components[i] as TBitBtn).Font.Charset := CS;
            
            if Application.Components[f].Components[i].ClassName='TLabel' then
               (Application.Components[f].Components[i] as TLabel).Font.Charset := CS;
            
            if Application.Components[f].Components[i].ClassName='TCheckbox' then
               (Application.Components[f].Components[i] as TCheckbox).Font.Charset := CS;
            
            if Application.Components[f].Components[i].ClassName='TStringGrid' then
               (Application.Components[f].Components[i] as TStringGrid).Font.Charset := CS
            ;
            
            if Application.Components[f].Components[i].ClassName='TSpeedButton' then
               (Application.Components[f].Components[i] as TSpeedButton).Font.Charset := 
               CS;
            
            if Application.Components[f].Components[i].ClassName='TComboBox' then
               (Application.Components[f].Components[i] as TComboBox).Font.Charset := CS;
            
            if Application.Components[f].Components[i].ClassName='TMemo' then
               (Application.Components[f].Components[i] as TMemo).Font.Charset := CS;
            
            if Application.Components[f].Components[i].ClassName='TStaticText' then
               (Application.Components[f].Components[i] as TStaticText).Font.Charset := CS
            ;
            
            if Application.Components[f].Components[i].ClassName='TEdit' then
               (Application.Components[f].Components[i] as TEdit).Font.Charset := CS;
            
            if Application.Components[f].Components[i].ClassName='TListBox' then
               (Application.Components[f].Components[i] as TListBox).Font.Charset := CS;
            
            end;
   
   
   if fm_Main.ToolBar1.Top>0 then begin
      
      fm_Main.ToolBar1.Top := 0;
      
      fm_Main.ToolBar2.Top := 27;
      
      fm_Main.ToolBar3.Top := 29;
      
      end;
   
   
   fm_Main.CoolBar1.Enabled := false;
   
   Save_Cursor := Screen.Cursor;
   
   Screen.Cursor := crHourGlass;
   
   
   try
   fm_Main.meAphor.Caption := GetAphorism;
   
   
   Players[1].Name.Items.Strings[Players[1].Name.Items.Count-1] := _M_sPPCName;
   
   if fm_Main.cb2.Text='' then
      fm_Main.cb2.Text := _M_sPPCName;
   
   for i:=2 to MaxPlayers do
      Players[i].Name.Items:=Players[1].Name.Items;
   
   
   fm_About.Caption               := _A_cCaption;
   
   fm_About.laAuthorName.Caption  := _A_cName;
   
   fm_About.laAuthorName2.Caption := _A_cName;
   
   fm_About.laVersion.Caption     := _A_cVersion;
   
   fm_About.laVersion2.Caption    := _A_cVersion;
   
   fm_DMan.Caption                 := _C_cCaption;
   
   fm_DMan.btClear.Caption         := _D_cClear;
   
   fm_DMan.btLoad.Caption          := _D_cAdd;
   
   fm_DMan.btSave.Caption          := _D_cSave;
   
   fm_DMan.btAddWord.Caption       := _D_cAddWord;
   
   fm_DMan.btDelWord.Caption       := _D_cDelWord;
   
   fm_DMan.btFindWord.Caption      := _D_cFindWord;
   
   fm_DMan.edFindWord.Hint         := _D_hFindWord;
   
   fm_DMan.stState.Caption         := _D_StateWaiting;
   
   
   fm_Main.Caption                 := _C_cProductName;
   
   (*
   fm_Main.cb1.Text                := _M_ccb1        ;
   fm_Main.cb2.Text                := _M_ccb2        ;
   fm_Main.cb3.Text                := _M_ccb3        ;
   fm_Main.cb4.Text                := _M_ccb4        ;
   fm_Main.cb5.Text                := _M_ccb5        ;
   *)
   fm_Main.laPlayers.Caption       := _M_claPlayer;
   
   fm_Main.laPoints.Caption        := _M_claPoints;
   
   fm_Main.laLetters.Caption       := _M_claLetters;
   
   fm_Main.btTop.Caption           := _M_claTopNames;
   
   fm_Main.tbAbout.Caption         := _A_cCaption;
   
   fm_Main.tbBack.Caption          := _M_ctbBack;
   
   fm_Main.tbDic.Caption           := _C_cCaption;
   
   fm_Main.tbExit.Caption          := _M_ctbExit;
   
   fm_Main.tbHelp.Caption          := _M_ctbHelp;
   
   fm_Main.tbHistory.Caption       := _M_ctbHistory;
   
   fm_Main.tbLang.Caption          := _M_ctbLang;
   
   fm_Main.tbLoadGame.Caption      := _M_ctbLoadGame;
   
   fm_Main.tbPlay.Caption          := _M_sGPlay;
   
   fm_Main.tbSaveGame.Caption      := _M_ctbSaveGame;
   
   fm_Main.tbSetup.Caption         := _M_ctbSetup;
   
   fm_Main.tbSkip.Caption          := _M_ctbSkip;
   
   fm_Main.tbSuggest.Caption       := _M_ctbSuggest;
   
   fm_Main.tbNet.Caption           := _M_ctbNet;
   
   
   fm_PMoves.Caption               := _M_ctbHistory;
   
   fm_PMoves.laPlayers.Caption     := _H_claPlayer;
   
   
   fm_Setup.Caption                := _S_cCaption;
   
   fm_Setup.btApply.Caption        := _C_cClose;
   
   fm_Setup.cbTips.Caption         := _S_cTips;
   
   fm_Setup.cbAnim.Caption         := _S_cAnim;
   
   fm_Setup.cbASave.Caption        := _S_cASave;
   
   fm_Setup.cbALoad.Caption        := _S_cALoad;
   
   fm_Setup.cbTime.Caption         := _S_cTimeLimit;
   
   fm_Setup.lbDLevel.Caption       := _S_cDLevel;
   
   
   fm_Skip.Caption                 := _K_cCaption;
   
   fm_Skip.btCancel.Caption        := _K_cContinue;
   
   fm_Skip.btSkip.Caption          := _K_cSkip;
   
   fm_Skip.gb.Caption              := _K_cChooseL;
   
   fm_Skip.cbAll.Caption           := _K_cAll;
   
   
   fm_Suggest.Caption              := _G_cCaption;
   
   fm_Suggest.btApply.Caption      := _W_cSet;
   
   fm_Suggest.btCancel.Caption     := _G_cThinking;
   
   fm_Suggest.btUnUse.Caption      := _W_cNoUse;
   
   fm_Suggest.laPatts.Caption      := _G_cavPatts;
   
   fm_Suggest.laWords.Caption      := _G_cavWords;
   
   fm_Suggest.stPatts.Caption      := _G_cTotalPatts;
   
   fm_Suggest.stWords.Caption      := _G_cTotalWords;
   
   fm_Top.Caption                  := _M_claTopNames;
   
   fm_Top.laPhrase.Caption         := _T_cPhrase;
   
   fm_Word.Caption                 := _W_cCaption;
   
   fm_Word.btApply.Caption         := _W_cSet;
   
   fm_Word.btCancel.Caption        := _G_cThinking;
   
   fm_Word.btWDir.Caption          := _W_WDirHor;
   
   fm_WordC.Caption                := _W_cPCNewWord;
   
   fm_WordC.btApply.Caption        := _W_cApply;
   
   fm_WordC.btCancel.Caption       := _W_cNoUse;
   
   if ShowTips then
      
      fm_WordC.btCancel.Hint          := _W_cCancelHint;
   
   
   fm_Main.Repaint;
   
   
   fm_Main.ToolButton1.Width := Round((790 - 7*fm_Main.tbExit.Width)/6);
   
   fm_Main.ToolButton2.Width := fm_Main.ToolButton1.Width;
   
   fm_Main.ToolButton3.Width := fm_Main.ToolButton1.Width;
   
   fm_Main.ToolButton4.Width := fm_Main.ToolButton1.Width;
   
   fm_Main.ToolButton7.Width := fm_Main.ToolButton1.Width;
   
   fm_Main.ToolButton5.Width := 790 - fm_Main.tbHistory.Left
                                   - fm_Main.tbHistory.Width
                                   - fm_Main.tbExit.Width;
   
   
   fm_Main.ToolButton01.Width := Round((790 - 7*fm_Main.tbAbout.Width)/6);
   
   fm_Main.ToolButton02.Width := fm_Main.ToolButton01.Width;
   
   fm_Main.ToolButton03.Width := fm_Main.ToolButton01.Width;
   
   fm_Main.ToolButton04.Width := fm_Main.ToolButton01.Width;
   
   fm_Main.ToolButton05.Width := fm_Main.ToolButton01.Width;
   
   fm_Main.ToolButton06.Width := 790
                                    - fm_Main.tbHelp.Left
                                    - fm_Main.tbHelp.Width
                                    - fm_Main.tbAbout.Width;
   
   
   fm_Main.Repaint;
   
   finally
   Screen.Cursor := Save_Cursor;
   
   fm_Main.CoolBar1.Enabled := true;
   
   end;

end;


{------------------------------------------------------------------------------}

procedure FontLoad;
   

var
   
   Res        : TResourceStream;
   
   a          : array[0..1023] of char;
   
   c          : cardinal;
   

begin
   
   try
   c := GetEnvironmentVariable(PChar('TEMP'), a, c);
   
   sSysVarTEMP := strpas(a);
   if sSysVarTEMP[length(sSysVarTEMP)]<>'\' then
      sSysVarTEMP := sSysVarTEMP+'\';
   
   Res := TResourceStream.Create(hInstance, 'FNT_RSERIF', Pchar('RSDATA'));
   
   Res.SavetoFile(sSysVarTEMP+'rserife.fon');
   
   Res.Free;
   
   AddFontResource(PChar(sSysVarTEMP+'rserife.fon'));
   
   SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
   
   except;
   
   fm_Main.Caption := fm_Main.Caption+': Exception: Resource font not loaded';
   
   end;

end;


{------------------------------------------------------------------------------}

procedure FontErase;
   
begin
   
   DeleteFile(sSysVarTEMP+'rserife.fon');
   
   end;


{------------------------------------------------------------------------------}
end.