ahmed-bhs/hexagonal-maker-bundle
The Hexagonal Maker Bundle documentation is available in two languages:
A language switcher is available in the top-right corner of every documentation page, allowing users to seamlessly switch between languages.
docs/
βββ index.md # English home page
βββ fr/
β βββ index.md # French home page
βββ advanced/ # English advanced guides
β βββ domain-vs-application.md
β βββ request-response-flow.md
β βββ port-design-principles.md
β βββ primary-secondary-adapters.md
β βββ cqrs-cost-benefit.md
β βββ dependency-injection-guide.md
β βββ factory-pattern-guide.md
β βββ error-handling-strategy.md
β βββ anti-patterns-pitfalls.md
βββ ARCHITECTURE.md # Available in French
βββ WHY-HEXAGONAL.md # English
βββ SOLID.md # English
βββ _includes/
βββ language-switcher.html # Language switcher component
The default_with_lang layout includes the language switcher:
---
layout: default
title: Your Page Title
lang: en # or 'fr'
lang_ref: fr/page.md # Optional: reference to translated version
---
Each page with bilingual support should include:
lang: Current language (en or fr)lang_ref: Relative path to the translated version (optional)Example (English page):
---
layout: default
title: Home
lang: en
lang_ref: fr/index.md
---
Example (French page):
---
layout: default
title: Accueil
lang: fr
lang_ref: index.md
---
The _includes/language-switcher.html component:
---
layout: default
title: My New Page
parent: Advanced Topics
nav_order: 20
lang: en
lang_ref: fr/advanced/my-new-page.md
---
# My New Page
Content in English...
---
layout: default
title: Ma Nouvelle Page
parent: Sujets AvancΓ©s
nav_order: 20
lang: fr
lang_ref: advanced/my-new-page.md
---
# Ma Nouvelle Page
Contenu en franΓ§ais...
For French-only navigation sections, create fr/advanced/index.md:
---
layout: default
title: Sujets AvancΓ©s
nav_order: 3
has_children: true
lang: fr
---
index.md β fr/index.md)ARCHITECTURE.md - has French version)High Priority (User-facing):
Medium Priority (Conceptual):
Low Priority (Reference):
Consistency: Use consistent terminology
Code Examples: Keep code in English (variable names, comments in English)
Technical Terms: Keep well-established English terms when appropriate
File Names:
fr/ subdirectorieslayout: default and lang: enlang_ref if French version exists or plannedfr/ subdirectoryThe language switcher uses:
Custom CSS in language-switcher.html ensures:
Potential improvements:
To contribute a translation:
docs/fr/ (or other language folder)lang and lang_ref metadatacd docs
bundle install
bundle exec jekyll serve
# Visit http://localhost:4000
# Test language switcher functionality
# Verify both EN and FR versions
Documentation Structure by: Ahmed EBEN HASSINE Last Updated: 2024-01-15
How can I help you explore Laravel packages today?