1
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
## 1.0.0(2024-12-18)
|
||||
* 翻译,翻译前需要主动下载模型到本地(目前不支持离线模型或者说自己部署服务器模型,我还未破解出来),目前仅在有网的时候自行下载模型
|
||||
,下载后,断网可以离线使用,前提是要先下载模型.
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"id": "x-translate-s",
|
||||
"displayName": "翻译插件各国语言翻译",
|
||||
"version": "1.0.0",
|
||||
"description": "通过谷歌大模型翻译,可以翻译多达56种语言文件",
|
||||
"keywords": [
|
||||
"翻译,uts,tmui,插件"
|
||||
],
|
||||
"repository": "",
|
||||
"engines": {
|
||||
"HBuilderX": "^3.6.8"
|
||||
},
|
||||
"dcloudext": {
|
||||
"type": "uts",
|
||||
"sale": {
|
||||
"regular": {
|
||||
"price": "50.00"
|
||||
},
|
||||
"sourcecode": {
|
||||
"price": "0.00"
|
||||
}
|
||||
},
|
||||
"contact": {
|
||||
"qq": ""
|
||||
},
|
||||
"declaration": {
|
||||
"ads": "无",
|
||||
"data": "无",
|
||||
"permissions": "无"
|
||||
},
|
||||
"npmurl": ""
|
||||
},
|
||||
"uni_modules": {
|
||||
"dependencies": [],
|
||||
"encrypt": [],
|
||||
"platforms": {
|
||||
"cloud": {
|
||||
"tcb": "y",
|
||||
"aliyun": "y",
|
||||
"alipay": "y"
|
||||
},
|
||||
"client": {
|
||||
"Vue": {
|
||||
"vue2": "n",
|
||||
"vue3": "y"
|
||||
},
|
||||
"App": {
|
||||
"app-android": "y",
|
||||
"app-ios": "y",
|
||||
"app-harmony": "n"
|
||||
},
|
||||
"H5-mobile": {
|
||||
"Safari": "n",
|
||||
"Android Browser": "n",
|
||||
"微信浏览器(Android)": "n",
|
||||
"QQ浏览器(Android)": "n"
|
||||
},
|
||||
"H5-pc": {
|
||||
"Chrome": "n",
|
||||
"IE": "n",
|
||||
"Edge": "n",
|
||||
"Firefox": "n",
|
||||
"Safari": "n"
|
||||
},
|
||||
"小程序": {
|
||||
"微信": "n",
|
||||
"阿里": "n",
|
||||
"百度": "n",
|
||||
"字节跳动": "n",
|
||||
"QQ": "n",
|
||||
"钉钉": "n",
|
||||
"快手": "n",
|
||||
"飞书": "n",
|
||||
"京东": "n"
|
||||
},
|
||||
"快应用": {
|
||||
"华为": "n",
|
||||
"联盟": "n"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
# x-translate-s
|
||||
### 开发文档
|
||||
|
||||
1. 目前使用前需要预下载离线模型文件才可以翻译
|
||||
2. 下载好后,断网也能离线翻译
|
||||
3. 如果想直接预置模型或者把模型文件部署到自己服务器上,我目前仅突破了ios端,安卓端目前我还没突破限制需要在线下载好才能离线翻译
|
||||
4. 翻译仅可轻量使用,不要用专业场景,因为翻译模型是把英文作为中介,再翻译到其它语种,这给翻译带来了不确定性和精确性,仅作为参考翻译使用.
|
||||
|
||||
### 兼容性
|
||||
|
||||
| Harmony | IOS | Android | WEB | 小程序 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| x | 支持 | 支持 | x | x |
|
||||
|
||||
### 使用
|
||||
|
||||
如果是安卓请务必打自定义基座,如果ios:你在mac环境下配置好了环境无需打包本地编译,如果win开发ios需要打包基座。
|
||||
|
||||
|
||||
```ts
|
||||
|
||||
<button @click="donloadGoogleMode">谷歌服务器下载模型</button>
|
||||
<button @click="checkmode">检查模型是否存在</button>
|
||||
<button @click="fanyi">翻译</button>
|
||||
|
||||
import { translate,checkTranslateModeDonload,downloadTranslateMode } from "@/uni_modules/x-translate-s"
|
||||
|
||||
// 翻译
|
||||
const fanyi = () => {
|
||||
translate(fanyitext.value,'zh','ja',(str:string)=>{
|
||||
console.log('success:',str)
|
||||
})
|
||||
}
|
||||
//检查模型下载情况
|
||||
const checkmode = ()=>{
|
||||
// let rootdir = uni.env.SANDBOX_PATH + 'Library/Application Support/com.google.mlkit.nl.translate'
|
||||
checkTranslateModeDonload(['ja'] as string[],(result:boolean)=>{
|
||||
uni.showToast({
|
||||
title:result?"已经下载了模型":'没有下载'
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// 下载语言
|
||||
const donloadGoogleMode = ()=>{
|
||||
downloadTranslateMode('zh','ja',(ok:boolean)=>{
|
||||
console.log('downloadn:',ok?'Ok':'Fail')
|
||||
})
|
||||
}
|
||||
|
||||
```
|
||||
@@ -0,0 +1,25 @@
|
||||
package uts.sdk.modules.utsXTranslateUtil
|
||||
import io.dcloud.uts.console
|
||||
|
||||
import com.google.mlkit.common.model.RemoteModelManager
|
||||
import com.google.mlkit.nl.translate.TranslateRemoteModel
|
||||
import com.google.mlkit.nl.translate.TranslateLanguage
|
||||
|
||||
|
||||
object NativeCode {
|
||||
fun getDownloadedModels(callback:(ArrayList<String>)->Unit){
|
||||
val modelManager = RemoteModelManager.getInstance()
|
||||
modelManager.getDownloadedModels(TranslateRemoteModel::class.java)
|
||||
.addOnSuccessListener { models ->
|
||||
val stringList = ArrayList<String>()
|
||||
for (item in models) {
|
||||
stringList.add(item.getLanguage())
|
||||
}
|
||||
callback(stringList)
|
||||
}
|
||||
.addOnFailureListener {
|
||||
val stringList = ArrayList<String>()
|
||||
callback(stringList)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"minSdkVersion": "21",
|
||||
"dependencies":[
|
||||
"com.google.mlkit:translate:17.0.3"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
import RemoteModelManager from "com.google.mlkit.common.model.RemoteModelManager"
|
||||
import DownloadConditions from "com.google.mlkit.common.model.DownloadConditions"
|
||||
import LocalModel from "com.google.mlkit.common.model.LocalModel"
|
||||
import TranslateRemoteModel from "com.google.mlkit.nl.translate.TranslateRemoteModel"
|
||||
import TranslateLanguage from "com.google.mlkit.nl.translate.TranslateLanguage"
|
||||
import TranslatorOptions from "com.google.mlkit.nl.translate.TranslatorOptions"
|
||||
import Translation from "com.google.mlkit.nl.translate.Translation"
|
||||
import NativeCode from "uts.sdk.modules.utsXTranslateUtil.NativeCode"
|
||||
import Kotlin from 'kotlin.jvm.internal.Intrinsics.Kotlin';
|
||||
import Context from 'android.content.Context';
|
||||
function getTranslatorOpts(lang : string, target : string) : TranslatorOptions {
|
||||
let langopts = new Map<string, string>([
|
||||
['zh', TranslateLanguage.CHINESE],//中文
|
||||
['en', TranslateLanguage.ENGLISH],//英语
|
||||
['ja', TranslateLanguage.JAPANESE],//日本
|
||||
['de', TranslateLanguage.GERMAN],//德国
|
||||
['fr', TranslateLanguage.FRENCH],//法国
|
||||
['ko', TranslateLanguage.KOREAN],//韩国
|
||||
['ru', TranslateLanguage.RUSSIAN],//俄罗斯
|
||||
['it', TranslateLanguage.ITALIAN],//意大利
|
||||
['th', TranslateLanguage.THAI],//泰国
|
||||
['vi', TranslateLanguage.VIETNAMESE],//越南语
|
||||
['id', TranslateLanguage.INDONESIAN],//印度尼西亚
|
||||
])
|
||||
let sou = langopts.get(lang)!
|
||||
let targ = langopts.get(target)!
|
||||
let options = TranslatorOptions.Builder()
|
||||
.setSourceLanguage(sou)
|
||||
.setTargetLanguage(targ)
|
||||
.build()
|
||||
|
||||
return options;
|
||||
|
||||
}
|
||||
export function checkTranslateModeDonload(lang : string[], callback : (inlang : boolean) => void) {
|
||||
NativeCode.getDownloadedModels((str : ArrayList<String>) => {
|
||||
console.log(str)
|
||||
let len = str.size
|
||||
if (len == 0) {
|
||||
callback(false)
|
||||
return
|
||||
}
|
||||
let isin = lang.some((el : string) : boolean => str.contains(el));
|
||||
callback(isin)
|
||||
})
|
||||
|
||||
let context = UTSAndroid.getAppContext() as Context;
|
||||
let libdir = context.getCacheDir().getAbsolutePath() + '/no_backup'
|
||||
console.log(libdir)
|
||||
}
|
||||
export function downloadTranslateMode(lang : string, target : string, call : (ok : boolean) => void) {
|
||||
let options = getTranslatorOpts(lang, target)
|
||||
let englishGermanTranslator = Translation.getClient(options)
|
||||
// let modelManager = RemoteModelManager.getInstance()
|
||||
// let germanModel = TranslateRemoteModel.Builder(TranslateLanguage.CHINESE).build()
|
||||
// let conditions = DownloadConditions.Builder()
|
||||
// .requireWifi()
|
||||
// .build()
|
||||
// modelManager.download(germanModel, conditions)
|
||||
// .addOnSuccessListener((error) => {
|
||||
// console.log('true', error)
|
||||
// call(true)
|
||||
// englishGermanTranslator.translate("我是谁")
|
||||
// .addOnSuccessListener(translatedText=>{
|
||||
// console.log(translatedText)
|
||||
// })
|
||||
// .addOnFailureListener(exception=>{
|
||||
|
||||
// })
|
||||
|
||||
// })
|
||||
// .addOnFailureListener((exception) => {
|
||||
// console.log('false')
|
||||
// call(false)
|
||||
// })
|
||||
|
||||
// /data/user/0/uni.UNIA478431/cache
|
||||
var conditions = DownloadConditions.Builder()
|
||||
// .requireWifi()
|
||||
.build()
|
||||
// LocalModel.Builder().setAssetManifestFilePath(UTSAndroid.convert2AbsFullPath(modelpath))
|
||||
englishGermanTranslator.downloadModelIfNeeded(conditions)
|
||||
.addOnSuccessListener((error) => {
|
||||
console.log('true', error)
|
||||
call(true)
|
||||
})
|
||||
.addOnFailureListener((exception) => {
|
||||
console.log('false')
|
||||
call(false)
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
export function translate(text : string, lang : string, target : string, callback : (str : string) => void) {
|
||||
let options = getTranslatorOpts(lang, target)
|
||||
let englishGermanTranslator = Translation.getClient(options)
|
||||
englishGermanTranslator.translate(text)
|
||||
.addOnSuccessListener((translatedText) => {
|
||||
callback(translatedText)
|
||||
})
|
||||
.addOnFailureListener((exception) => {
|
||||
console.log('error', exception)
|
||||
callback('')
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSPrivacyAccessedAPITypes</key>
|
||||
<array/>
|
||||
<key>NSPrivacyCollectedDataTypes</key>
|
||||
<array/>
|
||||
<key>NSPrivacyTracking</key>
|
||||
<false/>
|
||||
<key>NSPrivacyTrackingDomains</key>
|
||||
<array/>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
Binary file not shown.
+350
@@ -0,0 +1,350 @@
|
||||
{
|
||||
"nl_translate_rapid_response_nmt_af_en": "",
|
||||
"nl_translate_rapid_response_pbmt_af_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_af_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_af": "",
|
||||
"nl_translate_rapid_response_pbmt_en_af": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_af": "",
|
||||
"nl_translate_rapid_response_nmt_ar_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ar_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_ar_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ar": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ar": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ar": "",
|
||||
"nl_translate_rapid_response_nmt_be_en": "",
|
||||
"nl_translate_rapid_response_pbmt_be_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_be_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_be": "",
|
||||
"nl_translate_rapid_response_pbmt_en_be": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_be": "",
|
||||
"nl_translate_rapid_response_nmt_bg_en": "",
|
||||
"nl_translate_rapid_response_pbmt_bg_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_bg_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_bg": "",
|
||||
"nl_translate_rapid_response_pbmt_en_bg": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_bg": "",
|
||||
"nl_translate_rapid_response_nmt_bn_en": "",
|
||||
"nl_translate_rapid_response_pbmt_bn_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_bn_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_bn": "",
|
||||
"nl_translate_rapid_response_pbmt_en_bn": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_bn": "",
|
||||
"nl_translate_rapid_response_nmt_ca_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ca_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_ca_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ca": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ca": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ca": "",
|
||||
"nl_translate_rapid_response_nmt_cs_en": "",
|
||||
"nl_translate_rapid_response_pbmt_cs_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_cs_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_cs": "",
|
||||
"nl_translate_rapid_response_pbmt_en_cs": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_cs": "",
|
||||
"nl_translate_rapid_response_nmt_cy_en": "",
|
||||
"nl_translate_rapid_response_pbmt_cy_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_cy_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_cy": "",
|
||||
"nl_translate_rapid_response_pbmt_en_cy": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_cy": "",
|
||||
"nl_translate_rapid_response_nmt_da_en": "",
|
||||
"nl_translate_rapid_response_pbmt_da_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_da_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_da": "",
|
||||
"nl_translate_rapid_response_pbmt_en_da": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_da": "",
|
||||
"nl_translate_rapid_response_nmt_de_en": "",
|
||||
"nl_translate_rapid_response_pbmt_de_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_de_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_de": "",
|
||||
"nl_translate_rapid_response_pbmt_en_de": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_de": "",
|
||||
"nl_translate_rapid_response_nmt_el_en": "",
|
||||
"nl_translate_rapid_response_pbmt_el_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_el_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_el": "",
|
||||
"nl_translate_rapid_response_pbmt_en_el": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_el": "",
|
||||
"nl_translate_rapid_response_nmt_eo_en": "",
|
||||
"nl_translate_rapid_response_pbmt_eo_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_eo_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_eo": "",
|
||||
"nl_translate_rapid_response_pbmt_en_eo": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_eo": "",
|
||||
"nl_translate_rapid_response_nmt_es_en": "",
|
||||
"nl_translate_rapid_response_pbmt_es_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_es_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_es": "",
|
||||
"nl_translate_rapid_response_pbmt_en_es": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_es": "",
|
||||
"nl_translate_rapid_response_nmt_et_en": "",
|
||||
"nl_translate_rapid_response_pbmt_et_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_et_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_et": "",
|
||||
"nl_translate_rapid_response_pbmt_en_et": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_et": "",
|
||||
"nl_translate_rapid_response_nmt_fa_en": "",
|
||||
"nl_translate_rapid_response_pbmt_fa_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_fa_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_fa": "",
|
||||
"nl_translate_rapid_response_pbmt_en_fa": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_fa": "",
|
||||
"nl_translate_rapid_response_nmt_fi_en": "",
|
||||
"nl_translate_rapid_response_pbmt_fi_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_fi_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_fi": "",
|
||||
"nl_translate_rapid_response_pbmt_en_fi": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_fi": "",
|
||||
"nl_translate_rapid_response_nmt_fr_en": "",
|
||||
"nl_translate_rapid_response_pbmt_fr_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_fr_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_fr": "",
|
||||
"nl_translate_rapid_response_pbmt_en_fr": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_fr": "",
|
||||
"nl_translate_rapid_response_nmt_ga_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ga_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_ga_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ga": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ga": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ga": "",
|
||||
"nl_translate_rapid_response_nmt_gl_en": "",
|
||||
"nl_translate_rapid_response_pbmt_gl_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_gl_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_gl": "",
|
||||
"nl_translate_rapid_response_pbmt_en_gl": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_gl": "",
|
||||
"nl_translate_rapid_response_nmt_gu_en": "",
|
||||
"nl_translate_rapid_response_pbmt_gu_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_gu_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_gu": "",
|
||||
"nl_translate_rapid_response_pbmt_en_gu": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_gu": "",
|
||||
"nl_translate_rapid_response_nmt_iw_en": "",
|
||||
"nl_translate_rapid_response_pbmt_iw_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_iw_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_iw": "",
|
||||
"nl_translate_rapid_response_pbmt_en_iw": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_iw": "",
|
||||
"nl_translate_rapid_response_nmt_hi_en": "",
|
||||
"nl_translate_rapid_response_pbmt_hi_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_hi_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_hi": "",
|
||||
"nl_translate_rapid_response_pbmt_en_hi": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_hi": "",
|
||||
"nl_translate_rapid_response_nmt_hr_en": "",
|
||||
"nl_translate_rapid_response_pbmt_hr_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_hr_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_hr": "",
|
||||
"nl_translate_rapid_response_pbmt_en_hr": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_hr": "",
|
||||
"nl_translate_rapid_response_nmt_ht_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ht_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_ht_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ht": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ht": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ht": "",
|
||||
"nl_translate_rapid_response_nmt_hu_en": "",
|
||||
"nl_translate_rapid_response_pbmt_hu_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_hu_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_hu": "",
|
||||
"nl_translate_rapid_response_pbmt_en_hu": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_hu": "",
|
||||
"nl_translate_rapid_response_nmt_id_en": "",
|
||||
"nl_translate_rapid_response_pbmt_id_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_id_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_id": "",
|
||||
"nl_translate_rapid_response_pbmt_en_id": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_id": "",
|
||||
"nl_translate_rapid_response_nmt_is_en": "",
|
||||
"nl_translate_rapid_response_pbmt_is_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_is_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_is": "",
|
||||
"nl_translate_rapid_response_pbmt_en_is": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_is": "",
|
||||
"nl_translate_rapid_response_nmt_it_en": "",
|
||||
"nl_translate_rapid_response_pbmt_it_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_it_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_it": "",
|
||||
"nl_translate_rapid_response_pbmt_en_it": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_it": "",
|
||||
"nl_translate_rapid_response_nmt_ja_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ja_en": "",
|
||||
"nl_translate_rapid_response_stt_ja_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ja": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ja": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ja": "",
|
||||
"nl_translate_rapid_response_nmt_ka_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ka_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_ka_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ka": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ka": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ka": "",
|
||||
"nl_translate_rapid_response_nmt_kn_en": "",
|
||||
"nl_translate_rapid_response_pbmt_kn_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_kn_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_kn": "",
|
||||
"nl_translate_rapid_response_pbmt_en_kn": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_kn": "",
|
||||
"nl_translate_rapid_response_nmt_ko_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ko_en": "",
|
||||
"nl_translate_rapid_response_stt_ko_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ko": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ko": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ko": "",
|
||||
"nl_translate_rapid_response_nmt_lt_en": "",
|
||||
"nl_translate_rapid_response_pbmt_lt_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_lt_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_lt": "",
|
||||
"nl_translate_rapid_response_pbmt_en_lt": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_lt": "",
|
||||
"nl_translate_rapid_response_nmt_lv_en": "",
|
||||
"nl_translate_rapid_response_pbmt_lv_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_lv_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_lv": "",
|
||||
"nl_translate_rapid_response_pbmt_en_lv": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_lv": "",
|
||||
"nl_translate_rapid_response_nmt_mk_en": "",
|
||||
"nl_translate_rapid_response_pbmt_mk_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_mk_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_mk": "",
|
||||
"nl_translate_rapid_response_pbmt_en_mk": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_mk": "",
|
||||
"nl_translate_rapid_response_nmt_mr_en": "",
|
||||
"nl_translate_rapid_response_pbmt_mr_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_mr_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_mr": "",
|
||||
"nl_translate_rapid_response_pbmt_en_mr": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_mr": "",
|
||||
"nl_translate_rapid_response_nmt_ms_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ms_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_ms_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ms": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ms": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ms": "",
|
||||
"nl_translate_rapid_response_nmt_mt_en": "",
|
||||
"nl_translate_rapid_response_pbmt_mt_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_mt_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_mt": "",
|
||||
"nl_translate_rapid_response_pbmt_en_mt": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_mt": "",
|
||||
"nl_translate_rapid_response_nmt_nl_en": "",
|
||||
"nl_translate_rapid_response_pbmt_nl_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_nl_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_nl": "",
|
||||
"nl_translate_rapid_response_pbmt_en_nl": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_nl": "",
|
||||
"nl_translate_rapid_response_nmt_no_en": "",
|
||||
"nl_translate_rapid_response_pbmt_no_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_no_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_no": "",
|
||||
"nl_translate_rapid_response_pbmt_en_no": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_no": "",
|
||||
"nl_translate_rapid_response_nmt_pl_en": "",
|
||||
"nl_translate_rapid_response_pbmt_pl_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_pl_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_pl": "",
|
||||
"nl_translate_rapid_response_pbmt_en_pl": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_pl": "",
|
||||
"nl_translate_rapid_response_nmt_pt_en": "",
|
||||
"nl_translate_rapid_response_pbmt_pt_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_pt_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_pt": "",
|
||||
"nl_translate_rapid_response_pbmt_en_pt": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_pt": "",
|
||||
"nl_translate_rapid_response_nmt_ro_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ro_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_ro_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ro": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ro": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ro": "",
|
||||
"nl_translate_rapid_response_nmt_ru_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ru_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_ru_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ru": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ru": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ru": "",
|
||||
"nl_translate_rapid_response_nmt_sk_en": "",
|
||||
"nl_translate_rapid_response_pbmt_sk_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_sk_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_sk": "",
|
||||
"nl_translate_rapid_response_pbmt_en_sk": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_sk": "",
|
||||
"nl_translate_rapid_response_nmt_sl_en": "",
|
||||
"nl_translate_rapid_response_pbmt_sl_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_sl_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_sl": "",
|
||||
"nl_translate_rapid_response_pbmt_en_sl": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_sl": "",
|
||||
"nl_translate_rapid_response_nmt_sq_en": "",
|
||||
"nl_translate_rapid_response_pbmt_sq_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_sq_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_sq": "",
|
||||
"nl_translate_rapid_response_pbmt_en_sq": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_sq": "",
|
||||
"nl_translate_rapid_response_nmt_sv_en": "",
|
||||
"nl_translate_rapid_response_pbmt_sv_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_sv_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_sv": "",
|
||||
"nl_translate_rapid_response_pbmt_en_sv": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_sv": "",
|
||||
"nl_translate_rapid_response_nmt_sw_en": "",
|
||||
"nl_translate_rapid_response_pbmt_sw_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_sw_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_sw": "",
|
||||
"nl_translate_rapid_response_pbmt_en_sw": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_sw": "",
|
||||
"nl_translate_rapid_response_nmt_ta_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ta_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_ta_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ta": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ta": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ta": "",
|
||||
"nl_translate_rapid_response_nmt_te_en": "",
|
||||
"nl_translate_rapid_response_pbmt_te_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_te_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_te": "",
|
||||
"nl_translate_rapid_response_pbmt_en_te": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_te": "",
|
||||
"nl_translate_rapid_response_nmt_th_en": "",
|
||||
"nl_translate_rapid_response_pbmt_th_en": "",
|
||||
"nl_translate_rapid_response_stt_th_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_th": "",
|
||||
"nl_translate_rapid_response_pbmt_en_th": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_th": "",
|
||||
"nl_translate_rapid_response_nmt_tl_en": "",
|
||||
"nl_translate_rapid_response_pbmt_tl_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_tl_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_tl": "",
|
||||
"nl_translate_rapid_response_pbmt_en_tl": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_tl": "",
|
||||
"nl_translate_rapid_response_nmt_tr_en": "Ch0KBXNpa21hEgRmdWNrGglzcXVlZXppbmclzczMPQogCgVzaWttYRIHZnVja2luZxoJc3F1ZWV6aW5nJc3MzD0\u003d",
|
||||
"nl_translate_rapid_response_pbmt_tr_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_tr_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_tr": "",
|
||||
"nl_translate_rapid_response_pbmt_en_tr": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_tr": "",
|
||||
"nl_translate_rapid_response_nmt_uk_en": "",
|
||||
"nl_translate_rapid_response_pbmt_uk_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_uk_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_uk": "",
|
||||
"nl_translate_rapid_response_pbmt_en_uk": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_uk": "",
|
||||
"nl_translate_rapid_response_nmt_ur_en": "",
|
||||
"nl_translate_rapid_response_pbmt_ur_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_ur_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_ur": "",
|
||||
"nl_translate_rapid_response_pbmt_en_ur": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_ur": "",
|
||||
"nl_translate_rapid_response_nmt_vi_en": "",
|
||||
"nl_translate_rapid_response_pbmt_vi_en": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_vi_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_vi": "",
|
||||
"nl_translate_rapid_response_pbmt_en_vi": "CgIQAQ\u003d\u003d",
|
||||
"nl_translate_rapid_response_stt_en_vi": "",
|
||||
"nl_translate_rapid_response_nmt_zh_en": "",
|
||||
"nl_translate_rapid_response_pbmt_zh_en": "",
|
||||
"nl_translate_rapid_response_stt_zh_en": "",
|
||||
"nl_translate_rapid_response_nmt_en_zh": "",
|
||||
"nl_translate_rapid_response_pbmt_en_zh": "CgIQAQoICgYKBHBhcms\u003d",
|
||||
"nl_translate_rapid_response_stt_en_zh": ""
|
||||
}
|
||||
+1
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"deploymentTarget": "12",
|
||||
"dependencies-pods": [
|
||||
{
|
||||
"name": "GoogleMLKit/Translate",
|
||||
"version": "3.2.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
import { TranslateLanguage, TranslatorOptions, Translator,ModelManager,ModelDownloadConditions} from "MLKitTranslate"
|
||||
function getTranslatorOpts(lang : string, target : string):TranslatorOptions{
|
||||
let langopts = new Map<string,TranslateLanguage>([
|
||||
['zh',TranslateLanguage.chinese],//中文
|
||||
['en',TranslateLanguage.english],//英语
|
||||
['ja',TranslateLanguage.japanese],//日本
|
||||
['de',TranslateLanguage.german],//德国
|
||||
['fr',TranslateLanguage.french],//法国
|
||||
['ko',TranslateLanguage.korean],//韩国
|
||||
['ru',TranslateLanguage.russian],//俄罗斯
|
||||
['it',TranslateLanguage.italian],//意大利
|
||||
['th',TranslateLanguage.thai],//泰国
|
||||
['vi',TranslateLanguage.vietnamese],//越南语
|
||||
['id',TranslateLanguage.indonesian],//印度尼西亚
|
||||
])
|
||||
let sou = langopts.get(lang)! as TranslateLanguage
|
||||
let targ = langopts.get(target)! as TranslateLanguage
|
||||
let options = TranslatorOptions(sourceLanguage = sou, targetLanguage = targ)
|
||||
|
||||
return options;
|
||||
}
|
||||
export function checkTranslateModeDonload(lang:string[],callback:(inlang:boolean)=>void){
|
||||
let localModels = ModelManager.modelManager().downloadedTranslateModels
|
||||
let langlist = [] as string[]
|
||||
for(item in localModels){
|
||||
let str = item.debugDescription.split(":") as string[];
|
||||
let lg = str[str.length-1].trim()
|
||||
langlist.push(lg)
|
||||
}
|
||||
if(langlist.length==0){
|
||||
console.log('langauge:',langlist)
|
||||
callback(false)
|
||||
}
|
||||
let isin = lang.some((el:string):boolean=>langlist.includes(el));
|
||||
|
||||
callback(isin)
|
||||
}
|
||||
export function downloadTranslateMode(lang : string, target : string ,call:(ok:boolean)=>void) {
|
||||
let options = getTranslatorOpts(lang,target)
|
||||
let modoptions = ModelDownloadConditions(
|
||||
allowsCellularAccess = false,
|
||||
allowsBackgroundDownloading = true
|
||||
)
|
||||
let trator = Translator.translator(options= options)
|
||||
trator.downloadModelIfNeeded(with= modoptions,completion=(error)=>{
|
||||
console.log("tips:",error)
|
||||
if(error!=null){
|
||||
console.log("error:",error)
|
||||
call(false)
|
||||
return;
|
||||
}
|
||||
call(true)
|
||||
})
|
||||
ModelManager.modelManager().downloadedTranslateModels
|
||||
call(true)
|
||||
}
|
||||
export function translate(text : string, lang : string, target : string,callback:(str:string)=>void) {
|
||||
let options = getTranslatorOpts(lang,target)
|
||||
let zhtoen = Translator.translator(options = options)
|
||||
zhtoen.translate(text, completion = (translatedText, error) => {
|
||||
if (error != null) {
|
||||
console.log("error:", error)
|
||||
callback("")
|
||||
return;
|
||||
}
|
||||
callback(translatedText!)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user