-
+
diff --git a/locales/ar-AR.json b/locales/ar-AR.json
index 79b4dad..0f28c24 100644
--- a/locales/ar-AR.json
+++ b/locales/ar-AR.json
@@ -40,7 +40,10 @@
"hero": {
"title": "قالب Nuxt",
"subtitle": "غير رسمي",
- "description": "مجموعة جاهزة للاستخدام لجميع أنواع المشاريع"
+ "description": "مجموعة جاهزة للاستخدام لجميع أنواع المشاريع",
+ "tagline-start": "مليئة بـ",
+ "tagline-highlight": "سمات",
+ "tagline-end": "للإستخدام"
},
"features": {
"googleFonts": "خطوط جوجل",
@@ -56,7 +59,8 @@
"deviceDetect": "اكتشاف الأجهزة",
"cookies": "شريط ملفات تعريف الارتباط",
"Iconify": "Iconify",
- "Pinia": "Pinia"
+ "Pinia": "Pinia",
+ "enterprise": "جاهز للمشاريع"
}
},
"about": {
@@ -78,4 +82,4 @@
"p": "Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eaque iste atque, hic porro officiis fugit quae deserunt nobis dolorum odit dignissimos consequatur esse maiores repellat impedit. Quae dolorum id rem?"
}
}
-}
+}
\ No newline at end of file
diff --git a/locales/en-US.json b/locales/en-US.json
index 98b9a34..a37ecec 100644
--- a/locales/en-US.json
+++ b/locales/en-US.json
@@ -4,7 +4,7 @@
"locale.ar-AR": "Arabic",
"locale.dir": "ltr",
"site": {
- "name": "Nuxt Boilerplate"
+ "name": "Unofficial Nuxt Boilerplate"
},
"themes": {
"system": "System",
@@ -13,7 +13,7 @@
},
"cookies": {
"bar": {
- "title": "🍪 Hi. This site uses cookies",
+ "title": "🍪 Hi there, this site uses cookies.",
"description": "We use cookies and similar technologies to help personalize content and offer a better experience. You can opt to customize them by clicking the customize button."
},
"modal": {
@@ -40,7 +40,10 @@
"hero": {
"title": "Nuxt Boilerplate",
"subtitle": "Unofficial",
- "description": "A ready to use starter kit for all kinds of projects"
+ "description": "A ready to use starter kit for all kinds of projects",
+ "tagline-start": "Packed with",
+ "tagline-highlight": "features",
+ "tagline-end": "to use"
},
"features": {
"googleFonts": "Google Fonts",
@@ -56,16 +59,17 @@
"deviceDetect": "Device detection",
"cookies": "Cookie banner",
"Iconify": "Iconify",
- "Pinia": "Pinia"
+ "Pinia": "Pinia",
+ "enterprise": "Enterprise ready"
}
},
- "about": {
+ "another-page": {
"meta": {
- "title": "About",
- "description": "About page"
+ "title": "Another page",
+ "description": "Another page"
},
- "link": "About",
- "title": "About",
+ "link": "Another",
+ "title": "Another page",
"p": "Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eaque iste atque, hic porro officiis fugit quae deserunt nobis dolorum odit dignissimos consequatur esse maiores repellat impedit. Quae dolorum id rem?"
},
"minimal": {
@@ -74,8 +78,8 @@
"description": "Minimal page using Fullscreen-layout"
},
"link": "Minimal",
- "title": "Minimal with Fullscreen-layout",
+ "title": "Minimal page with Fullscreen-layout",
"p": "Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eaque iste atque, hic porro officiis fugit quae deserunt nobis dolorum odit dignissimos consequatur esse maiores repellat impedit. Quae dolorum id rem?"
}
}
-}
+}
\ No newline at end of file
diff --git a/locales/fr-FR.json b/locales/fr-FR.json
index 340d1e7..39bb4fd 100644
--- a/locales/fr-FR.json
+++ b/locales/fr-FR.json
@@ -40,7 +40,10 @@
"hero": {
"title": "Nuxt Boilerplate",
"subtitle": "Non officiel",
- "description": "Un kit de démarrage prêt à l'emploi pour toutes sortes de projets"
+ "description": "Un kit de démarrage prêt à l'emploi pour toutes sortes de projets",
+ "tagline-start": "Rempli de",
+ "tagline-highlight": "fonctionnalités",
+ "tagline-end": "à utiliser"
},
"features": {
"googleFonts": "Polices Google",
@@ -56,16 +59,17 @@
"deviceDetect": "Détection de périphérique",
"cookies": "Bannière de cookies",
"Iconify": "Iconify",
- "Pinia": "Pinia"
+ "Pinia": "Pinia",
+ "enterprise": "Prêt pour l'entreprise"
}
},
- "about": {
+ "another-page": {
"meta": {
- "title": "À propos",
- "description": "À propos"
+ "title": "Une autre page",
+ "description": "Une autre page"
},
- "link": "À propos",
- "title": "À propos",
+ "link": "Une autre page",
+ "title": "Une autre page",
"p": "Dans un jardin luxuriant, tout est calme et sérénité. Des fleurs aux couleurs vives se mêlent aux feuillages sombres des grands arbres. Le parfum sucré des roses embaume l'air tandis que le vent fait danser les feuilles. On entend le chant mélodieux des oiseaux, comme une symphonie naturelle qui ne cesse jamais. Dans ce havre de paix, on se sent loin du monde, enveloppé par la beauté et la quiétude de la nature."
},
"minimal": {
@@ -75,7 +79,7 @@
},
"link": "Minimale",
"title": "Page minimale (mise en page plein écran)",
- "p": "Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eaque iste atque, hic porro officiis fugit quae deserunt nobis dolorum odit dignissimos consequatur esse maiores repellat impedit. Quae dolorum id rem?"
+ "p": "Dans un jardin luxuriant, tout est calme et sérénité. Des fleurs aux couleurs vives se mêlent aux feuillages sombres des grands arbres. Le parfum sucré des roses embaume l'air tandis que le vent fait danser les feuilles. On entend le chant mélodieux des oiseaux, comme une symphonie naturelle qui ne cesse jamais. Dans ce havre de paix, on se sent loin du monde, enveloppé par la beauté et la quiétude de la nature."
}
}
-}
+}
\ No newline at end of file
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 3c25ffd..a728b98 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -7,6 +7,12 @@ import ar from "./locales/ar-AR.json";
export default defineNuxtConfig({
devtools: { enabled: true },
+ runtimeConfig: {
+ public: {
+ baseUrl: process.env.VITE_BASE_URL // || 'http://localhost:3000'
+ }
+ },
+
nitro: {
compressPublicAssets: true,
logLevel: 4,
@@ -16,7 +22,7 @@ export default defineNuxtConfig({
"@nuxt/eslint",
"@pinia/nuxt",
"@nuxtjs/device",
- "nuxt-icon",
+ "@nuxt/icon",
"@nuxt/image",
"@nuxtjs/tailwindcss",
"@nuxtjs/google-fonts",
@@ -56,7 +62,7 @@ export default defineNuxtConfig({
},
image: {
- provider: "ipx",
+ provider: "ipx", // change to e.g 'vercel' if hosted on vercel
quality: 80,
format: ["png", "jpeg", "webp"],
},
@@ -71,6 +77,7 @@ export default defineNuxtConfig({
},
i18n: {
+ baseUrl: process.env.VITE_BASE_URL,
vueI18n: "./i18n.config.ts",
detectBrowserLanguage: {
useCookie: false,
@@ -84,6 +91,10 @@ export default defineNuxtConfig({
lintOnStart: false,
},
+ pinia: {
+ autoImports: ['defineStore', 'acceptHMRUpdate'],
+ },
+
cookieControl: {
cookieExpiryOffsetMs: 1000 * 60 * 60 * 24 * 365, // one year
// set all these to true for highest GDPR enforcement
@@ -97,26 +108,24 @@ export default defineNuxtConfig({
isCssEnabled: false,
isDashInDescriptionEnabled: false,
cookies: {
- necessary: [
- {
- name: {
- fr: fr.cookies.necessary.title,
- en: en.cookies.necessary.title,
- ar: ar.cookies.necessary.title,
- },
- description: {
- fr: fr.cookies.necessary.description,
- en: en.cookies.necessary.description,
- ar: ar.cookies.necessary.description,
- },
- targetCookieIds: ["ncc_"],
- id: "",
+ necessary: [{
+ name: {
+ fr: fr.cookies.necessary.title,
+ en: en.cookies.necessary.title,
+ ar: ar.cookies.necessary.title,
+ },
+ description: {
+ fr: fr.cookies.necessary.description,
+ en: en.cookies.necessary.description,
+ ar: ar.cookies.necessary.description,
},
- ],
+ isPreselected: true,
+ id: "necessary"
+ }],
optional: [],
},
locales: ["en", "fr", "ar"],
},
- compatibilityDate: "2024-09-15",
-});
\ No newline at end of file
+ compatibilityDate: "2024-12-26",
+});
diff --git a/package.json b/package.json
index d06e4a1..d2d2475 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "nuxt-boilerplate",
"private": true,
- "version": "1.7.1",
+ "version": "2.0.0",
"type": "module",
"scripts": {
"build": "nuxt build",
@@ -17,29 +17,29 @@
"prettier:fix": "prettier --write . --fix"
},
"devDependencies": {
- "@babel/eslint-parser": "^7.24.7",
- "@dargmuesli/nuxt-cookie-control": "^8.4.2",
- "@nuxt/devtools": "^1.3.7",
- "@nuxt/eslint": "^0.3.13",
- "@nuxt/eslint-config": "^0.3.13",
- "@nuxt/image": "1.7.0",
- "@nuxtjs/color-mode": "^3.4.2",
- "@nuxtjs/device": "^3.1.1",
+ "@babel/eslint-parser": "^7.25.9",
+ "@dargmuesli/nuxt-cookie-control": "^8.4.19",
+ "@nuxt/devtools": "^1.7.0",
+ "@nuxt/eslint": "^0.7.4",
+ "@nuxt/eslint-config": "^0.7.4",
+ "@nuxt/image": "1.8.1",
+ "@nuxtjs/color-mode": "^3.5.2",
+ "@nuxtjs/device": "^3.2.4",
"@nuxtjs/google-fonts": "^3.2.0",
- "@nuxtjs/i18n": "8.3.1",
- "@nuxtjs/tailwindcss": "^6.12.0",
- "@pinia/nuxt": "^0.5.1",
- "@types/node": "^20.14.9",
- "@typescript-eslint/parser": "^7.14.1",
- "eslint": "^8.56.0",
+ "@nuxtjs/i18n": "9.1.1",
+ "@nuxtjs/tailwindcss": "^6.12.2",
+ "@pinia/nuxt": "^0.9.0",
+ "@types/node": "^22.10.2",
+ "@typescript-eslint/parser": "^8.18.2",
+ "eslint": "^9.17.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-nuxt": "^4.0.0",
- "eslint-plugin-prettier": "^5.1.3",
- "nuxt": "^3.13.1",
- "nuxt-icon": "^0.6.10",
+ "eslint-plugin-prettier": "^5.2.1",
+ "nuxt": "^3.15.0",
+ "@nuxt/icon": "^1.10.3",
"postcss-import": "^16.1.0",
- "prettier": "^3.3.2",
- "prettier-plugin-tailwindcss": "^0.6.5",
- "typescript": "5.5.2"
+ "prettier": "^3.4.2",
+ "prettier-plugin-tailwindcss": "^0.6.9",
+ "typescript": "5.7.2"
}
}
\ No newline at end of file
diff --git a/pages/about.vue b/pages/about.vue
deleted file mode 100644
index 1d6257a..0000000
--- a/pages/about.vue
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
{{ $t("pages.about.title") }}
-
-
- {{ $t("pages.about.p") }}
-
-
- {{ $t("pages.about.p") }}
-
- {{ $t("pages.about.p") }} {{ $t("pages.about.p") }}
-
- {{ $t("pages.about.p") }}
-
-
-
-
diff --git a/pages/another-page.vue b/pages/another-page.vue
new file mode 100644
index 0000000..7f0d434
--- /dev/null
+++ b/pages/another-page.vue
@@ -0,0 +1,23 @@
+
+
+
+
+ {{ $t("pages.another-page.title") }}
+
+
+
+ {{ $t("pages.another-page.p") }}.{{ $t("pages.another-page.p") }}. {{ $t("pages.another-page.p") }}
+
+
+
+
diff --git a/pages/index.vue b/pages/index.vue
index c77e4ac..ca3f2a7 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -12,126 +12,95 @@ useSeoMeta({
-
-
-
-
-
-
-
-
-
- {{ $t("pages.index.hero.subtitle") }}
-
-
- {{ $t("pages.index.hero.title") }}
-
-
- {{ $t("pages.index.hero.description") }}
-
-
-
-
+ Page below is intended to be removed for your own project.
+ This is just a demo.
+ -->
+
+
+ {{ t('pages.index.hero.tagline-start') }} {{ t('pages.index.hero.tagline-highlight') }} {{ t('pages.index.hero.tagline-end') }}
+
+
- -
+
-
{{ $t("pages.index.features.googleFonts") }}
- -
+
-
{{ $t("pages.index.features.TailwindCSS") }}
- -
+
-
{{ $t("pages.index.features.Prettier") }}
- -
+
-
{{ $t("pages.index.features.cookies") }}
- -
+
-
{{ $t("pages.index.features.eslint") }}
- -
+
-
{{ $t("pages.index.features.darkMode") }}
- -
+
-
{{ $t("pages.index.features.i18n") }}
- -
+
-
{{ $t("pages.index.features.Iconify") }}
- -
+
-
{{ $t("pages.index.features.Typescript") }}
- -
+
-
{{ $t("pages.index.features.postcss") }}
- -
+
-
{{ $t("pages.index.features.deviceDetect") }}
- -
+
-
{{ $t("pages.index.features.Pinia") }}
- -
+
-
{{ $t("pages.index.features.imageOptim") }}
- -
+
-
{{ $t("pages.index.features.lightHouse") }}
+ -
+ {{ $t("pages.index.features.enterprise") }}
+
+
diff --git a/pages/minimal.vue b/pages/minimal.vue
index aa72b92..34900e4 100644
--- a/pages/minimal.vue
+++ b/pages/minimal.vue
@@ -13,18 +13,16 @@ definePageMeta({
});
+
-
{{ $t("pages.minimal.title") }}
+
{{ $t("pages.minimal.title") }}
-
- {{ $t("pages.minimal.p") }}
-
-
- {{ $t("pages.minimal.p") }}
-
- {{ $t("pages.minimal.p") }} {{ $t("pages.minimal.p") }}
-
- {{ $t("pages.minimal.p") }}
+
+ {{ $t("pages.minimal.p") }}, {{ $t("pages.minimal.p") }}
diff --git a/prettier.config.cjs b/prettier.config.cjs
index d573118..e5e976b 100644
--- a/prettier.config.cjs
+++ b/prettier.config.cjs
@@ -1,3 +1,11 @@
+// module.exports = {
+// plugins: ["prettier-plugin-tailwindcss"],
+// };
module.exports = {
plugins: ["prettier-plugin-tailwindcss"],
-};
+ semi: true,
+ singleQuote: false,
+ tabWidth: 2,
+ trailingComma: "es5",
+ printWidth: 100
+}
\ No newline at end of file