feat: add navbar + i8n

This commit is contained in:
limes.pink 2025-04-13 20:55:49 +02:00
parent c78eaff1e1
commit 7b37a40b0d
51 changed files with 2086 additions and 3 deletions

3
i18n.config.ts Normal file
View File

@ -0,0 +1,3 @@
export default {
fallbackLocale: 'en-US'
};

View File

@ -7,12 +7,79 @@ export default defineNuxtConfig({
'@nuxt/eslint',
'@nuxt/fonts',
'@nuxt/icon',
'@nuxt/content'
'@nuxt/content',
'@nuxtjs/i18n'
],
eslint: {
config: {
standalone: false
}
},
css: ['~/assets/css/main.css'],
fonts: {
defaults: {
weights: [400, 700],
styles: ['normal', 'italic']
}
},
i18n: {
compilation: {
strictMessage: false
},
restructureDir: 'src',
strategy: 'no_prefix',
defaultLocale: 'en-US',
vueI18n: '../i18n.config.ts',
locales: [
{ code: 'ar-AR', name: 'العربية', file: 'ar_AR.json' },
{ code: 'ast', name: 'Asturianu', file: 'ast.json' },
{ code: 'be-BY', name: 'Беларуская', file: 'be_BY.json' },
{ code: 'ca-ES', name: 'Català', file: 'ca_ES.json' },
{ code: 'cs-CZ', name: 'Čeština', file: 'cs_CZ.json' },
{ code: 'cy-GB', name: 'Cymraeg', file: 'cy_GB.json' },
{ code: 'da-DK', name: 'Dansk', file: 'da_DK.json' },
{ code: 'de-DE', name: 'Deutsch', file: 'de_DE.json' },
{ code: 'el-GR', name: 'Ελληνικά', file: 'el_GR.json' },
{ code: 'en-GB', name: 'English (United Kingdom)', file: 'en_GB.json' },
{ code: 'en-US', name: 'English (United States)', file: 'en_US.json' },
{ code: 'en@uwu', name: 'English (lolcat)', file: 'en@uwu.json' },
{ code: 'eo-XX', name: 'Esperanto', file: 'eo_XX.json' },
{ code: 'es-ES', name: 'Español', file: 'es_ES.json' },
{ code: 'fi-FI', name: 'Suomi', file: 'fi_FI.json' },
{ code: 'fr-CA', name: 'Français (Canada)', file: 'fr_CA.json' },
{ code: 'fr-FR', name: 'Français', file: 'fr_FR.json' },
{ code: 'ga-IE', name: 'Gaeilge', file: 'ga_IE.json' },
{ code: 'gd-GB', name: 'Gàidhlig', file: 'gd_GB.json' },
{ code: 'gl-ES', name: 'Galego', file: 'gl_ES.json' },
{ code: 'hr-HR', name: 'Hrvatski', file: 'hr_HR.json' },
{ code: 'hu-HU', name: 'Magyar', file: 'hu_HU.json' },
{ code: 'id-ID', name: 'Bahasa Indonesia', file: 'id_ID.json' },
{ code: 'it-IT', name: 'Italiano', file: 'it_IT.json' },
{ code: 'ja-JP', name: '日本語', file: 'ja_JP.json' },
{ code: 'kk-KZ', name: 'Қазақша', file: 'kk_KZ.json' },
{ code: 'ko-KR', name: '한국어', file: 'ko_KR.json' },
{ code: 'lt-LT', name: 'Lietuvių', file: 'lt_LT.json' },
{ code: 'lv-LV', name: 'Latviešu', file: 'lv_LV.json' },
{ code: 'nb-NO', name: 'Norsk bokmål', file: 'nb_NO.json' },
{ code: 'nl-NL', name: 'Nederlands', file: 'nl_NL.json' },
{ code: 'pl-PL', name: 'Polski', file: 'pl_PL.json' },
{ code: 'pt-BR', name: 'Português (Brasil)', file: 'pt_BR.json' },
{ code: 'pt-PT', name: 'Português (Portugal)', file: 'pt_PT.json' },
{ code: 'ro-RO', name: 'Română', file: 'ro_RO.json' },
{ code: 'ru-RU', name: 'Русский', file: 'ru_RU.json' },
{ code: 'sk-SK', name: 'Slovenčina', file: 'sk_SK.json' },
{ code: 'sr-RS', name: 'Српски', file: 'sr_RS.json' },
{ code: 'sv-SE', name: 'Svenska', file: 'sv_SE.json' },
{ code: 'tr-TR', name: 'Türkçe', file: 'tr_TR.json' },
{ code: 'uk-UA', name: 'Українська', file: 'uk_UA.json' },
{ code: 'tr-TR', name: 'Türkçe', file: 'tr_TR.json' },
{ code: 'uk-UA', name: 'Українська', file: 'uk_UA.json' },
{ code: 'zh-CN', name: '中文 (简体)', file: 'zh_CN.json' },
{ code: 'zh-Hant', name: '中文 (繁體)', file: 'zh_Hant.json' }
]
}
});

