chore(i18n): sync translations with latest source changes (chunk 1/1, 9 changes)

pull/1774/head
localizeflow[bot] 2 weeks ago
parent 47fcbd9829
commit 2b12341c09

@ -1,7 +1,7 @@
{
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-03-06T18:16:38+00:00",
"original_hash": "d5eeb6e975b5864d8da52d4a41941f8d",
"translation_date": "2026-03-27T18:43:54+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "da"
},
@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-06T18:29:53+00:00",
"translation_date": "2026-03-27T18:53:21+00:00",
"source_file": "AGENTS.md",
"language_code": "da"
},

@ -2,19 +2,19 @@
## Projektoversigt
Dette er et uddannelsesforløb-lager til undervisning i webudviklingsgrundlag for begyndere. Forløbet er et omfattende 12-ugers kursus udviklet af Microsoft Cloud Advocates, med 24 praktiske lektioner, der dækker JavaScript, CSS og HTML.
Dette er et uddannelsesmæssigt kursuslager for undervisning i grundlæggende webudvikling for begyndere. Læreplanen er et omfattende 12-ugers kursus udviklet af Microsoft Cloud Advocates, der indeholder 24 praktiske lektioner om JavaScript, CSS og HTML.
### Hovedkomponenter
### Centrale komponenter
- **Uddannelsesindhold**: 24 strukturerede lektioner organiseret i projektbaserede moduler
- **Praktiske Projekter**: Terrarium, Typing Game, Browserudvidelse, Space Game, Banking App, Code Editor, og AI Chat Assistant
- **Interaktive Quizzer**: 48 quizzer med 3 spørgsmål hver (før/efter-lesson vurderinger)
- **Flersprogssupport**: Automatiske oversættelser til 50+ sprog via GitHub Actions
- **Praktiske projekter**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor og AI Chat Assistant
- **Interaktive quizzer**: 48 quizzer med 3 spørgsmål hver (før/efter-lektion vurderinger)
- **Multisprogunderstøttelse**: Automatiserede oversættelser til 50+ sprog via GitHub Actions
- **Teknologier**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (til AI-projekter)
### Arkitektur
- Uddannelseslager med lektion-baseret struktur
- Uddannelseslager med lektionbaseret struktur
- Hver lektionsmappe indeholder README, kodeeksempler og løsninger
- Selvstændige projekter i separate mapper (quiz-app, forskellige lektionsprojekter)
- Oversættelsessystem ved brug af GitHub Actions (co-op-translator)
@ -51,7 +51,7 @@ npm run lint # Kør ESLint
npm run format # Formater med Prettier
```
### Browserudvidelsesprojekter
### Browser Extension Projekter
```bash
cd 5-browser-extension/solution
@ -72,32 +72,32 @@ npm install
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Indstil miljøvariablen GITHUB_TOKEN
# Sæt miljøvariablen GITHUB_TOKEN
python api.py
```
## Udviklingsarbejdsgang
## Udviklingsworkflow
### For Indholdsbidragydere
### For indholds bidragydere
1. **Fork lageret** til din GitHub-konto
2. **Klon din fork** lokalt
3. **Opret en ny gren** til dine ændringer
4. Foretag ændringer til lektionsindhold eller kodeeksempler
4. Foretag ændringer i lektionens indhold eller kodeeksempler
5. Test eventuelle kodeændringer i relevante projektmapper
6. Indsend pull requests i henhold til bidragsretningslinjerne
6. Indsend pull requests i henhold til bidragsretningslinjer
### For Lærende
### For elever
1. Fork eller klon lageret
2. Naviger til lektionsmapper i rækkefølge
2. Naviger sekventielt til lektionsmapper
3. Læs README-filer for hver lektion
4. Gennemfør før-lektion quizzer på https://ff-quizzes.netlify.app/web/
5. Arbejd med kodeeksempler i lektionsmapper
4. Fuldfør før-lektion quizzer på https://ff-quizzes.netlify.app/web/
5. Arbejd igennem kodeeksempler i lektionsmapper
6. Fuldfør opgaver og udfordringer
7. Tag efter-lektion quizzer
7. Tag post-lesson quizzer
### Live Udvikling
### Live udvikling
- **Dokumentation**: Kør `docsify serve` i rodmappen (port 3000)
- **Quiz App**: Kør `npm run dev` i quiz-app mappen
@ -110,8 +110,8 @@ python api.py
```bash
cd quiz-app
npm run lint # Tjek for kode stil problemer
npm run build # Bekræft at build lykkes
npm run lint # Tjek for problemer med kodestil
npm run build # Bekræft, at build lykkes
```
### Bank API Test
@ -119,73 +119,73 @@ npm run build # Bekræft at build lykkes
```bash
cd 7-bank-project/api
npm run lint # Tjek for kode stil problemer
node server.js # Bekræft, at serveren starter uden fejl
node server.js # Bekræft at serveren starter uden fejl
```
### Generel Testtilgang
### Generel testtilgang
- Dette er et uddannelseslager uden omfattende automatiserede tests
- Dette er et uddannelseslager uden omfattende automatiske tests
- Manuel test fokuserer på:
- Kodeeksempler kører uden fejl
- Links i dokumentationen fungerer korrekt
- Projekt builds gennemføres succesfuldt
- Projekt builds gennemføres uden problemer
- Eksempler følger bedste praksis
### Tjek Før Indsendelse
### Forud for indsendelse tjek
- Kør `npm run lint` i mapper med package.json
- Bekræft at markdown-links er valide
- Verificer at markdown links er gyldige
- Test kodeeksempler i browser eller Node.js
- Kontrollér at oversættelser bevarer korrekt struktur
- Kontroller at oversættelser bevarer korrekt struktur
## Kodeformateringsretningslinjer
## Kodestil retningslinjer
### JavaScript
- Brug moderne ES6+ syntaks
- Følg standard ESLint konfigurationer i projekterne
- Brug moderne ES6+ syntax
- Følg standard ESLint konfigurationer leveret i projekter
- Brug meningsfulde variabel- og funktionsnavne for pædagogisk klarhed
- Tilføj kommentarer der forklarer koncepter for lærende
- Formater med Prettier hvor konfigureret
- Tilføj kommentarer der forklarer koncepter for elever
- Formater ved hjælp af Prettier hvor konfigureret
### HTML/CSS
- Semantiske HTML5-elementer
- Responsive designprincipper
- Klare klassenavnekonventioner
- Kommentarer der forklarer CSS-teknikker for lærende
- Semantiske HTML5 elementer
- Responsivt design principper
- Klare navngivningskonventioner for klasser
- Kommentarer der forklarer CSS teknikker for elever
### Python
- PEP 8 stilretningslinjer
- Tydelige, pædagogiske kodeeksempler
- Type hints hvor hjælpsomt for læring
- Klare, pædagogiske kodeeksempler
- Typeangivelser hvor det er hjælpsomt for læring
### Markdown Dokumentation
### Markdown dokumentation
- Klar overskriftshierarki
- Klar overskriftsstruktur
- Kodeblokke med sprogspecifikation
- Links til yderligere ressourcer
- Skærmbilleder og billeder i `images/` mapper
- Alt-tekst for billeder for tilgængelighed
- Alt-tekster til billeder for tilgængelighed
### Filorganisation
- Lektioner nummeret sekventielt (1-getting-started-lessons, 2-js-basics, osv.)
- Lektioner nummereres sekventielt (1-getting-started-lessons, 2-js-basics osv.)
- Hvert projekt har `solution/` og ofte `start/` eller `your-work/` mapper
- Billeder gemt i lektion-specifikke `images/` mapper
- Billeder gemt i lektionsspecifikke `images/` mapper
- Oversættelser i `translations/{language-code}/` struktur
## Byg og Udrul
## Build og deployment
### Quiz App Udrulning (Azure Static Web Apps)
### Quiz App Deployment (Azure Static Web Apps)
Quiz-app'en er konfigureret til Azure Static Web Apps udrulning:
quiz-app er konfigureret til Azure Static Web Apps deployment:
```bash
cd quiz-app
npm run build # Opretter dist/-mappe
# Udruller via GitHub Actions workflow ved push til main
npm run build # Opretter dist/ mappe
# Udrulning via GitHub Actions workflow ved push til main
```
Azure Static Web Apps konfiguration:
@ -193,90 +193,90 @@ Azure Static Web Apps konfiguration:
- **Output placering**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Dokumentations PDF Generering
### Dokumentations PDF generering
```bash
npm install # Installer docsify-to-pdf
npm run convert # Generer PDF fra docs
```
### Docsify Dokumentation
### Docsify dokumentation
```bash
npm install -g docsify-cli # Installer Docsify globalt
docsify serve # Server på localhost:3000
```
### Projekt-specifikke Builds
### Projekt-specifikke builds
Hver projektmappe kan have sin egen byggeproces:
- Vue-projekter: `npm run build` skaber produktionspakker
- Statiske projekter: Ingen build-step, server filer direkte
Hver projektmappe kan have sin egen build-proces:
- Vue projekter: `npm run build` skaber produktionsbundles
- Static projekter: Ingen build-trin, server filer direkte
## Pull Request Retningslinjer
## Pull Request retningslinjer
### Titel Format
### Titel format
Brug klare, beskrivende titler der angiver ændringsområdet:
Brug klare, beskrivende titler der angiver ændringsområde:
- `[Quiz-app] Tilføj ny quiz til lektion X`
- `[Lesson-3] Ret stavefejl i terrarium projekt`
- `[Translation] Tilføj spansk oversættelse til lektion 5`
- `[Docs] Opdater opsætningsinstruktioner`
### Krævede Tjek
### Krævede tjek
Før indsendelse af PR:
1. **Kodekvalitet**:
- Kør `npm run lint` i berørte projektmapper
- Ret alle linting fejl og advarsler
- Ret alle lint fejl og advarsler
2. **Build Verifikation**:
2. **Build verifikation**:
- Kør `npm run build` hvis relevant
- Sikr at der ikke er build-fejl
- Sørg for ingen build fejl
3. **Link Validering**:
3. **Link validering**:
- Test alle markdown links
- Bekræft billedreferencer fungerer
- Bekræft billedehenvisninger virker
4. **Indholdsgennemgang**:
- Korrekturlæs for stave- og grammatikfejl
- Sikr at kodeeksempler er korrekte og pædagogiske
- Bekræft at oversættelser bevarer original betydning
- Korrekturlæs for stave- og grammatikefejl
- Sørg for kodeeksempler er korrekte og pædagogiske
- Verificer at oversættelser bevarer oprindelig betydning
### Bidragskrav
- Accepter Microsoft CLA (automatisk check ved første PR)
- Accepter Microsoft CLA (automatisk tjek ved første PR)
- Følg [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Se [CONTRIBUTING.md](./CONTRIBUTING.md) for detaljerede retningslinjer
- Referer til issue-numre i PR-beskrivelse hvis relevant
- Referér issues i PR beskrivelsen hvis relevant
### Gennemgangsproces
- PRer gennemgås af vedligeholdere og community
- PRer gennemgås af vedligeholdere og fællesskab
- Pædagogisk klarhed prioriteres
- Kodeeksempler skal følge aktuelle bedste praksisser
- Oversættelser vurderes for nøjagtighed og kulturel tilpasning
- Kodeeksempler bør følge aktuelle bedste praksisser
- Oversættelser vurderes for nøjagtighed og kulturel relevans
## Oversættelsessystem
### Automatisk Oversættelse
### Automatisk oversættelse
- Bruger GitHub Actions med co-op-translator workflow
- Oversætter til 50+ sprog automatisk
- Oversætter automatisk til over 50 sprog
- Kildefiler i hovedmapper
- Oversatte filer i `translations/{language-code}/` mapper
### Tilføjelse af Manuelle Oversættelsesforbedringer
### Tilføjelse af manuelle oversættelsesforbedringer
1. Find fil i `translations/{language-code}/`
2. Foretag forbedringer med bevaret struktur
3. Sikr at kodeeksempler forbliver funktionelle
4. Test eventuelt lokaliseret quiz-indhold
2. Foretag forbedringer mens strukturen bevares
3. Sørg for at kodeeksempler forbliver funktionelle
4. Test eventuelt lokaliseret quizindhold
### Oversættelses Metadata
### Oversættelsesmetadata
Oversatte filer indeholder metadata header:
Oversatte filer inkluderer metadata header:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,9 +289,9 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## Fejlfinding og Problemløsning
## Debugging og fejlfinding
### Almindelige Problemer
### Almindelige problemer
**Quiz app starter ikke**:
- Tjek Node.js version (v14+ anbefalet)
@ -299,110 +299,110 @@ CO_OP_TRANSLATOR_METADATA:
- Tjek for portkonflikter (standard: Vite bruger port 5173)
**API server starter ikke**:
- Bekræft Node.js version minimum (node >=10)
- Bekræft at Node.js version opfylder minimum (node >=10)
- Tjek om port allerede er i brug
- Sikr at alle afhængigheder er installeret med `npm install`
- Sørg for alle afhængigheder er installeret med `npm install`
**Browserudvidelse loader ikke**:
- Bekræft at manifest.json er korrekt formateret
- Tjek browserkonsol for fejl
- Følg browser-specifikke installationsinstruktioner til udvidelser
**Browser extension indlæses ikke**:
- Bekræft at manifest.json er korrekt formatteret
- Tjek browser konsol for fejl
- Følg browserspecifikke installationsinstruktioner
**Python chat projekt problemer**:
- Sikr at OpenAI-pakken er installeret: `pip install openai`
- Sørg for OpenAI pakken er installeret: `pip install openai`
- Bekræft at miljøvariablen GITHUB_TOKEN er sat
- Tjek GitHub Models adgangstilladelser
**Docsify serverer ikke docs**:
**Docsify serverer ikke dokumentation**:
- Installer docsify-cli globalt: `npm install -g docsify-cli`
- Kør fra lagerets rodmappe
- Kør fra roden af lageret
- Tjek at `docs/_sidebar.md` findes
### Udviklingsmiljø Tips
### Udviklingsmiljø tips
- Brug VS Code med Live Server-udvidelsen til HTML-projekter
- Installer ESLint og Prettier-udvidelser for ensartet formatering
- Brug browser DevTools til fejlfinding af JavaScript
- For Vue projekter, installer Vue DevTools browserudvidelsen
- Brug VS Code med Live Server udvidelse til HTML projekter
- Installer ESLint og Prettier udvidelser for ensartet formatering
- Brug browser DevTools til debugging af JavaScript
- Til Vue projekter, installer Vue DevTools browserudvidelse
### Ydelsesbetragtninger
### Performance hensyn
- Stort antal oversatte filer (50+ sprog) betyder at komplette kloner er store
- Brug shallow clone hvis du kun arbejder med indhold: `git clone --depth 1`
- Udeluk oversættelser fra søgninger ved arbejde med engelsk indhold
- Byggeprocesser kan være langsomme ved første kørsel (npm install, Vite build)
- Stort antal oversatte filer (50+ sprog) betyder at fulde kloner er store
- Brug shallow clone hvis kun indhold arbejdes med: `git clone --depth 1`
- Ekskluder oversættelser fra søgninger når der arbejdes med engelsk indhold
- Buildprocesser kan være langsomme ved første kørsel (npm install, Vite build)
## Sikkerhedsbetragtninger
## Sikkerhedshensyn
### Miljøvariable
### Miljøvariabler
- API nøgler må aldrig committes til lager
- API nøgler må aldrig committes til lageret
- Brug `.env` filer (allerede i `.gitignore`)
- Dokumenter nødvendige miljøvariable i projekt-READMEs
- Dokumentér nødvendige miljøvariabler i projekt READMEs
### Python Projekter
### Python projekter
- Brug virtuelle miljøer: `python -m venv venv`
- Hold afhængigheder opdaterede
- GitHub tokens skal have minimale nødvendige rettigheder
- GitHub tokens bør have minimale nødvendige tilladelser
### GitHub Models Adgang
### GitHub Models adgang
- Personlige adgangstokens (PAT) kræves til GitHub Models
- Tokens skal gemmes som miljøvariable
- Committ aldrig tokens eller login-oplysninger
- Tokens skal opbevares som miljøvariabler
- Må aldrig committes eller deles
## Yderligere Bemærkninger
## Yderligere noter
### Målgruppe
- Fulde begyndere til webudvikling
- Studerende og selv-studerende
- Lærere der bruger forløbet i klasseværelser
- Komplette begyndere til webudvikling
- Studerende og selvstuderende
- Lærere der bruger læseplanen i undervisning
- Indhold designet til tilgængelighed og gradvis færdighedsopbygning
### Uddannelsesfilosofi
### Pædagogisk filosofi
- Projektbaseret læringstilgang
- Hyppige videnschecks (quizzer)
- Hyppige videnscheck (quizzer)
- Praktiske kodningsøvelser
- Eksempler på virkelige anvendelser
- Fokus på grundlæggende før frameworks
- Virkelighedsnære eksempler
- Fokus på grundlæggende færdigheder før frameworks
### Lager Vedligeholdelse
### Lagervedligeholdelse
- Aktivt community af lærende og bidragydere
- Aktivt fællesskab af elever og bidragydere
- Regelmæssige opdateringer til afhængigheder og indhold
- Issues og diskussioner overvåget af vedligeholdere
- Oversættelsesopdateringer automatiseret via GitHub Actions
- Issues og diskussioner overvåges af vedligeholdere
- Oversættelsesopdateringer automatiseres via GitHub Actions
### Relaterede Ressourcer
### Relaterede ressourcer
- [Microsoft Learn moduler](https://docs.microsoft.com/learn/)
- [Student Hub ressourcer](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) anbefalet til lærende
- Yderligere kurser: Generativ AI, Data Science, ML, IoT forløb tilgængelige
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) anbefalet til elever
- Yderligere kurser: Generative AI, Data Science, ML, IoT læreplaner tilgængelige
### Arbejde med Specifikke Projekter
### Arbejde med specifikke projekter
For detaljerede instruktioner om enkelte projekter, se README-filerne i:
For detaljerede instruktioner om individuelle projekter, se README-filer i:
- `quiz-app/README.md` - Vue 3 quiz applikation
- `7-bank-project/README.md` - Banking app med autentificering
- `5-browser-extension/README.md` - Browserudvidelsesudvikling
- `7-bank-project/README.md` - Bankapplikation med autentificering
- `5-browser-extension/README.md` - Udvikling af browserudvidelser
- `6-space-game/README.md` - Canvas-baseret spiludvikling
- `9-chat-project/README.md` - AI chatassistent projekt
- `9-chat-project/README.md` - AI chat assistent projekt
### Monorepo Struktur
### Monorepo struktur
Selvom det ikke er et traditionelt monorepo, indeholder dette lager flere uafhængige projekter:
- Hver lektion er selvstændig
- Projekterne deler ikke afhængigheder
- Projekter deler ikke afhængigheder
- Arbejd på individuelle projekter uden at påvirke andre
- Klon hele repo for fuldt forløbsoplevelse
- Klon hele repoet for den fulde kursusoplevelse
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**:
Dette dokument er oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets modersmål bør betragtes som den autoritative kilde. Ved kritiske informationer anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.
**Ansvarsfraskrivelse**:
Dette dokument er oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,7 +1,7 @@
{
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-03-06T18:28:51+00:00",
"original_hash": "d5eeb6e975b5864d8da52d4a41941f8d",
"translation_date": "2026-03-27T18:52:13+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "fi"
},
@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-06T18:32:27+00:00",
"translation_date": "2026-03-27T18:55:35+00:00",
"source_file": "AGENTS.md",
"language_code": "fi"
},

@ -2,36 +2,36 @@
## Projektin yleiskuvaus
Tämä on opetussisältöjen arkisto, joka on tarkoitettu aloittelijoiden web-kehityksen perusteiden opettamiseen. Opetussuunnitelma on kattava 12 viikon kurssi, jonka ovat kehittäneet Microsoft Cloud Advocates, ja se sisältää 24 käytännönläheistä oppituntia JavaScriptin, CSS:n ja HTML:n parissa.
Tämä on opetussisältövarasto, joka on tarkoitettu verkkokehityksen perusteiden opettamiseen aloittelijoille. Opetussuunnitelma on kattava 12 viikon kurssi, jonka ovat kehittäneet Microsoft Cloud Advocates, ja se sisältää 24 käytännönläheistä oppituntia JavaScriptistä, CSS:stä ja HTML:stä.
### Keskeiset osat
- **Opetussisältö**: 24 rakenteellista oppituntia, jotka on organisoitu projektiperusteisiin moduuleihin
- **Käytännön projektit**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor ja AI Chat Assistant
- **Interaktiiviset kyselyt**: 48 kyselyä, joissa on 3 kysymystä jokaisessa (ennen ja jälkeen oppituntiarvioinnit)
- **Monikielinen tuki**: Automaattiset käännökset yli 50 kielelle GitHub Actionsilla
- **Teknologiat**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (AI-projekteissa)
- **Opetussisältö**: 24 rakenteellista oppituntia, jotka on järjestetty projektipohjaisiksi moduuleiksi
- **Käytännön projektit**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor ja AI Chat Assistant
- **Interaktiiviset monivalintakyselyt**: 48 kyselyä, joissa on 3 kysymystä jokaisessa (ennen ja jälkeen oppitunnin arvioinnit)
- **Monikielinen tuki**: Automaattiset käännökset yli 50 kielelle GitHub Actionsin avulla
- **Teknologiat**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (tekoälyprojekteihin)
### Arkkitehtuuri
- Opetussisältöarkisto oppituntirakenteella
- Jokaisessa oppituntikansiossa README, koodiesimerkit ja ratkaisut
- Itsenäiset projektit omissa hakemistoissaan (quiz-app, erilaiset oppituntiprojektit)
- Käännösjärjestelmä GitHub Actionsin avulla (co-op-translator)
- Dokumentaatio tarjotaan Docsifyllä ja saatavilla PDF-muodossa
- Opetussisältövarasto, jossa on oppituntirakenne
- Jokainen oppituntikansio sisältää README-tiedoston, koodiesimerkkejä ja ratkaisuja
- Erilliset projektit omissa hakemistoissaan (quiz-app, eri oppituntiprojektit)
- Käännösjärjestelmä käyttäen GitHub Actionsia (co-op-translator)
- Dokumentaatio tarjolla Docsifylla ja PDF-muodossa
## Asennuskäskyt
Tämä arkisto on ensisijaisesti tarkoitettu opetussisällön kuluttamiseen. Jos työskentelet tiettyjen projektien kanssa:
Tämä varasto on ensisijaisesti tarkoitettu opetussisällön kuluttamiseen. Työskenneltäessä tietyissä projekteissa:
### Pääarkiston pystytys
### Päävaraston asennus
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Quiz Appin asennus (Vue 3 + Vite)
### Quiz App -asennus (Vue 3 + Vite)
```bash
cd quiz-app
@ -40,33 +40,33 @@ npm run dev # Käynnistä kehityspalvelin
npm run build # Rakenna tuotantoon
npm run lint # Suorita ESLint
```
### Bank Project API (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Käynnistä API-palvelin
npm run lint # Aja ESLint
npm run format # Muotoile Prettierillä
npm run lint # Suorita ESLint
npm run format # Muotoile Prettierilla
```
### Selainlaajennusprojektit
### Selaimen laajennusprojektit
```bash
cd 5-browser-extension/solution
npm install
# Noudata selaimen erityisiä laajennusten latausohjeita
# Noudata selaimelle spesifisiä laajennuksen latausohjeita
```
### Space Game -projektit
```bash
cd 6-space-game/solution
npm install
# Avaa index.html selaimessa tai käytä Live Server
# Avaa index.html selaimessa tai käytä Live Server -laajennusta
```
### Chat-projekti (Python Backend)
```bash
@ -75,208 +75,208 @@ pip install openai
# Aseta GITHUB_TOKEN-ympäristömuuttuja
python api.py
```
## Kehitystyönkulku
## Kehitysprosessin työkulku
### Sisällöntuottajille
1. **Haarauta arkisto** GitHub-tilillesi
2. **Kloonaa oma haarukkasi** paikallisesti
3. **Luo uusi haara** muutoksille
4. Tee muutoksia oppituntisisältöön tai koodiesimerkkeihin
5. Testaa koodimuutokset sopivissa projektihakemistoissa
6. Lähetä vetopyynnöt ohjeiden mukaisesti
1. **Luo haarukka** varastosta GitHub-tilillesi
2. **Kloonaa haarukkasi** paikallisesti
3. **Luo uusi haara** muutoksillesi
4. Tee muutoksia oppituntisisältöön tai koodiesimerkkeihin
5. Testaa kaikki koodimuutokset asiaankuuluvissa projektihakemistoissa
6. Lähetä pull-pyyntöjä noudattaen kontribuutiokäytäntöjä
### Oppijoille
1. Haarauta tai kloonaa arkisto
2. Siirry oppituntihakemistoihin peräkkäin
3. Lue kunkin oppitunnin README-tiedostot
4. Tee ennen oppituntia olevat kyselyt osoitteessa https://ff-quizzes.netlify.app/web/
5. Työstä oppituntien koodiesimerkkejä kansioissa
6. Suorita tehtävät ja haasteet
7. Tee oppitunnin jälkeiset kyselyt
1. Luo haarukka tai kloonaa varasto
2. Siirry oppituntihakemistoihin järjestyksessä
3. Lue jokaisen oppitunnin README-tiedostot
4. Tee ennen oppituntia tehtävät monivalintakyselyt osoitteessa https://ff-quizzes.netlify.app/web/
5. Työstä koodiesimerkkejä oppituntikansioissa
6. Tee tehtäviä ja haasteita
7. Tee oppitunnin jälkeiset monivalintakyselyt
### Live-kehitys
- **Dokumentaatio**: Aja `docsify serve` juurikansiossa (portti 3000)
- **Quiz App**: Aja `npm run dev` quiz-app-hakemistossa
- **Projektit**: Käytä VS Coden Live Server -laajennusta HTML-projekteille
- **API-projektit**: Aja `npm start` vastaavissa API-hakemistoissa
- **Dokumentaatio**: Suorita `docsify serve` juurihakemistossa (portti 3000)
- **Quiz App**: Suorita `npm run dev` quiz-app-hakemistossa
- **Projektit**: Käytä VS Code Live Server -laajennusta HTML-projekteille
- **API-projektit**: Suorita `npm start` vastaavissa API-hakemistoissa
## Testausohjeet
## Testiohjeet
### Quiz Appin testaus
### Quiz App -testaus
```bash
cd quiz-app
npm run lint # Tarkista koodityylin ongelmat
npm run build # Varmista, että käännös onnistuu
```
### Bank API:n testaus
### Bank API -testaus
```bash
cd 7-bank-project/api
npm run lint # Tarkista koodityylin ongelmat
node server.js # Varmista, että palvelin käynnistyy ilman virheitä
```
### Yleinen testausmenetelmä
- Tämä on opetussisältöarkisto ilman kattavia automaattisia testejä
- Manuaalisen testauksen painopisteet:
- Koodiesimerkkien suorittaminen ilman virheitä
- Dokumentaation linkkien toimivuus
- Projektien rakentamiset onnistuvat
- Esimerkit noudattavat parhaita käytäntöjä
### Yleinen testauslähestymistapa
- Tämä on opetussisältövarasto ilman kattavia automatisoituja testejä
- Manuaalinen testaus keskittyy:
- Koodiesimerkkien toimivuuteen ilman virheitä
- Dokumentaation linkkien toimivuuteen
- Projektien build-prosessien onnistumiseen
- Esimerkkien parhaiden käytäntöjen noudattamiseen
### Ennen lähettämistä tarkistukset
### Tarkistukset ennen lähettämistä
- Aja `npm run lint` saataville hakemistoissa, joissa on package.json
- Varmista markdown-linkkien toimivuus
- Testaa koodiesimerkkejä selaimessa tai Node.js:ssä
- Tarkista, että käännökset säilyttävät oikean rakenteen
- Suorita `npm run lint` hakemistoissa, joissa on package.json
- Varmista, että markdown-linkit ovat kelvollisia
- Testaa koodiesimerkkejä selaimessa tai Node.js:ssä
- Tarkista, että käännökset säilyttävät rakenteen
## Koodityyliohjeet
### JavaScript
- Käytä nykyaikaista ES6+-syntaksia
- Seuraa projektien tarjoamia ESLint-määrityksiä
- Käytä merkityksellisiä muuttuja- ja funktioiden nimiä opetuksen selkeyden vuoksi
- Lisää kommentteja käsitteiden selityksiin oppijoille
- Muotoile koodi Prettierillä missä se on konfiguroitu
- Käytä modernia ES6+ -syntaksia
- Noudata projektien standardoituja ESLint-configeja
- Käytä merkityksellisiä muuttuja- ja funktioiden nimiä opetuksellisuuden vuoksi
- Lisää kommentteja, jotka selittävät käsitteitä oppijoille
- Muotoile Prettierillä, jos se on määritetty
### HTML/CSS
- Semanttiset HTML5-elementit
- Responsiivisen suunnittelun periaatteet
- Selkeät luokkien nimeämiskäytännöt
- Kommentit CSS-tekniikoiden selittämiseksi oppijoille
- Semanttiset HTML5-elementit
- Responsiivisen suunnittelun periaatteet
- Selkeät luokkien nimeämiskäytännöt
- Kommentit, jotka selittävät CSS-tekniikoita oppijoille
### Python
- PEP 8 -tyyliohjeiden seuraaminen
- Selkeät, opettavaiset koodiesimerkit
- Tyyppivihjeet, kun se tukee oppimista
- PEP 8 -tyyliohjeiden noudattaminen
- Selkeät, opetukselliset koodiesimerkit
- Tyyppivihjeet, joissa ne auttavat oppimisessa
### Markdown-dokumentaatio
- Selkeä otsikkohierarkia
- Koodilohkot kielimäärittelyillä
- Linkit lisäresursseihin
- Kuvakaappaukset ja kuvat `images/`-hakemistoissa
- Kuville alt-tekstit saavutettavuutta varten
- Selkeä otsikkohierarkia
- Koodilohkot, joissa kielimääritys
- Linkit lisäresursseihin
- Kuvakaappaukset ja kuvat `images/`-kansioissa
- Kuvien alt-teksti saavutettavuuden vuoksi
### Tiedostojen organisointi
### Tiedostojen järjestäminen
- Oppitunnit numeroitu peräkkäin (1-getting-started-lessons, 2-js-basics jne.)
- Jokaisessa projektissa on `solution/` ja usein `start/` tai `your-work/` -kansiot
- Kuvat ovat oppituntikohtaisissa `images/`-kansioissa
- Käännökset sijaitsevat `translations/{language-code}/` -rakenteessa
- Oppitunnit numeroitu peräkkäin (1-getting-started-lessons, 2-js-basics jne.)
- Jokaisella projektilla on `solution/` ja usein myös `start/` tai `your-work/` -kansiot
- Kuvat säilytetään oppituntikohtaisissa `images/`-kansioissa
- Käännökset hakemistossa `translations/{language-code}/`
## Kokoaminen ja käyttöönotto
## Rakennus ja julkaisu
### Quiz Appin käyttöönotto (Azure Static Web Apps)
### Quiz App -julkaisu (Azure Static Web Apps)
Quiz-app on konfiguroitu Azure Static Web Apps -käyttöönottoa varten:
Quiz-app on konfiguroitu Azure Static Web Apps -julkaisua varten:
```bash
cd quiz-app
npm run build # Luo dist/ kansion
# Julkaisee GitHub Actions -työnkulun kautta push-toiminnolla main-haaraan
npm run build # Luo dist/-kansion
# Ottaa käyttöön GitHub Actions -työnkulun kautta, kun push tapahtuu päähaaraan
```
Azure Static Web Apps -konfigurointi:
- **Sovelluksen sijainti**: `/quiz-app`
- **Tulostussijainti**: `dist`
- **Työnkulku**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Dokumentaation PDF:n generointi
Azure Static Web Appsin konfigurointi:
- **Sovelluksen sijainti**: `/quiz-app`
- **Tulossijainti**: `dist`
- **Työnkulku**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Dokumentaation PDF:ksi generointi
```bash
npm install # Asenna docsify-to-pdf
npm run convert # Luo PDF docs-sisällöstä
npm run convert # Luo PDF docsista
```
### Docsify-dokumentaatio
```bash
npm install -g docsify-cli # Asenna Docsify globaalisti
docsify serve # Palvele localhost:3000:ssa
docsify serve # Palvele osoitteessa localhost:3000
```
### Projektikohtaiset kokoamiset
Jokaisella projektihakemistolla voi olla oma build-prosessinsa:
- Vue-projektit: `npm run build` luo tuotantopaketteja
- Staattiset projektit: Ei build-vaihetta, tiedostot palvellaan suoraan
### Projektikohtaiset build-prosessit
Jokaisella projektihakemistolla voi olla oma build-prosessinsa:
- Vue-projektit: `npm run build` tuottaa tuotantopaketteja
- Staattiset projektit: Ei build-vaihetta, tiedostot tarjotaan suoraan
## Vetopyyntöohjeet
## Pull-pyyntöjen ohjeet
### Otsikon muotoilu
### Otsikkomuoto
Käytä selkeitä, kuvaavia otsikoita, jotka osoittavat muutoksen alueen:
- `[Quiz-app] Lisää uusi kysely oppitunnille X`
- `[Lesson-3] Korjaa kirjoitusvirhe terrarium-projektissa`
- `[Translation] Lisää espanjankielinen käännös oppitunnille 5`
- `[Docs] Päivitä asennusohjeet`
Käytä selkeitä, kuvaavia otsikoita, jotka kertovat muutosten alueen:
- `[Quiz-app] Lisää uusi tietovisa oppitunnille X`
- `[Lesson-3] Korjaa kirjoitusvirhe terrarium-projektissa`
- `[Translation] Lisää espanjankielinen käännös oppitunnille 5`
- `[Docs] Päivitä asennusohjeet`
### Pakolliset tarkistukset
### Vaaditut tarkistukset
Ennen vetopyynnön lähettämistä:
Ennen PR:n lähettämistä:
1. **Koodin laatu**:
- Aja `npm run lint` kyseisissä projektihakemistoissa
- Korjaa kaikki lint-virheet ja varoitukset
1. **Koodin laatu**:
- Suorita `npm run lint` asiaankuuluvissa projektihakemistoissa
- Korjaa kaikki lint-virheet ja varoitukset
2. **Buildin varmistus**:
- Aja `npm run build` tarvittaessa
- Varmista, ettei build-virheitä ilmene
2. **Buildin varmistus**:
- Suorita `npm run build`, jos sovellettavissa
- Varmista, ettei build-virheitä ilmene
3. **Linkkien validointi**:
- Testaa kaikki markdown-linkit
- Varmista kuvaviitteiden toimivuus
3. **Linkkien tarkistus**:
- Testaa kaikki markdown-linkit
- Varmista, että kuvalinkit toimivat
4. **Sisältötarkastus**:
- Oikolue oikeinkirjoitus ja kielioppi
- Varmista, että koodiesimerkit ovat oikein ja opetuksellisia
- Varmista, että käännökset säilyttävät alkuperäisen merkityksen
4. **Sisällön tarkistus**:
- Tarkista oikeinkirjoitus ja kielioppi
- Varmista, että koodiesimerkit ovat oikein ja opetuksellisia
- Tarkista, että käännökset säilyttävät alkuperäisen merkityksen
### Osallistumisen vaatimukset
### Panostusvaatimukset
- Hyväksy Microsoftin CLA (automaattinen tarkistus ensimmäisellä PR:llä)
- Noudata [Microsoft Open Source Code of Conductia](https://opensource.microsoft.com/codeofconduct/)
- Katso [CONTRIBUTING.md](./CONTRIBUTING.md) yksityiskohtaiset ohjeet
- Viittaa ongelmanumeroihin PR-kuvauksessa tarvittaessa
- Hyväksy Microsoft CLA (automaattinen tarkistus ensimmäisessä PR:ssä)
- Noudata [Microsoftin avoimen lähdekoodin käytösohjeita](https://opensource.microsoft.com/codeofconduct/)
- Katso [CONTRIBUTING.md](./CONTRIBUTING.md) yksityiskohtia varten
- Viittaa ongelmanumeroihin PR-kuvauksessa tarvittaessa
### Arviointiprosessi
### Tarkastusprosessi
- Vetopyynnöt arvioivat ylläpitäjät ja yhteisö
- Opetuksellisuus on prioriteetti
- Koodiesimerkkien on noudatettava nykyisiä parhaita käytäntöjä
- Käännökset tarkastetaan tarkkuuden ja kulttuurisopivuuden varmistamiseksi
- PR:t tarkistetaan ylläpitäjien ja yhteisön toimesta
- Opetuksellisuus on etusijalla
- Koodiesimerkkien tulee noudattaa nykyaikaisia parhaita käytäntöjä
- Käännökset tarkistetaan tarkkuuden ja kulttuurisen sopivuuden mukaan
## Käännösjärjestelmä
### Automaattinen käännös
- Käyttää GitHub Actionseja co-op-translator-työnkululla
- Kääntää yli 50 kielelle automaattisesti
- Lähdetiedostot pääkansioissa
- Käännetyt tiedostot kansioissa `translations/{language-code}/`
- Käyttää GitHub Actionsia co-op-translator-työnkululla
- Kääntää automaattisesti yli 50 kielelle
- Lähdetiedostot pääkansioissa
- Käännetyt tiedostot hakemistossa `translations/{language-code}/`
### Manuaalisten käännösten parannusten lisääminen
### Käsin tehdyt parannukset käännöksiin
1. Etsi tiedosto kansiosta `translations/{language-code}/`
2. Tee parannuksia rakenteen säilyttämiseksi
3. Varmista, että koodiesimerkit toimivat edelleen
4. Testaa mahdolliset lokalisoidut kyselysisällöt
1. Etsi tiedosto kansiosta `translations/{language-code}/`
2. Tee parannukset säilyttäen rakenne
3. Varmista, että koodiesimerkit säilyvät toimivina
4. Testaa mahdolliset paikallistetut tietovisaosiot
### Käännösten metatiedot
### Käännöksen metatiedot
Käännetyissä tiedostoissa on metatietopääte:
Käännetyt tiedostot sisältävät metatietojen otsikon:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -288,121 +288,121 @@ CO_OP_TRANSLATOR_METADATA:
}
-->
```
## Virheiden etsintä ja vianmääritys
### Yleiset ongelmat
**Quiz app ei käynnisty**:
- Tarkista Node.js-versio (v14+ suositeltu)
- Poista `node_modules` ja `package-lock.json`, aja `npm install` uudelleen
- Tarkista porttikonfliktit (oletus: Vite käyttää porttia 5173)
**Quiz-app ei käynnisty**:
- Tarkista Node.js-versio (v14+ suositeltu)
- Poista `node_modules` ja `package-lock.json`, suorita `npm install` uudelleen
- Tarkista porttikonfliktit (oletuksena: Vite käyttää porttia 5173)
**API-palvelin ei käynnisty**:
- Varmista, että Node.js-versio on vähintään 10 tai uudempi
- Tarkista, onko portti jo käytössä
- Varmista, että kaikki riippuvuudet on asennettu komennolla `npm install`
**API-palvelin ei käynnisty**:
- Varmista, että Node.js-versio täyttää minimivaatimuksen (node >=10)
- Tarkista, onko portti jo käytössä
- Varmista, että kaikki riippuvuudet on asennettu komennolla `npm install`
**Selainlaajennus ei lataudu**:
- Varmista manifest.json:n oikea muotoilu
- Tarkista selaimen konsolivirheet
- Noudata selainkohtaisia laajennuksen asennusohjeita
**Selaimen laajennus ei lataudu**:
- Varmista, että manifest.json on oikein muotoiltu
- Tarkista selaimen konsolista virheet
- Noudata selainkohtaisia laajennuksen asennusohjeita
**Pythonin chat-projektin ongelmat**:
- Varmista, että OpenAI-paketti on asennettu: `pip install openai`
- Varmista, että GITHUB_TOKEN-ympäristömuuttuja on asetettu
- Tarkista GitHub Models -käyttöoikeudet
**Python-chat-projektin ongelmat**:
- Varmista, että OpenAI-paketti on asennettu: `pip install openai`
- Tarkista, että GITHUB_TOKEN-ympäristömuuttuja on asetettu
- Tarkista GitHub Models -käyttöoikeudet
**Docsify ei palvele dokumentaatiota**:
- Asenna docsify-cli globaalisti: `npm install -g docsify-cli`
- Aja arkiston juurikansiosta
- Tarkista, että `docs/_sidebar.md` on olemassa
**Docsify ei tarjoa dokumentaatiota**:
- Asenna docsify-cli globaaliin käyttöön: `npm install -g docsify-cli`
- Suorita varaston juuressa
- Varmista, että tiedosto `docs/_sidebar.md` on olemassa
### Kehitysympäristön vinkkejä
### Kehitysympäristön vinkit
- Käytä VS Codea Live Server -laajennuksella HTML-projekteille
- Asenna ESLint- ja Prettier-laajennukset yhtenäiseen muotoiluun
- Käytä selaimen DevToolsia JavaScriptin virheenkorjaukseen
- Vue-projekteissa asenna Vue DevTools -selaimien laajennus
- Käytä VS Codea ja Live Server -laajennusta HTML-projekteissa
- Asenna ESLint- ja Prettier-laajennukset yhtenäisyyden vuoksi
- Käytä selaimen DevTools-työkaluja JavaScriptin vianetsintään
- Vue-projekteissa asenna Vue DevTools -selainlaajennus
### Suorituskyvyn huomioita
### Suorituskykyyn liittyvät seikat
- Suuri määrä käännettyjä tiedostoja (yli 50 kieltä) tekee täydellisistä klooneista suuria
- Käytä matalaa kloonausta, jos työskentelet vain sisällön parissa: `git clone --depth 1`
- Sulje käännökset haut pois haettaessa englanninkielistä sisältöä
- Build-prosessit voivat olla hitaita ensimmäisellä kerralla (npm install, Vite build)
- Suuri määrä käännettyjä tiedostoja (50+ kieltä) tekee kopioinneista isoja
- Käytä matalatasoista kloonausta, jos työskentelet vain sisällön parissa: `git clone --depth 1`
- Sulje pois käännökset hauista, kun työskentelet englanninkielisen sisällön kanssa
- Build-prosessit saattavat olla hitaita ensimmäisellä suorituskerralla (npm install, Vite build)
## Turvallisuusnäkökohdat
### Ympäristömuuttujat
- API-avaimia ei koskaan tule tallentaa arkistoon
- Käytä `.env`-tiedostoja (jo sisällytetty `.gitignoreen`)
- Dokumentoi tarvittavat ympäristömuuttujat projektien READMEissä
- API-avaimia ei koskaan saa sitoa varastoon
- Käytä `.env`-tiedostoja (jo kuuluvat `.gitignoreen`)
- Dokumentoi vaaditut ympäristömuuttujat projektin README-tiedostoissa
### Python-projektit
- Käytä virtuaaliympäristöjä: `python -m venv venv`
- Pidä riippuvuudet ajan tasalla
- GitHub-tokenien käyttöoikeuksien tulisi olla mahdollisimman rajatut
- Käytä virtuaaliympäristöjä: `python -m venv venv`
- Pidä riippuvuudet ajantasalla
- GitHub-tokenien käyttöoikeuksien tulee olla vähimmäisvaatimusten mukaisia
### GitHub Models -käyttöoikeudet
### GitHub Modelsin käyttö
- Henkilökohtaiset käyttöoikeustunnukset (PAT) vaaditaan GitHub Modelsille
- Tunnukset tulee tallentaa ympäristömuuttujiin
- Älä koskaan tallenna tunnuksia tai tunnistetietoja arkistoon
- Henkilökohtaiset käyttöoikeustokenit (PAT) vaaditaan GitHub Models -pääsyyn
- Säilytä tokenit ympäristömuuttujissa
- Älä koskaan tallenna tokeneita tai tunnuksia julkisesti
## Lisähuomiot
### Kohdeyleisö
- Täysin aloittelijat web-kehityksessä
- Opiskelijat ja itseopiskelijat
- Opettajat, jotka käyttävät opetussuunnitelmaa luokkahuoneissa
- Sisältö on suunniteltu saavutettavuus ja taitojen asteittaista kehittämistä varten
- Täysin aloittelijat verkkokehityksessä
- Opiskelijat ja itseopiskelijat
- Opettajat, jotka käyttävät opetussuunnitelmaa luokkahuoneissa
- Sisältö suunniteltu saavutettavaksi ja asteittain taitoja kehittäväksi
### Opetuksellinen filosofia
- Projektipohjainen oppimismenetelmä
- Usein toistuvat tietämyksen tarkistukset (kyselyt)
- Käytännön koodausharjoitukset
- Todelliset sovellusesimerkit
- Painotus perusteissa ennen kehyskirjastoja
- Projektipohjainen oppiminen
- Säännölliset tiedon tarkistukset (kyselyt)
- Käytännön koodiharjoitukset
- Todellisten sovellusesimerkkien hyödyntäminen
- Painotus perusasioissa ennen frameworkkeja
### Arkiston ylläpito
### Varaston ylläpito
- Aktiivinen oppijoiden ja sisällöntuottajien yhteisö
- Riittävä päivitys riippuvuuksiin ja sisältöihin
- Ongelmia ja keskusteluita valvovat ylläpitäjät
- Käännöspäivitykset automatisoitu GitHub Actionsien avulla
- Aktiivinen oppijoiden ja kontribuenttien yhteisö
- Riippuvuuksien ja sisällön säännölliset päivitykset
- Ongelmien ja keskustelujen seuraaminen ylläpitäjien toimesta
- Käännösten päivitys automatisoitu GitHub Actionsilla
### Aiheeseen liittyvät resurssit
- [Microsoft Learn -moduulit](https://docs.microsoft.com/learn/)
- [Student Hub -resurssit](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) suositellaan oppijoille
- Lisäkursseja: Generative AI, Data Science, ML, IoT opetussuunnitelmat saatavilla
- [Microsoft Learnin moduulit](https://docs.microsoft.com/learn/)
- [Student Hubin resurssit](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) suositeltu oppijoille
- Lisäkurssit: Generatiivinen AI, Data Science, ML, IoT -opetussuunnitelmat saatavilla
### Työskentely tietyissä projekteissa
Yksityiskohtaiset ohjeet yksittäisille projekteille löytyvät näistä README-tiedostoista:
- `quiz-app/README.md` - Vue 3 -kyselysovellus
- `7-bank-project/README.md` - Pankkisovellus todennuksella
- `5-browser-extension/README.md` - Selainlaajennuskehitys
- `6-space-game/README.md` - Canvas-pohjainen pelikehitys
- `9-chat-project/README.md` - AI-chat-avustajaprojekti
Yksityiskohtaiset ohjeet yksittäisistä projekteista löytyvät README-tiedostoista:
- `quiz-app/README.md` - Vue 3 tietovisaohjelma
- `7-bank-project/README.md` - Pankkisovellus todennuksella
- `5-browser-extension/README.md` - Selaimen laajennuksen kehitys
- `6-space-game/README.md` - Canvas-pohjainen peli
- `9-chat-project/README.md` - AI-chat-avustajaprojekti
### Monorepokoko
### Monorepon rakenne
Vaikka kyseessä ei ole perinteinen monorepo, tämä arkisto sisältää useita riippumattomia projekteja:
- Jokainen oppitunti on itsenäinen
- Projektit eivät jaa riippuvuuksia
- Työskentele yksittäisten projektien parissa ilman vaikutusta muihin
- Kloonaa koko arkisto saadaksesi koko opetussuunnitelman kokemuksen
Vaikka tämä ei ole perinteinen monorepo, varastossa on useita itsenäisiä projekteja:
- Jokainen oppitunti on itsenäinen kokonaisuus
- Projektit eivät jaa riippuvuuksia
- Työskentele yksittäisten projektien parissa vaikuttamatta muihin
- Kloonaa koko varasto saadaksesi koko opetussuunnitelmakokemuksen
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, ota huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeiden tietojen osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa mahdollisista väärinymmärryksistä tai tulkinnoista, jotka johtuvat tämän käännöksen käytöstä.
**Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäiskielisenä versiona tulee pitää auktoritatiivisena lähteenä. Tärkeissä tiedoissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä johtuvista väärinymmärryksistä tai tulkinnoista.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,7 +1,7 @@
{
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-03-06T18:23:07+00:00",
"original_hash": "d5eeb6e975b5864d8da52d4a41941f8d",
"translation_date": "2026-03-27T18:47:50+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "no"
},
@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-06T18:31:13+00:00",
"translation_date": "2026-03-27T18:54:23+00:00",
"source_file": "AGENTS.md",
"language_code": "no"
},

@ -2,29 +2,29 @@
## Prosjektoversikt
Dette er et utdanningspensum-repositorium for å lære webutviklingsgrunnlag til nybegynnere. Pensumet er et omfattende 12-ukers kurs utviklet av Microsoft Cloud Advocates, med 24 praktiske leksjoner som dekker JavaScript, CSS og HTML.
Dette er et pedagogisk pensum-repositorium for å lære grunnleggende webutvikling til nybegynnere. Pensumet er et omfattende 12-ukers kurs utviklet av Microsoft Cloud Advocates, med 24 praktiske leksjoner som dekker JavaScript, CSS og HTML.
### Hovedkomponenter
### Nøkkelkomponenter
- **Utdanningsinnhold**: 24 strukturerte leksjoner organisert i prosjektbaserte moduler
- **Praktiske prosjekter**: Terrarium, Typing Game, Nettleserutvidelse, Space Game, Bankapp, Kodeeditor og AI Chat-assistent
- **Interaktive quizzer**: 48 quizzer med 3 spørsmål hver (før- og etterleksjon vurderinger)
- **Flerspråklig støtte**: Automatiske oversettelser til 50+ språk via GitHub Actions
- **Pedagogisk innhold**: 24 strukturerte leksjoner organisert i prosjektbaserte moduler
- **Praktiske prosjekter**: Terrarium, Typingspill, Nettleserutvidelse, Romspill, Bankapp, Kodeeditor og AI-chatassistent
- **Interaktive quizer**: 48 quizer med 3 spørsmål hver (før- og etterleksjonsevalueringer)
- **Støtte for flere språk**: Automatisk oversettelse til 50+ språk via GitHub Actions
- **Teknologier**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (for AI-prosjekter)
### Arkitektur
- Utdanningsrepository med leksjonsbasert struktur
- Pedagogisk repositorium med leksjonsbasert struktur
- Hver leksjonsmappe inneholder README, kodeeksempler og løsninger
- Frittstående prosjekter i egne kataloger (quiz-app, ulike leksjonsprosjekter)
- Oversettelsessystem med GitHub Actions (co-op-translator)
- Frittstående prosjekter i egne kataloger (quiz-app, forskjellige leksjonsprosjekter)
- Oversettelsessystem ved bruk av GitHub Actions (co-op-translator)
- Dokumentasjon servert via Docsify og tilgjengelig som PDF
## Oppsettskommandoer
## Oppsettkommandoer
Dette repositoriet er primært for konsumering av utdanningsinnhold. For arbeid med spesifikke prosjekter:
Dette repositoriet er primært for inntak av pedagogisk innhold. For arbeid med spesifikke prosjekter:
### Hovedrepository-oppsett
### Hovedrepo-oppsett
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
@ -56,18 +56,18 @@ npm run format # Formater med Prettier
```bash
cd 5-browser-extension/solution
npm install
# Følg nettleserspesifikke instruksjoner for utvidelsesinnlasting
# Følg nettleserspesifikke instruksjoner for lasting av utvidelser
```
### Space Game Prosjekter
### Romspillprosjekter
```bash
cd 6-space-game/solution
npm install
# Åpne index.html i nettleser eller bruk Live Server
# Åpne index.html i nettleseren eller bruk Live Server
```
### Chat-prosjekt (Python backend)
### Chatprosjekt (Python Backend)
```bash
cd 9-chat-project/solution/backend/python
@ -76,98 +76,98 @@ pip install openai
python api.py
```
## Utviklingsarbeidsflyt
## Utviklingsflyt
### For innholdsbidragsytere
1. **Fork repositoriet** til din GitHub-konto
2. **Klon din fork** lokalt
3. **Opprett en ny gren** for endringene dine
3. **Opprett en ny gren** for dine endringer
4. Gjør endringer i leksjonsinnhold eller kodeeksempler
5. Test eventuelle kodeendringer i relevante prosjektmapper
6. Send inn pull requests i henhold til retningslinjer for bidrag
6. Send inn pull requests i henhold til bidragsretningslinjer
### For lærende
1. Fork eller klon repositoriet
2. Naviger gjennom leksjonsmapper sekvensielt
3. Les README-filer for hver leksjon
4. Fullfør før-leksjons-quizzer på https://ff-quizzes.netlify.app/web/
2. Naviger til leksjonsmapper sekvensielt
3. Les README-filene for hver leksjon
4. Fullfør før-leksjonsquizer på https://ff-quizzes.netlify.app/web/
5. Arbeid gjennom kodeeksempler i leksjonsmapper
6. Fullfør oppgaver og utfordringer
7. Ta etter-leksjons-quizzer
7. Ta etter-leksjonsquizer
### Live utvikling
- **Dokumentasjon**: Kjør `docsify serve` i root (port 3000)
- **Quiz App**: Kjør `npm run dev` i quiz-app katalogen
- **Prosjekter**: Bruk VS Code Live Server extension for HTML-prosjekter
- **API-prosjekter**: Kjør `npm start` i respektive API-kataloger
- **Dokumentasjon**: Kjør `docsify serve` i rotmappen (port 3000)
- **Quiz App**: Kjør `npm run dev` i quiz-app-mappen
- **Prosjekter**: Bruk VS Code Live Server-utvidelsen for HTML-prosjekter
- **API-prosjekter**: Kjør `npm start` i respektive API-mapper
## Testinstruksjoner
### Quiz App testing
### Testing av Quiz App
```bash
cd quiz-app
npm run lint # Sjekk for problemer med kodeformat
npm run lint # Sjekk for kode stil problemer
npm run build # Verifiser at byggingen lykkes
```
### Bank API testing
### Testing av Bank API
```bash
cd 7-bank-project/api
npm run lint # Sjekk for kodesstilproblemer
node server.js # Bekreft at serveren starter uten feil
npm run lint # Sjekk etter kode stil problemer
node server.js # Verifiser at serveren starter uten feil
```
### Generell testtilnærming
- Dette er et utdanningsrepository uten omfattende automatiske tester
- Dette er et pedagogisk repositorium uten omfattende automatiserte tester
- Manuell testing fokuserer på:
- Kodeeksempler kjører uten feil
- Lenker i dokumentasjonen fungerer som de skal
- Prosjektbygg fullføres suksessfullt
- Eksempler følger beste praksis
- At kodeeksempler kjører uten feil
- At lenker i dokumentasjonen fungerer korrekt
- At byggeprosjekter fullføres vellykket
- At eksempler følger beste praksis
### Sjekk før innsending
### Sjekker før innsending
- Kjør `npm run lint` i kataloger med package.json
- Verifiser at markdown-lenker er gyldige
- Test kodeeksempler i nettleser eller Node.js
- Sjekk at oversettelser opprettholder riktig struktur
- Sjekk at oversettelser beholder riktig struktur
## Retningslinjer for kodestil
## Retningslinjer for kode-stil
### JavaScript
- Bruk moderne ES6+ syntaks
- Følg standard ESLint-konfigurasjoner levert i prosjektene
- Bruk meningsfulle variable- og funksjonsnavn for pedagogisk klarhet
- Følg standard ESLint-konfigurasjoner i prosjektene
- Bruk meningsfulle variabel- og funksjonsnavn for pedagogisk klarhet
- Legg til kommentarer som forklarer konsepter for lærende
- Formater med Prettier der det er konfigurert
- Formater ved bruk av Prettier der det er konfigurert
### HTML/CSS
- Semantiske HTML5-elementer
- Responsivt designprinsipper
- Klare klassenavnkonvensjoner
- Responsivt design-prinsipper
- Klare klasse-navnekonvensjoner
- Kommentarer som forklarer CSS-teknikker for lærende
### Python
- PEP 8 stil retningslinjer
- PEP 8-stil retningslinjer
- Klare, pedagogiske kodeeksempler
- Typehinting der det er nyttig for læring
### Markdown Dokumentasjon
### Markdown-dokumentasjon
- Klar overskriftshierarki
- Kodeblokker med spesifisering av språk
- Lenker til ytterligere ressurser
- Kodeblokker med språkspecificasjon
- Lenker til ekstra ressurser
- Skjermbilder og bilder i `images/` mapper
- Alt-tekst for bilder for tilgjengelighet
- Alternativ tekst for bilder for tilgjengelighet
### Filorganisering
@ -176,107 +176,107 @@ node server.js # Bekreft at serveren starter uten feil
- Bilder lagres i leksjonsspesifikke `images/` mapper
- Oversettelser i `translations/{language-code}/` struktur
## Bygging og distribusjon
## Bygg og distribusjon
### Quiz App distribusjon (Azure Static Web Apps)
### Utrulling av Quiz App (Azure Static Web Apps)
Quiz-appen er konfigurert for distribusjon på Azure Static Web Apps:
quiz-app er konfigurert for Azure Static Web Apps utrulling:
```bash
cd quiz-app
npm run build # Oppretter dist/-mappe
npm run build # Oppretter dist/ mappe
# Distribuerer via GitHub Actions-arbeidsflyt ved push til main
```
Azure Static Web Apps konfigurasjon:
- **App-lokasjon**: `/quiz-app`
- **Output-lokasjon**: `dist`
- **Utdata-lokasjon**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Dokumentasjon PDF-generering
### Generering av dokumentasjon PDF
```bash
npm install # Installer docsify-to-pdf
npm run convert # Generer PDF fra docs
```
### Docsify dokumentasjon
### Docsify Dokumentasjon
```bash
npm install -g docsify-cli # Installer Docsify globalt
docsify serve # Server på localhost:3000
docsify serve # Tjen på localhost:3000
```
### Prosjektspesifikke bygg
Hver prosjektkatalog kan ha egen byggeprosess:
Hver prosjektmappe kan ha egen byggeprosess:
- Vue-prosjekter: `npm run build` lager produksjonspakker
- Statiske prosjekter: Ingen byggeprosess, server filer direkte
- Statisk prosjekter: Ingen byggeprosess, serve filene direkte
## Retningslinjer for pull-forespørsler
## Retningslinjer for pull requests
### Tittelformat
Bruk klare, beskrivende titler som angir endringsområdet:
- `[Quiz-app] Legg til ny quiz for leksjon X`
- `[Lesson-3] Fiks skrivefeil i terrarium-prosjekt`
- `[Translation] Legg til spansk oversettelse for leksjon 5`
- `[Docs] Oppdater oppsettinstruksjoner`
Bruk klare, beskrivende titler som indikerer endringsområde:
- `[Quiz-app] Add new quiz for lesson X`
- `[Lesson-3] Fix typo in terrarium project`
- `[Translation] Add Spanish translation for lesson 5`
- `[Docs] Update setup instructions`
### Krav til sjekker
### Obligatoriske sjekker
Før innsending av PR:
1. **Kodekvalitet**:
- Kjør `npm run lint` i berørte prosjektmapper
- Rett opp alle lint-feil og advarsler
- Kjør `npm run lint` i påvirkede prosjektmapper
- Rett alle lint-feil og advarsler
2. **Byggeverifisering**:
- Kjør `npm run build` hvis aktuelt
- Sørg for ingen byggefeil
2. **Build-verifisering**:
- Kjør `npm run build` hvis relevant
- Sørg for at ingen byggefeil oppstår
3. **Lenkevalidering**:
- Test alle markdown-lenker
- Verifiser at bildefreferanser fungerer
- Verifiser at bildehenvisninger fungerer
4. **Innholdsgranskning**:
- Korrekturles for stave- og grammatikkfeil
4. **Innholdsrevisjon**:
- Korrekturles for rettskrivning og grammatikk
- Sørg for at kodeeksempler er korrekte og pedagogiske
- Verifiser at oversettelser opprettholder original betydning
- Verifiser at oversettelser bevarer opprinnelig mening
### Bidragskrav
- Aksepter Microsoft CLA (automatisk sjekk ved første PR)
- Samtykke til Microsoft CLA (automatisk sjekk ved første PR)
- Følg [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Se [CONTRIBUTING.md](./CONTRIBUTING.md) for detaljerte retningslinjer
- Referer til issues i PR-beskrivelse ved behov
- Referer til issues i PR-beskrivelsen dersom relevant
### Gjennomgangsprosess
- PRs granskes av vedlikeholdere og community
- PR-er vurderes av vedlikeholdere og fellesskapet
- Pedagogisk klarhet prioriteres
- Kodeeksempler bør følge gjeldende beste praksis
- Oversettelser vurderes for nøyaktighet og kulturell tilpasning
- Oversettelser vurderes for nøyaktighet og kulturell tilpassethet
## Oversettelsessystem
### Automatisk oversettelse
- Bruker GitHub Actions med co-op-translator workflow
- Oversetter automatisk til 50+ språk
- Oversetter til 50+ språk automatisk
- Kildefiler i hovedkataloger
- Oversatte filer i `translations/{language-code}/` mapper
### Legge til manuelle oversettelsesforbedringer
### Legge til manuelle forbedringer av oversettelser
1. Finn fil i `translations/{language-code}/`
2. Gjør forbedringer samtidig som struktur bevares
3. Sørg for at kodeeksempler fortsatt fungerer
4. Test eventuelt lokalisert quiz-innhold
4. Test eventuell lokalisert quiz-innhold
### Oversettelsesmetadata
Oversatte filer inkluderer metadata-overskrift:
Oversatte filer inkluderer metadata-header:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -293,86 +293,86 @@ CO_OP_TRANSLATOR_METADATA:
### Vanlige problemer
**Quiz-appen starter ikke**:
- Sjekk Node.js versjon (v14+ anbefalt)
**Quiz-app starter ikke**:
- Sjekk Node.js-versjon (v14+ anbefalt)
- Slett `node_modules` og `package-lock.json`, kjør `npm install` på nytt
- Sjekk portkonflikter (standard: Vite bruker port 5173)
- Sjekk for portkonflikter (standard: Vite bruker port 5173)
**API-server starter ikke**:
- Verifiser at Node.js versjon tilfredsstiller minimum (node >=10)
- Verifiser Node.js-versjon minimum (node >=10)
- Sjekk om port allerede er i bruk
- Sørg for at alle avhengigheter er installert med `npm install`
**Nettleserutvidelse lastes ikke**:
- Kontroller at manifest.json er korrekt formatert
- Sjekk nettleserkonsollen for feil
- Sjekk at manifest.json er riktig formatert
- Se etter feil i nettleserkonsollen
- Følg nettleserspesifikke installasjonsinstruksjoner
**Problemer med Python chat-prosjekt**:
- Sørg for at OpenAI-pakken er installert: `pip install openai`
- Verifiser at GITHUB_TOKEN miljøvariabelen er satt
- Kontroller tilgangsrettigheter til GitHub Models
- Verifiser at GITHUB_TOKEN miljøvariabel er satt
- Sjekk GitHub Models tilgangstillatelser
**Docsify serverer ikke dokumentasjon**:
- Installer docsify-cli globalt: `npm install -g docsify-cli`
- Kjør fra repository root-katalogen
- Kjør fra repoets rotkatalog
- Sjekk at `docs/_sidebar.md` eksisterer
### Tips for utviklingsmiljø
- Bruk VS Code med Live Server extension for HTML-prosjekter
- Installer ESLint og Prettier extensions for konsistent formatering
- Bruk nettleserens DevTools for å feilsøke JavaScript
- Bruk VS Code med Live Server-utvidelse for HTML-prosjekter
- Installer ESLint og Prettier-utvidelser for konsistent formatering
- Bruk nettleserens DevTools for JavaScript-feilsøking
- For Vue-prosjekter, installer Vue DevTools nettleserutvidelse
### Ytelsesbetraktninger
### Ytelseshensyn
- Stort antall oversatte filer (50+ språk) gjør at full kloning er stor
- Bruk shallow clone dersom du kun jobber med innhold: `git clone --depth 1`
- Ekskluder oversettelser fra søk når du jobber med engelsk innhold
- Mange oversatte filer (50+ språk) gjør at hele kloner blir store
- Bruk shallow clone hvis du kun jobber med innhold: `git clone --depth 1`
- Ekskluder oversettelser fra søk når du jobber engelsk innhold
- Byggeprosesser kan være trege ved første kjøring (npm install, Vite build)
## Sikkerhetsbetraktninger
## Sikkerhetshensyn
### Miljøvariabler
- API-nøkler skal aldri sjekkes inn i repository
- Bruk `.env` filer (allerede i `.gitignore`)
- API-nøkler skal aldri committes til repositoriet
- Bruk `.env`-filer (allerede i `.gitignore`)
- Dokumenter nødvendige miljøvariabler i prosjektets README-filer
### Python-prosjekter
- Bruk virtuelle miljøer: `python -m venv venv`
- Hold avhengigheter oppdatert
- GitHub-tokens skal ha minimale nødvendige tillatelser
- GitHub-tokens bør ha minimale nødvendige tillatelser
### GitHub Models-tilgang
- Personlige tilgangstokener (PAT) kreves for GitHub Models
- Tokens bør lagres som miljøvariabler
- Aldri sjekk inn tokens eller legitimasjon
- Aldri commit tokens eller legitimasjon
## Tilleggsnotater
### Målgruppe
- Fullstendige nybegynnere innen webutvikling
- Studenter og selvstudenter
- Fullstendige nybegynnere til webutvikling
- Studenter og selvlærende
- Lærere som bruker pensum i klasserom
- Innholdet er designet for tilgjengelighet og gradvis ferdighetsbygging
### Pedagogisk filosofi
- Prosjektbasert læringsmetode
- Hyppige kunnskapskontroller (quizzer)
- Praktiske kodingoppgaver
- Virkelighetsnære anvendelseksempler
- Fokus på grunnleggende før rammeverk
- Hyppige kunnskapskontroller (quizer)
- Praktiske kodingøvelser
- Reelle eksempler på anvendelse
- Fokuser på grunnleggende før rammeverk
### Repository-vedlikehold
### Repositorium-vedlikehold
- Aktivt community av lærende og bidragsytere
- Jevnlige oppdateringer av avhengigheter og innhold
- Aktivt fellesskap av lærende og bidragsytere
- Regelmessige oppdateringer av avhengigheter og innhold
- Issues og diskusjoner overvåkes av vedlikeholdere
- Oversettelsesoppdateringer automatisert via GitHub Actions
@ -381,7 +381,7 @@ CO_OP_TRANSLATOR_METADATA:
- [Microsoft Learn moduler](https://docs.microsoft.com/learn/)
- [Student Hub ressurser](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) anbefalt for lærende
- Tilleggs kurs: Generativ AI, Data Science, ML, IoT pensum tilgjengelig
- Ekstra kurs: Generativ AI, Data Science, ML, IoT pensum tilgjengelig
### Arbeid med spesifikke prosjekter
@ -390,19 +390,19 @@ For detaljerte instruksjoner om individuelle prosjekter, se README-filene i:
- `7-bank-project/README.md` - Bankapplikasjon med autentisering
- `5-browser-extension/README.md` - Nettleserutvidelsesutvikling
- `6-space-game/README.md` - Canvas-basert spillutvikling
- `9-chat-project/README.md` - AI chat-assistent prosjekt
- `9-chat-project/README.md` - AI chatassistentprosjekt
### Monorepo-struktur
Selv om dette ikke er et tradisjonelt monorepo, inneholder dette repositoriet flere uavhengige prosjekter:
Selv om det ikke er et tradisjonelt monorepo, inneholder dette repositoriet flere uavhengige prosjekter:
- Hver leksjon er selvstendig
- Prosjektene deler ikke avhengigheter
- Arbeid individuelle prosjekter uten å påvirke andre
- Klon hele repo for full pensumopplevelse
- Arbeid med individuelle prosjekter uten å påvirke andre
- Klon hele repoet for full pensumopplevelse
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på dets originale språk bør betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.
**Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på sitt morsmål bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save