Ссылки на выставленые материалы даны В КОНЦЕ ДАННОГО ДОКУМЕНТА.
     Выставленные здесь материалы - это результат попыток 
автора разобрать системы кодировки и грамматику нескольких 
языков. Информация представлена в виде программ на паскале 
(и файлов данных для этих программ). (2006,10 - 
дополнение: в связи с распространением кодировки Unicode в 
программы подстрочного перевода с китайского и 
анализа грамматических форм на арабском введена обработка 
также кодировки Unicode).
     
     Здесь выставлены также программы recod.pas (для 
перекодировки) и zamena.pas (для замен); их использование 
описано в приложении 1 в конце данного документа.
`
     Ниже описано, что удалось разобрать для ряда языков.
`
\GRECHESK (греческий язык).
`
     Общеизвестный алфавит. На письме принято писать знаки 
ударения (разные в разных случаях!), придыхания и т.п.; что 
из этого кодируется, а что - нет, пока неясно. Прилагаемые 
файлы могут содержать ошибки и служат лишь для 
первоначального угадывания содержания текста. Встретилась 
единственная кодировка. Файл gr1 - данная кодировка, gr2 - 
иллюстративная кодировка на основе кириллицы и латиницы.
`
\GRUZINSK (грузинский язык).
`
     Нормальный алфавит. Встретилась единственная кодировка. 
Файл h1 - данная кодировка, h2 - иллюстративная кодировка на 
основе кириллицы и латиницы.
`
\TADZIKSK (таджикский язык)
`
     Нормальный алфавит. Встретилась единственная кодировка. 
Файл z - данная кодировка, zz - иллюстративная кодировка на 
основе кириллицы и латиницы. Часть букв ещё не определены!
     Интересен принцип построения кодировки: алфавит в 
советскую эпоху был основан на кириллице, и, очевидно, 
кириллическая основа сохранена, но каждой (или почти каждой) 
букве кириллицы ставятся в соответствие латинская буква, 
подписанная на той же клавише при стандартных раскладках 
клавиатуры, напр., латинская буква 'f' означает кириллическую 
букву 'а'.
`
\IVRIT (язык иврит).
`
     Алфавит без гласных (реально для письма разработаны 
огласовки, но в файлах даже в тексте Танаха их нет). 
Встретились три кодировки. Файлы alfav1a, alfav1b, alfav1d - 
данные кодировки, alfav1c - иллюстративная кодировка на 
основе кириллицы и латиницы (опис. ниже прог. пословного 
перевода работает именно в этой кодировке). Иногда 
встречается выворачивание строк справа налево (что, очевидно, 
связано с направлением письма на бумаге справа налево).
     Примечание: недавно попался текст с огласовками; пример 
добавлен к выставленным материалам, но подробно не 
анализировался.
`
     Назначение файлов:
`
ALFAV1D      \
ALFAV1C      \
ALFAV1B      | - для перекодировок
ALFAV1A      /
IVR.Z        /
QUERY.HTM      - текст с огласовками
KOHELET.TXT  \ - тест-тексты
SONG_4.TXT   /
PRAVILA.TXT  \ - файлы данных
SLOVARH.TXT  /
PODSTR.PAS     - прог. для пословного перевода - исходник
PODSTR.EXE     - то же - экзешник
ZAPUSK.BAT     - демонстр. работоспособности
`
\ARABSK (арабский язык).
`
     Алфавит без гласных (как и в иврите, для письма 
разработаны огласовки, но в файлах их нет). Встретилась 
единственная кодировка. Файл 1.txt - данная кодировка, 2.txt 
- иллюстративная кодировка на основе кириллицы и латиницы. 
Несмотря на направление письма на бумаге справа налево, во 
встреченных текстах строки не были вывернуты. Часть букв ещё 
не определены!
`
\JAPONSK (японский язык).
`
     (Из старого описания: существует условно-бесплатная 
программа J-Text (найти ссылку !!!), позволяющая читать (в 
указанных кодировках и в ряде других кодировок) и набивать 
тексты на японском).
`
     Назначение файлов:
