7.7 KiB
Language Configuration Guide
Setting Up Multi-Language Projects in WDS
Overview
WDS supports two distinct language configurations:
- Specification Language - Language used to WRITE the design specifications
- Product Languages - Languages the final PRODUCT will support
These are configured during workflow initialization and stored in wds-workflow-status.yaml.
Configuration During Setup
Workflow Init (Step 4)
During WDS project setup, you'll be asked:
Question 1: Specification Language
What language should WDS write the design specifications in?
1. English (EN)
2. Swedish (SE)
3. Norwegian (NO)
4. Danish (DK)
5. Other
Question 2: Product Languages
What languages will the final product support?
List them separated by commas (e.g., "EN, SE" or "EN, SE, NO, DK")
Product languages: _____________
Storage in Config
Settings are stored in docs/wds-workflow-status.yaml:
config:
specification_language: 'EN'
product_languages:
- EN
- SE
- NO
How It Works
Specification Language
Used for:
- Instructions and guidance text in specs
- Section descriptions
- Comments and annotations
- PRD documentation
- Design system documentation
Example:
# 1.1 Start Page
## Page Purpose
Convert visitors into users by addressing... ← Written in spec language
## User Situation
Family members experiencing daily stress... ← Written in spec language
Product Languages
Used for:
- All user-facing text content
- Button labels
- Form labels
- Error messages
- Help text
- Any text the END USER sees
Example:
#### Primary CTA Button
**OBJECT ID**: `start-hero-cta`
- **Component**: Button Primary
- **Content**: ← Product languages
- EN: "Get Started"
- SE: "Kom Igång"
- NO: "Kom i Gang"
Common Configurations
Dog Week Example
config:
specification_language: 'EN' # Specs written in English
product_languages:
- EN # Product supports English
- SE # and Swedish
Result:
- Design specs written in English
- All text objects have EN and SE translations
Nordic SaaS Example
config:
specification_language: 'EN' # Specs in English
product_languages:
- EN
- SE
- NO
- DK
- FI # 5 Nordic languages
Internal Swedish Tool
config:
specification_language: 'SE' # Specs in Swedish
product_languages:
- SE # Only Swedish product
Global Product
config:
specification_language: 'EN'
product_languages:
- EN
- SE
- DE
- FR
- ES
- IT
Impact on Workflows
Phase 1: Product Brief
Written in: specification_language
# Product Brief
## Vision
Create a platform that... ← Spec language
## Target Users
Swedish families with... ← Spec language
Phase 2: Trigger Map
Written in: specification_language
Personas and triggers documented in spec language.
Phase 4: UX Design
Specs in: specification_language
Text content in: product_languages (all of them)
## Hero Object
**Purpose**: Primary value proposition ← Spec language
#### Primary Headline
**OBJECT ID**: `start-hero-headline`
- **Component**: H1 heading
- **Position**: Center of hero ← Spec language
- **Content**: ← Product languages
- EN: "Every walk. on time."
- SE: "Varje promenad. i tid."
Phase 5: Design System
Documentation in: specification_language
Component examples in: All product_languages
## Button Component
### Usage ← Spec language
Use this button for primary actions...
### Examples ← Product languages
- EN: "Submit", "Save", "Continue"
- SE: "Skicka", "Spara", "Fortsätt"
Phase 6: PRD Finalization
Written in: specification_language
PRD is technical documentation for developers.
Text Object Pattern
Every text object follows this pattern:
#### {{Purpose_Name}}
**OBJECT ID**: `{{id}}`
- **Component**: {{type}}
- **Position**: {{description}} ← Spec language
- **Style**: {{specifications}} ← Spec language
- **Behavior**: {{description}} ← Spec language
- **Content**: ← Product languages
{{#each product_languages}}
- {{this}}: "{{content}}"
{{/each}}
Real Example:
#### Email Label
**OBJECT ID**: `signin-form-email-label`
- **Component**: Label text
- **Position**: Above email input field
- **For**: signin-form-email-input
- **Content**:
- EN: "Email Address"
- SE: "E-postadress"
- NO: "E-postadresse"
Agent Behavior
During Phase 4
When documenting text objects, agents will:
- Read config from
wds-workflow-status.yaml - Extract
product_languagesarray - Request content for EACH language
- Group translations so each language reads coherently
Agent prompt:
**Content for this Primary Headline:**
**EN:**
**SE:**
**NO:**
User provides all translations, agent validates and documents.
Benefits
✅ Flexibility
- Spec language can differ from product languages
- Teams can work in their native language
- Product can target different markets
✅ Consistency
- All text objects have all languages
- No missing translations
- Complete from the start
✅ Clarity
- Spec readers understand documentation
- End users see their language
- Translators see all languages together
✅ Developer-Friendly
Config provides:
product_languages:
- EN
- SE
- NO
Developers know exactly what languages to implement.
Language Codes Reference
Nordic:
- EN = English
- SE = Swedish (Svenska)
- NO = Norwegian (Norsk)
- DK = Danish (Dansk)
- FI = Finnish (Suomi)
Western Europe:
- DE = German (Deutsch)
- FR = French (Français)
- ES = Spanish (Español)
- IT = Italian (Italiano)
- NL = Dutch (Nederlands)
- PT = Portuguese (Português)
Eastern Europe:
- PL = Polish (Polski)
- CZ = Czech (Čeština)
- RU = Russian (Русский)
Asia:
- JA = Japanese (日本語)
- ZH = Chinese (中文)
- KO = Korean (한국어)
Other:
- AR = Arabic (العربية)
- TR = Turkish (Türkçe)
Example: Dog Week Configuration
During Setup
Specification Language: EN
Product Languages: EN, SE
Stored Config
# docs/wds-workflow-status.yaml
config:
specification_language: 'EN'
product_languages:
- EN
- SE
In Specifications
# 1.1 Start Page
The start page serves as the primary entry point... ← Written in EN
#### Primary Headline
**OBJECT ID**: `start-hero-headline`
- **Component**: H1 heading
- **Position**: Center of hero section ← Written in EN
- **Content**:
- EN: "Every walk. on time. Every time." ← Product language 1
- SE: "Varje promenad. i tid. Varje gång." ← Product language 2
For Developers
// Read from config
const languages = ['EN', 'SE'];
// All text has both languages
const content = {
'start-hero-headline': {
en: 'Every walk. on time. Every time.',
se: 'Varje promenad. i tid. Varje gång.',
},
};
Updating Language Configuration
If you need to add/change languages mid-project:
- Update
docs/wds-workflow-status.yaml - Add missing translations to existing text objects
- Continue with new language config
Before:
product_languages:
- EN
- SE
After:
product_languages:
- EN
- SE
- NO # Added Norwegian
Update existing specs:
#### Primary Headline
- **Content**:
- EN: "Every walk. on time."
- SE: "Varje promenad. i tid."
- NO: "Hver tur. i tide." ← Add new language
Language configuration ensures complete, translation-ready specifications from day one! 🌍✨