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

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

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

@ -2,19 +2,19 @@
## Projektoversigt ## 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 - **Uddannelsesindhold**: 24 strukturerede lektioner organiseret i projektbaserede moduler
- **Praktiske Projekter**: Terrarium, Typing Game, Browserudvidelse, Space Game, Banking App, Code Editor, og AI Chat Assistant - **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-lesson vurderinger) - **Interaktive quizzer**: 48 quizzer med 3 spørgsmål hver (før/efter-lektion vurderinger)
- **Flersprogssupport**: Automatiske oversættelser til 50+ sprog via GitHub Actions - **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) - **Teknologier**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (til AI-projekter)
### Arkitektur ### Arkitektur
- Uddannelseslager med lektion-baseret struktur - Uddannelseslager med lektionbaseret struktur
- Hver lektionsmappe indeholder README, kodeeksempler og løsninger - Hver lektionsmappe indeholder README, kodeeksempler og løsninger
- Selvstændige projekter i separate mapper (quiz-app, forskellige lektionsprojekter) - Selvstændige projekter i separate mapper (quiz-app, forskellige lektionsprojekter)
- Oversættelsessystem ved brug af GitHub Actions (co-op-translator) - 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 npm run format # Formater med Prettier
``` ```
### Browserudvidelsesprojekter ### Browser Extension Projekter
```bash ```bash
cd 5-browser-extension/solution cd 5-browser-extension/solution
@ -72,32 +72,32 @@ npm install
```bash ```bash
cd 9-chat-project/solution/backend/python cd 9-chat-project/solution/backend/python
pip install openai pip install openai
# Indstil miljøvariablen GITHUB_TOKEN # Sæt miljøvariablen GITHUB_TOKEN
python api.py python api.py
``` ```
## Udviklingsarbejdsgang ## Udviklingsworkflow
### For Indholdsbidragydere ### For indholds bidragydere
1. **Fork lageret** til din GitHub-konto 1. **Fork lageret** til din GitHub-konto
2. **Klon din fork** lokalt 2. **Klon din fork** lokalt
3. **Opret en ny gren** til dine ændringer 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 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 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 3. Læs README-filer for hver lektion
4. Gennemfør før-lektion quizzer på https://ff-quizzes.netlify.app/web/ 4. Fuldfør før-lektion quizzer på https://ff-quizzes.netlify.app/web/
5. Arbejd med kodeeksempler i lektionsmapper 5. Arbejd igennem kodeeksempler i lektionsmapper
6. Fuldfør opgaver og udfordringer 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) - **Dokumentation**: Kør `docsify serve` i rodmappen (port 3000)
- **Quiz App**: Kør `npm run dev` i quiz-app mappen - **Quiz App**: Kør `npm run dev` i quiz-app mappen
@ -110,8 +110,8 @@ python api.py
```bash ```bash
cd quiz-app cd quiz-app
npm run lint # Tjek for kode stil problemer npm run lint # Tjek for problemer med kodestil
npm run build # Bekræft at build lykkes npm run build # Bekræft, at build lykkes
``` ```
### Bank API Test ### Bank API Test
@ -119,73 +119,73 @@ npm run build # Bekræft at build lykkes
```bash ```bash
cd 7-bank-project/api cd 7-bank-project/api
npm run lint # Tjek for kode stil problemer 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å: - Manuel test fokuserer på:
- Kodeeksempler kører uden fejl - Kodeeksempler kører uden fejl
- Links i dokumentationen fungerer korrekt - Links i dokumentationen fungerer korrekt
- Projekt builds gennemføres succesfuldt - Projekt builds gennemføres uden problemer
- Eksempler følger bedste praksis - Eksempler følger bedste praksis
### Tjek Før Indsendelse ### Forud for indsendelse tjek
- Kør `npm run lint` i mapper med package.json - 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 - 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 ### JavaScript
- Brug moderne ES6+ syntaks - Brug moderne ES6+ syntax
- Følg standard ESLint konfigurationer i projekterne - Følg standard ESLint konfigurationer leveret i projekter
- Brug meningsfulde variabel- og funktionsnavne for pædagogisk klarhed - Brug meningsfulde variabel- og funktionsnavne for pædagogisk klarhed
- Tilføj kommentarer der forklarer koncepter for lærende - Tilføj kommentarer der forklarer koncepter for elever
- Formater med Prettier hvor konfigureret - Formater ved hjælp af Prettier hvor konfigureret
### HTML/CSS ### HTML/CSS
- Semantiske HTML5-elementer - Semantiske HTML5 elementer
- Responsive designprincipper - Responsivt design principper
- Klare klassenavnekonventioner - Klare navngivningskonventioner for klasser
- Kommentarer der forklarer CSS-teknikker for lærende - Kommentarer der forklarer CSS teknikker for elever
### Python ### Python
- PEP 8 stilretningslinjer - PEP 8 stilretningslinjer
- Tydelige, pædagogiske kodeeksempler - Klare, pædagogiske kodeeksempler
- Type hints hvor hjælpsomt for læring - Typeangivelser hvor det er hjælpsomt for læring
### Markdown Dokumentation ### Markdown dokumentation
- Klar overskriftshierarki - Klar overskriftsstruktur
- Kodeblokke med sprogspecifikation - Kodeblokke med sprogspecifikation
- Links til yderligere ressourcer - Links til yderligere ressourcer
- Skærmbilleder og billeder i `images/` mapper - Skærmbilleder og billeder i `images/` mapper
- Alt-tekst for billeder for tilgængelighed - Alt-tekster til billeder for tilgængelighed
### Filorganisation ### 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 - 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 - 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 ```bash
cd quiz-app cd quiz-app
npm run build # Opretter dist/-mappe npm run build # Opretter dist/ mappe
# Udruller via GitHub Actions workflow ved push til main # Udrulning via GitHub Actions workflow ved push til main
``` ```
Azure Static Web Apps konfiguration: Azure Static Web Apps konfiguration:
@ -193,90 +193,90 @@ Azure Static Web Apps konfiguration:
- **Output placering**: `dist` - **Output placering**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml` - **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Dokumentations PDF Generering ### Dokumentations PDF generering
```bash ```bash
npm install # Installer docsify-to-pdf npm install # Installer docsify-to-pdf
npm run convert # Generer PDF fra docs npm run convert # Generer PDF fra docs
``` ```
### Docsify Dokumentation ### Docsify dokumentation
```bash ```bash
npm install -g docsify-cli # Installer Docsify globalt npm install -g docsify-cli # Installer Docsify globalt
docsify serve # Server på localhost:3000 docsify serve # Server på localhost:3000
``` ```
### Projekt-specifikke Builds ### Projekt-specifikke builds
Hver projektmappe kan have sin egen byggeproces: Hver projektmappe kan have sin egen build-proces:
- Vue-projekter: `npm run build` skaber produktionspakker - Vue projekter: `npm run build` skaber produktionsbundles
- Statiske projekter: Ingen build-step, server filer direkte - 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` - `[Quiz-app] Tilføj ny quiz til lektion X`
- `[Lesson-3] Ret stavefejl i terrarium projekt` - `[Lesson-3] Ret stavefejl i terrarium projekt`
- `[Translation] Tilføj spansk oversættelse til lektion 5` - `[Translation] Tilføj spansk oversættelse til lektion 5`
- `[Docs] Opdater opsætningsinstruktioner` - `[Docs] Opdater opsætningsinstruktioner`
### Krævede Tjek ### Krævede tjek
Før indsendelse af PR: Før indsendelse af PR:
1. **Kodekvalitet**: 1. **Kodekvalitet**:
- Kør `npm run lint` i berørte projektmapper - 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 - 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 - Test alle markdown links
- Bekræft billedreferencer fungerer - Bekræft billedehenvisninger virker
4. **Indholdsgennemgang**: 4. **Indholdsgennemgang**:
- Korrekturlæs for stave- og grammatikfejl - Korrekturlæs for stave- og grammatikefejl
- Sikr at kodeeksempler er korrekte og pædagogiske - Sørg for kodeeksempler er korrekte og pædagogiske
- Bekræft at oversættelser bevarer original betydning - Verificer at oversættelser bevarer oprindelig betydning
### Bidragskrav ### 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/) - Følg [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Se [CONTRIBUTING.md](./CONTRIBUTING.md) for detaljerede retningslinjer - 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 ### Gennemgangsproces
- PR’er gennemgås af vedligeholdere og community - PR’er gennemgås af vedligeholdere og fællesskab
- Pædagogisk klarhed prioriteres - Pædagogisk klarhed prioriteres
- Kodeeksempler skal følge aktuelle bedste praksisser - Kodeeksempler bør følge aktuelle bedste praksisser
- Oversættelser vurderes for nøjagtighed og kulturel tilpasning - Oversættelser vurderes for nøjagtighed og kulturel relevans
## Oversættelsessystem ## Oversættelsessystem
### Automatisk Oversættelse ### Automatisk oversættelse
- Bruger GitHub Actions med co-op-translator workflow - Bruger GitHub Actions med co-op-translator workflow
- Oversætter til 50+ sprog automatisk - Oversætter automatisk til over 50 sprog
- Kildefiler i hovedmapper - Kildefiler i hovedmapper
- Oversatte filer i `translations/{language-code}/` mapper - 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}/` 1. Find fil i `translations/{language-code}/`
2. Foretag forbedringer med bevaret struktur 2. Foretag forbedringer mens strukturen bevares
3. Sikr at kodeeksempler forbliver funktionelle 3. Sørg for at kodeeksempler forbliver funktionelle
4. Test eventuelt lokaliseret quiz-indhold 4. Test eventuelt lokaliseret quizindhold
### Oversættelses Metadata ### Oversættelsesmetadata
Oversatte filer indeholder metadata header: Oversatte filer inkluderer metadata header:
```markdown ```markdown
<!-- <!--
CO_OP_TRANSLATOR_METADATA: 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**: **Quiz app starter ikke**:
- Tjek Node.js version (v14+ anbefalet) - Tjek Node.js version (v14+ anbefalet)
@ -299,110 +299,110 @@ CO_OP_TRANSLATOR_METADATA:
- Tjek for portkonflikter (standard: Vite bruger port 5173) - Tjek for portkonflikter (standard: Vite bruger port 5173)
**API server starter ikke**: **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 - 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**: **Browser extension indlæses ikke**:
- Bekræft at manifest.json er korrekt formateret - Bekræft at manifest.json er korrekt formatteret
- Tjek browser konsol for fejl - Tjek browser konsol for fejl
- Følg browser-specifikke installationsinstruktioner til udvidelser - Følg browserspecifikke installationsinstruktioner
**Python chat projekt problemer**: **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 - Bekræft at miljøvariablen GITHUB_TOKEN er sat
- Tjek GitHub Models adgangstilladelser - Tjek GitHub Models adgangstilladelser
**Docsify serverer ikke docs**: **Docsify serverer ikke dokumentation**:
- Installer docsify-cli globalt: `npm install -g docsify-cli` - 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 - Tjek at `docs/_sidebar.md` findes
### Udviklingsmiljø Tips ### Udviklingsmiljø tips
- Brug VS Code med Live Server-udvidelsen til HTML-projekter - Brug VS Code med Live Server udvidelse til HTML projekter
- Installer ESLint og Prettier-udvidelser for ensartet formatering - Installer ESLint og Prettier udvidelser for ensartet formatering
- Brug browser DevTools til fejlfinding af JavaScript - Brug browser DevTools til debugging af JavaScript
- For Vue projekter, installer Vue DevTools browserudvidelsen - Til Vue projekter, installer Vue DevTools browserudvidelse
### Ydelsesbetragtninger ### Performance hensyn
- Stort antal oversatte filer (50+ sprog) betyder at komplette kloner er store - Stort antal oversatte filer (50+ sprog) betyder at fulde kloner er store
- Brug shallow clone hvis du kun arbejder med indhold: `git clone --depth 1` - Brug shallow clone hvis kun indhold arbejdes med: `git clone --depth 1`
- Udeluk oversættelser fra søgninger ved arbejde med engelsk indhold - Ekskluder oversættelser fra søgninger når der arbejdes med engelsk indhold
- Byggeprocesser kan være langsomme ved første kørsel (npm install, Vite build) - 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`) - 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` - Brug virtuelle miljøer: `python -m venv venv`
- Hold afhængigheder opdaterede - 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 - Personlige adgangstokens (PAT) kræves til GitHub Models
- Tokens skal gemmes som miljøvariable - Tokens skal opbevares som miljøvariabler
- Committ aldrig tokens eller login-oplysninger - Må aldrig committes eller deles
## Yderligere Bemærkninger ## Yderligere noter
### Målgruppe ### Målgruppe
- Fulde begyndere til webudvikling - Komplette begyndere til webudvikling
- Studerende og selv-studerende - Studerende og selvstuderende
- Lærere der bruger forløbet i klasseværelser - Lærere der bruger læseplanen i undervisning
- Indhold designet til tilgængelighed og gradvis færdighedsopbygning - Indhold designet til tilgængelighed og gradvis færdighedsopbygning
### Uddannelsesfilosofi ### Pædagogisk filosofi
- Projektbaseret læringstilgang - Projektbaseret læringstilgang
- Hyppige videnschecks (quizzer) - Hyppige videnscheck (quizzer)
- Praktiske kodningsøvelser - Praktiske kodningsøvelser
- Eksempler på virkelige anvendelser - Virkelighedsnære eksempler
- Fokus på grundlæggende før frameworks - 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 - Regelmæssige opdateringer til afhængigheder og indhold
- Issues og diskussioner overvåget af vedligeholdere - Issues og diskussioner overvåges af vedligeholdere
- Oversættelsesopdateringer automatiseret via GitHub Actions - Oversættelsesopdateringer automatiseres via GitHub Actions
### Relaterede Ressourcer ### Relaterede ressourcer
- [Microsoft Learn moduler](https://docs.microsoft.com/learn/) - [Microsoft Learn moduler](https://docs.microsoft.com/learn/)
- [Student Hub ressourcer](https://docs.microsoft.com/learn/student-hub/) - [Student Hub ressourcer](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) anbefalet til lærende - [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) anbefalet til elever
- Yderligere kurser: Generativ AI, Data Science, ML, IoT forløb tilgængelige - 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 - `quiz-app/README.md` - Vue 3 quiz applikation
- `7-bank-project/README.md` - Banking app med autentificering - `7-bank-project/README.md` - Bankapplikation med autentificering
- `5-browser-extension/README.md` - Browserudvidelsesudvikling - `5-browser-extension/README.md` - Udvikling af browserudvidelser
- `6-space-game/README.md` - Canvas-baseret spiludvikling - `6-space-game/README.md` - Canvas-baseret spiludvikling
- `9-chat-project/README.md` - AI chat assistent 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: Selvom det ikke er et traditionelt monorepo, indeholder dette lager flere uafhængige projekter:
- Hver lektion er selvstændig - Hver lektion er selvstændig
- Projekterne deler ikke afhængigheder - Projekter deler ikke afhængigheder
- Arbejd på individuelle projekter uden at påvirke andre - 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 --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**: **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. 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 --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

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

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

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

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