LINUX.ORG.RU

Fictionbook хранение жанров в GtkTreeModel

 


0

1

Не спеша пишу редактор fb2 книг.

Дошел до выбора жанра книги. В жанровой xml-схеме есть как просто отдельные жанры, так и поджанры.

К примеру, в конечный файл пишется один из:

computers - Компьютерная литература (основной жанр)

comp_os - Операционные системы (поджанр комп. литературы)

comp_* - еще поджанры комп. литературы

performance - хз что это, но указывается как отдельный жанр

Для выбора жанра в программе решил использовать ComboBox с представлением данных в TreeModel. Хорошо подходит, хотя не уверен как будет смотреться, если в комбобоксе будет слишком много значений.

Перехожу в вопросам. Пользователю приятней выбирать из локализировованых строк. На в fb2 файл должны писаться значения типа: «comp_os» и т.д.

Как правильнее сделать такое соответствие? Я пока не уверен, общие ли в 2.0, 2.1 и 3.0 форматах FictionBook жанры, поэтому желательно что бы можно было подгружать наборы жанров из файла. Чем правильнее воспользоваться в таком случае?

★★

Последнее исправление: cetjs2 (всего исправлений: 1)

«Уроки по c для самых маленьких».

anonymous
()

Богатырев во все поля.

Deleted
()
Ответ на: комментарий от cdshines

Это я к тому, что можно посмотреть по жанрам, является ли фб3 надмножеством или в точности совпадает с фб2 по жанрам.

cdshines ★★★★★
()

Как пользователю, мне надо просто показать файл. Они и так уже в файловой системе рассортированы.

baverman ★★★
()

Подожди, я не понял, ты хочешь, чтобы было соответствие вида <Компьютерная литература,computers>? Сделай какой-то map для всех жанров, где первый элемент каждой пары берется из локализованного источника (ты сам поставляешь файлы локализации на выбранные тобой езычки), и он (первый эл-т) промаплен к стандартным жанрам. Или в программе уже в бд пусть хранятся в табоице со структурой

я1 я2 я3 я4 ... яN fb1 fb2 fb3
ж1 ж1 ж1 ж1 ... жN fbg fbg fbg
...

И оттуда доставай.

cdshines ★★★★★
()
Ответ на: комментарий от cdshines

Да, мне нужно как-то сделать соответствие <human_genre> <fb2-genre>. Я пришел примерно к той же схеме, что ты предложил, но есть проблема - что если ВНЕЗАПНО надо добавить/удалить еще один язык. Придется все 'ж' прописывать (можно конечно сторонними сторонними программами, но как то костыльно).

Я пришел к такому: на каждый язык иметь по ini-подобному файлу (благо glib умеет их парсить). Из них создавать словари по каждому из языков. И по значению в комбоксе доставать из них значения. Вот только не уверен нормально ли ettext туда впишется.

greek_31 ★★
() автор топика
Ответ на: комментарий от cdshines

БД для такой хрени не хотелось бы использовать

greek_31 ★★
() автор топика

Как правильнее сделать такое соответствие?

gtktreemodel позволяет делать скрытые колонки. в 1 (скрытую) колонку пишешь performance, во 2ю (не скрытую) локализованное «исполнение».

waker ★★★★★
()
Ответ на: комментарий от greek_31

Не распарсил...

Это я не прочитал, сорри.

Не спеша пишу редактор fb2 книг

baverman ★★★
()
Ответ на: комментарий от greek_31

Так я и говорю - в первый элемент каждой пары мапа ложить не статически элементы (в код), а брать в рантайме из хранилища. PO-файлы, чтоб с gettext работать, к примеру.

cdshines ★★★★★
()

fb2

computers - Компьютерная литература (основной жанр)

/0

Вообще-то, FB2 заточен под беллетристику. Либо пример классификации выбран неудачно, либо вместо FB2 тебе стоило взяться за DocBook.

Но сам факт, что взялся за редактор, радует. Желаю успеха.

hobbit ★★★★★
()
Ответ на: комментарий от greek_31

Я пришел примерно к той же схеме, что ты предложил, но есть проблема - что если ВНЕЗАПНО надо добавить/удалить еще один язык.

man gettext

fat_angel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.