`
DETE_KOD.PAS   - для распознавания кодировки
JI_EU_SJ.TXT   - таблица перекодировки JIS/EUC/SJS
JIS_SJS.PAS    - для перекодировки JIS -> SJS
EUC_SJS.PAS    -       -//-        EUC -> SJS
SJS_L.Z        - словарь иероглифов
JAP_SLOV.Z     - словарь слов
PRIEVOD.PAS    - для подстрочного перевода
TEST.SJS       - тест-текст
COMMENT.TXT    - данный текст
`
     Для трансляции файла PRIEVOD.PAS требуется
транслятор TMT Pascal Compiler, Free Pascal
Compiler или аналогичный (Turbo Pascal ->
Structure too large). Готовый PRIEVOD.EXE выставлен
в разделе про китайский язык.
`
     Демонстрация работоспособности:
`
ppc386.exe prievod.pas
prievod.exe sjs_l.z jap_slov.z test.sjs test.trd /otl
`
     В японских текстах реально приходилось сталкиваться 
с 3-мя кодировками: JIS, EUC и SJS; что означают 
первые 2 из этих сокращений - составителю неизвестно;
SJS = Shift-JIS (хотя по структуре такого названия 
скорее заслуживает EUC). Представляемая программа
ориентирована на кодировку SJS как наиболее 
распространённую.
`
     Для предотвращения конфликта с программами
отображения иероглифики переводы записаны
латиницей.
     Иногда для краткости допускаются отступления
