feat: add multilingual glossary support (backend + frontend types)
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m31s
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m31s
Backend: - Add source_language column to glossaries table - Add translations JSON column to glossary_terms table - Alembic migration for schema changes - format_glossary_for_prompt now language-aware: extracts correct translation per target language, falls back to EN reference for templates with only FR→EN data - CRUD routes accept/return source_language and translations - Pydantic schemas updated Frontend: - Types updated: GlossaryTerm now has translations: Record<string, string> - Glossary/GlossaryListItem now have source_language - Added SUPPORTED_LANGUAGES constant (13 languages) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
35
alembic/versions/d4a1f8e2b3c7_add_glossary_multilingual.py
Normal file
35
alembic/versions/d4a1f8e2b3c7_add_glossary_multilingual.py
Normal file
@@ -0,0 +1,35 @@
|
||||
"""Add multilingual support to glossaries
|
||||
|
||||
Revision ID: d4a1f8e2b3c7
|
||||
Revises: cb71a958ad92
|
||||
Create Date: 2026-05-16
|
||||
|
||||
Adds source_language to glossaries and translations JSON to glossary_terms.
|
||||
"""
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
# revision identifiers
|
||||
revision = "d4a1f8e2b3c7"
|
||||
down_revision = "cb71a958ad92"
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.add_column(
|
||||
"glossaries",
|
||||
sa.Column("source_language", sa.String(10), nullable=False, server_default="fr"),
|
||||
)
|
||||
op.add_column(
|
||||
"glossary_terms",
|
||||
sa.Column("translations", sa.JSON, nullable=True),
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_column("glossary_terms", "translations")
|
||||
op.drop_column("glossaries", "source_language")
|
||||
Reference in New Issue
Block a user