+++ Инструкция по локализации алфавита +++

Чтобы добавить алфавит в программу qABCs, необходимо написать abc*.json или abc*.properties файл.
Образцы этих файлов вы можете найти в директории abcs.
abc*.json позволяет детально описать все нюансы, а abc*.properties больше нацелен на автоматизацию и лёгкость его написания.
Какой из этих форматов выбрать - переводчик решает сам. Программа поддерживает оба формата одинаково хорошо.

+++ Описание формата abc*.properties +++
Глобальный параметр inheritsFrom описывает наследование языков, применяется для диалектов (см. ниже подробнее), он является опциональным. Формат: inheritsFrom: язык_родителя/abc*.properties.
Глобальный параметр language описывает язык, обязательный параметр.
Глобальный параметр author описывает автора и адрес электронной почты, необязательный, но крайне желательный параметр.
Глобальный параметр view_letters описывает видимость букв алфавита, имеет значения true (видимый), false (невидимый); если он не указан, то буквы алфавита являются видимыми; используется для языков, не имеющих алфавита, в частности, для иероглифических.
Глобальный параметр espeak_params описывает параметры для espeak, необязательный параметр.
Глобальный параметр visible описывает видимость текущего файла в диалоге выбора языка, имеет значения true (видимый), false (невидимый); если он не указан, то файл является видимым.
Глобальный параметр speak_method указывает каким методом в приоритете (file или espeak) генерировать речь: через файл (file) или через espeak (espeak); по-умолчанию, если параметр не указан, то file.
Глобальный параметр typing при указании значения false принудительно переключает режим ввода на использование стрелок вправо/влево, запрещая переходить в режим машинописи; этот режим нужен для редких языков, для которых нет даже раскладок в операционных системах, что делает абсолютно невозможным использование режима машинописи; этот параметр необязательный; по умолчанию, если не указан, то имеет значение true.

misc:a=airplane==airplane=airplane
food:a=apple==apple
misc:а=АККОРДЕОН=АКОР-ДИ-ОН=accordion=accordion

первый параметр misc означает название игры, на данный момент в программе 6 игр: misc (в алфавитном порядке), food (продукты), animals (животные), instrument (музыка), toys (игрушки), а игра rand (в случайном порядке) не требует описания.
второй параметр a - это буква алфавита (можете писать её в любом регистре); при наличии файла с таким именем в директории abcs/your_lang/sounds/alpha воспроизводится он, иначе, если он не существует, и нет наследования, то это произношение для espeak; для случая наследования в первую очередь ищется и играется файл из директории abcs/your_lang/sounds/alpha, если он отсутствует, но существует в директории родителя, то играется тот; если звукового файла нигде не найдено, то это произношение через espeak наследника; то есть у буквы всегда есть произношение.
третий параметр АККОРДЕОН - это отображаемое программой слово (можете писать его в любом регистре), при этом символы подчёркивания автоматически заменятся на пробелы; наследник переопределяет родителя; это также имя файла звука из директории abcs/your_lang/sounds/words, или при наличии наследования имя звукового файла родителя из аналогичной директории, который используется, если у наследника звуковой файл отсутствует, но при этом он имеется у родителя; если звукового файла нет, и нет наследования, то если указано произношение в четвёртом параметре, то espeak произносит его, иначе ничего не произносится; если звукового файла нет, и есть наследование, то если существует звуковой файл в соответствующей директории родителя, то проигрывается он, иначе, если звуковой файл нигде не найден, то если указано произношение в четвёртом параметре, то espeak произносит его, иначе ничего не произносится.
четвёртый параметр АКОР-ДИ-ОН необязательный (можете писать его в любом регистре), он описывает произношение слова для espeak; в случае если espeak должен работать, но значение этого параметра не указано, то ничего не будет произнесено; наследник переопределяет родителя.
пятый параметр на анлийском языке описывает имя файла изображения из директории abcs/all/pics.
шестой параметр опциональный, он описывает звуковой эффект (шум), является именем файла из директории abcs/all/noises.

