Files
orion/app/modules/loyalty/templates/loyalty/merchant/program.html
Samir Boulahtit 694a1cd1a5 feat(loyalty): add full i18n support for all loyalty module pages
Replace hardcoded English strings across all 22 templates, 10 JS files,
and 4 locale files (en/fr/de/lb) with ~300 translation keys per language.
Uses server-side _() for Jinja2 templates and I18n.t() for JS toast
messages and dynamic Alpine.js expressions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 19:53:17 +01:00

70 lines
2.7 KiB
HTML

{# app/modules/loyalty/templates/loyalty/merchant/program.html #}
{% extends "merchant/base.html" %}
{% block title %}{{ _('loyalty.merchant.program.title') }}{% endblock %}
{% block i18n_modules %}['loyalty']{% endblock %}
{% block content %}
<div x-data="merchantLoyaltyProgram()">
<!-- Page Header -->
<div class="mb-8 mt-6 flex items-center justify-between">
<div>
<h2 class="text-2xl font-bold text-gray-900 dark:text-gray-100">{{ _('loyalty.merchant.program.title') }}</h2>
<p class="mt-1 text-gray-500 dark:text-gray-400">{{ _('loyalty.merchant.program.subtitle') }}</p>
</div>
<template x-if="stats.program_id">
<a href="/merchants/loyalty/program/edit"
class="flex items-center px-4 py-2 text-sm font-medium text-white bg-purple-600 rounded-lg hover:bg-purple-700">
<span x-html="$icon('pencil', 'w-4 h-4 mr-2')"></span>
{{ _('loyalty.merchant.program.edit_program') }}
</a>
</template>
</div>
<!-- No Program State -->
<template x-if="!stats.program_id && !loading">
<div class="bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-12 text-center">
<span x-html="$icon('gift', 'w-12 h-12 mx-auto text-gray-400')"></span>
<h3 class="mt-4 text-lg font-medium text-gray-900 dark:text-white">{{ _('loyalty.merchant.program.no_program') }}</h3>
<p class="mt-2 text-gray-500 dark:text-gray-400">
{{ _('loyalty.merchant.program.no_program_desc') }}
</p>
<a href="/merchants/loyalty/program/edit"
class="inline-flex items-center mt-4 px-6 py-2 text-sm font-medium text-white bg-purple-600 rounded-lg hover:bg-purple-700">
<span x-html="$icon('plus', 'w-4 h-4 mr-2')"></span>
{{ _('loyalty.merchant.program.create_program') }}
</a>
</div>
</template>
<!-- Program View -->
<template x-if="stats.program_id || loading">
<div>
{% set edit_url = '/merchants/loyalty/program/edit' %}
{% set show_edit_button = false %}
{% include "loyalty/shared/program-view.html" %}
</div>
</template>
</div>
{% endblock %}
{% block extra_scripts %}
<script>
function merchantLoyaltyProgram() {
return {
...data(),
currentPage: 'loyalty-program',
loading: false,
stats: {{ loyalty_stats | tojson }},
program: {{ (loyalty_stats.program if loyalty_stats.program else 'null') | tojson }},
init() {
this.loadMenuConfig();
},
};
}
</script>
{% endblock %}