Next.jsReact作品集

next-typescript-i18n-zod — Next.js 作品集模板

作者 Steviggio

基于 Next.js 16、Tailwind CSS 与 Zod 的多语言作品集模板,内置法、英、西、葡四种语言与明暗主题切换。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-14查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

内置法语、英语、西班牙语、葡萄牙语四种语言,通过 middleware 自动检测语言

02

使用 Zod 校验作品集数据(项目、个人资料)是否符合预定义 schema

03

通过 next-themes 与 TailwindCSS 支持明暗主题切换

04

作品集内容集中在 portfolio.repository.ts,界面文案放在按语言划分的 JSON 词典中

05

README 称根据所选语言生成动态 Open Graph 与 SEO 元数据

06

预配置 ESLint、TypeScript,并可选启用 Git 预提交钩子

模板详细介绍

这是一个作品集(portfolio)网站模板,使用 Next.js 16、Tailwind CSS 和 Zod 构建,README 称其轻量、易部署且可高度定制。项目采用 App Router,通过 src/app/[lang]/ 动态路由实现国际化,内置法语、英语、西班牙语和葡萄牙语,并由 middleware(proxy.ts)自动检测语言。作品集数据(项目、个人资料)集中在 src/features/portfolio/data/portfolio.repository.ts,Zod 用于校验数据是否符合 src/features/portfolio/types/portfolio.schema.ts 中定义的字段要求。界面文案与项目描述存放在 src/features/dictionaries/ 下的 JSON 词典中,按语言分文件管理。主题切换依赖 next-themes 与 TailwindCSS,颜色等视觉变量在 tailwind.config.ts 中调整,字体在 src/app/[lang]/layout.tsx 中设置。README 还提到根据所选语言生成动态元数据(Open Graph 与 SEO),以及预配置的 ESLint、TypeScript 与可选的 Git 预提交钩子。README 未提供具体依赖版本号、部署平台配置细节或性能验证方式,Lighthouse 分数仅为 README 自述。

Next.jsReact作品集

适合你的项目吗?

适用场景

  • 搭建个人作品集网站,展示项目与个人资料
  • 需要多语言(法、英、西、葡)展示的开发者个人站点
  • 希望用 Zod 约束内容数据结构、避免字段缺失的项目
  • 需要明暗主题切换与基础 SEO 元数据配置的静态展示页

适合人群

  • 熟悉 Next.js App Router 与 TypeScript 的开发者
  • 需要多语言作品集模板并愿意维护 JSON 词典文件的人
  • 希望通过集中数据文件管理项目与个人信息的用户

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    克隆仓库后进入目录,执行 npm install 安装依赖

  2. 2

    运行 npm run dev 启动本地开发服务器,访问 http://localhost:3000 预览

  3. 3

    在 src/features/portfolio/data/portfolio.repository.ts 中修改项目与个人资料

  4. 4

    在 src/features/dictionaries/ 的 JSON 文件中修改界面文案与项目描述

  5. 5

    新增语言需在 i18n-config.ts 声明、按需调整 proxy.ts、新建词典 JSON 并在 src/app/[lang]/dictionnaries.ts 中导入

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-14。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 85 / 100
技术栈
Next.js · React
网站类型
作品集
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-03-19
截图检查日期
2026-10-14

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15

查看当时使用的来源资料

SHA-256: 48e5393375bfbcc27a4543659577e393b3df00b963b6460a456b158cf8fbf011

2026-10-14T17:03:43.833Z

来源文件 / 仓库
# Next.js 16 Portfolio Template

Un template de portfolio moderne, léger et multilingue construit avec Next.js 16, Tailwind CSS, et Zod. Conçu pour être facilement déployable et hautement personnalisable.