674
package-lock.json generated
View File

@ -13,6 +13,7 @@
"@nuxt/eslint": "^1.3.0",
"@nuxt/fonts": "^0.11.1",
"@nuxt/icon": "^1.11.0",
"@nuxtjs/i18n": "^9.5.3",
"eslint": "^9.24.0",
"nuxt": "^3.16.2",
"vue": "^3.5.13",
@ -1369,6 +1370,262 @@
"vue": ">=3"
}
},
"node_modules/@intlify/bundle-utils": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-10.0.1.tgz",
"integrity": "sha512-WkaXfSevtpgtUR4t8K2M6lbR7g03mtOxFeh+vXp5KExvPqS12ppaRj1QxzwRuRI5VUto54A22BjKoBMLyHILWQ==",
"license": "MIT",
"dependencies": {
"@intlify/message-compiler": "^11.1.2",
"@intlify/shared": "^11.1.2",
"acorn": "^8.8.2",
"escodegen": "^2.1.0",
"estree-walker": "^2.0.2",
"jsonc-eslint-parser": "^2.3.0",
"mlly": "^1.2.0",
"source-map-js": "^1.0.1",
"yaml-eslint-parser": "^1.2.2"
},
"engines": {
"node": ">= 18"
},
"peerDependenciesMeta": {
"petite-vue-i18n": {
"optional": true
},
"vue-i18n": {
"optional": true
}
}
},
"node_modules/@intlify/bundle-utils/node_modules/@intlify/message-compiler": {
"version": "11.1.3",
"resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-11.1.3.tgz",
"integrity": "sha512-7rbqqpo2f5+tIcwZTAG/Ooy9C8NDVwfDkvSeDPWUPQW+Dyzfw2o9H103N5lKBxO7wxX9dgCDjQ8Umz73uYw3hw==",
"license": "MIT",
"dependencies": {
"@intlify/shared": "11.1.3",
"source-map-js": "^1.0.2"
},
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/bundle-utils/node_modules/@intlify/shared": {
"version": "11.1.3",
"resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.1.3.tgz",
"integrity": "sha512-pTFBgqa/99JRA2H1qfyqv97MKWJrYngXBA/I0elZcYxvJgcCw3mApAoPW3mJ7vx3j+Ti0FyKUFZ4hWxdjKaxvA==",
"license": "MIT",
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/bundle-utils/node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"license": "MIT"
},
"node_modules/@intlify/core": {
"version": "10.0.7",
"resolved": "https://registry.npmjs.org/@intlify/core/-/core-10.0.7.tgz",
"integrity": "sha512-4n9tKt0/HcPrXfm0ceQlNC/wsgrrfXyHwRHSSiekMAy5vkOBc4PJXB5aUHGGkkH0dDdlkYyxUWqhZ3V64+gcKw==",
"license": "MIT",
"dependencies": {
"@intlify/core-base": "10.0.7",
"@intlify/shared": "10.0.7"
},
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/core-base": {
"version": "10.0.7",
"resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-10.0.7.tgz",
"integrity": "sha512-mE71aUH5baH0me8duB4FY5qevUJizypHsYw3eCvmOx07QvmKppgOONx3dYINxuA89Z2qkAGb/K6Nrpi7aAMwew==",
"license": "MIT",
"dependencies": {
"@intlify/message-compiler": "10.0.7",
"@intlify/shared": "10.0.7"
},
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/h3": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/@intlify/h3/-/h3-0.6.1.tgz",
"integrity": "sha512-hFMcqWXCoFNZkraa+JF7wzByGdE0vGi8rUs7CTFrE4hE3X2u9QcelH8VRO8mPgJDH+TgatzvrVp6iZsWVluk2A==",
"license": "MIT",
"dependencies": {
"@intlify/core": "^10.0.3",
"@intlify/utils": "^0.13.0"
},
"engines": {
"node": ">= 18"
},
"funding": {
"url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/message-compiler": {
"version": "10.0.7",
"resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-10.0.7.tgz",
"integrity": "sha512-nrC4cDL/UHZSUqd8sRbVz+DPukzZ8NnG5OK+EB/nlxsH35deyzyVkXP/QuR8mFZrISJ+4hCd6VtCQCcT+RO+5g==",
"license": "MIT",
"dependencies": {
"@intlify/shared": "10.0.7",
"source-map-js": "^1.0.2"
},
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/shared": {
"version": "10.0.7",
"resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-10.0.7.tgz",
"integrity": "sha512-oeoq0L5+5P4ShXa6jBQcx+BT+USe3MjX0xJexZO1y7rfDJdwZ9+QP3jO4tcS1nxhBYYdjvFTqe4bmnLijV0GxQ==",
"license": "MIT",
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/unplugin-vue-i18n": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-6.0.5.tgz",
"integrity": "sha512-0MKaYhLvM46Mtm+OArkK75ztmqaFfhIvnm5mg8XKqCPAKVAK98o+8tB6gUQFkKrF5PMYsNXvyMJCi40cRCDJbA==",
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@intlify/bundle-utils": "^10.0.1",
"@intlify/shared": "^11.1.2",
"@intlify/vue-i18n-extensions": "^8.0.0",
"@rollup/pluginutils": "^5.1.0",
"@typescript-eslint/scope-manager": "^8.13.0",
"@typescript-eslint/typescript-estree": "^8.13.0",
"debug": "^4.3.3",
"fast-glob": "^3.2.12",
"js-yaml": "^4.1.0",
"json5": "^2.2.3",
"pathe": "^1.0.0",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2",
"unplugin": "^1.1.0",
"vue": "^3.4"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"petite-vue-i18n": "*",
"vue": "^3.2.25",
"vue-i18n": "*"
},
"peerDependenciesMeta": {
"petite-vue-i18n": {
"optional": true
},
"vue-i18n": {
"optional": true
}
}
},
"node_modules/@intlify/unplugin-vue-i18n/node_modules/@intlify/shared": {
"version": "11.1.3",
"resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-11.1.3.tgz",
"integrity": "sha512-pTFBgqa/99JRA2H1qfyqv97MKWJrYngXBA/I0elZcYxvJgcCw3mApAoPW3mJ7vx3j+Ti0FyKUFZ4hWxdjKaxvA==",
"license": "MIT",
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/unplugin-vue-i18n/node_modules/pathe": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
"integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
"license": "MIT"
},
"node_modules/@intlify/unplugin-vue-i18n/node_modules/unplugin": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.1.tgz",
"integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==",
"license": "MIT",
"dependencies": {
"acorn": "^8.14.0",
"webpack-virtual-modules": "^0.6.2"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@intlify/utils": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/@intlify/utils/-/utils-0.13.0.tgz",
"integrity": "sha512-8i3uRdAxCGzuHwfmHcVjeLQBtysQB2aXl/ojoagDut5/gY5lvWCQ2+cnl2TiqE/fXj/D8EhWG/SLKA7qz4a3QA==",
"license": "MIT",
"engines": {
"node": ">= 18"
},
"funding": {
"url": "https://github.com/sponsors/kazupon"
}
},
"node_modules/@intlify/vue-i18n-extensions": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/@intlify/vue-i18n-extensions/-/vue-i18n-extensions-8.0.0.tgz",
"integrity": "sha512-w0+70CvTmuqbskWfzeYhn0IXxllr6mU+IeM2MU0M+j9OW64jkrvqY+pYFWrUnIIC9bEdij3NICruicwd5EgUuQ==",
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.24.6",
"@intlify/shared": "^10.0.0",
"@vue/compiler-dom": "^3.2.45",
"vue-i18n": "^10.0.0"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"@intlify/shared": "^9.0.0 || ^10.0.0 || ^11.0.0",
"@vue/compiler-dom": "^3.0.0",
"vue": "^3.0.0",
"vue-i18n": "^9.0.0 || ^10.0.0 || ^11.0.0"
},
"peerDependenciesMeta": {
"@intlify/shared": {
"optional": true
},
"@vue/compiler-dom": {
"optional": true
},
"vue": {
"optional": true
},
"vue-i18n": {
"optional": true
}
}
},
"node_modules/@ioredis/commands": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz",
@ -1499,6 +1756,19 @@
"node": ">=8"
}
},
"node_modules/@miyaneee/rollup-plugin-json5": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@miyaneee/rollup-plugin-json5/-/rollup-plugin-json5-1.2.0.tgz",
"integrity": "sha512-JjTIaXZp9WzhUHpElrqPnl1AzBi/rvRs065F71+aTmlqvTMVkdbjZ8vfFl4nRlgJy+TPBw69ZK4pwFdmOAt4aA==",
"license": "MIT",
"dependencies": {
"@rollup/pluginutils": "^5.1.0",
"json5": "^2.2.3"
},
"peerDependencies": {
"rollup": "^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0"
}
},
"node_modules/@napi-rs/wasm-runtime": {
"version": "0.2.8",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.8.tgz",
@ -2035,6 +2305,241 @@
"vue": "^3.3.4"
}
},
"node_modules/@nuxtjs/i18n": {
"version": "9.5.3",
"resolved": "https://registry.npmjs.org/@nuxtjs/i18n/-/i18n-9.5.3.tgz",
"integrity": "sha512-pw8xU6PFzCop8tYts5IqqoL4F5eol18Xg+0wgVeptlzdki4LR0NnNQkO5nHhwsKUK8e+g8+Efc6ppqKdTqPGig==",
"license": "MIT",
"dependencies": {
"@intlify/h3": "^0.6.1",
"@intlify/shared": "^10.0.7",
"@intlify/unplugin-vue-i18n": "^6.0.5",
"@intlify/utils": "^0.13.0",
"@miyaneee/rollup-plugin-json5": "^1.2.0",
"@nuxt/kit": "^3.16.2",
"@oxc-parser/wasm": "^0.60.0",
"@rollup/plugin-yaml": "^4.1.2",
"@vue/compiler-sfc": "^3.5.13",
"debug": "^4.4.0",
"defu": "^6.1.4",
"esbuild": "^0.25.1",
"estree-walker": "^3.0.3",
"h3": "^1.15.1",
"knitwork": "^1.2.0",
"magic-string": "^0.30.17",
"mlly": "^1.7.4",
"oxc-parser": "^0.61.2",
"pathe": "^2.0.3",
"typescript": "^5.6.2",
"ufo": "^1.5.4",
"unplugin": "^2.2.2",
"unplugin-vue-router": "^0.12.0",
"vue-i18n": "^10.0.7",
"vue-router": "^4.5.0"
},
"engines": {
"node": ">=18.12.0"
},
"funding": {
"url": "https://github.com/sponsors/bobbiegoede"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-parser/binding-darwin-arm64": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.61.2.tgz",
"integrity": "sha512-xpDuwawMDCHg3plbSjpMbrhNTzO1AlvvHqsUOTE3WDmv5K7fFD72f3Pl+SxPJ4D/IhMdskec1B5ZfZHM1iAFmQ==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-parser/binding-darwin-x64": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.61.2.tgz",
"integrity": "sha512-1zjghOALDDhg5mPJgQfoud/bLOxD3M9n8l2LxXK4NngxGh3xXq1K7vAs2dzDnwZI6FaStrrBMDJSocT2hggiLg==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-parser/binding-linux-arm-gnueabihf": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.61.2.tgz",
"integrity": "sha512-OppSdOE7BAHfx/hNbsS4tf+CPCEWEXeEB/4tJKcv6qysZKsTD6XXWUzn2F7KR7TFNSzA0hPjnZyezjFgo+xvcQ==",
"cpu": [
"arm"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-parser/binding-linux-arm64-gnu": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.61.2.tgz",
"integrity": "sha512-CqhKWDvVr4rZpi8Evh/K7FKwn9UnPhF0F0ivF+CsFCMOaS5egalmFRRybQk1QuwGq1XjTA3D8puqvlF0p82+ew==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-parser/binding-linux-arm64-musl": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.61.2.tgz",
"integrity": "sha512-wLtzWy6EyMf7F83pcJhanolaQ7xnwnVAj2wjdJ52qgX4oQjqZZUo6Rk/LE2iY8Aq/R2Bx2yREFeIC4R1kjtB0A==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-parser/binding-linux-x64-gnu": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.61.2.tgz",
"integrity": "sha512-aJ+g/pDcOeqfB2bVZkUjHlCBL8H7lsgkuYVGKKLYxN/oLjrt2Jf/BVu6fL3NxmSSaFmtHKowDgoRAjiKwxQWEQ==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-parser/binding-linux-x64-musl": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.61.2.tgz",
"integrity": "sha512-PosnNyxTqCiMTgva5w695p3ooCcFU8tU+c+JnGgkBgD8pKTbV6fwn8dc4GlcgyyLaM1rD+zi/s+4ooTVML8iIA==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-parser/binding-wasm32-wasi": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-parser/binding-wasm32-wasi/-/binding-wasm32-wasi-0.61.2.tgz",
"integrity": "sha512-zOxdLDItMXeB1GdVCtOOW+aC+Ra6C4E1ivT4rbhaaVe70RsCRa2fGmNC0divvgfQsL2eGBkCuB4d4N9DjfhK4Q==",
"cpu": [
"wasm32"
],
"license": "MIT",
"optional": true,
"dependencies": {
"@napi-rs/wasm-runtime": "^0.2.7"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-parser/binding-win32-arm64-msvc": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.61.2.tgz",
"integrity": "sha512-E7VMrb4XF748hyzIax2KV7TEfi27SfXoi/BH5guiBicSef/31qwHRdKCh708lmIYmbeEJ9D0wO/25K6dvTl8QQ==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-parser/binding-win32-x64-msvc": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.61.2.tgz",
"integrity": "sha512-GtRVVz4DGF94MzlJ7xCIpITu6WKYdTqWc2cqMaJEzYDC8EsHjNkfbGhmawhyodFFuTfWqPAjJecIvvAnfMLpxw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@nuxtjs/i18n/node_modules/@oxc-project/types": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.61.2.tgz",
"integrity": "sha512-rfuwJwvwn9MRthHNXlSo9Eka/u7gC0MhnWAoX3BhE1+rwPOl22nq0K0Y997Hof0tHCOuD7H3/Z8HTfCVhB4c5Q==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/Boshen"
}
},
"node_modules/@nuxtjs/i18n/node_modules/oxc-parser": {
"version": "0.61.2",
"resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.61.2.tgz",
"integrity": "sha512-ZJnAP7VLQhqqnfku7+gssTwmbQyfbZ552Vly4O2BMHkvDwfwLlPtAIYjMq57Lcj5HLmopI0oZlk7xTSML/YsZA==",
"license": "MIT",
"dependencies": {
"@oxc-project/types": "^0.61.2"
},
"engines": {
"node": ">=14.0.0"
},
"funding": {
"url": "https://github.com/sponsors/Boshen"
},
"optionalDependencies": {
"@oxc-parser/binding-darwin-arm64": "0.61.2",
"@oxc-parser/binding-darwin-x64": "0.61.2",
"@oxc-parser/binding-linux-arm-gnueabihf": "0.61.2",
"@oxc-parser/binding-linux-arm64-gnu": "0.61.2",
"@oxc-parser/binding-linux-arm64-musl": "0.61.2",
"@oxc-parser/binding-linux-x64-gnu": "0.61.2",
"@oxc-parser/binding-linux-x64-musl": "0.61.2",
"@oxc-parser/binding-wasm32-wasi": "0.61.2",
"@oxc-parser/binding-win32-arm64-msvc": "0.61.2",
"@oxc-parser/binding-win32-x64-msvc": "0.61.2"
}
},
"node_modules/@nuxtjs/mdc": {
"version": "0.16.1",
"resolved": "https://registry.npmjs.org/@nuxtjs/mdc/-/mdc-0.16.1.tgz",
@ -2823,6 +3328,28 @@
}
}
},
"node_modules/@rollup/plugin-yaml": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/@rollup/plugin-yaml/-/plugin-yaml-4.1.2.tgz",
"integrity": "sha512-RpupciIeZMUqhgFE97ba0s98mOFS7CWzN3EJNhJkqSv9XLlWYtwVdtE6cDw6ASOF/sZVFS7kRJXftaqM2Vakdw==",
"license": "MIT",
"dependencies": {
"@rollup/pluginutils": "^5.0.1",
"js-yaml": "^4.1.0",
"tosource": "^2.0.0-alpha.3"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/pluginutils": {
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz",
@ -6260,6 +6787,37 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/escodegen": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
"integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
"license": "BSD-2-Clause",
"dependencies": {
"esprima": "^4.0.1",
"estraverse": "^5.2.0",
"esutils": "^2.0.2"
},
"bin": {
"escodegen": "bin/escodegen.js",
"esgenerate": "bin/esgenerate.js"
},
"engines": {
"node": ">=6.0"
},
"optionalDependencies": {
"source-map": "~0.6.1"
}
},
"node_modules/escodegen/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"license": "BSD-3-Clause",
"optional": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/eslint": {
"version": "9.24.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz",
@ -6859,6 +7417,19 @@
"url": "https://opencollective.com/eslint"
}
},
"node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/esquery": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
@ -8896,6 +9467,53 @@
"node": ">=6"
}
},
"node_modules/jsonc-eslint-parser": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz",
"integrity": "sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==",
"license": "MIT",
"dependencies": {
"acorn": "^8.5.0",
"eslint-visitor-keys": "^3.0.0",
"espree": "^9.0.0",
"semver": "^7.3.5"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ota-meshi"
}
},
"node_modules/jsonc-eslint-parser/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/jsonc-eslint-parser/node_modules/espree": {
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
"integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.4.1"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@ -13554,6 +14172,14 @@
"node": ">=0.6"
}
},
"node_modules/tosource": {
"version": "2.0.0-alpha.3",
"resolved": "https://registry.npmjs.org/tosource/-/tosource-2.0.0-alpha.3.tgz",
"integrity": "sha512-KAB2lrSS48y91MzFPFuDg4hLbvDiyTjOVgaK7Erw+5AmZXNq4sFRVn8r6yxSLuNs15PaokrDRpS61ERY9uZOug==",
"engines": {
"node": ">=10"
}
},
"node_modules/totalist": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
@ -14786,6 +15412,26 @@
"eslint": "^8.57.0 || ^9.0.0"
}
},
"node_modules/vue-i18n": {
"version": "10.0.7",
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-10.0.7.tgz",
"integrity": "sha512-bKsk0PYwP9gdYF4nqSAT0kDpnLu1gZzlxFl885VH4mHVhEnqP16+/mAU05r1U6NIrc0fGDWP89tZ8GzeJZpe+w==",
"license": "MIT",
"dependencies": {
"@intlify/core-base": "10.0.7",
"@intlify/shared": "10.0.7",
"@vue/devtools-api": "^6.5.0"
},
"engines": {
"node": ">= 16"
},
"funding": {
"url": "https://github.com/sponsors/kazupon"
},
"peerDependencies": {
"vue": "^3.0.0"
}
},
"node_modules/vue-router": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.0.tgz",
@ -15090,6 +15736,34 @@
"node": ">= 14"
}
},
"node_modules/yaml-eslint-parser": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.3.0.tgz",
"integrity": "sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==",
"license": "MIT",
"dependencies": {
"eslint-visitor-keys": "^3.0.0",
"yaml": "^2.0.0"
},
"engines": {
"node": "^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ota-meshi"
}
},
"node_modules/yaml-eslint-parser/node_modules/eslint-visitor-keys": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/yargs": {
"version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",