от стандартной транскрипции ромадзи (chi -> ti, 
sho -> s@ и т.п.); впоследствии планируется 
восстановить написание в ромадзи.
`
     В настоящий момент (2003,9,8) 
словарь включает немногим более 500 слов, а 
у многих иероглифов вместо чтения и значения
написано '???'; планируется в дальнейшем 
наращивать словарь и описывать новые иероглифы.
`
\KITAJSK (китайский язык).
`
     Данный пакет позволяет получать подстрочный 
перевод с китайского языка; список иероглифов 
содержит ~4000 символов, словарь - ~2000 
слов, и оба могут наращиваться пользователем.
     В китайских текстах реально приходилось 
сталкиваться с 3-мя кодировками: gb2312 (Guojia 
Biaozhun - Государственный Стандарт; используется в 
КНР), big5 (название отражает факт разработки 
кодировки пятью крупными фирмами; используется на 
Тайване) и Unicode в представлении utf-8. Текущая 
версия ориентирована на кодировку gb2312 как 
наиболее распространённую; из старой версии 
сохранены список иероглифов и словарь в кодировке 
big5, но рекомендуется тексты в кодировке big5 
перекодировать в gb2312 и работать с более полным 
словарём для gb2312; для текстов в utf-8 
предусмотрена перекодировка в big5 или gb2312.
     В отличие от других известных составителю языков
с несколькими кодировками, соответствие gb <-> big5 не
однозначно - бывает, что нескольким символам в одной
кодировке соответствует один символ в другой; обычно
это относится к вариантам написания одного и того же
иероглифа. Таблицы перекодировки gb <-> big5 
получены перекодировкой в обе стороны всех 
допустимых сочетаний с помощью некой коммерческой 
программы; таблицы перекодировки Unicode <-> big5 
ранее были выставлены на сайте консорциума Unicode.
     Для трансляции файла prievod.pas требуется 
транслятор Free Pascal Compiler, TMT Pascal 
Compiler или аналогичный (Turbo Pascal -> Structure 
too large).
     Назначение файлов:
comment.txt           - данный текст;
test*.htm, test*.txt  - примеры текстов;
test*.bat             - демонстрация использования программы;
big5l.z               - список иер. в big5;
kit_slov.z            - словарь в big5;
gbl.z                 - список иер. в gb2312;
kit_s_gb.z            - словарь в gb2312;
*.z (остальные)       - вспомогательные файлы для демонстрации;
prievod.*             - программа перевода; *.exe оттранслирован транслятором 
                       TMT, *.ex0 - транслятором FPC; под некоторыми версиями 
                       Windows *.exe может не работать, тогда рекомендуется 
                       работать с *.ex0 (переименовав его в *.exe);
*.pas, *.exe (прочие) - программы перекодировки etc.;
*.dat, *.txt (прочие) - таблицы перекодировки.
     Рекомендуется следить, чтобы в *.htm описание 
кодировки в заголовке шло перед тэгом title,
иначе Internet Explorer способен зависнуть.
`
\KOREJSK (корейский язык).
`
     Необычная (буквенно-слоговая) система письменности. Судя 
по литературе, кодировок было несколько, но реально 
встретилась лишь кодировка KSC. Формально письменность 
буквенная, но на письме буквы объединяются в слоги (слоги 
обычно имеют вид согласный - гласный - согласный, при этом 
начертания букв приспособлены к такому объединению, в итоге 
на письме типичный слог вписывается в квадрат). Перед 
создателями кодировки было следующие типичные возможности: 
(а) выделять по байту на букву, а при выводе на печать 
группировать их; (б) на слог выделять два байта, и часть 
разрядов двухбайтового поля выделить на маркер, часть - на 
начальную согласную, часть - на гласную, часть - на финальную 
согласную; (в) перенумеровать все реально встречающиеся слоги 
и кодировать их как иероглифы, игнорируя их внутреннюю 
структуру. Оказалось, что в данной кодировке был использован 
третий путь. Более того, оказалось, что для разных начальных 
согласных допустимы разные сочетания гласных и финальных 
согласных (и даже различно число допустимых сочетаний)! Это 
резко усложняет декодировку. Тем не менее файл замены ksc.z 
обеспечивает узнавание ряда часто встречающихся слогов, что 
делает возможным по словарю находить слова, а из них выяснять 
чтение новых слогов. 
`
\LATINSK
`
     Назначение данной программы -
просматривать латинский текст и для
каждого слова предлагать возможные
словарные формы (напр., 'mitto' из 'missisti')
и находить в словаре их переводы.
     В настоящий момент словарь очень мал,
не описаны некоторые необходимые конструкции,
не реализован блок перебора вариантов для текстов,
в которых все 'v' и 'j' заменены на 'u' и 'i',
но в тест-примере уже понятны целые фрагменты
фраз.
`
\RUSSIAN
`
     Русский язык для иностранцев. Для демонстрации 
работоспособности следует запустить zapusk.bat и 
просмотреть возникшие файлы 0.txt и 2.txt . Пока 
словарь и набор правил малы, но планируется их 
расширение, а также поддержка UNICODE.
`
\CYRILLIC (кириллица).
`
     Поскольку кодировка UNICODE и экзотическая кодировка 
некоторых HTML-документов на кириллице (korchins.z) близки 
тематике данного пакета, решено включить их в него. Кроме 
"альтернативной" кодировки и кодировок Win1251 и KOI8 (найти 
ссылку о них - где описано, как при их комбинации возникают 
ложные кодировки!!!), в файлах, набитых в WinWord'е, 
встречается кодировка UNICODE. Программа unicode.pas 
извлекает из таких файлов фрагменты в кодировке UNICODE, 
перводя их в "альтернативную" кодировку; в настоящий момент 
при этом теряется часть знаков пунктуации.
`
-----
`
     В завершение приведём ссылки на выставленные в 
Интернете материалы, относящиеся к теме данного документа или 
просто могущие быть полезными любителям языков.
`
     Транскрипция китайского, японского и корейского языков 
латиницей и кириллицей:
`
http://anime.dvdspecial.ru/Japan/romaji.shtml
http://anime.dvdspecial.ru/Japan/chinese.shtml
http://anime.dvdspecial.ru/Japan/korean.shtml
`
     То же для корейского языка:
`
http://english.tour2korea.com/t2kzone/mcns/learn/roman/
roman_korean_language.asp
.
     Китайские кодировки:
`
http://www.ldc.upenn.edu/Projects/Chinese/info_it.htm
`
-----------------------------------------------------------
`
     Приложение 1: recod.pas и zamena.pas .
     Среди представленных здесь программ отметим программы 
общего назначения recod.pas и zamena.pas.
     Первая из них (recod.pas) предназначена для побайтной 
