-
+
+
+
{{ $t('company-name') }}
+
{{ $t('company-description') }}
+
+ {{ $t('learn-more') }}
+
-
\ No newline at end of file
+
+
+
+
{{ $t('productions') }}
+
{{ $t('productions-desc') }}
+
+
+
+
{{ $t('solutions') }}
+
{{ $t('solutions-desc') }}
+
+
+
+
{{ $t('support') }}
+
{{ $t('support-desc') }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/pages/productions/index.vue b/app/pages/productions/index.vue
new file mode 100644
index 0000000..74cca43
--- /dev/null
+++ b/app/pages/productions/index.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bun.lock b/bun.lock
index 90e20f4..0ac2248 100644
--- a/bun.lock
+++ b/bun.lock
@@ -11,6 +11,7 @@
"@nuxt/image": "1.11.0",
"@nuxt/test-utils": "3.19.2",
"@nuxtjs/i18n": "10.0.5",
+ "@nuxtjs/strapi": "2.1.1",
"@pinia/nuxt": "^0.11.2",
"@unocss/nuxt": "^66.4.2",
"@vueuse/nuxt": "^13.6.0",
@@ -319,6 +320,8 @@
"@nuxtjs/i18n": ["@nuxtjs/i18n@10.0.5", "", { "dependencies": { "@intlify/core": "^11.1.11", "@intlify/h3": "^0.7.1", "@intlify/shared": "^11.1.11", "@intlify/unplugin-vue-i18n": "^6.0.8", "@intlify/utils": "^0.13.0", "@miyaneee/rollup-plugin-json5": "^1.2.0", "@nuxt/kit": "^4.0.3", "@rollup/plugin-yaml": "^4.1.2", "@vue/compiler-sfc": "^3.5.18", "cookie-es": "^2.0.0", "defu": "^6.1.4", "devalue": "^5.1.1", "h3": "^1.15.3", "knitwork": "^1.2.0", "magic-string": "^0.30.17", "mlly": "^1.7.4", "nuxt-define": "^1.0.0", "oxc-parser": "^0.81.0", "oxc-transform": "^0.81.0", "oxc-walker": "^0.4.0", "pathe": "^2.0.3", "typescript": "^5.9.2", "ufo": "^1.6.1", "unplugin": "^2.3.5", "unplugin-vue-router": "^0.14.0", "unstorage": "^1.16.1", "vue-i18n": "^11.1.11", "vue-router": "^4.5.1" } }, "sha512-rLQc/nEVWL0xMJf1a6+ndUpdQtxPBFzm4jeqG4o7HuXtDLn4HOe1dPdu7AsaIqq7EcsEjZ5T4mX4X8XnB8cT0Q=="],
+ "@nuxtjs/strapi": ["@nuxtjs/strapi@2.1.1", "", { "dependencies": { "@nuxt/kit": "^3.17.5", "defu": "^6.1.4", "graphql": "^16.11.0", "qs": "^6.14.0", "ufo": "^1.6.1" } }, "sha512-CNcsEqkhto4P5SEA4ZuRrGdfOT7swsZp/hvR7SNG3OW3J8eHJythE68P1LaszCq5uvYlg7j90Iue534sEdedtQ=="],
+
"@oxc-minify/binding-android-arm64": ["@oxc-minify/binding-android-arm64@0.80.0", "", { "os": "android", "cpu": "arm64" }, "sha512-OLelUqrLkSJwNyjLZHgpKy9n0+zHQiMX8A0GFovJIwhgfPxjT/mt2JMnGkSoDlTnf9cw6nvALFzCsJZLTyl8gg=="],
"@oxc-minify/binding-darwin-arm64": ["@oxc-minify/binding-darwin-arm64@0.80.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-7vJjhKHGfFVit3PCerbnrXQI0XgmmgV5HTNxlNsvxcmjPRIoYVkuwwRkiBsxO4RiBwvRRkAFPop3fY/gpuflJA=="],
@@ -1277,6 +1280,8 @@
"graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="],
+ "graphql": ["graphql@16.11.0", "", {}, "sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw=="],
+
"gzip-size": ["gzip-size@7.0.0", "", { "dependencies": { "duplexer": "^0.1.2" } }, "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA=="],
"h3": ["h3@1.15.4", "", { "dependencies": { "cookie-es": "^1.2.2", "crossws": "^0.3.5", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.2", "radix3": "^1.1.2", "ufo": "^1.6.1", "uncrypto": "^0.1.3" } }, "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ=="],
diff --git a/i18n.config.ts b/i18n.config.ts
new file mode 100644
index 0000000..2486bd1
--- /dev/null
+++ b/i18n.config.ts
@@ -0,0 +1,6 @@
+// @ts-expect-error - defineI18nConfig is provided by @nuxtjs/i18n
+export default defineI18nConfig(() => ({
+ legacy: false,
+ locale: 'zh',
+ fallbackLocale: 'zh'
+}))
diff --git a/i18n/locales/en.json b/i18n/locales/en.json
index 8616473..b4b9992 100644
--- a/i18n/locales/en.json
+++ b/i18n/locales/en.json
@@ -1,9 +1,29 @@
{
- "back": "back",
- "not-found": "Not found",
+ "back": "Back",
+ "not-found": "Page Not Found",
"productions": "Productions",
"solutions": "Solutions",
"support": "Support",
"about-us": "About Us",
- "search-placeholder": "Search..."
+ "search-placeholder": "Search...",
+ "company-name": "Jinshen Machinary Manufacturing Co., Ltd.",
+ "company-description": "We specialize in manufacturing a range of paper tube and can equipment, integrating design, manufacturing, sales, and service.",
+ "learn-more": "Learn More",
+ "productions-desc": "We provide high-quality product solutions to meet various business needs.",
+ "solutions-desc": "Providing customized technology solutions for enterprises to accelerate digital transformation.",
+ "support-desc": "24/7 professional technical support to ensure stable operation of your business.",
+ "quick-links": "Quick Links",
+ "navigation": {
+ "home": "Home"
+ },
+ "contact-info": "Contact Us",
+ "telephone": "Telephone",
+ "email": "Email",
+ "address": "Address",
+ "company-address": "No. 689 Qiushi Road, Wutong Industrial Zone, Tongxiang City, Zhejiang Province, China",
+ "follow-us": "Follow Us",
+ "all-rights-reserved": "All rights reserved",
+ "privacy-policy": "Privacy Policy",
+ "terms-of-service": "Terms of Service",
+ "sitemap": "Sitemap"
}
diff --git a/i18n/locales/zh.json b/i18n/locales/zh.json
index c19e0f7..08dd0ce 100644
--- a/i18n/locales/zh.json
+++ b/i18n/locales/zh.json
@@ -5,5 +5,25 @@
"solutions": "解决方案",
"support": "服务支持",
"about-us": "关于我们",
- "search-placeholder": "搜索..."
+ "search-placeholder": "搜索...",
+ "company-name": "金申机械制造有限公司",
+ "company-description": "专业生产一系列纸管、纸罐设备,集设计、制造、销售、服务于一体。",
+ "learn-more": "了解更多",
+ "productions-desc": "我们提供高质量的产品解决方案,满足各种业务需求。",
+ "solutions-desc": "为企业提供定制化的技术解决方案,助力数字化转型。",
+ "support-desc": "7x24小时专业技术支持,确保您的业务稳定运行。",
+ "quick-links": "快速链接",
+ "navigation": {
+ "home": "首页"
+ },
+ "contact-info": "联系我们",
+ "telephone": "电话",
+ "email": "邮箱",
+ "address": "地址",
+ "company-address": "浙江省桐乡市梧桐工业区秋实路689号",
+ "follow-us": "关注我们",
+ "all-rights-reserved": "版权所有",
+ "privacy-policy": "隐私政策",
+ "terms-of-service": "服务条款",
+ "sitemap": "网站地图"
}
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 4cc0cf7..2fc0e3d 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -57,17 +57,28 @@ export default defineNuxtConfig({
i18n: {
detectBrowserLanguage: {
useCookie: true,
- cookieKey: 'i18n_redirected',
- redirectOn: 'root'
+ cookieKey: "i18n_redirected",
+ redirectOn: "root",
},
locales: [
- { code: 'en', language: 'en-US', name: 'English', file: 'en.json' },
- { code: 'zh', language: 'zh-CN', name: '简体中文', file: 'zh.json' },
+ { code: "en", language: "en-US", name: "English", file: "en.json" },
+ { code: "zh", language: "zh-CN", name: "简体中文", file: "zh.json" },
],
- defaultLocale: 'zh',
- langDir: 'locales'
+ defaultLocale: "zh",
+ langDir: "locales",
},
+ strapi: {
+ url: process.env.STRAPI_URL || "http://localhost:1337",
+ token: process.env.STRAPI_TOKEN || undefined,
+ prefix: "/api",
+ admin: "/admin",
+ version: "v5",
+ cookie: {},
+ cookieName: "strapi_jwt",
+ },
+
+
modules: [
"@nuxt/eslint",
"@nuxt/fonts",
@@ -79,5 +90,6 @@ export default defineNuxtConfig({
"@unocss/nuxt",
"@element-plus/nuxt",
"@nuxtjs/i18n",
+ "@nuxtjs/strapi",
],
-});
\ No newline at end of file
+});
diff --git a/package.json b/package.json
index 9f3fd51..17a91cd 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
"@nuxt/image": "1.11.0",
"@nuxt/test-utils": "3.19.2",
"@nuxtjs/i18n": "10.0.5",
+ "@nuxtjs/strapi": "2.1.1",
"@pinia/nuxt": "^0.11.2",
"@unocss/nuxt": "^66.4.2",
"@vueuse/nuxt": "^13.6.0",