compile pofile in backend

This commit is contained in:
0xJacky 2022-02-19 10:44:28 +08:00
parent 35d144c678
commit 9940c0ad36
18 changed files with 99 additions and 183 deletions

View file

@ -1,6 +1,26 @@
package frontend
import "embed"
import (
"embed"
"github.com/0xJacky/pofile"
"log"
"path"
)
//go:embed dist
var DistFS embed.FS
var Translations pofile.Dict
func InitTranslations() {
lang := []string{"zh_CN", "zh_TW", "en"}
Translations = make(pofile.Dict)
for _, v := range lang {
p, err := pofile.Parse(path.Join("frontend", "src", "locale", v, "LC_MESSAGES", "app.po"))
if err != nil {
log.Fatalln(err)
}
Translations[p.Header.Language] = make(pofile.Dict)
Translations[p.Header.Language] = p.ToDict()
}
}

View file

@ -1,17 +1,24 @@
export const settings = {
namespace: true,
state: {
language: ''
language: '',
translations: {},
},
mutations: {
set_language(state, payload) {
state.language = payload
},
update_translations(state, payload) {
state.translations = payload
}
},
actions: {
set_language({commit}, data) {
commit('set_language', data)
},
update_translations({commit}, data) {
commit('update_translations', data)
}
},
getters: {
current_language(state) {

View file

@ -1,7 +1,6 @@
import {translate} from 'vue-gettext'
import store from '@/lib/store'
import {availableLanguages} from '@/lib/translate/index'
import translations from '@/translations.json'
let lang = window.navigator.language
if (!lang.includes('zh')) {
@ -24,6 +23,6 @@ const {
gettext: $gettext,
} = translate
translate.initTranslations(translations, config)
translate.initTranslations(store.state.settings.translations, config)
export default $gettext

View file

@ -103,21 +103,17 @@ msgid "System message"
msgstr ""
#: src/views/dashboard/DashBoard.vue:124
msgid "Total: "
msgid "Total:"
msgstr ""
#: src/views/dashboard/DashBoard.vue:12
msgid "Uptime"
msgstr ""
#: src/views/dashboard/DashBoard.vue:94
#: src/views/dashboard/DashBoard.vue:94 src/views/dashboard/DashBoard.vue:123
msgid "Used:"
msgstr ""
#: src/views/dashboard/DashBoard.vue:123
msgid "Used: "
msgstr ""
#: src/router/index.js:27
msgid "Users"
msgstr ""

View file

@ -23,7 +23,7 @@ msgid "Add Sites"
msgstr ""
#: src/views/dashboard/DashBoard.vue:94
msgid "Cached: "
msgid "Cached:"
msgstr ""
#: src/router/index.js:60

View file

@ -105,21 +105,17 @@ msgid "System message"
msgstr "系统消息"
#: src/views/dashboard/DashBoard.vue:124
msgid "Total: "
msgstr "总共: "
msgid "Total:"
msgstr "总共:"
#: src/views/dashboard/DashBoard.vue:12
msgid "Uptime"
msgstr "运行时间"
#: src/views/dashboard/DashBoard.vue:94
#: src/views/dashboard/DashBoard.vue:94 src/views/dashboard/DashBoard.vue:123
msgid "Used:"
msgstr "已使用:"
#: src/views/dashboard/DashBoard.vue:123
msgid "Used: "
msgstr "已使用: "
#: src/router/index.js:27
msgid "Users"
msgstr "用户"

View file

@ -1,125 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: easygettext\n"
"X-Generator: Poedit 3.0.1\n"
#: src/router/index.js:98
msgid "404 Not Found"
msgstr "404 找不到页面"
#: src/router/index.js:76
msgid "About"
msgstr "关于"
#: src/router/index.js:47
msgid "Add Sites"
msgstr "添加站点"
#: src/views/dashboard/DashBoard.vue:94
msgid "Cached: "
msgstr "缓存: "
#: src/router/index.js:60
msgid "Config"
msgstr "配置"
#: src/router/index.js:19
msgid "Dashboard"
msgstr "仪表盘"
#: src/router/index.js:124
msgid "Detected version update, this page will automatically refresh."
msgstr "检测到版本更新,页面将会自动刷新。"
#: src/views/dashboard/DashBoard.vue:95
msgid "Free:"
msgstr "空闲:"
#: src/router/index.js:12
msgid "Home"
msgstr "首页"
#: src/router/index.js:86
msgid "Install"
msgstr "安装"
#: src/views/dashboard/DashBoard.vue:13
msgid "Load averages"
msgstr "系统负载"
#: src/router/index.js:92
msgid "Login"
msgstr "登录"
#: src/views/dashboard/DashBoard.vue:23
msgid "Memory"
msgstr "内存"
#: src/router/index.js:68
msgid "Modify Config"
msgstr "配置修改"
#: src/router/index.js:51
msgid "Modify Sites"
msgstr "站点修改"
#: src/router/index.js:104
msgid "Not Found"
msgstr "找不到页面"
#: src/router/index.js:128
msgid "OK"
msgstr "好的"
#: src/views/dashboard/DashBoard.vue:96
msgid "Physical memory:"
msgstr "物理内存:"
#: src/views/dashboard/DashBoard.vue:38
msgid "Server status"
msgstr "服务器状态"
#: src/router/index.js:35
msgid "Sites"
msgstr "站点"
#: src/router/index.js:43
msgid "Sites List"
msgstr "站点列表"
#: src/views/dashboard/DashBoard.vue:32
msgid "Storage"
msgstr "存储"
#: src/router/index.js:123
msgid "System message"
msgstr "系统消息"
#: src/views/dashboard/DashBoard.vue:124
msgid "Total: "
msgstr "总共: "
#: src/views/dashboard/DashBoard.vue:12
msgid "Uptime"
msgstr "运行时间"
#: src/views/dashboard/DashBoard.vue:94
msgid "Used:"
msgstr "已使用:"
#: src/views/dashboard/DashBoard.vue:123
msgid "Used: "
msgstr "已使用: "
#: src/router/index.js:27
msgid "Users"
msgstr "用户"

View file

@ -102,21 +102,17 @@ msgid "System message"
msgstr ""
#: src/views/dashboard/DashBoard.vue:124
msgid "Total: "
msgid "Total:"
msgstr ""
#: src/views/dashboard/DashBoard.vue:12
msgid "Uptime"
msgstr ""
#: src/views/dashboard/DashBoard.vue:94
#: src/views/dashboard/DashBoard.vue:94 src/views/dashboard/DashBoard.vue:123
msgid "Used:"
msgstr ""
#: src/views/dashboard/DashBoard.vue:123
msgid "Used: "
msgstr ""
#: src/router/index.js:27
msgid "Users"
msgstr ""

View file

@ -22,7 +22,7 @@ msgid "Add Sites"
msgstr ""
#: src/views/dashboard/DashBoard.vue:94
msgid "Cached: "
msgid "Cached:"
msgstr ""
#: src/router/index.js:60

View file

@ -11,7 +11,7 @@ import utils from '@/lib/utils'
import api from '@/api'
import GetTextPlugin from 'vue-gettext'
import {availableLanguages} from '@/lib/translate'
import translations from '@/translations.json'
import http from '@/lib/http'
Vue.use(utils)
@ -23,10 +23,14 @@ Vue.prototype.$api = api
Vue.use(GetTextPlugin, {
availableLanguages,
defaultLanguage: store.getters.current_language,
translations: translations,
translations: store.state.settings.translations,
silent: true
})
http.get('/translations.json').then(r => {
store.commit('update_translations', r)
})
NProgress.configure({
easing: 'ease',
speed: 500,

View file

@ -1 +0,0 @@
{"en":{},"zh_CN":{"404 Not Found":"404 找不到页面","About":"关于","Add Sites":"添加站点","Cached:":"缓存:","Config":"配置","Dashboard":"仪表盘","Detected version update, this page will automatically refresh.":"检测到版本更新,页面将会自动刷新。","Free:":"空闲:","Home":"首页","Install":"安装","Load averages":"系统负载","Login":"登录","Memory":"内存","Modify Config":"配置修改","Modify Sites":"站点修改","Not Found":"找不到页面","OK":"好的","Physical memory:":"物理内存:","Server status":"服务器状态","Sites":"站点","Sites List":"站点列表","Storage":"存储","System message":"系统消息","Total: ":"总共: ","Uptime":"运行时间","Used:":"已使用:","Used: ":"已使用: ","Users":"用户"},"zh_TW":{}}

View file

@ -30,8 +30,8 @@
<a-col :lg="6" :sm="8" :xs="12" class="chart_dashboard">
<div>
<a-tooltip
:title="$gettext('Used: ')+ disk_used +
' / '+ $gettext('Total: ') + disk_total">
:title="$gettext('Used:')+ disk_used +
' / '+ $gettext('Total:') + disk_total">
<a-progress :percent="disk_percentage" type="dashboard"/>
<p class="description" v-translate>Storage</p>
</a-tooltip>