### ⚡ Score Lighthouse
![Performance](https://img.shields.io/badge/Performance-97-brightgreen?style=for-the-badge&logo=Lighthouse)
![Accessibility](https://img.shields.io/badge/Accessibility-96-brightgreen?style=for-the-badge&logo=Lighthouse)
![Best_Practices](https://img.shields.io/badge/Best_Practices-100-brightgreen?style=for-the-badge&logo=Lighthouse)
![SEO](https://img.shields.io/badge/SEO-100-brightgreen?style=for-the-badge&logo=Lighthouse)

---

## ✨ Fonctionnalités Principales

<ul>
  <li><b>Internationalisation (i18n)</b> : Support multilingue "out-of-the-box" (Français, Anglais, Espagnol, Portugais inclus). Détection automatique de la langue via middleware.</li>
  <li><b>Validation de données strictes</b> : Utilisation de <a href="https://zod.dev/">Zod</a> pour s'assurer que les données de votre portfolio (projets, expériences) sont conformes au schéma attendu.</li>
  <li><b>Thème Sombre / Clair</b> : Support intégré pour le basculement entre les thèmes grâce à <code>next-themes</code> et TailwindCSS.</li>
  <li><b>Hautement personnalisable</b> : Tous les textes de présentation et contenus sont extraits dans des fichiers de données centraux.</li>
  <li><b>Open Graph & SEO Ready</b> : Génération de métadonnées dynamiques en fonction de la langue sélectionnée.</li>
  <li><b>CI/CD Ready</b> : Intègre des pre-commits Git Hooks (via config optionnelle), un linting strict ESLint et TypeScript préconfigurés pour faciliter l'intégration continue et les déploiements (ex: Vercel, Netlify, VPS, etc).</li>
</ul>

## 📂 Structure du projet

Aperçu de l'architecture pour vous repérer rapidement :

```text
├── public/                 # Assets statiques (images, placeholders)
├── src/
│   ├── app/                # App Router Next.js
│   │   └── [lang]/         # Routes dynamiques d'internationalisation
│   ├── features/           # Modules par fonctionnalité
│   │   ├── dictionaries/   # Fichiers de traduction JSON (fr.json, en.json...)
│   │   └── portfolio/      # Logique, types et données du portfolio
│   │       ├── data/       # Infos personnelles (portfolio.repository.ts)
│   │       └── types/      # Schémas de validation Zod
│   ├── proxy.ts            # Middleware Next.js pour i18n
│   └── i18n-config.ts      # Configuration des langues supportées
├── tailwind.config.ts      # Thème UI et charte graphique
└── next.config.ts          # Configurations build et sécurité
```

## 🚀 Installation & Démarrage

<ul>
  <li><b>1. Clonez ce dépôt</b> : <code>git clone https://github.com/VOTRE_NOM/next-portfolio-template.git</code></li>
  <li><b>2. Accédez au dossier</b> : <code>cd next-portfolio-template</code></li>
  <li><b>3. Installez les dépendances</b> : <code>npm install</code></li>
  <li><b>4. Lancez le serveur local</b> : <code>npm run dev</code></li>
  <li><b>5. Visualisez</b> : Ouvrez <a href="http://localhost:3000">http://localhost:3000</a> dans votre navigateur.</li>
</ul>

## 🛠 Comment personnaliser ce template ?

L'application est divisée en deux couches de données principales : les données de base du profil et les traductions de l'interface.

### 1. Modifier vos informations personnelles (Projets & Expériences)
Toutes vos données principales se trouvent dans le fichier <code>src/features/portfolio/data/portfolio.repository.ts</code>. Vous y définissez la base :
<ul>
  <li><b>Projets (<code>projects</code>)</b> : Ajoutez l'identifiant unique (<code>id</code>), le titre, les technologies utilisées et si c'est un Side Project ou non.</li>
  <li><b>Profil (<code>profile</code>)</b> : Modifiez votre nom, rôle, liens sociaux (GitHub, LinkedIn) et profil.</li>
</ul>
<i>Note : Zod est là pour vérifier que vous n'oubliez aucun champ requis (voir <code>src/features/portfolio/types/portfolio.schema.ts</code>).</i>

### 2. Gérer les langues (i18n) et les traductions
Les textes de l'interface et les traductions spécifiques de projets sont gérés via des "Dictionnaires" (ex: <code>fr.json</code>) dans <code>src/features/dictionaries/</code>.
<ul>
  <li><b>Pour modifier un texte ou une description</b> : Allez dans le fichier JSON ciblé, cherchez la clé (ex: <code>projects.informations.[ID]</code>) et adaptez-la.</li>
  <li><b>Pour ajouter une langue</b> : 
    <ul>
      <li>Déclarez-la dans <code>i18n-config.ts</code></li>
      <li>Ajustez le <code>proxy.ts</code> si nécessaire</li>
      <li>Créez un nouveau fichier JSON dans <code>dictionaries/</code></li>
      <li>Importez-le dans <code>src/app/[lang]/dictionnaries.ts</code></li>
    </ul>
  </li>
</ul>

### 3. Modifier le style et les polices
<ul>
  <li><b>Polices</b> : La police principale est intégrée dans le fichier racine <code>src/app/[lang]/layout.tsx</code>.</li>
  <li><b>Couleurs</b> : Modifiez <code>tailwind.config.ts</code> pour adapter la charte graphique (les variables de couleurs comme <code>sage</code> ou <code>cream</code>).</li>
</ul>

## 📝 License

Distribué sous la licence MIT. Voir le fichier <code>LICENSE</code> pour plus d'informations.
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。