Skip to content

Commit 97cfcee

Browse files
authored
docs: add translate (#211)
1 parent 71bf5ea commit 97cfcee

File tree

5 files changed

+73
-0
lines changed

5 files changed

+73
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<script lang="ts" setup>
2+
import { ref, onMounted } from 'vue'
3+
4+
const currentLang = ref('chinese_simplified')
5+
6+
onMounted(() => {
7+
setTimeout(() => {
8+
currentLang.value = translate.language.getCurrent()
9+
}, 3000)
10+
})
11+
12+
const switchLang = () => {
13+
if (translate.language.getCurrent() === 'chinese_simplified') {
14+
translate.changeLanguage('english')
15+
currentLang.value = 'english'
16+
} else {
17+
translate.changeLanguage('chinese_simplified')
18+
currentLang.value = 'chinese_simplified'
19+
}
20+
}
21+
</script>
22+
23+
<template>
24+
<div class="translate-switch">
25+
<a @click="switchLang">{{ currentLang === 'english' ? 'English' : '简体中文' }}</a>
26+
</div>
27+
</template>
28+
29+
<style scoped>
30+
.translate-switch {
31+
display: flex;
32+
align-items: center;
33+
font-size: 14px;
34+
cursor: pointer;
35+
}
36+
</style>

packages/docs/fluent-editor/.vitepress/config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default defineConfig({
1818
['script', { src: 'https://cdn.jsdelivr.net/npm/lottie-web/build/player/lottie.js' }],
1919
['script', { src: 'https://cdn.jsdelivr.net/npm/@petercatai/assistant@1.0.7/dist/umd/assistant.min.js' }],
2020
['link', { rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/npm/@petercatai/assistant@1.0.7/dist/umd/assistant.min.css' }],
21+
['script', { src: 'https://cdn.staticfile.net/translate.js/3.12.0/translate.js' }],
2122
],
2223
themeConfig: {
2324
logo: '/logo.svg',
@@ -29,6 +30,9 @@ export default defineConfig({
2930
{ text: 'TinyVue', link: 'https://opentiny.design/tiny-vue/' },
3031
],
3132
},
33+
{
34+
component: 'TranslateComponent'
35+
},
3236
],
3337
socialLinks: [
3438
{ icon: 'github', link: 'https://github.com/opentiny/fluent-editor/' },

packages/docs/fluent-editor/.vitepress/theme/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import * as Toast from 'vue-toastification'
55
import { insertBaiduScript } from './insert-baidu-script'
66
import { inertDepsVersion } from './insert-deps-version'
77
import { insertPeterCatAssistant } from './insert-petercat-assistant'
8+
import { insertTranslate } from './insert-translate'
9+
import TranslateComponent from '../components/TranslateComponent.vue'
810
import '@vitepress-code-preview/container/dist/style.css'
911
import './style.css'
1012
import 'vue-toastification/dist/index.css'
@@ -13,6 +15,7 @@ export const define = <T>(value: T): T => value
1315
export default define<Theme>({
1416
...DefaultTheme,
1517
enhanceApp({ app }) {
18+
app.component('TranslateComponent', TranslateComponent)
1619
app.use(Toast.default, {
1720
position: 'top-center',
1821
timeout: 3000,
@@ -24,5 +27,8 @@ export default define<Theme>({
2427
setTimeout(() => {
2528
insertPeterCatAssistant()
2629
}, 300)
30+
setTimeout(() => {
31+
insertTranslate()
32+
}, 3000)
2733
},
2834
})
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
export function insertTranslate() {
2+
if (typeof document === 'undefined') return
3+
const translateScript = document.createElement('script')
4+
const translateScriptStr = `
5+
translate.language.setLocal('chinese_simplified');
6+
translate.service.use('client.edge');
7+
translate.listener.start();
8+
translate.setAutoDiscriminateLocalLanguage();
9+
translate.selectLanguageTag.languages = 'english,chinese_simplified';
10+
translate.selectLanguageTag.show = false;
11+
translate.language.setDefaultTo('chinese_simplified');
12+
13+
translate.ignore.class.push('ql-container');
14+
translate.ignore.class.push('ql-editor');
15+
translate.ignore.class.push('petercat-lui-assistant');
16+
translate.ignore.class.push('translate-switch');
17+
18+
translate.execute();
19+
`
20+
translateScript.textContent = translateScriptStr
21+
document.body.append(translateScript)
22+
}

packages/docs/fluent-editor/.vitepress/theme/style.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,8 @@
9898
padding-top: 0;
9999
line-height: 22px;
100100
}
101+
102+
/* 翻译工具 */
103+
#translate {
104+
display: none;
105+
}

0 commit comments

Comments
 (0)