Есть проблема с тем что где-то, где мы используем message_source в стиле m[lang]['some_taxt]`, может быть неправильно указан ключ (taxt vs text) из message_source'а. но эта проверка будет только в рантайме. И это может быть слишком поздно.
По соглашению, что все сообщения формируются только в модулях handlers и service, необходимо написать простой скрипт, который:
-
загрузил бы в себя все сообщения из мапы message_source в 2 мапы - русский и англ язык.
-
- другими словами - знал бы все возможные ключи в этой мапе.
-
- еще болле другими словами - найти в тексте файла все записи вида
'x':'y' (учесть что пробелов может быть сколько угодно и кавычки могут быть двойными. (как вариант насчет кавычек - можем все договориться использовать одинарные)) и достать x. проверить что таких иксов - 2 штуки. по кол-ву языков. если нашелся только 1 - говорить что это за ключ и кидать ошибку.
-
находил бы все упоминания message_source[a]['b'] в текстах всех файлов из 2х модулей, извлекал b и проверял бы, содержится ли эта строка среди извлеченных ранее ключей messge_source'а. если не содержится - говорить какого нет и кидать ошибку.
Таким образом мы обезопасим себя от поиска по несуществующему ключу и возможный косяк в рантайме. Потом скрипт будет добавлен в процесс деплоя имейджа.
Есть проблема с тем что где-то, где мы используем message_source в стиле
m[lang]['some_taxt]`, может быть неправильно указан ключ (taxt vs text) из message_source'а. но эта проверка будет только в рантайме. И это может быть слишком поздно.По соглашению, что все сообщения формируются только в модулях
handlersиservice, необходимо написать простой скрипт, который:загрузил бы в себя все сообщения из мапы
message_sourceв 2 мапы - русский и англ язык.'x':'y'(учесть что пробелов может быть сколько угодно и кавычки могут быть двойными. (как вариант насчет кавычек - можем все договориться использовать одинарные)) и достатьx. проверить что таких иксов - 2 штуки. по кол-ву языков. если нашелся только 1 - говорить что это за ключ и кидать ошибку.находил бы все упоминания
message_source[a]['b']в текстах всех файлов из 2х модулей, извлекалbи проверял бы, содержится ли эта строка среди извлеченных ранее ключей messge_source'а. если не содержится - говорить какого нет и кидать ошибку.Таким образом мы обезопасим себя от поиска по несуществующему ключу и возможный косяк в рантайме. Потом скрипт будет добавлен в процесс деплоя имейджа.