ebb2537fda
feat(glossaries): implement a 3-step wizard for CSV/file imports with custom source/target language selection
production-deployment
sepehr2026-06-28 11:38:18 +02:00
36aeac2c5e
fix(glossaries): prevent translation data destruction on language selector change for multi glossaries
sepehr2026-06-28 11:03:31 +02:00
5e3fb0098b
feat(docker): run glossary translation script automatically on backend container startup
sepehr2026-06-28 10:53:58 +02:00
a57b8a8e4d
fix(glossaries): normalize language code casing when retrieving display translations
sepehr2026-06-28 10:52:08 +02:00
dde80f6bc3
feat(glossaries): update script to translate missing terms in any glossary, even if target_language is already 'multi'
sepehr2026-06-28 10:46:48 +02:00
7398cae359
feat(glossaries): add script to translate non-multilingual database glossaries using Google Translate adapter
sepehr2026-06-28 10:42:41 +02:00
9b354befe3
fix(glossary): hide create section by default when glossaries exist - only shown on demand via toggle button
sepehr2026-06-20 19:07:30 +02:00
4a8f33d36f
fix(glossary): eliminate all redundant elements - filter imported templates, remove duplicate buttons and links
sepehr2026-06-20 19:03:44 +02:00
489df66c0f
fix(i18n): add missing translation keys for tabs and presets
sepehr2026-06-20 19:01:09 +02:00
d78f08e24f
feat(glossary): restructure page with tabs, direct translate redirects and dynamic mapping
sepehr2026-06-20 18:43:02 +02:00
c17dd2c6e1
fix(glossary): resolve data loss for non-FR/EN languages, fix prompt injection reference notes, and classic mode label wording
sepehr2026-06-20 18:09:13 +02:00
1fe714aa1a
ux(glossaries): simplify dialog, auto-save detail import, show templates and upload zone directly on main page
sepehr2026-06-20 12:27:07 +02:00
d505b479cd
refactor(glossaries): align CreateGlossaryDialog with editorial design system
sepehr2026-06-20 09:15:54 +02:00
81cb4e09b7
fix(tests): update PDF format test to use truly unsupported format (.txt)
sepehr2026-06-14 19:50:44 +02:00
a20ebe2295
fix(tests): update glossary service tests for dict return type
sepehr2026-06-14 19:49:21 +02:00
233a054e34
fix(tests): isolate test DB and sync tier=pro in Pro user fixtures
sepehr2026-06-14 19:44:25 +02:00
f85e5eef9b
fix(tests): escape Windows paths in cleanup Redis mock
sepehr2026-06-14 19:34:01 +02:00
b9446f166d
fix(translate): French error messages and update mock users for quota checks
sepehr2026-06-14 19:20:44 +02:00
adc3583358
fix(db): make migrations and glossary index SQLite-compatible
sepehr2026-06-14 19:01:07 +02:00
cb8ce697d2
fix(translate): enforce Pro feature gating for glossary, custom_prompt and prompt_id
sepehr2026-06-14 18:40:45 +02:00
f05399aeba
fix(i18n): return French error messages in auth, register, download endpoints
sepehr2026-06-14 18:13:41 +02:00
eda6821632
i18n: fix missing keys and translate all non-admin frontend strings
sepehr2026-06-14 12:45:12 +02:00
9b0b2ae6f9
docs: remove remaining Claude 3.5 references and display page credit costs in translation provider selector
sepehr2026-06-14 11:41:47 +02:00
c7506e6aca
fix: resolve critical security and UI session mismatch by clearing React Query cache on login/logout and invalidating on subscription updates
sepehr2026-06-14 11:15:09 +02:00
136d40c7d8
feat: update to June 2026 models (Claude Sonnet 4.6, Gemini 3.5 Flash), add glossary button, and implement cost factor quota & vision fallback
sepehr2026-06-14 11:05:53 +02:00
5fd087979b
feat: unify multimodels translation providers, remove self-hosting (Ollama/LibreTranslate), and fix local SQLite configuration
sepehr2026-06-14 10:44:46 +02:00
feea02033b
fix: resolve Google login hydration mismatch and dynamic env load
sepehr2026-06-07 12:21:06 +02:00
5b8c29dae6
feat: enable passing NEXT_PUBLIC_GOOGLE_CLIENT_ID at docker compose build time
sepehr2026-06-07 11:41:04 +02:00
29753881a6
feat: add Telegram notifications for user signup and Stripe events
sepehr2026-06-07 11:37:01 +02:00
8659b6761f
docs: update README.md to act as central documentation portal with French links
sepehr2026-06-07 11:21:06 +02:00
ce53f0df16
fix(admin): resolve hydration layout crash by removing layout-level return null and using mount-conditional text
sepehr2026-06-01 23:24:03 +02:00
6da8a85b1d
fix(admin): secure routes, add real IP detection, SMTP header validation, and fix Next.js layout hydration mismatch
sepehr2026-06-01 23:16:03 +02:00
6d27dc4cda
feat(i18n): Phase 1 — migrate 5 critical files from hardcoded text to i18n
sepehr2026-06-01 00:28:24 +02:00
c82e70681f
fix: edit dialog remaps terms when target language changes
sepehr2026-06-01 00:08:27 +02:00
0efdf6a3f4
feat: add source/target language selectors to edit glossary dialog
sepehr2026-06-01 00:03:22 +02:00
8fa1ab9ceb
fix: delete all old FR→EN glossaries and deduplicate multilingual ones
sepehr2026-05-31 23:56:18 +02:00
9ab166c31e
fix: glossaries page support for multilingual (target_language='multi')
sepehr2026-05-31 23:48:48 +02:00
e9ac30ed1d
style: use same serif/typography font styles on profile page as translate page
sepehr2026-05-31 23:33:32 +02:00
32d75f8a84
fix: delete stale FR→EN glossaries + convert all remaining to multilingual
sepehr2026-05-31 23:31:24 +02:00
744a97f58d
fix: import datetime in email_service.py to fix NameError, add Stripe emails unit tests
sepehr2026-05-31 23:25:20 +02:00
b4096fd2ca
fix: show target-language-specific translations in preview + rename migration
sepehr2026-05-31 23:22:50 +02:00
58d9d8a74c
fix(frontend): increase translation config legibility and integrate templates in glossary selector
sepehr2026-05-31 11:18:57 +02:00
3f635e809e
feat(translate): implement intelligent language filtering and creation links for glossaries
sepehr2026-05-31 11:09:56 +02:00
8ab45f1b6e
style(translate): make LLM cards compact in a 3-column grid, remove glossary language filtering, and add contextual help under engine selection
sepehr2026-05-31 11:05:34 +02:00
cd8a57324d
style(translate): redesign glossary and translate images card layout to match mockup compact styling
sepehr2026-05-31 10:58:22 +02:00
a5b18b5a24
fix(pdf): add support for translate_images to PDFTranslator to fix API mismatch
sepehr2026-05-31 10:36:30 +02:00
a0de00a4e7
fix(translate): ajout des cles de traduction manquantes et re-positionnement intelligent du bouton de traduction
sepehr2026-05-31 10:28:12 +02:00
c1ea65f10f
feat(translate): refonte du design de la page de traduction et du sélecteur de moteurs (Etapes 1-3)
sepehr2026-05-31 10:14:23 +02:00