feat: use Opus-MT-StarCitizen-zh-en model

This commit is contained in:
xkeyC 2025-11-16 15:09:56 +08:00
parent af15d106f0
commit 77c1b4f51a
5 changed files with 126 additions and 124 deletions

View File

@ -1,7 +1,7 @@
class ConstConf { class ConstConf {
static const String appVersion = "2.15.1 Beta"; static const String appVersion = "2.15.1 Beta2";
static const int appVersionCode = 71; static const int appVersionCode = 71;
static const String appVersionDate = "2025-11-15"; static const String appVersionDate = "2025-11-16";
static const _gameChannels = [ static const _gameChannels = [
"LIVE", "LIVE",
"4.0_PREVIEW", "4.0_PREVIEW",

View File

@ -77,7 +77,7 @@ class MultiWindowManager {
), ),
); );
await Future.delayed(Duration(milliseconds: 500)).then((_) async { await Future.delayed(Duration(milliseconds: 500)).then((_) async {
await controller.setFrame(const Rect.fromLTWH(0, 0, 800, 1200)); await controller.setFrame(const Rect.fromLTWH(0, 0, 720, 800));
await controller.setTitle(title); await controller.setTitle(title);
await controller.center(); await controller.center();
await controller.show(); await controller.show();

View File

@ -29,7 +29,10 @@ class InputMethodDialogUI extends HookConsumerWidget {
}, const []); }, const []);
return ContentDialog( return ContentDialog(
constraints: BoxConstraints(maxWidth: MediaQuery.of(context).size.width * .8), constraints: BoxConstraints(maxWidth: MediaQuery
.of(context)
.size
.width * .8),
title: makeTitle(context, state, model, destTextCtrl), title: makeTitle(context, state, model, destTextCtrl),
content: state.keyMaps == null content: state.keyMaps == null
? makeLoading(context) ? makeLoading(context)
@ -62,7 +65,8 @@ class InputMethodDialogUI extends HookConsumerWidget {
SizedBox(height: 12), SizedBox(height: 12),
TextFormBox( TextFormBox(
placeholder: state.isEnableAutoTranslate placeholder: state.isEnableAutoTranslate
? "${S.current.input_method_input_placeholder}\n\n本地翻译模型对中英混合处理能力较差,如有需要,建议分开发送。" ? "${S.current
.input_method_input_placeholder}\n\n本地翻译模型对中英混合处理能力较差"
: S.current.input_method_input_placeholder, : S.current.input_method_input_placeholder,
controller: srcTextCtrl, controller: srcTextCtrl,
maxLines: 5, maxLines: 5,
@ -150,12 +154,10 @@ class InputMethodDialogUI extends HookConsumerWidget {
); );
} }
Widget makeTitle( Widget makeTitle(BuildContext context,
BuildContext context,
InputMethodDialogUIState state, InputMethodDialogUIState state,
InputMethodDialogUIModel model, InputMethodDialogUIModel model,
TextEditingController destTextCtrl, TextEditingController destTextCtrl,) {
) {
return Row( return Row(
children: [ children: [
IconButton( IconButton(
@ -224,7 +226,7 @@ class InputMethodDialogUI extends HookConsumerWidget {
Text( Text(
"大约需要 200MB 的本地空间。" "大约需要 200MB 的本地空间。"
"\n\n我们使用本地模型进行翻译,您的翻译数据不会发送给任何第三方。" "\n\n我们使用本地模型进行翻译,您的翻译数据不会发送给任何第三方。"
"\n\n模型未对游戏术语优化,请自行判断使用", "\n\nOpus-MT-StarCitizen-zh-en 是汉化盒子团队基于 Opus-MT 模型微调得到的模型,对游戏术语进行了优化",
), ),
); );
if (userOK) { if (userOK) {

View File

@ -195,7 +195,7 @@ class InputMethodDialogUIModel extends _$InputMethodDialogUIModel {
} }
} }
String get _localTranslateModelName => "opus-mt-zh-en_onnx"; String get _localTranslateModelName => "Opus-MT-StarCitizen-zh-en";
String get _localTranslateModelDir => "${appGlobalState.applicationSupportDir}/onnx_models"; String get _localTranslateModelDir => "${appGlobalState.applicationSupportDir}/onnx_models";

View File

@ -393,11 +393,11 @@ mod tests {
#[test] #[test]
fn test_translation() { fn test_translation() {
let model = OpusMtModel::new( let model = OpusMtModel::new(
"C:\\Users\\xkeyc\\Downloads\\onnx_models\\opus-mt-zh-en", "E:\\Project\\StarCtizen\\Opus-MT-StarCitizen\\results\\final_model",
"_q4f16", "_q4f16",
) )
.unwrap(); .unwrap();
let result = model.translate("你好世界").unwrap(); let result = model.translate("北极星要炸了,快撤!").unwrap();
println!("Translation: {}", result); println!("Translation: {}", result);
} }
} }