.po файлы как забрать metadata
Проект на django мультиязычный.
Появилась необходимость проверять даты обновления переводов. В документации написано, что .po файлы содержат небольшое количество мета данных.
Вопрос: как забирать даты последних обновлений?
Понятное дело, что можно открыть файл, прочитать, забрать и закрыть. Но я не хочу внутри проекта обращаться к файловой системе. Должны же быть какие то методы для извлечения таких данных в django
UPD
Дочитал доку по django.utils.translation
и вот некоторый вывод: скорей всего такого метода нет, поскольку используются скомпилированные .mo файлы для поддержки мультиязычности
Но вопрос остается, как на клиенте через API проверять появление обновления для переводов. Код не нужен, просто описание.
Не верная логика - использовать данные из po
файлов для проверки обновления переводов. Данные которые содержат эти файлы не являются подтверждением того, что перевод скомпилирован и применен к проекту.
Выход, это отслеживать дату изменения mo
файла/ов, который обновляется после вызова команды
python3 manage.py compilemessages
Здесь может быть разный подход как проверять последнюю дату mo
файла. Мне больше по душе это кастомизировать compilemessages
. Примерно так
class Command(CompileMessagesCommand):
def handle(self, *args, **options):
# здесь вызываем оригинальную команду compilemessages
super().handle(*args, **options)
# здесь пишем логику для добавления даты обновления прямо в БД, например
и хранить дату изменение прямо в бд.
Критику привествую