Skip to content

Commit 24dff69

Browse files
committed
feat(i18n): add AI chat related translations for multiple languages
1 parent 00f45ae commit 24dff69

File tree

5 files changed

+92
-15
lines changed

5 files changed

+92
-15
lines changed

wox.core/resource/lang/en_US.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,23 @@
144144
"ui_app_width_tips": "Adjust the width of the Wox window (800-1600 pixels)",
145145
"ui_max_result_count": "Maximum results",
146146
"ui_max_result_count_tips": "Maximum number of results to display in the list (5-15 items)",
147+
"ui_ai_chat_select_model": "Please select a model",
148+
"ui_ai_chat_input_hint": "Type a message here, press ← to send",
149+
"ui_ai_chat_configure_tools": "Configure Tool Usage",
150+
"ui_ai_chat_send": "Send",
151+
"ui_ai_chat_options": "Chat Options",
152+
"ui_ai_chat_select_model_title": "Select Model",
153+
"ui_ai_chat_configure_tools_title": "Configure Tools",
154+
"ui_ai_chat_tool_status_streaming": "Streaming",
155+
"ui_ai_chat_tool_status_pending": "Pending",
156+
"ui_ai_chat_tool_status_running": "Running",
157+
"ui_ai_chat_tool_status_succeeded": "Succeeded",
158+
"ui_ai_chat_tool_status_failed": "Failed: %s",
159+
"ui_ai_chat_tool_detail_id": "Id",
160+
"ui_ai_chat_tool_detail_name": "Name",
161+
"ui_ai_chat_tool_detail_params": "Parameters",
162+
"ui_ai_chat_tool_detail_duration": "Duration",
163+
"ui_ai_chat_tool_detail_response": "Response",
147164
"plugin_app_open": "Open",
148165
"plugin_app_open_containing_folder": "Open Containing Folder",
149166
"plugin_app_copy_path": "Copy Path",

wox.core/resource/lang/pt_BR.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,23 @@
144144
"ui_app_width_tips": "Ajuste a largura da janela do Wox (800-1600 pixels)",
145145
"ui_max_result_count": "Contagem máxima de resultados",
146146
"ui_max_result_count_tips": "Defina o número máximo de resultados a serem exibidos na lista (5-15 itens)",
147+
"ui_ai_chat_select_model": "Por favor, selecione um modelo",
148+
"ui_ai_chat_input_hint": "Digite uma mensagem aqui, pressione ← para enviar",
149+
"ui_ai_chat_configure_tools": "Configurar uso de ferramentas",
150+
"ui_ai_chat_send": "Enviar",
151+
"ui_ai_chat_options": "Opções de chat",
152+
"ui_ai_chat_select_model_title": "Selecionar modelo",
153+
"ui_ai_chat_configure_tools_title": "Configurar ferramentas",
154+
"ui_ai_chat_tool_status_streaming": "Transmitindo",
155+
"ui_ai_chat_tool_status_pending": "Pendente",
156+
"ui_ai_chat_tool_status_running": "Executando",
157+
"ui_ai_chat_tool_status_succeeded": "Sucesso",
158+
"ui_ai_chat_tool_status_failed": "Falha: %s",
159+
"ui_ai_chat_tool_detail_id": "Id",
160+
"ui_ai_chat_tool_detail_name": "Nome",
161+
"ui_ai_chat_tool_detail_params": "Parâmetros",
162+
"ui_ai_chat_tool_detail_duration": "Duração",
163+
"ui_ai_chat_tool_detail_response": "Resposta",
147164
"plugin_app_open": "Abrir",
148165
"plugin_app_open_containing_folder": "Abrir pasta contendo",
149166
"plugin_app_copy_path": "Copiar caminho",

wox.core/resource/lang/ru_RU.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,23 @@
144144
"ui_app_width_tips": "Настройте ширину окна Wox (800-1600 пикселей)",
145145
"ui_max_result_count": "Максимальное количество результатов",
146146
"ui_max_result_count_tips": "Установите максимальное количество результатов, отображаемых в списке (5-15 элементов)",
147+
"ui_ai_chat_select_model": "Пожалуйста, выберите модель",
148+
"ui_ai_chat_input_hint": "Введите сообщение здесь, нажмите ← для отправки",
149+
"ui_ai_chat_configure_tools": "Настроить использование инструментов",
150+
"ui_ai_chat_send": "Отправить",
151+
"ui_ai_chat_options": "Опции чата",
152+
"ui_ai_chat_select_model_title": "Выбрать модель",
153+
"ui_ai_chat_configure_tools_title": "Настроить инструменты",
154+
"ui_ai_chat_tool_status_streaming": "Потоковая передача",
155+
"ui_ai_chat_tool_status_pending": "В ожидании",
156+
"ui_ai_chat_tool_status_running": "Выполняется",
157+
"ui_ai_chat_tool_status_succeeded": "Успешно",
158+
"ui_ai_chat_tool_status_failed": "Ошибка: %s",
159+
"ui_ai_chat_tool_detail_id": "Id",
160+
"ui_ai_chat_tool_detail_name": "Имя",
161+
"ui_ai_chat_tool_detail_params": "Параметры",
162+
"ui_ai_chat_tool_detail_duration": "Длительность",
163+
"ui_ai_chat_tool_detail_response": "Ответ",
147164
"plugin_app_open": "Открыть",
148165
"plugin_app_open_containing_folder": "Открыть содержащую папку",
149166
"plugin_app_copy_path": "Копировать путь",

