diff --git a/package.json b/package.json index 2d48339..b999dc3 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "format-check": "prettier --check src/", "prepare": "husky", "build:prepare": "run-p build:prepare:optimize-png-worker", - "build:prepare:optimize-png-worker": "esbuild --bundle --minify --sourcemap --target=es2018 --platform=node --outfile=src/tools/favicon/utils/image/optimize-png.worker.js src/tools/favicon/utils/image/optimize-png.worker.raw.ts" + "build:prepare:optimize-png-worker": "esbuild --bundle --minify --sourcemap --target=es2018 --platform=node --outfile=src/tools/favicon/favicon-generator/utils/image/optimize-png.worker.js src/tools/favicon/favicon-generator/utils/image/optimize-png.worker.raw.ts" }, "dependencies": { "@faker-js/faker": "^9.0.3", @@ -49,6 +49,7 @@ "uuid": "^10.0.0", "validator": "^13.12.0", "vue": "^3.4.29", + "vue-i18n": "10", "vue-router": "^4.3.3", "webrtc-ips": "^0.2.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d87fd68..80b9970 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -89,6 +89,9 @@ importers: vue: specifier: ^3.4.29 version: 3.5.11(typescript@5.4.5) + vue-i18n: + specifier: '10' + version: 10.0.4(vue@3.5.11(typescript@5.4.5)) vue-router: specifier: ^4.3.3 version: 4.4.5(vue@3.5.11(typescript@5.4.5)) @@ -627,6 +630,18 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead + '@intlify/core-base@10.0.4': + resolution: {integrity: sha512-GG428DkrrWCMhxRMRQZjuS7zmSUzarYcaHJqG9VB8dXAxw4iQDoKVQ7ChJRB6ZtsCsX3Jse1PEUlHrJiyQrOTg==} + engines: {node: '>= 16'} + + '@intlify/message-compiler@10.0.4': + resolution: {integrity: sha512-AFbhEo10DP095/45EauinQJ5hJ3rJUmuuqltGguvc3WsvezZN+g8qNHLGWKu60FHQVizMrQY7VJ+zVlBXlQQkQ==} + engines: {node: '>= 16'} + + '@intlify/shared@10.0.4': + resolution: {integrity: sha512-ukFn0I01HsSgr3VYhYcvkTCLS7rGa0gw4A4AMpcy/A9xx/zRJy7PS2BElMXLwUazVFMAr5zuiTk3MQeoeGXaJg==} + engines: {node: '>= 16'} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -3048,6 +3063,12 @@ packages: peerDependencies: eslint: '>=6.0.0' + vue-i18n@10.0.4: + resolution: {integrity: sha512-1xkzVxqBLk2ZFOmeI+B5r1J7aD/WtNJ4j9k2mcFcQo5BnOmHBmD7z4/oZohh96AAaRZ4Q7mNQvxc9h+aT+Md3w==} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + vue-router@4.4.5: resolution: {integrity: sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==} peerDependencies: @@ -3553,6 +3574,18 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} + '@intlify/core-base@10.0.4': + dependencies: + '@intlify/message-compiler': 10.0.4 + '@intlify/shared': 10.0.4 + + '@intlify/message-compiler@10.0.4': + dependencies: + '@intlify/shared': 10.0.4 + source-map-js: 1.2.1 + + '@intlify/shared@10.0.4': {} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -6071,6 +6104,13 @@ snapshots: transitivePeerDependencies: - supports-color + vue-i18n@10.0.4(vue@3.5.11(typescript@5.4.5)): + dependencies: + '@intlify/core-base': 10.0.4 + '@intlify/shared': 10.0.4 + '@vue/devtools-api': 6.6.4 + vue: 3.5.11(typescript@5.4.5) + vue-router@4.4.5(vue@3.5.11(typescript@5.4.5)): dependencies: '@vue/devtools-api': 6.6.4 diff --git a/src/components/layouts/tool-view-template/ToolViewTemplate.vue b/src/components/layouts/tool-view-template/ToolViewTemplate.vue new file mode 100644 index 0000000..5516ca8 --- /dev/null +++ b/src/components/layouts/tool-view-template/ToolViewTemplate.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/components/layouts/tools-list-meta/ToolMetaItem.vue b/src/components/layouts/tools-list-meta/ToolMetaItem.vue new file mode 100644 index 0000000..78e981d --- /dev/null +++ b/src/components/layouts/tools-list-meta/ToolMetaItem.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/components/layouts/tools-list-meta/ToolsListMeta.vue b/src/components/layouts/tools-list-meta/ToolsListMeta.vue new file mode 100644 index 0000000..f13057f --- /dev/null +++ b/src/components/layouts/tools-list-meta/ToolsListMeta.vue @@ -0,0 +1,16 @@ + + + diff --git a/src/components/layouts/tools-list-meta/index.ts b/src/components/layouts/tools-list-meta/index.ts new file mode 100644 index 0000000..b988db7 --- /dev/null +++ b/src/components/layouts/tools-list-meta/index.ts @@ -0,0 +1 @@ +export { default as ToolsListMeta } from './ToolsListMeta.vue' diff --git a/src/composables/head/index.ts b/src/composables/head/index.ts index e11b569..3648a5c 100644 --- a/src/composables/head/index.ts +++ b/src/composables/head/index.ts @@ -1,2 +1,3 @@ export { useTitle } from './useTitle' export { useDescription } from './useDescription' +export { useHeadFromRouteMeta } from './useHeadFromRouteMeta' diff --git a/src/composables/head/useHeadFromRouteMeta.ts b/src/composables/head/useHeadFromRouteMeta.ts new file mode 100644 index 0000000..08654e2 --- /dev/null +++ b/src/composables/head/useHeadFromRouteMeta.ts @@ -0,0 +1,16 @@ +import { useRoute } from 'vue-router' +import { useI18n } from 'vue-i18n' +import { useTitle } from './useTitle' +import { useDescription } from './useDescription' + +export function useHeadFromRouteMeta() { + const route = useRoute() + const meta = route.meta + + const { t } = useI18n({ + messages: meta?.locales + }) + + useTitle(t('title')) + useDescription(t('description')) +} diff --git a/src/locales/index.ts b/src/locales/index.ts new file mode 100644 index 0000000..f550cc1 --- /dev/null +++ b/src/locales/index.ts @@ -0,0 +1,9 @@ +import { createI18n } from 'vue-i18n' + +const i18n = createI18n({ + locale: navigator.language, + fallbackLocale: 'en', + messages: {} +}) + +export default i18n diff --git a/src/locales/langs.ts b/src/locales/langs.ts new file mode 100644 index 0000000..2a0a291 --- /dev/null +++ b/src/locales/langs.ts @@ -0,0 +1,27 @@ +export const langs = [ + 'en', + 'zh', + 'zh-CN', + 'zh-TW', + 'zh-HK', + 'es', + 'fr', + 'de', + 'it', + 'ja', + 'ko', + 'ru', + 'pt', + 'ar', + 'hi', + 'tr', + 'nl', + 'sv', + 'pl', + 'vi', + 'th', + 'id', + 'he', + 'ms', + 'no' +] as const diff --git a/src/main.ts b/src/main.ts index b18cc1e..f4fef73 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,7 @@ import { createApp } from 'vue' import { createPinia } from 'pinia' import { createHead } from '@vueuse/head' +import i18n from './locales' import App from './App.vue' import router from './router' @@ -9,6 +10,7 @@ const app = createApp(App) app.use(createPinia()) app.use(createHead()) +app.use(i18n) app.use(router) app.mount('#app') diff --git a/src/router/index.ts b/src/router/index.ts index 466fd9e..ec7fc21 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -10,6 +10,11 @@ const router = createRouter({ name: 'home', component: HomeView }, + { + path: '/tags/:tag', + name: 'tag', + component: () => import('../views/TagView.vue') + }, ...toolsRoutes ] }) diff --git a/src/router/router-meta.d.ts b/src/router/router-meta.d.ts new file mode 100644 index 0000000..2007d20 --- /dev/null +++ b/src/router/router-meta.d.ts @@ -0,0 +1,17 @@ +// This can be directly added to any of your `.ts` files like `router.ts` +// It can also be added to a `.d.ts` file. Make sure it's included in +// project's tsconfig.json "files" +import 'vue-router' +import type { Component } from 'vue' + +// To ensure it is treated as a module, add at least one `export` statement +export {} + +declare module 'vue-router' { + interface RouteMeta { + locales?: Record> + icon?: Component + tags?: string[] + hidden?: boolean + } +} diff --git a/src/tools/favicon/components/tools/favicon-generator/FaviconGenerator.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/FaviconGenerator.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/FaviconGenerator.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/FaviconGenerator.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/ImageUpload.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/ImageUpload.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/ImageUpload.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/ImageUpload.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/ChromeTabDarkNote.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/ChromeTabDarkNote.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/ChromeTabDarkNote.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/ChromeTabDarkNote.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/ChromeTabPreview.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/ChromeTabPreview.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/ChromeTabPreview.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/ChromeTabPreview.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowser.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowser.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowser.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowser.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserImage.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserImage.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserImage.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserImage.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserPreview.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserPreview.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserPreview.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserPreview.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettings.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettings.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettings.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettings.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDedicatedImage.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDedicatedImage.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDedicatedImage.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDedicatedImage.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDisplay.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDisplay.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDisplay.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDisplay.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDownload.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDownload.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDownload.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/DesktopBrowserSettingsDownload.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/GoogleSearchResult-dark.css b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/GoogleSearchResult-dark.css similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/GoogleSearchResult-dark.css rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/GoogleSearchResult-dark.css diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/GoogleSearchResult.css b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/GoogleSearchResult.css similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/GoogleSearchResult.css rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/GoogleSearchResult.css diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/GoogleSearchResult.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/GoogleSearchResult.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/GoogleSearchResult.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/GoogleSearchResult.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/windows-chrome-tab-dark.webp b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/windows-chrome-tab-dark.webp similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/windows-chrome-tab-dark.webp rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/windows-chrome-tab-dark.webp diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/windows-chrome-tab-text.webp b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/windows-chrome-tab-text.webp similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/windows-chrome-tab-text.webp rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/windows-chrome-tab-text.webp diff --git a/src/tools/favicon/components/tools/favicon-generator/desktop-browser/windows-chrome-tab.webp b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/windows-chrome-tab.webp similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/desktop-browser/windows-chrome-tab.webp rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/desktop-browser/windows-chrome-tab.webp diff --git a/src/tools/favicon/components/tools/favicon-generator/general-info/GeneralInfo.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/general-info/GeneralInfo.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/general-info/GeneralInfo.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/general-info/GeneralInfo.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/generate-assets/GenerateAssets.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/generate-assets/GenerateAssets.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/generate-assets/GenerateAssets.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/generate-assets/GenerateAssets.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/generate-assets/HTMLCode.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/generate-assets/HTMLCode.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/generate-assets/HTMLCode.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/generate-assets/HTMLCode.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/generate-assets/SiteWebManifest.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/generate-assets/SiteWebManifest.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/generate-assets/SiteWebManifest.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/generate-assets/SiteWebManifest.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClip.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClip.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClip.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClip.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClipPreview.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClipPreview.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClipPreview.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClipPreview.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettings.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettings.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettings.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettings.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDedicatedImage.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDedicatedImage.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDedicatedImage.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDedicatedImage.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDisplay.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDisplay.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDisplay.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDisplay.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDownload.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDownload.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDownload.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/iOSWebClipSettingsDownload.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/ios-web-clip/ios-web-clip-preview-background.webp b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/ios-web-clip-preview-background.webp similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/ios-web-clip/ios-web-clip-preview-background.webp rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/ios-web-clip/ios-web-clip-preview-background.webp diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/PWA.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/PWA.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/PWA.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/PWA.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/any/PWAPreview.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWAPreview.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/any/PWAPreview.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWAPreview.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/any/PWAPreviewWindowsTaskbar.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWAPreviewWindowsTaskbar.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/any/PWAPreviewWindowsTaskbar.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWAPreviewWindowsTaskbar.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/any/PWASettings.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWASettings.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/any/PWASettings.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWASettings.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/any/PWASettingsDedicatedImage.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWASettingsDedicatedImage.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/any/PWASettingsDedicatedImage.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWASettingsDedicatedImage.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/any/PWASettingsDisplay.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWASettingsDisplay.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/any/PWASettingsDisplay.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWASettingsDisplay.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/any/PWASettingsDownload.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWASettingsDownload.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/any/PWASettingsDownload.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/PWASettingsDownload.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/any/windows-taskbar.webp b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/windows-taskbar.webp similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/any/windows-taskbar.webp rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/any/windows-taskbar.webp diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAMaskablePreview.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAMaskablePreview.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAMaskablePreview.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAMaskablePreview.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettings.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettings.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettings.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettings.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDedicatedImage.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDedicatedImage.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDedicatedImage.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDedicatedImage.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDisplay.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDisplay.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDisplay.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDisplay.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDownload.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDownload.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDownload.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAMaskableSettingsDownload.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAPreviewAndroid.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAPreviewAndroid.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/maskable/PWAPreviewAndroid.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/PWAPreviewAndroid.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/pwa/maskable/android-launcher.webp b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/android-launcher.webp similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/pwa/maskable/android-launcher.webp rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/pwa/maskable/android-launcher.webp diff --git a/src/tools/favicon/components/tools/favicon-generator/select-file/SelectFile.vue b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/select-file/SelectFile.vue similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/select-file/SelectFile.vue rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/select-file/SelectFile.vue diff --git a/src/tools/favicon/components/tools/favicon-generator/select-file/demo.svg b/src/tools/favicon/favicon-generator/components/tools/favicon-generator/select-file/demo.svg similarity index 100% rename from src/tools/favicon/components/tools/favicon-generator/select-file/demo.svg rename to src/tools/favicon/favicon-generator/components/tools/favicon-generator/select-file/demo.svg diff --git a/src/tools/favicon/favicon-generator/index.ts b/src/tools/favicon/favicon-generator/index.ts new file mode 100644 index 0000000..752e10b --- /dev/null +++ b/src/tools/favicon/favicon-generator/index.ts @@ -0,0 +1,14 @@ +import type { RouteRecordRaw } from 'vue-router' +import { messages } from './locales' +import { Icons20Regular } from '@vicons/fluent' + +export const route: RouteRecordRaw = { + path: '/tools/favicon-generator', + name: 'tools-favicon-generator', + component: () => import('./views/FaviconGeneratorView.vue'), + meta: { + locales: messages, + icon: Icons20Regular, + tags: ['favicon', 'icon', 'image'] + } +} diff --git a/src/tools/favicon/favicon-generator/locales.ts b/src/tools/favicon/favicon-generator/locales.ts new file mode 100644 index 0000000..aeabaaa --- /dev/null +++ b/src/tools/favicon/favicon-generator/locales.ts @@ -0,0 +1,127 @@ +export const messages = { + en: { + title: 'Favicon Generator', + description: + 'Create favicons and app icons for various platforms including iOS, Android, and desktop browsers. Generate assets for Progressive Web Apps (PWA) and web manifests. Our browser-based tool ensures your files remain private and are never uploaded to any server.' + }, + zh: { + title: 'Favicon 生成器', + description: + '为 iOS、Android 和桌面浏览器等各种平台创建 favicon 和应用图标。生成渐进式 Web 应用(PWA)和 Web 清单的资源。我们的浏览器工具确保您的文件保持私密,永远不会上传到任何服务器。' + }, + 'zh-CN': { + title: 'Favicon 生成器', + description: + '为 iOS、Android 和桌面浏览器等各种平台创建 favicon 和应用图标。生成渐进式 Web 应用(PWA)和 Web 清单的资源。我们的浏览器工具确保您的文件保持私密,永远不会上传到任何服务器。' + }, + 'zh-TW': { + title: 'Favicon 產生器', + description: + '為 iOS、Android 和桌面瀏覽器等各種平台創建 favicon 和應用圖示。生成漸進式 Web 應用(PWA)和 Web 清單的資源。我們的瀏覽器工具確保您的檔案保持私密,永遠不會上傳到任何伺服器。' + }, + 'zh-HK': { + title: 'Favicon 產生器', + description: + '為 iOS、Android 和桌面瀏覽器等各種平台創建 favicon 和應用圖示。生成漸進式 Web 應用(PWA)和 Web 清單的資源。我們的瀏覽器工具確保您的檔案保持私密,永遠不會上傳到任何伺服器。' + }, + es: { + title: 'Generador de Favicon', + description: + 'Cree favicons e iconos de aplicaciones para varias plataformas, incluyendo iOS, Android y navegadores de escritorio. Genere recursos para Aplicaciones Web Progresivas (PWA) y manifiestos web. Nuestra herramienta basada en el navegador garantiza que sus archivos permanezcan privados y nunca se suban a ningún servidor.' + }, + fr: { + title: 'Générateur de Favicon', + description: + "Créez des favicons et des icônes d'application pour diverses plateformes, y compris iOS, Android et les navigateurs de bureau. Générez des ressources pour les Applications Web Progressives (PWA) et les manifestes web. Notre outil basé sur le navigateur garantit que vos fichiers restent privés et ne sont jamais téléchargés sur un serveur." + }, + de: { + title: 'Favicon-Generator', + description: + 'Erstellen Sie Favicons und App-Icons für verschiedene Plattformen, einschließlich iOS, Android und Desktop-Browser. Generieren Sie Assets für Progressive Web Apps (PWA) und Web-Manifeste. Unser browserbasiertes Tool stellt sicher, dass Ihre Dateien privat bleiben und nie auf einen Server hochgeladen werden.' + }, + it: { + title: 'Generatore di Favicon', + description: + 'Crea favicon e icone per app per varie piattaforme, inclusi iOS, Android e browser desktop. Genera risorse per Progressive Web App (PWA) e manifesti web. Il nostro strumento basato sul browser garantisce che i tuoi file rimangano privati e non vengano mai caricati su alcun server.' + }, + ja: { + title: 'Favicon ジェネレーター', + description: + 'iOS、Android、デスクトップブラウザなど、さまざまなプラットフォーム用の favicon とアプリアイコンを作成します。プログレッシブ Web アプリ(PWA)と Web マニフェスト用のアセットを生成します。ブラウザベースのツールで、ファイルのプライバシーを保証し、サーバーにアップロードされることはありません。' + }, + ko: { + title: 'Favicon 생성기', + description: + 'iOS, Android 및 데스크톱 브라우저를 포함한 다양한 플랫폼용 favicon 및 앱 아이콘을 만듭니다. 프로그레시브 웹 앱(PWA) 및 웹 매니페스트용 에셋을 생성합니다. 브라우저 기반 도구로 파일의 개인 정보를 보호하고 서버에 업로드되지 않도록 보장합니다.' + }, + ru: { + title: 'Генератор Favicon', + description: + 'Создавайте favicon и иконки приложений для различных платформ, включая iOS, Android и настольные браузеры. Генерируйте ресурсы для прогрессивных веб-приложений (PWA) и веб-манифестов. Наш инструмент на основе браузера гарантирует, что ваши файлы останутся конфиденциальными и никогда не будут загружены на какой-либо сервер.' + }, + pt: { + title: 'Gerador de Favicon', + description: + 'Crie favicons e ícones de aplicativos para várias plataformas, incluindo iOS, Android e navegadores desktop. Gere recursos para Progressive Web Apps (PWA) e manifestos web. Nossa ferramenta baseada no navegador garante que seus arquivos permaneçam privados e nunca sejam carregados em nenhum servidor.' + }, + ar: { + title: 'مولد Favicon', + description: + 'قم بإنشاء favicon وأيقونات التطبيقات لمنصات مختلفة بما في ذلك iOS وAndroid ومتصفحات سطح المكتب. قم بإنشاء موارد لتطبيقات الويب التقدمية (PWA) وملفات تعريف الويب. تضمن أداتنا المستندة إلى المتصفح بقاء ملفاتك خاصة ولا يتم تحميلها أبدًا على أي خادم.' + }, + hi: { + title: 'Favicon जनरेटर', + description: + 'iOS, Android और डेस्कटॉप ब्राउज़र सहित विभिन्न प्लेटफ़ॉर्म के लिए favicon और ऐप आइकन बनाएं। प्रोग्रेसिव वेब ऐप्स (PWA) और वेब मैनिफेस्ट के लिए एसेट्स जनरेट करें। हमारा ब्राउज़र-आधारित टूल सुनिश्चित करता है कि आपकी फ़ाइलें निजी रहें और कभी भी किसी सर्वर पर अपलोड न हों।' + }, + tr: { + title: 'Favicon Oluşturucu', + description: + 'iOS, Android ve masaüstü tarayıcıları dahil olmak üzere çeşitli platformlar için favicon ve uygulama simgeleri oluşturun. Aşamalı Web Uygulamaları (PWA) ve web manifestoları için varlıklar oluşturun. Tarayıcı tabanlı aracımız, dosyalarınızın gizli kalmasını ve asla herhangi bir sunucuya yüklenmemesini sağlar.' + }, + nl: { + title: 'Favicon Generator', + description: + 'Maak favicons en app-pictogrammen voor verschillende platforms, waaronder iOS, Android en desktopbrowsers. Genereer middelen voor Progressive Web Apps (PWA) en webmanifesten. Onze op de browser gebaseerde tool zorgt ervoor dat uw bestanden privé blijven en nooit naar een server worden geüpload.' + }, + sv: { + title: 'Favicon-generator', + description: + 'Skapa favicons och app-ikoner för olika plattformar inklusive iOS, Android och skrivbordsbrowsers. Generera resurser för Progressive Web Apps (PWA) och webbmanifest. Vårt webbläsarbaserade verktyg säkerställer att dina filer förblir privata och aldrig laddas upp till någon server.' + }, + pl: { + title: 'Generator Favicon', + description: + 'Twórz favicony i ikony aplikacji dla różnych platform, w tym iOS, Android i przeglądarek desktopowych. Generuj zasoby dla Progressive Web Apps (PWA) i manifestów internetowych. Nasze narzędzie oparte na przeglądarce zapewnia, że Twoje pliki pozostają prywatne i nigdy nie są przesyłane na żaden serwer.' + }, + vi: { + title: 'Trình tạo Favicon', + description: + 'Tạo favicon và biểu tượng ứng dụng cho các nền tảng khác nhau bao gồm iOS, Android và trình duyệt máy tính để bàn. Tạo tài nguyên cho Ứng dụng Web Tiến bộ (PWA) và tệp kê khai web. Công cụ dựa trên trình duyệt của chúng tôi đảm bảo các tệp của bạn vẫn riêng tư và không bao giờ được tải lên bất kỳ máy chủ nào.' + }, + th: { + title: 'เครื่องมือสร้าง Favicon', + description: + 'สร้าง favicon และไอคอนแอปสำหรับแพลตฟอร์มต่างๆ รวมถึง iOS, Android และเบราว์เซอร์บนเดสก์ท็อป สร้างทรัพยากรสำหรับแอปพลิเคชันเว็บแบบโปรเกรสซีฟ (PWA) และไฟล์ประกาศเว็บ เครื่องมือที่ทำงานบนเบราว์เซอร์ของเราช่วยให้มั่นใจว่าไฟล์ของคุณยังคงเป็นส่วนตัวและไม่มีการอัปโหลดไปยังเซิร์ฟเวอร์ใดๆ' + }, + id: { + title: 'Pembuat Favicon', + description: + 'Buat favicon dan ikon aplikasi untuk berbagai platform termasuk iOS, Android, dan browser desktop. Hasilkan aset untuk Progressive Web Apps (PWA) dan manifes web. Alat berbasis browser kami memastikan file Anda tetap pribadi dan tidak pernah diunggah ke server mana pun.' + }, + he: { + title: 'יוצר Favicon', + description: + 'צור favicon וסמלי אפליקציות עבור פלטפורמות שונות כולל iOS, Android ודפדפני שולחן עבודה. צור נכסים עבור אפליקציות ווב מתקדמות (PWA) ומניפסטים של ווב. הכלי שלנו המבוסס על דפדפן מבטיח שהקבצים שלך נשארים פרטיים ולעולם לא מועלים לשרת כלשהו.' + }, + ms: { + title: 'Penjana Favicon', + description: + 'Cipta favicon dan ikon aplikasi untuk pelbagai platform termasuk iOS, Android, dan penyemak imbas desktop. Jana aset untuk Aplikasi Web Progresif (PWA) dan manifes web. Alat berasaskan penyemak imbas kami memastikan fail anda kekal peribadi dan tidak pernah dimuat naik ke mana-mana pelayan.' + }, + no: { + title: 'Favicon-generator', + description: + 'Lag favicons og app-ikoner for ulike plattformer, inkludert iOS, Android og desktop-nettlesere. Generer ressurser for Progressive Web Apps (PWA) og web-manifester. Vårt nettleserbaserte verktøy sikrer at filene dine forblir private og aldri lastes opp til noen server.' + } +} diff --git a/src/tools/favicon/utils/favicon-generator/desktop-browser/generate-assets.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/generate-assets.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/desktop-browser/generate-assets.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/generate-assets.ts diff --git a/src/tools/favicon/utils/favicon-generator/desktop-browser/generate-favicon-ico.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/generate-favicon-ico.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/desktop-browser/generate-favicon-ico.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/generate-favicon-ico.ts diff --git a/src/tools/favicon/utils/favicon-generator/desktop-browser/generate-favicon-png.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/generate-favicon-png.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/desktop-browser/generate-favicon-png.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/generate-favicon-png.ts diff --git a/src/tools/favicon/utils/favicon-generator/desktop-browser/generate-favicon-svg.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/generate-favicon-svg.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/desktop-browser/generate-favicon-svg.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/generate-favicon-svg.ts diff --git a/src/tools/favicon/utils/favicon-generator/desktop-browser/get-html-code.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/get-html-code.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/desktop-browser/get-html-code.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/get-html-code.ts diff --git a/src/tools/favicon/utils/favicon-generator/desktop-browser/index.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/index.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/desktop-browser/index.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/index.ts diff --git a/src/tools/favicon/utils/favicon-generator/desktop-browser/types.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/types.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/desktop-browser/types.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/desktop-browser/types.ts diff --git a/src/tools/favicon/utils/favicon-generator/general-info/generate-assets.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/general-info/generate-assets.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/general-info/generate-assets.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/general-info/generate-assets.ts diff --git a/src/tools/favicon/utils/favicon-generator/general-info/generate-manifest.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/general-info/generate-manifest.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/general-info/generate-manifest.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/general-info/generate-manifest.ts diff --git a/src/tools/favicon/utils/favicon-generator/general-info/index.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/general-info/index.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/general-info/index.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/general-info/index.ts diff --git a/src/tools/favicon/utils/favicon-generator/general-info/normalize-path.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/general-info/normalize-path.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/general-info/normalize-path.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/general-info/normalize-path.ts diff --git a/src/tools/favicon/utils/favicon-generator/general-info/types.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/general-info/types.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/general-info/types.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/general-info/types.ts diff --git a/src/tools/favicon/utils/favicon-generator/generate-assets/generate-assets.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/generate-assets/generate-assets.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/generate-assets/generate-assets.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/generate-assets/generate-assets.ts diff --git a/src/tools/favicon/utils/favicon-generator/generate-assets/index.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/generate-assets/index.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/generate-assets/index.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/generate-assets/index.ts diff --git a/src/tools/favicon/utils/favicon-generator/ios-web-clip/generate-assets.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/ios-web-clip/generate-assets.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/ios-web-clip/generate-assets.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/ios-web-clip/generate-assets.ts diff --git a/src/tools/favicon/utils/favicon-generator/ios-web-clip/generate-output.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/ios-web-clip/generate-output.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/ios-web-clip/generate-output.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/ios-web-clip/generate-output.ts diff --git a/src/tools/favicon/utils/favicon-generator/ios-web-clip/get-html-code.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/ios-web-clip/get-html-code.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/ios-web-clip/get-html-code.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/ios-web-clip/get-html-code.ts diff --git a/src/tools/favicon/utils/favicon-generator/ios-web-clip/index.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/ios-web-clip/index.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/ios-web-clip/index.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/ios-web-clip/index.ts diff --git a/src/tools/favicon/utils/favicon-generator/ios-web-clip/types.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/ios-web-clip/types.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/ios-web-clip/types.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/ios-web-clip/types.ts diff --git a/src/tools/favicon/utils/favicon-generator/pwa/generate-assets.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/pwa/generate-assets.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/pwa/generate-assets.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/pwa/generate-assets.ts diff --git a/src/tools/favicon/utils/favicon-generator/pwa/generate-pwa-maskable-png.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/pwa/generate-pwa-maskable-png.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/pwa/generate-pwa-maskable-png.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/pwa/generate-pwa-maskable-png.ts diff --git a/src/tools/favicon/utils/favicon-generator/pwa/generate-pwa-png.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/pwa/generate-pwa-png.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/pwa/generate-pwa-png.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/pwa/generate-pwa-png.ts diff --git a/src/tools/favicon/utils/favicon-generator/pwa/index.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/pwa/index.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/pwa/index.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/pwa/index.ts diff --git a/src/tools/favicon/utils/favicon-generator/pwa/types.ts b/src/tools/favicon/favicon-generator/utils/favicon-generator/pwa/types.ts similarity index 100% rename from src/tools/favicon/utils/favicon-generator/pwa/types.ts rename to src/tools/favicon/favicon-generator/utils/favicon-generator/pwa/types.ts diff --git a/src/tools/favicon/utils/image/.gitignore b/src/tools/favicon/favicon-generator/utils/image/.gitignore similarity index 100% rename from src/tools/favicon/utils/image/.gitignore rename to src/tools/favicon/favicon-generator/utils/image/.gitignore diff --git a/src/tools/favicon/utils/image/get-image-size.ts b/src/tools/favicon/favicon-generator/utils/image/get-image-size.ts similarity index 100% rename from src/tools/favicon/utils/image/get-image-size.ts rename to src/tools/favicon/favicon-generator/utils/image/get-image-size.ts diff --git a/src/tools/favicon/utils/image/optimize-png.ts b/src/tools/favicon/favicon-generator/utils/image/optimize-png.ts similarity index 100% rename from src/tools/favicon/utils/image/optimize-png.ts rename to src/tools/favicon/favicon-generator/utils/image/optimize-png.ts diff --git a/src/tools/favicon/utils/image/optimize-png.worker.raw.ts b/src/tools/favicon/favicon-generator/utils/image/optimize-png.worker.raw.ts similarity index 100% rename from src/tools/favicon/utils/image/optimize-png.worker.raw.ts rename to src/tools/favicon/favicon-generator/utils/image/optimize-png.worker.raw.ts diff --git a/src/tools/favicon/utils/image/preprocess-image.ts b/src/tools/favicon/favicon-generator/utils/image/preprocess-image.ts similarity index 100% rename from src/tools/favicon/utils/image/preprocess-image.ts rename to src/tools/favicon/favicon-generator/utils/image/preprocess-image.ts diff --git a/src/tools/favicon/utils/packages/oxipng/index.ts b/src/tools/favicon/favicon-generator/utils/packages/oxipng/index.ts similarity index 100% rename from src/tools/favicon/utils/packages/oxipng/index.ts rename to src/tools/favicon/favicon-generator/utils/packages/oxipng/index.ts diff --git a/src/tools/favicon/utils/packages/png2icojs/index.ts b/src/tools/favicon/favicon-generator/utils/packages/png2icojs/index.ts similarity index 100% rename from src/tools/favicon/utils/packages/png2icojs/index.ts rename to src/tools/favicon/favicon-generator/utils/packages/png2icojs/index.ts diff --git a/src/tools/favicon/favicon-generator/views/FaviconGeneratorView.vue b/src/tools/favicon/favicon-generator/views/FaviconGeneratorView.vue new file mode 100644 index 0000000..f903aef --- /dev/null +++ b/src/tools/favicon/favicon-generator/views/FaviconGeneratorView.vue @@ -0,0 +1,10 @@ + + + diff --git a/src/tools/favicon/index.ts b/src/tools/favicon/index.ts new file mode 100644 index 0000000..329b27c --- /dev/null +++ b/src/tools/favicon/index.ts @@ -0,0 +1,4 @@ +import type { RouteRecordRaw } from 'vue-router' +import { route as faviconGeneratorRoute } from './favicon-generator' + +export const routes: RouteRecordRaw[] = [faviconGeneratorRoute] diff --git a/src/tools/favicon/routes.ts b/src/tools/favicon/routes.ts deleted file mode 100644 index 1af4347..0000000 --- a/src/tools/favicon/routes.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router' - -const prefix = '/tools/favicon' - -export const routes: RouteRecordRaw[] = [ - { - path: prefix, - name: 'tools-favicon', - component: () => import('./views/FaviconHomeView.vue') - }, - { - path: prefix + '/favicon-generator', - name: 'tools-favicon-favicon-generator', - component: () => import('./views/FaviconGeneratorView.vue') - } -] diff --git a/src/tools/favicon/views/FaviconGeneratorView.vue b/src/tools/favicon/views/FaviconGeneratorView.vue deleted file mode 100644 index 6828f50..0000000 --- a/src/tools/favicon/views/FaviconGeneratorView.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/src/tools/favicon/views/FaviconHomeView.vue b/src/tools/favicon/views/FaviconHomeView.vue deleted file mode 100644 index 7a7f9d0..0000000 --- a/src/tools/favicon/views/FaviconHomeView.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/src/tools/network/components/tools/cidr-parse/CIDRParseResult.vue b/src/tools/network/components/tools/cidr-parse/CIDRParseResult.vue index 9449d8a..de6a3ba 100644 --- a/src/tools/network/components/tools/cidr-parse/CIDRParseResult.vue +++ b/src/tools/network/components/tools/cidr-parse/CIDRParseResult.vue @@ -9,7 +9,7 @@ > IPv{{ parsed.version }} - + {{ startIP }} @@ -17,7 +17,7 @@ {{ startIPInt }} - + {{ endIP }} diff --git a/src/tools/network/components/tools/dns-lookup/result/DNSResultData.vue b/src/tools/network/components/tools/dns-lookup/result/DNSResultData.vue index c7e61b1..1df584b 100644 --- a/src/tools/network/components/tools/dns-lookup/result/DNSResultData.vue +++ b/src/tools/network/components/tools/dns-lookup/result/DNSResultData.vue @@ -1,7 +1,7 @@ diff --git a/src/tools/network/views/IPRangeToCIDRView.vue b/src/tools/network/views/IPRangeToCIDRView.vue index 99a39da..ff8e179 100644 --- a/src/tools/network/views/IPRangeToCIDRView.vue +++ b/src/tools/network/views/IPRangeToCIDRView.vue @@ -1,36 +1,10 @@ diff --git a/src/tools/network/views/MACToIPv6LinkLocalView.vue b/src/tools/network/views/MACToIPv6LinkLocalView.vue index 2192439..f5f4e04 100644 --- a/src/tools/network/views/MACToIPv6LinkLocalView.vue +++ b/src/tools/network/views/MACToIPv6LinkLocalView.vue @@ -1,31 +1,10 @@ diff --git a/src/tools/network/views/MyIPView.vue b/src/tools/network/views/MyIPView.vue index 747bab1..1242dfd 100644 --- a/src/tools/network/views/MyIPView.vue +++ b/src/tools/network/views/MyIPView.vue @@ -1,36 +1,10 @@ diff --git a/src/tools/network/views/NetworkHomeView.vue b/src/tools/network/views/NetworkHomeView.vue index eed7c94..ee944bc 100644 --- a/src/tools/network/views/NetworkHomeView.vue +++ b/src/tools/network/views/NetworkHomeView.vue @@ -1,13 +1,10 @@ diff --git a/src/tools/network/views/PunycodeToolView.vue b/src/tools/network/views/PunycodeToolView.vue index ac803d2..d73060a 100644 --- a/src/tools/network/views/PunycodeToolView.vue +++ b/src/tools/network/views/PunycodeToolView.vue @@ -1,17 +1,10 @@ diff --git a/src/tools/network/views/ReverseIPLookupView.vue b/src/tools/network/views/ReverseIPLookupView.vue index d7cd383..f8a0ed6 100644 --- a/src/tools/network/views/ReverseIPLookupView.vue +++ b/src/tools/network/views/ReverseIPLookupView.vue @@ -1,17 +1,10 @@ diff --git a/src/tools/network/views/UDPServersView.vue b/src/tools/network/views/UDPServersView.vue index fcdc226..c043527 100644 --- a/src/tools/network/views/UDPServersView.vue +++ b/src/tools/network/views/UDPServersView.vue @@ -1,7 +1,5 @@ diff --git a/src/tools/pdf/index.ts b/src/tools/pdf/index.ts new file mode 100644 index 0000000..fc62fb0 --- /dev/null +++ b/src/tools/pdf/index.ts @@ -0,0 +1,4 @@ +import type { RouteRecordRaw } from 'vue-router' +import { route as removePdfOwnerPasswordRoute } from './remove-pdf-owner-password' + +export const routes: RouteRecordRaw[] = [removePdfOwnerPasswordRoute] diff --git a/src/tools/pdf/views/RemoveOwnerPasswordView.vue b/src/tools/pdf/remove-pdf-owner-password/RemoveOwnerPasswordView.vue similarity index 73% rename from src/tools/pdf/views/RemoveOwnerPasswordView.vue rename to src/tools/pdf/remove-pdf-owner-password/RemoveOwnerPasswordView.vue index 2449521..79cd733 100644 --- a/src/tools/pdf/views/RemoveOwnerPasswordView.vue +++ b/src/tools/pdf/remove-pdf-owner-password/RemoveOwnerPasswordView.vue @@ -1,8 +1,5 @@ diff --git a/src/tools/routes.ts b/src/tools/routes.ts index eb3b577..94cfb0b 100644 --- a/src/tools/routes.ts +++ b/src/tools/routes.ts @@ -1,8 +1,8 @@ import type { RouteRecordRaw } from 'vue-router' import { routes as uuidRoutes } from './uuid/routes' -import { routes as pdfRoutes } from './pdf/routes' -import { routes as faviconRoutes } from './favicon/routes' import { routes as networkRoutes } from './network/routes' +import { routes as pdfRoutes } from './pdf' +import { routes as faviconRoutes } from './favicon' export const routes: RouteRecordRaw[] = [ { diff --git a/src/tools/uuid/views/BulkUUIDV1View.vue b/src/tools/uuid/views/BulkUUIDV1View.vue index 45cb2d8..5bf093b 100644 --- a/src/tools/uuid/views/BulkUUIDV1View.vue +++ b/src/tools/uuid/views/BulkUUIDV1View.vue @@ -1,6 +1,5 @@ + diff --git a/src/views/TagView.vue b/src/views/TagView.vue new file mode 100644 index 0000000..cc33c13 --- /dev/null +++ b/src/views/TagView.vue @@ -0,0 +1,23 @@ + + +