72 lines
2 KiB
Python
72 lines
2 KiB
Python
import logging
|
|
|
|
from odoo.http import request
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
def _get_detected_language(self, request_obj=None, **post):
|
|
req = request_obj or request
|
|
url_lang = req.params.get("lang")
|
|
post_lang = post.get("lang")
|
|
cookie_lang = req.httprequest.cookies.get("lang")
|
|
context_lang = req.env.context.get("lang")
|
|
user_lang = req.env.user.lang or "es_ES"
|
|
|
|
detected = None
|
|
if url_lang:
|
|
detected = url_lang
|
|
elif post_lang:
|
|
detected = post_lang
|
|
elif cookie_lang:
|
|
detected = cookie_lang
|
|
elif context_lang:
|
|
detected = context_lang
|
|
else:
|
|
detected = user_lang
|
|
|
|
_logger.info(
|
|
"🌐 Language detection: url=%s, post=%s, cookie=%s, context=%s, user=%s → DETECTED=%s",
|
|
url_lang,
|
|
post_lang,
|
|
cookie_lang,
|
|
context_lang,
|
|
user_lang,
|
|
detected,
|
|
)
|
|
return detected
|
|
|
|
|
|
def _get_translated_labels(self, lang=None, request_obj=None):
|
|
req = request_obj or request
|
|
if lang is None:
|
|
lang = _get_detected_language(self, request_obj=req)
|
|
|
|
env_lang = req.env(context=dict(req.env.context, lang=lang))
|
|
|
|
labels = {
|
|
"product": env_lang._("Product"),
|
|
"quantity": env_lang._("Quantity"),
|
|
"price": env_lang._("Price"),
|
|
"subtotal": env_lang._("Subtotal"),
|
|
"total": env_lang._("Total"),
|
|
"empty": env_lang._("This order's cart is empty."),
|
|
# ... keep minimal set here; website_sale.py will fall back if needed
|
|
}
|
|
|
|
return labels
|
|
|
|
|
|
def _translate_labels(self, labels_dict, lang):
|
|
# Minimal fallback translator kept here; prefers env translations
|
|
translations = {
|
|
"es_ES": {},
|
|
}
|
|
lang_translations = translations.get(lang, {})
|
|
translated = {}
|
|
for key, english_label in labels_dict.items():
|
|
translated[key] = lang_translations.get(english_label, english_label)
|
|
_logger.info(
|
|
"[_translate_labels] Language: %s, Translated %d labels", lang, len(translated)
|
|
)
|
|
return translated
|