Guide de Contribution - Traductions
đŻ Objectif
Aider la communauté francophone à contribuer aux traductions de la documentation du Hexagonal Maker Bundle.
đ Ătat Actuel des Traductions
â ComplĂštement Traduit
- Page dâaccueil (
index.mdâfr/index.md)
đ Partiellement Traduit
- Guide Architecture (
ARCHITECTURE.md- version française existe)
â Ă Traduire (PrioritĂ© Haute)
Les 9 nouveaux guides avancés créés sont en anglais et nécessitent une traduction :
- Domain vs Application Logic (
advanced/domain-vs-application.md)- Guide de décision crucial pour les développeurs
- ~26 KB de contenu
- Contient des flowcharts et exemples de code
- Request-Response Flow (
advanced/request-response-flow.md)- Flux complet end-to-end avec diagrammes
- ~24 KB de contenu
- Diagrammes Mermaid séquentiels
- Port Design Principles (
advanced/port-design-principles.md)- Principes de conception des interfaces
- ~21 KB de contenu
- Exemples comparatifs â /â
- Primary vs Secondary Adapters (
advanced/primary-secondary-adapters.md)- Les deux cĂŽtĂ©s de lâhexagone
- ~22 KB de contenu
- Diagrammes dâarchitecture
- CQRS: Cost-Benefit Analysis (
advanced/cqrs-cost-benefit.md)- Analyse coûts/bénéfices CQRS
- ~26 KB de contenu
- Flowchart de décision
- Dependency Injection Guide (
advanced/dependency-injection-guide.md)- Configuration Symfony complĂšte
- ~25 KB de contenu
- Exemples de configuration YAML
- Factory Pattern Guide (
advanced/factory-pattern-guide.md)- Implémentation complÚte des factories
- ~27 KB de contenu
- Patterns multiples avec exemples
- Error Handling Strategy (
advanced/error-handling-strategy.md)- Gestion des exceptions
- ~24 KB de contenu
- HiĂ©rarchie dâexceptions
- Anti-Patterns & Pitfalls (
advanced/anti-patterns-pitfalls.md)- Erreurs courantes à éviter
- ~25 KB de contenu
- Comparaisons â mauvais vs â bon
Total Ă traduire : ~220 KB de documentation technique
đ Comment Contribuer
Ătape 1 : Choisir un Document
Consultez la liste ci-dessus et choisissez un document à traduire. Les guides sont indépendants, vous pouvez en choisir un seul.
Ătape 2 : Forker le DĂ©pĂŽt
# Fork sur GitHub, puis clone
git clone https://github.com/VOTRE-USERNAME/hexagonal-maker-bundle.git
cd hexagonal-maker-bundle
git checkout -b traduction-domain-vs-application
Ătape 3 : CrĂ©er la Structure
# Créer le dossier si nécessaire
mkdir -p docs/fr/advanced
# Copier le fichier source
cp docs/advanced/domain-vs-application.md docs/fr/advanced/domain-vs-application.md
Ătape 4 : Traduire le Contenu
Ouvrez docs/fr/advanced/domain-vs-application.md et commencez la traduction.
Front Matter (En-tĂȘte YAML)
---
layout: default
title: Domain vs Application Logic # â Traduire le titre
parent: Sujets AvancĂ©s # â Traduire "Advanced Topics"
nav_order: 10
lang: fr # â Changer 'en' en 'fr'
lang_ref: advanced/domain-vs-application.md # â Chemin vers version anglaise
---
Contenu Markdown
Ă traduire :
- Titres et sous-titres
- Paragraphes explicatifs
- Commentaires dans les exemples de code
- Légendes des diagrammes
- Tableaux et listes
Ă NE PAS traduire :
- Noms de variables et fonctions dans le code
- Mots-clés du langage (class, public, function, etc.)
- URLs et chemins de fichiers
- Noms de classes PHP
- Diagrammes Mermaid (sauf labels/textes)
đ RĂšgles de Traduction
1. Terminologie Technique
Utilisez ces traductions cohérentes :
| English | Français |
|---|---|
| Port | Port (garder en anglais dans contexte technique) |
| Adapter | Adaptateur |
| Domain | Domaine |
| Application Layer | Couche Application |
| Infrastructure | Infrastructure |
| Handler | Handler (garder en anglais) |
| Repository | Repository (ou DépÎt) |
| Value Object | Value Object (ou Objet-Valeur) |
| Entity | Entité |
| Use Case | Cas dâUsage |
| Command | Commande |
| Query | RequĂȘte (ou Query en contexte CQRS) |
| Factory | Fabrique (ou Factory) |
| Dependency Injection | Injection de Dépendances |
2. Termes Ă Garder en Anglais
Certains termes sont mieux reconnus en anglais :
- CQRS (Command Query Responsibility Segregation)
- SOLID (principes)
- Design Patterns (ou Patterns de Conception)
- Hexagonal Architecture
- Ports & Adapters
- DTO (Data Transfer Object)
3. Code et Exemples
â BIEN :
// â
BON : La logique métier dans l'entité
class Order
{
public function ship(): void
{
if ($this->status === OrderStatus::CANCELLED) {
throw new CannotShipCancelledOrderException();
}
$this->status = OrderStatus::SHIPPED;
}
}
Notez :
- Commentaire traduit : âBON : La logique mĂ©tier dans lâentitĂ©â
- Code non traduit :
class Order,ship(), etc.
4. Titres de Sections
Traduisez les titres mais gardez la structure :
Anglais :
## The Problem: Anemic Domain Model
Français :
## Le ProblÚme : ModÚle de Domaine Anémique
5. Diagrammes Mermaid
Traduisez uniquement les labels/textes :
Anglais :
graph TD
Start[Logic to implement] --> Q1{Is it a business rule?}
Q1 -->|Yes| Domain[DOMAIN LAYER]
Q1 -->|No| Application[APPLICATION LAYER]
Français :
graph TD
Start[Logique à implémenter] --> Q1{Est-ce une rÚgle métier ?}
Q1 -->|Oui| Domain[COUCHE DOMAINE]
Q1 -->|Non| Application[COUCHE APPLICATION]
6. Tableaux
Traduisez les en-tĂȘtes et le contenu :
Anglais :
| Question | Domain | Application |
|----------|--------|-------------|
| Is it a business rule? | â
| â |
Français :
| Question | Domaine | Application |
|----------|---------|-------------|
| Est-ce une rĂšgle mĂ©tier ? | â
| â |
đš Style et Ton
Ton Général
- Formel mais accessible : Utilisez âvousâ (tutoiement possible si cohĂ©rent avec le reste)
- Technique mais clair : Expliquez les concepts complexes simplement
- Didactique : La documentation est pédagogique, gardez cet esprit
Exemples de Style
Anglais :
âIf you need to validate input, use value objects.â
â Mauvaise traduction :
âSi tu as besoin de valider lâinput, utilise des value objects.â
â Bonne traduction :
âSi vous devez valider les donnĂ©es dâentrĂ©e, utilisez des value objects.â
đ§Ș Tester Votre Traduction
1. Installation Locale de Jekyll
cd docs
bundle install
2. Lancer le Serveur Local
bundle exec jekyll serve
3. Vérifier
- Ouvrez http://localhost:4000
- Naviguez vers votre page traduite
- VĂ©rifiez le language switcher (đŹđ§ â đ«đ·)
- Testez les liens internes
- Vérifiez le rendu des diagrammes Mermaid
4. Checklist de Validation
- Front matter correct (lang: fr)
- Titre traduit
- Navigation fonctionne
- Language switcher fonctionne
- Liens internes corrects
- Diagrammes sâaffichent correctement
- Code sâaffiche avec coloration syntaxique
- Tableaux bien formatés
- Pas de fautes dâorthographe/grammaire
đ€ Soumettre Votre Traduction
1. Commit et Push
git add docs/fr/advanced/domain-vs-application.md
git commit -m "feat(docs): add French translation for Domain vs Application Logic"
git push origin traduction-domain-vs-application
2. Créer une Pull Request
- Allez sur GitHub
- Cliquez sur âNew Pull Requestâ
- Titre :
docs(fr): traduction Domain vs Application Logic - Description :
## Description Traduction française du guide "Domain vs Application Logic" ## Checklist - [x] Front matter correct - [x] Contenu traduit - [x] Diagrammes traduits - [x] Testé localement - [x] Liens fonctionnels
3. Review
Le mainteneur reviewera votre traduction et pourra demander des ajustements.
đŻ PrioritĂ©s de Traduction
Si vous ne savez pas par oĂč commencer, voici lâordre de prioritĂ© suggĂ©rĂ© :
đ„ PrioritĂ© Haute
- Domain vs Application Logic - Le guide le plus important pour les débutants
- Anti-Patterns & Pitfalls - Ăviter les erreurs courantes
- Request-Response Flow - Comprendre le flux complet
⥠Priorité Moyenne
- Port Design Principles - Conception des interfaces
- Primary vs Secondary Adapters - Les deux cĂŽtĂ©s de lâhexagone
- Error Handling Strategy - Gestion des erreurs
đĄ PrioritĂ© Basse
- CQRS: Cost-Benefit Analysis - Concept avancé
- Dependency Injection Guide - Configuration technique
- Factory Pattern Guide - Pattern spécifique
đ€ Besoin dâAide ?
Questions
Si vous avez des questions sur :
- La terminologie Ă utiliser
- LâambiguĂŻtĂ© dâun terme
- La meilleure façon de traduire un concept
Créez une issue sur GitHub avec le label traduction :
- Titre :
[Traduction] Question sur terme "X" - Décrivez votre question avec contexte
Glossaire Collaboratif
Un glossaire FR/EN est maintenu dans :
docs/fr/GLOSSAIRE.md
Consultez-le avant de traduire et contribuez-y si vous trouvez de nouveaux termes.
đ Suivi de Progression
Tableau de Bord
| Guide | Taille | Traducteur | Statut | PR |
|---|---|---|---|---|
| Domain vs Application | 26 KB | - | â Ă faire | - |
| Request-Response Flow | 24 KB | - | â Ă faire | - |
| Port Design Principles | 21 KB | - | â Ă faire | - |
| Primary vs Secondary | 22 KB | - | â Ă faire | - |
| CQRS Cost-Benefit | 26 KB | - | â Ă faire | - |
| Dependency Injection | 25 KB | - | â Ă faire | - |
| Factory Pattern | 27 KB | - | â Ă faire | - |
| Error Handling | 24 KB | - | â Ă faire | - |
| Anti-Patterns | 25 KB | - | â Ă faire | - |
Légende
- â Ă faire - Pas encore commencĂ©
- đ En cours - Traduction en cours
- â TerminĂ© - Traduit et mergĂ©
- đ Review - En attente de review
đ Remerciements
Merci à tous les contributeurs qui aident à rendre cette documentation accessible à la communauté francophone !
Votre nom sera ajouté dans :
- Le fichier
CONTRIBUTORS.md - La section âContributeursâ de la documentation
- Les release notes
Questions ? Ouvrez une issue avec le label question ou contactez @ahmed-bhs
PrĂȘt Ă contribuer ? Choisissez un guide dans la liste ci-dessus et lancez-vous ! đ