wox.core/resource/lang/zh_CN.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,23 @@
142142
"ui_ai_model_selector_save": "保存",
143143
"ui_app_width": "窗口宽度",
144144
"ui_app_width_tips": "调整 Wox 窗口的宽度(800-1600像素)",
145+
"ui_ai_chat_select_model": "请选择模型",
146+
"ui_ai_chat_input_hint": "在这里输入消息,按 ← 发送",
147+
"ui_ai_chat_configure_tools": "配置工具使用",
148+
"ui_ai_chat_send": "发送",
149+
"ui_ai_chat_options": "聊天选项",
150+
"ui_ai_chat_select_model_title": "选择模型",
151+
"ui_ai_chat_configure_tools_title": "配置工具",
152+
"ui_ai_chat_tool_status_streaming": "正在调用",
153+
"ui_ai_chat_tool_status_pending": "等待执行",
154+
"ui_ai_chat_tool_status_running": "正在执行",
155+
"ui_ai_chat_tool_status_succeeded": "执行成功",
156+
"ui_ai_chat_tool_status_failed": "执行失败: %s",
157+
"ui_ai_chat_tool_detail_id": "Id",
158+
"ui_ai_chat_tool_detail_name": "名称",
159+
"ui_ai_chat_tool_detail_params": "参数",
160+
"ui_ai_chat_tool_detail_duration": "耗时",
161+
"ui_ai_chat_tool_detail_response": "响应",
145162
"ui_max_result_count": "最大结果数",
146163
"ui_max_result_count_tips": "显示在列表中的最大结果数量(5-15项)",
147164
"plugin_app_open": "打开",

wox.ui.flutter/wox/lib/components/wox_ai_chat_view.dart

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,26 @@ import 'package:uuid/v4.dart';
77
import 'package:wox/components/wox_image_view.dart';
88
import 'package:wox/components/wox_list_view.dart';
99
import 'package:wox/controllers/wox_ai_chat_controller.dart';
10+
import 'package:wox/controllers/wox_setting_controller.dart';
1011
import 'package:wox/entity/wox_ai.dart';
1112
import 'package:wox/entity/wox_hotkey.dart';
1213
import 'package:wox/entity/wox_theme.dart';
1314
import 'package:wox/enums/wox_ai_conversation_role_enum.dart';
1415
import 'package:wox/enums/wox_list_view_type_enum.dart';
1516
import 'package:wox/utils/log.dart';
17+
import 'package:wox/utils/strings.dart';
1618
import 'package:wox/utils/wox_theme_util.dart';
1719

