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.