"""Internationalization support for the RAG demo""" TRANSLATIONS = { "en": { # Corpus tab "corpus_management": "Corpus Management", "corpus_description": "Upload a PDF document or use the default corpus. The document will be split into chunks for retrieval.", "upload_pdf": "Upload PDF", "chunk_size": "Chunk Size (characters)", "chunk_overlap": "Chunk Overlap (characters)", "process_corpus": "Process Corpus", "status": "Status", # Retrieval tab "retrieval_config": "Retrieval Configuration", "embedding_model": "Embedding Model", "top_k": "Top K (number of chunks to retrieve)", "similarity_threshold": "Similarity Threshold (minimum score)", # Generation tab "generation_config": "Generation Configuration", "llm_model": "Language Model", "temperature": "Temperature (creativity)", "max_tokens": "Max Tokens (response length)", # Query tab "ask_question": "Ask a Question", "your_question": "Your Question", "question_placeholder": "Enter your question here...", "example_questions": "Example Questions", "submit_query": "Submit Query", "answer": "Answer", "retrieved_chunks": "Retrieved Chunks", "prompt_sent": "Prompt Sent to LLM", "errors": "Errors", # Results "similarity_score": "Similarity Score", "no_corpus": "Please process a corpus first in the Corpus tab.", # Messages "error": "Error", "success": "Success", "processing": "Processing...", }, "fr": { # Onglet Corpus "corpus_management": "Gestion du Corpus", "corpus_description": "Téléchargez un document PDF ou utilisez le corpus par défaut. Le document sera divisé en chunks pour la récupération.", "upload_pdf": "Télécharger un PDF", "chunk_size": "Taille des Chunks (caractères)", "chunk_overlap": "Chevauchement des Chunks (caractères)", "process_corpus": "Traiter le Corpus", "status": "Statut", # Onglet Retrieval "retrieval_config": "Configuration du Retrieval", "embedding_model": "Modèle d'Embedding", "top_k": "Top K (nombre de chunks à récupérer)", "similarity_threshold": "Seuil de Similarité (score minimum)", # Onglet Génération "generation_config": "Configuration de la Génération", "llm_model": "Modèle de Langage", "temperature": "Température (créativité)", "max_tokens": "Max Tokens (longueur de la réponse)", # Onglet Query "ask_question": "Poser une Question", "your_question": "Votre Question", "question_placeholder": "Entrez votre question ici...", "example_questions": "Questions d'Exemple", "submit_query": "Soumettre la Question", "answer": "Réponse", "retrieved_chunks": "Chunks Récupérés", "prompt_sent": "Prompt Envoyé au LLM", "errors": "Erreurs", # Résultats "similarity_score": "Score de Similarité", "no_corpus": "Veuillez d'abord traiter un corpus dans l'onglet Corpus.", # Messages "error": "Erreur", "success": "Succès", "processing": "Traitement en cours...", } } def get_text(key, language="en"): """Get translated text for a given key and language""" return TRANSLATIONS.get(language, TRANSLATIONS["en"]).get(key, key)