From 05e15998f51ab9b242f71278a6c6bbd293dd90af Mon Sep 17 00:00:00 2001 From: Timi Date: Thu, 6 Nov 2025 14:52:13 +0800 Subject: [PATCH] update timi-lang --- pom.xml | 82 ++++++++++++++++++- .../task/MultilingualTranslateTask.java | 16 ++-- .../api/util/GsonSerializerAdapter.java | 3 +- .../com/imyeyu/api/util/InitApplication.java | 12 +-- .../com/imyeyu/api/util/RedisLanguage.java | 34 +------- 5 files changed, 97 insertions(+), 50 deletions(-) diff --git a/pom.xml b/pom.xml index 52e6222..1f7118d 100644 --- a/pom.xml +++ b/pom.xml @@ -30,6 +30,57 @@ + + + dev-windows + + true + + + windows-x86_64 + + + + prod-linux + + + org.bytedeco + ffmpeg + 7.1.1-1.5.12 + linux-x86_64 + + + org.bytedeco + opencv + 4.11.0-1.5.12 + linux-x86_64 + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.bytedeco + ffmpeg + windows-x86_64 + + + org.bytedeco + opencv + windows-x86_64 + + + + + + + + + compile @@ -57,17 +108,17 @@ com.imyeyu.spring timi-spring - 0.0.1 + 0.0.2 com.imyeyu.network timi-network - 0.0.1 + 0.0.2 com.imyeyu.lang timi-lang - 0.0.1 + 0.0.2 org.springframework.boot @@ -167,6 +218,25 @@ jcodec-javase 0.2.5 + + org.bytedeco + javacv + 1.5.12 + + + org.bytedeco + ffmpeg + 7.1.1-1.5.12 + provided + windows-x86_64 + + + org.bytedeco + opencv + 4.11.0-1.5.12 + provided + windows-x86_64 + org.jsoup jsoup @@ -177,5 +247,11 @@ commons-codec 1.17.0 + + com.jayway.jsonpath + json-path + 2.9.0 + test + diff --git a/src/main/java/com/imyeyu/api/modules/common/task/MultilingualTranslateTask.java b/src/main/java/com/imyeyu/api/modules/common/task/MultilingualTranslateTask.java index e574ca2..44cd84d 100644 --- a/src/main/java/com/imyeyu/api/modules/common/task/MultilingualTranslateTask.java +++ b/src/main/java/com/imyeyu/api/modules/common/task/MultilingualTranslateTask.java @@ -3,17 +3,17 @@ package com.imyeyu.api.modules.common.task; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; -import com.imyeyu.java.TimiJava; -import com.imyeyu.java.bean.Language; -import com.imyeyu.java.bean.timi.TimiCode; -import com.imyeyu.java.bean.timi.TimiException; -import com.imyeyu.java.ref.Ref; -import com.imyeyu.network.FormMap; import com.imyeyu.api.config.dbsource.TimiServerDBConfig; import com.imyeyu.api.modules.common.bean.SettingKey; import com.imyeyu.api.modules.common.entity.Multilingual; import com.imyeyu.api.modules.common.service.MultilingualService; import com.imyeyu.api.modules.common.service.SettingService; +import com.imyeyu.java.TimiJava; +import com.imyeyu.java.bean.Language; +import com.imyeyu.java.bean.timi.TimiCode; +import com.imyeyu.java.bean.timi.TimiException; +import com.imyeyu.java.ref.Ref; +import com.imyeyu.network.ArgMap; import com.imyeyu.utils.Digest; import com.imyeyu.utils.Time; import lombok.AllArgsConstructor; @@ -134,7 +134,7 @@ public class MultilingualTranslateTask { String appId = settingService.getAsString(SettingKey.MULTILINGUAL_TRANSLATE_APP_ID); String key = settingService.getAsString(SettingKey.MULTILINGUAL_TRANSLATE_KEY); - FormMap args = new FormMap<>(); + ArgMap args = new ArgMap<>(); args.put("q", text); args.put("from", BaiduLanguage.ZH.toString().toLowerCase()); args.put("to", to.toString().toLowerCase()); @@ -143,7 +143,7 @@ public class MultilingualTranslateTask { args.put("sign", Digest.md5(appId + text + random + key)); String response = Request.post(settingService.getAsString(SettingKey.MULTILINGUAL_TRANSLATE_API)) - .bodyForm(args.build()) + .bodyForm(args.toNameValuePair()) .execute() .returnContent() .asString(); diff --git a/src/main/java/com/imyeyu/api/util/GsonSerializerAdapter.java b/src/main/java/com/imyeyu/api/util/GsonSerializerAdapter.java index 6a78b3a..9a0a071 100644 --- a/src/main/java/com/imyeyu/api/util/GsonSerializerAdapter.java +++ b/src/main/java/com/imyeyu/api/util/GsonSerializerAdapter.java @@ -47,7 +47,8 @@ public class GsonSerializerAdapter implements JsonSerializer { if (TimiJava.isNotEmpty(multiLangId)) { Long langId = Long.parseLong(multiLangId); if (redisMultilingual.map(TimiServerAPI.getUserLanguage()) instanceof RedisLanguage rl) { - Ref.setFieldValue(value, field, rl.textArgs(langId, (Object) multiField.args())); + // TODO 支持插值参数 + Ref.setFieldValue(value, field, rl.text(langId)); } } } diff --git a/src/main/java/com/imyeyu/api/util/InitApplication.java b/src/main/java/com/imyeyu/api/util/InitApplication.java index a3e6f66..9af6687 100644 --- a/src/main/java/com/imyeyu/api/util/InitApplication.java +++ b/src/main/java/com/imyeyu/api/util/InitApplication.java @@ -3,18 +3,18 @@ package com.imyeyu.api.util; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import com.imyeyu.java.ref.Ref; -import com.imyeyu.lang.mapper.AbstractLanguageMapper; import com.imyeyu.api.TimiServerAPI; import com.imyeyu.api.modules.common.bean.SettingKey; import com.imyeyu.api.modules.common.entity.Multilingual; import com.imyeyu.api.modules.common.entity.Setting; import com.imyeyu.api.modules.common.service.SettingService; import com.imyeyu.api.modules.system.bean.ServerFile; +import com.imyeyu.java.ref.Ref; +import com.imyeyu.lang.mapper.AbstractLanguageMapper; import com.imyeyu.spring.util.GlobalReturnHandler; import com.imyeyu.spring.util.Redis; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.eclipse.jgit.api.ArchiveCommand; import org.eclipse.jgit.archive.TarFormat; import org.springframework.beans.factory.annotation.Value; @@ -81,9 +81,9 @@ public class InitApplication implements ApplicationRunner { private void initMultilingual() { // redisLanguage.flushAll(); - globalReturnHandler.setMultilingualHeader(key -> { + globalReturnHandler.setMultilingualHeader(mapping -> { AbstractLanguageMapper map = redisMultilingual.map(TimiServerAPI.getUserLanguage()); - return map.text(key); + return map.textArgs(mapping.getMsgKey(), mapping.getMsgArgs()); }); } diff --git a/src/main/java/com/imyeyu/api/util/RedisLanguage.java b/src/main/java/com/imyeyu/api/util/RedisLanguage.java index 11976f4..7cc7b75 100644 --- a/src/main/java/com/imyeyu/api/util/RedisLanguage.java +++ b/src/main/java/com/imyeyu/api/util/RedisLanguage.java @@ -1,14 +1,10 @@ package com.imyeyu.api.util; -import com.imyeyu.java.TimiJava; -import com.imyeyu.java.bean.Language; -import com.imyeyu.lang.mapper.AbstractLanguageMapper; import com.imyeyu.api.TimiServerAPI; import com.imyeyu.api.modules.common.service.MultilingualService; +import com.imyeyu.java.bean.Language; +import com.imyeyu.lang.mapper.AbstractLanguageMapper; import org.jcodec.api.NotSupportedException; -import org.springframework.lang.Nullable; - -import java.util.Arrays; /** * @author 夜雨 @@ -45,33 +41,7 @@ public class RedisLanguage extends AbstractLanguageMapper { } } - @Override - public String text(String key, String def) { - String result = text(key); - return result.equals(key) ? def : result; - } - - @Override - public String textArgs(String key, Object... args) { - String result = text(key); - if (result.equals(key)) { - // 没有映射值 - return result + Arrays.toString(args); - } - FORMAT.applyPattern(result); - return FORMAT.format(args); - } - public String text(Long id) { return TimiServerAPI.applicationContext.getBean(MultilingualService.class).get(language, id); } - - public String textArgs(Long id, @Nullable Object... args) { - String result = text(id); - if (TimiJava.isEmpty(args)) { - return result; - } - FORMAT.applyPattern(result); - return FORMAT.format(args); - } }