View File

@ -17,6 +17,7 @@
"@nuxt/eslint": "^1.3.0",
"@nuxt/fonts": "^0.11.1",
"@nuxt/icon": "^1.11.0",
"@nuxtjs/i18n": "^9.5.3",
"eslint": "^9.24.0",
"nuxt": "^3.16.2",
"vue": "^3.5.13",

74
src/assets/css/main.css Normal file
View File

@ -0,0 +1,74 @@
:root {
/* 1 is the base color, <1 are darker variations and >1 are lighter */
/* todo: why so many shades */
--bg-shade-0: #131733;
--bg-shade-1: #1b1f3b;
--bg-shade-2: #23274a;
--bg-shade-2-5: #2d3258;
--bg-shade-3: #373c65;
--bg-shade-3-5: #404673;
--bg-shade-4: #494f81;
--accent-shade-0: #673db6;
--accent-shade-1: #9d6ff3;
--accent-shade-2: #a185d6;
--accent-shade-3: #cab1fb;
--text-shade-0: #8990c1;
--text-shade-1: #a1a8d9;
--text-shade-2: #cac1f5;
--text-shade-3: #fff;
--green-shade-0: #37a985;
--green-shade-1: #59c9a5;
--red-shade-1: #a9375b;
--yellow-shade-1: #ffd966;
--border: rgba(255, 255, 255, 0.1);
}
body {
background: var(--bg-shade-1);
padding-bottom: env(safe-area-inset-bottom);
}
body,
.main-body {
width: 100%;
max-width: 100vw;
position: relative; /* This fixes overflow-x not hiding on Safari on mobile */
overflow-x: hidden;
margin: 0;
color: var(--text-shade-3);
justify-content: center;
font-family: Poppins, Arial, Helvetica, sans-serif;
}
.main-body {
overflow-y: hidden; /* Fixes the dowuble scrollbars caused by the last background circle */
}
code {
background-color: var(--bg-shade-0);
padding: 4px;
border-radius: 4px;
font-family: Consolas, Monaco, "Andale Mono", monospace;
font-size: 0.9em;
color: var(--text-shade-2);
}
button {
all: unset;
font: inherit;
cursor: pointer;
}
.hide-on-desktop {
display: none;
}
@media screen and (max-width: 900px) {
.hide-on-mobile {
display: none;
}
}