перекодировки с таблицей. Обращение к ней имеет вид
`
  recod.exe -c example1 example2 infile outfile [otlad] ;
`
здесь example1 и example2 - это один и тот же текст в разных 
кодировках (с заголовком, см. примеры и исходник), infile - 
файл в той же кодировке, что и example1, а создаваемый 
outfile переведен в кодировку файла example2. Параметр otlad 
(отладка) полезен для анализа ранее не встречавшейся 
кодировки (в качестве example1 и example2 берутся угаданные 
фрагменты, и потом к ним добавляем новые угаданные буквы): 
при этом, во-первых, неперекодированные символы заменяются 
минусами (т.е. раскодированные символы не тонут среди 
оставшихся нераскодированными), во-вторых, изображаются 
прямая и обратная таблица перекодировки (иногда это позволяет 
угадать принцип её построения и сразу дописать оставшиеся 
буквы).
     Программа recod удобна для перекодировки текстов на 
языках с буквенными алфавитами. Автор обычно перекодировал 
подобные тексты в иллюстративные алфавиты на базе кириллицы и 
латиницы - читатель сможет при желании создать свой, более 
удобный для него иллюстративный алфавит.
     Вторая из указанных программ (zamena.pas - замена) 
предназначена для замены произвольных строк на другие строки; 
допустимо включать в строки произвольные символы в 16-ичной 
записи по типу $0D$0A (см. примеры файлов замены типа *.z и 
исходник). Обращение к программе имеет вид
`
  zamena -c table.z infile outfile ;
`
эта программа удобна, в частности, для быстрой замены всех 
многократных переносов строки на однократные и тому подобных 
редакторских целей. Мы же здесь собираемся заменять, 
например, китайские иероглифы на строки вида: открывающаяся 
скобка, чтение, пробел, значение, закрывающаяся скобка, 
перенос строки.
`
------------------------------------------------------------
`
     Приложение 2 (2002,6): типы стихов в латинской поэзии.
`
     (Из учебника: Козаржевский А.Ч., Учебник латинского
языка, М., Высшая школа, 1970).
`
     Использ. обозн.: 
_ - долг. слог, . - коротк. слог, * - слог неопр. долготы; 
= - долг. слог со знаком ударения, & - слог неопр. долготы со 
    зн. удар.;
/ и // - паузы.
`
     Козаржевский -> выдел. стихотв. размеры:
`
  5. Асклепиадов большой стих:
=_/=../=//=../=//=../=./.
  Пример: Tu ne quesieris, scire nefas, quem mihi, quem tibi 
(с. ...).
`
  6. Асклепиадов малый стих:
=_/=../=//=../=./.
  Пример: Exegi monument(um) aere perennius (с. 213).
`
  8а. Алкеева строфа:
*/=./=_/=../=./=
*/=./=_/=../_./=
*/=./=_/=./=.
=../=../=./=.
  Примеры: 
  Eheu, fugaces, Postume, Postume (с.170)
  Delicta major(um) immeritus lues ... (с. 212)
`
  (без Nr'а) 3-я Асклепиадова строфа:
=_/=../=//=../=./&
=_/=../=//=../=./&
=_/=../=.
=_/=../=./&
  Пример: O navis, referent in mare te novi (с. 212).
`
  (без Nr'а) ямбический стих; напр.:
.=/.=/.=/.=/.=/.=/.=
.=/.=/.=/.=
  Пример: Quo, quo scelesti ruitis? Aut cur dextera... (с. 
211).
`

Приложение 3: ссылки на выставленные материалы:
` Download: ENEBI1.ZIP (23K)
Другие языки.
` Download: 1 2 3 4 5 6 7 (40..100K)
Китайский язык (простановка чтений и значений иероглифов и слов).
` Download: 1 2 3 4 (18..30K)
Японский язык (простановка чтений и значений).
` Download: LATINSK.ZIP (17K)
Латинский язык.
` Download: ENEBI7.ZIP (26K)
Язык иврит (выделение словарных форм и т.п.).
` Download: ARABSK.ZIP (100K)
Арабск. яз. (заготовка).
` Download: RUSSIAN.ZIP (28K)
Русский язык для иностранцев (заготовка).
`
Na glawnuju stranicu / To main page
Sinonimy kl`uchewyh slow: enebi
Counter: .
` ` Po pros`be komandy poddervki ot www.hotlog.ru:
http://www.hotlog.ru/cgi-bin/hotlog/buttons.cgi
` (Планируется выставить как: http://aravidze.narod.ru/enebi*.zip ; http://www.geocities.com/sekirin1/enebi*.zip . ) `
Hosted by uCoz