From b5074cfe6fbdd0f440ee375c009db2466c54a315 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Tue, 23 Aug 2022 17:31:09 -0700 Subject: [PATCH] wip i18n editor can be accessed with: app.appRoute("lzedit") --- src/main/base/browserwindow.ts | 5 ++ src/renderer/less/pages.less | 16 ++++ src/renderer/main/app.js | 1 + src/renderer/main/components/i18n-editor.js | 83 +++++++++++++++++++++ 4 files changed, 105 insertions(+) create mode 100644 src/renderer/main/components/i18n-editor.js diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 42f48b1e..4bd5f5dd 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -120,6 +120,11 @@ export class BrowserWindow { "components/settings-plugins-github", ], appRoutes: [ + { + page: "lzedit", + component: ``, + condition: "$root.page == 'lzedit'", + }, { page: "library-recentlyadded", component: ``, diff --git a/src/renderer/less/pages.less b/src/renderer/less/pages.less index f3287bce..03428031 100644 --- a/src/renderer/less/pages.less +++ b/src/renderer/less/pages.less @@ -1480,6 +1480,22 @@ } } +.i18n-page { + textarea { + background: black; + color: #eee; + font-weight: bold; + font-size: 1em; + font-family: system-ui, 'Pretendard Variable'; + padding: 0.5em; + } + + .selectCol { + display: flex; + align-items: center; + } +} + // AudioLabs page .audiolabs-page { padding: 0px; diff --git a/src/renderer/main/app.js b/src/renderer/main/app.js index 1db74112..71d3b012 100644 --- a/src/renderer/main/app.js +++ b/src/renderer/main/app.js @@ -10,6 +10,7 @@ import { MusicKitTools } from "./musickittools.js"; import { spawnMica } from "./mica.js"; import { svgIcon } from "./components/svg-icon.js"; import { sidebarLibraryItem } from "./components/sidebar-library-item.js"; +import { i18nEditor } from "./components/i18n-editor.js"; // Define window objects window.app = app; diff --git a/src/renderer/main/components/i18n-editor.js b/src/renderer/main/components/i18n-editor.js new file mode 100644 index 00000000..c57d9bf3 --- /dev/null +++ b/src/renderer/main/components/i18n-editor.js @@ -0,0 +1,83 @@ +import { html } from "../html.js"; + +export const i18nEditor = Vue.component("i18n-editor", { + // language=HTML + template: html` +
+
+
+

i18n Editor

+
+
+ + +
+
+
+
+ +
+
+ `, + data() { + return { + listing: ipcRenderer.sendSync("get-i18n-listing"), + baseLz: ipcRenderer.sendSync("get-i18n", "en_US") + } + }, + methods: { + exportLz() { + bootbox.alert(``) + notyf.success("Copied to clipboard"); + navigator.clipboard.writeText(JSON.stringify(app.lz, true, ' ')).then((r) => console.debug("Copied to clipboard.")); + }, + getLanguages: function () { + let langs = this.$root.lzListing + let categories = { + "main": [], + "fun": [], + "unsorted": [] + } + // sort by category if category is undefined or empty put it in "unsorted" + for (let i = 0; i < langs.length; i++) { + if (langs[i].category === undefined || langs[i].category === "") { + categories.unsorted.push(langs[i]) + } else { + categories[langs[i].category].push(langs[i]) + } + } + // return + return categories + }, + } +});