+++ Описание формата abc*.json +++
В разделе general указываются глобальные параметры.
Глобальный параметр inheritsFrom описывает наследование языков, применяется для диалектов (см. ниже подробнее), он является опциональным. Формат: "inheritsFrom" : "язык_родителя/abc*.properties".
Глобальный параметр language описывает язык, обязательный параметр.
Глобальный параметр author описывает автора и адрес электронной почты, необязательный, но крайне желательный параметр.
Глобальный параметр view_letters описывает видимость букв алфавита, имеет значения true (видимый), false (невидимый); если он не указан, то буквы алфавита являются видимыми; используется для языков, не имеющих алфавита, в частности, для иероглифических.
Глобальный параметр espeak_params описывает параметры для espeak, необязательный параметр.
Глобальный параметр visible описывает видимость текущего файла в диалоге выбора языка, имеет значения true (видимый), false (невидимый); если он не указан, то файл является видимым.
Глобальный параметр speak_method указывает каким методом (file или espeak) генерировать речь: через файл (file) или через espeak (espeak).
Глобальный параметр typing при указании значения false принудительно переключает режим ввода на использование стрелок вправо/влево, запрещая переходить в режим машинописи; этот режим нужен для редких языков, для которых нет даже раскладок в операционных системах, что делает абсолютно невозможным использование режима машинописи; этот параметр необязательный; по умолчанию, если не указан, то имеет значение true.

Глобальные параметры espeak_params, speak_method могут быть переопределены локальными параметрами.

В разделе letters описываются всё. Он состоит из структур следующего вида:

	{"А": {
        "espeak_words": "А",
		"misc": {
		      "pic": "instrument/accordion.png",
		      "name": "АККОРДЕОН",
		      "espeak_words": "АКОР-ДИ-ОН",
		      "noises": "accordion.ogg"
		},
		"food": {
		      "pic": "food/watermelon.png",
		      "name": "АРБУЗ",
		      "espeak_words": "АР-БУЗ"
		},
		"animals": {
		      "pic": "animals/stork.png",
		      "name": "АИСТ",
		      "espeak_words": "АИСТ",
		      "noises": "stork.ogg"
		},
		"instrument": {
		      "pic": "instrument/harp.png",
		      "name": "АРФА",
		      "espeak_words": "АРФА",
		      "noises": "harp.ogg"
		},
		"toys": {
		      "pic": "toys/watercolor.png",
		      "name": "АКВАРЕЛЬ",
		      "espeak_words": "АКВА-РЕЛЬ"
		}
	}},

или:

	{"A": {
		"sound_letter": "A.ogg",
		"misc": {
		      "pic": "misc/airplane.png",
		      "name": "AIRPLANE",
		      "sound_pic": "airplane.ogg",
		      "noises": "airplane.ogg"
		},
		"food": {
		      "pic": "food/apple.png",
		      "name": "APPLE",
		      "sound_pic": "apple.ogg"
		},
		"animals": {
		      "pic": "animals/angelfish.png",
		      "name": "ANGELFISH",
		      "sound_pic": "angelfish.ogg"
		},
		"instrument": {
		      "pic": "instrument/accordion.png",
		      "name": "ACCORDION",
		      "sound_pic": "accordion.ogg",
		      "noises": "accordion.ogg"
		},
		"toys": {
		      "pic": "toys/anklet.png",
		      "name": "ANKLET",
		      "sound_pic": "anklet.ogg"
		}
	}},

на данный момент в программе 6 игр: misc (в алфавитном порядке), food (продукты), animals (животные), instrument (музыка), toys (игрушки), а игра rand (в случайном порядке) не требует описания.
параметр А - это буква алфавита (можете писать её в любом регистре).
параметр sound_letter описывает звуковой файл в директории abcs/your_lang/sounds/alpha, он воспроизводится при наличии.
параметр espeak_words описывает произношение через espeak.
параметр name - это отображаемое программой слово (можете писать его в любом регистре), при этом символы подчёркивания автоматически заменятся на пробелы.
параметр pic описывает имя файла изображения из директории abcs/all/pics.
параметр sound_pic описывает имя файла звука из директории abcs/your_lang/sounds/words.
параметр noises опциональный, он описывает звуковой эффект (шум), является именем файла из директории abcs/all/noises.
при наследовании требуется явное переопределение параметров родителя; если что-то не переопределено наследником, то используется от родителя.

+++ Общие замечания +++
При составлении файла важно расположить буквы в алфавитном порядке.
Все имена файлов программы в нижнем регистре, вы можете писать в любом регистре, программа автоматически будет использовать нижний регистр; указание расширения файла не требуется, при этом в имени файла знак подчёркивания используется вместо пробела.