1820
class WoxAIChatView extends GetView<WoxAIChatController> {
1921
const WoxAIChatView({super.key});
2022

2123
WoxTheme get woxTheme => WoxThemeUtil.instance.currentTheme.value;
2224

25+
// Get translation from WoxSettingController
26+
String tr(String key) {
27+
return Get.find<WoxSettingController>().tr(key);
28+
}
29+
2330
@override
2431
Widget build(BuildContext context) {
2532
if (LoggerSwitch.enablePaintLog) Logger.instance.debug(const UuidV4().generate(), "repaint: chat view");
@@ -54,7 +61,7 @@ class WoxAIChatView extends GetView<WoxAIChatController> {
5461
const SizedBox(width: 8),
5562
Expanded(
5663
child: Obx(() => Text(
57-
controller.aiChatData.value.model.value.name.isEmpty ? "请选择模型" : controller.aiChatData.value.model.value.name,
64+
controller.aiChatData.value.model.value.name.isEmpty ? tr("ui_ai_chat_select_model") : controller.aiChatData.value.model.value.name,
5865
style: TextStyle(
5966
color: fromCssColor(woxTheme.previewPropertyTitleColor),
6067
fontSize: 14,
@@ -130,7 +137,7 @@ class WoxAIChatView extends GetView<WoxAIChatController> {
130137
controller: controller.textController,
131138
focusNode: controller.aiChatFocusNode,
132139
decoration: InputDecoration(
133-
hintText: '在这里输入消息,按下 ← 发送',
140+
hintText: tr('ui_ai_chat_input_hint'),
134141
hintStyle: TextStyle(color: fromCssColor(woxTheme.previewPropertyTitleColor)),
135142
border: InputBorder.none,
136143
contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10),
@@ -158,7 +165,7 @@ class WoxAIChatView extends GetView<WoxAIChatController> {
158165
children: [
159166
// Tool configuration button - opens chat select panel
160167
Obx(() => IconButton(
161-
tooltip: 'Configure Tool Usage',
168+
tooltip: tr('ui_ai_chat_configure_tools'),
162169
icon: Icon(Icons.build,
163170
size: 18,
164171
color: controller.selectedTools.isNotEmpty
@@ -194,7 +201,7 @@ class WoxAIChatView extends GetView<WoxAIChatController> {
194201
),
195202
const SizedBox(width: 4),
196203
Text(
197-
'发送',
204+
tr('ui_ai_chat_send'),
198205
style: TextStyle(
199206
fontSize: 12,
200207
color: fromCssColor(woxTheme.actionItemActiveFontColor),
@@ -247,7 +254,9 @@ class WoxAIChatView extends GetView<WoxAIChatController> {
247254
crossAxisAlignment: CrossAxisAlignment.start,
248255
children: [
249256
Obx(() => Text(
250-
controller.currentChatSelectCategory.isEmpty ? "Chat Options" : (controller.currentChatSelectCategory.value == "models" ? "Select Model" : "Configure Tools"),
257+
controller.currentChatSelectCategory.isEmpty
258+
? tr("ui_ai_chat_options")
259+
: (controller.currentChatSelectCategory.value == "models" ? tr("ui_ai_chat_select_model_title") : tr("ui_ai_chat_configure_tools_title")),
251260
style: TextStyle(color: fromCssColor(woxTheme.actionContainerHeaderFontColor), fontSize: 16.0),
252261
)),
253262
const Divider(),
@@ -438,27 +447,27 @@ class WoxAIChatView extends GetView<WoxAIChatController> {
438447
case ToolCallStatus.streaming:
439448
icon = Icons.play_arrow;
440449
color = Colors.blue;
441-
tooltip = '正在调用';
450+
tooltip = tr('ui_ai_chat_tool_status_streaming');
442451
break;
443452
case ToolCallStatus.pending:
444453
icon = Icons.hourglass_empty;
445454
color = Colors.grey;
446-
tooltip = '等待执行';
455+
tooltip = tr('ui_ai_chat_tool_status_pending');
447456
break;
448457
case ToolCallStatus.running:
449458
icon = Icons.refresh;
450459
color = Colors.blue;
451-
tooltip = '正在执行';
460+
tooltip = tr('ui_ai_chat_tool_status_running');
452461
break;
453462
case ToolCallStatus.succeeded:
454463
icon = Icons.check_circle;
455464
color = Colors.green;
456-
tooltip = '执行成功';
465+
tooltip = tr('ui_ai_chat_tool_status_succeeded');
457466
break;
458467
case ToolCallStatus.failed:
459468
icon = Icons.error;
460469
color = Colors.red;
461-
tooltip = '执行失败: ${info.response}';
470+
tooltip = Strings.format(tr('ui_ai_chat_tool_status_failed'), [info.response]);
462471
break;
463472
}
464473

@@ -488,11 +497,11 @@ class WoxAIChatView extends GetView<WoxAIChatController> {
488497
child: Column(
489498
crossAxisAlignment: CrossAxisAlignment.start,
490499
children: [
491-
_buildDetailItem('Id', info.id),
492-
_buildDetailItem('名称', info.name),
493-
_buildDetailItem('参数', info.status == ToolCallStatus.streaming ? info.delta : info.arguments.toString()),
494-
_buildDetailItem('耗时', '${info.duration}ms'),
495-
if (info.response.isNotEmpty) _buildDetailItem('响应', info.response),
500+
_buildDetailItem(tr('ui_ai_chat_tool_detail_id'), info.id),
501+
_buildDetailItem(tr('ui_ai_chat_tool_detail_name'), info.name),
502+
_buildDetailItem(tr('ui_ai_chat_tool_detail_params'), info.status == ToolCallStatus.streaming ? info.delta : info.arguments.toString()),
503+
_buildDetailItem(tr('ui_ai_chat_tool_detail_duration'), '${info.duration}ms'),
504+
if (info.response.isNotEmpty) _buildDetailItem(tr('ui_ai_chat_tool_detail_response'), info.response),
496505
],
497506
),
498507
);

0 commit comments

Comments
 (0)