В связи с очередными претензиями по отсутствию согласования слов (на этот раз в названиях книг - см. левый столбец на скриншоте под спойлером), начал запилвать в скрипт Changetext поддержку кастомных тегов для указания падежа, а также получения или установки нужной формы рода/числа.
В переводе файлов book_art.txt и book_instruction.txt это выглядит следующим образом:
Теги падежей следующие (соответствуют названиям падежей в библиотеке Pymorphy2):
case_names = (
"nomn", # именительный
"gent", # родительный
"datv", # дательный
"accs", # винительный
"ablt", # творительный
"loct", # предложный
)
(для винительного также желательно указывать тег inan (неодушевленное) или anim (одушевленное), т.к. способ склонения прилагательного в мужском роде зависит и от этого)
Тег get-form в строке должен быть только один, тегов set-form может быть несколько, get-form может быть после set-form.
Тесты, которые успешно срабатывают:
"Разоблачение <gent:Башня>": "Разоблачение Башни",
"Дайте мне <accs,inan:Башня>": "Дайте мне Башню",
"Здравые рассуждения о <loct:Башня>": "Здравые рассуждения о Башне",
"<get-form:Она> <set-form:пел>: 'О дварфы!'": "Она пела: 'О дварфы!'",
"<set-form:Мог> ли это быть <get-form:Могила>?": "Могла ли это быть Могила?",
"Горный Город во времена <gent: Эра Мифов>": "Горный Город во времена Эры Мифов",
(до двоеточия - строка, которая приходит в скрипт, после - которую возвращает скрипт).
Пока вроде работает, но еще нужно тестировать на "живом" ДФ.
Также это нововведение может помочь в приведении в порядок мыслей и предпочтений.