🌐 i18n & Vocabulary
B2B Professional Language - "42 Philosophy"
🎯 Language Philosophy
The 42 Principle
"Wir machen Geschäfte, keine Frühstücksbilder"
- ✅ LinkedIn-Style Professional
- ✅ Technisch Präzise
- ✅ Warm aber nicht casual
- ❌ Kein Social Media Slang
- ❌ Keine Emojis in Verträgen
📊 Vocabulary Matrix
Universal Terms (All Instances)
| Concept |
DE |
EN |
FR |
| Contract |
Vertrag |
Contract |
Contrat |
| Party A |
Vertragspartner A |
Contracting Party A |
Partie contractante A |
| Party B |
Vertragspartner B |
Contracting Party B |
Partie contractante B |
| Asset |
Vermögenswert |
Asset |
Actif |
| Payment |
Zahlung |
Payment |
Paiement |
| Document |
Dokument |
Document |
Document |
| Signature |
Unterschrift |
Signature |
Signature |
| Status |
Status |
Status |
Statut |
🏢 Instance-Specific Vocabulary
FLO (GYM + Immobilien)
GYM Context
| Concept |
DE |
EN |
FR |
| Asset |
Mitgliedschaft |
Membership |
Adhésion |
| Party A |
Studio Betreiber |
Studio Operator |
Exploitant du studio |
| Party B |
Mitglied |
Member |
Membre |
| Test |
Probetraining |
Trial Session |
Séance d'essai |
| Contract |
Mitgliedsvertrag |
Membership Agreement |
Contrat d'adhésion |
Immobilien Context
| Concept |
DE |
EN |
FR |
| Asset |
Immobilie |
Property |
Propriété |
| Party A |
Vermieter / Verkäufer |
Landlord / Seller |
Propriétaire / Vendeur |
| Party B |
Mieter / Käufer |
Tenant / Buyer |
Locataire / Acheteur |
| Test |
Besichtigung |
Viewing |
Visite |
| Contract |
Mietvertrag / Kaufvertrag |
Lease / Purchase Agreement |
Bail / Contrat de vente |
MORELO (Wohnmobile)
| Concept |
DE |
EN |
FR |
| Asset |
Reisemobil |
Motorhome |
Camping-car |
| Party A |
Händler |
Dealer |
Concessionnaire |
| Party B |
Kunde |
Customer |
Client |
| Test |
Probefahrt |
Test Drive |
Essai routier |
| Contract |
Kaufvertrag / Leasingvertrag |
Purchase / Lease Agreement |
Contrat de vente / Leasing |
| Model Line |
Modellreihe |
Model Line |
Gamme de modèles |
| Configuration |
Ausstattung |
Configuration |
Configuration |
| Dealer |
Händler |
Dealer |
Concessionnaire |
MORELO-Spezifisch:
| Term |
DE |
EN |
| PALACE |
PALACE (unchanged) |
PALACE |
| EMPIRE |
EMPIRE (unchanged) |
EMPIRE |
| LOFT |
LOFT (unchanged) |
LOFT |
| HOME |
HOME (unchanged) |
HOME |
Vocabulary Rules
- ❌ NIEMALS "Wohnwagen" (das sind Anhänger!)
- ❌ NIEMALS "Camper" (zu casual)
- ✅ IMMER "Reisemobil" oder "Wohnmobil"
- ✅ IMMER korrekte Modellnamen (PALACE, nicht Palace)
Bavaria Yachts (Vision)
| Concept |
DE |
EN |
FR |
| Asset |
Yacht |
Yacht |
Yacht |
| Party A |
Werft |
Shipyard |
Chantier naval |
| Party B |
Eigner |
Owner |
Propriétaire |
| Test |
Probefahrt |
Sea Trial |
Essai en mer |
| Contract |
Kaufvertrag / Chartervertrag |
Purchase / Charter Agreement |
Contrat de vente / Charter |
| Dealer |
Marina / Werft |
Marina / Dealer |
Marina / Concessionnaire |
Porsche / Hypercars (Vision)
| Concept |
DE |
EN |
FR |
| Asset |
Fahrzeug |
Vehicle |
Véhicule |
| Party A |
Porsche Zentrum |
Porsche Center |
Centre Porsche |
| Party B |
Käufer |
Buyer |
Acheteur |
| Test |
Probefahrt / Track Day |
Test Drive / Track Day |
Essai / Journée circuit |
| Contract |
Kaufvertrag |
Purchase Agreement |
Contrat de vente |
Verge Motorcycles (Vision)
| Concept |
DE |
EN |
FR |
| Asset |
Motorrad |
Motorcycle |
Moto |
| Party A |
Händler |
Dealer |
Concessionnaire |
| Party B |
Käufer |
Buyer |
Acheteur |
| Test |
Probefahrt |
Test Ride |
Essai |
| Contract |
Kaufvertrag |
Purchase Agreement |
Contrat de vente |
🔧 Implementation
TypeScript Interface
export interface VocabularyConfig {
instance_id: string;
locale: 'de-DE' | 'en-US' | 'fr-FR';
context?: string; // 'gym' | 'immobilien' | 'wohnmobil' | 'yacht'
}
export const getVocabulary = (
concept: string,
config: VocabularyConfig
): string => {
const { instance_id, locale, context } = config;
// Instance-specific overrides
const overrides = vocabulary.instances[instance_id];
if (overrides && context && overrides[concept]?.[locale]?.[context]) {
return overrides[concept][locale][context];
}
// Fallback to universal terms
return vocabulary.universal[concept]?.[locale] || concept;
};
Usage Example
// MORELO Context
const term = getVocabulary('asset', {
instance_id: 'morelo',
locale: 'de-DE',
});
// Returns: "Reisemobil"
// FLO GYM Context
const term = getVocabulary('asset', {
instance_id: 'flo',
locale: 'de-DE',
context: 'gym',
});
// Returns: "Mitgliedschaft"
// FLO Immobilien Context
const term = getVocabulary('asset', {
instance_id: 'flo',
locale: 'de-DE',
context: 'immobilien',
});
// Returns: "Immobilie"
📝 Contract Templates
Template Structure
templates/
├── de-DE/
│ ├── kfz_kaufvertrag.hbs
│ ├── mietvertrag.hbs
│ ├── membership.hbs
│ └── yacht_charter.hbs
│
├── en-US/
│ ├── vehicle_purchase.hbs
│ ├── lease_agreement.hbs
│ ├── membership.hbs
│ └── yacht_charter.hbs
│
└── fr-FR/
├── contrat_achat_vehicule.hbs
├── bail.hbs
└── adhesion.hbs
Example: MORELO Kaufvertrag
{{!-- templates/de-DE/kfz_kaufvertrag.hbs --}}
# Kaufvertrag - {{asset.manufacturer}} {{asset.model}}
**zwischen**
**{{party_a.name}}**
{{party_a.address}}
Steuernummer: {{party_a.tax_id}}
*nachfolgend „Verkäufer" genannt*
**und**
**{{party_b.first_name}} {{party_b.last_name}}**
{{party_b.address}}
*nachfolgend „Käufer" genannt*
---
## § 1 Kaufgegenstand
Der Verkäufer verkauft dem Käufer das folgende Reisemobil:
- **Hersteller:** {{asset.manufacturer}}
- **Modell:** {{asset.model}}
- **Fahrgestellnummer (FIN):** {{asset.vin}}
- **Chassis:** {{asset.configuration.chassis}}
- **Motor:** {{asset.configuration.engine}}
**Ausstattung:**
{{#each asset.configuration.options}}
- {{this}}
{{/each}}
---
## § 2 Kaufpreis
Der Kaufpreis beträgt:
**{{financials.total_amount}} {{financials.currency}}**
(in Worten: {{financials.total_amount_words}})
{{#if financials.payment_terms.down_payment}}
**Anzahlung:** {{financials.payment_terms.down_payment}} {{financials.currency}}
**Restbetrag:** {{subtract financials.total_amount financials.payment_terms.down_payment}} {{financials.currency}}
{{/if}}
---
## § 3 Unterschriften
**Ort, Datum:** ________________
**Verkäufer:**
_________________________
**Käufer:**
_________________________
🎨 UI Labels
Component Library
// @contractplattform/ui/src/labels.ts
export const labels = {
'de-DE': {
'button.sign': 'Unterschreiben',
'button.download': 'PDF Herunterladen',
'button.cancel': 'Abbrechen',
'status.draft': 'Entwurf',
'status.signed': 'Unterschrieben',
'form.first_name': 'Vorname',
'form.last_name': 'Nachname',
},
'en-US': {
'button.sign': 'Sign',
'button.download': 'Download PDF',
'button.cancel': 'Cancel',
'status.draft': 'Draft',
'status.signed': 'Signed',
'form.first_name': 'First Name',
'form.last_name': 'Last Name',
},
};
Instance Overrides
// MORELO-specific labels
export const moreloLabels = {
'de-DE': {
'asset.title': 'Reisemobil',
'asset.vin': 'Fahrgestellnummer (FIN)',
'party_a.label': 'Händler',
'party_b.label': 'Kunde',
},
};
// FLO GYM-specific labels
export const floGymLabels = {
'de-DE': {
'asset.title': 'Mitgliedschaft',
'party_a.label': 'Studio Betreiber',
'party_b.label': 'Mitglied',
},
};
🌍 Supported Locales
| Locale |
Language |
Priority |
de-DE |
Deutsch |
✅ Primary |
en-US |
English (US) |
✅ Primary |
fr-FR |
Français |
🟡 Secondary |
it-IT |
Italiano |
🔮 Future |
es-ES |
Español |
🔮 Future |
📋 Translation Workflow
1. Add New Term
// vocabulary.ts
export const vocabulary = {
universal: {
// ...existing
'new_concept': {
'de-DE': 'Neues Konzept',
'en-US': 'New Concept',
'fr-FR': 'Nouveau Concept',
},
},
};
2. Instance Override (if needed)
vocabulary.instances.morelo = {
'new_concept': {
'de-DE': {
'default': 'Morelo-spezifischer Begriff',
},
},
};
3. Update Templates
Next: Scaling Guide →