קורא · библиотека · инструкция
Книга для קורא — это один JSON-файл (book-data.json). Его можно
подгрузить на странице библиотеки кнопкой «+ Добавить свою книгу» — файлом,
выбором с диска, или просто вставить текст JSON в поле. Ничего никуда не
отправляется, файл остаётся в браузере.
Всего два обязательных поля на уровне книги и предложения — дальше можно расширять постепенно:
sentences — массив предложений, хотя бы одноid (любая уникальная строка) и words — массив словВот самая маленькая книга, которая пройдёт проверку:
{
"title": "Моя первая книга",
"sentences": [
{
"id": "s1",
"fluent": "Это книга.",
"words": [
{ "t": "זה", "lemma": "זה", "tr": "это" },
{ "t": "ספר.", "lemma": "ספר", "tr": "книга" }
]
}
]
}
t/lemma — не обязательны.
Без них текст просто покажется как есть, а тумблер «Огласовки» в
настройках ничего убирать не будет (убирать нечего). Добавите позже —
ничего пересобирать не нужно.
| Поле | Обязательно | Что это |
|---|---|---|
id | да | Любая уникальная строка внутри книги, например "s1", "s2". |
words | да | Массив слов предложения по порядку, см. ниже. |
fluent | нет | Литературный перевод предложения целиком на русский. Без него просто не будет строки перевода под текстом. |
literal | нет | Дословный перевод слово-в-слово (через тире), для поля «Дословный перевод». Необязателен, но помогает видеть структуру фразы на иврите. |
audio | нет | Путь к mp3-файлу с озвучкой этого предложения. См. «Аудио» ниже. |
illustration | нет | Картинка-мнемоника к одному слову предложения. См. «Иллюстрации» ниже. |
| Поле | Обязательно | Что это |
|---|---|---|
t | да | Текст слова как он должен показаться в предложении — с огласовками или без, знаки препинания (запятая, точка, «?») приклеены к последнему слову перед ними, как обычный текст. |
lemma | на практике | Словарная форма слова. Формально проверкой не требуется, но именно по lemma ведутся личный словарь, частотность и звёздочки — без неё эти функции путаются. Если лень нормализовать, продублируйте t сюда как есть. |
tr | нет | Перевод слова на русский — то, что покажется в подсказке при клике. |
pos | нет | Часть речи для подсказки: "сущ.", "гл.", "прил.", "нареч.", "предл.", "мест.", "числ.", "частица", "имя собств." — можно своё, это просто текст. |
extra | нет | Короткая грамматическая пометка: биньян, время, лицо, род — что угодно текстом, например "биньян פעל, прош. вр., ж.р.". |
root | нет | Корень через дефис, например "ק-ט-ל", или "—" если неприменимо. |
start, end | нет | Секунды начала/конца звучания этого слова в файле audio — для подсветки текущего слова при прослушивании. Без аудио не нужны. |
Положите mp3-файлы рядом (или укажите полный путь/URL) и пропишите его в
audio у каждого предложения. Если хотите, чтобы слово
подсвечивалось в такт голосу — добавьте start/end
(в секундах) у каждого слова этого предложения. Без аудио плеер просто не
появится под соответствующим текстом — ничего не сломается.
Проще всего — оставить книгу без огласовок вообще (см. выше, это
полноценно поддерживается). Если хочется добавить: возьмите словарную
форму нужного слова с готовыми огласовками из
Pealim
или похожего словаря и подставьте её как lemma, а для
конкретной словоформы в t — либо тоже поищите в словаре форму
спряжения/склонения, либо оставьте t без огласовок, а
lemma — с ними: работать будет в любом случае, просто сам
текст в предложении не будет вокализован.
Можно прикрепить картинку-мнемонику к одному слову предложения — она появится сворачиваемым блоком под текстом:
"illustration": {
"word": "חָלָל", // должен ТОЧНО совпадать с lemma нужного слова
"tr": "космос",
"caption": "חלל",
"capTr": "space",
"mnemonic": "Текст подсказки-ассоциации на русском.",
"img": "путь/к/картинке.jpg" // или "svg": "<svg>...</svg>" вместо img
}
word должен буквально совпадать со значением lemma
того слова, к которому привязана картинка — по нему ищется подсветка.
| Сообщение | Что значит |
|---|---|
| Не получилось разобрать JSON | Синтаксическая ошибка в самом JSON — лишняя запятая, незакрытая кавычка. Проверьте файл в любом JSON-валидаторе. |
| Нет массива «sentences» на верхнем уровне | Корень файла — объект { }, и в нём должен быть ключ sentences, а не, скажем, text или массив без обёртки. |
| Массив «sentences» пустой | Добавьте хотя бы одно предложение. |
| Предложение №N без поля id или words | У конкретного предложения нет одного из двух обязательных полей — проверьте именно его. |
Загруженная книга видна только в этом браузере (или синхронизируется между вашими устройствами, если вы вошли через Google — но не публикуется и никому больше не видна). Удалить её можно там же, в окне «Добавить книгу», в списке «Уже добавленные книги».