KB-currency refresh (medium priority, 2026-06-19) via /architect:kb-update. 74 medium-prioritets filer re-verifisert mot Microsoft Learn (MCP) — delegert til 15 parallelle Opus-subagenter (3 bølger) gruppert etter delt kilde, med disjunkte fil-sett. Verifisert i hovedkontekst (scope-sjekk + diff-review av de faktatunge gruppene + tester). Hovedendringer (faktuelle korreksjoner + currency): - Azure AI Search semantic ranker: TILGJENGELIG PÅ ALLE TIERS (også Free/Basic m/ gratis månedlig kvote) — gammel KB sa feilaktig "kun S1+". Korrigert i tier-tabell, anti-patterns og beslutningstabell (azure-ai-search-setup). - APIM score-threshold = DISTANSE (lavere = strengere): tuning-tabellen i rag-caching-optimization hadde retningen baklengs — invertert til korrekt. - Agentic retrieval GA/preview-nyanse presisert (hovedkontekst-korreksjon mot agentic-retrieval-how-to-migrate): GA via REST 2026-04-01 returnerer EKSTRAKTIV grounding (references + activity), IKKE syntetiserte svar. Answer synthesis, ikke-minimal reasoning effort (LLM query planning) og multi-turn messages forblir preview (2026-05-01-preview). Subagent hadde overforenklet til "hele kjernepipelinen GA"; rettet i agentic-rag-patterns + citation-tracking. - Copilot Studio modell-tabeller (platforms/copilot-studio): fjernet Claude Opus 4.5 + GPT-5.2 (borte fra kilde), lagt til Claude Sonnet 4.6/Opus 4.6 (GA), Opus 4.7 + Mistral Medium 3.5 (experimental); GPT-5 Reasoning/Auto = preview; A2A GA (apr 2026). - Computer Use (CUA): Copilot Studio GA 2026-05-07; 4 modeller m/ tier/status (OpenAI CUA + Sonnet 4.5 GA, Sonnet 4.6 + Opus 4.6 experimental); 5 credits/ steg standard, 15 premium; US-only region-krav FJERNET i GA-dok; Cloud PC pool + Hosted browser + bring-your-own-machine. - Azure AI Search REST API-versjoner bumpet: 2025-09-01 -> 2026-04-01 (stabil), 2025-11-01-preview -> 2026-05-01-preview (hybrid-search, rag-security-rbac, chunking). - Power Automate-integrasjon: trigger "Run a flow from Copilot" -> "When an agent calls the flow"; App Service innebygd MCP (preview) lagt til. - M365 Copilot-manifest v1.26 -> v1.28 (GA, mai) / v1.29 dokumentert (juni); "Tenant graph grounding" -> "Work IQ". - Speech fast transcription 2t/300MB -> 5t/500MB; multilingual 14 -> 15 locales (+ pt-BR). Content Understanding reasoning preview -> GA (v1.0, 2025-11-01). - Security Copilot E5 -> E5+E7. Død Databricks-URL ci-cd/best-practices -> ci-cd/flows. Prompt Flow retirement (2027-04-20 -> MAF) notert der den presenteres som go-forward. Gateway-topologi-tabell-feil rettet. - Alle 74 Last updated -> 2026-06-19. Discovery ikke kjørt (historisk kun Databricks-støy) -> 389-telling uendret, ingen resync. validate 239 PASS, kb-integrity 115/115 (262 orphan-warnings uendret), gitleaks clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
658 lines
25 KiB
Markdown
658 lines
25 KiB
Markdown
# Localization and Globalization in Copilot
|
|
|
|
**Last updated:** 2026-06-19 | Verified: MCP 2026-06-19
|
|
**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 (Verified 2026-04):**
|
|
1. Opprett topic med trigger "A message is received"
|
|
2. Legg til prompt-node: instructions = "Determine which language this message is written in: " + Add content → Text (Name: "Message")
|
|
3. Sett Output format til JSON → Test → Save
|
|
4. Konfigurer Prompt node: Input = `Activity.Text`, Output = ny variabel `DetectedLanguage`
|
|
5. Legg til Condition node basert på `DetectedLanguage.structuredOutput.language`
|
|
6. For hver branch: Sett `User.Language` (system variable) 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 (Verified 2026-04):** Bruk "Set variable value" node → åpne code editor → endre `kind: SetVariable` til `kind: SetTextVariable` → legg inn full streng med variabler → referer kun til variabelen i Adaptive Card
|
|
- Etter lagring kan localization-filen lastes ned og vil inkludere den mixed-type strengen som en `setVariable`-action
|
|
|
|
**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**: 25 språk (inkludert norsk bokmål nb-NO) per Copilot Studio language support dokumentasjon
|
|
- **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 25 språk (inkludert norsk bokmål nb-NO)
|
|
- 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 (Verified 2026-04):**
|
|
- **Bokmål (nb-NO)**: Fully supported i alle features — authoring canvas, generative answers, orchestration, og voice
|
|
- **Nynorsk (nn-NO)**: Ikke oppført i language support-dokumentasjonen → vurder Azure Translator proxy
|
|
- **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** (Re-verified MCP 2026-06-19)
|
|
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, adaptive card localization workaround
|
|
|
|
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** (Re-verified MCP 2026-06-19)
|
|
https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-language-support
|
|
- Full liste over støttede språk per feature (authoring canvas, generative answers, voice)
|
|
- Norsk bokmål (nb-NO) er GA i alle features
|
|
|
|
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 (25 inkludert norsk bokmål nb-NO)
|
|
|
|
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.
|