Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: french translation #938

Merged
merged 54 commits into from
Dec 22, 2022
Merged
Show file tree
Hide file tree
Changes from 53 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
3434f8d
docs: starting work on french translation
joachimjusth Dec 8, 2022
3b17f8b
docs: translate deployment/docker.md to french
joachimjusth Dec 8, 2022
13c65a8
docs: translate deployment/vercel.md to french
joachimjusth Dec 8, 2022
45de669
Merge branch 'next' into french-docs
c-ehrlich Dec 8, 2022
bc73ca4
docs: translate usage/env-variables.md
joachimjusth Dec 9, 2022
c0dbb58
Merge branch 'french-docs' of https://github.com/joachimjusth/create-…
joachimjusth Dec 9, 2022
891b90c
docs: usage/first-steps.md
joachimjusth Dec 9, 2022
c9f91af
docs: usage/next-js.md
joachimjusth Dec 9, 2022
95ed845
docs: usage/typescript.md
Dec 9, 2022
444c329
docs: usage/prisma.md
Dec 9, 2022
1c76f4a
docs: usage/tailwind.md
Dec 9, 2022
aaf100b
docs: usage/next-auth.md
Dec 9, 2022
30190a0
docs: update deployment/docker.md with updated documentation coming f…
joachimjusth Dec 14, 2022
6fb1af3
docs: translate usage/trpc.md to french
joachimjusth Dec 14, 2022
9a341e5
docs: translate faq.md to french
joachimjusth Dec 14, 2022
73ba8c6
Merge branch 'next' into french-docs
joachimjusth Dec 14, 2022
125596b
docs: update usage/trpc.md in french with #960
joachimjusth Dec 14, 2022
ffdcc16
docs: translate t3-collection.md to french
joachimjusth Dec 14, 2022
ed9de6f
docs: translate installation.md to french
joachimjusth Dec 14, 2022
e120cb4
docs: translate introduction.md to french
joachimjusth Dec 14, 2022
e049e03
docs: erratum in t3-collection.md
joachimjusth Dec 14, 2022
7c8c48e
docs: erratum in introduction.md
joachimjusth Dec 14, 2022
bd32c2a
docs: translate why.md to french
joachimjusth Dec 14, 2022
5d2f376
Merge branch 't3-oss:next' into french-docs
joachimjusth Dec 14, 2022
3c9e8a1
docs: translate other-recs.md to french
joachimjusth Dec 15, 2022
c73e329
docs: translate folder-structure.md to french
joachimjusth Dec 15, 2022
2647170
docs: fix typo in next-auth.md (french)
joachimjusth Dec 15, 2022
d0e17d2
docs: fix wording and typo in few files (french)
joachimjusth Dec 15, 2022
9751620
docs: enable french on the website
joachimjusth Dec 15, 2022
66faca9
Merge branch 't3-oss:next' into french-docs
joachimjusth Dec 15, 2022
618ac52
docs: translate deployment/netlify.md to french
joachimjusth Dec 16, 2022
e5c6d3a
Merge branch 't3-oss:next' into french-docs
joachimjusth Dec 16, 2022
3405d9b
docs: update folder-structure to mdx (french)
joachimjusth Dec 16, 2022
b631eeb
Merge branch 't3-oss:next' into french-docs
joachimjusth Dec 16, 2022
18e9e57
Merge branch 't3-oss:next' into french-docs
joachimjusth Dec 17, 2022
b9f2bac
Merge branch 't3-oss:next' into french-docs
joachimjusth Dec 18, 2022
59fce83
Merge branch 't3-oss:next' into french-docs
joachimjusth Dec 21, 2022
de650d9
Merge branch 'next' into french-docs
joachimjusth Dec 21, 2022
eee5952
docs: Update fr/deployment/docker.md
joachimjusth Dec 21, 2022
13e24cf
docs: Update fr/deployment/docker.md
joachimjusth Dec 21, 2022
aa87da2
docs: Update fr/deployment/docker.md
joachimjusth Dec 21, 2022
a9d8ad7
docs: Update fr/deployment/docker.md
joachimjusth Dec 21, 2022
604f3c3
docs: Update fr/deployment/index.astro
joachimjusth Dec 21, 2022
a5fd3a9
docs: Update fr/usage/trpc.md
joachimjusth Dec 21, 2022
26e26ba
docs: Update fr/usage/trpc.md
joachimjusth Dec 21, 2022
fe5c96e
docs: Apply suggestions from code review
joachimjusth Dec 21, 2022
4089f4c
docs: Apply suggestions from code review
joachimjusth Dec 21, 2022
ebf3235
docs: Apply suggestions from code review
joachimjusth Dec 21, 2022
bfaa611
docs: update fr/deployment/index.astro
joachimjusth Dec 21, 2022
2f01b6f
docs: revert change on fr/deployment/index.astro
joachimjusth Dec 21, 2022
cc8bef8
docs: update fr/usage/index.astro
joachimjusth Dec 21, 2022
7914943
docs: update fr/deployment/index.astro
joachimjusth Dec 21, 2022
0306905
docs: Apply suggestions from code review
joachimjusth Dec 21, 2022
f35dd95
Merge branch 'next' into french-docs
joachimjusth Dec 21, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions www/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export const KNOWN_LANGUAGES = {
// sv: "Svenska",
ar: "العربية",
en: "English",
fr: "Français",
pt: "Português",
ru: "Русский",
no: "Norsk",
Expand Down Expand Up @@ -125,6 +126,35 @@ export const SIDEBAR: Sidebar = {
{ text: "Docker", link: "en/deployment/docker" },
],
},
fr: {
"Create T3 App": [
{ text: "Introduction", link: "fr/introduction" },
{ text: "Pourquoi CT3A?", link: "fr/why" },
{ text: "Installation", link: "fr/installation" },
{ text: "Structure des dossiers", link: "fr/folder-structure" },
{ text: "FAQ", link: "fr/faq" },
{ text: "Collection T3", link: "fr/t3-collection" },
{ text: "Autres recommandations", link: "fr/other-recs" },
],
Usage: [
{ text: "Premiers pas", link: "fr/usage/first-steps" },
{ text: "Next.js", link: "fr/usage/next-js" },
{ text: "TypeScript", link: "fr/usage/typescript" },
{ text: "tRPC", link: "fr/usage/trpc" },
{ text: "Prisma", link: "fr/usage/prisma" },
{ text: "NextAuth.js", link: "fr/usage/next-auth" },
{
text: "Variables d'environnement",
link: "fr/usage/env-variables",
},
{ text: "Tailwind CSS", link: "fr/usage/tailwind" },
],
Deployment: [
{ text: "Vercel", link: "fr/deployment/vercel" },
{ text: "Netlify", link: "fr/deployment/netlify" },
{ text: "Docker", link: "fr/deployment/docker" },
],
},
pt: {
"Create T3 App": [
{ text: "Introdução", link: "pt/introduction" },
Expand Down Expand Up @@ -226,6 +256,11 @@ export const SIDEBAR_HEADER_MAP: Record<
Usage: "كيفية الإستخدام؟",
Deployment: "نَشر تطبيقك",
},
fr: {
"Create T3 App": "Create T3 App",
Usage: "Utilisation",
Deployment: "Déploiement",
},
pt: {
"Create T3 App": "Create T3 App",
Usage: "Uso",
Expand Down
213 changes: 213 additions & 0 deletions www/src/pages/fr/deployment/docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
---
title: Docker
description: Déploiement avec Docker
layout: ../../../layouts/docs.astro
lang: fr
---

Vous pouvez containeriser cette stack et la déployer en tant que conteneur unique à l'aide de Docker, ou en tant que partie d'un ensemble de conteneurs en utilisant docker-compose. Voir [`ajcwebdev/ct3a-docker`](https://github.com/ajcwebdev/ct3a-docker) pour un exemple basé sur cette documentation.

## Configuration du projet sous Docker

Veuillez noter que Next.js nécessite des variables d’environnements qui sont différentes entre le processus de génération (celles-ci vont être disponible seulement côté navigateur, et sont préfixées par `NEXT_PUBLIC`) et dans l’environnement d’exécution, qui est côté serveur seulement. Dans cette démo nous utilisons deux variables. Prêtez attention à leurs positions dans les fichiers `Dockerfile`, `docker-compose.yml` et dans la ligne de commande.

- `DATABASE_URL` (utiliser par le serveur)
- `NEXT_PUBLIC_CLIENTVAR` (utiliser par le client)

### 1. Configuration de Next

Dans votre fichier [`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs), ajouter l'entrée `output` avec comme valeur `standalone` [réduit la taille de l'image Docker en se basant sur la sortie du processus de génération](https://nextjs.org/docs/advanced-features/output-file-tracing):

```diff
export default defineNextConfig({
reactStrictMode: true,
swcMinify: true,
+ output: "standalone",
});
```

### 2. Créer un fichier dockerignore

<details>
<summary>
Cliquez ici et incluez le contenue dans votre <code>.dockerignore</code>:
</summary>
<div class="content">

```
.env
Dockerfile
.dockerignore
node_modules
npm-debug.log
README.md
.next
.git
```

</div>

</details>

### 3. Créer un fichier Dockerfile

> Étant donné que nous ne récupérons pas les variables d'environnement du serveur dans notre conteneur, la [validation du schéma d'environnement](/fr/usage/env-variables) échouera. Pour éviter cela, nous devons ajouter l'argument `SKIP_ENV_VALIDATION=1` à la commande de génération afin que les schémas d'environnement ne soient pas validé à ce moment là.

<details>
<summary>
Cliquez ici et incluez le contenue dans votre <code>Dockerfile</code>:
</summary>
<div class="content">

```docker
##### DEPENDENCIES

FROM --platform=linux/amd64 node:16-alpine AS deps
RUN apk add --no-cache libc6-compat openssl1.1-compat
WORKDIR /app

# Install Prisma Client - remove if not using Prisma

COPY prisma ./

# Install dependencies based on the preferred package manager

COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml\* ./

RUN \
if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
elif [ -f package-lock.json ]; then npm ci; \
elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i; \
else echo "Lockfile not found." && exit 1; \
fi

##### BUILDER

FROM --platform=linux/amd64 node:16-alpine AS builder
ARG DATABASE_URL
ARG NEXT_PUBLIC_CLIENTVAR
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .

# ENV NEXT_TELEMETRY_DISABLED 1

RUN \
if [ -f yarn.lock ]; then SKIP_ENV_VALIDATION=1 yarn build; \
elif [ -f package-lock.json ]; then SKIP_ENV_VALIDATION=1 npm run build; \
elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && SKIP_ENV_VALIDATION=1 pnpm run build; \
else echo "Lockfile not found." && exit 1; \
fi

##### RUNNER

FROM --platform=linux/amd64 node:16-alpine AS runner
WORKDIR /app

ENV NODE_ENV production

# ENV NEXT_TELEMETRY_DISABLED 1

RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs

COPY --from=builder /app/next.config.mjs ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json

COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static

USER nextjs
EXPOSE 3000
ENV PORT 3000

CMD ["node", "server.js"]

```

> **_Notes_**
>
> - _L'émulation de `--platform=linux/amd64` n'est pas nécessaire à partir de Node 18._
> - _Voir [`node:alpine`](https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine) pour comprendre pourquoi `libc6-compat` pourrait être nécessaire._
> - _Next.js receuille [des données de télémétrie sur l'utilisation générale de façon anonyme](https://nextjs.org/telemetry). Décommentez la première occurrence de `ENV NEXT_TELEMETRY_DISABLED 1` pour désactiver la télémétrie durant le processus de génération. Décommentez la seconde occurence pour désactiver la télémétrie durant l'exécution._

</div>
</details>

## Génération et exécution de l'image localement

Générer et exécuter l'image localement avec les commandes suivantes:

```bash
docker build -t ct3a-docker --build-arg NEXT_PUBLIC_CLIENTVAR=clientvar .
docker run -p 3000:3000 -e DATABASE_URL="database_url_goes_here" ct3a-docker
```

Ouvrez [localhost:3000](http://localhost:3000/) pour voir votre application s'exécuter.

## Docker Compose

Vous pouvez également utiliser Docker Compose pour générer l'image et exécuter le conteneur.

<details>
<summary>
Suivez les étapes 1 à 4 ci-dessus, cliquez ici et incluez le contenue dans votre <code>docker-compose.yml</code>:
</summary>
<div class="content">

```yaml
version: "3.9"
services:
app:
platform: "linux/amd64"
build:
context: .
dockerfile: Dockerfile
args:
NEXT_PUBLIC_CLIENTVAR: "clientvar"
working_dir: /app
ports:
- "3000:3000"
image: t3-app
environment:
- DATABASE_URL=database_url_goes_here
```

Exécutez ceci à l'aide de la commande `docker compose up` :

```bash
docker compose up
```

Ouvrez [localhost:3000](http://localhost:3000/) pour voir votre application en cours d'exécution.

</div>
</details>

## Déployer sur Railway

Vous pouvez utiliser un service de type PaaS comme [Railway's](https://railway.app) pour automatiser le déploiement de votre application [Voir Dockerfile sur railway](https://docs.railway.app/deploy/dockerfiles). Si vous avez [Railway CLI d'installer](https://docs.railway.app/develop/cli#install) vous pouvez déployer votre application en suivant les commandes suivantes:

```bash
railway login
railway init
railway link
railway up
railway open
```

Allez dans "Variables" et rajoutez votre `DATABASE_URL`. Ensuite, allez dans "Settings" et sélectionnez "Generate Domain.". Pour voir un exemple qui fonctionne sur Railway, visitez [ct3a-docker.up.railway.app](https://ct3a-docker.up.railway.app/).

## Ressources utiles

| Ressources | Liens |
| ------------------------------------------------ | -------------------------------------------------------------------- |
| Dockerfile référence | https://docs.docker.com/engine/reference/builder/ |
| Compose file version 3 référence | https://docs.docker.com/compose/compose-file/compose-file-v3/ |
| Docker CLI référence | https://docs.docker.com/engine/reference/commandline/docker/ |
| Docker Compose CLI référence | https://docs.docker.com/compose/reference/ |
| Next.js déploiement avec une image Docker | https://nextjs.org/docs/deployment#docker-image |
| Next.js dans Docker | https://benmarte.com/blog/nextjs-in-docker/ |
| Next.js exemple avec Docker | https://github.com/vercel/next.js/tree/canary/examples/with-docker |
| Créer une image Docker d'une application Next.js | https://blog.tericcabrel.com/create-docker-image-nextjs-application/ |
23 changes: 23 additions & 0 deletions www/src/pages/fr/deployment/index.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
import Layout from "../../../layouts/docs.astro";
import IndexPage from "../../../components/docs/indexPage.astro";
import { Frontmatter, SIDEBAR } from "../../../config";
import { getLanguageFromURL } from "../../../languages";

const frontmatter: Frontmatter = {
title: "Déploiement",
layout: "docs",
description: "Apprenez comment déployer votre app T3 en production.",
};
const lang = getLanguageFromURL(Astro.url.pathname);
const sidebarEntries = SIDEBAR[lang]["Deployment"]!;
const files = await Astro.glob("./*.{md,mdx,astro}");
---

<Layout frontmatter={frontmatter} headings={[]}>
<IndexPage
frontmatter={frontmatter}
sidebarEntries={sidebarEntries}
files={files}
/>
</Layout>
86 changes: 86 additions & 0 deletions www/src/pages/fr/deployment/netlify.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
title: Netlify
description: Déploiement sur Netlify
layout: ../../../layouts/docs.astro
lang: fr
---

Netlify est un fournisseur de déploiement alternatif dans la même veine que Vercel. Voir [`ajcwebdev/ct3a-netlify`](https://github.com/ajcwebdev/ct3a-netlify) pour un exemple de dépôt basé sur ce document.

## Pourquoi héberger sur Netlify

La sagesse conventionnelle dit que Vercel a un support Next.js supérieur parce que Vercel développe Next.js. Ils ont tout intérêt à s'assurer que la plate-forme est réglée pour des performances optimales et DX avec Next.js. Pour la majorité des cas d'utilisation, cela sera vrai et cela n'aura aucun sens de s'écarter du chemin standard.

Il existe également un sentiment commun selon lequel de nombreuses fonctionnalités de Next.js ne sont prises en charge que sur Vercel. S'il est vrai que les nouvelles fonctionnalités Next.js seront testées et prises en charge sur Vercel au moment de leurs publications, il est également vrai que d'autres fournisseurs comme Netlify [implémenteront et publieront rapidement leur prise en charge](https://www.netlify.com/blog/deploy-nextjs-13/) pour les [fonctionnalités stables de Next.js](https://docs.netlify.com/integrations/frameworks/next-js/overview/).

Il existe des avantages et des inconvénients relatifs pour chaque fournisseurs de déploiement, car aucun hébergeur ne peut avoir le meilleur support pour tous les cas d'utilisation. Par exemple, Netlify a construit son propre [environnement d'exécution Next.js personnalisé](https://github.com/netlify/next-runtime) pour les fonctions Edge de Netlify (qui s'exécutent sur Deno Deploy) et [maintient un middleware unique pour accéder et modifier les réponses HTTP](https://github.com/netlify/next-runtime#nextjs-middleware-on-netlify).

> _REMARQUE : Pour suivre l'état des fonctionnalités instables de Next 13, consultez [Utilisation du répertoire "app" de Next 13 sur Netlify](https://github.com/netlify/next-runtime/discussions/1724)._

## Configurer le projet

Il existe de nombreuses façons de configurer vos instructions de build, y compris directement via la CLI Netlify ou le tableau de bord Netlify. Bien que cela ne soit pas obligatoire, il est conseillé de créer et d'inclure un fichier [`netlify.toml`](https://docs.netlify.com/configure-builds/file-based-configuration/). Cela garantit que les versions dérivées et clonées du projet seront plus faciles à déployer et de manière reproductible.

```toml
[build]
command = "next build"
publish = ".next"
```

## Utilisation du tableau de bord Netlify

1. Transférez votre code vers un dépôt GitHub et inscrivez-vous à [Netlify](https://app.netlify.com/signup). Après avoir créé un compte, cliquez sur **Ajouter un nouveau site** puis sur **Importer un projet existant**.

![Nouveau projet sur Netlify](/images/netlify-01-new-project.webp)

2. Connectez votre fournisseur de dépôt.

![Importation de votre dépôt](/images/netlify-02-connect-to-git-provider.webp)

3. Sélectionnez le dépôt de votre projet.

![Sélectionnez le dépôt de votre projet.](/images/netlify-03-pick-a-repository-from-github.webp)

4. Netlify détectera si vous avez un fichier `netlify.toml` et configurera automatiquement votre commande de build et votre répertoire de publication.

![Paramètres de build de Nextjs](/images/netlify-04-configure-build-settings.webp)

5. Cliquez sur **Afficher les paramètres avancés**, puis sur **Nouvelle variable** pour ajouter vos variables d'environnement.

![Ajouter des variables d'environnement](/images/netlify-05-env-vars.webp)

1. Cliquez sur **Déployer le site**, attendez la fin de la compilation, puis, affichez votre nouveau site.

## Utilisation de la CLI Netlify

Pour déployer à partir de la ligne de commande, vous devez d'abord pousser votre projet vers un dépôt GitHub et [installer la CLI Netlify](https://docs.netlify.com/cli/get-started/). Vous pouvez installer `netlify-cli` en tant que dépendance de projet ou l'installer globalement sur votre machine avec la commande suivante :

```bash
npm i -g netlify-cli
```

Pour tester votre projet localement, exécutez la commande [`ntl dev`](https://docs.netlify.com/cli/get-started/#run-a-local-development-environment) et ouvrez [`localhost:8888 `](http://localhost:8888/) pour afficher votre application Netlify exécutée localement :

```bash
ntl dev
```

Exécutez la commande [`ntl init`](https://docs.netlify.com/cli/get-started/#continuous-deployment) pour configurer votre projet :

```bash
ntl init
```

Importez les variables d'environnement de votre projet à partir de votre fichier `.env` avec [`ntl env:import`](https://cli.netlify.com/commands/env#envimport) :

```bash
ntl env:import .env
```

Déployez votre projet avec [`ntl deploy`](https://docs.netlify.com/cli/get-started/#manual-deploys). Vous devrez passer l'indicateur `--build` pour exécuter la commande build avant le déploiement et l'indicateur `--prod` pour déployer sur l'URL principale de votre site :

```bash
ntl deploy --prod --build
```

Pour afficher un exemple d'exécution sur Netlify, visitez [ct3a.netlify.app](https://ct3a.netlify.app/).
Loading