Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-app-operator-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lanbaoming
jiedao-app-operator-master
Commits
493f833a
Commit
493f833a
authored
Dec 30, 2022
by
黄卓
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
翻译器
parent
55fc0b3a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
76 additions
and
0 deletions
+76
-0
translater.js
translater.js
+76
-0
No files found.
translater.js
0 → 100644
View file @
493f833a
const
fs
=
require
(
'
fs
'
);
const
root
=
"
./src/views
"
let
allFiles
=
[]
function
getFiles
(
dir
){
let
files
=
fs
.
readdirSync
(
dir
)
files
.
forEach
(
file
=>
{
let
path
=
dir
+
'
/
'
+
file
if
(
fs
.
lstatSync
(
path
).
isDirectory
()){
getFiles
(
path
)
}
else
if
(
path
.
split
(
'
.
'
).
reverse
()[
0
]
===
'
vue
'
)
{
allFiles
.
push
(
path
)
}
})
}
getFiles
(
root
)
// allFiles = [
// // 'src/views/system/user/index.vue',
// 'src/views/bpm/model/index.vue'
// // 'src/views/ecw/financial/receiptDetail.vue'
// ]
console
.
log
(
allFiles
)
allFiles
.
forEach
(
file
=>
{
setTimeout
(()
=>
{
let
data
=
fs
.
readFileSync
(
file
,
{
encoding
:
'
utf-8
'
})
console
.
log
(
'
开始翻译:
'
+
file
)
// 找到 <template>([\w\W]*)<\/template>
data
=
data
.
replace
(
/<template>
([\w\W]
*
)
<
\/
template>/g
,
(
template
)
=>
{
// 匹配标签属性 placeholder="请输入部门名称" 并替换为 :placeholder="$t('请输入部门名称')"
return
template
.
replace
(
/
\w
+="
[^\x
00-
\x
ff
]
+"/g
,
(
word
)
=>
{
const
wordList
=
word
.
split
(
'
=
'
)
return
'
:
'
+
wordList
[
0
].
substring
(
1
)
+
'
="$t(
\'
'
+
wordList
[
1
].
substring
(
1
,
wordList
[
1
].
length
-
1
)
+
'
\'
)"
'
})
// 匹配标签值 <el-button>取 消</el-button> 并替换为 <el-button>{{ $t('取 消') }}</el-button>
.
replace
(
/>
(\s
*
[^\x
00-
\x
ff
]
+
\s
*
)
+</g
,
(
word
)
=>
{
return
'
>{{ $t(
\'
'
+
word
.
substring
(
1
,
word
.
length
-
1
).
trim
()
+
'
\'
) }}<
'
})
})
// 找到 <script>([\w\W]*)<\/script>
.
replace
(
/<script>
([\w\W]
*
)
<
\/
script>/g
,
(
script
)
=>
{
// 单引号字符串 \'(\s*[^\x00-\xff]+\s*)+\' ,其中(?<!([(=]))和(?!\))表示前后没有括号和前=用于防止重复转换
let
s
=
script
.
replace
(
/
(?<
!
([
(=
]))(?<
!
(\$
t
\())
'
[^\x
00-
\x
ff
]
+'
(?!\))
/g
,
s
=>
{
return
'
this.$t(
'
+
s
+
'
)
'
})
// 双引号字符串 \"(\s*[^\x00-\xff]+\s*)+\"
s
=
s
.
replace
(
/
(?<
!
([
(=
]))
"
[^\x
00-
\x
ff
]
+"
(?!\))
/g
,
s
=>
{
return
'
this.$t(
'
+
s
+
'
)
'
})
// `字符串 \`(\s*[^\x00-\xff]+\s*)+\`
s
=
s
.
replace
(
/
(?<
!
([
(=
]))
`
[^\x
00-
\x
ff
]
+`
(?!\))
/g
,
s
=>
{
return
'
this.$t(
'
+
s
+
'
)
'
})
return
s
})
console
.
log
(
'
准备保存:
'
+
file
)
fs
.
writeFileSync
(
file
,
data
)
console
.
log
(
'
已翻译:
'
+
file
)
},
0
)
})
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment