# Installation — Coaster World v1.113.30

Cette version remplace la traduction payante OpenAI par **LibreTranslate auto-hébergé et gratuit**.

## 1. Mettre à jour Coaster World

Remplacer les fichiers du site par l'archive v1.113.30 en conservant votre `.env`.

Puis exécuter :

```bash
php artisan migrate
php artisan optimize:clear
```

`php artisan migrate` est sans risque si la migration v1.113.29 a déjà été appliquée : Laravel n'exécute que les migrations manquantes.

## 2. Installer LibreTranslate sur Windows / Laragon

LibreTranslate nécessite Python 3.8 ou plus récent.

Le projet fournit :

```text
tools\install_libretranslate_windows.bat
tools\run_libretranslate_windows.bat
```

Lancer d'abord :

```text
tools\install_libretranslate_windows.bat
```

Puis démarrer le moteur de traduction :

```text
tools\run_libretranslate_windows.bat
```

Au premier démarrage, LibreTranslate/Argos Translate peut télécharger les modèles de langue. Cela peut prendre un moment selon la connexion et la machine.

L'API locale doit ensuite répondre sur :

```text
http://127.0.0.1:5000
```

## 3. Configuration `.env`

Aucune clé OpenAI n'est nécessaire.

Ajouter ou remplacer les variables de traduction par :

```env
COMMUNITY_TIP_TRANSLATION_ENABLED=true
COMMUNITY_TIP_TRANSLATION_PROVIDER=libretranslate
COMMUNITY_TIP_TRANSLATION_MODEL=argos
COMMUNITY_TIP_TRANSLATION_TIMEOUT=45
LIBRETRANSLATE_BASE_URL=http://127.0.0.1:5000
LIBRETRANSLATE_API_KEY=
```

Pour une instance LibreTranslate locale standard, `LIBRETRANSLATE_API_KEY` doit rester vide.

Les anciennes variables suivantes ne sont plus utilisées par les bons plans :

```env
OPENAI_API_KEY=
OPENAI_BASE_URL=
```

Elles peuvent être supprimées du `.env` si aucune autre fonctionnalité personnelle ne les utilise.

Après modification du `.env` :

```bash
php artisan optimize:clear
```

## 4. Traduire les bons plans déjà validés

Quand LibreTranslate est démarré :

```bash
php artisan cw:community-tips:translate --limit=500 --force
```

## 5. Fonctionnement en cas d'arrêt de LibreTranslate

Le site Coaster World continue de fonctionner normalement. Les visiteurs voient le texte original du bon plan. Les traductions en échec restent marquées pour être retentées par la tâche planifiée ou par la commande manuelle.

## Serveur public

LibreTranslate doit tourner sur la même machine que Coaster World (ou sur une autre machine accessible par `LIBRETRANSLATE_BASE_URL`). Pour rester entièrement gratuit, utilisez votre propre instance auto-hébergée plutôt qu'un service tiers payant.

Aucun `npm run build` n'est nécessaire pour v1.113.30.
