> 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/systemes-and-gestion/bsensei-multijob-gestion-complete-des-metiers/traduction.md).

# Traduction

## 🌍 Traductions du script

Le fichier `locale.lua` regroupe tous les textes, titres et notifications utilisés par **BSensei MultiJob**.

Il permet de personnaliser facilement les messages affichés en jeu ou d’ajouter une nouvelle langue sans modifier le cœur du script.

***

### 📁 Localisation du fichier

Le fichier se trouve ici :

```
BSensei_multijob/locale.lua
```

La langue active se sélectionne dans :

```
BSensei_multijob/config.lua
```

***

### ⚙️ Choisir la langue

Dans le fichier `config.lua`, repère cette ligne :

```lua
Config.Locale = "fr"
```

Langues incluses par défaut :

```
fr
en
```

#### Français

```lua
Config.Locale = "fr"
```

#### Anglais

```lua
Config.Locale = "en"
```

⚠️ La valeur renseignée doit correspondre exactement au nom de la langue présente dans `locale.lua`.

***

### 🔧 Structure du fichier

Le fichier est organisé sous cette forme :

```lua
Locales = {
    ["fr"] = {
        notification_title = "Multi-job",
        service_title = "Service",
        boss_title = "Gestion salariés",

        menu_title = "Mes métiers",
        key_mapping = "Ouvrir le menu multi-job",

        take_duty = "Prendre le service",
        leave_duty = "Quitter le service",
        delete_job = "Supprimer ce métier",

        status_on_duty = "🟢 En service",
        status_off_duty = "⚪ Hors service",

        duty_started = "Tu es maintenant en service : %s",
        duty_left = "Tu as quitté ton service : %s",
        job_deleted = "Métier supprimé : %s",
        limit_reached = "Limite atteinte : %s métiers maximum."
    },

    ["en"] = {
        notification_title = "Multi-job",
        service_title = "Duty",
        boss_title = "Employee management",

        menu_title = "My jobs",
        key_mapping = "Open the multi-job menu",

        take_duty = "Go on duty",
        leave_duty = "Go off duty",
        delete_job = "Delete this job",

        status_on_duty = "🟢 On duty",
        status_off_duty = "⚪ Off duty",

        duty_started = "You are now on duty: %s",
        duty_left = "You ended your duty: %s",
        job_deleted = "Job deleted: %s",
        limit_reached = "Limit reached: %s jobs maximum."
    }
}
```

💡 Les éléments placés à gauche, comme `menu_title` ou `duty_started`, sont les clés utilisées par le script.

Ne les renomme pas.

Tu peux uniquement modifier les textes situés après le signe `=`.

***

### ✏️ Modifier un texte

Pour personnaliser un message, repère simplement la ligne correspondante.

#### Exemple original

```lua
take_duty = "Prendre le service"
```

#### Exemple personnalisé

```lua
take_duty = "Commencer votre service"
```

Le nouveau texte sera automatiquement affiché dans le menu.

***

### 💬 Modifier une notification

#### Exemple original

```lua
duty_started = "Tu es maintenant en service : %s"
```

#### Exemple personnalisé

```lua
duty_started = "Votre prise de service est enregistrée pour : %s"
```

Tu peux également personnaliser les messages d’erreur :

```lua
fetch_jobs_failed = "Impossible de récupérer tes métiers."
```

Exemple personnalisé :

```lua
fetch_jobs_failed = "Une erreur est survenue pendant le chargement de vos métiers."
```

***

### 🔢 Textes contenant des variables

Certains messages contiennent une ou plusieurs variables :

```
%s
```

Ces éléments sont automatiquement remplacés par une information venant du script.

#### Exemple

```lua
job_deleted = "Métier supprimé : %s"
```

En jeu, le résultat peut devenir :

```
Métier supprimé : Police
```

Autre exemple :

```lua
employee_summary = "Grade : %s | Total : %s | Semaine : %s | Prime : %s"
```

Les quatre `%s` seront remplacés par :

1. Le grade de l’employé
2. Son temps total
3. Son temps de la semaine
4. Sa prime estimée

⚠️ Ne supprime pas les `%s` et ne change pas leur ordre sans savoir précisément à quoi ils correspondent.

***

### 👔 Textes du menu patron

Les principaux textes du menu patron peuvent être personnalisés :

```lua
boss_title = "Gestion salariés"
boss_management = "Gestion salariés"
boss_management_description = "Voir le temps de service et la prime du dimanche"
employees_title = "Salariés : %s"
employee_file = "Fiche salarié"
no_employee = "Aucun salarié trouvé"
```

