> For the complete documentation index, see [llms.txt](https://bsensei-script.gitbook.io/bsensei-script-documentation-officiel-fivem/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bsensei-script.gitbook.io/bsensei-script-documentation-officiel-fivem/bsensei-vehicle-control-controle-complet-des-vehicules/traductions-et-textes.md).

# Traductions et textes

## 🌍 Traductions et textes

**BSensei Vehicle Control** est livré avec une interface et des notifications en français.

Le script ne possède pas de système de langue automatique avec une option comme `Config.Locale`.

Les textes peuvent néanmoins être facilement modifiés dans les fichiers accessibles de la ressource.

***

### 📁 Localisation des textes

Les messages sont répartis dans trois fichiers :

```
BSensei_vehicle_control/config.lua
```

Contient les notifications et messages principaux du script.

```
BSensei_vehicle_control/html/index.html
```

Contient les titres, boutons et textes fixes de l’interface.

```
BSensei_vehicle_control/html/app.js
```

Contient certains textes générés dynamiquement par l’interface.

Après chaque modification, redémarre la ressource :

```
restart BSensei_vehicle_control
```

***

### 🔔 Messages du fichier `config.lua`

Les notifications principales sont regroupées dans :

```lua
Config.Messages = {
    noVehicle = "Vous devez être dans un véhicule.",
    driverOnly = "Vous devez être au poste de conduite.",
    anchorTooFast = "Ralentissez avant de jeter l'ancre.",
    hoverTooFast = "Ralentissez avant d'activer le stationnaire.",
    hoverVertical = "Stabilisez la montée ou la descente.",
    anchorEnabled = "⚓ Ancre jetée.",
    anchorDisabled = "⚓ Ancre relevée.",
    hoverEnabled = "🚁 Maintien stationnaire activé.",
    hoverDisabled = "🚁 Maintien stationnaire désactivé.",
    limiterEnabled = "Régulateur activé à %s km/h.",
    limiterDisabled = "Régulateur désactivé.",
    locked = "Véhicule verrouillé.",
    unlocked = "Véhicule déverrouillé.",
    actionUnavailable = "Cette fonction n'est pas disponible sur ce véhicule.",
    neonMissing = "Les néons ne sont pas installés sur ce véhicule."
}
```

Les éléments placés à gauche sont les clés utilisées par le script.

Exemples :

```
noVehicle
driverOnly
anchorEnabled
hoverDisabled
neonMissing
```

⚠️ Ne renomme pas ces clés.

Modifie uniquement les textes placés entre guillemets.

***

### ✏️ Modifier un message

#### Exemple original

```lua
noVehicle = "Vous devez être dans un véhicule."
```

#### Exemple personnalisé

```lua
noVehicle = "Vous devez monter dans un véhicule pour utiliser ce menu."
```

Autre exemple :

```lua
driverOnly = "Cette fonction est réservée au conducteur."
```

***

### ⚓ Messages de l’ancre

Les messages liés aux bateaux sont :

```lua
anchorTooFast = "Ralentissez avant de jeter l'ancre."
anchorEnabled = "⚓ Ancre jetée."
anchorDisabled = "⚓ Ancre relevée."
```

Exemple personnalisé :

```lua
anchorTooFast = "⚠️ Le bateau avance trop rapidement pour jeter l'ancre."
anchorEnabled = "⚓ Le bateau est maintenant ancré."
anchorDisabled = "⚓ L'ancre a été relevée."
```

***

### 🚁 Messages du stationnaire

Les messages liés aux hélicoptères sont :

```lua
hoverTooFast = "Ralentissez avant d'activer le stationnaire."
hoverVertical = "Stabilisez la montée ou la descente."
hoverEnabled = "🚁 Maintien stationnaire activé."
hoverDisabled = "🚁 Maintien stationnaire désactivé."
```

Exemple personnalisé :

```lua
hoverTooFast = "⚠️ Réduisez votre vitesse avant d'activer le stationnaire."
hoverVertical = "⚠️ Stabilisez l'altitude de l'appareil."
hoverEnabled = "🚁 Mode stationnaire activé."
hoverDisabled = "🚁 Mode stationnaire désactivé."
```

***

### 🏎️ Messages du régulateur

Les messages du régulateur sont :

```lua
limiterEnabled = "Régulateur activé à %s km/h."
limiterDisabled = "Régulateur désactivé."
```

Le `%s` est remplacé automatiquement par la vitesse sélectionnée.

Exemple :

```lua
limiterEnabled = "Vitesse maintenue à %s km/h."
```

Pour une vitesse réglée à 90 km/h, le joueur verra :

```
Vitesse maintenue à 90 km/h.
```

⚠️ Ne supprime pas le `%s`.

***

### 🔒 Messages de verrouillage

```lua
locked = "Véhicule verrouillé."
unlocked = "Véhicule déverrouillé."
```

Exemple personnalisé :

```lua
locked = "🔒 Le véhicule est maintenant verrouillé."
unlocked = "🔓 Le véhicule est maintenant déverrouillé."
```

***

### 💜 Messages des néons

```lua
neonMissing = "Les néons ne sont pas installés sur ce véhicule."
```

Exemple personnalisé :

```lua
neonMissing = "💜 Ce véhicule ne possède aucune installation de néons."
```

Ce message apparaît lorsqu’un joueur tente d’utiliser les effets lumineux sur un véhicule non équipé.

***

### 🖥️ Textes de l’interface

Les textes fixes du menu se trouvent principalement dans :

```
BSensei_vehicle_control/html/index.html
```

Tu peux notamment modifier les onglets :

```html
<button class="tab active" data-tab="main">Contrôles</button>
<button class="tab" data-tab="doors">Portes</button>
<button class="tab" data-tab="seats">Sièges</button>
<button class="tab" data-tab="special">Spécial</button>
<button class="tab" data-tab="neons">Néons</button>
<button class="tab" data-tab="settings">Réglages</button>
```

#### Exemple personnalisé

```html
<button class="tab active" data-tab="main">Commandes</button>
<button class="tab" data-tab="doors">Ouvertures</button>
<button class="tab" data-tab="seats">Places</button>
<button class="tab" data-tab="special">Fonctions spéciales</button>
<button class="tab" data-tab="neons">Éclairage néon</button>
<button class="tab" data-tab="settings">Personnalisation</button>
```

⚠️ Modifie uniquement le texte visible entre les balises.

Ne modifie pas les valeurs comme :

```
data-tab="main"
data-tab="doors"
id="closeButton"
```

***

### 🪟 Textes des fenêtres

Dans `index.html`, les boutons des fenêtres utilisent notamment :

```html
<button data-window="0" data-state="down">Fenêtre AVG ↓</button>
<button data-window="1" data-state="down">Fenêtre AVD ↓</button>
<button data-window="2" data-state="down">Fenêtre ARG ↓</button>
<button data-window="3" data-state="down">Fenêtre ARD ↓</button>
```

Signification :

```
AVG = Avant gauche
AVD = Avant droite
ARG = Arrière gauche
ARD = Arrière droite
```

Exemple avec les noms complets :

```html
<button data-window="0" data-state="down">Avant gauche ↓</button>
<button data-window="1" data-state="down">Avant droite ↓</button>
<button data-window="2" data-state="down">Arrière gauche ↓</button>
<button data-window="3" data-state="down">Arrière droite ↓</button>
```

Conserve toujours les attributs `data-window` et `data-state`.

***

### 💺 Textes des sièges

Les noms des sièges se trouvent également dans `index.html`.

Exemple :

```html
<button data-seat="-1">Conducteur</button>
<button data-seat="0">Passager</button>
<button data-seat="1">Arrière gauche</button>
<button data-seat="2">Arrière droit</button>
```

Tu peux modifier les textes visibles, mais conserve les valeurs `data-seat`.

***

### 🚪 Textes générés dans `app.js`

Certains noms sont créés dynamiquement dans :

```
BSensei_vehicle_control/html/app.js
```

Exemple pour les portes :

```javascript
const doors = [
    ['Capot', 4],
    ['Coffre', 5],
    ['Porte avant gauche', 0],
    ['Porte avant droite', 1],
    ['Porte arrière gauche', 2],
    ['Porte arrière droite', 3]
];
```

Tu peux traduire uniquement les textes :

```javascript
const doors = [
    ['Hood', 4],
    ['Trunk', 5],
    ['Front left door', 0],
    ['Front right door', 1],
    ['Rear left door', 2],
    ['Rear right door', 3]
];
```

⚠️ Ne modifie pas les nombres associés aux portes.

***

### 💡 État des néons dans l’interface

Les messages de détection des néons se trouvent dans `app.js` :

```javascript
'Néons détectés sur ce véhicule.'
```

et :

```javascript
'Aucun néon installé sur ce véhicule.'
```

Exemple en anglais :

```javascript
'Neon lights detected on this vehicle.'
```

```javascript
'No neon lights installed on this vehicle.'
```

***

### 🇬🇧 Exemple des notifications en anglais

Pour traduire les notifications principales en anglais :

```lua
Config.Messages = {
    noVehicle = "You must be inside a vehicle.",
    driverOnly = "You must be in the driver's seat.",
    anchorTooFast = "Slow down before dropping the anchor.",
    hoverTooFast = "Slow down before enabling hover mode.",
    hoverVertical = "Stabilize the helicopter's vertical movement.",
    anchorEnabled = "⚓ Anchor dropped.",
    anchorDisabled = "⚓ Anchor raised.",
    hoverEnabled = "🚁 Hover mode enabled.",
    hoverDisabled = "🚁 Hover mode disabled.",
    limiterEnabled = "Cruise control enabled at %s km/h.",
    limiterDisabled = "Cruise control disabled.",
    locked = "Vehicle locked.",
    unlocked = "Vehicle unlocked.",
    actionUnavailable = "This function is not available for this vehicle.",
    neonMissing = "Neon lights are not installed on this vehicle."
}
```

Pour obtenir une interface entièrement en anglais, les textes présents dans `index.html` et `app.js` doivent également être traduits.

***

### 🌐 Ajouter plusieurs langues

La version actuelle ne permet pas de changer automatiquement de langue depuis `config.lua`.

Il n’existe pas d’option comme :

```lua
Config.Locale = 'fr'
```

Pour créer une version dans une autre langue, il faut traduire manuellement :

```
Config.Messages dans config.lua
Les textes visibles dans html/index.html
Les textes dynamiques dans html/app.js
```

Une seule langue est donc affichée à la fois.

***

### 🔤 Encodage des fichiers

Enregistre toujours les fichiers au format :

```
UTF-8
```

Cela permet de conserver correctement :

```
é
è
à
ç
œ
⚓
🚁
💜
```

Si les caractères apparaissent ainsi :

```
VÃ©hicule
RÃ©glages
NÃ©ons
```

le fichier utilise probablement un mauvais encodage.

Dans Visual Studio Code :

```
Encodage → Enregistrer avec l'encodage → UTF-8
```

***

### ⚠️ Erreurs à éviter

* Ne renomme pas les clés de `Config.Messages`
* Ne supprime pas le `%s` du message du régulateur
* Conserve les guillemets autour des textes
* Conserve les virgules entre les messages
* Ne modifie pas les identifiants HTML
* Ne modifie pas les attributs `data-tab`, `data-seat` ou `data-window`
* Ne change pas les nombres associés aux portes
* Enregistre les fichiers en UTF-8
* Redémarre la ressource après chaque modification

Après une modification :

```
restart BSensei_vehicle_control
```

***

➡️ **Étape suivante : Système de notifications**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://bsensei-script.gitbook.io/bsensei-script-documentation-officiel-fivem/bsensei-vehicle-control-controle-complet-des-vehicules/traductions-et-textes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
