diff src/lib/Chat.luan @ 16:f5425a3c1898

add languages
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 30 Jul 2025 10:38:27 -0600
parents 65bd7e245c63
children 0351b3d474f8
line wrap: on
line diff
--- a/src/lib/Chat.luan	Tue Jul 29 20:59:47 2025 -0600
+++ b/src/lib/Chat.luan	Wed Jul 30 10:38:27 2025 -0600
@@ -10,6 +10,9 @@
 local Db = require "site:/lib/Db.luan"
 local run_in_transaction = Db.run_in_transaction or error()
 local Ai = require "site:/lib/ai/Ai.luan"
+local languages = require "site:/lib/languages.luan"
+local Utils = require "site:/lib/Utils.luan"
+local get_first = Utils.get_first or error()
 
 
 local Chat = {}
@@ -23,6 +26,8 @@
 		name = doc.name
 		ai_name = doc.ai_name
 		ai_thread = doc.ai_thread
+		language = doc.language
+		language_region = doc.language_region
 	}
 end
 
@@ -35,13 +40,20 @@
 		name = chat.name or error()
 		ai_name = chat.ai_name or error()
 		ai_thread = chat.ai_thread -- or error()
+		language = chat.language or error()
+		language_region = chat.language_region or error()
 	}
 end
 
+local function first_region(language)
+	return get_first(languages[language].regions)
+end
+
 function Chat.new(chat)
 	chat.updated = chat.updated or time_now()
 	chat.ai_name = chat.ai_name or "claude"
 	chat.ai = Ai[chat.ai_name]["Chat.luan"] or error()
+	chat.language_region = chat.language_region or first_region(chat.language)
 
 	function chat.save()
 		local doc = to_doc(chat)
@@ -77,7 +89,7 @@
 			chat.ai_thread = ai_thread
 			chat.save()
 		end )
-		return `chat.ai.output_messages_html(ai_thread,old_thread)`
+		return `chat.ai.output_messages_html(chat.language_region,ai_thread,old_thread)`
 	end
 
 	return chat