打开即用的JSON翻译网页
-
vue项目国际化i18n,需要批量翻译json文件。自己动手写了个demo,这里用的是百度翻译的API,要去百度翻译开放平台 (baidu.com)获取对应的key和appid,点击上传要翻译的json文件点击翻译就可以了
-
复制代码将appid和key换成你获取的appid和key就可以了
-
界面如下图所示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSON Translator</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/blueimp-md5/2.19.0/js/md5.min.js"></script>
<!-- <script src="./md5.js"></script> -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<style>
* {
margin: 0;
padding: 0;
}
html,
body {
width: 100%;
height: 100vh;
}
#app {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
padding: 20px;
box-sizing: border-box;
}
.top {
border-bottom: 1px solid #dcdfe6;
}
.main {
flex: 1;
padding: 10px 0;
overflow: auto;
}
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
::-webkit-scrollbar-track {
background-color: #f5f5f5;
background-color: transparent;
}
::-webkit-scrollbar-thumb {
background-color: #cccccc;
}
</style>
<!-- <link rel="stylesheet" href="./index.css"> -->
<!-- 引入组件库 -->
</head>
<body>
<!-- 百度翻译有字数限制5000字符。如果单次翻译字符数大于5000,可以分成多个json文件依次翻译 -->
<div id="app">
<el-form :inline="true" class="demo-form-inline top">
<el-form-item label="JSON文件">
<el-upload class="upload-demo" action="#" accept="application/json" :on-change="handleFileSelect"
:on-remove="handleFileRemove" :limit="1" :auto-upload="false">
<el-button size="small" type="primary" @click="isUpload">点击上传</el-button>
<div slot=" tip" class="el-upload__tip">只能上传json文件,且不超过5000字符
</div>
</el-upload>
</el-form-item>
<el-form-item label="源语言语种">
<el-input placeholder="请输入" v-model="sourceLang"></el-input>
</el-form-item>
<el-form-item label="输出语言语种">
<el-select placeholder="请选择" v-model="targetLang" filterable>
<el-option v-for="(item,index) in langCodeList" :key="index" :label="item.lang"
:value="item.langCode"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="translate">Translate</el-button>
</el-form-item>
</el-form>
<div class="main" v-loading="isLoding">
<h2>源JSON对象</h2>
<pre>{{ inputJson }}</pre>
<h2>输出的JSON对象 <el-button @click="copy" type="primary">复制</el-button></h2>
<pre ref="content" key="content">{{ res }}</pre>
</div>
<el-backtop target=".main"></el-backtop>
<!-- 这个表格是百度翻译官网的表格主要用来获取数据 -->
<table class="tg" id="myTable" style="position: absolute ;top: -2000%; z-index: -1; visibility: hidden;">
<thead>
<tr>
<th class="tg-8ab4">中文首字母</th>
<th class="tg-8ab4">名称</th>
<th class="tg-8ab4">代码</th>
<th class="tg-8ab4">语种检测</th>
<th class="tg-8ab4">名称</th>
<th class="tg-8ab4">代码</th>
<th class="tg-8ab4">语种检测</th>
<th class="tg-8ab4">名称</th>
<th class="tg-8ab4">代码</th>
<th class="tg-8ab4">语种检测</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tg-ve35" rowspan="6">A</td>
<td class="tg-wo29">阿拉伯语</td>
<td class="tg-ve35">ara</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">爱尔兰语</td>
<td class="tg-ve35">gle</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">奥克语</td>
<td class="tg-ve35">oci</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35">阿尔巴尼亚语</td>
<td class="tg-wo29">alb</td>
<td class="tg-wo29">是</td>
<td class="tg-wo29">阿尔及利亚阿拉伯语</td>
<td class="tg-ve35">arq</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">阿肯语</td>
<td class="tg-ve35">aka</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">阿拉贡语</td>
<td class="tg-ve35">arg</td>
<td class="tg-ve35">否</td>
<td class="tg-ve35">阿姆哈拉语</td>
<td class="tg-ve35">amh</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">阿萨姆语</td>
<td class="tg-ve35">asm</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">艾马拉语</td>
<td class="tg-ve35">aym</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">阿塞拜疆语</td>
<td class="tg-ve35">aze</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">阿斯图里亚斯语</td>
<td class="tg-ve35">ast</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">奥塞梯语</td>
<td class="tg-ve35">oss</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">爱沙尼亚语</td>
<td class="tg-ve35">est</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">奥杰布瓦语</td>
<td class="tg-ve35">oji</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">奥里亚语</td>
<td class="tg-ve35">ori</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">奥罗莫语</td>
<td class="tg-ve35">orm</td>
<td class="tg-wo29">否</td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="7">B</td>
<td class="tg-ve35">波兰语</td>
<td class="tg-ve35">pl</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">波斯语</td>
<td class="tg-ve35">per</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">布列塔尼语</td>
<td class="tg-ve35">bre</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35">巴什基尔语</td>
<td class="tg-ve35">bak</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">巴斯克语</td>
<td class="tg-ve35">baq</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">巴西葡萄牙语</td>
<td class="tg-ve35">pot</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">白俄罗斯语</td>
<td class="tg-ve35">bel</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">柏柏尔语</td>
<td class="tg-ve35">ber</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">邦板牙语</td>
<td class="tg-ve35">pam</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-wo29">保加利亚语</td>
<td class="tg-ve35">bul</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">北方萨米语</td>
<td class="tg-ve35">sme</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">北索托语</td>
<td class="tg-ve35">ped</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">本巴语</td>
<td class="tg-ve35">bem</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">比林语</td>
<td class="tg-ve35">bli</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">比斯拉马语</td>
<td class="tg-ve35">bis</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">俾路支语</td>
<td class="tg-ve35">bal</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">冰岛语</td>
<td class="tg-ve35">ice</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">波斯尼亚语</td>
<td class="tg-ve35">bos</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">博杰普尔语</td>
<td class="tg-ve35">bho</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35"></td>
<td class="tg-ve35"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35">C</td>
<td class="tg-ve35">楚瓦什语</td>
<td class="tg-ve35">chv</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">聪加语</td>
<td class="tg-ve35">tso</td>
<td class="tg-wo29">否</td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="3">D</td>
<td class="tg-ve35">丹麦语</td>
<td class="tg-ve35">dan</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">德语</td>
<td class="tg-ve35">de</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">鞑靼语</td>
<td class="tg-ve35">tat</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">掸语</td>
<td class="tg-ve35">sha</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">德顿语</td>
<td class="tg-ve35">tet</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">迪维希语</td>
<td class="tg-ve35">div</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">低地德语</td>
<td class="tg-ve35">log</td>
<td class="tg-ve35">是</td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35">E</td>
<td class="tg-ve35">俄语</td>
<td class="tg-ve35">ru</td>
<td class="tg-ve35">是</td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="3">F</td>
<td class="tg-ve35">法语</td>
<td class="tg-ve35">fra</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">菲律宾语</td>
<td class="tg-ve35">fil</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">芬兰语</td>
<td class="tg-ve35">fin</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">梵语</td>
<td class="tg-ve35">san</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">弗留利语</td>
<td class="tg-ve35">fri</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">富拉尼语</td>
<td class="tg-ve35">ful</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">法罗语</td>
<td class="tg-ve35">fao</td>
<td class="tg-wo29">否</td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="4">G</td>
<td class="tg-ve35">盖尔语</td>
<td class="tg-ve35">gla</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">刚果语</td>
<td class="tg-ve35">kon</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">高地索布语</td>
<td class="tg-ve35">ups</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">高棉语</td>
<td class="tg-ve35">hkm</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">格陵兰语</td>
<td class="tg-ve35">kal</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">格鲁吉亚语</td>
<td class="tg-ve35">geo</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">古吉拉特语</td>
<td class="tg-ve35">guj</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">古希腊语</td>
<td class="tg-ve35">gra</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">古英语</td>
<td class="tg-ve35">eno</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">瓜拉尼语</td>
<td class="tg-ve35">grn</td>
<td class="tg-wo29">否</td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="3">H</td>
<td class="tg-ve35">韩语</td>
<td class="tg-ve35">kor</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">荷兰语</td>
<td class="tg-ve35">nl</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">胡帕语</td>
<td class="tg-ve35">hup</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">哈卡钦语</td>
<td class="tg-ve35">hak</td>
<td class="tg-wo29">否</td>
<td class="tg-wo29">海地语</td>
<td class="tg-wo29">ht</td>
<td class="tg-wo29">否</td>
<td class="tg-wo29">黑山语</td>
<td class="tg-wo29">mot</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">豪萨语</td>
<td class="tg-ve35">hau</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35"></td>
<td class="tg-ve35"></td>
<td class="tg-wo29"></td>
<td class="tg-ve35"></td>
<td class="tg-ve35"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="2">J</td>
<td class="tg-ve35">吉尔吉斯语</td>
<td class="tg-ve35">kir</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">加利西亚语</td>
<td class="tg-ve35">glg</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">加拿大法语</td>
<td class="tg-ve35">frn</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">加泰罗尼亚语</td>
<td class="tg-ve35">cat</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">捷克语</td>
<td class="tg-ve35">cs</td>
<td class="tg-ve35">是</td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="5">K</td>
<td class="tg-ve35">卡拜尔语</td>
<td class="tg-ve35">kab</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">卡纳达语</td>
<td class="tg-ve35">kan</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">卡努里语</td>
<td class="tg-ve35">kau</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">卡舒比语</td>
<td class="tg-ve35">kah</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">康瓦尔语</td>
<td class="tg-ve35">cor</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">科萨语</td>
<td class="tg-ve35">xho</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">科西嘉语</td>
<td class="tg-ve35">cos</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">克里克语</td>
<td class="tg-ve35">cre</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">克里米亚鞑靼语</td>
<td class="tg-ve35">cri</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">克林贡语</td>
<td class="tg-ve35">kli</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">克罗地亚语</td>
<td class="tg-ve35">hrv</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">克丘亚语</td>
<td class="tg-ve35">que</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">克什米尔语</td>
<td class="tg-ve35">kas</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">孔卡尼语</td>
<td class="tg-ve35">kok</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">库尔德语</td>
<td class="tg-ve35">kur</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35" rowspan="5">L</td>
<td class="tg-ve35">拉丁语</td>
<td class="tg-ve35">lat</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">老挝语</td>
<td class="tg-ve35">lao</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">罗马尼亚语</td>
<td class="tg-ve35">rom</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">拉特加莱语</td>
<td class="tg-ve35">lag</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">拉脱维亚语</td>
<td class="tg-ve35">lav</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">林堡语</td>
<td class="tg-ve35">lim</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">林加拉语</td>
<td class="tg-ve35">lin</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">卢干达语</td>
<td class="tg-ve35">lug</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">卢森堡语</td>
<td class="tg-ve35">ltz</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">卢森尼亚语</td>
<td class="tg-ve35">ruy</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">卢旺达语</td>
<td class="tg-ve35">kin</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">立陶宛语</td>
<td class="tg-ve35">lit</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">罗曼什语</td>
<td class="tg-ve35">roh</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">罗姆语</td>
<td class="tg-ve35">ro</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">逻辑语</td>
<td class="tg-ve35">loj</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35" rowspan="5">M</td>
<td class="tg-ve35">马来语</td>
<td class="tg-ve35">may</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">缅甸语</td>
<td class="tg-ve35">bur</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">马拉地语</td>
<td class="tg-ve35">mar</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">马拉加斯语</td>
<td class="tg-ve35">mg</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">马拉雅拉姆语</td>
<td class="tg-ve35">mal</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">马其顿语</td>
<td class="tg-ve35">mac</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">马绍尔语</td>
<td class="tg-ve35">mah</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">迈蒂利语</td>
<td class="tg-ve35">mai</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">曼克斯语</td>
<td class="tg-ve35">glv</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">毛里求斯克里奥尔语</td>
<td class="tg-ve35">mau</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">毛利语</td>
<td class="tg-ve35">mao</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">孟加拉语</td>
<td class="tg-ve35">ben</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35">马耳他语</td>
<td class="tg-ve35">mlt</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">苗语</td>
<td class="tg-ve35">hmn</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35"></td>
<td class="tg-ve35"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="2">N</td>
<td class="tg-ve35">挪威语</td>
<td class="tg-ve35">nor</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">那不勒斯语</td>
<td class="tg-ve35">nea</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">南恩德贝莱语</td>
<td class="tg-ve35">nbl</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">南非荷兰语</td>
<td class="tg-ve35">afr</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">南索托语</td>
<td class="tg-ve35">sot</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">尼泊尔语</td>
<td class="tg-ve35">nep</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35" rowspan="2">P</td>
<td class="tg-ve35">葡萄牙语</td>
<td class="tg-ve35">pt</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">旁遮普语</td>
<td class="tg-ve35">pan</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">帕皮阿门托语</td>
<td class="tg-ve35">pap</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">普什图语</td>
<td class="tg-ve35">pus</td>
<td class="tg-wo29">否</td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35">Q</td>
<td class="tg-ve35">齐切瓦语</td>
<td class="tg-ve35">nya</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">契维语</td>
<td class="tg-ve35">twi</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">切罗基语</td>
<td class="tg-ve35">chr</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">R</td>
<td class="tg-ve35">日语</td>
<td class="tg-ve35">jp</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">瑞典语</td>
<td class="tg-ve35">swe</td>
<td class="tg-wo29">是</td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="5">S</td>
<td class="tg-ve35">萨丁尼亚语</td>
<td class="tg-ve35">srd</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">萨摩亚语</td>
<td class="tg-ve35">sm</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">塞尔维亚-克罗地亚语</td>
<td class="tg-ve35">sec</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">塞尔维亚语</td>
<td class="tg-ve35">srp</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">桑海语</td>
<td class="tg-ve35">sol</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">僧伽罗语</td>
<td class="tg-ve35">sin</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35">世界语</td>
<td class="tg-ve35">epo</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">书面挪威语</td>
<td class="tg-ve35">nob</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">斯洛伐克语</td>
<td class="tg-ve35">sk</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">斯洛文尼亚语</td>
<td class="tg-ve35">slo</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">斯瓦希里语</td>
<td class="tg-ve35">swa</td>
<td class="tg-wo29">是</td>
<td class="tg-wo29">塞尔维亚语(西里尔)</td>
<td class="tg-wo29">src</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">索马里语</td>
<td class="tg-ve35">som</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35"></td>
<td class="tg-ve35"></td>
<td class="tg-wo29"></td>
<td class="tg-wo29"></td>
<td class="tg-ve35"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="3">T</td>
<td class="tg-ve35">泰语</td>
<td class="tg-ve35">th</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">土耳其语</td>
<td class="tg-ve35">tr</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">塔吉克语</td>
<td class="tg-ve35">tgk</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35">泰米尔语</td>
<td class="tg-ve35">tam</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">他加禄语</td>
<td class="tg-ve35">tgl</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">提格利尼亚语</td>
<td class="tg-ve35">tir</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">泰卢固语</td>
<td class="tg-ve35">tel</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">突尼斯阿拉伯语</td>
<td class="tg-ve35">tua</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">土库曼语</td>
<td class="tg-ve35">tuk</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35" rowspan="2">W</td>
<td class="tg-ve35">乌克兰语</td>
<td class="tg-ve35">ukr</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">瓦隆语</td>
<td class="tg-ve35">wln</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">威尔士语</td>
<td class="tg-ve35">wel</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35">文达语</td>
<td class="tg-ve35">ven</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">沃洛夫语</td>
<td class="tg-ve35">wol</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">乌尔都语</td>
<td class="tg-ve35">urd</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35" rowspan="6">X</td>
<td class="tg-ve35">西班牙语</td>
<td class="tg-ve35">spa</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">希伯来语</td>
<td class="tg-ve35">heb</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">希腊语</td>
<td class="tg-ve35">el</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35">匈牙利语</td>
<td class="tg-ve35">hu</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">西弗里斯语</td>
<td class="tg-ve35">fry</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">西里西亚语</td>
<td class="tg-ve35">sil</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">希利盖农语</td>
<td class="tg-ve35">hil</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">下索布语</td>
<td class="tg-ve35">los</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">夏威夷语</td>
<td class="tg-ve35">haw</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">新挪威语</td>
<td class="tg-ve35">nno</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">西非书面语</td>
<td class="tg-ve35">nqo</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">信德语</td>
<td class="tg-ve35">snd</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">修纳语</td>
<td class="tg-ve35">sna</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">宿务语</td>
<td class="tg-ve35">ceb</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">叙利亚语</td>
<td class="tg-ve35">syr</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-wo29">巽他语</td>
<td class="tg-wo29">sun</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35"></td>
<td class="tg-ve35"></td>
<td class="tg-wo29"></td>
<td class="tg-ve35"></td>
<td class="tg-ve35"></td>
<td class="tg-wo29"></td>
</tr>
<tr>
<td class="tg-ve35" rowspan="5">Y</td>
<td class="tg-ve35">英语</td>
<td class="tg-ve35">en</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">印地语</td>
<td class="tg-ve35">hi</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">印尼语</td>
<td class="tg-ve35">id</td>
<td class="tg-ve35">是</td>
</tr>
<tr>
<td class="tg-ve35">意大利语</td>
<td class="tg-ve35">it</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">越南语</td>
<td class="tg-ve35">vie</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">意第绪语</td>
<td class="tg-ve35">yid</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">因特语</td>
<td class="tg-ve35">ina</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">亚齐语</td>
<td class="tg-ve35">ach</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">印古什语</td>
<td class="tg-ve35">ing</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">伊博语</td>
<td class="tg-ve35">ibo</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">伊多语</td>
<td class="tg-ve35">ido</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">约鲁巴语</td>
<td class="tg-ve35">yor</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">亚美尼亚语</td>
<td class="tg-ve35">arm</td>
<td class="tg-ve35">是</td>
<td class="tg-ve35">伊努克提图特语</td>
<td class="tg-ve35">iku</td>
<td class="tg-wo29">否</td>
<td class="tg-wo29">伊朗语</td>
<td class="tg-wo29">ir</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35" rowspan="3">Z</td>
<td class="tg-ve35">中文(简体)</td>
<td class="tg-ve35">zh</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">中文(繁体)</td>
<td class="tg-ve35">cht</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">中文(文言文)</td>
<td class="tg-ve35">wyw</td>
<td class="tg-wo29">是</td>
</tr>
<tr>
<td class="tg-ve35">中文(粤语)</td>
<td class="tg-ve35">yue</td>
<td class="tg-wo29">是</td>
<td class="tg-ve35">扎扎其语</td>
<td class="tg-ve35">zaz</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">中古法语</td>
<td class="tg-ve35">frm</td>
<td class="tg-wo29">否</td>
</tr>
<tr>
<td class="tg-ve35">祖鲁语</td>
<td class="tg-ve35">zul</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35">爪哇语</td>
<td class="tg-ve35">jav</td>
<td class="tg-wo29">否</td>
<td class="tg-ve35"></td>
<td class="tg-ve35"></td>
<td class="tg-wo29"></td>
</tr>
</tbody>
</table>
</div>
<script>
new Vue({
el: '#app',
data: {
selectedFile: null,
inputJson: null,
outputJson: null,
sourceLang: 'auto',
targetLang: 'vie', //越南
query: '',
res: {},
rowData: [],
langCodeList: [],
isLoding: false,
},
methods: {
handleFileSelect(file) {
this.selectedFile = file.raw;
const reader = new FileReader();
reader.onload = e => {
try {
this.inputJson = JSON.parse(e.target.result);
} catch (error) {
this.$message.error(`JSON parsing error: ${error}`);
}
};
reader.readAsText(this.selectedFile);
},
handleFileRemove() {
this.inputJson = null
},
isUpload() {
if (this.inputJson) {
this.$message.error('请移除已存在文件!')
}
},
async translate() {
if (!this.inputJson) {
this.$message.error('No file selected');
return;
}
for (let key in this.inputJson) {
if (typeof this.inputJson[key] === 'string') {
this.query = this.query + this.inputJson[key] + '\n'
}
}
const originalValue = this.query
const translatedValue = await this.callTranslateAPI(originalValue);
},
callTranslateAPI(text) {
this.isLoding = true
const appid = 'Your appid';
const key = 'Your key';
const salt = (new Date).getTime();
const query = text;
// 多个query可以用\n连接 如 query='apple\norange\nbanana\npear'
const from = this.sourceLang;
const to = this.targetLang;
const str1 = appid + query + salt + key;
const sign = md5(str1)
let _this = this
$.ajax({
url: 'http://api.fanyi.baidu.com/api/trans/vip/translate',
type: 'get',
dataType: 'jsonp',
data: {
q: query,
appid: appid,
salt: salt,
from: from,
to: to,
sign: sign,
},
success: function (data) {
if (data.error_code) {
_this.isLoding = false
_this.$message.error(data.error_code + ' ' + data.error_msg)
return
}
let result = data.trans_result
function filterArr(params, val) {
let res = params.filter(item => {
return item.src === val
})
return res[0]['dst']
}
for (let key in _this.inputJson) {
_this.$set(_this.res, key, filterArr(result, _this.inputJson[key]));
}
_this.isLoding = false
_this.query = ''
},
error: function (xhr, textStatus, errorThrown) {
_this.$message.error('请求失败:', xhr.status, textStatus, errorThrown);
_this.isLoding = false
}
});
},
copy() {
// 获取要复制内容的元素
let content = this.$refs.content
// 创建一个临时的textarea元素
let tempTextarea = document.createElement('textarea');
// tempTextarea.value =JSON.stringify(this.res) // 将要复制的内容赋值给textarea的value属性
tempTextarea.value = content.textContent // 将要复制的内容赋值给textarea的value属性
document.body.appendChild(tempTextarea);
tempTextarea.select();
try {
// 执行复制命令
document.execCommand('copy');
this.$message.success('已复制到剪贴板');
} catch (err) {
this.$message.error('已复制到剪贴板'); ('复制失败:', err);
}
document.body.removeChild(tempTextarea); // 删除临时textarea元素
},
sliceRanges(data, ranges) {
const result = [];
for (let i = 0; i < ranges.length; i++) {
const start = data.indexOf(ranges[i][0]);
const end = data.indexOf(ranges[i][1]);
if (start === -1) {
continue; // 范围无效,跳过当前循环
}
result.push(data.slice(start, end));
}
return result;
},
// 生成下拉列表对象
generateObject(arr) {
const result = [];
for (let i = 1; i < arr.length; i += 3) {
const code = arr[0];
const lang = arr[i];
const langCode = arr[i + 1];
const auto = arr[i + 2];
if (!lang || !langCode || !auto) {
continue; // 忽略空串或不完整的对象
}
result.push({ code, lang, langCode, auto });
}
return result
},
// 从百度翻译官网表格获取翻译的语种
getLangCodeList() {
const table = document.getElementById('myTable');
const rows = table.getElementsByTagName('tr');
for (let i = 0; i < rows.length; i++) {
const cells = rows[i].getElementsByTagName('td');
for (let j = 0; j < cells.length; j++) {
this.rowData.push(cells[j].innerHTML);
}
}
// 截取范围
const ranges = [
['A', 'B'],
['B', 'C'],
['C', 'D'],
['D', 'E'],
['E', 'F'],
['F', 'G'],
['G', 'H'],
['H', 'J'],
['J', 'K'],
['K', 'L'],
['L', 'M'],
['M', 'N'],
['N', 'P'],
['P', 'Q'],
['Q', 'R'],
['R', 'S'],
['S', 'T'],
['T', 'W'],
['W', 'X'],
['X', 'Y'],
['Y', 'Z'],
['Z'],
]
const result = this.sliceRanges(this.rowData, ranges)
let res = result.map(item => {
item = this.generateObject(item.filter((i) => { return i != '' }))
return item
})
this.langCodeList = res.flat();
},
},
watch: {
inputJson() {
this.outputJson = {};
}
},
mounted() {
// 获取langCode编码
this.getLangCodeList()
},
});
</script>
</body>