diff --git a/custom_components/ha_text_ai/translations/es.json b/custom_components/ha_text_ai/translations/es.json new file mode 100644 index 0000000..c978350 --- /dev/null +++ b/custom_components/ha_text_ai/translations/es.json @@ -0,0 +1,266 @@ +{ + "config": { + "step": { + "provider": { + "title": "Seleccionar proveedor de IA", + "description": "Elige qué proveedor de servicios de IA usar para esta instancia.", + "data": { + "api_provider": "Proveedor de API", + "context_messages": "Número de mensajes de contexto que conservar (1-20)" + } + }, + "user": { + "title": "Configurar instancia de HA Text AI", + "description": "Configura una nueva instancia de asistente de IA con el proveedor seleccionado.", + "data": { + "name": "Nombre de la instancia (p. ej., 'Asistente GPT', 'Ayudante de Claude')", + "api_key": "Clave API para la autenticación", + "model": "Modelo de IA a usar", + "temperature": "Creatividad de la respuesta (0-2, cuanto menor, más enfocada)", + "max_tokens": "Longitud máxima de la respuesta (1-4096 tokens)", + "api_endpoint": "URL del punto final de la API personalizada (opcional)", + "api_provider": "Proveedor de API", + "request_interval": "Tiempo mínimo entre solicitudes (0,1-60 segundos)", + "context_messages": "Número de mensajes de contexto que conservar (1-20)", + "max_history_size": "Tamaño máximo del historial de conversación (1-100)" + } + } + }, + "error": { + "name_exists": "Ya existe una instancia con este nombre", + "invalid_name": "Nombre de instancia no válido", + "invalid_auth": "Error de autenticación: comprueba tu clave API", + "invalid_api_key": "Clave API no válida: verifica tus credenciales", + "cannot_connect": "No se pudo conectar al servicio API", + "invalid_model": "El modelo seleccionado no está disponible", + "rate_limit": "Límite de tasa excedido", + "context_length": "Longitud de contexto excedida", + "rate_limit_exceeded": "Límite de tasa de API excedido", + "maintenance": "El servicio está en mantenimiento", + "invalid_response": "Se recibió una respuesta de API no válida", + "api_error": "Se produjo un error en el servicio API", + "timeout": "Tiempo de espera de la solicitud agotado", + "invalid_instance": "Instancia especificada no válida", + "unknown": "Se produjo un error inesperado", + "empty": "El nombre no puede estar vacío", + "invalid_characters": "El nombre solo puede contener letras, números, espacios, guiones bajos y guiones", + "name_too_long": "El nombre debe tener 50 caracteres o menos" + } + }, + "options": { + "step": { + "init": { + "title": "Actualizar configuración de la instancia", + "description": "Modifica la configuración de esta instancia de asistente de IA.", + "data": { + "model": "Modelo de IA", + "temperature": "Creatividad de la respuesta (0-2)", + "max_tokens": "Longitud máxima de la respuesta (1-4096)", + "request_interval": "Intervalo mínimo de solicitud (0,1-60 segundos)", + "context_messages": "Número de mensajes anteriores que se incluirán en el contexto (1-20)", + "max_history_size": "Tamaño máximo del historial de conversación (1-100)" + } + } + } + }, + "services": { + "ask_question": { + "name": "Hacer pregunta (HA Text AI)", + "description": "Envía una pregunta al modelo de IA y recibe una respuesta detallada. La respuesta se almacenará en el historial de conversación y se podrá recuperar más tarde.", + "fields": { + "instance": { + "name": "Instancia", + "description": "Nombre de la instancia de HA Text AI a utilizar" + }, + "question": { + "name": "Pregunta", + "description": "Tu pregunta o indicación para el asistente de IA" + }, + "context_messages": { + "name": "Mensajes de contexto", + "description": "Número de mensajes anteriores que se incluirán en el contexto (1-20)" + }, + "system_prompt": { + "name": "Indicación del sistema", + "description": "Indicación del sistema opcional para establecer el contexto de esta pregunta específica" + }, + "model": { + "name": "Modelo", + "description": "Selecciona el modelo de IA que se va a utilizar (opcional, anula la configuración predeterminada)" + }, + "temperature": { + "name": "Temperatura", + "description": "Controla la creatividad de la respuesta (0.0-2.0)" + }, + "max_tokens": { + "name": "Máx. tokens", + "description": "Longitud máxima de la respuesta (1-4096 tokens)" + } + } + }, + "clear_history": { + "name": "Borrar historial", + "description": "Elimina todas las preguntas y respuestas almacenadas del historial de conversación", + "fields": { + "instance": { + "name": "Instancia", + "description": "Nombre de la instancia de HA Text AI para la que se va a borrar el historial" + } + } + }, + "get_history": { + "name": "Obtener historial", + "description": "Recupera el historial de conversaciones con filtrado y ordenación opcionales", + "fields": { + "instance": { + "name": "Instancia", + "description": "Nombre de la instancia de HA Text AI de la que se va a obtener el historial" + }, + "limit": { + "name": "Límite", + "description": "Número de conversaciones que se van a devolver (1-100)" + }, + "filter_model": { + "name": "Filtrar modelo", + "description": "Filtra las conversaciones por un modelo de IA específico" + }, + "start_date": { + "name": "Fecha de inicio", + "description": "Filtra las conversaciones a partir de esta fecha/hora" + }, + "include_metadata": { + "name": "Incluir metadatos", + "description": "Incluir información adicional como los tokens utilizados, el tiempo de respuesta, etc." + }, + "sort_order": { + "name": "Orden de clasificación", + "description": "Orden de clasificación de los resultados (más recientes o más antiguos primero)" + } + } + }, + "set_system_prompt": { + "name": "Establecer indicación del sistema", + "description": "Establece instrucciones predeterminadas de comportamiento del sistema para todas las conversaciones futuras", + "fields": { + "instance": { + "name": "Instancia", + "description": "Nombre de la instancia de HA Text AI para la que se va a establecer la indicación del sistema" + }, + "prompt": { + "name": "Indicación del sistema", + "description": "Instrucciones que definen cómo debe comportarse y responder la IA" + } + } + } + }, + "entity": { + "sensor": { + "ha_text_ai": { + "name": "{name}", + "state": { + "ready": "Listo", + "processing": "Procesando", + "error": "Error", + "disconnected": "Desconectado", + "rate_limited": "Límite de tasa alcanzado", + "maintenance": "Mantenimiento", + "initializing": "Inicializando", + "retrying": "Reintentando", + "queued": "En cola" + }, + "state_attributes": { + "question": { + "name": "Última pregunta" + }, + "response": { + "name": "Última respuesta" + }, + "model": { + "name": "Modelo actual" + }, + "temperature": { + "name": "Temperatura" + }, + "max_tokens": { + "name": "Máx. tokens" + }, + "system_prompt": { + "name": "Indicación del sistema" + }, + "response_time": { + "name": "Tiempo de la última respuesta" + }, + "total_responses": { + "name": "Total de respuestas" + }, + "error_count": { + "name": "Recuento de errores" + }, + "last_error": { + "name": "Último error" + }, + "api_status": { + "name": "Estado de la API" + }, + "tokens_used": { + "name": "Total de tokens usados" + }, + "average_response_time": { + "name": "Tiempo medio de respuesta" + }, + "last_request_time": { + "name": "Tiempo de la última solicitud" + }, + "is_processing": { + "name": "Estado de procesamiento" + }, + "is_rate_limited": { + "name": "Estado de límite de tasa" + }, + "is_maintenance": { + "name": "Estado de mantenimiento" + }, + "api_version": { + "name": "Versión de la API" + }, + "endpoint_status": { + "name": "Estado del punto final" + }, + "performance_metrics": { + "name": "Métricas de rendimiento" + }, + "history_size": { + "name": "Tamaño del historial" + }, + "uptime": { + "name": "Tiempo de actividad" + }, + "total_tokens": { + "name": "Total de tokens" + }, + "prompt_tokens": { + "name": "Tokens de indicación" + }, + "completion_tokens": { + "name": "Tokens de compleción" + }, + "successful_requests": { + "name": "Solicitudes exitosas" + }, + "failed_requests": { + "name": "Solicitudes fallidas" + }, + "average_latency": { + "name": "Latencia media" + }, + "max_latency": { + "name": "Latencia máxima" + }, + "min_latency": { + "name": "Latencia mínima" + } + } + } + } + } +} diff --git a/custom_components/ha_text_ai/translations/hi.json b/custom_components/ha_text_ai/translations/hi.json new file mode 100644 index 0000000..fbf576b --- /dev/null +++ b/custom_components/ha_text_ai/translations/hi.json @@ -0,0 +1,266 @@ +{ + "config": { + "step": { + "provider": { + "title": "AI प्रदाता का चयन करें", + "description": "इस उदाहरण के लिए उपयोग करने के लिए AI सेवा प्रदाता चुनें।", + "data": { + "api_provider": "API प्रदाता", + "context_messages": "बनाए रखने के लिए संदर्भ संदेशों की संख्या (1-20)" + } + }, + "user": { + "title": "HA टेक्स्ट AI उदाहरण को कॉन्फ़िगर करें", + "description": "अपने चयनित प्रदाता के साथ एक नया AI सहायक उदाहरण सेट करें।", + "data": { + "name": "उदाहरण का नाम (जैसे, 'GPT सहायक', 'क्लाउड सहायक')", + "api_key": "प्रमाणीकरण के लिए API कुंजी", + "model": "उपयोग करने के लिए AI मॉडल", + "temperature": "प्रतिक्रिया रचनात्मकता (0-2, कम = अधिक केंद्रित)", + "max_tokens": "अधिकतम प्रतिक्रिया लंबाई (1-4096 टोकन)", + "api_endpoint": "कस्टम API एंडपॉइंट URL (वैकल्पिक)", + "api_provider": "API प्रदाता", + "request_interval": "अनुरोधों के बीच न्यूनतम समय (0.1-60 सेकंड)", + "context_messages": "बनाए रखने के लिए संदर्भ संदेशों की संख्या (1-20)", + "max_history_size": "अधिकतम वार्तालाप इतिहास आकार (1-100)" + } + } + }, + "error": { + "name_exists": "इस नाम का एक उदाहरण पहले से मौजूद है", + "invalid_name": "अमान्य उदाहरण नाम", + "invalid_auth": "प्रमाणीकरण विफल - अपनी API कुंजी जांचें", + "invalid_api_key": "अमान्य API कुंजी - कृपया अपनी क्रेडेंशियल सत्यापित करें", + "cannot_connect": "API सेवा से कनेक्ट करने में विफल", + "invalid_model": "चयनित मॉडल उपलब्ध नहीं है", + "rate_limit": "दर सीमा पार हो गई", + "context_length": "संदर्भ लंबाई पार हो गई", + "rate_limit_exceeded": "API दर सीमा पार हो गई", + "maintenance": "सेवा रखरखाव के अधीन है", + "invalid_response": "अमान्य API प्रतिक्रिया प्राप्त हुई", + "api_error": "API सेवा त्रुटि हुई", + "timeout": "अनुरोध समय समाप्त हो गया", + "invalid_instance": "अमान्य उदाहरण निर्दिष्ट किया गया", + "unknown": "अप्रत्याशित त्रुटि हुई", + "empty": "नाम खाली नहीं हो सकता", + "invalid_characters": "नाम में केवल अक्षर, संख्या, रिक्त स्थान, अंडरस्कोर और हाइफ़न हो सकते हैं", + "name_too_long": "नाम 50 वर्ण या उससे कम होना चाहिए" + } + }, + "options": { + "step": { + "init": { + "title": "उदाहरण सेटिंग्स अपडेट करें", + "description": "इस AI सहायक उदाहरण के लिए सेटिंग्स संशोधित करें।", + "data": { + "model": "AI मॉडल", + "temperature": "प्रतिक्रिया रचनात्मकता (0-2)", + "max_tokens": "अधिकतम प्रतिक्रिया लंबाई (1-4096)", + "request_interval": "न्यूनतम अनुरोध अंतराल (0.1-60 सेकंड)", + "context_messages": "संदर्भ में शामिल करने के लिए पिछले संदेशों की संख्या (1-20)", + "max_history_size": "अधिकतम वार्तालाप इतिहास आकार (1-100)" + } + } + } + }, + "services": { + "ask_question": { + "name": "प्रश्न पूछें (HA टेक्स्ट AI)", + "description": "AI मॉडल को एक प्रश्न भेजें और एक विस्तृत प्रतिक्रिया प्राप्त करें। प्रतिक्रिया वार्तालाप इतिहास में संग्रहीत की जाएगी और बाद में पुनर्प्राप्त की जा सकती है।", + "fields": { + "instance": { + "name": "उदाहरण", + "description": "उपयोग करने के लिए HA टेक्स्ट AI उदाहरण का नाम" + }, + "question": { + "name": "प्रश्न", + "description": "AI सहायक के लिए आपका प्रश्न या संकेत" + }, + "context_messages": { + "name": "संदर्भ संदेश", + "description": "संदर्भ में शामिल करने के लिए पिछले संदेशों की संख्या (1-20)" + }, + "system_prompt": { + "name": "सिस्टम प्रॉम्प्ट", + "description": "इस विशिष्ट प्रश्न के लिए संदर्भ सेट करने के लिए वैकल्पिक सिस्टम प्रॉम्प्ट" + }, + "model": { + "name": "मॉडल", + "description": "उपयोग करने के लिए AI मॉडल का चयन करें (वैकल्पिक, डिफ़ॉल्ट सेटिंग को ओवरराइड करता है)" + }, + "temperature": { + "name": "तापमान", + "description": "प्रतिक्रिया रचनात्मकता को नियंत्रित करता है (0.0-2.0)" + }, + "max_tokens": { + "name": "अधिकतम टोकन", + "description": "प्रतिक्रिया की अधिकतम लंबाई (1-4096 टोकन)" + } + } + }, + "clear_history": { + "name": "इतिहास साफ़ करें", + "description": "वार्तालाप इतिहास से सभी संग्रहीत प्रश्न और प्रतिक्रियाएँ हटाएँ", + "fields": { + "instance": { + "name": "उदाहरण", + "description": "इतिहास साफ़ करने के लिए HA टेक्स्ट AI उदाहरण का नाम" + } + } + }, + "get_history": { + "name": "इतिहास प्राप्त करें", + "description": "वैकल्पिक फ़िल्टरिंग और सॉर्टिंग के साथ वार्तालाप इतिहास पुनर्प्राप्त करें", + "fields": { + "instance": { + "name": "उदाहरण", + "description": "इतिहास प्राप्त करने के लिए HA टेक्स्ट AI उदाहरण का नाम" + }, + "limit": { + "name": "सीमा", + "description": "वापस करने के लिए वार्तालापों की संख्या (1-100)" + }, + "filter_model": { + "name": "फ़िल्टर मॉडल", + "description": "विशिष्ट AI मॉडल द्वारा वार्तालापों को फ़िल्टर करें" + }, + "start_date": { + "name": "प्रारंभ तिथि", + "description": "इस तिथि/समय से शुरू होने वाले वार्तालापों को फ़िल्टर करें" + }, + "include_metadata": { + "name": "मेटाडेटा शामिल करें", + "description": "उपयोग किए गए टोकन, प्रतिक्रिया समय, आदि जैसी अतिरिक्त जानकारी शामिल करें।" + }, + "sort_order": { + "name": "क्रमबद्ध करें", + "description": "परिणामों के लिए क्रमबद्ध क्रम (नवीनतम या सबसे पुराना पहले)" + } + } + }, + "set_system_prompt": { + "name": "सिस्टम प्रॉम्प्ट सेट करें", + "description": "सभी भविष्य के वार्तालापों के लिए डिफ़ॉल्ट सिस्टम व्यवहार निर्देश सेट करें", + "fields": { + "instance": { + "name": "उदाहरण", + "description": "सिस्टम प्रॉम्प्ट सेट करने के लिए HA टेक्स्ट AI उदाहरण का नाम" + }, + "prompt": { + "name": "सिस्टम प्रॉम्प्ट", + "description": "निर्देश जो परिभाषित करते हैं कि AI को कैसे व्यवहार करना चाहिए और जवाब देना चाहिए" + } + } + } + }, + "entity": { + "sensor": { + "ha_text_ai": { + "name": "{name}", + "state": { + "ready": "तैयार", + "processing": "प्रक्रियाधीन", + "error": "त्रुटि", + "disconnected": "डिस्कनेक्टेड", + "rate_limited": "दर सीमित", + "maintenance": "रखरखाव", + "initializing": "आरंभिकरण", + "retrying": "पुनः प्रयास कर रहा है", + "queued": "कतारबद्ध" + }, + "state_attributes": { + "question": { + "name": "अंतिम प्रश्न" + }, + "response": { + "name": "अंतिम प्रतिक्रिया" + }, + "model": { + "name": "वर्तमान मॉडल" + }, + "temperature": { + "name": "तापमान" + }, + "max_tokens": { + "name": "अधिकतम टोकन" + }, + "system_prompt": { + "name": "सिस्टम प्रॉम्प्ट" + }, + "response_time": { + "name": "अंतिम प्रतिक्रिया समय" + }, + "total_responses": { + "name": "कुल प्रतिक्रियाएँ" + }, + "error_count": { + "name": "त्रुटि गणना" + }, + "last_error": { + "name": "अंतिम त्रुटि" + }, + "api_status": { + "name": "API स्थिति" + }, + "tokens_used": { + "name": "कुल टोकन उपयोग किए गए" + }, + "average_response_time": { + "name": "औसत प्रतिक्रिया समय" + }, + "last_request_time": { + "name": "अंतिम अनुरोध समय" + }, + "is_processing": { + "name": "प्रसंस्करण स्थिति" + }, + "is_rate_limited": { + "name": "दर सीमित स्थिति" + }, + "is_maintenance": { + "name": "रखरखाव स्थिति" + }, + "api_version": { + "name": "API संस्करण" + }, + "endpoint_status": { + "name": "एंडपॉइंट स्थिति" + }, + "performance_metrics": { + "name": "प्रदर्शन मेट्रिक्स" + }, + "history_size": { + "name": "इतिहास का आकार" + }, + "uptime": { + "name": "अपटाइम" + }, + "total_tokens": { + "name": "कुल टोकन" + }, + "prompt_tokens": { + "name": "प्रॉम्प्ट टोकन" + }, + "completion_tokens": { + "name": "पूर्ण टोकन" + }, + "successful_requests": { + "name": "सफल अनुरोध" + }, + "failed_requests": { + "name": "असफल अनुरोध" + }, + "average_latency": { + "name": "औसत विलंबता" + }, + "max_latency": { + "name": "अधिकतम विलंबता" + }, + "min_latency": { + "name": "न्यूनतम विलंबता" + } + } + } + } + } +} diff --git a/custom_components/ha_text_ai/translations/it.json b/custom_components/ha_text_ai/translations/it.json new file mode 100644 index 0000000..673fee3 --- /dev/null +++ b/custom_components/ha_text_ai/translations/it.json @@ -0,0 +1,266 @@ +{ + "config": { + "step": { + "provider": { + "title": "Seleziona Provider AI", + "description": "Scegli quale provider di servizio AI utilizzare per questa istanza.", + "data": { + "api_provider": "Provider API", + "context_messages": "Numero di messaggi di contesto da conservare (1-20)" + } + }, + "user": { + "title": "Configura Istanza HA Text AI", + "description": "Configura una nuova istanza di assistente AI con il provider selezionato.", + "data": { + "name": "Nome dell'istanza (es. 'Assistente GPT', 'Aiutante Claude')", + "api_key": "Chiave API per l'autenticazione", + "model": "Modello AI da utilizzare", + "temperature": "Creatività della risposta (0-2, più basso = più focalizzato)", + "max_tokens": "Lunghezza massima della risposta (1-4096 token)", + "api_endpoint": "URL endpoint API personalizzato (opzionale)", + "api_provider": "Provider API", + "request_interval": "Tempo minimo tra le richieste (0,1-60 secondi)", + "context_messages": "Numero di messaggi di contesto da conservare (1-20)", + "max_history_size": "Dimensione massima della cronologia delle conversazioni (1-100)" + } + } + }, + "error": { + "name_exists": "Un'istanza con questo nome esiste già", + "invalid_name": "Nome dell'istanza non valido", + "invalid_auth": "Autenticazione fallita - controlla la tua chiave API", + "invalid_api_key": "Chiave API non valida - verifica le tue credenziali", + "cannot_connect": "Impossibile connettersi al servizio API", + "invalid_model": "Il modello selezionato non è disponibile", + "rate_limit": "Limite di velocità superato", + "context_length": "Lunghezza del contesto superata", + "rate_limit_exceeded": "Limite di velocità API superato", + "maintenance": "Il servizio è in manutenzione", + "invalid_response": "Risposta API non valida ricevuta", + "api_error": "Si è verificato un errore del servizio API", + "timeout": "Richiesta scaduta", + "invalid_instance": "Istanza non valida specificata", + "unknown": "Si è verificato un errore imprevisto", + "empty": "Il nome non può essere vuoto", + "invalid_characters": "Il nome può contenere solo lettere, numeri, spazi, trattini bassi e trattini", + "name_too_long": "Il nome non può superare i 50 caratteri" + } + }, + "options": { + "step": { + "init": { + "title": "Aggiorna Impostazioni Istanza", + "description": "Modifica le impostazioni per questa istanza di assistente AI.", + "data": { + "model": "Modello AI", + "temperature": "Creatività della risposta (0-2)", + "max_tokens": "Lunghezza massima della risposta (1-4096)", + "request_interval": "Intervallo minimo tra le richieste (0,1-60 secondi)", + "context_messages": "Numero di messaggi precedenti da includere nel contesto (1-20)", + "max_history_size": "Dimensione massima della cronologia delle conversazioni (1-100)" + } + } + } + }, + "services": { + "ask_question": { + "name": "Fai una Domanda (HA Text AI)", + "description": "Invia una domanda al modello AI e ricevi una risposta dettagliata. La risposta verrà memorizzata nella cronologia delle conversazioni e potrà essere recuperata in seguito.", + "fields": { + "instance": { + "name": "Istanza", + "description": "Nome dell'istanza HA Text AI da utilizzare" + }, + "question": { + "name": "Domanda", + "description": "La tua domanda o prompt per l'assistente AI" + }, + "context_messages": { + "name": "Messaggi di Contesto", + "description": "Numero di messaggi precedenti da includere nel contesto (1-20)" + }, + "system_prompt": { + "name": "Prompt di Sistema", + "description": "Prompt di sistema opzionale per impostare il contesto per questa specifica domanda" + }, + "model": { + "name": "Modello", + "description": "Seleziona il modello AI da utilizzare (opzionale, sovrascrive l'impostazione predefinita)" + }, + "temperature": { + "name": "Temperatura", + "description": "Controlla la creatività della risposta (0.0-2.0)" + }, + "max_tokens": { + "name": "Max Token", + "description": "Lunghezza massima della risposta (1-4096 token)" + } + } + }, + "clear_history": { + "name": "Cancella Cronologia", + "description": "Elimina tutte le domande e le risposte memorizzate dalla cronologia delle conversazioni", + "fields": { + "instance": { + "name": "Istanza", + "description": "Nome dell'istanza HA Text AI per cui cancellare la cronologia" + } + } + }, + "get_history": { + "name": "Ottieni Cronologia", + "description": "Recupera la cronologia delle conversazioni con filtro e ordinamento opzionali", + "fields": { + "instance": { + "name": "Istanza", + "description": "Nome dell'istanza HA Text AI da cui ottenere la cronologia" + }, + "limit": { + "name": "Limite", + "description": "Numero di conversazioni da restituire (1-100)" + }, + "filter_model": { + "name": "Filtro Modello", + "description": "Filtra le conversazioni per specifico modello AI" + }, + "start_date": { + "name": "Data di Inizio", + "description": "Filtra le conversazioni a partire da questa data/ora" + }, + "include_metadata": { + "name": "Includi Metadati", + "description": "Includi informazioni aggiuntive come token utilizzati, tempo di risposta, ecc." + }, + "sort_order": { + "name": "Ordine di Ordinamento", + "description": "Ordine di ordinamento per i risultati (più recente o più vecchio per primo)" + } + } + }, + "set_system_prompt": { + "name": "Imposta Prompt di Sistema", + "description": "Imposta le istruzioni di comportamento predefinite del sistema per tutte le future conversazioni", + "fields": { + "instance": { + "name": "Istanza", + "description": "Nome dell'istanza HA Text AI per cui impostare il prompt di sistema" + }, + "prompt": { + "name": "Prompt di Sistema", + "description": "Istruzioni che definiscono come l'IA dovrebbe comportarsi e rispondere" + } + } + } + }, + "entity": { + "sensor": { + "ha_text_ai": { + "name": "{name}", + "state": { + "ready": "Pronto", + "processing": "In elaborazione", + "error": "Errore", + "disconnected": "Disconnesso", + "rate_limited": "Limite di Velocità Raggiunto", + "maintenance": "Manutenzione", + "initializing": "Inizializzazione", + "retrying": "Riprovando", + "queued": "In coda" + }, + "state_attributes": { + "question": { + "name": "Ultima Domanda" + }, + "response": { + "name": "Ultima Risposta" + }, + "model": { + "name": "Modello Attuale" + }, + "temperature": { + "name": "Temperatura" + }, + "max_tokens": { + "name": "Max Token" + }, + "system_prompt": { + "name": "Prompt di Sistema" + }, + "response_time": { + "name": "Tempo di Risposta Ultima" + }, + "total_responses": { + "name": "Totale Risposte" + }, + "error_count": { + "name": "Numero di Errori" + }, + "last_error": { + "name": "Ultimo Errore" + }, + "api_status": { + "name": "Stato API" + }, + "tokens_used": { + "name": "Totale Token Utilizzati" + }, + "average_response_time": { + "name": "Tempo di Risposta Medio" + }, + "last_request_time": { + "name": "Tempo Ultima Richiesta" + }, + "is_processing": { + "name": "Stato Elaborazione" + }, + "is_rate_limited": { + "name": "Stato Limite Velocità" + }, + "is_maintenance": { + "name": "Stato Manutenzione" + }, + "api_version": { + "name": "Versione API" + }, + "endpoint_status": { + "name": "Stato Endpoint" + }, + "performance_metrics": { + "name": "Metriche Prestazioni" + }, + "history_size": { + "name": "Dimensione Cronologia" + }, + "uptime": { + "name": "Tempo di Funzionamento" + }, + "total_tokens": { + "name": "Totale Token" + }, + "prompt_tokens": { + "name": "Token Prompt" + }, + "completion_tokens": { + "name": "Token Completamento" + }, + "successful_requests": { + "name": "Richieste Riuscite" + }, + "failed_requests": { + "name": "Richieste Fallite" + }, + "average_latency": { + "name": "Latency Media" + }, + "max_latency": { + "name": "Latency Massima" + }, + "min_latency": { + "name": "Latency Minima" + } + } + } + } + } + } diff --git a/custom_components/ha_text_ai/translations/sr.json b/custom_components/ha_text_ai/translations/sr.json new file mode 100644 index 0000000..711aa93 --- /dev/null +++ b/custom_components/ha_text_ai/translations/sr.json @@ -0,0 +1,266 @@ +{ + "config": { + "step": { + "provider": { + "title": "Изаберите добављача вештачке интелигенције", + "description": "Изаберите добављача услуга вештачке интелигенције који ћете користити за ову инстанцу.", + "data": { + "api_provider": "Добављач API-ја", + "context_messages": "Број порука контекста које треба задржати (1-20)" + } + }, + "user": { + "title": "Конфигуришите инстанцу HA Text AI", + "description": "Поставите нову инстанцу асистента вештачке интелигенције са изабраним добављачем.", + "data": { + "name": "Назив инстанце (нпр. 'GPT Assistant', 'Claude Helper')", + "api_key": "API кључ за аутентификацију", + "model": "Модел вештачке интелигенције који треба користити", + "temperature": "Креативност одговора (0-2, нижа = више фокусирана)", + "max_tokens": "Максимална дужина одговора (1-4096 токена)", + "api_endpoint": "Прилагођени URL завршног тачка API-ја (опционо)", + "api_provider": "Добављач API-ја", + "request_interval": "Минимално време између захтева (0.1-60 секунди)", + "context_messages": "Број порука контекста које треба задржати (1-20)", + "max_history_size": "Максимална величина историје разговора (1-100)" + } + } + }, + "error": { + "name_exists": "Инстанца са овим називом већ постоји", + "invalid_name": "Неважећи назив инстанце", + "invalid_auth": "Аутентификација није успела - проверите свој API кључ", + "invalid_api_key": "Неважећи API кључ - проверите своје податке о верификацији", + "cannot_connect": "Није могуће успоставити везу са услугом API-ја", + "invalid_model": "Изабрани модел није доступан", + "rate_limit": "Прекорачен је лимит стопе", + "context_length": "Прекорачена је дужина контекста", + "rate_limit_exceeded": "Прекорачен је лимит стопе API-ја", + "maintenance": "Услуга је у фази одржавања", + "invalid_response": "Примљен је неважећи одговор API-ја", + "api_error": "Догодила се грешка у услузи API-ја", + "timeout": "Захтев је истекао", + "invalid_instance": "Наведена је неважећа инстанца", + "unknown": "Догодила се неочекивана грешка", + "empty": "Назив не може бити празан", + "invalid_characters": "Назив може да садржи само слова, бројеве, размаке, цртице и цртице", + "name_too_long": "Назив мора бити 50 карактера или мање" + } + }, + "options": { + "step": { + "init": { + "title": "Ажурирајте подешавања инстанце", + "description": "Измените подешавања за ову инстанцу асистента вештачке интелигенције.", + "data": { + "model": "Модел вештачке интелигенције", + "temperature": "Креативност одговора (0-2)", + "max_tokens": "Максимална дужина одговора (1-4096)", + "request_interval": "Минимални интервал захтева (0.1-60 секунди)", + "context_messages": "Број претходних порука које треба укључити у контекст (1-20)", + "max_history_size": "Максимална величина историје разговора (1-100)" + } + } + } + }, + "services": { + "ask_question": { + "name": "Поставите питање (HA Text AI)", + "description": "Пошаљите питање моделу вештачке интелигенције и добијте детаљан одговор. Одговор ће бити сачуван у историји разговора и може се касније преузети.", + "fields": { + "instance": { + "name": "Инстанца", + "description": "Назив инстанце HA Text AI коју треба користити" + }, + "question": { + "name": "Питање", + "description": "Ваше питање или наговештај за асистента вештачке интелигенције" + }, + "context_messages": { + "name": "Поруке контекста", + "description": "Број претходних порука које треба укључити у контекст (1-20)" + }, + "system_prompt": { + "name": "Системски наговештај", + "description": "Опциони системски наговештај за постављање контекста за ово одређено питање" + }, + "model": { + "name": "Модел", + "description": "Изаберите модел вештачке интелигенције који треба користити (опционо, преклапа подразумевано подешавање)" + }, + "temperature": { + "name": "Температура", + "description": "Контролише креативност одговора (0.0-2.0)" + }, + "max_tokens": { + "name": "Макс. токени", + "description": "Максимална дужина одговора (1-4096 токена)" + } + } + }, + "clear_history": { + "name": "Обриши историју", + "description": "Обришите сва сачувана питања и одговоре из историје разговора", + "fields": { + "instance": { + "name": "Инстанца", + "description": "Назив инстанце HA Text AI за коју треба очистити историју" + } + } + }, + "get_history": { + "name": "Добиј историју", + "description": "Преузмите историју разговора са опционом филтрацијом и сортирањем", + "fields": { + "instance": { + "name": "Инстанца", + "description": "Назив инстанце HA Text AI из које треба добити историју" + }, + "limit": { + "name": "Лимит", + "description": "Број разговора који треба вратити (1-100)" + }, + "filter_model": { + "name": "Филтер модела", + "description": "Филтрирајте разговоре по одређеном моделу вештачке интелигенције" + }, + "start_date": { + "name": "Почетни датум", + "description": "Филтрирајте разговоре почев од овог датума/времена" + }, + "include_metadata": { + "name": "Укључи метаподатке", + "description": "Укључите додатне информације попут коришћених токена, времена одговора и слично." + }, + "sort_order": { + "name": "Редослед сортирања", + "description": "Редослед сортирања за резултате (најновији или најстарији прво)" + } + } + }, + "set_system_prompt": { + "name": "Поставите системски наговештај", + "description": "Поставите подразумевана упутства за понашање система за све будуће разговоре", + "fields": { + "instance": { + "name": "Инстанца", + "description": "Назив инстанце HA Text AI за коју треба поставити системски наговештај" + }, + "prompt": { + "name": "Системски наговештај", + "description": "Упутства која дефинишу како би се вештачка интелигенција требала понашати и одговарати" + } + } + } + }, + "entity": { + "sensor": { + "ha_text_ai": { + "name": "{name}", + "state": { + "ready": "Спремно", + "processing": "Обрада", + "error": "Грешка", + "disconnected": "Искључено", + "rate_limited": "Лимит стопе", + "maintenance": "Одржавање", + "initializing": "Иницијализација", + "retrying": "Понављање", + "queued": "У реду чекања" + }, + "state_attributes": { + "question": { + "name": "Последње питање" + }, + "response": { + "name": "Последњи одговор" + }, + "model": { + "name": "Тренутни модел" + }, + "temperature": { + "name": "Температура" + }, + "max_tokens": { + "name": "Макс. токени" + }, + "system_prompt": { + "name": "Системски наговештај" + }, + "response_time": { + "name": "Време последњег одговора" + }, + "total_responses": { + "name": "Укупан број одговора" + }, + "error_count": { + "name": "Број грешака" + }, + "last_error": { + "name": "Последња грешка" + }, + "api_status": { + "name": "Статус API-ја" + }, + "tokens_used": { + "name": "Укупно коришћених токена" + }, + "average_response_time": { + "name": "Просечно време одговора" + }, + "last_request_time": { + "name": "Време последњег захтева" + }, + "is_processing": { + "name": "Статус обраде" + }, + "is_rate_limited": { + "name": "Статус ограничења стопе" + }, + "is_maintenance": { + "name": "Статус одржавања" + }, + "api_version": { + "name": "Верзија API-ја" + }, + "endpoint_status": { + "name": "Статус завршне тачке" + }, + "performance_metrics": { + "name": "Метрике перформанси" + }, + "history_size": { + "name": "Величина историје" + }, + "uptime": { + "name": "Време рада" + }, + "total_tokens": { + "name": "Укупан број токена" + }, + "prompt_tokens": { + "name": "Токени наговештаја" + }, + "completion_tokens": { + "name": "Токени довршетака" + }, + "successful_requests": { + "name": "Успешни захтеви" + }, + "failed_requests": { + "name": "Неуспешни захтеви" + }, + "average_latency": { + "name": "Просечна латенција" + }, + "max_latency": { + "name": "Максимална латенција" + }, + "min_latency": { + "name": "Минимална латенција" + } + } + } + } + } +} diff --git a/custom_components/ha_text_ai/translations/zh.json b/custom_components/ha_text_ai/translations/zh.json new file mode 100644 index 0000000..b3955e3 --- /dev/null +++ b/custom_components/ha_text_ai/translations/zh.json @@ -0,0 +1,266 @@ +{ + "config": { + "step": { + "provider": { + "title": "选择 AI 提供商", + "description": "选择要用于此实例的 AI 服务提供商。", + "data": { + "api_provider": "API 提供商", + "context_messages": "要保留的上下文消息数量 (1-20)" + } + }, + "user": { + "title": "配置 HA Text AI 实例", + "description": "使用您选择的提供商设置新的 AI 助手实例。", + "data": { + "name": "实例名称(例如,“GPT 助手”、“Claude 助手”)", + "api_key": "用于身份验证的 API 密钥", + "model": "要使用的 AI 模型", + "temperature": "回复创意度 (0-2,数值越低,回复越聚焦)", + "max_tokens": "最大回复长度(1-4096 个 Token)", + "api_endpoint": "自定义 API 端点 URL(可选)", + "api_provider": "API 提供商", + "request_interval": "请求之间的最短时间间隔(0.1-60 秒)", + "context_messages": "要保留的上下文消息数量 (1-20)", + "max_history_size": "最大对话历史记录大小 (1-100)" + } + } + }, + "error": { + "name_exists": "已存在具有此名称的实例", + "invalid_name": "无效的实例名称", + "invalid_auth": "身份验证失败 - 请检查您的 API 密钥", + "invalid_api_key": "无效的 API 密钥 - 请验证您的凭据", + "cannot_connect": "无法连接到 API 服务", + "invalid_model": "所选模型不可用", + "rate_limit": "超出速率限制", + "context_length": "上下文长度超出限制", + "rate_limit_exceeded": "API 速率限制已超出", + "maintenance": "服务正在维护中", + "invalid_response": "收到无效的 API 响应", + "api_error": "发生 API 服务错误", + "timeout": "请求超时", + "invalid_instance": "指定的实例无效", + "unknown": "发生意外错误", + "empty": "名称不能为空", + "invalid_characters": "名称只能包含字母、数字、空格、下划线和连字符", + "name_too_long": "名称必须为 50 个字符或更少" + } + }, + "options": { + "step": { + "init": { + "title": "更新实例设置", + "description": "修改此 AI 助手实例的设置。", + "data": { + "model": "AI 模型", + "temperature": "回复创意度 (0-2)", + "max_tokens": "最大回复长度 (1-4096)", + "request_interval": "最短请求间隔 (0.1-60 秒)", + "context_messages": "包含在上下文中的先前消息数 (1-20)", + "max_history_size": "最大对话历史记录大小 (1-100)" + } + } + } + }, + "services": { + "ask_question": { + "name": "提问 (HA Text AI)", + "description": "向 AI 模型发送问题并接收详细的回复。回复将存储在对话历史记录中,以后可以检索。", + "fields": { + "instance": { + "name": "实例", + "description": "要使用的 HA Text AI 实例的名称" + }, + "question": { + "name": "问题", + "description": "您要向 AI 助手提出的问题或提示" + }, + "context_messages": { + "name": "上下文消息", + "description": "包含在上下文中的先前消息数 (1-20)" + }, + "system_prompt": { + "name": "系统提示", + "description": "可选系统提示,用于为特定问题设置上下文" + }, + "model": { + "name": "模型", + "description": "选择要使用的 AI 模型(可选,覆盖默认设置)" + }, + "temperature": { + "name": "温度", + "description": "控制回复创意度 (0.0-2.0)" + }, + "max_tokens": { + "name": "最大 Token 数", + "description": "回复的最大长度(1-4096 个 Token)" + } + } + }, + "clear_history": { + "name": "清除历史记录", + "description": "删除对话历史记录中所有存储的问题和回复", + "fields": { + "instance": { + "name": "实例", + "description": "要清除历史记录的 HA Text AI 实例的名称" + } + } + }, + "get_history": { + "name": "获取历史记录", + "description": "检索对话历史记录,并可选择进行过滤和排序", + "fields": { + "instance": { + "name": "实例", + "description": "要从中获取历史记录的 HA Text AI 实例的名称" + }, + "limit": { + "name": "限制", + "description": "要返回的对话数量 (1-100)" + }, + "filter_model": { + "name": "筛选模型", + "description": "按特定 AI 模型筛选对话" + }, + "start_date": { + "name": "开始日期", + "description": "从该日期/时间开始筛选对话" + }, + "include_metadata": { + "name": "包含元数据", + "description": "包含其他信息,例如使用的 Token 数、响应时间等。" + }, + "sort_order": { + "name": "排序顺序", + "description": "结果的排序顺序(最新的或最早的优先)" + } + } + }, + "set_system_prompt": { + "name": "设置系统提示", + "description": "为所有将来的对话设置默认系统行为说明", + "fields": { + "instance": { + "name": "实例", + "description": "要为其设置系统提示的 HA Text AI 实例的名称" + }, + "prompt": { + "name": "系统提示", + "description": "定义 AI 如何行为和响应的说明" + } + } + } + }, + "entity": { + "sensor": { + "ha_text_ai": { + "name": "{name}", + "state": { + "ready": "就绪", + "processing": "处理中", + "error": "错误", + "disconnected": "已断开连接", + "rate_limited": "速率限制", + "maintenance": "维护", + "initializing": "初始化中", + "retrying": "重试中", + "queued": "排队中" + }, + "state_attributes": { + "question": { + "name": "最后一个问题" + }, + "response": { + "name": "最后一个回复" + }, + "model": { + "name": "当前模型" + }, + "temperature": { + "name": "温度" + }, + "max_tokens": { + "name": "最大 Token 数" + }, + "system_prompt": { + "name": "系统提示" + }, + "response_time": { + "name": "上次回复时间" + }, + "total_responses": { + "name": "总回复次数" + }, + "error_count": { + "name": "错误计数" + }, + "last_error": { + "name": "上次错误" + }, + "api_status": { + "name": "API 状态" + }, + "tokens_used": { + "name": "已使用的 Token 总数" + }, + "average_response_time": { + "name": "平均回复时间" + }, + "last_request_time": { + "name": "上次请求时间" + }, + "is_processing": { + "name": "处理状态" + }, + "is_rate_limited": { + "name": "速率限制状态" + }, + "is_maintenance": { + "name": "维护状态" + }, + "api_version": { + "name": "API 版本" + }, + "endpoint_status": { + "name": "端点状态" + }, + "performance_metrics": { + "name": "性能指标" + }, + "history_size": { + "name": "历史记录大小" + }, + "uptime": { + "name": "正常运行时间" + }, + "total_tokens": { + "name": "总 Token 数" + }, + "prompt_tokens": { + "name": "提示 Token 数" + }, + "completion_tokens": { + "name": "完成 Token 数" + }, + "successful_requests": { + "name": "成功请求数" + }, + "failed_requests": { + "name": "失败请求数" + }, + "average_latency": { + "name": "平均延迟" + }, + "max_latency": { + "name": "最大延迟" + }, + "min_latency": { + "name": "最小延迟" + } + } + } + } + } +}