File diff suppressed because it is too large Load Diff

6
src/layouts/default.vue Normal file
View File

@ -0,0 +1,6 @@
<template>
<div>
<Navbar />
<slot />
</div>
</template>

View File

@ -184,7 +184,7 @@
"Το main theme του Super Mario World 2 - Yoshi's Island είναι ό,τι καλυτερο και δεν μεταπείθεις με την καμία.",
"Οι αγαπημένες μου κυκλοφορίες του Nintendo Switch είναι το Nintendo Switch Online + Expansion Pack, Nintendo Switch Online + Rumble Pak, Nintendo Switch Online + Offline Play Pack, Nintendo Switch Online + Yet Another Port Pack, και Nintendo Switch Online + Dr. Kawashima's Brain Training / Brain Age \"Σου Αρεσε Πολύ Το Χ Παιχνίδι Wii U Virtual Console , Οπότε Το Φέρνουμε Πίσω\" Pack. Είναι προφανές πως η Nintendo ενδιαφέρεται.",
"Ήξερες ότι το \"Ξέρεις ότι η Ash, νά' ναι καλά η ψυχούλα, κάνει όλη μέρα UwU\" είναι ο ευγενικός τρόπος να πείς \"Η Ash κάνει UwU συνέχεια και είναι περίεργο και χαζό και μακάρι να μην το έκανε;\"",
"Το πρώτο βίντεω στο κανάλι μου!! περίμενα να κάνω βίντεος για πολι καιρό αλλά το λαπτοπ μου ετρεθε πολυ κακά και δεν μπορουσα να τρεχω το fraps, skype κι minecraft ολα μαζι. αλλα αυτο τελιωσε! με λιγο βοηθεια απο το δασκαλο πληροφορικισ μου το λαπτ0π μου τρεχι πολυ καλυτερα και μπορο να καταγράψω τορα! ευχομαι να το απολαυσετε και αν ναι, παρ@καλο καντε λαεκ και σαμπσκραϊμπ!"
"Το πρώτο βίντεω στο κανάλι μου!! περίμενα να κάνω βίντεος για πολι καιρό αλλά το λαπτοπ μου ετρεθε πολυ κακά και δεν μπορουσα να τρεχω το fraps, skype κι minecraft ολα μαζι. αλλα αυτο τελιωσε! με λιγο βοηθεια απο το δασκαλο πληροφορικισ μου το λαπτ0π μου τρεχι πολυ καλυτερα και μπορο να καταγράψω τορα! ευχομαι να το απολαυσετε και αν ναι, παρ{'@'}καλο καντε λαεκ και σαμπσκραϊμπ!"
],
"socials": "Κοινωνικά δίκτυα",
"usefulLinks": "Χρήσιμοι σύνδεσμοι"

View File

@ -1,6 +1,5 @@
<template>
<div>
<NuxtRouteAnnouncer />
<NuxtWelcome />
</div>
</template>