feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command
Add /ultraresearch-local for structured research combining local codebase analysis with external knowledge via parallel agent swarms. Produces research briefs with triangulation, confidence ratings, and source quality assessment. New command: /ultraresearch-local with modes --quick, --local, --external, --fg. New agents: research-orchestrator (opus), docs-researcher, community-researcher, security-researcher, contrarian-researcher, gemini-bridge (all sonnet). New template: research-brief-template.md. Integration: --research flag in /ultraplan-local accepts pre-built research briefs (up to 3), enriches the interview and exploration phases. Planning orchestrator cross-references brief findings during synthesis. Design principle: Context Engineering — right information to right agent at right time. Research briefs are structured artifacts in the pipeline: ultraresearch → brief → ultraplan --research → plan → ultraexecute. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
baa2d0220b
488 changed files with 213221 additions and 0 deletions
|
|
@ -0,0 +1,657 @@
|
|||
# Localization and Globalization in Copilot
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Status:** GA
|
||||
**Category:** Copilot Extensibility & Integration
|
||||
|
||||
---
|
||||
|
||||
## Introduksjon
|
||||
|
||||
Localization og globalization handler om å gjøre Copilot-løsninger tilgjengelige og effektive på tvers av språk og kulturer. Microsoft Copilot-plattformen (inkludert Copilot Studio, Microsoft 365 Copilot, og Azure AI) tilbyr omfattende flerspråklig støtte som gjør det mulig å bygge én enkelt agent som kan kommunisere med brukere på deres eget språk.
|
||||
|
||||
**Nøkkelforskjell:**
|
||||
- **Localization (L10N):** Tilpasning av innhold til spesifikke språk (translations, UI strings)
|
||||
- **Globalization (G11N):** Formatering av data i henhold til locale (datoer, valuta, tall, postnummer)
|
||||
|
||||
I praksis kombinerer Microsofts tilnærming begge: automatisk språkgjenkjenning, dynamisk oversettelse, og locale-basert formatering i én sammenhengende opplevelse.
|
||||
|
||||
**Viktige prinsipper:**
|
||||
- **Browser-basert språkdeteksjon** (anbefalt): Agenten svarer automatisk på brukerens nettleserspråk
|
||||
- **Dynamisk språkbytte**: Agenter med generative orchestration kan bytte språk midt i samtalen
|
||||
- **Primærspråk + sekundærspråk**: Alt authoring i primærspråk, oversettelser håndteres via JSON/ResX-filer
|
||||
- **Automatisk generativ oversettelse**: Generative svar oversettes automatisk når generative orchestration er aktivert
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
---
|
||||
|
||||
## Kjernekomponenter
|
||||
|
||||
### 1. Copilot Studio Multilingual Agents
|
||||
|
||||
**Primærspråk vs. Sekundærspråk:**
|
||||
- **Primærspråk**: Settes ved opprettelse av agent, kan ikke endres senere (men region kan justeres)
|
||||
- **Sekundærspråk**: Legges til via Settings > Languages, krever manuell oversettelse av statisk innhold
|
||||
|
||||
**Språkdeteksjon:**
|
||||
- Brukerens nettleser-locale detekteres automatisk ved session start
|
||||
- Hvis språket ikke er konfigurert for agenten, fallback til primærspråk
|
||||
- Systemvariabel `System.User.Language` styrer aktivt språk
|
||||
- Voice agents støtter spesifikke multilingual workstreams med telefonnummer per språk
|
||||
|
||||
**Authoring-modell:**
|
||||
- All authoring i primærspråk (redigeringskanvas, topics, nodes)
|
||||
- Oversettelser håndteres via **localization files** (JSON eller ResX)
|
||||
- For generative svar: automatisk oversettelse (ingen manuell fil)
|
||||
- For statiske meldinger: Last ned fil → oversett → last opp
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
### 2. Systemvariabel: System.User.Language
|
||||
|
||||
**Sentralt kontrollpunkt for språk:**
|
||||
- Setter agentens aktive språk i samtalen
|
||||
- Kan settes manuelt, programmatisk, eller detekteres automatisk
|
||||
- Brukes både for søk i knowledge sources og generering av svar
|
||||
|
||||
**Effekt på oppførsel:**
|
||||
- **Knowledge search**: Søk oversettes til språket i `System.User.Language` (auto-translation for search query)
|
||||
- **Answer generation**: Svar genereres på språket i `System.User.Language` (auto-translation for answer generation)
|
||||
- **Manual override**: Kan settes eksplisitt i topics for å tvinge språkbytte
|
||||
|
||||
**Eksempel: Midtsamtale språkbytte**
|
||||
```yaml
|
||||
# I en topic, etter en Question node:
|
||||
kind: SetVariable
|
||||
variable: System.User.Language
|
||||
value: "nb-NO"
|
||||
```
|
||||
|
||||
Best practice: Bytt språk rett etter en **Question** node for å sikre konsistens i meldinger mellom spørsmål.
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
### 3. Dynamic Language Switching (Generative Orchestration)
|
||||
|
||||
**Kun tilgjengelig med generative orchestration aktivert.**
|
||||
|
||||
Agent kan detektere brukerens språk i hver melding og bytte språk dynamisk gjennom samtalen.
|
||||
|
||||
**Implementasjonsmønster:**
|
||||
1. Opprett topic med trigger "A message is received"
|
||||
2. Legg til prompt-node med instruksjon: "Determine which language this message is written in"
|
||||
3. Send `Activity.Text` (incoming message) som input
|
||||
4. Output: JSON med property `language`
|
||||
5. Legg til Condition node som sjekker `DetectedLanguage.structuredOutput.language`
|
||||
6. For hver branch: Sett `System.User.Language` til detektert språk
|
||||
|
||||
**Viktige hensyn:**
|
||||
- **Kostnad**: Språkdeteksjon bruker AI prompts og genererer usage costs
|
||||
- **Vedlikehold**: Custom language topics må vedlikeholdes over tid
|
||||
- **Anbefaling**: For de fleste scenarioer er browser-based localization enklere og mer kostnadseffektivt
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
### 4. Localization Files (JSON/ResX)
|
||||
|
||||
**Workflow:**
|
||||
1. **Last ned**: Settings > Languages > Upload (for sekundærspråk) → velg format (JSON/ResX)
|
||||
2. **Oversett**: Fil inneholder alle strings i primærspråk, erstatt med oversettelser
|
||||
3. **Last opp**: Upload fil via samme panel
|
||||
4. **Test**: Test panel → velg språk → verifiser samtale
|
||||
|
||||
**Håndtering av endringer:**
|
||||
- Nye strings: Vises i primærspråk i nedlastning, må oversettes manuelt
|
||||
- Modifiserte strings: Beholder samme ID, må sammenlignes med forrige fil for å identifisere endringer
|
||||
- **Incremental changes er IKKE auto-translated** — manuell prosess påkrevd
|
||||
|
||||
**Limitasjoner:**
|
||||
- **Adaptive Cards**: Mixed-type strings (statisk tekst + variabler) inkluderes IKKE i localization files
|
||||
- **Workaround**: Bruk "Set text variable" node (via code editor) for å lagre hele strengen med variabler, referer kun til variabel i Adaptive Card
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
### 5. Globalization (Locale Formatting)
|
||||
|
||||
**Copilot Studio formaterer automatisk:**
|
||||
- **Dato og tid**: `2/3` = March 2 (en-GB) vs. February 3 (en-US)
|
||||
- **Tall**: Tusen-separator og desimaltegn varierer
|
||||
- **Postnummer**: Validering og format (ZIP vs. postal code)
|
||||
- **Valuta**: Symbol og plassering
|
||||
- **Hastighet**: km/h vs. mph
|
||||
|
||||
**Støttede locale for web app:**
|
||||
- en-AU, en-CA, en-GB, en-IN, en-US
|
||||
|
||||
**Teams app:**
|
||||
- Støtter bredere sett enn Copilot Studio
|
||||
- Hvis Teams-språk ikke støttes av Copilot Studio → fallback til en-US
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
### 6. Microsoft 365 Copilot Language Support
|
||||
|
||||
**Microsoft 365 Copilot** har utvidet språkstøtte utover Copilot Studio. Per august 2025 ble 6 nye språk lagt til: Albanian, Filipino, Icelandic, Malay, Maltese, Serbian (Cyrillic).
|
||||
|
||||
**Agent Builder i Microsoft 365 Copilot:**
|
||||
- **Authoring canvas languages**: 26 språk (inkludert norsk bokmål nb-NO)
|
||||
- **Describe tab**: Støtter alle språk som Microsoft 365 Copilot støtter
|
||||
|
||||
**Voice agents:**
|
||||
- Støtter multilingual voice channels med egne telefonnumre per språk
|
||||
- Eller én telefon med multiple språk via workstream-konfigurasjon
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
---
|
||||
|
||||
## Arkitekturmønstre
|
||||
|
||||
### Mønster 1: Browser-Based Localization (Anbefalt)
|
||||
|
||||
**Tilnærming:**
|
||||
- Agent responderer automatisk på brukerens nettleserspråk
|
||||
- Ingen custom logic nødvendig
|
||||
- Sekundærspråk konfigureres i Settings > Languages
|
||||
|
||||
**Når å bruke:**
|
||||
- Globale eller store publikum
|
||||
- Enklest oppsett
|
||||
- Brukere kan endre nettleserspråk
|
||||
|
||||
**Konfigurasjon:**
|
||||
1. Add languages i Copilot Studio (Settings > Languages)
|
||||
2. Last ned localization files, oversett, last opp (valgfritt for generative agents)
|
||||
3. Publish
|
||||
|
||||
**Fordeler:**
|
||||
- Enkel å vedlikeholde
|
||||
- Ingen ekstra kostnader
|
||||
- Skalerer godt
|
||||
|
||||
**Ulemper:**
|
||||
- Krever at brukere setter korrekt nettleserspråk
|
||||
- Språk settes ved session start, ikke dynamisk
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
### Mønster 2: Dynamic Language Switching (Avansert)
|
||||
|
||||
**Tilnærming:**
|
||||
- Custom topic med "Message received" trigger
|
||||
- Prompt for språkdeteksjon i hver melding
|
||||
- Condition-basert setting av `System.User.Language`
|
||||
|
||||
**Når å bruke:**
|
||||
- Brukere bytter språk ofte i samme samtale
|
||||
- Nettleserspråk reflekterer ikke brukerens faktiske preferanse
|
||||
- Avansert brukscase med høy språkfleksibilitet
|
||||
|
||||
**Konfigurasjon:**
|
||||
1. Aktiver generative orchestration
|
||||
2. Opprett topic med "Message received" trigger
|
||||
3. Legg til prompt-node (input: `Activity.Text`, output: `DetectedLanguage`)
|
||||
4. Condition: sjekk `DetectedLanguage.structuredOutput.language`
|
||||
5. Set `System.User.Language` per branch
|
||||
|
||||
**Fordeler:**
|
||||
- Høyeste fleksibilitet
|
||||
- Brukere kan bytte språk fritt
|
||||
|
||||
**Ulemper:**
|
||||
- **Kostnad**: AI prompts per melding
|
||||
- **Vedlikehold**: Custom logic må oppdateres
|
||||
- **Kompleksitet**: Mer å teste og validere
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
### Mønster 3: Separate Agents per Language (Legacy)
|
||||
|
||||
**Tilnærming:**
|
||||
- Én agent per språk
|
||||
- Ingen delt innhold
|
||||
|
||||
**Når å unngå:**
|
||||
- Microsoft anbefaler nå multilingual agents
|
||||
- Høyere vedlikeholdskostnad
|
||||
- Vanskeligere å holde konsistent
|
||||
|
||||
**Bruk kun hvis:**
|
||||
- Regulative krav krever separasjon
|
||||
- Svært spesialisert innhold per marked
|
||||
|
||||
**Confidence marker:** Baseline (legacy approach)
|
||||
|
||||
### Mønster 4: Real-Time Translation Proxy (Mellomtjeneste)
|
||||
|
||||
**Tilnærming:**
|
||||
- Ekstern oversettelsestjeneste (f.eks. Azure Translator) mellom bruker og agent
|
||||
- Agent opererer kun på primærspråk
|
||||
- Oversettelse før/etter agent-interaksjon
|
||||
|
||||
**Når å bruke:**
|
||||
- Agent har ikke språk konfigurert for brukerens behov
|
||||
- Integrasjon med eldre systemer
|
||||
- Real-time translation av eksterne data sources
|
||||
|
||||
**Fordeler:**
|
||||
- Agent forblir enkel
|
||||
- Kan støtte vilkårlige språk via Azure Translator
|
||||
|
||||
**Ulemper:**
|
||||
- Ekstra latency
|
||||
- Oversettelseskostnad per melding
|
||||
- Kan miste kontekst/nyanse
|
||||
|
||||
**Confidence marker:** Baseline (integrasjonsmønster)
|
||||
|
||||
---
|
||||
|
||||
## Beslutningsveiledning
|
||||
|
||||
### Når skal du velge hva?
|
||||
|
||||
| Scenario | Anbefalt tilnærming | Begrunnelse |
|
||||
|----------|---------------------|-------------|
|
||||
| Global SaaS-agent (10+ språk) | Browser-Based Localization | Enkelt, skalerbart, ingen ekstra kostnader |
|
||||
| HR-agent for multinasjonalt selskap | Browser-Based Localization | Brukere har riktig nettleserspråk satt |
|
||||
| Kundeservice-agent (dynamisk språk) | Dynamic Language Switching | Kunder kan ikke alltid endre nettleserspråk |
|
||||
| Voice agent (telefon) | Multilingual workstream med språkvalg | Standard mønster for voice channels |
|
||||
| Agent med svært spesialisert domene per marked | Separate Agents per Language | Kun hvis innhold er fundamentalt forskjellig |
|
||||
| Legacy integrasjon | Real-Time Translation Proxy | Når agent ikke kan endres |
|
||||
|
||||
### Sjekkliste for språkstrategi
|
||||
|
||||
1. **Identifiser språkbehov:**
|
||||
- Hvilke språk trenger brukerne?
|
||||
- Sjekk mot [Copilot Studio language support](https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-language-support)
|
||||
|
||||
2. **Vurder brukeratferd:**
|
||||
- Har brukere riktig nettleserspråk?
|
||||
- Bytter de språk ofte i samme samtale?
|
||||
|
||||
3. **Vurder innholdstype:**
|
||||
- Mye statisk innhold (topics) → trenger localization files
|
||||
- Mye generativt innhold → automatisk oversettelse
|
||||
|
||||
4. **Vurder kostnad:**
|
||||
- Dynamic language switching → AI prompt cost per melding
|
||||
- Browser-based → ingen ekstra kostnad
|
||||
|
||||
5. **Vurder vedlikehold:**
|
||||
- Localization files → manuell prosess ved endringer
|
||||
- Generative orchestration → automatisk, men krever testing
|
||||
|
||||
6. **Test grundig:**
|
||||
- Test panel → bytt språk → verifiser samtaler
|
||||
- Demo website → sett nettleserspråk → verifiser
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
---
|
||||
|
||||
## Integrasjon med Microsoft-stakken
|
||||
|
||||
### Copilot Studio + Microsoft 365 Copilot
|
||||
|
||||
**Agent Builder:**
|
||||
- Opprett agents i Microsoft 365 Copilot via Agent Builder
|
||||
- Authoring canvas i 26 språk (inkludert norsk)
|
||||
- Describe tab støtter alle M365 Copilot-språk
|
||||
|
||||
**Integrasjon:**
|
||||
- Agents opprettet i Copilot Studio kan integreres i M365 Copilot
|
||||
- Språkstøtte følger Copilot Studio-regler (primær + sekundære språk)
|
||||
- Generative svar oversettes automatisk hvis orchestration er aktivert
|
||||
|
||||
**SharePoint Agents:**
|
||||
- Kan deles i Teams
|
||||
- Støtter multiple SharePoint agents i én group chat/channel
|
||||
- Respekterer brukerens Teams-språkinnstilling
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
### Azure AI Services Integration
|
||||
|
||||
**Azure Speech Services:**
|
||||
- Language identification for voice agents
|
||||
- `AutoDetectSourceLanguageConfig` for automatisk språkdeteksjon
|
||||
- Støtter custom speech models per språk
|
||||
|
||||
**Azure Translator:**
|
||||
- Real-time translation proxy pattern
|
||||
- Kan brukes for oversettelse av knowledge sources
|
||||
- Støtter 100+ språk utover Copilot Studio
|
||||
|
||||
**Azure CLU (Conversational Language Understanding):**
|
||||
- Multilingual intent recognition
|
||||
- Må synkroniseres med Copilot Studio topics
|
||||
- Se [Azure CLU supported languages](https://learn.microsoft.com/en-us/azure/ai-services/language-service/conversational-language-understanding/language-support)
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
### Power Platform Integration
|
||||
|
||||
**Power Automate:**
|
||||
- Flows kan motta språkparameter fra agent
|
||||
- Bruk `System.User.Language` i adaptive cards/flows
|
||||
- Adaptive Cards kan lokaliseres via workaround (Set text variable)
|
||||
|
||||
**Dataverse:**
|
||||
- Flerspråklige entity labels
|
||||
- Language-aware queries
|
||||
- User preferred language field
|
||||
|
||||
**AI Builder:**
|
||||
- Language detection model via Power Fx: `'Language detection'.Predict(text).Language`
|
||||
- Kan brukes for pre-processing eller validering
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
### Dynamics 365 Customer Service (Voice Agents)
|
||||
|
||||
**Multilingual Voice Channels:**
|
||||
- Konfigurer workstream med primær + sekundære språk
|
||||
- Routing rules basert på `Conversation.CustomerLanguage`
|
||||
- Separate queues per språk
|
||||
|
||||
**Bot Framework Composer:**
|
||||
- Legacy approach for multilingual voice bots
|
||||
- Nyere Copilot Studio multilingual agents anbefales nå
|
||||
|
||||
**Confidence marker:** Verified (MCP microsoft-learn, 2026-02)
|
||||
|
||||
---
|
||||
|
||||
## Offentlig sektor (Norge)
|
||||
|
||||
### Språkkrav i norsk offentlig sektor
|
||||
|
||||
**Lovverk:**
|
||||
- **Språkloven**: Offentlige tjenester skal være tilgjengelige på norsk (bokmål og nynorsk)
|
||||
- **Samisk språklov**: Krav om samisk i enkelte regioner/sektorer
|
||||
- **Universell utforming**: Inkluderer språklig tilgjengelighet
|
||||
|
||||
**Praktisk tilnærming:**
|
||||
1. **Primærspråk**: Norsk bokmål (nb-NO)
|
||||
2. **Sekundærspråk**: Nynorsk (nn-NO), samisk (kun hvis påkrevd)
|
||||
3. **Engelsk**: For internasjonale brukere (en-US eller en-GB)
|
||||
|
||||
**Copilot Studio-støtte for norsk:**
|
||||
- **Bokmål (nb-NO)**: Fully supported (authoring + conversation)
|
||||
- **Nynorsk (nn-NO)**: Sjekk language support-dokumentasjon (kan være preview)
|
||||
- **Samisk**: Ikke native støtte → vurder Azure Translator proxy
|
||||
|
||||
**Confidence marker:** Baseline + Verified (language list)
|
||||
|
||||
### Spesifikke hensyn
|
||||
|
||||
**Personvern (GDPR):**
|
||||
- Språkpreferanse kan være persondata
|
||||
- Lagring av `System.User.Language` i sessions data
|
||||
- Vurder databehandleravtale for oversettelsestjenester
|
||||
|
||||
**Tilgjengelighet (WCAG):**
|
||||
- Locale-formatering viktig for skjermlesere (datoer, tall)
|
||||
- Bruk Copilot Studios innebygde formatting (ikke custom logic)
|
||||
|
||||
**Sikkerhetsklarering:**
|
||||
- Vurder om oversettelsestjenester (Azure Translator) kan brukes med klassifisert data
|
||||
- Dynamic language switching → LLM-basert → vurder dataplassering
|
||||
|
||||
**Kostnadsmodell for stat/kommune:**
|
||||
- Browser-based localization → ingen ekstra kostnader
|
||||
- Dynamic language switching → budsjett for AI prompt usage
|
||||
|
||||
**Anbefaling for offentlig sektor:**
|
||||
- **Start med browser-based localization** (bokmål + engelsk)
|
||||
- Legg til nynorsk hvis påkrevd (manual translation)
|
||||
- Vurder dynamic switching kun for spesialiserte use cases
|
||||
|
||||
**Confidence marker:** Baseline (policy interpretation)
|
||||
|
||||
---
|
||||
|
||||
## Kostnad og lisensiering
|
||||
|
||||
### Copilot Studio Licensing
|
||||
|
||||
**Per-user eller per-session:**
|
||||
- Multilingual agents teller ikke som separate agents
|
||||
- Ingen ekstra kostnad for å legge til sekundærspråk
|
||||
|
||||
**Consumption-basert (Pay-as-you-go):**
|
||||
- Generative orchestration bruker AI capacity
|
||||
- **Dynamic language switching**: Ekstra prompts per melding → økt consumption
|
||||
|
||||
**Estimat (Dynamic Language Switching):**
|
||||
- Språkdeteksjon: ~50-100 tokens per melding
|
||||
- Hvis 10 000 meldinger/måned → ~500k-1M ekstra tokens
|
||||
- Kostnad avhenger av Copilot Studio pricing tier
|
||||
|
||||
**Anbefaling:**
|
||||
- Bruk browser-based localization for kostnadsoptimalisering
|
||||
- Dynamic switching kun når nødvendig
|
||||
|
||||
**Confidence marker:** Baseline (pricing må verifiseres per kunde)
|
||||
|
||||
### Azure Translator (hvis proxy-pattern)
|
||||
|
||||
**Pay-per-character:**
|
||||
- Standard pricing: ~$10 per 1M characters (varierer per region)
|
||||
- Custom Translator: Ekstra kostnad for custom models
|
||||
|
||||
**TCO-sammenligning:**
|
||||
- Browser-based: $0 ekstra
|
||||
- Dynamic switching (Copilot Studio): Basert på AI capacity
|
||||
- Azure Translator proxy: Per-character cost
|
||||
|
||||
**Confidence marker:** Baseline (external pricing)
|
||||
|
||||
### Vedlikeholdskostnad
|
||||
|
||||
**Localization files:**
|
||||
- Manuell oversettelse ved hver endring i topics
|
||||
- Estimat: 2-4 timer per språk per større oppdatering
|
||||
|
||||
**Dynamic language switching:**
|
||||
- Testing av språkdeteksjon: 1-2 timer per språk
|
||||
- Vedlikehold av custom topic: Løpende
|
||||
|
||||
**Generative orchestration:**
|
||||
- Automatisk oversettelse → minimal vedlikehold
|
||||
- Men krever grundig testing av kvalitet
|
||||
|
||||
**Anbefaling:**
|
||||
- For statisk innhold: Invester i localization workflow
|
||||
- For generativt innhold: Bruk auto-translation
|
||||
|
||||
**Confidence marker:** Baseline (estimater)
|
||||
|
||||
---
|
||||
|
||||
## For arkitekten (Cosmo)
|
||||
|
||||
### Når kunden spør om flerspråklig støtte
|
||||
|
||||
**Typiske spørsmål:**
|
||||
1. "Kan Copilot-agenten vår støtte norsk og engelsk?"
|
||||
2. "Hvordan håndterer vi brukere som bytter språk midt i samtalen?"
|
||||
3. "Må vi bygge separate agents for hvert språk?"
|
||||
4. "Hva koster det å legge til flere språk?"
|
||||
|
||||
**Mitt svar (Cosmo):**
|
||||
1. **Start alltid med browser-based localization** → enklest, billigst, skalerbart
|
||||
2. **Sjekk language support** → norsk bokmål er fully supported
|
||||
3. **Vurder innholdstype:**
|
||||
- Mye statisk (topics) → planlegg for localization files
|
||||
- Mye generativt → aktiver generative orchestration for auto-translation
|
||||
4. **Dynamic switching kun hvis:**
|
||||
- Brukere bytter språk ofte i samme session
|
||||
- Browser-språk ikke kan stoles på
|
||||
5. **Separate agents kun hvis:**
|
||||
- Regulative krav
|
||||
- Innhold er fundamentalt forskjellig per marked
|
||||
|
||||
### Anbefalte spørsmål til kunden
|
||||
|
||||
1. **Brukeratferd:**
|
||||
- Hvor mange språk trenger dere?
|
||||
- Har brukerne riktig nettleserspråk satt?
|
||||
- Bytter de språk ofte?
|
||||
|
||||
2. **Innholdstype:**
|
||||
- Hvor mye statisk innhold (topics, prompts)?
|
||||
- Hvor mye generativt innhold (knowledge sources)?
|
||||
- Adaptive Cards med variabler?
|
||||
|
||||
3. **Vedlikehold:**
|
||||
- Hvem oversetter innhold?
|
||||
- Hvor ofte endres topics?
|
||||
- Kan dere automatisere oversettelse (translation memory)?
|
||||
|
||||
4. **Kostnad:**
|
||||
- Hva er budsjettet for AI capacity?
|
||||
- Akseptabelt med manuell oversettelsesprosess?
|
||||
|
||||
5. **Compliance:**
|
||||
- GDPR-hensyn rundt språkpreferanse?
|
||||
- Krav om spesifikke språk (nynorsk, samisk)?
|
||||
- Sikkerhetsklarering for oversettelsestjenester?
|
||||
|
||||
### Red flags
|
||||
|
||||
❌ **"Vi trenger 20+ språk umiddelbart"**
|
||||
→ Foreslå faseinndeling: Start med 2-3 viktigste språk, valider, deretter skaleringstrategi
|
||||
|
||||
❌ **"Brukerne må kunne bytte språk uten å endre nettleser"**
|
||||
→ Vurder om dynamic switching faktisk trengs, eller om in-agent language selector (custom logic) er nok
|
||||
|
||||
❌ **"Vi vil oversette alt manuelt"**
|
||||
→ Vurder om generative orchestration kan redusere manuell innsats (særlig for knowledge-driven answers)
|
||||
|
||||
❌ **"Vi bygger én agent per språk fordi det er enklere"**
|
||||
→ Utfordre: Separate agents er vanskeligere å vedlikeholde langsiktig
|
||||
|
||||
### Suksesskriterier
|
||||
|
||||
✅ **Språkstrategi definert:** Browser-based vs. dynamic switching
|
||||
✅ **Language support verifisert:** Sjekket mot Microsoft-dokumentasjon
|
||||
✅ **Localization workflow:** Prosess for nedlasting, oversettelse, opplasting
|
||||
✅ **Testing plan:** Scenario per språk, både statisk og generativt innhold
|
||||
✅ **Kostnad estimert:** AI capacity for dynamic switching, vedlikehold for localization files
|
||||
✅ **Compliance vurdert:** GDPR, språklov, sikkerhetsklarering
|
||||
|
||||
### Arkitekturbeslutninger å dokumentere (ADR)
|
||||
|
||||
1. **Språkstrategi:** Browser-based vs. dynamic switching vs. separate agents
|
||||
2. **Primær- og sekundærspråk:** Hvilke språk, hvilken rekkefølge
|
||||
3. **Oversettelsesprosess:** Manuell vs. automatisk, hvem har ansvar
|
||||
4. **Generative orchestration:** On/off, og implikasjoner for auto-translation
|
||||
5. **Azure Translator integrasjon:** Hvis proxy-pattern brukes
|
||||
6. **Testing-strategi:** Hvordan verifisere kvalitet per språk
|
||||
|
||||
### Quick-win anbefaling
|
||||
|
||||
**Fase 1 (MVP):**
|
||||
- Primærspråk: Norsk bokmål (nb-NO)
|
||||
- Sekundærspråk: Engelsk (en-US)
|
||||
- Tilnærming: Browser-based localization
|
||||
- Innhold: Generative orchestration → auto-translation
|
||||
|
||||
**Fase 2 (Scale):**
|
||||
- Legg til flere sekundærspråk basert på faktisk brukerdata
|
||||
- Implementer localization workflow for statisk innhold
|
||||
- Vurder dynamic switching hvis brukerfeedback indikerer behov
|
||||
|
||||
**Fase 3 (Optimize):**
|
||||
- Translation memory for effektiv oversettelse
|
||||
- Custom Translator models for domene-spesifikk terminologi
|
||||
- Analytics på språkbruk for optimalisering
|
||||
|
||||
**Confidence marker:** Baseline (rådgivning)
|
||||
|
||||
---
|
||||
|
||||
## Kilder og verifisering
|
||||
|
||||
### Microsoft Learn (Verified via MCP 2026-02)
|
||||
|
||||
1. **Configure and create multilingual agents**
|
||||
https://learn.microsoft.com/en-us/microsoft-copilot-studio/multilingual
|
||||
- Primær kilde for Copilot Studio multilingual configuration
|
||||
- Dekker: add languages, localization files, dynamic language switching, testing
|
||||
|
||||
2. **Regional settings including supported locales and formats**
|
||||
https://learn.microsoft.com/en-us/microsoft-copilot-studio/data-localization
|
||||
- Globalization og locale formatting
|
||||
- Supported locales for web app og Teams
|
||||
|
||||
3. **Design effective language understanding**
|
||||
https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/language-understanding
|
||||
- `System.User.Language` variable
|
||||
- Auto-detect spoken language
|
||||
- Best practices for localization
|
||||
|
||||
4. **Language support**
|
||||
https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-language-support
|
||||
- Full liste over støttede språk per feature
|
||||
- Authoring canvas vs. conversational experience
|
||||
|
||||
5. **Make Your Employee Self-Service Agent Multilingual**
|
||||
https://learn.microsoft.com/en-us/copilot/microsoft-365/employee-self-service/employee-self-service-multilingual
|
||||
- Browser-based localization (recommended)
|
||||
- Dynamic language switching (advanced)
|
||||
- Known limitations
|
||||
|
||||
6. **Agent Builder regional availability and language support**
|
||||
https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/agent-builder-regional-availability
|
||||
- M365 Copilot Agent Builder language support
|
||||
- Authoring canvas languages (26 inkludert norsk)
|
||||
|
||||
7. **Microsoft 365 Copilot release notes**
|
||||
https://learn.microsoft.com/en-us/copilot/microsoft-365/release-notes
|
||||
- Nyeste språkutvidelser (Albanian, Filipino, etc. per aug 2025)
|
||||
- Multilingual support i Viva Glint Copilot
|
||||
|
||||
### Azure AI Services (Referenced)
|
||||
|
||||
8. **Azure Speech Services Language Identification**
|
||||
https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-identification
|
||||
- Auto-detect source language for voice agents
|
||||
- Code samples for multilingual translation
|
||||
|
||||
9. **Azure CLU Language Support**
|
||||
https://learn.microsoft.com/en-us/azure/ai-services/language-service/conversational-language-understanding/language-support
|
||||
- Conversational Language Understanding multilingual support
|
||||
|
||||
### Dynamics 365 (Referenced)
|
||||
|
||||
10. **Configure multilingual voice agents**
|
||||
https://learn.microsoft.com/en-us/dynamics365/contact-center/administer/configure-multilingual-agents
|
||||
- Voice channel multilingual configuration
|
||||
- Workstream og routing rules
|
||||
|
||||
### GitHub Samples (Referenced)
|
||||
|
||||
11. **CopilotStudioSamples - AutoDetectLanguageSample**
|
||||
https://github.com/microsoft/CopilotStudioSamples/tree/main/AutoDetectLanguageSample
|
||||
- Sample solution for auto-detect language with generative responses
|
||||
|
||||
### Baseline Knowledge (Model)
|
||||
|
||||
- GDPR og språkpreferanse som persondata
|
||||
- Norsk språklov og samisk språklov
|
||||
- WCAG-krav for locale formatting
|
||||
- TCO-sammenligning for oversettelsesstrategier
|
||||
|
||||
**Total kilder:** 11 Verified (MCP), supplert med baseline policy-kunnskap
|
||||
|
||||
---
|
||||
|
||||
**Sluttord:**
|
||||
|
||||
Localization og globalization i Copilot-plattformen handler om å velge riktig balanse mellom enkelhet, kostnad og brukeropplevelse. **Browser-based localization er utgangspunktet** for de fleste scenarioer, mens **dynamic language switching** er en kraftig, men kostbar, løsning for spesialiserte behov. Med generative orchestration får du automatisk oversettelse av generativt innhold, noe som drastisk reduserer vedlikeholdsbyrden. For norsk offentlig sektor: Start med bokmål og engelsk, valider, og skaler deretter basert på faktisk behov.
|
||||
|
||||
**Cosmo Skybergs anbefaling:** Gjør det enkelt først, skaler smart, og dokumenter valgene i en ADR.
|
||||
Loading…
Add table
Add a link
Reference in a new issue