"""Session language helpers for bilingual EN/ES experiments.""" def ensure_language(player): """Ensure participant.vars['language'] is set from session.config.""" if player.participant.vars.get('language') is None: player.participant.vars['language'] = player.session.config.get('language', 'en') def get_language(player): ensure_language(player) return player.participant.vars['language'] def room_composition_image_basename(majority_n, cost_suffix, lang): """PNG filename for room diagram; Spanish sessions use -SP assets.""" stem = f"{majority_n}A-{cost_suffix}" if lang == 'es': return f"{stem}-SP.png" return f"{stem}.png" def texts_for(player): from experiment_text import TEXT ensure_language(player) lang = get_language(player) return TEXT.get(lang, TEXT['en']) def merge_t(player, extra=None): """Build template context with `t` = all UI strings for this participant.""" ctx = {'t': texts_for(player)} if extra: ctx.update(extra) return ctx