diff --git a/publish/changeLog.md b/publish/changeLog.md index 44c4d8cc..9c062529 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -10,6 +10,7 @@ - 新增“清热板蓝”皮肤 - 新增软件最小化、关闭按钮位置设置,MAC版默认为左边,非MAC为右边,不想用默认的可到设置修改 - 新增快捷键设置,软件内快捷键默认开启,全局快捷键默认关闭 +- 新增首次运行时自动根据当前系统使用的语言设置软件显示的语言 ### 优化 diff --git a/src/common/defaultSetting.js b/src/common/defaultSetting.js index c347775a..b0f202cf 100644 --- a/src/common/defaultSetting.js +++ b/src/common/defaultSetting.js @@ -79,7 +79,7 @@ const defaultSetting = { }, windowSizeId: 2, themeId: 0, - langId: 'cns', + langId: null, sourceId: 'kw', apiSource: 'temp', sourceNameType: 'alias', diff --git a/src/main/modules/winLyric/event.js b/src/main/modules/winLyric/event.js index 84e837a1..8507cc16 100644 --- a/src/main/modules/winLyric/event.js +++ b/src/main/modules/winLyric/event.js @@ -16,7 +16,10 @@ const setLrcConfig = isForceSet => { } } if (global.modules.lyricWindow) { - mainSend(global.modules.lyricWindow, ipcWinLyricNames.set_lyric_config, desktopLyric) + mainSend(global.modules.lyricWindow, ipcWinLyricNames.set_lyric_config, { + config: desktopLyric, + languageId: global.appSetting.langId, + }) if (isForceSet || isLock != desktopLyric.isLock) { isLock = desktopLyric.isLock if (desktopLyric.isLock) { diff --git a/src/main/modules/winLyric/rendererEvent.js b/src/main/modules/winLyric/rendererEvent.js index 8396c44e..a1c20495 100644 --- a/src/main/modules/winLyric/rendererEvent.js +++ b/src/main/modules/winLyric/rendererEvent.js @@ -23,7 +23,7 @@ mainOn(ipcWinLyricNames.set_lyric_config, (event, config) => { }) mainHandle(ipcWinLyricNames.get_lyric_config, async() => { - return global.appSetting.desktopLyric + return { config: global.appSetting.desktopLyric, languageId: global.appSetting.langId } }) let bounds diff --git a/src/renderer-lyric/App.vue b/src/renderer-lyric/App.vue index 4bebd13f..3664721b 100644 --- a/src/renderer-lyric/App.vue +++ b/src/renderer-lyric/App.vue @@ -105,8 +105,8 @@ export default { }, }, created() { - rendererOn(NAMES.winLyric.set_lyric_config, (event, config) => this.lrcConfig = config) - rendererInvoke(NAMES.winLyric.get_lyric_config).then(config => this.lrcConfig = config) + rendererOn(NAMES.winLyric.set_lyric_config, (event, config) => this.handleUpdateConfig(config)) + rendererInvoke(NAMES.winLyric.get_lyric_config).then(config => this.handleUpdateConfig(config)) }, mounted() { document.addEventListener('mousemove', this.handleMouseMove) @@ -117,6 +117,10 @@ export default { document.removeEventListener('mouseup', this.handleMouseUp) }, methods: { + handleUpdateConfig({ config, languageId }) { + this.lrcConfig = config + if (this.$i18n.locale !== languageId && languageId != null) this.$i18n.locale = languageId + }, handleMouseDown(origin, event) { this.handleMouseUp() this.resize.origin = origin diff --git a/src/renderer-lyric/plugins/i18n.js b/src/renderer-lyric/plugins/i18n.js index a935759f..a0e166bc 100644 --- a/src/renderer-lyric/plugins/i18n.js +++ b/src/renderer-lyric/plugins/i18n.js @@ -14,8 +14,8 @@ import messages from '../../renderer/lang' Vue.use(VueI18n) const i18n = window.i18n = new VueI18n({ - locale: 'cns', - fallbackLocale: 'cns', + locale: 'zh-cn', + fallbackLocale: 'zh-cn', messages, }) diff --git a/src/renderer/lang/Readme.md b/src/renderer/lang/Readme.md new file mode 100644 index 00000000..8a63ed0d --- /dev/null +++ b/src/renderer/lang/Readme.md @@ -0,0 +1,39 @@ +新增语言时创建的语言文件夹需要与以下列表对应: + +- `ar-sa` - Arabic Saudi Arabia +- `cs-cz` - Czech Czech Republic +- `da-dk` - Danish Denmark +- `de-de` - German Germany +- `el-gr` - Modern Greek Greece +- `en-au` - English Australia +- `en-gb` - English United Kingdom +- `en-ie` - English Ireland +- `en-us` - English United States +- `en-za` - English South Africa +- `es-es` - Spanish Spain +- `es-mx` - Spanish Mexico +- `fi-fi` - Finnish Finland +- `fr-ca` - French Canada +- `fr-fr` - French France +- `he-il` - Hebrew Israel +- `hi-in` - Hindi India +- `hu-hu` - Hungarian Hungary +- `id-id` - Indonesian Indonesia +- `it-it` - Italian Italy +- `ja-jp` - Japanese Japan +- `ko-kr` - Korean Republic of Korea +- `nl-be` - Dutch Belgium +- `nl-nl` - Dutch Netherlands +- `no-no` - Norwegian Norway +- `pl-pl` - Polish Poland +- `pt-br` - Portuguese Brazil +- `pt-pt` - Portuguese Portugal +- `ro-ro` - Romanian Romania +- `ru-ru` - Russian Russian Federation +- `sk-sk` - Slovak Slovakia +- `sv-se` - Swedish Sweden +- `th-th` - Thai Thailand +- `tr-tr` - Turkish Turkey +- `zh-cn` - Chinese China +- `zh-hk` - Chinese Hong Kong +- `zh-tw` - Chinese Taiwan diff --git a/src/renderer/lang/en/core/aside.json b/src/renderer/lang/en-us/core/aside.json similarity index 100% rename from src/renderer/lang/en/core/aside.json rename to src/renderer/lang/en-us/core/aside.json diff --git a/src/renderer/lang/en/core/player.json b/src/renderer/lang/en-us/core/player.json similarity index 100% rename from src/renderer/lang/en/core/player.json rename to src/renderer/lang/en-us/core/player.json diff --git a/src/renderer/lang/en/core/toolbar.json b/src/renderer/lang/en-us/core/toolbar.json similarity index 100% rename from src/renderer/lang/en/core/toolbar.json rename to src/renderer/lang/en-us/core/toolbar.json diff --git a/src/renderer/lang/en/desktopLyric.json b/src/renderer/lang/en-us/desktopLyric.json similarity index 100% rename from src/renderer/lang/en/desktopLyric.json rename to src/renderer/lang/en-us/desktopLyric.json diff --git a/src/renderer/lang/en/material/download_modal.json b/src/renderer/lang/en-us/material/download_modal.json similarity index 100% rename from src/renderer/lang/en/material/download_modal.json rename to src/renderer/lang/en-us/material/download_modal.json diff --git a/src/renderer/lang/en/material/download_multiple_modal.json b/src/renderer/lang/en-us/material/download_multiple_modal.json similarity index 100% rename from src/renderer/lang/en/material/download_multiple_modal.json rename to src/renderer/lang/en-us/material/download_multiple_modal.json diff --git a/src/renderer/lang/en/material/flow_btn.json b/src/renderer/lang/en-us/material/flow_btn.json similarity index 100% rename from src/renderer/lang/en/material/flow_btn.json rename to src/renderer/lang/en-us/material/flow_btn.json diff --git a/src/renderer/lang/en/material/list_add_modal.json b/src/renderer/lang/en-us/material/list_add_modal.json similarity index 100% rename from src/renderer/lang/en/material/list_add_modal.json rename to src/renderer/lang/en-us/material/list_add_modal.json diff --git a/src/renderer/lang/en/material/list_add_multiple_modal.json b/src/renderer/lang/en-us/material/list_add_multiple_modal.json similarity index 100% rename from src/renderer/lang/en/material/list_add_multiple_modal.json rename to src/renderer/lang/en-us/material/list_add_multiple_modal.json diff --git a/src/renderer/lang/en/material/list_buttons.json b/src/renderer/lang/en-us/material/list_buttons.json similarity index 100% rename from src/renderer/lang/en/material/list_buttons.json rename to src/renderer/lang/en-us/material/list_buttons.json diff --git a/src/renderer/lang/en/material/pagination.json b/src/renderer/lang/en-us/material/pagination.json similarity index 100% rename from src/renderer/lang/en/material/pagination.json rename to src/renderer/lang/en-us/material/pagination.json diff --git a/src/renderer/lang/en/material/song_list.json b/src/renderer/lang/en-us/material/song_list.json similarity index 100% rename from src/renderer/lang/en/material/song_list.json rename to src/renderer/lang/en-us/material/song_list.json diff --git a/src/renderer/lang/en/material/tag_list.json b/src/renderer/lang/en-us/material/tag_list.json similarity index 100% rename from src/renderer/lang/en/material/tag_list.json rename to src/renderer/lang/en-us/material/tag_list.json diff --git a/src/renderer/lang/en/material/xm_verify_modal.json b/src/renderer/lang/en-us/material/xm_verify_modal.json similarity index 100% rename from src/renderer/lang/en/material/xm_verify_modal.json rename to src/renderer/lang/en-us/material/xm_verify_modal.json diff --git a/src/renderer/lang/en/store/state.json b/src/renderer/lang/en-us/store/state.json similarity index 100% rename from src/renderer/lang/en/store/state.json rename to src/renderer/lang/en-us/store/state.json diff --git a/src/renderer/lang/en/view/download.json b/src/renderer/lang/en-us/view/download.json similarity index 100% rename from src/renderer/lang/en/view/download.json rename to src/renderer/lang/en-us/view/download.json diff --git a/src/renderer/lang/en/view/list.json b/src/renderer/lang/en-us/view/list.json similarity index 100% rename from src/renderer/lang/en/view/list.json rename to src/renderer/lang/en-us/view/list.json diff --git a/src/renderer/lang/en/view/search.json b/src/renderer/lang/en-us/view/search.json similarity index 100% rename from src/renderer/lang/en/view/search.json rename to src/renderer/lang/en-us/view/search.json diff --git a/src/renderer/lang/en/view/setting.json b/src/renderer/lang/en-us/view/setting.json similarity index 100% rename from src/renderer/lang/en/view/setting.json rename to src/renderer/lang/en-us/view/setting.json diff --git a/src/renderer/lang/en/view/song_list.json b/src/renderer/lang/en-us/view/song_list.json similarity index 100% rename from src/renderer/lang/en/view/song_list.json rename to src/renderer/lang/en-us/view/song_list.json diff --git a/src/renderer/lang/index.js b/src/renderer/lang/index.js index c3acc79f..a13e7b34 100644 --- a/src/renderer/lang/index.js +++ b/src/renderer/lang/index.js @@ -9,7 +9,12 @@ const requireLang = require.context( const messages = {} for (const file of requireLang.keys()) { - if (file === './index.js') continue + switch (file) { + case './index.js': + case './languages.json': + case './Readme.md': + continue + } const path = file.replace(/(\.\/|\.json$)/g, '').split('/') diff --git a/src/renderer/lang/languages.json b/src/renderer/lang/languages.json index acd40ab3..b6dbb873 100644 --- a/src/renderer/lang/languages.json +++ b/src/renderer/lang/languages.json @@ -1,19 +1,20 @@ [ { "name": "简体中文", - "locale": "cns", - "alternate": "zh-Hans", + "locale": "zh-cn", + "alternate": "zh-hans", "country": "cn", "fallback": true }, { "name": "繁体中文", - "locale": "cnt", + "locale": "zh-tw", + "alternate": "zh-hk", "country": "cn" }, { "name": "English", - "locale": "en", + "locale": "en-us", "country": "us" } ] diff --git a/src/renderer/lang/cns/core/aside.json b/src/renderer/lang/zh-cn/core/aside.json similarity index 100% rename from src/renderer/lang/cns/core/aside.json rename to src/renderer/lang/zh-cn/core/aside.json diff --git a/src/renderer/lang/cns/core/player.json b/src/renderer/lang/zh-cn/core/player.json similarity index 100% rename from src/renderer/lang/cns/core/player.json rename to src/renderer/lang/zh-cn/core/player.json diff --git a/src/renderer/lang/cns/core/toolbar.json b/src/renderer/lang/zh-cn/core/toolbar.json similarity index 100% rename from src/renderer/lang/cns/core/toolbar.json rename to src/renderer/lang/zh-cn/core/toolbar.json diff --git a/src/renderer/lang/cns/desktopLyric.json b/src/renderer/lang/zh-cn/desktopLyric.json similarity index 100% rename from src/renderer/lang/cns/desktopLyric.json rename to src/renderer/lang/zh-cn/desktopLyric.json diff --git a/src/renderer/lang/cns/material/download_modal.json b/src/renderer/lang/zh-cn/material/download_modal.json similarity index 100% rename from src/renderer/lang/cns/material/download_modal.json rename to src/renderer/lang/zh-cn/material/download_modal.json diff --git a/src/renderer/lang/cns/material/download_multiple_modal.json b/src/renderer/lang/zh-cn/material/download_multiple_modal.json similarity index 100% rename from src/renderer/lang/cns/material/download_multiple_modal.json rename to src/renderer/lang/zh-cn/material/download_multiple_modal.json diff --git a/src/renderer/lang/cns/material/flow_btn.json b/src/renderer/lang/zh-cn/material/flow_btn.json similarity index 100% rename from src/renderer/lang/cns/material/flow_btn.json rename to src/renderer/lang/zh-cn/material/flow_btn.json diff --git a/src/renderer/lang/cns/material/list_add_modal.json b/src/renderer/lang/zh-cn/material/list_add_modal.json similarity index 100% rename from src/renderer/lang/cns/material/list_add_modal.json rename to src/renderer/lang/zh-cn/material/list_add_modal.json diff --git a/src/renderer/lang/cns/material/list_add_multiple_modal.json b/src/renderer/lang/zh-cn/material/list_add_multiple_modal.json similarity index 100% rename from src/renderer/lang/cns/material/list_add_multiple_modal.json rename to src/renderer/lang/zh-cn/material/list_add_multiple_modal.json diff --git a/src/renderer/lang/cns/material/list_buttons.json b/src/renderer/lang/zh-cn/material/list_buttons.json similarity index 100% rename from src/renderer/lang/cns/material/list_buttons.json rename to src/renderer/lang/zh-cn/material/list_buttons.json diff --git a/src/renderer/lang/cns/material/pagination.json b/src/renderer/lang/zh-cn/material/pagination.json similarity index 100% rename from src/renderer/lang/cns/material/pagination.json rename to src/renderer/lang/zh-cn/material/pagination.json diff --git a/src/renderer/lang/cns/material/song_list.json b/src/renderer/lang/zh-cn/material/song_list.json similarity index 100% rename from src/renderer/lang/cns/material/song_list.json rename to src/renderer/lang/zh-cn/material/song_list.json diff --git a/src/renderer/lang/cns/material/tag_list.json b/src/renderer/lang/zh-cn/material/tag_list.json similarity index 100% rename from src/renderer/lang/cns/material/tag_list.json rename to src/renderer/lang/zh-cn/material/tag_list.json diff --git a/src/renderer/lang/cns/material/xm_verify_modal.json b/src/renderer/lang/zh-cn/material/xm_verify_modal.json similarity index 100% rename from src/renderer/lang/cns/material/xm_verify_modal.json rename to src/renderer/lang/zh-cn/material/xm_verify_modal.json diff --git a/src/renderer/lang/cns/store/state.json b/src/renderer/lang/zh-cn/store/state.json similarity index 100% rename from src/renderer/lang/cns/store/state.json rename to src/renderer/lang/zh-cn/store/state.json diff --git a/src/renderer/lang/cns/view/download.json b/src/renderer/lang/zh-cn/view/download.json similarity index 100% rename from src/renderer/lang/cns/view/download.json rename to src/renderer/lang/zh-cn/view/download.json diff --git a/src/renderer/lang/cns/view/list.json b/src/renderer/lang/zh-cn/view/list.json similarity index 100% rename from src/renderer/lang/cns/view/list.json rename to src/renderer/lang/zh-cn/view/list.json diff --git a/src/renderer/lang/cns/view/search.json b/src/renderer/lang/zh-cn/view/search.json similarity index 100% rename from src/renderer/lang/cns/view/search.json rename to src/renderer/lang/zh-cn/view/search.json diff --git a/src/renderer/lang/cns/view/setting.json b/src/renderer/lang/zh-cn/view/setting.json similarity index 100% rename from src/renderer/lang/cns/view/setting.json rename to src/renderer/lang/zh-cn/view/setting.json diff --git a/src/renderer/lang/cns/view/song_list.json b/src/renderer/lang/zh-cn/view/song_list.json similarity index 100% rename from src/renderer/lang/cns/view/song_list.json rename to src/renderer/lang/zh-cn/view/song_list.json diff --git a/src/renderer/lang/cnt/core/aside.json b/src/renderer/lang/zh-tw/core/aside.json similarity index 100% rename from src/renderer/lang/cnt/core/aside.json rename to src/renderer/lang/zh-tw/core/aside.json diff --git a/src/renderer/lang/cnt/core/player.json b/src/renderer/lang/zh-tw/core/player.json similarity index 100% rename from src/renderer/lang/cnt/core/player.json rename to src/renderer/lang/zh-tw/core/player.json diff --git a/src/renderer/lang/cnt/core/toolbar.json b/src/renderer/lang/zh-tw/core/toolbar.json similarity index 100% rename from src/renderer/lang/cnt/core/toolbar.json rename to src/renderer/lang/zh-tw/core/toolbar.json diff --git a/src/renderer/lang/cnt/desktopLyric.json b/src/renderer/lang/zh-tw/desktopLyric.json similarity index 100% rename from src/renderer/lang/cnt/desktopLyric.json rename to src/renderer/lang/zh-tw/desktopLyric.json diff --git a/src/renderer/lang/cnt/material/download_modal.json b/src/renderer/lang/zh-tw/material/download_modal.json similarity index 100% rename from src/renderer/lang/cnt/material/download_modal.json rename to src/renderer/lang/zh-tw/material/download_modal.json diff --git a/src/renderer/lang/cnt/material/download_multiple_modal.json b/src/renderer/lang/zh-tw/material/download_multiple_modal.json similarity index 100% rename from src/renderer/lang/cnt/material/download_multiple_modal.json rename to src/renderer/lang/zh-tw/material/download_multiple_modal.json diff --git a/src/renderer/lang/cnt/material/flow_btn.json b/src/renderer/lang/zh-tw/material/flow_btn.json similarity index 100% rename from src/renderer/lang/cnt/material/flow_btn.json rename to src/renderer/lang/zh-tw/material/flow_btn.json diff --git a/src/renderer/lang/cnt/material/list_add_modal.json b/src/renderer/lang/zh-tw/material/list_add_modal.json similarity index 100% rename from src/renderer/lang/cnt/material/list_add_modal.json rename to src/renderer/lang/zh-tw/material/list_add_modal.json diff --git a/src/renderer/lang/cnt/material/list_add_multiple_modal.json b/src/renderer/lang/zh-tw/material/list_add_multiple_modal.json similarity index 100% rename from src/renderer/lang/cnt/material/list_add_multiple_modal.json rename to src/renderer/lang/zh-tw/material/list_add_multiple_modal.json diff --git a/src/renderer/lang/cnt/material/list_buttons.json b/src/renderer/lang/zh-tw/material/list_buttons.json similarity index 100% rename from src/renderer/lang/cnt/material/list_buttons.json rename to src/renderer/lang/zh-tw/material/list_buttons.json diff --git a/src/renderer/lang/cnt/material/pagination.json b/src/renderer/lang/zh-tw/material/pagination.json similarity index 100% rename from src/renderer/lang/cnt/material/pagination.json rename to src/renderer/lang/zh-tw/material/pagination.json diff --git a/src/renderer/lang/cnt/material/song_list.json b/src/renderer/lang/zh-tw/material/song_list.json similarity index 100% rename from src/renderer/lang/cnt/material/song_list.json rename to src/renderer/lang/zh-tw/material/song_list.json diff --git a/src/renderer/lang/cnt/material/tag_list.json b/src/renderer/lang/zh-tw/material/tag_list.json similarity index 100% rename from src/renderer/lang/cnt/material/tag_list.json rename to src/renderer/lang/zh-tw/material/tag_list.json diff --git a/src/renderer/lang/cnt/material/xm_verify_modal.json b/src/renderer/lang/zh-tw/material/xm_verify_modal.json similarity index 100% rename from src/renderer/lang/cnt/material/xm_verify_modal.json rename to src/renderer/lang/zh-tw/material/xm_verify_modal.json diff --git a/src/renderer/lang/cnt/store/state.json b/src/renderer/lang/zh-tw/store/state.json similarity index 100% rename from src/renderer/lang/cnt/store/state.json rename to src/renderer/lang/zh-tw/store/state.json diff --git a/src/renderer/lang/cnt/view/download.json b/src/renderer/lang/zh-tw/view/download.json similarity index 100% rename from src/renderer/lang/cnt/view/download.json rename to src/renderer/lang/zh-tw/view/download.json diff --git a/src/renderer/lang/cnt/view/list.json b/src/renderer/lang/zh-tw/view/list.json similarity index 100% rename from src/renderer/lang/cnt/view/list.json rename to src/renderer/lang/zh-tw/view/list.json diff --git a/src/renderer/lang/cnt/view/search.json b/src/renderer/lang/zh-tw/view/search.json similarity index 100% rename from src/renderer/lang/cnt/view/search.json rename to src/renderer/lang/zh-tw/view/search.json diff --git a/src/renderer/lang/cnt/view/setting.json b/src/renderer/lang/zh-tw/view/setting.json similarity index 100% rename from src/renderer/lang/cnt/view/setting.json rename to src/renderer/lang/zh-tw/view/setting.json diff --git a/src/renderer/lang/cnt/view/song_list.json b/src/renderer/lang/zh-tw/view/song_list.json similarity index 100% rename from src/renderer/lang/cnt/view/song_list.json rename to src/renderer/lang/zh-tw/view/song_list.json diff --git a/src/renderer/plugins/i18n.js b/src/renderer/plugins/i18n.js index 7197a2b9..48b8cca1 100644 --- a/src/renderer/plugins/i18n.js +++ b/src/renderer/plugins/i18n.js @@ -14,8 +14,8 @@ import messages from '@/lang' Vue.use(VueI18n) const i18n = window.i18n = new VueI18n({ - locale: 'cns', - fallbackLocale: 'cns', + locale: 'zh-cn', + fallbackLocale: 'zh-cn', messages, }) diff --git a/src/renderer/store/state.js b/src/renderer/store/state.js index 38029713..b02421d3 100644 --- a/src/renderer/store/state.js +++ b/src/renderer/store/state.js @@ -3,6 +3,8 @@ import Store from 'electron-store' import { windowSizeList } from '../../common/config' import { version } from '../../../package.json' +import { rendererSend, NAMES } from '../../common/ipc' +import languageList from '@/lang/languages.json' window.electronStore_list = new Store({ name: 'playList', @@ -15,8 +17,30 @@ let settingVersion = electronStore_config.get('version') process.versions.app = version +// Set language automatically +if (!window.i18n.availableLocales.includes(setting.langId)) { + let langId = null + let locale = window.navigator.language.toLocaleLowerCase() + if (window.i18n.availableLocales.includes(locale)) { + langId = locale + } else { + for (const lang of languageList) { + if (lang.alternate == locale) { + langId = lang.locale + break + } + } + if (langId == null) langId = 'en-us' + } + setting.langId = langId + electronStore_config.set('setting', setting) + rendererSend(NAMES.mainWindow.set_app_setting, setting) + console.log('Set lang', setting.langId) +} + window.i18n.locale = setting.langId + export default { themes: [ {