simplify logic of message translation
This commit is contained in:
parent
1163c1d5cd
commit
4d34b390d5
1 changed files with 9 additions and 21 deletions
|
|
@ -29,41 +29,26 @@ class MessageTranslationCardState extends State<MessageTranslationCard> {
|
|||
PangeaRepresentation? repEvent;
|
||||
String? selectionTranslation;
|
||||
String? oldSelectedText;
|
||||
String? l1Code;
|
||||
String? l2Code;
|
||||
bool _fetchingRepresentation = false;
|
||||
|
||||
String? translationLangCode() {
|
||||
if (widget.immersionMode) return l1Code;
|
||||
final String? originalSentCode =
|
||||
widget.messageEvent.originalSent?.content.langCode;
|
||||
return (l1Code == originalSentCode || originalSentCode == null)
|
||||
? l2Code
|
||||
: l1Code;
|
||||
}
|
||||
|
||||
Future<void> fetchRepresentation(BuildContext context) async {
|
||||
final String? langCode = translationLangCode();
|
||||
if (langCode == null) return;
|
||||
if (l1Code == null) return;
|
||||
|
||||
repEvent = widget.messageEvent
|
||||
.representationByLanguage(
|
||||
langCode,
|
||||
l1Code!,
|
||||
)
|
||||
?.content;
|
||||
|
||||
if (repEvent == null && mounted) {
|
||||
repEvent = await widget.messageEvent.representationByLanguageGlobal(
|
||||
langCode: langCode,
|
||||
langCode: l1Code!,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> translateSelection() async {
|
||||
final String? targetLang = translationLangCode();
|
||||
|
||||
if (widget.selection.selectedText == null ||
|
||||
targetLang == null ||
|
||||
l1Code == null ||
|
||||
l2Code == null) {
|
||||
selectionTranslation = null;
|
||||
|
|
@ -78,7 +63,7 @@ class MessageTranslationCardState extends State<MessageTranslationCard> {
|
|||
accessToken: accessToken,
|
||||
request: FullTextTranslationRequestModel(
|
||||
text: widget.selection.messageText,
|
||||
tgtLang: translationLangCode()!,
|
||||
tgtLang: l1Code!,
|
||||
userL1: l1Code!,
|
||||
userL2: l2Code!,
|
||||
srcLang: widget.messageEvent.messageDisplayLangCode,
|
||||
|
|
@ -106,11 +91,14 @@ class MessageTranslationCardState extends State<MessageTranslationCard> {
|
|||
}
|
||||
}
|
||||
|
||||
String? get l1Code =>
|
||||
MatrixState.pangeaController.languageController.activeL1Code();
|
||||
String? get l2Code =>
|
||||
MatrixState.pangeaController.languageController.activeL2Code();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
l1Code = MatrixState.pangeaController.languageController.activeL1Code();
|
||||
l2Code = MatrixState.pangeaController.languageController.activeL2Code();
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue