added home page text and language switching

This commit is contained in:
Oleg Belyaev 2025-03-21 19:46:07 +03:00
parent 82d3be3129
commit 666194f3e4
2 changed files with 249 additions and 10 deletions

View file

@ -211,7 +211,7 @@ thead {}
tbody {} tbody {}
tfoot {} tfoot {}
tr {} tr {}
th {} tr th {font-weight: bold; --pico-color: var(--pico-h6-color);}
td {} td {}

View file

@ -37,24 +37,259 @@ declare function page:head($title as xs:string, $script as node()* := ()) {
}; };
(: Navigation header :) (: Navigation header :)
declare function page:header() { declare function page:header($lang as xs:string, $href-other as xs:string) {
<header> <header>
<nav> <nav>
<ul> <ul>
<li><strong>Abaevdict</strong></li> <li><strong>{
switch($lang)
case 'ru' return 'ИЭСОЯ В.&#160;И.&#160;Абаева'
default return 'Abaevdict'
}</strong><i> β</i></li>
<li>{
(element {if ($lang = 'ru') then 'mark' else 'a'}{
if ($lang != 'ru') then
(attribute onclick {`window.location='{$href-other}'+window.location.search;`},
attribute href {'#'}) else (),
'ru'
}, ' / ',
element {if ($lang = 'ru') then 'a' else 'mark'}{
if ($lang = 'ru') then
(attribute onclick {`window.location='{$href-other}'+window.location.search;`},
attribute href {'#'}) else (),
'en'
})
}
</li>
</ul> </ul>
<ul> <ul>
<li><a href="./home">Home</a></li> <li><a href="./home">{
<li><a href="./dict">Dictionary</a></li> switch($lang)
<li><a href="./index">Index</a></li> case 'ru' return 'Главная'
<li><a href="#">References</a></li> default return 'Home'
}
</a></li>
<li><a href="./dict">{switch($lang)
case 'ru' return 'Словарь'
default return 'Dictionary'
}
</a></li>
<li><a href="./index">{switch($lang)
case 'ru' return 'Указатель'
default return 'Index'
}</a></li>
<li><a href="#">{switch($lang)
case 'ru' return 'Литература'
default return 'References'
}</a></li>
</ul> </ul>
</nav> </nav>
</header> </header>
}; };
declare function page:invert-lang($lang as xs:string) as xs:string {
if($lang = 'en') then 'ru' else 'en'
};
(: =============================================================== :) (: =============================================================== :)
(: ======================= THE PAGES ============================= :) (: ======================= HOMEPAGE ============================== :)
(: =============================================================== :)
declare %rest:path("{$lang}/home")
%output:method("html")
%output:html-version('5')
function page:home($lang) {
<html>
{page:head(if ($lang='ru') then 'ИЭСОЯ — Главная' else 'Abaevdict — Home',())}
<body>
{page:header($lang,`../{page:invert-lang($lang)}/home`)}
<main>
{
switch($lang)
case "ru" return (
<p>
Вы находитесь на сайте электронной двуязычной версии
<a href="https://ironau.ru/iesoja.html">Историко-этимологического
словаря осетинского языка</a> (ИЭСОЯ) В.&#160;И.&#160;Абаева.
Оцифровка и перевод словаря выполнены группой сотрудников, студентов и аспирантов
<a href="https://tipl.philol.msu.ru/">отделения теоретической и
прикладной лингвистики</a> МГУ имени М.&#160;В.&#160;Ломоносова и
<a href="https://iling-ran.ru/web/ru/departments/indo-european/iranian">
сектора иранских языков</a> Института языкознания РАН.
</p>,
<p>
Электронная версия словаря и перевод III и IV томов выполнены за счёт
гранта Российского научного фонда №
<a href="https://rscf.ru/project/22-28-01639/">22-28-01639</a>.
</p>,
<p>
Мы выражаем особую благодарность Амирхану Михайловичу Торчинову, который
выступил инициатором этого проекта и продолжает оказывать нам неоценимую
поддержку в нашей работе. Мы также благодарны московской осетинской общине за
поддержку перевода III томов словаря и помощь в печатном издании их английской
версии, в особенности Александру Тотоонову, Валерию Дзгоеву, Олегу Пухову,
Владиславу Хаблиеву, Руслану Бестолову, Виталию Даурову, Игорю Дзуцеву, Марине
Каболовой, Владимиру Туганову, Зоинбеку Абаеву, Виктору Джиоеву, Владимиру
Бароеву и Борису Базаеву.
</p>,
<p>
Электронная версия словаря основана на адаптации системы XML-разметки
<a href="https://tei-c.org/">TEI P5</a>. Сервер базы данных использует систему
<a href="https://basex.org">BaseX</a>. Модель разметки словаря и реализация её
программного отображения разработаны О.&#160;И.&#160;Беляевым. Все исходные
данные доступны в <a href="https://code.cucurri.ru/abaevdict">репозиториях</a>
проекта.
</p>,
<p>
В предыдущей версии электронного словаря использовалась реляционная
<a href="https://ossetic.iranic.space">модель</a> представления данных,
разработанная Ю.&#160;Ю.&#160;Макаровым (ИЯз РАН, Кембриджский университет)
на платформе OnLex.
</p>,
<h5>Как ссылаться</h5>,
<blockquote>Belyaev, Oleg, Irina Khomchenkova, Julia Sinitsyna, Vadim Dyachkov. Digitizing print dictionaries using TEI: The Abaev Dictionary Project // <i>IWCLUL 2021: The Seventh International Workshop on Computational Linguistics of Uralic Languages. Proceedings of the Workshop</i>. Stroudsburg, USA: Association for Computational Linguistics, 2021. P. 1219.
</blockquote>,
<h5>Участники проекта</h5>,
<table>
<tbody>
<tr>
<th scope="row">Научный руководитель</th>
<td>О.&#160;И.&#160;Беляев</td>
<td>(МГУ имени
М.&#160;В.&#160;Ломоносова, ИЯз РАН)</td>
</tr>
<tr>
<th scope="row">Основные участники</th>
<td>Ю.&#160;В.&#160;Синицына</td>
<td>(МГУ имени
М.&#160;В.&#160;Ломоносова)</td>
</tr>
<tr>
<td></td>
<td>И.&#160;А.&#160;Хомченкова</td>
<td>(МГУ имени М.&#160;В.&#160;Ломоносова, ИРЯ РАН)</td>
</tr>
<tr>
<th>Оцифровка и перевод</th>
<td>В.&#160;В.&#160;Дьячков</td>
<td>(ИЯз РАН)</td>
</tr>
<tr>
<td></td>
<td>А.&#160;А.&#160;Осипова</td>
<td>(МГУ имени М.&#160;В.&#160;Ломоносова)</td>
</tr>
<tr>
<td></td>
<td>А.&#160;О.&#160;Бадеев</td>
<td>(ИЯз РАН, НИУ ВШЭ)</td>
</tr>
<tr>
<td></td>
<td>Д.&#160;А.&#160;Алексеев</td>
<td>(МГУ имени М.&#160;В.&#160;Ломоносова)</td>
</tr>
</tbody>
</table>)
default return
(
<p>
This is the website of the electronic version of V.&#160;I.&#160;Abaev&#39;s
<a href="https://ironau.ru/iesoja.html">Historical-Etymological Dictionary
of Ossetic</a> (HEDO). Its digitization and English translation have been
carried out by staff members and students of the
<a href="https://tipl.philol.msu.ru/">department of theoretical and applied
linguistics</a>, Lomonosov Moscow State University, and the <a
href="https://iling-ran.ru/web/ru/departments/indo-european/iranian">
Department of Iranian languages</a>, Institute of Linguistics RAS.
</p>,
<p>
The electronic version of the dictionary and the translation of vols. 3 and 4
have been supported by the Russian Science Foundation, project no.
<a href="https://rscf.ru/project/22-28-01639/">22-28-01639</a>.
</p>,
<p>
We are deeply grateful to Amirkhan Torchinov, who has been the initiator of this
project and is still providing us with invaluable support in our work. We are
also grateful to the Ossetian community of Moscow for their support of the
translation of vols. 1 and 2 and the help in publishing its preliminary English
version; in particular, to Alexander Totoonov, Valery Dzgoev, Oleg Pukhov,
Vladislav Khabliev, Ruslan Bestolov, Vitaly Daurov, Igor Dzutsev, Marina
Kabolova, Vladimir Tuganov, Zoinbek Abaev, Viktor Dzhioev, Vladimir
Baroev and Boris Bazaev.
</p>,
<p>
The electronic edition of the dictionary is based on an adaptation of the
XML-based <a href="https://tei-c.org/">TEI P5</a> markup system. The database
server runs on <a href="https://basex.org">BaseX</a>. The markup model and its
software realization have been developed by Oleg Belyaev. All sources are
available in our <a href="https://code.cucurri.ru/abaevdict">repositories</a>.
</p>,
<p>
The previous version of the electronic dictionary used a relational
data <a href="https://ossetic.iranic.space">model</a> developed by Yury Makarov
(IL RAS, Cambridge University) using the OnLex platform.
</p>,
<h5>How to cite</h5>,
<blockquote>Belyaev, Oleg, Irina Khomchenkova, Julia Sinitsyna, Vadim Dyachkov. Digitizing print dictionaries using TEI: The Abaev Dictionary Project // <i>IWCLUL 2021: The Seventh International Workshop on Computational Linguistics of Uralic Languages. Proceedings of the Workshop</i>. Stroudsburg, USA: Association for Computational Linguistics, 2021. P. 1219.
</blockquote>,
<h5>Project participants</h5>,
<table>
<tbody>
<tr>
<th scope="row">Project leader</th>
<td>Oleg Belyaev</td>
<td>(Lomonosov MSU, IL RAS)</td>
</tr>
<tr>
<th scope="row">Core team</th>
<td>Irina Khomchenkova</td>
<td>(Lomonosov MSU, Vinogradov RLI RAS)</td>
</tr>
<tr>
<td></td>
<td>Julia Sinitsyna</td>
<td>(Lomonosov MSU)</td>
</tr>
<tr>
<th>Digitization and translation</th>
<td>Vadim Dyachkov</td>
<td>(IL RAS, LLACAN CNRS)</td>
</tr>
<tr>
<td></td>
<td>Anna Osipova</td>
<td>(Lomonosov MSU)</td>
</tr>
<tr>
<td></td>
<td>Artyom Badeev</td>
<td>(IL RAS, HSE University)</td>
</tr>
<tr>
<td></td>
<td>Danil Alekseev</td>
<td>(Lomonosov MSU)</td>
</tr>
</tbody>
</table>)
}
</main>
</body>
</html>
};
declare %rest:path("home")
%output:method("html")
%output:html-version('5')
function page:home() {
page:home('en')
};
(: =============================================================== :)
(: ======================= THE DICTIONARY ======================== :)
(: =============================================================== :) (: =============================================================== :)
(: If no language defined, default to English :) (: If no language defined, default to English :)
@ -79,7 +314,7 @@ declare %rest:path("{$lang}/dict")
<script src="/static/abaev.js"></script>))} <script src="/static/abaev.js"></script>))}
<body> <body>
{page:header()} {page:header($lang,`../{page:invert-lang($lang)}/dict`)}
<!-- Sidebar with entry list --> <!-- Sidebar with entry list -->
<button id="open-leftbar"> <button id="open-leftbar">
@ -164,6 +399,10 @@ declare %rest:path("{$lang}/dict/{$id}")
return web:redirect('../dict', {'page': $pagenum}, web:decode-url($id)) return web:redirect('../dict', {'page': $pagenum}, web:decode-url($id))
}; };
(: =============================================================== :)
(: ======================= THE INDEX ============================= :)
(: =============================================================== :)
(: Mentioned index :) (: Mentioned index :)
declare %rest:path("{$lang}/index") declare %rest:path("{$lang}/index")
%output:method("html") %output:method("html")
@ -174,7 +413,7 @@ return
<html> <html>
{page:head('HEDO Index', <script src="/static/abaev-index.js"></script>)} {page:head('HEDO Index', <script src="/static/abaev-index.js"></script>)}
<body> <body>
{page:header()} {page:header($lang,`../{page:invert-lang($lang)}/index`)}
<main> <main>
<div class="index"> <div class="index">
<div class="langs"> <div class="langs">