refactor: use random string hash for translation version

This commit is contained in:
Shrihari Mahabal 2026-03-26 15:41:43 +05:30
parent 81eb7d6892
commit 0b3e0f5c51
2 changed files with 8 additions and 9 deletions

View file

@ -5,7 +5,7 @@ import json
import frappe
from frappe.model.document import Document
from frappe.translate import MERGED_TRANSLATION_KEY, USER_TRANSLATION_KEY, bump_translation_version
from frappe.translate import MERGED_TRANSLATION_KEY, USER_TRANSLATION_KEY, change_translation_version
from frappe.utils import is_html, strip_html_tags
@ -46,4 +46,4 @@ class Translation(Document):
def clear_user_translation_cache(lang):
frappe.cache.hdel(USER_TRANSLATION_KEY, lang)
frappe.cache.hdel(MERGED_TRANSLATION_KEY, lang)
bump_translation_version()
change_translation_version()

View file

@ -250,22 +250,21 @@ def clear_cache():
frappe.cache.delete_value(
keys=["bootinfo", USER_TRANSLATION_KEY, MERGED_TRANSLATION_KEY],
)
bump_translation_version()
change_translation_version()
def get_translation_version() -> str:
"""Return the current translation version from cache."""
version = frappe.cache.get_value(TRANSLATION_VERSION_KEY)
if version is None:
version = 1
version = frappe.generate_hash(length=8)
frappe.cache.set_value(TRANSLATION_VERSION_KEY, version)
return str(version)
return version
def bump_translation_version():
"""Increment the translation version so browser caches are invalidated."""
current = frappe.cache.get_value(TRANSLATION_VERSION_KEY) or 0
frappe.cache.set_value(TRANSLATION_VERSION_KEY, int(current) + 1)
def change_translation_version():
"""Generate a new random translation version to invalidate browser caches."""
frappe.cache.set_value(TRANSLATION_VERSION_KEY, frappe.generate_hash(length=8))
def get_messages_for_app(app, deduplicate=True):