Exemple personnalisé :

```lua
boss_title = "Gestion de l'entreprise"
boss_management = "Registre des employés"
boss_management_description = "Consulter l'activité et les primes des salariés"
employee_file = "Dossier de l'employé"
```

***

### ⏱️ Textes du suivi du temps

Les informations liées au temps de service se trouvent ici :

```lua
total_time = "Temps total"
week_time = "Temps semaine"
last_shift = "Dernier service"
last_shift_day = "Jour du dernier service"
session = "Session"
sunday_bonus = "Prime dimanche"
estimated_sunday_bonus = "Prime dimanche estimée"
```

Tu peux les adapter au vocabulaire utilisé sur ton serveur :

```lua
total_time = "Temps de travail total"
week_time = "Temps travaillé cette semaine"
last_shift = "Dernière prise de service"
estimated_sunday_bonus = "Prime hebdomadaire estimée"
```

***

### 🗑️ Confirmation de suppression

La fenêtre de confirmation utilise les textes suivants :

```lua
delete_confirm_header = "Supprimer ce métier ?"

delete_confirm_content = "Tu vas retirer **%s** de ton menu. Cette action ne licencie personne côté entreprise, elle retire seulement ton accès multi-job."

delete_confirm = "Supprimer"
cancel = "Annuler"
```

Les caractères `**` permettent d’afficher une partie du texte en gras dans l’interface.

⚠️ Conserve le `%s`, car il sera remplacé par le nom du métier concerné.

***

### 🌐 Ajouter une nouvelle langue

Pour ajouter une langue, copie entièrement une traduction existante.

#### Exemple pour l’espagnol

```lua
Locales["es"] = {
    notification_title = "Multiempleo",
    service_title = "Servicio",
    boss_title = "Gestión de empleados",

    menu_title = "Mis trabajos",
    key_mapping = "Abrir el menú de trabajos",

    take_duty = "Entrar en servicio",
    leave_duty = "Salir de servicio",
    delete_job = "Eliminar este trabajo",

    status_on_duty = "🟢 En servicio",
    status_off_duty = "⚪ Fuera de servicio",

    duty_started = "Ahora estás de servicio: %s",
    duty_left = "Has terminado tu servicio: %s",
    job_deleted = "Trabajo eliminado: %s",
    limit_reached = "Límite alcanzado: máximo %s trabajos."
}
```

⚠️ Pour une nouvelle langue, toutes les clés présentes dans la version française doivent être reprises.

Sélectionne ensuite la langue dans `config.lua` :

```lua
Config.Locale = "es"
```

***

### 🔄 Système de traduction interne

Le script utilise la fonction suivante :

```lua
_L("menu_title")
```

Elle recherche automatiquement la clé correspondante dans la langue sélectionnée.

Lorsqu’un message contient une variable :

```lua
_L("duty_started", jobLabel)
```

La valeur `jobLabel` remplace automatiquement le `%s` présent dans la traduction.

Si une clé est absente dans la langue choisie, le script tente d’utiliser la version française.

***

### ⚠️ Erreurs à éviter

* Ne renomme pas les clés de traduction
* Ne supprime pas une clé utilisée par le script
* Conserve les virgules entre chaque ligne
* Garde les guillemets autour des textes
* Ne supprime pas les `%s`
* Vérifie que la langue choisie existe dans `locale.lua`
* N’utilise pas deux fois la même clé dans une langue
* Redémarre la ressource après chaque modification

Après une modification, utilise :

```
restart BSensei_multijob
```

***

### 🧰 Exemple de personnalisation

```lua
Locales["fr"] = {
    notification_title = "Gestion des métiers",
    service_title = "Prise de service",
    boss_title = "Gestion de l'entreprise",

    menu_title = "Mes emplois",
    key_mapping = "Ouvrir la gestion des emplois",

    take_duty = "Commencer le service",
    leave_duty = "Terminer le service",
    delete_job = "Retirer cet emploi",

    status_on_duty = "🟢 Actuellement en service",
    status_off_duty = "⚪ Actuellement hors service",

    duty_started = "Votre service commence pour : %s",
    duty_left = "Votre service est terminé pour : %s",
    job_deleted = "Emploi retiré de votre menu : %s",
    limit_reached = "Vous pouvez conserver au maximum %s métiers."
}
```

***

➡️ **É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/systemes-and-gestion/bsensei-multijob-gestion-complete-des-metiers/traduction.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.
