Translate-Flutter/lib/page/translator_result/translator_result_logic.dart
fengshengxiong c39a412706 init connmit
2024-07-01 14:18:42 +08:00

66 lines
2.3 KiB
Dart
Executable File

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:translator/translator.dart';
import 'package:translator_lux/dataBase/table/translator_history_table.dart';
import 'package:translator_lux/entity/translator_history_entity.dart';
import 'package:translator_lux/global/global_state.dart';
import 'package:uuid/uuid.dart';
import 'translator_result_state.dart';
/// @description:
/// @author
/// @date: 2024-06-27 16:53:29
class TranslatorResultPageLogic extends GetxController {
final state = TranslatorResultPageState();
@override
void onInit() {
super.onInit();
translation();
}
translation() async {
if (state.sourceText.value == "" && state.targetText.value == "") {
var arguments = Get.arguments;
var translator = GoogleTranslator();
debugPrint(
"arguments[\"translateString\"]参数有${arguments["translateString"]}");
debugPrint(
"GlobalState.fromLanguageCode.value参数有${GlobalState.fromLanguageCode.value}");
debugPrint(
"GlobalState.toLanguageCode.value参数有${GlobalState.toLanguageCode.value}");
Translation translate = await translator.translate(
arguments["translateString"],
from: GlobalState.fromLanguageCode.value,
to: GlobalState.toLanguageCode.value,
);
state.sourceText.value = translate.source;
state.targetText.value = translate.text;
debugPrint(translate.toString());
addHistory(
sourceText: translate.source,
targetText: translate.text,
);
update();
}
}
addHistory({required String sourceText, required String targetText}) {
var historyEntity = TranslatorHistoryEntity().copyWith(
tid: const Uuid().v1(),
sourceText: sourceText,
sourcecountryCode: GlobalState.fromCountryCode.value,
sourcelanguageName: GlobalState.fromCountryName.value,
sourcelanguageCode: GlobalState.fromLanguageCode.value,
targetText: targetText,
targetcountryCode: GlobalState.toCountryCode.value,
targetlanguageName: GlobalState.toCountryName.value,
targetlanguageCode: GlobalState.toLanguageCode.value,
translatorTime: DateTime.now().toString(),
isShow: "true",
);
TranslatorHistoryTable.insertData(historyEntity);
}
}