feat:增加中英文转换util

This commit is contained in:
fanxb 2024-09-18 16:58:59 +08:00
parent 4c8c1a355c
commit f3f31e5b5c
7 changed files with 207 additions and 1796 deletions

View File

@ -0,0 +1,32 @@
import RuleInterface from "./RuleInterface";
import FileObj from "../../vo/FileObj";
import * as TranslateUtil from "../../../util/TranslateUtil";
import path from 'path';
export default class TranslateRole implements RuleInterface {
/**
* 1:简体转繁体 2
*/
type: number;
/**
* 012
*/
traditionalType: number;
constructor(data: any) {
this.type = data.type;
this.traditionalType = data.traditionalType;
}
deal(file: FileObj): void {
if (this.type == 1) {
file.realName = TranslateUtil.toTraditionalChinese(file.realName, this.traditionalType);
} else if (this.type == 2) {
file.realName = TranslateUtil.toSimplifiedChinese(file.realName, this.traditionalType);
}
file.name = file.realName + file.expandName;
}
}

View File

@ -3,6 +3,7 @@ import InsertRule from "../bo/rules/InsertRule";
import SerializationRule from "../bo/rules/SerializationRule";
import AutoRule from "../bo/rules/AutoRule";
import ReplaceRule from "../bo/rules/ReplaceRule";
import TranslateRole from "../bo/rules/TranslateRole";
export default class RuleObj {
type: string;
@ -31,9 +32,11 @@ export default class RuleObj {
case "replace":
this.data = new ReplaceRule(data.data);
break;
case "translate":
this.data = new TranslateRole(data.data);
break;
default:
throw new Error("不支持的规则:" + this.type);
}
}
}

View File

@ -233,7 +233,7 @@ var hk2tSearch = null;// WordsSearch
* @param {any} text
* @param {any} type 012
*/
export function ToTraditionalChinese(text: any, type: any) {
export function toTraditionalChinese(text: any, type: any) {
if (type == undefined) {
type = 0;
}
@ -255,7 +255,7 @@ export function ToTraditionalChinese(text: any, type: any) {
* @param {any} text
* @param {any} srcType 012
*/
export function ToSimplifiedChinese(text: string, srcType: any) {
export function toSimplifiedChinese(text: string, srcType: any) {
if (srcType == undefined) {
srcType = 0;
}

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,7 @@
<el-menu-item :disabled="editRule != null" index="replace">替换</el-menu-item>
<el-menu-item :disabled="editRule != null || isAutoPlan" index="serialization">序列化</el-menu-item>
<el-menu-item :disabled="editRule != null" index="auto">自动识别</el-menu-item>
<el-menu-item :disabled="editRule != null" index="translate">简繁转换</el-menu-item>
</el-menu>
<div class="rule">
<insert-rule ref="rule" :editRule="editRule" v-if="currentIndex === 'insert'"/>
@ -13,6 +14,7 @@
<replace-rule ref="rule" :editRule="editRule" v-else-if="currentIndex === 'replace'"/>
<serialization-rule ref="rule" :editRule="editRule" v-else-if="currentIndex === 'serialization'"/>
<auto-rule ref="rule" :editRule="editRule" v-else-if="currentIndex === 'auto'"/>
<translate-rule ref="rule" :editRule="editRule" v-else-if="currentIndex === 'translate'"/>
</div>
</div>
<div style="text-align: center">
@ -26,9 +28,10 @@ import DeleteRule from "./rules/DeleteRule.vue";
import SerializationRule from "./rules/SerializationRule.vue";
import AutoRule from "./rules/AutoRule";
import ReplaceRule from "@/components/rules/ReplaceRule";
import TranslateRule from '@/components/rules/TranslateRule.vue';
export default {
components: {InsertRule, DeleteRule, SerializationRule, AutoRule, ReplaceRule},
components: {InsertRule, DeleteRule, SerializationRule, AutoRule, ReplaceRule, TranslateRule},
props: ["editRule", "isAutoPlan"],
emits: ["ruleAdd"],
name: "Rule",

View File

@ -0,0 +1,77 @@
<template>
<div class="flex">
<span class="left">操作</span>
<div class="location">
<el-radio v-model="ruleObj.data.type" :label="1">简体转繁体</el-radio>
<el-radio v-model="ruleObj.data.type" :label="2">繁体转简体</el-radio>
</div>
</div>
<div class="flex">
<span class="left">繁体类型</span>
<div class="location">
<el-radio v-model="ruleObj.data.traditionalType" :label="0">繁体中文</el-radio>
<el-radio v-model="ruleObj.data.traditionalType" :label="1">港澳繁体</el-radio>
<el-radio v-model="ruleObj.data.traditionalType" :label="2">台湾正体</el-radio>
</div>
</div>
</template>
<script>
import {InfoFilled} from "@element-plus/icons-vue";
const traTypeMap = {
"0": "繁体中文",
"1": "港澳繁体",
"2": "台湾正体"
}
export default {
name: "InsertRule",
props: ["editRule"],
components: {InfoFilled},
data() {
return {
ruleObj: {
type: "translate",
message: "",
data: {
type: 1,
traditionalType: 1,
},
},
};
},
created() {
if (this.editRule) {
console.log(this.editRule);
this.ruleObj = JSON.parse(JSON.stringify(this.editRule));
}
},
methods: {
exportObj() {
this.ruleObj.message = `简繁转换:"${this.ruleObj.data.type === 1 ? '简体转繁体' : '繁体转简体'}",繁体类型:${traTypeMap[this.ruleObj.data.traditionalType]}`;
return this.ruleObj;
},
},
};
</script>
<style lang="less" scoped>
.flex {
display: flex;
justify-content: left;
align-items: center;
padding-top: 1em;
.left {
width: 6em;
}
.location {
justify-content: left;
//flex-direction: column;
display: flex;
}
}
</style>

View File

@ -14,7 +14,7 @@ import router from '../router/index';
async function request(url, method, params, body, isForm) {
let options = {
url,
baseURL: window.baseUrl + '/openRenamer/api',
baseURL: '/openRenamer/api',
method,
params,
headers: {token: window.token}