feat(i18n): complete post-launch i18n phases 5-8
Some checks failed
CI / dependency-scanning (push) Successful in 28s
CI / docs (push) Has been skipped
CI / deploy (push) Has been skipped
CI / ruff (push) Successful in 12s
CI / pytest (push) Failing after 47m21s
CI / validate (push) Successful in 25s

- Phase 5: Translate homepage-modern.html (~90 new locale keys, all
  hardcoded strings replaced with _() calls for dashboard mock,
  features, pricing tiers, testimonial sections)
- Phase 6: Translate homepage-minimal.html (17 new locale keys for
  fallback content, features, and CTA sections)
- Phase 7: Add multi-language page.title/content support with
  title_translations and content_translations JSON columns, Alembic
  migration cms_002, translated title/content resolution in templates,
  and seed script updates with tt() helper
- Phase 8: Complete lb.json audit — fill 6 missing keys (messages,
  confirmations), also backfill same keys in fr.json and de.json

All 4 locale files now have 340 keys with full parity.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-03 05:50:06 +01:00
parent 05c53e1865
commit b8aa484653
16 changed files with 965 additions and 235 deletions

View File

@@ -75,7 +75,7 @@
{% for page in header_pages %}
<a href="/{{ page.slug }}"
class="text-gray-700 dark:text-gray-300 hover:text-indigo-600 dark:hover:text-indigo-400 font-medium transition-colors">
{{ page.title }}
{{ page.get_translated_title(current_language|default('fr')) }}
</a>
{% endfor %}
{% endif %}
@@ -153,7 +153,7 @@
{% for page in header_pages %}
<a href="/{{ page.slug }}"
class="block px-4 py-2 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg">
{{ page.title }}
{{ page.get_translated_title(current_language|default('fr')) }}
</a>
{% endfor %}
{% endif %}
@@ -195,7 +195,7 @@
<li>
<a href="/{{ page.slug }}"
class="text-gray-600 dark:text-gray-400 hover:text-primary dark:hover:text-primary transition-colors">
{{ page.title }}
{{ page.get_translated_title(current_language|default('fr')) }}
</a>
</li>
{% endfor %}
@@ -208,13 +208,13 @@
<div class="mt-12 pt-8 border-t border-gray-200 dark:border-gray-700">
<div class="flex flex-col md:flex-row justify-between items-center">
<p class="text-gray-600 dark:text-gray-400 text-sm">
&copy; {{ current_year }} {{ platform.name if platform else 'Wizard' }}. All rights reserved.
&copy; {{ current_year }} {{ platform.name if platform else 'Wizard' }}. {{ _("cms.platform.footer.all_rights_reserved") }}
</p>
<div class="flex space-x-6 mt-4 md:mt-0">
{% if legal_pages %}
{% for page in legal_pages %}
<a href="/{{ page.slug }}" class="text-gray-600 dark:text-gray-400 hover:text-primary text-sm transition-colors">
{{ page.title }}
{{ page.get_translated_title(current_language|default('fr')) }}
</a>
{% endfor %}
{% else %}