Skip to content

Latest commit

 

History

History
92 lines (74 loc) · 5.63 KB

File metadata and controls

92 lines (74 loc) · 5.63 KB

FIP Guide Guidelines

Content Guidelines

  • Content MUST support all three languages (en, de, fr)
  • NEVER change the meaning of content when translating. Always translate as 1:1.
  • ALWAYS align the content with the corresponding base (defined in archetypes)
  • ALWAYS use the exact translations for headlines (defined in archetypes)
  • ALWAYS create new content pages with hugo new {base}/{name} where base can be country, operator or booking.

Glossary

  • Use "Freifahrtschein" instead of "Freifahrtsschein"
  • Use "FIP Coupon" instead of "FIP free travel"
  • Use "Motorail train" instead of "car train"
  • Use "Break of journey" instead of "Journey Interruption"
  • Use ’ (U+2019) instead of ' (U+0027) for apostrophes in French content

Translations

Deutsch Englisch Französisch
FIP Freifahrtschein FIP Coupon Coupon FIP
FIP Globalpreis FIP Global Fare Tarif Global FIP
FIP 50 Ticket FIP 50 Ticket Billet FIP 50
FIP Ausweis FIP Card Carte FIP
Ticketschalter Ticket Office Guichet
Website Website Site Web
Telefon Telephone Téléphone
Fahrkartenautomat Ticket Machine Distributeurs de billets
Grenzpunkt Border Point Point frontière
FIP Rabatt / FIP Ermäßigung FIP Discount Remise FIP / Réduction FIP
FIP Freifahrtschein für Angehörige FIP Coupon for relatives Coupon FIP pour les ayants droit
SBB SBB CFF

Headlines

Use these exact translations for headlines on the pages:

Deutsch Englisch Französisch
FIP Nutzung FIP Information Informations FIP
Wissenswertes Interesting Informations générales
Anreise und Grenzpunkte Arrival and Border Points Arrivée et points frontières
Zusammenfassung Summary Résumé
Gültigkeit FIP Tickets Validity of FIP Tickets Validité des Billets FIP
Zugkategorien und Reservierungen Train Categories and Reservations Catégories de trains et réservations
Klassenkategorien Class Categories Catégories de classes
Ticket- und Reservierungskauf Ticket and Reservation Purchase Achat de billets et réservations
Online Online En ligne
Telefon Telephone Par téléphone
Vor Ort On-Site En gare
Im Zug On the Train À bord du train
Ermäßigungen Discounts Réductions
Tarifliche Besonderheiten Special Tariff Conditions Conditions tarifaires spéciales
Empfehlungen Recommendations Recommandations
Quellen Sources Sources

Development Guidelines

Build/Test Commands

  • hugo serve: Start local development server
  • hugo --gc --minify: Build for production
  • npx prettier --write .: Format code
  • npx pagefind --site public: Generate search index
  • prek run -a: Run all prek checks

Code Style & Conventions

  • HTML Templates: Use Hugo / Go template syntax
  • JavaScript: ES6 modules with relative imports (./filename.js).
  • CSS/SCSS: Use SCSS with BEM-like naming, variables defined in _variables.scss
  • Markdown:
    • Frontmatter in YAML format, use shortcodes for complex layouts
    • When using shortcodes, pass each parameter on a new line for better readability.
  • i18n: Files in i18n/ sorted alphabetically by key, support en/de/fr languages

File Structure

  • Content in content/ with multilingual structure (index.en.md, index.de.md, index.fr.md)
  • Layouts in layouts/ following Hugo conventions:
    • Partials for reusable components in HTML files in layouts/partials/
    • Shortcodes for reusable components in Markdown files in layouts/shortcodes/
  • Assets in assets/ (processed) and static/ (copied as-is)

Quality Standards

  • All commits MUST pass the prek hooks defined in .prek-config.yaml
  • HTML templates must be valid Go template syntax
  • Do NOT add any comments to the code
  • NEVER create markdown files outside the content directory