hardcoded strings are now available for translation. fixes #298

This commit is contained in:
mic 2025-03-22 22:27:49 +01:00
parent 03ffd22de6
commit 627c71e62d
4 changed files with 37 additions and 10 deletions

View file

@ -1222,5 +1222,33 @@
"chatgpt_win_diff_title": { "chatgpt_win_diff_title": {
"message": "Differences between the original and the modified text", "message": "Differences between the original and the modified text",
"description": "" "description": ""
},
"apiwebchat_you": {
"message": "You",
"description": ""
},
"apiwebchat_info": {
"message": "Information",
"description": ""
},
"apiwebchat_error": {
"message": "Error",
"description": ""
},
"apiwebchat_use_this_answer": {
"message": "Use this answer",
"description": ""
},
"apiwebchat_show_differences": {
"message": "Show differences",
"description": ""
},
"apiwebchat_stopping": {
"message": "Stopping",
"description": ""
},
"apiwebchat_receiving_data": {
"message": "Receiving data",
"description": ""
} }
} }

View file

@ -126,7 +126,7 @@ worker.onmessage = function(event) {
break; break;
case 'newToken': case 'newToken':
messagesArea.handleNewToken(payload.token); messagesArea.handleNewToken(payload.token);
messageInput.setStatusMessage('Receiving data...'); messageInput.setStatusMessage(browser.i18n.getMessage("apiwebchat_receiving_data") + '...');
break; break;
case 'tokensDone': case 'tokensDone':
messagesArea.handleTokensDone(promptData); messagesArea.handleTokensDone(promptData);

View file

@ -216,7 +216,7 @@ class MessageInput extends HTMLElement {
_handleStopClick() { _handleStopClick() {
this.worker.postMessage({ type: 'stop' }); this.worker.postMessage({ type: 'stop' });
this._stopButton.setAttribute('disabled', 'disabled'); this._stopButton.setAttribute('disabled', 'disabled');
this._stopButton.title = 'Stopping...'; this._stopButton.title = browser.i18n.getMessage("apiwebchat_stopping") + '...';
} }
_handleNewChatMessage() { _handleNewChatMessage() {

View file

@ -162,13 +162,13 @@ class MessagesArea extends HTMLElement {
this.fullTextHTML = ""; this.fullTextHTML = "";
// console.log("[ThunderAI] appendUserMessage: " + messageText); // console.log("[ThunderAI] appendUserMessage: " + messageText);
const header = document.createElement('h2'); const header = document.createElement('h2');
let source = "You"; let source = browser.i18n.getMessage("apiwebchat_you");
switch (type) { switch (type) {
case "user": case "user":
source = "You"; source = browser.i18n.getMessage("apiwebchat_you");;
break; break;
case "info": case "info":
source = "Information"; source = browser.i18n.getMessage("apiwebchat_info");
break; break;
} }
header.textContent = source; header.textContent = source;
@ -191,7 +191,7 @@ class MessagesArea extends HTMLElement {
if (isLastMessageFromUser) { if (isLastMessageFromUser) {
const header = document.createElement('h2'); const header = document.createElement('h2');
header.textContent = this.llmName + (type=='error' ? " - Error" : ""); header.textContent = this.llmName + (type=='error' ? " - " + browser.i18n.getMessage("apiwebchat_error") : "");
this.messages.appendChild(header); this.messages.appendChild(header);
} }
@ -228,8 +228,7 @@ class MessagesArea extends HTMLElement {
const actionButtons = document.createElement('div'); const actionButtons = document.createElement('div');
actionButtons.classList.add('action-buttons'); actionButtons.classList.add('action-buttons');
const actionButton = document.createElement('button'); const actionButton = document.createElement('button');
actionButton.textContent = 'Use this answer'; actionButton.textContent = browser.i18n.getMessage("apiwebchat_use_this_answer");
//actionButton.textContent = browser.i18n.getMessage("chatgpt_win_get_answer");
const fullTextHTMLAtAssignment = this.fullTextHTML.trim().replace(/^"|"$/g, '').replace(/^<p>&quot;/, '<p>').replace(/&quot;<\/p>$/, '</p>'); // strip quotation marks const fullTextHTMLAtAssignment = this.fullTextHTML.trim().replace(/^"|"$/g, '').replace(/^<p>&quot;/, '<p>').replace(/&quot;<\/p>$/, '</p>'); // strip quotation marks
//console.log(">>>>>>>>>>>> fullTextHTMLAtAssignment: " + fullTextHTMLAtAssignment); //console.log(">>>>>>>>>>>> fullTextHTMLAtAssignment: " + fullTextHTMLAtAssignment);
actionButton.addEventListener('click', async () => { actionButton.addEventListener('click', async () => {
@ -257,7 +256,7 @@ class MessagesArea extends HTMLElement {
// diff viewer button // diff viewer button
if(promptData.prompt_info?.use_diff_viewer == "1") { if(promptData.prompt_info?.use_diff_viewer == "1") {
const diffvButton = document.createElement('button'); const diffvButton = document.createElement('button');
diffvButton.textContent = 'Show differences'; diffvButton.textContent = browser.i18n.getMessage("apiwebchat_show_differences");
diffvButton.addEventListener('click', async () => { diffvButton.addEventListener('click', async () => {
let strippedText = fullTextHTMLAtAssignment.replace(/<\/?[^>]+(>|$)/g, ""); let strippedText = fullTextHTMLAtAssignment.replace(/<\/?[^>]+(>|$)/g, "");
let originalText = promptData.prompt_info?.selection_text; let originalText = promptData.prompt_info?.selection_text;
@ -307,7 +306,7 @@ class MessagesArea extends HTMLElement {
}); });
const header = document.createElement('h2'); const header = document.createElement('h2');
header.textContent = "Diff viewer"; header.textContent = browser.i18n.getMessage("chatgpt_win_diff_title");
this.messages.appendChild(header); this.messages.appendChild(header);
this.messages.appendChild(messageElement); this.messages.appendChild(messageElement);