1 (************************************************************************
2  *  Copyright (C) 2014-2017, 2019  Paul Petrov                          *
3  *                                                                      *
4  *  This file is part of eMKatic.                                       *
5  *                                                                      *
6  *  eMKatic is free software: you can redistribute it and/or modify     *
7  *  it under the terms of the GNU General Public License as published   *
8  *  by the Free Software Foundation, either version 3 of the License,   *
9  *  or (at your option) any later version.                              *
10  *                                                                      *
11  *  eMKatic is distributed in the hope that it will be useful,          *
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty         *
13  *  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.             *
14  *  See the GNU General Public License for more details.                *
15  *                                                                      *
16  *  You should have received a copy of the GNU General Public License   *
17  *  along with eMKatic.  If not, see <http://www.gnu.org/licenses/>.    *
18  *                                                                      *
19  ************************************************************************)
20 
21 unit ResStr;
22 
23 {$mode objfpc}{$H+}
24 
25 interface
26 
27 type CP866str = type string(866);
28 
29 resourcestring
30 
31 { Main }
32 
33   rsError='Ошибка'; rsCommandLineError='Ошибка в командной строке';
34   rsRestartPromt='Изменения вступят в силу при следующем запуске приложения.';
35   rsTotalForget='Удалить сохранённое состояние при закрытии приложения?';
36   rsCompilerReqVer='(должна быть версия %s или выше)';
37   rsCompilerUndefined='Компилятор не подключен!';
38   rsCompilerConfirm='Подключить компилятор?';
39   rsBadCompiler='Неудаётся запустить компилятор!';
40 
41 { Service }
42 
43   rsMK152='MK-152'; rsMK152M='MK-152M'; rsMK1152='MK-1152';
44   rsMK161='MK-161 (серый)'; rsMK161b='MK-161 (чёрный)';
45   rsStopBit='Стоп-бит'; rsEvenParity='Чёт'; rsOddParity='Нечёт';
46   rsProgStartPage='Начальная страница программы';
47   rsSelectDiskFileTitle='Выбрать файл внешнего диска';
48   rsSelectDiskFileFilter='Электронный диск (*.mkf)|*.mkf|Все файлы (*.*)|*.*';
49   rsFileFilter='Все доступные форматы (*.mkl; *.mkp; *.mkd; *.mkb; *.mkt; *.mkn; *.mki)|*.mkl;*.mkp;*.mkd;*.mkb;*.mkt;*.mkn;*.mki|Исходный код программы (*.mkl)|*.mkl|Программа (*.mkp)|*.mkp|Десятичные данные (*.mkd)|*.mkd|Двоичные данные (*.mkb)|*.mkb|Текст (*.mkt)|*.mkt|Электронный блокнот (*.mkn)|*.mkn|Графический экран (*.mki)|*.mki|Графические файлы (*.bmp;*.xpm;*.png;*.pbm;*.pgm;*.ppm;*.jpeg;*.jpg;*.jpe;*.jfif;*.tif;*.tiff;*.gif)|*.bmp;*.xpm;*.png;*.pbm;*.pgm;*.ppm;*.jpeg;*.jpg;*.jpe;*.jfif;*.tif;*.tiff;*.gif|Все файлы (*.*)|*.*';
50   rsImgFileFilter='Графические файлы (*.bmp;*.xpm;*.png;*.pbm;*.pgm;*.ppm;*.jpeg;*.jpg;*.jpe;*.jfif;*.tif;*.tiff;*.gif)|*.bmp;*.xpm;*.png;*.pbm;*.pgm;*.ppm;*.jpeg;*.jpg;*.jpe;*.jfif;*.tif;*.tiff;*.gif|Точечные рисунки (*.bmp)|*.bmp|Pixmap (*.xpm)|*.xpm|Portable Network Graphic (*.png)|*.png|Portable PixMap (*.pbm;*.pgm;*.ppm)|*.pbm;*.pgm;*.ppm|Joint Picture Expert Group (*.jpeg;*.jpg;*.jpe;*.jfif)|*.jpeg;*.jpg;*.jpe;*.jfif|Формат Tagged Image File (*.tif;*.tiff)|*.tif;*.tiff|Формат Graphics Interchange Format (*.gif)|*.gif|Все файлы (*.*)|*.*';
51   rsCompilerFileFilter='MKL2MKP (mkl2mkp*)|mkl2mkp*|Все файлы (*)|*';
52   rsCompilerFileFilterWin='MKL2MKP (mkl2mkp*.exe)|mkl2mkp*.exe|Исполняемые файлы (*.exe)|*.exe|Все файлы (*.*)|*.*';
53 
54   rsWrongFileSize='Неверный размер файла';
55   rsImgImportError='Ошибка импорта изображения';
56   rsDoubleImgImport='Попытка загрузки в графический экран второго изображения.';
57   rsImgImportWrongMode='Неподходящий режим для загрузки изображений!';
58   rsRegInput='Изменение регистра'; rsNewValPromt='Введите новое значение:';
59   rsLoadImgToAddr='Загрузить изображение «%s» в %s по адресам %d-%d?';
60   rsLoadImgAddrError='Изображение «%s» невозможно загрузить в %s c адреса %d';
61   rsUnknownFileFormat='Неизвестный формат файла';
62   rsBadFileFormat='Неподдерживаемый формат файла';
63   rsProgMem='память программ'; rsBinArea='область двоичных данных';
64   rsWrongImgSize='Изображение имеет недопустимые размеры.';
65   rsProgPlaceError='Нельзя разместить программу';
66   rsFileCorrupted='Некорректное содержимое файла';
67   rsUnusualFileExt='Вы действительно хотите сохранить файл с нестандартным расширением?';
68   rsFileSaveError='Не удалось сохранить файл';
69   rsResetKeyLayout='Сбросить раскладку в значения по умолчанию?';
70   rsLoadCover='Загрузить накладку';
71   rsLoadImageAsCover='Размеры изображения превышают 128×64. Вы хотели загрузить накладку на клавиатуру?';
72   rsMilliSec=' мс'; rsMicroSec=' мкс'; rsFPS=' к/с';
73 
74   rsComKeyboard='Клавиатура'; rsAdcProg='Переключение каналов через R9092';
75 
76 { SrcEdit}
77 
78   rsSourceFileFilter='Исходный код программы (*.mkl)|*.mkl|Все файлы (*.*)|*.*';
79   rsTemplateFileFilter='Шаблоны исходного кода (*.txt)|*.txt|Все файлы (*.*)|*.*';
80 
81   rsBookmark='Закладка'; rsString='строка';
82   rsSrcModified='Исходный код изменён. Сохранить?';
83   rsSrcGotoCaption='Перейти к строке';
84   rsSrcGotoPromt='Введите номер строки:';
85   rsSrcGotoError='Неверный ввод!';
86   rsNoTemplates='Нет шаблонов';
87   rsAddTemplates='Добавить группу'; rsDelTemplates='Удалить группу';
88   rsDelTemplatesC='Удалить группу шаблонов «%s»?';
89   rsTemplatesAdded='Добавлена группа шаблонов «%s»';
90 
91   rsUnknownFileFormat2='Файл «%s» имеет неизвестный формат!';
92   rsBigImageSize='Размеры изображения в файле «%s» превышают 128×64!';
93   rsImgImportContinue='Продолжить импорт изображений?';
94 
95 { Debug }
96 
97   rsProgMemory='Память программ'; rsDecData='Десятичные данные';
98   rsBinDataAndText='Двоичные данные и текст'; rsNotebook='Блокнот';
99   rsFuncRegAcs='Обращения к регистрам функций';
100   rsUniByteBuf='Универсальный байтовый буфер';
101   rsSerialTxBuf='Буфер передачи последовательного порта';
102   rsSerialRxBuf='Буфер приёма последовательного порта';
103 
104   rsReadCnts='счётчики чтений'; rsWriteCnts='счётчики записей';
105   rsExecCnts='счётчики исполнения'; rsMnemonics='мнемоники';
106   rsDecForms='десятичный вид'; rsHexForms='шестнадцатеричный вид';
107   rsSymForms='символьный вид'; rs9thBit='девятый бит'; rsValues='значения';
108   rsReadCnt='Чтения'; rsWriteCnt='Записи'; rsExecCnt='Исполнения';
109   rsMnemonic='Мнемоника'; rsDecForm='Дес.'; rsHexForm='Шес.'; rsSymForm='Сим.';
110   rs9th='9-й'; rsValue='Значение'; rsAddr='Адрес'; rsGroupAddr='Группа';
111   rsInputError='Неверный ввод!'; rsEdit='Изменить'; rsZeroize='Обнулить';
112   rsUnbreakAll='Снять остановы'; rsReadBreak='по чтению';
113   rsWriteBreak='по записи'; rsChangeBreak='по изменению';
114   rsExecBreak='исполнения';
115 
116 { Display }
117 
118   rsKeyboardLocked='Клавиатура заблокирована';
119 
120 { EmuKbd }
121 
122   rsCopy='Копировать'; rsPaste='Вставить'; rsSaveScr='Сохранить экран';
123   rsLoad='Загрузить'; rsServiceWindow='Сервисное окно'; rsSrcEdit='Редактор';
124   rsCover='Накладка'; rsPowerSw='Питание';  rsBacklight='Подсветка';
125   rsDecSep=','; rsEnterExp='ВП'; rsStackUp='В↑'; rsStep='ШГ'; rsRunStop='С/П';
126   rsReturnReset='В/О'; rsRecall='ИП'; rsStore='П'+''; rsGoto='БП';
127   rsGosub='ПП'; rsRadGradDeg='Р-ГРД-Г'; rsEscape='ВЫХОД'; rsEnter='ВВОД';
128 
129 { Beeper }
130 
131   rsWithoutSound='Без звука'; rsExternalUtil='Внешняя программа';
132   rsWinBeepInThread='Функция Beep в отдельном потоке';
133   rsPCMviaPortAudio='PCM-аудио через библиотеку PortAudio';
134   rsRecommended='(Рекомендуется)';
135 
136 { MK_DOS }
137 
138   rsRootDirectory='Головной каталог';
139 
140 { SysGUI }
141 
142   rsSysYes='ДА'; rsSysNo='НЕТ'; rsLoadingPackage='Загрузка пакета файлов';
143   rsProgram='Программа'; rsText='Текст'; rsBinData='Двоичные данные';
144   rsPastingFile='Вставка файла'; rsEnterNameOf='Введите имя';
145 
146   rsMainMenu='ГЛАВНОЕ МЕНЮ'; rsDOS='ДОС'; rsCalc='Калькулятор';
147   rsViewClear='Просмотр/очистка'; rsOtherFunc='Другие функции';
148   rsDiskA='Диск A'; rsDiskB='Диск B';
149   rsCapViewClear='ПРОСМОТР/ОЧИСТКА'; rsProgMemItem='Память программ';
150   rsCapOtherFunc='ДРУГИЕ ФУНКЦИИ'; rsDiskOper='Операции с дисками';
151   rsNotebookOper='Операции с блокнотом'; rsMemTest='Проверка памяти';
152   rsTextEditor='Редактор текста'; rsProgVersion='Версия программы';
153   rsCapDiskOper='ОПЕРАЦИИ С ДИСКАМИ'; rsCapDiskA='ДИСК A'; rsCapDiskB='ДИСК B';
154   rsViewInfo='Посмотреть информацию'; rsFormatDisk='Отформатировать';
155   rsRenameDisk='Назвать'; rsCheck='Проверить';
156   rsCapNotebook='БЛОКНОТ';
157   rsCopyTo='Скопировать на'; rsLoadFrom='Загрузить из';
158   rsLoadFileQ='Загрузить файл?'; rsLoadPackageQ='Загрузить пакет?';
159   rsCopyOne='Скопировать один'; rsCopyAll='Скопировать все';
160   rsOverwriteQ='Перезаписать файл?';
161   rsCantDelete='Удаление невозможно!'; rsDirNotEmpty='В каталоге есть файлы';
162 
163   rsNoMemTest_1='Негоже эмулятору'; rsNoMemTest_2='память проверять!';
164   rsSaveTextQ='Сохранить текст?'; rsCreateProg='Создать файл программы';
165   rsCreateDec='Создать десятичный файл'; rsCreateText='Создать текстовый файл';
166   rsCreateBin='Создать двоичный файл'; rsPasteFile='Вставить из буфера';
167   rsDirExists_1='Каталог с таким именем'; rsDirExists_2='уже существует!';
168   rsFileExists_1='Файл с таким именем'; rsFileExists_2='уже существует!';
169   rsViewContent='Посмотреть содержимое'; rsLoadPackage='Загрузить пакет';
170   rsCopyToClipboard='Скопировать в буфер'; rsOverwrite='Перезаписать';
171   rsDelete='Удалить'; rsDate='Дата'; rsDateFormat='%2:s.%1:s.%0:s';
172   rsTotalClusters='Всего      2048     кластеров'; rsFrees='Свободных';
173   rsOcupied='Занятых'; rsBads='Сбойных'; rsPages='Страниц';
174 
175   rsGroup='Группа:'; rsAddress='Адрес:';
176   rsStartPage='Начальная страница:'; rsPagesCount='Число страниц:';
177   rsClearProgQ='Очистить память программ?'; rsClearDataQ='Очистить данные?';
178   rsClearTextQ='Очистить текст?'; rsClearNotebookQ='Очистить блокнот?';
179   rsNoDisk='Диск отсутствует!'; rsNotebookData='Данные блокнота';
180   rsOutOfDir='Нет места в каталоге!'; rsOutOfDisk='Нет места на диске!';
181   rsClipboardIsEmpty='Буфер обмена пуст!'; rsLoadingFrom='Загрузка из';
182   rsFormatting='Форматирование'; rsFilesWillDeleted='Файлы будут стёрты!';
183   rsContinueQ='Продолжить?'; rsCopyingTo='Копирование на';
184   rsLoadNotebookQ='Загрузить блокнот?'; rsNoData='Нет данных!';
185   rsOfDisk='диска'; rsOfDir='каталога'; rsOfFile='файла';
186   rsDeleteDirQ='Удалить каталог?'; rsDeleteFileQ='Удалить файл?';
187   rsWithoutThis='Обойдёмся без этого';
188   rsCreatingFile='Создание файла'; rsExit='Выход';
189   rsSavingToMem='Запись в память'; rsLoadingFile='Загрузка файла';
190   rsCopyingAll='Копирование всех'; rsCopyingFile='Копирование файла';
191   rsOwerwritingFile='Перезапись файла'; rsClearing='Очистка';
192   rsCapProgMem='ПАМЯТЬ ПРОГРАММ'; rsCapDecData='ДЕСЯТИЧНЫЕ ДАННЫЕ';
193   rsCapBinData='ДВОИЧНЫЕ ДАННЫЕ'; rsCapText='ТЕКСТ';
194 
195 { Globe }
196 
197   emWrongArg='Неверный аргумент'; emDivByZero='Деление на ноль';
198   emOverflow='Переполнение'; emWrongAddr='Несуществующий адрес';
199   emSubStack='Переполнен стек ПП'; emSepInEE='Ошибка ВП ,';
200   emInterrupt='Переполнение очереди';
201   rsDegrees='Г'+''; rsRadians='Р'+''; rsGrads='ГРД';
202   rsModelFull='eMKatic - симулятор ЭКВМ'; rsVersionFull='Версия %s от %s';
203   rsManufacturerFull='www: sourceforge.net/projects/emkatic/';
204 
205 { * * * }
206 
207 procedure FillStrArray(out Dest:array of string; const Src:array of string);
208  overload;
209 procedure FillStrArray(out Dest:array of CP866str; const Src:array of string);
210  overload;
211 
212 implementation
213 
214 uses Math;
215 
216 procedure FillStrArray(out Dest:array of string; const Src:array of string);
217  var i:integer;
218 begin
219   for i:=0 to min(high(Dest),high(Src)) do Dest[i]:=Src[i];
220 end;
221 
222 procedure FillStrArray(out Dest:array of CP866str; const Src:array of string);
223  var i:integer;
224 begin
225   for i:=0 to min(high(Dest),high(Src)) do Dest[i]:=Src[i];
226 end;
227 
228 end.
229 
230