CONTACT
-
+
Scrie emailul tău aici
@@ -114,9 +125,9 @@ https://github.com/your-username/my-resume
EXPERIENȚĂ PROFESIONALĂ
- Titlul Jobului
+ Titlul jobului
- Numele Organizației Aici | Luna de început – Luna de final
+ Numele organizației aici | Luna de început – Luna de final
Sarcina 1 - Scrie ce ai făcut!
@@ -124,9 +135,9 @@ https://github.com/your-username/my-resume
Scrie rezultatele/impactul contribuției tale
- Titlul Jobului 2
+ Titlul jobului 2
- Numele Organizației Aici | Luna de început – Luna de final
+ Numele organizației aici | Luna de început – Luna de final
Sarcina 1 - Scrie ce ai făcut!
@@ -148,7 +159,7 @@ Adaugă detaliile CV-ului tău pentru a înlocui _textul de tip placeholder_ din
**Pasul 6:** Deschide fișierul `style.css`, lipește codul de mai jos și salvează.
- Cod CSS pentru formatul layout-ului site-ului.
+ Cod CSS pentru a formata aspectul site-ului.
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
@@ -219,29 +230,34 @@ Adaugă detaliile CV-ului tău pentru a înlocui _textul de tip placeholder_ din
**Pasul 7:** Instalează extensia `Codeswing` pentru a vizualiza site-ul CV-ului în zona de cod.
-Apasă pe pictograma _`Extensions`_ din bara de activități și tastează Codeswing. Fie apasă pe butonul _albastru de instalare_ din bara de activități extinsă pentru a instala, fie folosește butonul de instalare care apare în zona de cod odată ce selectezi extensia pentru a încărca informații suplimentare. Imediat după instalarea extensiei, observă schimbările din proiectul tău 😃.
+Apasă pe pictograma _`Extensions`_ din bara de activități și tastează Codeswing. Fie apasă pe butonul _albastru de instalare_ din bara de activități extinsă pentru a instala, fie folosește butonul de instalare care apare în zona de cod odată ce selectezi extensia pentru a încărca informații suplimentare. Imediat după instalarea extensiei, observă zona de cod pentru a vedea schimbările din proiectul tău 😃.

-Aceasta este ceea ce vei vedea pe ecranul tău după instalarea extensiei.
+Acesta este ceea ce vei vedea pe ecran după ce instalezi extensia.

-Dacă ești mulțumit de modificările pe care le-ai făcut, plasează cursorul pe folderul `Changes` și apasă pe butonul `+` pentru a stoca modificările.
+Dacă ești mulțumit de schimbările făcute, plasează cursorul pe folderul `Changes` și apasă pe butonul `+` pentru a stoca schimbările.
-Tastează un mesaj de commit _(O descriere a modificării pe care ai făcut-o proiectului)_ și confirmă modificările apăsând pe `check`. După ce ai terminat de lucrat la proiectul tău, selectează pictograma meniului hamburger din colțul stâng sus pentru a reveni la depozitul de pe GitHub.
+Tastează un mesaj de commit _(O descriere a schimbării pe care ai făcut-o proiectului)_ și confirmă schimbările apăsând pe `check`. După ce ai terminat de lucrat la proiect, selectează pictograma meniului hamburger din colțul stânga sus pentru a reveni la depozitul de pe GitHub.
-Felicitări 🎉 Tocmai ai creat site-ul CV-ului tău folosind vscode.dev în câțiva pași.
+Felicitări 🎉 Tocmai ai creat un site de tip CV folosind vscode.dev în câțiva pași.
## 🚀 Provocare
-Deschide un depozit remote la care ai permisiuni să faci modificări și actualizează câteva fișiere. Apoi, încearcă să creezi o nouă ramură cu modificările tale și să faci un Pull Request.
+Deschide un depozit la distanță pentru care ai permisiuni de a face modificări și actualizează câteva fișiere. Apoi, încearcă să creezi o nouă ramură cu modificările tale și să faci un Pull Request.
+
+
-## Recapitulare și Studiu Individual
+## Recapitulare și studiu individual
Citește mai multe despre [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) și alte funcționalități ale acestuia.
---
**Declinarea responsabilității**:
-Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși depunem eforturi pentru a asigura acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
+Acest document a fost tradus utilizând serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși depunem eforturi pentru a asigura acuratețea, vă rugăm să aveți în vedere că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea realizată de un profesionist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/9-chat-project/README.md b/translations/ro/9-chat-project/README.md
new file mode 100644
index 00000000..dbbacde3
--- /dev/null
+++ b/translations/ro/9-chat-project/README.md
@@ -0,0 +1,389 @@
+
+# Proiect de Chat
+
+Acest proiect de chat arată cum să construiești un Asistent de Chat folosind Modelele GitHub.
+
+Iată cum arată proiectul finalizat:
+
+
+
+
+
+Un pic de context: construirea asistenților de chat folosind AI generativ este o modalitate excelentă de a începe să înveți despre AI. Vei învăța cum să integrezi AI generativ într-o aplicație web pe parcursul acestei lecții. Să începem.
+
+## Conectarea la AI generativ
+
+Pentru backend, folosim Modelele GitHub. Este un serviciu excelent care îți permite să utilizezi AI gratuit. Accesează playground-ul său și preia codul corespunzător limbajului de backend ales. Iată cum arată la [GitHub Models Playground](https://github.com/marketplace/models/azure-openai/gpt-4o-mini/playground)
+
+
+
+
+
+Așa cum am menționat, selectează fila "Code" și runtime-ul ales.
+
+
+
+
+
+În acest caz, selectăm Python, ceea ce înseamnă că alegem acest cod:
+
+```python
+"""Run this model in Python
+
+> pip install openai
+"""
+import os
+from openai import OpenAI
+
+# To authenticate with the model you will need to generate a personal access token (PAT) in your GitHub settings.
+# Create your PAT token by following instructions here: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
+client = OpenAI(
+ base_url="https://models.github.ai/inference",
+ api_key=os.environ["GITHUB_TOKEN"],
+)
+
+response = client.chat.completions.create(
+ messages=[
+ {
+ "role": "system",
+ "content": "",
+ },
+ {
+ "role": "user",
+ "content": "What is the capital of France?",
+ }
+ ],
+ model="openai/gpt-4o-mini",
+ temperature=1,
+ max_tokens=4096,
+ top_p=1
+)
+
+print(response.choices[0].message.content)
+```
+
+Să curățăm puțin acest cod pentru a fi reutilizabil:
+
+```python
+def call_llm(prompt: str, system_message: str):
+ response = client.chat.completions.create(
+ messages=[
+ {
+ "role": "system",
+ "content": system_message,
+ },
+ {
+ "role": "user",
+ "content": prompt,
+ }
+ ],
+ model="openai/gpt-4o-mini",
+ temperature=1,
+ max_tokens=4096,
+ top_p=1
+ )
+
+ return response.choices[0].message.content
+```
+
+Cu această funcție `call_llm`, putem acum să luăm un prompt și un prompt de sistem, iar funcția va returna rezultatul.
+
+### Personalizarea Asistentului AI
+
+Dacă dorești să personalizezi asistentul AI, poți specifica cum vrei să se comporte, completând promptul de sistem astfel:
+
+```python
+call_llm("Tell me about you", "You're Albert Einstein, you only know of things in the time you were alive")
+```
+
+## Expunerea printr-un Web API
+
+Grozav, am terminat partea de AI, să vedem cum putem integra aceasta într-un Web API. Pentru Web API, alegem să folosim Flask, dar orice framework web ar trebui să fie bun. Iată codul pentru aceasta:
+
+```python
+# api.py
+from flask import Flask, request, jsonify
+from llm import call_llm
+from flask_cors import CORS
+
+app = Flask(__name__)
+CORS(app) # * example.com
+
+@app.route("/", methods=["GET"])
+def index():
+ return "Welcome to this API. Call POST /hello with 'message': 'my message' as JSON payload"
+
+
+@app.route("/hello", methods=["POST"])
+def hello():
+ # get message from request body { "message": "do this taks for me" }
+ data = request.get_json()
+ message = data.get("message", "")
+
+ response = call_llm(message, "You are a helpful assistant.")
+ return jsonify({
+ "response": response
+ })
+
+if __name__ == "__main__":
+ app.run(host="0.0.0.0", port=5000)
+```
+
+Aici, creăm un API Flask și definim o rută implicită "/" și "/chat". Cea din urmă este destinată utilizării de către frontend pentru a trimite întrebări.
+
+Pentru a integra *llm.py*, iată ce trebuie să facem:
+
+- Importă funcția `call_llm`:
+
+ ```python
+ from llm import call_llm
+ from flask import Flask, request
+ ```
+
+- Apeleaz-o din ruta "/chat":
+
+ ```python
+ @app.route("/hello", methods=["POST"])
+ def hello():
+ # get message from request body { "message": "do this taks for me" }
+ data = request.get_json()
+ message = data.get("message", "")
+
+ response = call_llm(message, "You are a helpful assistant.")
+ return jsonify({
+ "response": response
+ })
+ ```
+
+ Aici analizăm cererea primită pentru a prelua proprietatea `message` din corpul JSON. Ulterior, apelăm LLM cu acest apel:
+
+ ```python
+ response = call_llm(message, "You are a helpful assistant")
+
+ # return the response as JSON
+ return jsonify({
+ "response": response
+ })
+ ```
+
+Grozav, acum am făcut ce era necesar.
+
+### Configurarea Cors
+
+Trebuie să menționăm că am configurat ceva numit CORS, partajarea resurselor între origini diferite. Asta înseamnă că, deoarece backend-ul și frontend-ul nostru vor rula pe porturi diferite, trebuie să permitem frontend-ului să apeleze backend-ul. Există un fragment de cod în *api.py* care configurează acest lucru:
+
+```python
+from flask_cors import CORS
+
+app = Flask(__name__)
+CORS(app) # * example.com
+```
+
+În prezent, este configurat să permită "*" (toate originile), ceea ce este puțin nesigur. Ar trebui să restricționăm acest lucru odată ce trecem la producție.
+
+## Rulează proiectul
+
+Ok, avem *llm.py* și *api.py*, cum putem face să funcționeze cu un backend? Ei bine, sunt două lucruri pe care trebuie să le facem:
+
+- Instalează dependențele:
+
+ ```sh
+ cd backend
+ python -m venv venv
+ source ./venv/bin/activate
+
+ pip install openai flask flask-cors openai
+ ```
+
+- Pornește API-ul:
+
+ ```sh
+ python api.py
+ ```
+
+ Dacă ești în Codespaces, trebuie să mergi la Ports în partea de jos a editorului, să dai clic dreapta pe el, să selectezi "Port Visibility" și să alegi "Public".
+
+### Lucrează la un frontend
+
+Acum că avem un API funcțional, să creăm un frontend pentru acesta. Un frontend minim pe care îl vom îmbunătăți treptat. Într-un folder *frontend*, creează următoarele:
+
+```text
+backend/
+frontend/
+index.html
+app.js
+styles.css
+```
+
+Să începem cu **index.html**:
+
+```html
+
+
+
+
+
+
+
+
+
+```
+
+Acesta este minimul absolut necesar pentru a susține o fereastră de chat, deoarece constă dintr-o zonă de text unde vor fi afișate mesajele, un câmp de introducere pentru a scrie mesajul și un buton pentru a trimite mesajul către backend. Să analizăm următorul cod JavaScript din *app.js*.
+
+**app.js**
+
+```js
+// app.js
+
+(function(){
+ // 1. set up elements
+ const messages = document.getElementById("messages");
+ const form = document.getElementById("form");
+ const input = document.getElementById("input");
+
+ const BASE_URL = "change this";
+ const API_ENDPOINT = `${BASE_URL}/hello`;
+
+ // 2. create a function that talks to our backend
+ async function callApi(text) {
+ const response = await fetch(API_ENDPOINT, {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({ message: text })
+ });
+ let json = await response.json();
+ return json.response;
+ }
+
+ // 3. add response to our textarea
+ function appendMessage(text, role) {
+ const el = document.createElement("div");
+ el.className = `message ${role}`;
+ el.innerHTML = text;
+ messages.appendChild(el);
+ }
+
+ // 4. listen to submit events
+ form.addEventListener("submit", async(e) => {
+ e.preventDefault();
+ // someone clicked the button in the form
+
+ // get input
+ const text = input.value.trim();
+
+ appendMessage(text, "user")
+
+ // reset it
+ input.value = '';
+
+ const reply = await callApi(text);
+
+ // add to messages
+ appendMessage(reply, "assistant");
+
+ })
+})();
+```
+
+Să parcurgem codul pe secțiuni:
+
+- 1) Aici obținem o referință la toate elementele noastre pe care le vom folosi mai târziu în cod.
+- 2) În această secțiune, creăm o funcție care folosește metoda încorporată `fetch` pentru a apela backend-ul nostru.
+- 3) `appendMessage` ajută la adăugarea răspunsurilor, precum și a ceea ce tastezi ca utilizator.
+- 4) Aici ascultăm evenimentul de submit și citim câmpul de introducere, plasăm mesajul utilizatorului în zona de text, apelăm API-ul și afișăm răspunsul în zona de text.
+
+Să analizăm acum stilizarea. Aici poți fi foarte creativ și să faci să arate cum dorești, dar iată câteva sugestii:
+
+**styles.css**
+
+```
+.message {
+ background: #222;
+ box-shadow: 0 0 0 10px orange;
+ padding: 10px:
+ margin: 5px;
+}
+
+.message.user {
+ background: blue;
+}
+
+.message.assistant {
+ background: grey;
+}
+```
+
+Cu aceste trei clase, vei stiliza mesajele diferit, în funcție de unde provin: de la asistent sau de la tine ca utilizator. Dacă vrei să te inspiri, verifică folderul `solution/frontend/styles.css`.
+
+### Schimbă URL-ul de bază
+
+A fost un lucru pe care nu l-am setat aici și acesta este `BASE_URL`. Acesta nu este cunoscut până când backend-ul tău este pornit. Pentru a-l seta:
+
+- Dacă rulezi API-ul local, ar trebui să fie ceva de genul `http://localhost:5000`.
+- Dacă rulezi în Codespaces, ar trebui să arate ceva de genul "[name]app.github.dev".
+
+## Sarcină
+
+Creează propriul tău folder *project* cu conținutul astfel:
+
+```text
+project/
+ frontend/
+ index.html
+ app.js
+ styles.css
+ backend/
+ api.py
+ llm.py
+```
+
+Copiază conținutul din ceea ce a fost instruit mai sus, dar simte-te liber să personalizezi după bunul plac.
+
+## Soluție
+
+[Soluție](./solution/README.md)
+
+## Bonus
+
+Încearcă să schimbi personalitatea asistentului AI. Când apelezi `call_llm` în *api.py*, poți schimba al doilea argument la ceea ce dorești, de exemplu:
+
+```python
+call_llm(message, "You are Captain Picard")
+```
+
+Schimbă, de asemenea, CSS-ul și textul după bunul plac, făcând modificări în *index.html* și *styles.css*.
+
+## Rezumat
+
+Grozav, ai învățat de la zero cum să creezi un asistent personal folosind AI. Am făcut acest lucru folosind Modelele GitHub, un backend în Python și un frontend în HTML, CSS și JavaScript.
+
+## Configurare cu Codespaces
+
+- Navighează la: [Web Dev For Beginners repo](https://github.com/microsoft/Web-Dev-For-Beginners)
+- Creează dintr-un șablon (asigură-te că ești conectat la GitHub) în colțul din dreapta sus:
+
+ 
+
+- Odată ajuns în repo-ul tău, creează un Codespace:
+
+ 
+
+ Acest lucru ar trebui să pornească un mediu cu care poți lucra acum.
+
+---
+
+**Declinarea responsabilității**:
+Acest document a fost tradus utilizând serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși depunem eforturi pentru a asigura acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/9-chat-project/solution/README.md b/translations/ro/9-chat-project/solution/README.md
new file mode 100644
index 00000000..0aba4c36
--- /dev/null
+++ b/translations/ro/9-chat-project/solution/README.md
@@ -0,0 +1,55 @@
+
+# Rularea codului
+
+## Configurare
+
+Creează un mediu virtual
+
+```sh
+cd backend
+python -m venv venv
+source ./venv/bin/activate
+```
+
+## Instalează dependențele
+
+```sh
+pip install openai flask flask-cors
+```
+
+## Rulează API-ul
+
+```sh
+python api.py
+```
+
+## Rulează interfața
+
+Asigură-te că te afli în folderul frontend
+
+Găsește *app.js*, schimbă `BASE_URL` cu URL-ul backend-ului tău
+
+Rulează-l
+
+```
+npx http-server -p 8000
+```
+
+Încearcă să tastezi un mesaj în chat, ar trebui să vezi un răspuns (presupunând că rulezi acest lucru într-un Codespace sau ai configurat un token de acces).
+
+## Configurează token-ul de acces (dacă nu rulezi acest lucru într-un Codespace)
+
+Vezi [Set up PAT](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)
+
+---
+
+**Declinarea responsabilității**:
+Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși depunem eforturi pentru a asigura acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.
\ No newline at end of file
diff --git a/translations/ro/README.md b/translations/ro/README.md
index 581a86e6..245d3e90 100644
--- a/translations/ro/README.md
+++ b/translations/ro/README.md
@@ -1,8 +1,8 @@
# Projekt Terrárium Časť 1: Úvod do HTML
-
+
> Sketchnote od [Tomomi Imura](https://twitter.com/girlie_mac)
## Kvíz pred prednáškou
@@ -23,35 +23,35 @@ CO_OP_TRANSLATOR_METADATA:
### Úvod
-HTML, alebo HyperText Markup Language, je „kostra“ webu. Ak CSS „obliekne“ váš HTML a JavaScript ho oživí, HTML je telom vašej webovej aplikácie. Syntax HTML dokonca odráža túto myšlienku, pretože obsahuje značky ako „head“, „body“ a „footer“.
+HTML, alebo HyperText Markup Language, je „kostra“ webu. Ak CSS „obliekne“ váš HTML a JavaScript mu vdýchne život, HTML je telom vašej webovej aplikácie. Syntax HTML dokonca odráža túto myšlienku, pretože obsahuje značky ako „head“, „body“ a „footer“.
-V tejto lekcii použijeme HTML na vytvorenie „kostry“ rozhrania nášho virtuálneho terária. Bude obsahovať názov a tri stĺpce: pravý a ľavý stĺpec, kde budú umiestnené ťahateľné rastliny, a strednú oblasť, ktorá bude samotným skleneným teráriom. Na konci tejto lekcie budete môcť vidieť rastliny v stĺpcoch, ale rozhranie bude vyzerať trochu zvláštne; nebojte sa, v ďalšej časti pridáte do rozhrania CSS štýly, aby vyzeralo lepšie.
+V tejto lekcii použijeme HTML na vytvorenie „kostry“ rozhrania nášho virtuálneho terária. Bude obsahovať názov a tri stĺpce: pravý a ľavý stĺpec, kde budú umiestnené ťahateľné rastliny, a strednú oblasť, ktorá bude predstavovať sklenené terárium. Na konci tejto lekcie budete môcť vidieť rastliny v stĺpcoch, ale rozhranie bude vyzerať trochu zvláštne; nebojte sa, v ďalšej časti pridáte do rozhrania štýly CSS, aby vyzeralo lepšie.
### Úloha
-Na svojom počítači vytvorte priečinok s názvom 'terrarium' a v ňom súbor s názvom 'index.html'. Môžete to urobiť vo Visual Studio Code po vytvorení priečinka terrarium tak, že otvoríte nové okno VS Code, kliknete na 'open folder' a prejdete do svojho nového priečinka. Kliknite na malé tlačidlo 'file' v paneli Explorer a vytvorte nový súbor:
+Na svojom počítači vytvorte priečinok s názvom „terrarium“ a v ňom súbor s názvom „index.html“. Môžete to urobiť vo Visual Studio Code po vytvorení priečinka terrarium tak, že otvoríte nové okno VS Code, kliknete na „open folder“ a prejdete do svojho nového priečinka. Kliknite na malé tlačidlo „file“ v paneli Explorer a vytvorte nový súbor:

Alebo
-Použite tieto príkazy v git bash:
+Použite tieto príkazy vo vašom git bash:
* `mkdir terrarium`
* `cd terrarium`
* `touch index.html`
* `code index.html` alebo `nano index.html`
-> Súbory index.html naznačujú prehliadaču, že ide o predvolený súbor v priečinku; URL ako `https://anysite.com/test` môžu byť vytvorené pomocou štruktúry priečinkov vrátane priečinka s názvom `test` s `index.html` vo vnútri; `index.html` nemusí byť zobrazený v URL.
+> Súbory index.html naznačujú prehliadaču, že ide o predvolený súbor v priečinku; URL ako `https://anysite.com/test` môžu byť vytvorené pomocou štruktúry priečinkov vrátane priečinka s názvom `test` s `index.html` vo vnútri; `index.html` sa nemusí zobrazovať v URL.
---
## DocType a značky html
-Prvý riadok HTML súboru je jeho doctype. Je trochu prekvapujúce, že tento riadok musí byť na úplnom vrchu súboru, ale hovorí starším prehliadačom, že stránka sa má vykresliť v štandardnom režime podľa aktuálnej špecifikácie HTML.
+Prvý riadok súboru HTML je jeho doctype. Je trochu prekvapujúce, že tento riadok musí byť na úplnom vrchu súboru, ale hovorí starším prehliadačom, že stránka sa má vykresliť v štandardnom režime podľa aktuálnej špecifikácie HTML.
-> Tip: vo VS Code môžete prejsť kurzorom nad značku a získať informácie o jej použití z referenčných príručiek MDN.
+> Tip: vo VS Code môžete prejsť kurzorom na značku a získať informácie o jej použití z referenčných príručiek MDN.
-Druhý riadok by mal byť otváracou značkou ``, hneď nasledovanou jej zatváracou značkou ``. Tieto značky sú koreňovými prvkami vášho rozhrania.
+Druhý riadok by mal byť otváracou značkou ``, nasledovanou zatiaľ zatváracou značkou ``. Tieto značky sú koreňovými prvkami vášho rozhrania.
### Úloha
@@ -62,19 +62,19 @@ Pridajte tieto riadky na začiatok vášho súboru `index.html`:
```
-✅ Existuje niekoľko rôznych režimov, ktoré môžu byť určené nastavením DocType pomocou dotazovacieho reťazca: [Quirks Mode a Standards Mode](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). Tieto režimy sa používali na podporu veľmi starých prehliadačov, ktoré sa dnes už bežne nepoužívajú (Netscape Navigator 4 a Internet Explorer 5). Môžete sa držať štandardného vyhlásenia doctype.
+✅ Existuje niekoľko rôznych režimov, ktoré je možné určiť nastavením DocType pomocou reťazca dopytu: [Quirks Mode a Standards Mode](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). Tieto režimy slúžili na podporu veľmi starých prehliadačov, ktoré sa dnes bežne nepoužívajú (Netscape Navigator 4 a Internet Explorer 5). Držte sa štandardného vyhlásenia doctype.
---
-## Dokumentová 'head'
+## 'Head' dokumentu
-Oblasť 'head' HTML dokumentu obsahuje kľúčové informácie o vašej webovej stránke, známe aj ako [metadata](https://developer.mozilla.org/docs/Web/HTML/Element/meta). V našom prípade serveru, na ktorý bude táto stránka odoslaná na vykreslenie, oznamujeme tieto štyri veci:
+Oblasť 'head' dokumentu HTML obsahuje kľúčové informácie o vašej webovej stránke, známe aj ako [metadata](https://developer.mozilla.org/docs/Web/HTML/Element/meta). V našom prípade hovoríme webovému serveru, na ktorý bude táto stránka odoslaná na vykreslenie, tieto štyri veci:
- názov stránky
- metadáta stránky vrátane:
- 'character set', ktorý informuje o tom, aké kódovanie znakov sa používa na stránke
- informácie o prehliadači, vrátane `x-ua-compatible`, čo naznačuje, že je podporovaný prehliadač IE=edge
- - informácie o tom, ako by sa mal viewport správať pri načítaní. Nastavenie viewportu na počiatočnú mierku 1 kontroluje úroveň priblíženia pri prvom načítaní stránky.
+ - informácie o tom, ako by sa mal viewport správať pri načítaní. Nastavenie viewportu na počiatočné zväčšenie 1 kontroluje úroveň priblíženia pri prvom načítaní stránky.
### Úloha
@@ -93,11 +93,11 @@ Pridajte blok 'head' do vášho dokumentu medzi otváracie a zatváracie značky
---
-## Dokumentové `body`
+## 'Body' dokumentu
### HTML značky
-V HTML pridávate značky do vášho .html súboru na vytvorenie prvkov webovej stránky. Každá značka má zvyčajne otváraciu a zatváraciu značku, napríklad: `hello
` na označenie odseku. Vytvorte telo vášho rozhrania pridaním sady značiek `` do páru značiek ``; váš kód teraz vyzerá takto:
+V HTML pridávate značky do vášho .html súboru na vytváranie prvkov webovej stránky. Každá značka má zvyčajne otváraciu a zatváraciu značku, napríklad: `ahoj
` na označenie odseku. Vytvorte telo vášho rozhrania pridaním sady značiek `` do páru značiek ``; váš kód teraz vyzerá takto:
### Úloha
@@ -114,13 +114,13 @@ V HTML pridávate značky do vášho .html súboru na vytvorenie prvkov webovej
```
-Teraz môžete začať budovať svoju stránku. Zvyčajne používate značky `` na vytvorenie samostatných prvkov na stránke. Vytvoríme sériu prvkov `
`, ktoré budú obsahovať obrázky.
+Teraz môžete začať budovať svoju stránku. Zvyčajne používate značky `
` na vytváranie samostatných prvkov na stránke. Vytvoríme sériu prvkov `
`, ktoré budú obsahovať obrázky.
### Obrázky
-Jedna HTML značka, ktorá nepotrebuje zatváraciu značku, je značka `
`, pretože má atribút `src`, ktorý obsahuje všetky informácie potrebné na vykreslenie položky.
+Jedna HTML značka, ktorá nepotrebuje zatváraciu značku, je `
`, pretože obsahuje atribút `src`, ktorý obsahuje všetky informácie potrebné na vykreslenie položky na stránke.
-Vytvorte priečinok vo vašej aplikácii s názvom `images` a do neho pridajte všetky obrázky z [zdrojového kódu](../../../../3-terrarium/solution/images); (je tam 14 obrázkov rastlín).
+Vytvorte priečinok vo vašej aplikácii s názvom `images` a do neho pridajte všetky obrázky z [priečinka so zdrojovým kódom](../../../../3-terrarium/solution/images); (je tam 14 obrázkov rastlín).
### Úloha
@@ -177,11 +177,11 @@ Pridajte tieto obrázky rastlín do dvoch stĺpcov medzi značky ``
```
-> Poznámka: Spany vs. Divy. Divy sú považované za 'blokové' prvky, zatiaľ čo Spany sú 'riadkové'. Čo by sa stalo, keby ste tieto divy zmenili na spany?
+> Poznámka: Spany vs. Divy. Divy sa považujú za „blokové“ prvky a Spany za „riadkové“. Čo by sa stalo, keby ste tieto divy zmenili na spany?
S týmto kódom sa rastliny teraz zobrazia na obrazovke. Vyzerá to dosť zle, pretože ešte nie sú naštýlované pomocou CSS, čo urobíme v ďalšej lekcii.
-Každý obrázok má alternatívny text, ktorý sa zobrazí, aj keď obrázok nemôžete vidieť alebo vykresliť. Toto je dôležitý atribút pre prístupnosť. Viac o prístupnosti sa dozviete v budúcich lekciách; zatiaľ si zapamätajte, že atribút alt poskytuje alternatívne informácie pre obrázok, ak ho používateľ z nejakého dôvodu nemôže zobraziť (kvôli pomalému pripojeniu, chybe v atribúte src alebo ak používateľ používa čítačku obrazovky).
+Každý obrázok má alternatívny text, ktorý sa zobrazí, aj keď obrázok nemôžete vidieť alebo vykresliť. Toto je dôležitý atribút pre prístupnosť. Viac o prístupnosti sa dozviete v budúcich lekciách; zatiaľ si zapamätajte, že atribút alt poskytuje alternatívne informácie o obrázku, ak ho používateľ z nejakého dôvodu nemôže zobraziť (kvôli pomalému pripojeniu, chybe v atribúte src alebo ak používateľ používa čítačku obrazovky).
✅ Všimli ste si, že každý obrázok má rovnaký alt text? Je to dobrá prax? Prečo áno alebo nie? Môžete tento kód vylepšiť?
@@ -189,7 +189,7 @@ Každý obrázok má alternatívny text, ktorý sa zobrazí, aj keď obrázok ne
## Sémantické značkovanie
-Vo všeobecnosti je lepšie používať zmysluplné 'sémantiky' pri písaní HTML. Čo to znamená? Znamená to, že používate HTML značky na reprezentáciu typu údajov alebo interakcie, pre ktoré boli navrhnuté. Napríklad hlavný názov textu na stránke by mal používať značku `
`.
+Vo všeobecnosti je vhodnejšie používať zmysluplné „sémantiky“ pri písaní HTML. Čo to znamená? Znamená to, že používate HTML značky na reprezentáciu typu údajov alebo interakcie, na ktoré boli navrhnuté. Napríklad hlavný názov textu na stránke by mal používať značku ``.
Pridajte nasledujúci riadok hneď pod otváraciu značku ``:
@@ -197,7 +197,7 @@ Pridajte nasledujúci riadok hneď pod otváraciu značku ``:
My Terrarium
```
-Používanie sémantického značkovania, ako je napríklad použitie hlavičiek `` a nenačíslovaných zoznamov ``, pomáha čítačkám obrazovky navigovať cez stránku. Vo všeobecnosti by tlačidlá mali byť napísané ako `` a zoznamy ako ``. Aj keď je _možné_ použiť špeciálne naštýlované `` prvky s obsluhou kliknutí na napodobnenie tlačidiel, je lepšie pre používateľov so zdravotným postihnutím používať technológie na určenie, kde sa na stránke nachádza tlačidlo, a interagovať s ním, ak sa prvok zobrazuje ako tlačidlo. Z tohto dôvodu sa snažte používať sémantické značkovanie čo najviac.
+Používanie sémantického značkovania, ako je napríklad použitie hlavičiek `` a neriadených zoznamov ``, pomáha čítačkám obrazovky navigovať na stránke. Vo všeobecnosti by tlačidlá mali byť napísané ako `` a zoznamy ako ``. Aj keď je _možné_ použiť špeciálne naštýlované `` prvky s obsluhou kliknutí na napodobnenie tlačidiel, je lepšie pre používateľov so zdravotným postihnutím, aby technológie určili, kde sa na stránke nachádza tlačidlo, a aby s ním mohli interagovať, ak sa prvok zobrazuje ako tlačidlo. Z tohto dôvodu sa snažte používať sémantické značkovanie čo najviac.
✅ Pozrite si čítačku obrazovky a [ako interaguje s webovou stránkou](https://www.youtube.com/watch?v=OUDV1gqs9GA). Vidíte, prečo by nesémantické značkovanie mohlo používateľa frustrovať?
@@ -221,21 +221,21 @@ Pridajte toto značkovanie nad poslednú značku ` `:
```
-✅ Aj keď ste pridali toto značkovanie na obrazovku, nevidíte nič vykreslené. Prečo?
+✅ Aj keď ste pridali toto značkovanie na obrazovku, nič sa nezobrazí. Prečo?
---
## 🚀Výzva
-Existujú niektoré staré 'zábavné' značky v HTML, ktoré je stále zábavné používať, aj keď by ste nemali používať zastarané značky ako [tieto značky](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements) vo vašom značkovaní. Napriek tomu, môžete použiť starú značku `
` na to, aby sa h1 názov posúval horizontálne? (ak to urobíte, nezabudnite ju potom odstrániť)
+Existujú niektoré „staršie“ značky v HTML, ktoré sú stále zábavné na hranie, aj keď by ste nemali používať zastarané značky, ako sú [tieto značky](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements) vo vašom značkovaní. Napriek tomu, môžete použiť starú značku `` na to, aby sa názov h1 posúval horizontálne? (ak to urobíte, nezabudnite ju potom odstrániť)
## Kvíz po prednáške
[Kvíz po prednáške](https://ff-quizzes.netlify.app/web/quiz/16)
-## Prehľad a samostatné štúdium
+## Prehľad a samoštúdium
-HTML je „osvedčený“ stavebný systém, ktorý pomohol vybudovať web do podoby, v akej ho poznáme dnes. Naučte sa niečo o jeho histórii štúdiom starých a nových značiek. Dokážete zistiť, prečo boli niektoré značky zastarané a iné pridané? Aké značky by mohli byť zavedené v budúcnosti?
+HTML je „osvedčený a spoľahlivý“ stavebný systém, ktorý pomohol vybudovať web do podoby, akú má dnes. Zistite niečo o jeho histórii štúdiom starých a nových značiek. Dokážete zistiť, prečo boli niektoré značky zastarané a iné pridané? Aké značky by mohli byť zavedené v budúcnosti?
Dozviete sa viac o vytváraní stránok pre web a mobilné zariadenia na [Microsoft Learn](https://docs.microsoft.com/learn/modules/build-simple-website/?WT.mc_id=academic-77807-sagibbon).
@@ -246,4 +246,4 @@ Dozviete sa viac o vytváraní stránok pre web a mobilné zariadenia na [Micros
---
**Upozornenie**:
-Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
+Tento dokument bol preložený pomocou služby na automatický preklad [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/3-terrarium/2-intro-to-css/README.md b/translations/sk/3-terrarium/2-intro-to-css/README.md
index 4485eea2..189d1887 100644
--- a/translations/sk/3-terrarium/2-intro-to-css/README.md
+++ b/translations/sk/3-terrarium/2-intro-to-css/README.md
@@ -1,8 +1,8 @@
-# Vytvorenie vesmírnej hry, časť 2: Kreslenie hrdinu a príšer na plátno
+# Vytvorenie vesmírnej hry, časť 2: Kreslenie hrdinu a monštier na plátno
## Kvíz pred prednáškou
@@ -27,22 +27,22 @@ Takto sa zvyčajne deklaruje ako súčasť tela stránky:
Vyššie nastavujeme `id`, `width` a `height`.
-- `id`: nastavte ho, aby ste mohli získať referenciu, keď s ním budete potrebovať pracovať.
+- `id`: nastavte ho, aby ste mohli získať referenciu, keď budete potrebovať s plátnom pracovať.
- `width`: šírka elementu.
- `height`: výška elementu.
-## Kreslenie jednoduchých geometrických tvarov
+## Kreslenie jednoduchej geometrie
Plátno používa kartézsky súradnicový systém na kreslenie objektov. Používa os x a os y na vyjadrenie polohy objektu. Poloha `0,0` je v ľavom hornom rohu a pravý dolný roh je určený hodnotami WIDTH a HEIGHT plátna.
-
+
> Obrázok z [MDN](https://developer.mozilla.org/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes)
Na kreslenie na plátno musíte prejsť nasledujúcimi krokmi:
1. **Získať referenciu** na element plátna.
-2. **Získať referenciu** na element Context, ktorý sa nachádza na plátne.
-3. **Vykonať kresliacu operáciu** pomocou elementu Context.
+1. **Získať referenciu** na kontextový element, ktorý sa nachádza na plátne.
+1. **Vykonať kresliacu operáciu** pomocou kontextového elementu.
Kód pre vyššie uvedené kroky zvyčajne vyzerá takto:
@@ -61,12 +61,12 @@ ctx.fillStyle = 'red';
ctx.fillRect(0,0, 200, 200) // x,y,width, height
```
-✅ Canvas API sa zameriava hlavne na 2D tvary, ale môžete kresliť aj 3D objekty na webovú stránku; na to môžete použiť [WebGL API](https://developer.mozilla.org/docs/Web/API/WebGL_API).
+✅ Canvas API sa zameriava hlavne na 2D tvary, ale môžete tiež kresliť 3D objekty na webovú stránku; na to môžete použiť [WebGL API](https://developer.mozilla.org/docs/Web/API/WebGL_API).
S Canvas API môžete kresliť rôzne veci, ako napríklad:
- **Geometrické tvary**, už sme ukázali, ako nakresliť obdĺžnik, ale môžete kresliť oveľa viac.
-- **Text**, môžete kresliť text s akýmkoľvek fontom a farbou, ktorú si zvolíte.
+- **Text**, môžete kresliť text s akýmkoľvek fontom a farbou, akú si želáte.
- **Obrázky**, môžete kresliť obrázky na základe obrazových súborov, ako napríklad .jpg alebo .png.
✅ Skúste to! Už viete, ako nakresliť obdĺžnik, dokážete nakresliť kruh na stránku? Pozrite si niektoré zaujímavé kresby na plátne na CodePen. Tu je [obzvlášť pôsobivý príklad](https://codepen.io/dissimulate/pen/KrAwx).
@@ -87,7 +87,7 @@ img.onload = () => {
### Vzor načítania súboru
-Odporúča sa obaliť vyššie uvedené do konštruktu, ako je tento, aby sa to ľahšie používalo a aby ste sa pokúsili manipulovať s objektom až vtedy, keď je úplne načítaný:
+Odporúča sa obaliť vyššie uvedený kód do konštruktu, aby sa s ním ľahšie pracovalo a aby ste sa pokúsili manipulovať s ním iba vtedy, keď je úplne načítaný:
```javascript
function loadAsset(path) {
@@ -124,7 +124,7 @@ async function run() {
}
```
-## Teraz je čas začať budovať vašu hru
+## Teraz je čas začať budovať svoju hru
### Čo vytvoriť
@@ -134,9 +134,9 @@ Vytvoríte webovú stránku s elementom plátna. Mala by zobrazovať čiernu obr

-- 5*5 príšer
+- 5*5 monštrum
- 
+ 
### Odporúčané kroky na začatie vývoja
@@ -151,7 +151,7 @@ Nájdite súbory, ktoré boli pre vás vytvorené v podpriečinku `your-work`. M
-| package.json
```
-Otvorte kópiu tohto priečinka vo Visual Studio Code. Mali by ste mať nastavené lokálne vývojové prostredie, najlepšie s Visual Studio Code, NPM a Node. Ak nemáte na počítači nastavený `npm`, [tu je návod, ako to urobiť](https://www.npmjs.com/get-npm).
+Otvorte kópiu tohto priečinka vo Visual Studio Code. Mali by ste mať nastavené lokálne vývojové prostredie, ideálne s Visual Studio Code, NPM a Node. Ak nemáte na svojom počítači nastavený `npm`, [tu je návod, ako to urobiť](https://www.npmjs.com/get-npm).
Začnite svoj projekt navigáciou do priečinka `your_work`:
@@ -168,13 +168,13 @@ Vyššie uvedené spustí HTTP server na adrese `http://localhost:5000`. Otvorte
Pridajte potrebný kód do `your-work/app.js`, aby ste vyriešili nasledujúce:
-1. **Nakreslite** plátno s čiernym pozadím
+1. **Nakreslite** plátno s čiernym pozadím
> tip: pridajte dva riadky pod príslušný TODO v `/app.js`, nastavte element `ctx` na čiernu farbu a horné/ľavé súradnice na 0,0, pričom výška a šírka budú rovnaké ako plátno.
-2. **Načítajte** textúry
+2. **Načítajte** textúry
> tip: pridajte obrázky hráča a nepriateľa pomocou `await loadTexture` a odovzdajte cestu k obrázku. Zatiaľ ich na obrazovke neuvidíte!
-3. **Nakreslite** hrdinu do stredu obrazovky v dolnej polovici
- > tip: použite API `drawImage` na nakreslenie heroImg na obrazovku, nastavte `canvas.width / 2 - 45` a `canvas.height - canvas.height / 4)`.
-4. **Nakreslite** 5*5 príšer
+3. **Nakreslite** hrdinu do stredu obrazovky v dolnej polovici
+ > tip: použite API `drawImage` na nakreslenie heroImg na obrazovku, nastavte `canvas.width / 2 - 45` a `canvas.height - canvas.height / 4)`;
+4. **Nakreslite** 5*5 monštier
> tip: Teraz môžete odkomentovať kód na kreslenie nepriateľov na obrazovku. Potom prejdite do funkcie `createEnemies` a doplňte ju.
Najskôr nastavte niektoré konštanty:
@@ -186,7 +186,7 @@ Pridajte potrebný kód do `your-work/app.js`, aby ste vyriešili nasledujúce:
const STOP_X = START_X + MONSTER_WIDTH;
```
- potom vytvorte slučku na nakreslenie poľa príšer na obrazovku:
+ potom vytvorte slučku na nakreslenie poľa monštier na obrazovku:
```javascript
for (let x = START_X; x < STOP_X; x += 98) {
@@ -200,7 +200,7 @@ Pridajte potrebný kód do `your-work/app.js`, aby ste vyriešili nasledujúce:
Hotový výsledok by mal vyzerať takto:
-
+
## Riešenie
@@ -210,13 +210,13 @@ Najskôr sa pokúste vyriešiť úlohu sami, ale ak sa zaseknete, pozrite si [ri
## 🚀 Výzva
-Naučili ste sa kresliť pomocou Canvas API zameraného na 2D; pozrite sa na [WebGL API](https://developer.mozilla.org/docs/Web/API/WebGL_API) a skúste nakresliť 3D objekt.
+Naučili ste sa kresliť pomocou Canvas API zameraného na 2D; pozrite si [WebGL API](https://developer.mozilla.org/docs/Web/API/WebGL_API) a skúste nakresliť 3D objekt.
## Kvíz po prednáške
[Kvíz po prednáške](https://ff-quizzes.netlify.app/web/quiz/32)
-## Prehľad a samoštúdium
+## Prehľad a samostatné štúdium
Dozviete sa viac o Canvas API [čítaním o ňom](https://developer.mozilla.org/docs/Web/API/Canvas_API).
@@ -227,4 +227,4 @@ Dozviete sa viac o Canvas API [čítaním o ňom](https://developer.mozilla.org/
---
**Upozornenie**:
-Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
+Tento dokument bol preložený pomocou služby na automatický preklad [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-space-game/3-moving-elements-around/README.md b/translations/sk/6-space-game/3-moving-elements-around/README.md
index f4e39f9f..760f8dad 100644
--- a/translations/sk/6-space-game/3-moving-elements-around/README.md
+++ b/translations/sk/6-space-game/3-moving-elements-around/README.md
@@ -1,8 +1,8 @@
-# Vytvorte vesmírnu hru, časť 5: Body a životy
+# Vytvorenie vesmírnej hry, časť 5: Skóre a životy
## Kvíz pred prednáškou
[Kvíz pred prednáškou](https://ff-quizzes.netlify.app/web/quiz/37)
-V tejto lekcii sa naučíte, ako pridať bodovanie do hry a počítať životy.
+V tejto lekcii sa naučíte, ako pridať skóre do hry a vypočítať životy.
## Zobrazenie textu na obrazovke
-Aby ste mohli zobrazovať skóre hry na obrazovke, musíte vedieť, ako umiestniť text na obrazovku. Odpoveďou je použitie metódy `fillText()` na objekte canvas. Môžete tiež ovládať ďalšie aspekty, ako napríklad aké písmo použiť, farbu textu a dokonca aj jeho zarovnanie (vľavo, vpravo, na stred). Nižšie je uvedený kód, ktorý zobrazuje text na obrazovke.
+Aby ste mohli zobraziť skóre hry na obrazovke, musíte vedieť, ako umiestniť text na obrazovku. Odpoveďou je použitie metódy `fillText()` na objekte canvas. Môžete tiež ovládať ďalšie aspekty, ako napríklad aké písmo použiť, farbu textu a dokonca aj jeho zarovnanie (vľavo, vpravo, na stred). Nižšie je uvedený kód, ktorý zobrazuje text na obrazovke.
```javascript
ctx.font = "30px Arial";
@@ -26,18 +26,18 @@ ctx.textAlign = "right";
ctx.fillText("show this on the screen", 0, 0);
```
-✅ Prečítajte si viac o [tom, ako pridať text na plátno](https://developer.mozilla.org/docs/Web/API/Canvas_API/Tutorial/Drawing_text), a pokojne si ho upravte podľa svojich predstáv!
+✅ Prečítajte si viac o [tom, ako pridať text na plátno](https://developer.mozilla.org/docs/Web/API/Canvas_API/Tutorial/Drawing_text), a pokojne si ho upravte podľa svojho vkusu!
## Život ako herný koncept
-Koncept života v hre je len číslo. V kontexte vesmírnej hry je bežné priradiť určitý počet životov, ktoré sa odpočítavajú jeden po druhom, keď vaša loď utrpí poškodenie. Je pekné, ak môžete namiesto čísla zobraziť grafickú reprezentáciu, ako sú malé lode alebo srdcia.
+Koncept života v hre je len číslo. V kontexte vesmírnej hry je bežné priradiť určitý počet životov, ktoré sa odpočítavajú jeden po druhom, keď vaša loď utrpí poškodenie. Je pekné, ak môžete namiesto čísla zobraziť grafickú reprezentáciu, ako sú malé lodičky alebo srdcia.
## Čo vytvoriť
-Pridajte do svojej hry nasledujúce prvky:
+Pridajme do vašej hry nasledujúce:
- **Herné skóre**: Za každú zničenú nepriateľskú loď by mal hrdina získať body, odporúčame 100 bodov za loď. Herné skóre by sa malo zobrazovať v ľavom dolnom rohu.
-- **Životy**: Vaša loď má tri životy. O život prídete zakaždým, keď do vás narazí nepriateľská loď. Počet životov by sa mal zobrazovať v pravom dolnom rohu a mal by byť reprezentovaný nasledujúcou grafikou .
+- **Životy**: Vaša loď má tri životy. O život prídete zakaždým, keď do vás narazí nepriateľská loď. Počet životov by sa mal zobrazovať v pravom dolnom rohu a mal by byť vytvorený z nasledujúcej grafiky .
## Odporúčané kroky
@@ -53,7 +53,7 @@ Nájdite súbory, ktoré boli pre vás vytvorené v podpriečinku `your-work`. M
-| package.json
```
-Spustite svoj projekt v priečinku `your_work` zadaním:
+Svoj projekt spustíte v priečinku `your_work` zadaním:
```bash
cd your-work
@@ -64,7 +64,7 @@ Vyššie uvedené spustí HTTP server na adrese `http://localhost:5000`. Otvorte
### Pridanie kódu
-1. **Skopírujte potrebné zdroje** z priečinka `solution/assets/` do priečinka `your-work`; pridáte zdroj `life.png`. Pridajte `lifeImg` do funkcie `window.onload`:
+1. **Skopírujte potrebné zdroje** z priečinka `solution/assets/` do priečinka `your-work`; pridáte súbor `life.png`. Pridajte `lifeImg` do funkcie `window.onload`:
```javascript
lifeImg = await loadTexture("assets/life.png");
@@ -128,7 +128,7 @@ Vyššie uvedené spustí HTTP server na adrese `http://localhost:5000`. Otvorte
```
- 1. **Pridajte metódy do hernej slučky**. Uistite sa, že ste pridali tieto funkcie do funkcie `window.onload` pod `updateGameObjects()`:
+ 1. **Pridajte metódy do hernej slučky**. Uistite sa, že ste tieto funkcie pridali do funkcie `window.onload` pod `updateGameObjects()`:
```javascript
drawPoints();
@@ -177,7 +177,7 @@ Vyššie uvedené spustí HTTP server na adrese `http://localhost:5000`. Otvorte
✅ Urobte si malý prieskum a objavte ďalšie hry, ktoré sú vytvorené pomocou JavaScriptu/Canvasu. Aké majú spoločné črty?
-Na konci tejto práce by ste mali vidieť malé lode reprezentujúce životy v pravom dolnom rohu, body v ľavom dolnom rohu a mali by ste vidieť, ako sa počet životov znižuje pri kolíziách s nepriateľmi a body sa zvyšujú, keď zostreľujete nepriateľov. Skvelá práca! Vaša hra je takmer hotová.
+Na konci tejto práce by ste mali vidieť malé lodičky života v pravom dolnom rohu, body v ľavom dolnom rohu a mali by ste vidieť, ako sa počet životov znižuje pri kolíziách s nepriateľmi a body sa zvyšujú, keď zostreľujete nepriateľov. Skvelá práca! Vaša hra je takmer hotová.
---
@@ -195,9 +195,9 @@ Preskúmajte spôsoby, ako môžete zvyšovať a znižovať herné skóre a živ
## Zadanie
-[Postavte hru s bodovaním](assignment.md)
+[Vytvorte hru so skórovaním](assignment.md)
---
**Upozornenie**:
-Tento dokument bol preložený pomocou služby na automatický preklad [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
+Tento dokument bol preložený pomocou služby na automatický preklad [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/6-space-game/6-end-condition/README.md b/translations/sk/6-space-game/6-end-condition/README.md
index 0a16c2f8..ca3de56e 100644
--- a/translations/sk/6-space-game/6-end-condition/README.md
+++ b/translations/sk/6-space-game/6-end-condition/README.md
@@ -1,8 +1,8 @@
`.
+> Tip: Pri vytváraní HTML šablón, ak chcete vidieť, ako budú vyzerať, môžete zakomentovať riadky `` a ` ` tak, že ich obklopíte ``.
✅ Prečo si myslíte, že používame atribúty `id` na šablónach? Mohli by sme použiť niečo iné, napríklad triedy?
## Zobrazovanie šablón pomocou JavaScriptu
-Ak si aktuálny HTML súbor otvoríte v prehliadači, uvidíte, že zostane zobrazené iba `Loading...`. Je to preto, že musíme pridať JavaScriptový kód na inštanciovanie a zobrazenie HTML šablón.
+Ak skúsite aktuálny HTML súbor v prehliadači, uvidíte, že sa zasekne na zobrazení `Loading...`. Je to preto, že musíme pridať nejaký JavaScriptový kód na inštanciovanie a zobrazenie HTML šablón.
Inštanciovanie šablóny sa zvyčajne vykonáva v 3 krokoch:
@@ -120,11 +120,11 @@ Inštanciovanie šablóny sa zvyčajne vykonáva v 3 krokoch:
2. Klonovanie elementu šablóny pomocou [`cloneNode`](https://developer.mozilla.org/docs/Web/API/Node/cloneNode).
3. Pripojenie k DOM pod viditeľný element, napríklad pomocou [`appendChild`](https://developer.mozilla.org/docs/Web/API/Node/appendChild).
-✅ Prečo musíme šablónu klonovať pred jej pripojením k DOM? Čo si myslíte, že by sa stalo, keby sme tento krok vynechali?
+✅ Prečo potrebujeme klonovať šablónu pred jej pripojením k DOM? Čo si myslíte, že by sa stalo, keby sme tento krok preskočili?
### Úloha
-Vytvorte nový súbor s názvom `app.js` vo vašom projektovom priečinku a importujte tento súbor do sekcie `` vášho HTML:
+Vytvorte nový súbor s názvom `app.js` vo vašom priečinku projektu a importujte tento súbor do sekcie `` vášho HTML:
```html
@@ -142,7 +142,7 @@ function updateRoute(templateId) {
}
```
-To, čo tu robíme, sú presne 3 kroky popísané vyššie. Inštanciujeme šablónu s `id` `templateId` a jej klonovaný obsah vložíme do nášho zástupného elementu aplikácie. Všimnite si, že musíme použiť `cloneNode(true)`, aby sme skopírovali celý podstrom šablóny.
+Tu robíme presne 3 kroky popísané vyššie. Inštanciujeme šablónu s id `templateId` a jej klonovaný obsah vložíme do zástupného elementu našej aplikácie. Všimnite si, že musíme použiť `cloneNode(true)`, aby sme skopírovali celý podstrom šablóny.
Teraz zavolajte túto funkciu s jednou zo šablón a pozrite sa na výsledok.
@@ -150,11 +150,11 @@ Teraz zavolajte túto funkciu s jednou zo šablón a pozrite sa na výsledok.
updateRoute('login');
```
-✅ Aký je účel tohto kódu `app.innerHTML = '';`? Čo sa stane, ak ho vynecháme?
+✅ Aký je účel tohto kódu `app.innerHTML = '';`? Čo sa stane bez neho?
## Vytváranie trás
-Keď hovoríme o webovej aplikácii, nazývame *Routing* zámer mapovať **URL adresy** na konkrétne obrazovky, ktoré by sa mali zobraziť. Na webovej stránke s viacerými HTML súbormi sa to deje automaticky, pretože cesty k súborom sa odrážajú v URL. Napríklad s týmito súbormi vo vašom projektovom priečinku:
+Keď hovoríme o webovej aplikácii, nazývame *Routing* zámer mapovať **URL** na konkrétne obrazovky, ktoré by sa mali zobraziť. Na webovej stránke s viacerými HTML súbormi sa to robí automaticky, pretože cesty súborov sa odrážajú v URL. Napríklad s týmito súbormi vo vašom priečinku projektu:
```
mywebsite/index.html
@@ -183,7 +183,7 @@ const routes = {
};
```
-Teraz trochu upravíme funkciu `updateRoute`. Namiesto toho, aby sme priamo odovzdávali `templateId` ako argument, chceme ho získať najprv pohľadom na aktuálnu URL a potom použiť našu mapu na získanie zodpovedajúcej hodnoty `templateId`. Môžeme použiť [`window.location.pathname`](https://developer.mozilla.org/docs/Web/API/Location/pathname) na získanie iba časti cesty z URL.
+Teraz trochu upravíme funkciu `updateRoute`. Namiesto toho, aby sme priamo odovzdávali `templateId` ako argument, chceme ho získať najskôr pohľadom na aktuálnu URL a potom použiť našu mapu na získanie zodpovedajúcej hodnoty id šablóny. Môžeme použiť [`window.location.pathname`](https://developer.mozilla.org/docs/Web/API/Location/pathname) na získanie iba časti cesty z URL.
```js
function updateRoute() {
@@ -198,22 +198,22 @@ function updateRoute() {
}
```
-Tu sme mapovali trasy, ktoré sme deklarovali, na zodpovedajúce šablóny. Môžete si overiť, že to funguje správne, manuálnou zmenou URL vo vašom prehliadači.
+Tu sme mapovali trasy, ktoré sme deklarovali, na zodpovedajúce šablóny. Môžete si vyskúšať, že to funguje správne, manuálnou zmenou URL vo vašom prehliadači.
✅ Čo sa stane, ak zadáte neznámu cestu do URL? Ako by sme to mohli vyriešiť?
-## Pridanie navigácie
+## Pridávanie navigácie
-Ďalším krokom pre našu aplikáciu je pridanie možnosti navigovať medzi stránkami bez potreby manuálne meniť URL. To zahŕňa dve veci:
+Ďalším krokom pre našu aplikáciu je pridanie možnosti navigovať medzi stránkami bez nutnosti manuálne meniť URL. To zahŕňa dve veci:
1. Aktualizáciu aktuálnej URL
2. Aktualizáciu zobrazenej šablóny na základe novej URL
Druhú časť sme už vyriešili pomocou funkcie `updateRoute`, takže musíme zistiť, ako aktualizovať aktuálnu URL.
-Budeme musieť použiť JavaScript a konkrétne [`history.pushState`](https://developer.mozilla.org/docs/Web/API/History/pushState), ktorý umožňuje aktualizovať URL a vytvoriť nový záznam v histórii prehliadania bez opätovného načítania HTML.
+Budeme musieť použiť JavaScript a konkrétne [`history.pushState`](https://developer.mozilla.org/docs/Web/API/History/pushState), ktorý umožňuje aktualizovať URL a vytvoriť nový záznam v histórii prehliadania bez načítania HTML.
-> Poznámka: Hoci HTML element kotvy [``](https://developer.mozilla.org/docs/Web/HTML/Element/a) môže byť použitý na vytváranie hypertextových odkazov na rôzne URL, predvolene spôsobí, že prehliadač načíta HTML znova. Je potrebné zabrániť tomuto správaniu pri spracovaní trás pomocou vlastného JavaScriptu, použitím funkcie `preventDefault()` na udalosti kliknutia.
+> Poznámka: Zatiaľ čo HTML kotvový element [` `](https://developer.mozilla.org/docs/Web/HTML/Element/a) môže byť použitý samostatne na vytváranie hypertextových odkazov na rôzne URL, predvolene spôsobí, že prehliadač načíta HTML. Je potrebné zabrániť tomuto správaniu pri spracovaní trás pomocou vlastného JavaScriptu, použitím funkcie preventDefault() na udalosti kliknutia.
### Úloha
@@ -226,9 +226,9 @@ function navigate(path) {
}
```
-Táto metóda najprv aktualizuje aktuálnu URL na základe zadanej cesty a potom aktualizuje šablónu. Vlastnosť `window.location.origin` vráti koreň URL, čo nám umožňuje rekonštruovať úplnú URL z danej cesty.
+Táto metóda najskôr aktualizuje aktuálnu URL na základe zadanej cesty a potom aktualizuje šablónu. Vlastnosť `window.location.origin` vráti koreň URL, čo nám umožňuje rekonštruovať kompletnú URL zo zadanej cesty.
-Teraz, keď máme túto funkciu, môžeme vyriešiť problém, ktorý máme, ak cesta nezodpovedá žiadnej definovanej trase. Upravením funkcie `updateRoute` pridáme záložné riešenie na jednu z existujúcich trás, ak nenájdeme zhodu.
+Teraz, keď máme túto funkciu, môžeme vyriešiť problém, ktorý máme, ak cesta nezodpovedá žiadnej definovanej trase. Upravením funkcie `updateRoute` pridáme záložné riešenie na jednu z existujúcich trás, ak nemôžeme nájsť zhodu.
```js
function updateRoute() {
@@ -242,9 +242,9 @@ function updateRoute() {
...
```
-Ak sa trasa nenájde, teraz budeme presmerovaní na prihlasovaciu stránku.
+Ak sa trasa nedá nájsť, teraz presmerujeme na stránku `login`.
-Vytvorme teraz funkciu na získanie URL pri kliknutí na odkaz a na zabránenie predvoleného správania prehliadača:
+Teraz vytvorme funkciu na získanie URL pri kliknutí na odkaz a na zabránenie predvoleného správania prehliadača pri odkazoch:
```js
function onLinkClick(event) {
@@ -263,21 +263,21 @@ Dokončime navigačný systém pridaním väzieb na naše odkazy *Login* a *Logo
Objekt `event` vyššie zachytáva udalosť `click` a odovzdáva ju našej funkcii `onLinkClick`.
-Pomocou atribútu [`onclick`](https://developer.mozilla.org/docs/Web/API/GlobalEventHandlers/onclick) priraďte udalosť `click` kódu JavaScriptu, tu volaniu funkcie `navigate()`.
+Pomocou atribútu [`onclick`](https://developer.mozilla.org/docs/Web/API/GlobalEventHandlers/onclick) priraďte udalosť `click` k JavaScriptovému kódu, tu k volaniu funkcie `navigate()`.
-Vyskúšajte kliknutie na tieto odkazy, teraz by ste mali byť schopní navigovať medzi rôznymi obrazovkami vašej aplikácie.
+Skúste kliknúť na tieto odkazy, teraz by ste mali byť schopní navigovať medzi rôznymi obrazovkami vašej aplikácie.
-✅ Metóda `history.pushState` je súčasťou štandardu HTML5 a je implementovaná vo [všetkých moderných prehliadačoch](https://caniuse.com/?search=pushState). Ak vytvárate webovú aplikáciu pre staršie prehliadače, existuje trik, ktorý môžete použiť namiesto tohto API: použitie [hashu (`#`)](https://en.wikipedia.org/wiki/URI_fragment) pred cestou umožňuje implementovať trasovanie, ktoré funguje s bežnou navigáciou kotvami a nenačítava stránku znova, pretože jeho účelom bolo vytvárať vnútorné odkazy v rámci stránky.
+✅ Metóda `history.pushState` je súčasťou štandardu HTML5 a implementovaná vo [všetkých moderných prehliadačoch](https://caniuse.com/?search=pushState). Ak vytvárate webovú aplikáciu pre staršie prehliadače, existuje trik, ktorý môžete použiť namiesto tejto API: použitie [hashu (`#`)](https://en.wikipedia.org/wiki/URI_fragment) pred cestou vám umožní implementovať trasovanie, ktoré funguje s bežnou navigáciou kotvami a nenačítava stránku, pretože jeho účelom bolo vytvárať interné odkazy v rámci stránky.
## Spracovanie tlačidiel späť a dopredu v prehliadači
-Použitie `history.pushState` vytvára nové záznamy v histórii navigácie prehliadača. Môžete to overiť podržaním *tlačidla späť* vo vašom prehliadači, malo by sa zobraziť niečo takéto:
+Použitie `history.pushState` vytvára nové záznamy v histórii navigácie prehliadača. Môžete to skontrolovať podržaním *tlačidla späť* vo vašom prehliadači, malo by sa zobraziť niečo takéto:
-
+
-Ak skúsite niekoľkokrát kliknúť na tlačidlo späť, uvidíte, že aktuálna URL sa mení a história sa aktualizuje, ale stále sa zobrazuje rovnaká šablóna.
+Ak skúsite kliknúť na tlačidlo späť niekoľkokrát, uvidíte, že aktuálna URL sa mení a história sa aktualizuje, ale stále sa zobrazuje rovnaká šablóna.
-Je to preto, že aplikácia nevie, že musíme zavolať `updateRoute()` zakaždým, keď sa história zmení. Ak sa pozriete na [dokumentáciu `history.pushState`](https://developer.mozilla.org/docs/Web/API/History/pushState), môžete vidieť, že ak sa stav zmení - čo znamená, že sme sa presunuli na inú URL - je spustená udalosť [`popstate`](https://developer.mozilla.org/docs/Web/API/Window/popstate_event). Použijeme to na vyriešenie tohto problému.
+Je to preto, že aplikácia nevie, že musíme zavolať `updateRoute()` vždy, keď sa história zmení. Ak sa pozriete na [dokumentáciu `history.pushState`](https://developer.mozilla.org/docs/Web/API/History/pushState), môžete vidieť, že ak sa stav zmení - čo znamená, že sme sa presunuli na inú URL - je spustená udalosť [`popstate`](https://developer.mozilla.org/docs/Web/API/Window/popstate_event). Použijeme to na vyriešenie tohto problému.
### Úloha
@@ -288,21 +288,21 @@ window.onpopstate = () => updateRoute();
updateRoute();
```
-> Poznámka: Na deklaráciu nášho obslužného programu udalosti `popstate` sme tu použili [šípkovú funkciu](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Arrow_functions) pre stručnosť, ale fungovala by aj bežná funkcia.
+> Poznámka: Použili sme [arrow function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Functions/Arrow_functions) na deklarovanie nášho obslužného programu udalosti `popstate` pre stručnosť, ale bežná funkcia by fungovala rovnako.
-Tu je video na zopakovanie šípkových funkcií:
+Tu je video na osvieženie o arrow funkciách:
-[](https://youtube.com/watch?v=OP6eEbOj2sc "Šípkové funkcie")
+[](https://youtube.com/watch?v=OP6eEbOj2sc "Arrow Functions")
-> 🎥 Kliknite na obrázok vyššie pre video o šípkových funkciách.
+> 🎥 Kliknite na obrázok vyššie pre video o arrow funkciách.
-Teraz skúste použiť tlačidlá späť a dopredu vo vašom prehliadači a overte, že zobrazená trasa sa tentokrát správne aktualizuje.
+Teraz skúste použiť tlačidlá späť a dopredu vo vašom prehliadači a skontrolujte, či sa zobrazená trasa správne aktualizuje tentoraz.
---
## 🚀 Výzva
-Pridajte novú šablónu a trasu pre tretiu stránku, ktorá zobrazí kredity pre túto aplikáciu.
+Pridajte novú šablónu a trasu pre tretiu stránku, ktorá zobrazuje kredity pre túto aplikáciu.
## Kvíz po prednáške
@@ -310,7 +310,7 @@ Pridajte novú šablónu a trasu pre tretiu stránku, ktorá zobrazí kredity pr
## Prehľad a samoštúdium
-Trasovanie je jednou z prekvapivo zložitých častí vývoja webu, najmä keď sa web presúva od správania s obnovovaním stránok k obnovovaniu stránok v rámci aplikácií typu Single Page Application. Prečítajte si niečo o tom, [ako služba Azure Static Web App](https://docs.microsoft.com/azure/static-web-apps/routes/?WT.mc_id=academic-77807-sagibbon) spracováva trasovanie. Dokážete vysvetliť, prečo sú niektoré rozhodnutia popísané v tomto dokumente nevyhnutné?
+Trasovanie je jednou z prekvapivo zložitých častí vývoja webu, najmä keď sa web presúva od správania pri obnovení stránky k obnoveniu stránok v aplikáciách typu Single Page Application. Prečítajte si niečo o tom, [ako služba Azure Static Web App](https://docs.microsoft.com/azure/static-web-apps/routes/?WT.mc_id=academic-77807-sagibbon) spracováva trasovanie. Dokážete vysvetliť, prečo sú niektoré rozhodnutia popísané v tomto dokumente nevyhnutné?
## Zadanie
@@ -319,4 +319,4 @@ Trasovanie je jednou z prekvapivo zložitých častí vývoja webu, najmä keď
---
**Upozornenie**:
-Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
+Tento dokument bol preložený pomocou služby na automatický preklad [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/7-bank-project/2-forms/README.md b/translations/sk/7-bank-project/2-forms/README.md
index 6e143d62..f8a11962 100644
--- a/translations/sk/7-bank-project/2-forms/README.md
+++ b/translations/sk/7-bank-project/2-forms/README.md
@@ -1,8 +1,8 @@
-# Vytvorte webovú stránku životopisu pomocou vscode.dev
+# Vytvorenie webovej stránky životopisu pomocou vscode.dev
-_Aké skvelé by bolo, keby si od vás personalista vypýtal životopis a vy by ste mu poslali URL?_ 😎
+_Aké skvelé by bolo, keby vás personalista požiadal o váš životopis a vy by ste mu poslali URL?_ 😎
## Ciele
-Po tejto úlohe sa naučíte:
+Po tomto zadaniu sa naučíte:
- Vytvoriť webovú stránku na prezentáciu vášho životopisu
### Predpoklady
-1. Účet na GitHube. Prejdite na [GitHub](https://github.com/) a vytvorte si účet, ak ho ešte nemáte.
+1. Účet na GitHub. Prejdite na [GitHub](https://github.com/) a vytvorte si účet, ak ho ešte nemáte.
## Kroky
-**Krok 1:** Vytvorte nový GitHub repozitár a pomenujte ho `my-resume`
+**Krok 1:** Vytvorte nový GitHub repozitár a pomenujte ho `my-resume`.
**Krok 2:** Vytvorte súbor `index.html` vo vašom repozitári. Pridáme aspoň jeden súbor priamo na github.com, pretože prázdny repozitár nie je možné otvoriť vo vscode.dev.
Kliknite na odkaz `creating a new file`, zadajte názov `index.html` a vyberte tlačidlo `Commit new file`.
-
+
**Krok 3:** Otvorte [VSCode.dev](https://vscode.dev) a vyberte tlačidlo `Open Remote Repository`.
@@ -41,11 +41,11 @@ _Nahraďte `your-username` svojím GitHub používateľským menom._
https://github.com/your-username/my-resume
```
-✅ Ak bolo všetko úspešné, uvidíte svoj projekt a súbor index.html otvorený v textovom editore v prehliadači.
+✅ Ak je to úspešné, uvidíte svoj projekt a súbor index.html otvorený v textovom editore v prehliadači.
-
+
-**Krok 4:** Otvorte súbor `index.html`, vložte do kódu nižšie obsah a uložte ho.
+**Krok 4:** Otvorte súbor `index.html`, vložte do oblasti kódu nižšie uvedený kód a uložte ho.
HTML kód zodpovedný za obsah vašej webovej stránky životopisu.
@@ -109,7 +109,7 @@ https://github.com/your-username/my-resume
O MNE
- Napíšte krátky text o sebe!
+ Napíšte sem niečo o sebe!
PRACOVNÉ SKÚSENOSTI
@@ -141,11 +141,11 @@ https://github.com/your-username/my-resume
-Nahraďte _zástupný text_ vo vyššie uvedenom HTML kóde detailmi vášho životopisu.
+Pridajte detaily svojho životopisu a nahraďte _text zástupcu_ v HTML kóde.
-**Krok 5:** Prejdite na priečinok My-Resume, kliknite na ikonu `New File ...` a vytvorte 2 nové súbory vo vašom projekte: `style.css` a `codeswing.json`.
+**Krok 5:** Kliknite na priečinok My-Resume, kliknite na ikonu `New File ...` a vytvorte 2 nové súbory vo vašom projekte: `style.css` a `codeswing.json`.
-**Krok 6:** Otvorte súbor `style.css`, vložte do kódu nižšie obsah a uložte ho.
+**Krok 6:** Otvorte súbor `style.css`, vložte do oblasti kódu nižšie uvedený kód a uložte ho.
CSS kód na formátovanie rozloženia stránky.
@@ -210,38 +210,38 @@ Nahraďte _zástupný text_ vo vyššie uvedenom HTML kóde detailmi vášho ži
-**Krok 6:** Otvorte súbor `codeswing.json`, vložte do kódu nižšie obsah a uložte ho.
+**Krok 6:** Otvorte súbor `codeswing.json`, vložte do oblasti kódu nižšie uvedený kód a uložte ho.
{
"scripts": [],
"styles": []
}
-**Krok 7:** Nainštalujte rozšírenie `Codeswing`, aby ste mohli vizualizovať webovú stránku životopisu v kódovacej oblasti.
+**Krok 7:** Nainštalujte rozšírenie `Codeswing`, aby ste mohli vizualizovať webovú stránku životopisu v oblasti kódu.
-Kliknite na ikonu _`Extensions`_ na paneli aktivít a zadajte Codeswing. Buď kliknite na _modré tlačidlo inštalovať_ na rozšírenom paneli aktivít, aby ste ho nainštalovali, alebo použite tlačidlo inštalovať, ktoré sa zobrazí v kódovacej oblasti po výbere rozšírenia na načítanie ďalších informácií. Ihneď po inštalácii rozšírenia si všimnite zmeny vo vašom projekte 😃.
+Kliknite na ikonu _`Extensions`_ na paneli aktivít a zadajte Codeswing. Buď kliknite na _modré tlačidlo inštalovať_ na rozšírenom paneli aktivít, aby ste ho nainštalovali, alebo použite tlačidlo inštalovať, ktoré sa zobrazí v oblasti kódu po výbere rozšírenia na načítanie ďalších informácií. Ihneď po inštalácii rozšírenia si všimnite zmeny vo vašom projekte v oblasti kódu 😃.

Toto uvidíte na obrazovke po inštalácii rozšírenia.
-
+
-Ak ste spokojní so zmenami, ktoré ste vykonali, prejdite na priečinok `Changes` a kliknite na tlačidlo `+`, aby ste zmeny pripravili.
+Ak ste spokojní so zmenami, ktoré ste vykonali, kliknite na priečinok `Changes` a kliknite na tlačidlo `+`, aby ste zmeny pripravili.
-Zadajte správu o commite _(Popis zmeny, ktorú ste vykonali v projekte)_ a potvrďte svoje zmeny kliknutím na `check`. Po dokončení práce na projekte vyberte ikonu hamburgerového menu v ľavom hornom rohu, aby ste sa vrátili do repozitára na GitHube.
+Zadajte správu commitu _(Popis zmeny, ktorú ste vykonali v projekte)_ a potvrďte svoje zmeny kliknutím na `check`. Po dokončení práce na projekte vyberte ikonu hamburgerového menu v ľavom hornom rohu, aby ste sa vrátili do repozitára na GitHub.
-Gratulujeme 🎉 Práve ste vytvorili svoju webovú stránku životopisu pomocou vscode.dev v niekoľkých krokoch.
+Gratulujeme 🎉 Práve ste vytvorili webovú stránku svojho životopisu pomocou vscode.dev v niekoľkých krokoch.
## 🚀 Výzva
-Otvorte vzdialený repozitár, ku ktorému máte povolenie vykonávať zmeny, a aktualizujte niektoré súbory. Následne skúste vytvoriť novú vetvu so svojimi zmenami a vytvorte Pull Request.
+Otvorte vzdialený repozitár, v ktorom máte povolenie vykonávať zmeny, a aktualizujte niektoré súbory. Potom skúste vytvoriť novú vetvu so svojimi zmenami a vytvorte Pull Request.
-## Recenzia a samoštúdium
+## Recenzia a samostatné štúdium
Prečítajte si viac o [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) a niektorých jeho ďalších funkciách.
---
**Upozornenie**:
-Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
+Tento dokument bol preložený pomocou služby na automatický preklad [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za záväzný zdroj. Pre dôležité informácie sa odporúča profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/9-chat-project/README.md b/translations/sk/9-chat-project/README.md
new file mode 100644
index 00000000..47f7568c
--- /dev/null
+++ b/translations/sk/9-chat-project/README.md
@@ -0,0 +1,389 @@
+
+# Chat projekt
+
+Tento chat projekt ukazuje, ako vytvoriť Chat Asistenta pomocou GitHub Models.
+
+Takto vyzerá hotový projekt:
+
+
+
+
+
+Trochu kontextu: vytváranie chat asistentov pomocou generatívnej AI je skvelý spôsob, ako začať učiť sa o AI. V tejto lekcii sa naučíte, ako integrovať generatívnu AI do webovej aplikácie. Poďme na to.
+
+## Pripojenie ku generatívnej AI
+
+Na backend používame GitHub Models. Je to skvelá služba, ktorá vám umožňuje používať AI zadarmo. Prejdite na jej playground a získajte kód, ktorý zodpovedá vášmu zvolenému backend jazyku. Takto to vyzerá na [GitHub Models Playground](https://github.com/marketplace/models/azure-openai/gpt-4o-mini/playground)
+
+
+
+
+
+Ako sme spomenuli, vyberte kartu "Code" a váš zvolený runtime.
+
+
+
+
+
+V tomto prípade vyberáme Python, čo znamená, že použijeme tento kód:
+
+```python
+"""Run this model in Python
+
+> pip install openai
+"""
+import os
+from openai import OpenAI
+
+# To authenticate with the model you will need to generate a personal access token (PAT) in your GitHub settings.
+# Create your PAT token by following instructions here: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
+client = OpenAI(
+ base_url="https://models.github.ai/inference",
+ api_key=os.environ["GITHUB_TOKEN"],
+)
+
+response = client.chat.completions.create(
+ messages=[
+ {
+ "role": "system",
+ "content": "",
+ },
+ {
+ "role": "user",
+ "content": "What is the capital of France?",
+ }
+ ],
+ model="openai/gpt-4o-mini",
+ temperature=1,
+ max_tokens=4096,
+ top_p=1
+)
+
+print(response.choices[0].message.content)
+```
+
+Upravme tento kód tak, aby bol znovu použiteľný:
+
+```python
+def call_llm(prompt: str, system_message: str):
+ response = client.chat.completions.create(
+ messages=[
+ {
+ "role": "system",
+ "content": system_message,
+ },
+ {
+ "role": "user",
+ "content": prompt,
+ }
+ ],
+ model="openai/gpt-4o-mini",
+ temperature=1,
+ max_tokens=4096,
+ top_p=1
+ )
+
+ return response.choices[0].message.content
+```
+
+S touto funkciou `call_llm` teraz môžeme zadať prompt a systémový prompt a funkcia nám vráti výsledok.
+
+### Prispôsobenie AI asistenta
+
+Ak chcete prispôsobiť AI asistenta, môžete špecifikovať, ako sa má správať, vyplnením systémového promptu takto:
+
+```python
+call_llm("Tell me about you", "You're Albert Einstein, you only know of things in the time you were alive")
+```
+
+## Zverejnenie cez Web API
+
+Skvelé, máme hotovú AI časť, pozrime sa, ako ju môžeme integrovať do Web API. Pre Web API sme sa rozhodli použiť Flask, ale akýkoľvek webový framework by mal byť vhodný. Pozrime sa na kód:
+
+```python
+# api.py
+from flask import Flask, request, jsonify
+from llm import call_llm
+from flask_cors import CORS
+
+app = Flask(__name__)
+CORS(app) # * example.com
+
+@app.route("/", methods=["GET"])
+def index():
+ return "Welcome to this API. Call POST /hello with 'message': 'my message' as JSON payload"
+
+
+@app.route("/hello", methods=["POST"])
+def hello():
+ # get message from request body { "message": "do this taks for me" }
+ data = request.get_json()
+ message = data.get("message", "")
+
+ response = call_llm(message, "You are a helpful assistant.")
+ return jsonify({
+ "response": response
+ })
+
+if __name__ == "__main__":
+ app.run(host="0.0.0.0", port=5000)
+```
+
+Tu vytvárame Flask API a definujeme predvolenú trasu "/" a "/chat". Tá druhá je určená na použitie naším frontendom na odosielanie otázok.
+
+Na integráciu *llm.py* potrebujeme urobiť nasledovné:
+
+- Importovať funkciu `call_llm`:
+
+ ```python
+ from llm import call_llm
+ from flask import Flask, request
+ ```
+
+- Zavolať ju z trasy "/chat":
+
+ ```python
+ @app.route("/hello", methods=["POST"])
+ def hello():
+ # get message from request body { "message": "do this taks for me" }
+ data = request.get_json()
+ message = data.get("message", "")
+
+ response = call_llm(message, "You are a helpful assistant.")
+ return jsonify({
+ "response": response
+ })
+ ```
+
+ Tu analyzujeme prichádzajúcu požiadavku, aby sme získali vlastnosť `message` z JSON tela. Následne zavoláme LLM pomocou tohto volania:
+
+ ```python
+ response = call_llm(message, "You are a helpful assistant")
+
+ # return the response as JSON
+ return jsonify({
+ "response": response
+ })
+ ```
+
+Skvelé, teraz máme hotovo, čo sme potrebovali.
+
+### Nastavenie Cors
+
+Mali by sme spomenúť, že sme nastavili niečo ako CORS, zdieľanie zdrojov medzi rôznymi doménami. To znamená, že keďže náš backend a frontend budú bežať na rôznych portoch, musíme povoliť frontendu volať backend. V *api.py* je kód, ktorý to nastavuje:
+
+```python
+from flask_cors import CORS
+
+app = Flask(__name__)
+CORS(app) # * example.com
+```
+
+Momentálne je nastavený na povolenie "*" čo znamená všetky domény, čo je trochu nebezpečné. Mali by sme to obmedziť, keď prejdeme do produkcie.
+
+## Spustenie projektu
+
+Dobre, máme *llm.py* a *api.py*, ako to môžeme spustiť s backendom? Potrebujeme urobiť dve veci:
+
+- Nainštalovať závislosti:
+
+ ```sh
+ cd backend
+ python -m venv venv
+ source ./venv/bin/activate
+
+ pip install openai flask flask-cors openai
+ ```
+
+- Spustiť API
+
+ ```sh
+ python api.py
+ ```
+
+ Ak ste v Codespaces, musíte prejsť na Ports v spodnej časti editora, kliknúť pravým tlačidlom myši na port a vybrať "Port Visibility" a zvoliť "Public".
+
+### Práca na fronte
+
+Teraz, keď máme API spustené, vytvorme frontend pre tento projekt. Minimálny frontend, ktorý budeme postupne vylepšovať. V priečinku *frontend* vytvorte nasledovné:
+
+```text
+backend/
+frontend/
+index.html
+app.js
+styles.css
+```
+
+Začnime s **index.html**:
+
+```html
+
+
+
+
+
+
+
+
+ Send
+
+
+
+
+```
+
+Toto je absolútne minimum, ktoré potrebujete na podporu chatovacieho okna, pozostáva z textového poľa, kde sa budú zobrazovať správy, vstupu na písanie správy a tlačidla na odoslanie správy na backend. Pozrime sa na JavaScript v *app.js*
+
+**app.js**
+
+```js
+// app.js
+
+(function(){
+ // 1. set up elements
+ const messages = document.getElementById("messages");
+ const form = document.getElementById("form");
+ const input = document.getElementById("input");
+
+ const BASE_URL = "change this";
+ const API_ENDPOINT = `${BASE_URL}/hello`;
+
+ // 2. create a function that talks to our backend
+ async function callApi(text) {
+ const response = await fetch(API_ENDPOINT, {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({ message: text })
+ });
+ let json = await response.json();
+ return json.response;
+ }
+
+ // 3. add response to our textarea
+ function appendMessage(text, role) {
+ const el = document.createElement("div");
+ el.className = `message ${role}`;
+ el.innerHTML = text;
+ messages.appendChild(el);
+ }
+
+ // 4. listen to submit events
+ form.addEventListener("submit", async(e) => {
+ e.preventDefault();
+ // someone clicked the button in the form
+
+ // get input
+ const text = input.value.trim();
+
+ appendMessage(text, "user")
+
+ // reset it
+ input.value = '';
+
+ const reply = await callApi(text);
+
+ // add to messages
+ appendMessage(reply, "assistant");
+
+ })
+})();
+```
+
+Prejdime si kód po sekciách:
+
+- 1) Tu získavame referenciu na všetky naše elementy, na ktoré sa budeme odkazovať neskôr v kóde.
+- 2) V tejto sekcii vytvárame funkciu, ktorá používa zabudovanú metódu `fetch` na volanie nášho backendu.
+- 3) `appendMessage` pomáha pridávať odpovede, ako aj to, čo napíšete ako používateľ.
+- 4) Tu počúvame na udalosť submit, čítame vstupné pole, umiestňujeme správu používateľa do textového poľa, voláme API a zobrazujeme odpoveď v textovom poli.
+
+Pozrime sa na štýlovanie, tu môžete byť kreatívni a upraviť vzhľad podľa svojich predstáv, ale tu sú niektoré návrhy:
+
+**styles.css**
+
+```
+.message {
+ background: #222;
+ box-shadow: 0 0 0 10px orange;
+ padding: 10px:
+ margin: 5px;
+}
+
+.message.user {
+ background: blue;
+}
+
+.message.assistant {
+ background: grey;
+}
+```
+
+S týmito tromi triedami budete štýlovať správy rôzne v závislosti od toho, či pochádzajú od asistenta alebo od vás ako používateľa. Ak chcete inšpiráciu, pozrite si priečinok `solution/frontend/styles.css`.
+
+### Zmena Base Url
+
+Jedna vec, ktorú sme tu nenastavili, bola `BASE_URL`, táto hodnota nie je známa, kým váš backend nie je spustený. Na nastavenie:
+
+- Ak spúšťate API lokálne, malo by byť nastavené na niečo ako `http://localhost:5000`.
+- Ak spúšťate v Codespaces, malo by vyzerať ako "[name]app.github.dev".
+
+## Zadanie
+
+Vytvorte vlastný priečinok *project* s obsahom takto:
+
+```text
+project/
+ frontend/
+ index.html
+ app.js
+ styles.css
+ backend/
+ api.py
+ llm.py
+```
+
+Skopírujte obsah z toho, čo bolo uvedené vyššie, ale pokojne si ho prispôsobte podľa svojich predstáv.
+
+## Riešenie
+
+[Riešenie](./solution/README.md)
+
+## Bonus
+
+Skúste zmeniť osobnosť AI asistenta. Keď voláte `call_llm` v *api.py*, môžete zmeniť druhý argument na to, čo chcete, napríklad:
+
+```python
+call_llm(message, "You are Captain Picard")
+```
+
+Zmeňte tiež CSS a text podľa svojich predstáv, teda urobte zmeny v *index.html* a *styles.css*.
+
+## Zhrnutie
+
+Skvelé, naučili ste sa od základov, ako vytvoriť osobného asistenta pomocou AI. Urobili sme to pomocou GitHub Models, backendu v Pythone a frontendu v HTML, CSS a JavaScripte.
+
+## Nastavenie s Codespaces
+
+- Prejdite na: [Web Dev For Beginners repo](https://github.com/microsoft/Web-Dev-For-Beginners)
+- Vytvorte z template (uistite sa, že ste prihlásení do GitHub) v pravom hornom rohu:
+
+ 
+
+- Keď ste vo svojom repozitári, vytvorte Codespace:
+
+ 
+
+ Toto by malo spustiť prostredie, s ktorým teraz môžete pracovať.
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby na automatický preklad [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie odporúčame profesionálny ľudský preklad. Nezodpovedáme za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/9-chat-project/solution/README.md b/translations/sk/9-chat-project/solution/README.md
new file mode 100644
index 00000000..b409747f
--- /dev/null
+++ b/translations/sk/9-chat-project/solution/README.md
@@ -0,0 +1,55 @@
+
+# Spustenie kódu
+
+## Nastavenie
+
+Vytvorte virtuálne prostredie
+
+```sh
+cd backend
+python -m venv venv
+source ./venv/bin/activate
+```
+
+## Inštalácia závislostí
+
+```sh
+pip install openai flask flask-cors
+```
+
+## Spustenie API
+
+```sh
+python api.py
+```
+
+## Spustenie frontend-u
+
+Uistite sa, že sa nachádzate v priečinku frontend
+
+Nájdite *app.js*, zmeňte `BASE_URL` na URL adresu vášho backendu
+
+Spustite ho
+
+```
+npx http-server -p 8000
+```
+
+Skúste napísať správu do chatu, mali by ste vidieť odpoveď (za predpokladu, že to spúšťate v Codespace alebo máte nastavený prístupový token).
+
+## Nastavenie prístupového tokenu (ak to nespúšťate v Codespace)
+
+Pozrite si [Nastavenie PAT](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)
+
+---
+
+**Upozornenie**:
+Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.
\ No newline at end of file
diff --git a/translations/sk/README.md b/translations/sk/README.md
index 955a576b..44b35f0d 100644
--- a/translations/sk/README.md
+++ b/translations/sk/README.md
@@ -1,8 +1,8 @@
-# Uvod v programiranje in orodja za razvijalce
+# Uvod v programske jezike in orodja za razvijalce
-Ta lekcija zajema osnove programskih jezikov. Teme, ki jih obravnavamo tukaj, veljajo za večino sodobnih programskih jezikov. V razdelku 'Orodja za razvijalce' boste spoznali uporabno programsko opremo, ki vam pomaga kot razvijalcu.
+Ta lekcija zajema osnove programskih jezikov. Teme, ki jih bomo obravnavali, veljajo za večino sodobnih programskih jezikov. V razdelku 'Orodja za razvijalce' boste spoznali uporabno programsko opremo, ki vam kot razvijalcu pomaga pri delu.
-
+
> Sketchnote avtorja [Tomomi Imura](https://twitter.com/girlie_mac)
## Predhodni kviz
@@ -32,15 +32,15 @@ V tej lekciji bomo obravnavali:
Programiranje (znano tudi kot kodiranje) je proces pisanja navodil za napravo, kot je računalnik ali mobilna naprava. Ta navodila pišemo s programskim jezikom, ki ga nato naprava interpretira. Ta sklop navodil ima lahko različna imena, kot so *program*, *računalniški program*, *aplikacija (app)* ali *izvedljiva datoteka*.
-*Program* je lahko karkoli, kar je napisano s kodo; spletne strani, igre in aplikacije za telefone so programi. Čeprav je mogoče ustvariti program brez pisanja kode, je osnovna logika interpretirana s strani naprave, ta logika pa je najverjetneje napisana s kodo. Program, ki *izvaja* ali *izvaja kodo*, izvaja navodila. Naprava, na kateri berete to lekcijo, izvaja program, da jo prikaže na vašem zaslonu.
+*Program* je lahko karkoli, kar je napisano s kodo; spletne strani, igre in aplikacije za telefone so programi. Čeprav je mogoče ustvariti program brez pisanja kode, je osnovna logika interpretirana s strani naprave, ta logika pa je bila najverjetneje napisana s kodo. Program, ki *izvaja* ali *izvaja kodo*, izvaja navodila. Naprava, s katero berete to lekcijo, izvaja program, da jo prikaže na vašem zaslonu.
✅ Naredite malo raziskave: kdo velja za prvega računalniškega programerja na svetu?
## Programski jeziki
-Programski jeziki omogočajo razvijalcem pisanje navodil za napravo. Naprave razumejo le binarno kodo (1 in 0), kar za *večino* razvijalcev ni učinkovit način komunikacije. Programski jeziki so sredstvo za komunikacijo med ljudmi in računalniki.
+Programski jeziki omogočajo razvijalcem pisanje navodil za napravo. Naprave razumejo le binarno kodo (1 in 0), kar za *večino* razvijalcev ni učinkovit način komunikacije. Programski jeziki so sredstvo komunikacije med ljudmi in računalniki.
-Programski jeziki so na voljo v različnih formatih in lahko služijo različnim namenom. Na primer, JavaScript se uporablja predvsem za spletne aplikacije, medtem ko se Bash uporablja predvsem za operacijske sisteme.
+Programski jeziki se razlikujejo po obliki in namenu. Na primer, JavaScript se večinoma uporablja za spletne aplikacije, medtem ko se Bash uporablja predvsem za operacijske sisteme.
*Nizkonivojski jeziki* običajno zahtevajo manj korakov kot *visokonivojski jeziki*, da naprava interpretira navodila. Vendar pa so visokonivojski jeziki priljubljeni zaradi svoje berljivosti in podpore. JavaScript velja za visokonivojski jezik.
@@ -89,9 +89,9 @@ Verjeli ali ne, *obe kodi počneta isto*: izpisujeta Fibonacci zaporedje do 10.
## Elementi programa
-Posamezno navodilo v programu se imenuje *izjava* in običajno vsebuje znak ali presledek, ki označuje, kje se navodilo konča ali *zaključi*. Način zaključka programa se razlikuje glede na jezik.
+Posamezno navodilo v programu se imenuje *izjava* in običajno vsebuje znak ali presledek, ki označuje, kje se navodilo konča ali *zaključi*. Način zaključevanja programa se razlikuje glede na jezik.
-Izjave v programu se lahko zanašajo na podatke, ki jih zagotovi uporabnik ali drug vir, da izvedejo navodila. Podatki lahko spremenijo vedenje programa, zato programski jeziki omogočajo začasno shranjevanje podatkov za kasnejšo uporabo. To imenujemo *spremenljivke*. Spremenljivke so izjave, ki napravi naročijo, naj podatke shrani v svoj pomnilnik. Spremenljivke v programih so podobne spremenljivkam v algebri, kjer imajo edinstveno ime in se njihova vrednost lahko spreminja skozi čas.
+Izjave v programu se lahko zanašajo na podatke, ki jih zagotovi uporabnik ali drug vir, da izvedejo navodila. Podatki lahko spremenijo vedenje programa, zato programski jeziki omogočajo začasno shranjevanje podatkov za kasnejšo uporabo. Temu pravimo *spremenljivke*. Spremenljivke so izjave, ki napravi naročijo, naj podatke shrani v svoj pomnilnik. Spremenljivke v programih so podobne spremenljivkam v algebri, kjer imajo edinstveno ime, njihova vrednost pa se lahko sčasoma spreminja.
Obstaja možnost, da nekatere izjave naprava ne bo izvedla. To je običajno načrtovano s strani razvijalca ali pa se zgodi po naključju, ko pride do nepričakovane napake. Takšna kontrola nad aplikacijo jo naredi bolj robustno in vzdržljivo. Te spremembe v kontroli se običajno zgodijo, ko so izpolnjeni določeni pogoji. Pogosta izjava, ki se uporablja v sodobnem programiranju za nadzor delovanja programa, je `if..else` izjava.
@@ -105,16 +105,16 @@ Obstaja možnost, da nekatere izjave naprava ne bo izvedla. To je običajno nač
V tem razdelku boste spoznali nekaj programske opreme, ki jo boste morda našli zelo uporabno na začetku svoje profesionalne poti kot razvijalec.
-**Razvojno okolje** je edinstven nabor orodij in funkcij, ki jih razvijalec pogosto uporablja pri pisanju programske opreme. Nekatera od teh orodij so prilagojena specifičnim potrebam razvijalca in se lahko sčasoma spremenijo, če razvijalec spremeni prioritete pri delu, osebnih projektih ali ko uporablja drug programski jezik. Razvojna okolja so tako edinstvena kot razvijalci, ki jih uporabljajo.
+**Razvojno okolje** je edinstven nabor orodij in funkcij, ki jih razvijalec pogosto uporablja pri pisanju programske opreme. Nekatera od teh orodij so prilagojena specifičnim potrebam razvijalca in se lahko sčasoma spremenijo, če razvijalec spremeni prioritete pri delu, osebnih projektih ali uporabi drugega programskega jezika. Razvojna okolja so tako edinstvena kot razvijalci, ki jih uporabljajo.
### Urejevalniki
-Eden najpomembnejših pripomočkov za razvoj programske opreme je urejevalnik. Urejevalniki so mesta, kjer pišete svojo kodo in včasih tudi izvajate svojo kodo.
+Eden najpomembnejših orodij za razvoj programske opreme je urejevalnik. Urejevalniki so mesta, kjer pišete svojo kodo in včasih tudi izvajate svojo kodo.
Razvijalci se zanašajo na urejevalnike iz več razlogov:
-- *Odpravljanje napak* pomaga odkriti hrošče in napake z analizo kode vrstico po vrstico. Nekateri urejevalniki imajo funkcije za odpravljanje napak; te funkcije je mogoče prilagoditi in dodati za specifične programske jezike.
-- *Označevanje sintakse* dodaja barve in oblikovanje besedila kodi, kar jo naredi bolj berljivo. Večina urejevalnikov omogoča prilagoditev označevanja sintakse.
+- *Odpravljanje napak* pomaga odkriti hrošče in napake z analizo kode vrstico po vrstico. Nekateri urejevalniki imajo zmožnosti odpravljanja napak; te funkcije je mogoče prilagoditi in dodati za specifične programske jezike.
+- *Označevanje sintakse* dodaja barve in oblikovanje besedila v kodo, kar jo naredi bolj berljivo. Večina urejevalnikov omogoča prilagoditev označevanja sintakse.
- *Razširitve in integracije* so specializirana orodja za razvijalce, ki jih razvijalci niso vključili v osnovni urejevalnik. Na primer, mnogi razvijalci dokumentirajo svojo kodo, da pojasnijo, kako deluje. Morda bodo namestili razširitev za preverjanje črkovanja, da bi odkrili tipkarske napake v dokumentaciji. Večina razširitev je namenjena uporabi znotraj specifičnega urejevalnika, večina urejevalnikov pa omogoča iskanje razpoložljivih razširitev.
- *Prilagoditev* omogoča razvijalcem ustvarjanje edinstvenega razvojnega okolja, ki ustreza njihovim potrebam. Večina urejevalnikov je izjemno prilagodljiva in omogoča tudi ustvarjanje lastnih razširitev.
@@ -137,7 +137,7 @@ Razvijalci se zanašajo na urejevalnike iz več razlogov:
Drugo ključno orodje je brskalnik. Spletni razvijalci se zanašajo na brskalnik, da vidijo, kako njihova koda deluje na spletu. Brskalnik se uporablja tudi za prikaz vizualnih elementov spletne strani, ki so napisani v urejevalniku, kot je HTML.
-Veliko brskalnikov ima *orodja za razvijalce* (DevTools), ki vsebujejo nabor uporabnih funkcij in informacij, ki pomagajo razvijalcem zbirati in zajemati pomembne informacije o njihovi aplikaciji. Na primer: Če ima spletna stran napake, je včasih koristno vedeti, kdaj so se pojavile. DevTools v brskalniku je mogoče konfigurirati za zajemanje teh informacij.
+Mnogi brskalniki imajo *orodja za razvijalce* (DevTools), ki vsebujejo nabor uporabnih funkcij in informacij, ki pomagajo razvijalcem zbirati in zajemati pomembne informacije o njihovi aplikaciji. Na primer: Če ima spletna stran napake, je včasih koristno vedeti, kdaj so se pojavile. DevTools v brskalniku je mogoče konfigurirati za zajemanje teh informacij.
#### Priljubljeni brskalniki in DevTools
@@ -147,18 +147,18 @@ Veliko brskalnikov ima *orodja za razvijalce* (DevTools), ki vsebujejo nabor upo
### Orodja ukazne vrstice
-Nekateri razvijalci imajo raje manj grafični pogled za svoje vsakodnevne naloge in se zanašajo na ukazno vrstico, da to dosežejo. Pisanje kode zahteva veliko tipkanja, nekateri razvijalci pa se raje ne motijo pri uporabi miške. Uporabljajo bližnjice na tipkovnici za preklapljanje med okni na namizju, delo na različnih datotekah in uporabo orodij. Večino nalog je mogoče opraviti z miško, vendar je ena od prednosti uporabe ukazne vrstice ta, da je veliko mogoče opraviti z orodji ukazne vrstice, ne da bi bilo treba preklapljati med miško in tipkovnico. Druga prednost ukazne vrstice je, da so konfigurabilne, lahko shranite prilagojeno konfiguracijo, jo kasneje spremenite in uvozite na druge razvojne naprave. Ker so razvojna okolja tako edinstvena za vsakega razvijalca, nekateri ne uporabljajo ukazne vrstice, nekateri se nanjo popolnoma zanašajo, nekateri pa imajo raje kombinacijo obojega.
+Nekateri razvijalci imajo raje manj grafični pogled za svoje vsakodnevne naloge in se zanašajo na ukazno vrstico, da to dosežejo. Pisanje kode zahteva veliko tipkanja, nekateri razvijalci pa se raje ne motijo pri uporabi miške. Uporabljajo bližnjice na tipkovnici za preklapljanje med okni na namizju, delo na različnih datotekah in uporabo orodij. Večino nalog je mogoče opraviti z miško, vendar je prednost ukazne vrstice ta, da je mogoče veliko opraviti z orodji ukazne vrstice, ne da bi bilo treba preklapljati med miško in tipkovnico. Druga prednost ukazne vrstice je, da je konfigurabilna, kar omogoča shranjevanje prilagojene konfiguracije, njeno kasnejšo spremembo in uvoz na druge razvojne računalnike. Ker so razvojna okolja tako edinstvena za vsakega razvijalca, nekateri ne uporabljajo ukazne vrstice, nekateri se nanjo popolnoma zanašajo, nekateri pa imajo raje kombinacijo obojega.
### Priljubljene možnosti ukazne vrstice
Možnosti ukazne vrstice se razlikujejo glede na operacijski sistem, ki ga uporabljate.
-*💻 = prednameščeno na operacijskem sistemu.*
+*💻 = prednameščeno v operacijskem sistemu.*
#### Windows
- [Powershell](https://docs.microsoft.com/powershell/scripting/overview?view=powershell-7/?WT.mc_id=academic-77807-sagibbon) 💻
-- [Command Line](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands/?WT.mc_id=academic-77807-sagibbon) (znana tudi kot CMD) 💻
+- [Command Line](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands/?WT.mc_id=academic-77807-sagibbon) (znan tudi kot CMD) 💻
- [Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)
- [mintty](https://mintty.github.io/)
@@ -182,7 +182,7 @@ Možnosti ukazne vrstice se razlikujejo glede na operacijski sistem, ki ga upora
### Dokumentacija
-Ko želi razvijalec izvedeti nekaj novega, se najverjetneje obrne na dokumentacijo, da se nauči, kako nekaj uporabljati. Razvijalci se pogosto zanašajo na dokumentacijo, da jih vodi skozi pravilno uporabo orodij in jezikov ter da pridobijo globlje razumevanje, kako delujejo.
+Ko želi razvijalec izvedeti nekaj novega, se bo najverjetneje obrnil na dokumentacijo, da se nauči, kako nekaj uporabljati. Razvijalci se pogosto zanašajo na dokumentacijo, da jih vodi skozi pravilno uporabo orodij in jezikov ter da pridobijo globlje razumevanje, kako delujejo.
#### Priljubljena dokumentacija o spletnem razvoju
@@ -201,7 +201,7 @@ Ko želi razvijalec izvedeti nekaj novega, se najverjetneje obrne na dokumentaci
Primerjajte nekaj programskih jezikov. Katere so nekatere edinstvene značilnosti JavaScripta v primerjavi z Javo? Kaj pa COBOL v primerjavi z Go?
## Kviz po predavanju
-[Kviz po predavanju](https://ff-quizzes.netlify.app/web/quiz/2)
+[Kviz po predavanju](https://ff-quizzes.netlify.app/web/)
## Pregled in samostojno učenje
@@ -214,4 +214,4 @@ Preučite različne jezike, ki so na voljo programerju. Poskusite napisati vrsti
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za strojno prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas opozarjamo, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/1-getting-started-lessons/2-github-basics/README.md b/translations/sl/1-getting-started-lessons/2-github-basics/README.md
index 65a18286..56fadc00 100644
--- a/translations/sl/1-getting-started-lessons/2-github-basics/README.md
+++ b/translations/sl/1-getting-started-lessons/2-github-basics/README.md
@@ -1,8 +1,8 @@
# Ustvarjanje dostopnih spletnih strani
-
+
> Sketchnote avtorja [Tomomi Imura](https://twitter.com/girlie_mac)
-## Kviz pred predavanjem
-[Kviz pred predavanjem](https://ff-quizzes.netlify.app/web/quiz/5)
+## Predhodni kviz
+[Predhodni kviz](https://ff-quizzes.netlify.app/web/)
> Moč spleta je v njegovi univerzalnosti. Dostop za vse, ne glede na invalidnost, je bistven vidik.
>
> \- Sir Timothy Berners-Lee, direktor W3C in izumitelj svetovnega spleta
-Ta citat odlično poudarja pomen ustvarjanja dostopnih spletnih strani. Aplikacija, ki ni dostopna vsem, je po definiciji izključujoča. Kot spletni razvijalci bi morali vedno imeti v mislih dostopnost. Če se na to osredotočimo že od začetka, bomo na dobri poti, da zagotovimo dostopnost strani, ki jih ustvarimo. V tej lekciji boste spoznali orodja, ki vam lahko pomagajo zagotoviti dostopnost vaših spletnih virov, in kako graditi z mislijo na dostopnost.
+Ta citat popolnoma poudarja pomen ustvarjanja dostopnih spletnih strani. Aplikacija, ki ni dostopna vsem, je po definiciji izključujoča. Kot spletni razvijalci bi morali vedno imeti v mislih dostopnost. Če se na to osredotočite že od začetka, boste na dobri poti, da zagotovite dostopnost strani, ki jih ustvarite. V tej lekciji boste spoznali orodja, ki vam lahko pomagajo zagotoviti dostopnost vaših spletnih virov, in kako graditi z mislijo na dostopnost.
> To lekcijo lahko opravite na [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/accessibility/?WT.mc_id=academic-77807-sagibbon)!
@@ -31,31 +31,31 @@ Ena najbolj znanih orodij za dostopnost so bralniki zaslona.
[Bralniki zaslona](https://en.wikipedia.org/wiki/Screen_reader) so pogosto uporabljeni pripomočki za osebe z okvarami vida. Tako kot se trudimo, da brskalnik pravilno prikaže informacije, ki jih želimo deliti, moramo zagotoviti, da enako velja za bralnik zaslona.
-V svoji osnovni obliki bralnik zaslona zvočno bere stran od zgoraj navzdol. Če je vaša stran sestavljena samo iz besedila, bo bralnik informacije posredoval podobno kot brskalnik. Seveda pa spletne strani redko vsebujejo zgolj besedilo; vključujejo povezave, grafike, barve in druge vizualne komponente. Poskrbeti moramo, da bralnik zaslona te informacije pravilno prebere.
+V svoji osnovni obliki bralnik zaslona zvočno prebere stran od zgoraj navzdol. Če je vaša stran sestavljena samo iz besedila, bo bralnik informacije posredoval podobno kot brskalnik. Seveda pa spletne strani redko vsebujejo zgolj besedilo; vključujejo povezave, grafike, barve in druge vizualne elemente. Poskrbeti je treba, da bralnik zaslona te informacije pravilno prebere.
-Vsak spletni razvijalec bi se moral seznaniti z delovanjem bralnika zaslona. Kot smo že omenili, je to orodje, ki ga bodo uporabljali vaši uporabniki. Tako kot poznate delovanje brskalnika, bi morali razumeti tudi delovanje bralnika zaslona. Na srečo so bralniki zaslona vgrajeni v večino operacijskih sistemov.
+Vsak spletni razvijalec bi se moral seznaniti z bralnikom zaslona. Kot je bilo poudarjeno zgoraj, je to orodje, ki ga bodo uporabljali vaši uporabniki. Tako kot poznate delovanje brskalnika, bi morali razumeti tudi delovanje bralnika zaslona. Na srečo so bralniki zaslona vgrajeni v večino operacijskih sistemov.
-Nekateri brskalniki imajo tudi vgrajena orodja in razširitve, ki lahko berejo besedilo na glas ali celo nudijo osnovne navigacijske funkcije, kot so [ta orodja za dostopnost v brskalniku Edge](https://support.microsoft.com/help/4000734/microsoft-edge-accessibility-features). Ta orodja so prav tako pomembna, vendar delujejo drugače kot bralniki zaslona in jih ne smemo zamenjevati za orodja za testiranje bralnikov zaslona.
+Nekateri brskalniki imajo tudi vgrajena orodja in razširitve, ki lahko berejo besedilo na glas ali celo nudijo osnovne navigacijske funkcije, kot so [ta orodja za dostopnost v brskalniku Edge](https://support.microsoft.com/help/4000734/microsoft-edge-accessibility-features). Ta orodja so prav tako pomembna za dostopnost, vendar delujejo drugače kot bralniki zaslona in jih ne smemo zamenjevati za orodja za testiranje bralnikov zaslona.
✅ Preizkusite bralnik zaslona in brskalniško orodje za branje besedila. Na Windows je privzeto vključen [Narrator](https://support.microsoft.com/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c172f109bdb1/?WT.mc_id=academic-77807-sagibbon), lahko pa namestite tudi [JAWS](https://webaim.org/articles/jaws/) in [NVDA](https://www.nvaccess.org/about-nvda/). Na macOS in iOS je privzeto nameščen [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10).
### Povečava
-Drugo pogosto uporabljeno orodje za osebe z okvarami vida je povečava. Najosnovnejša oblika povečave je statična povečava, ki jo nadzorujemo s kombinacijo `Control + znak plus (+)` ali z zmanjšanjem ločljivosti zaslona. Ta vrsta povečave poveča celotno stran, zato je uporaba [odzivnega oblikovanja](https://developer.mozilla.org/docs/Learn/CSS/CSS_layout/Responsive_Design) pomembna za zagotavljanje dobre uporabniške izkušnje pri povečanih ravneh povečave.
+Drugo orodje, ki ga pogosto uporabljajo osebe z okvarami vida, je povečava. Najosnovnejša vrsta povečave je statična povečava, ki jo nadzorujemo s kombinacijo `Control + plus (+)` ali z zmanjšanjem ločljivosti zaslona. Ta vrsta povečave poveča celotno stran, zato je uporaba [odzivnega oblikovanja](https://developer.mozilla.org/docs/Learn/CSS/CSS_layout/Responsive_Design) pomembna za zagotavljanje dobre uporabniške izkušnje pri povečanih ravneh povečave.
-Druga vrsta povečave temelji na specializirani programski opremi, ki poveča določen del zaslona in omogoča premikanje, podobno kot uporaba povečevalnega stekla. Na Windows je vgrajeno orodje [Magnifier](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198), [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) pa je programska oprema tretjih oseb z več funkcijami in širšo uporabniško bazo. Tako macOS kot iOS imata vgrajeno programsko opremo za povečavo, imenovano [Zoom](https://www.apple.com/accessibility/mac/vision/).
+Druga vrsta povečave uporablja specializirano programsko opremo za povečavo določenega dela zaslona in premikanje, podobno kot pri uporabi povečevalnega stekla. Na Windows je vgrajeno orodje [Magnifier](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198), medtem ko je [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) programska oprema tretjih oseb z več funkcijami in večjo uporabniško bazo. Tako macOS kot iOS imata vgrajeno programsko opremo za povečavo, imenovano [Zoom](https://www.apple.com/accessibility/mac/vision/).
### Preverjevalniki kontrasta
Barve na spletnih straneh je treba skrbno izbrati, da ustrezajo potrebam barvno slepih uporabnikov ali oseb, ki težko vidijo barve z nizkim kontrastom.
-✅ Preizkusite spletno stran, ki jo radi uporabljate, glede uporabe barv z razširitvijo brskalnika, kot je [WCAG-ov preverjevalnik barv](https://microsoftedge.microsoft.com/addons/detail/wcag-color-contrast-check/idahaggnlnekelhgplklhfpchbfdmkjp?hl=en-US&WT.mc_id=academic-77807-sagibbon). Kaj ste ugotovili?
+✅ Preizkusite spletno stran, ki jo radi uporabljate, glede uporabe barv z razširitvijo brskalnika, kot je [WCAG-ov preverjevalnik kontrasta](https://microsoftedge.microsoft.com/addons/detail/wcag-color-contrast-check/idahaggnlnekelhgplklhfpchbfdmkjp?hl=en-US&WT.mc_id=academic-77807-sagibbon). Kaj ste ugotovili?
### Lighthouse
-V razdelku za razvijalce vašega brskalnika boste našli orodje Lighthouse. To orodje je pomembno za prvi vpogled v dostopnost (pa tudi druge analize) spletne strani. Čeprav se ni dobro zanašati izključno na Lighthouse, je 100-odstotna ocena zelo koristna kot izhodišče.
+V razdelku orodij za razvijalce v vašem brskalniku boste našli orodje Lighthouse. To orodje je pomembno za prvi vpogled v dostopnost (pa tudi druge analize) spletne strani. Čeprav se ni dobro zanašati izključno na Lighthouse, je 100-odstotna ocena zelo koristna kot izhodišče.
-✅ Poiščite Lighthouse v razdelku za razvijalce vašega brskalnika in izvedite analizo na kateri koli strani. Kaj ste odkrili?
+✅ Poiščite Lighthouse v razdelku orodij za razvijalce v vašem brskalniku in izvedite analizo na katerikoli strani. Kaj ste odkrili?
## Oblikovanje za dostopnost
@@ -75,13 +75,13 @@ Ljudje vidijo svet na različne načine, kar vključuje tudi barve. Pri izbiri b
### Uporabite pravilni HTML
-S CSS in JavaScriptom je mogoče vsak element narediti, da izgleda kot katera koli vrsta kontrolnika. `` bi lahko uporabili za ustvarjanje ``, `` pa bi lahko postal hiperpovezava. Čeprav se to morda zdi lažje za oblikovanje, ne posreduje nobenih informacij bralniku zaslona. Uporabite ustrezen HTML pri ustvarjanju kontrolnikov na strani. Če želite hiperpovezavo, uporabite ``. Uporaba pravilnega HTML-ja za pravi kontrolnik se imenuje uporaba semantičnega HTML-ja.
+S CSS in JavaScriptom je mogoče katerikoli element narediti, da izgleda kot katerikoli kontrolnik. `` bi lahko uporabili za ustvarjanje ``, `` pa za hiperpovezavo. Čeprav se to morda zdi lažje za oblikovanje, ne posreduje nobenih informacij bralniku zaslona. Uporabite ustrezen HTML pri ustvarjanju kontrolnikov na strani. Če želite hiperpovezavo, uporabite ``. Uporaba pravilnega HTML-ja za ustrezen kontrolnik se imenuje uporaba semantičnega HTML-ja.
-✅ Obiščite katero koli spletno stran in preverite, ali oblikovalci in razvijalci pravilno uporabljajo HTML. Ali lahko najdete gumb, ki bi moral biti povezava? Namig: z desnim klikom izberite 'Ogled izvorne kode strani' v brskalniku, da si ogledate osnovno kodo.
+✅ Obiščite katerokoli spletno stran in preverite, ali oblikovalci in razvijalci pravilno uporabljajo HTML. Ali najdete gumb, ki bi moral biti povezava? Namig: z desnim klikom izberite 'Ogled izvorne kode strani' v brskalniku, da si ogledate osnovno kodo.
### Ustvarite opisno hierarhijo naslovov
-Uporabniki bralnikov zaslona [močno zanašajo na naslove](https://webaim.org/projects/screenreadersurvey8/#finding) za iskanje informacij in navigacijo po strani. Pisanje opisne vsebine naslovov in uporaba semantičnih oznak naslovov sta pomembna za ustvarjanje strani, ki je enostavna za navigacijo za uporabnike bralnikov zaslona.
+Uporabniki bralnikov zaslona [močno zanašajo na naslove](https://webaim.org/projects/screenreadersurvey8/#finding) za iskanje informacij in navigacijo po strani. Pisanje opisne vsebine naslovov in uporaba semantičnih oznak naslovov sta pomembna za ustvarjanje strani, ki jo uporabniki bralnikov zaslona zlahka pregledujejo.
### Uporabite dobre vizualne namige
@@ -89,23 +89,23 @@ CSS omogoča popoln nadzor nad videzom katerega koli elementa na strani. Lahko u
## Pomen besedila povezav
-Hiperpovezave so ključne za navigacijo po spletu. Zato je zagotavljanje, da bralnik zaslona pravilno prebere povezave, ključno za omogočanje navigacije vsem uporabnikom.
+Hiperpovezave so ključne za navigacijo po spletu. Zato je pomembno, da bralnik zaslona pravilno prebere povezave, kar omogoča vsem uporabnikom navigacijo po vaši strani.
### Bralniki zaslona in povezave
-Kot bi pričakovali, bralniki zaslona berejo besedilo povezav na enak način kot katero koli drugo besedilo na strani. S tem v mislih se lahko zdi spodnji primer povsem sprejemljiv.
+Kot bi pričakovali, bralniki zaslona berejo besedilo povezav na enak način kot katerokoli drugo besedilo na strani. S tem v mislih se lahko spodnje besedilo zdi povsem sprejemljivo.
-> Mali pingvin, včasih znan kot pravljični pingvin, je najmanjši pingvin na svetu. [Kliknite tukaj](https://en.wikipedia.org/wiki/Little_penguin) za več informacij.
+> Mali pingvin, včasih znan tudi kot pravljični pingvin, je najmanjši pingvin na svetu. [Kliknite tukaj](https://en.wikipedia.org/wiki/Little_penguin) za več informacij.
-> Mali pingvin, včasih znan kot pravljični pingvin, je najmanjši pingvin na svetu. Obiščite https://en.wikipedia.org/wiki/Little_penguin za več informacij.
+> Mali pingvin, včasih znan tudi kot pravljični pingvin, je najmanjši pingvin na svetu. Obiščite https://en.wikipedia.org/wiki/Little_penguin za več informacij.
-> **OPOMBA** Kot boste prebrali, **nikoli** ne ustvarjajte povezav, ki izgledajo kot zgoraj navedene.
+> **NOTE** Kot boste kmalu prebrali, **nikoli** ne ustvarjajte povezav, ki izgledajo kot zgoraj navedene.
-Zapomnite si, bralniki zaslona so drugačen vmesnik od brskalnikov z drugačnim naborom funkcij.
+Zapomnite si, da so bralniki zaslona drugačen vmesnik od brskalnikov z drugačnim naborom funkcij.
### Težava z uporabo URL-ja
-Bralniki zaslona berejo besedilo. Če se URL pojavi v besedilu, bo bralnik zaslona prebral URL. Na splošno URL ne posreduje smiselnih informacij in lahko zveni moteče. Morda ste to že doživeli, če vam je telefon kdaj zvočno prebral sporočilo z URL-jem.
+Bralniki zaslona berejo besedilo. Če se URL pojavi v besedilu, ga bo bralnik zaslona prebral. Na splošno URL ne posreduje smiselnih informacij in lahko zveni moteče. To ste morda že doživeli, če vam je telefon kdaj zvočno prebral sporočilo z URL-jem.
### Težava z "kliknite tukaj"
@@ -113,30 +113,30 @@ Bralniki zaslona imajo tudi možnost branja samo hiperpovezav na strani, podobno
### Dobro besedilo povezav
-Dobro besedilo povezav na kratko opisuje, kaj je na drugi strani povezave. V zgornjem primeru o malih pingvinih povezava vodi na stran Wikipedije o tej vrsti. Fraza *mali pingvini* bi bila popolno besedilo povezave, saj jasno pove, kaj bo nekdo izvedel, če klikne povezavo - mali pingvini.
+Dobro besedilo povezav na kratko opiše, kaj je na drugi strani povezave. V zgornjem primeru o malih pingvinih povezava vodi na Wikipedijo o tej vrsti. Fraza *mali pingvini* bi bila popolno besedilo povezave, saj jasno pove, kaj bo nekdo izvedel, če klikne povezavo - mali pingvini.
-> [Mali pingvin](https://en.wikipedia.org/wiki/Little_penguin), včasih znan kot pravljični pingvin, je najmanjši pingvin na svetu.
+> [Mali pingvin](https://en.wikipedia.org/wiki/Little_penguin), včasih znan tudi kot pravljični pingvin, je najmanjši pingvin na svetu.
✅ Brskajte po spletu nekaj minut in poiščite strani, ki uporabljajo nejasne strategije povezovanja. Primerjajte jih z drugimi, bolje povezanimi stranmi. Kaj ste se naučili?
#### Opombe za iskalnike
-Kot dodaten bonus zagotavljanja dostopnosti vaše strani boste pomagali tudi iskalnikom pri navigaciji po vaši strani. Iskalniki uporabljajo besedilo povezav za razumevanje tematik strani. Tako uporaba dobrega besedila povezav koristi vsem!
+Kot dodatna prednost zagotavljanja dostopnosti vaše strani boste pomagali tudi iskalnikom pri navigaciji po vaši strani. Iskalniki uporabljajo besedilo povezav za razumevanje tematik strani. Tako uporaba dobrega besedila povezav pomaga vsem!
### ARIA
Predstavljajte si naslednjo stran:
-| Izdelek | Opis | Naročilo |
-| ------------ | ----------------- | ----------------- |
-| Widget | [Opis](../../../../1-getting-started-lessons/3-accessibility/') | [Naročilo](../../../../1-getting-started-lessons/3-accessibility/') |
-| Super widget | [Opis](../../../../1-getting-started-lessons/3-accessibility/') | [Naročilo](../../../../1-getting-started-lessons/3-accessibility/') |
+| Izdelek | Opis | Naročilo |
+| ------------ | ----------------- | ---------------- |
+| Widget | [Opis](../../../../1-getting-started-lessons/3-accessibility/') | [Naročilo](../../../../1-getting-started-lessons/3-accessibility/') |
+| Super widget | [Opis](../../../../1-getting-started-lessons/3-accessibility/') | [Naročilo](../../../../1-getting-started-lessons/3-accessibility/') |
-V tem primeru je podvajanje besedila "opis" in "naročilo" smiselno za nekoga, ki uporablja brskalnik. Vendar pa bi nekdo, ki uporablja bralnik zaslona, slišal le besedi *opis* in *naročilo* brez konteksta.
+V tem primeru podvajanje besedila "opis" in "naročilo" smiselno deluje za nekoga, ki uporablja brskalnik. Vendar pa bo nekdo, ki uporablja bralnik zaslona, slišal le besedi *opis* in *naročilo* brez konteksta.
-Za podporo takšnim scenarijem HTML podpira nabor atributov, znanih kot [Dostopne bogate internetne aplikacije (ARIA)](https://developer.mozilla.org/docs/Web/Accessibility/ARIA). Ti atributi omogočajo posredovanje dodatnih informacij bralnikom zaslona.
+Za podporo takšnim scenarijem HTML podpira nabor atributov, znanih kot [Accessible Rich Internet Applications (ARIA)](https://developer.mozilla.org/docs/Web/Accessibility/ARIA). Ti atributi omogočajo posredovanje dodatnih informacij bralnikom zaslona.
-> **OPOMBA**: Tako kot pri mnogih vidikih HTML-ja se lahko podpora brskalnikov in bralnikov zaslona razlikuje. Vendar večina glavnih odjemalcev podpira ARIA atribute.
+> **NOTE**: Tako kot pri mnogih vidikih HTML-ja se lahko podpora brskalnikov in bralnikov zaslona razlikuje. Vendar večina glavnih odjemalcev podpira ARIA atribute.
Atribut `aria-label` lahko uporabite za opis povezave, kadar format strani tega ne omogoča. Opis za widget bi lahko bil nastavljen kot
@@ -144,7 +144,7 @@ Atribut `aria-label` lahko uporabite za opis povezave, kadar format strani tega
description
```
-✅ Na splošno uporaba semantičnega označevanja, kot je opisano zgoraj, presega uporabo ARIA, vendar včasih ni semantičnega ekvivalenta za različne HTML pripomočke. Dober primer je drevo. Za drevo ni HTML ekvivalenta, zato identificirate generični `` za ta element s pravilno vlogo in vrednostmi ARIA. [MDN dokumentacija o ARIA](https://developer.mozilla.org/docs/Web/Accessibility/ARIA) vsebuje več uporabnih informacij.
+✅ Na splošno uporaba semantičnega označevanja, kot je opisano zgoraj, nadomešča uporabo ARIA, vendar včasih ni semantičnega ekvivalenta za različne HTML elemente. Dober primer je drevo. Za drevo ni HTML ekvivalenta, zato generični `
` za ta element identificirate z ustrezno vlogo in ARIA vrednostmi. [MDN dokumentacija o ARIA](https://developer.mozilla.org/docs/Web/Accessibility/ARIA) vsebuje več uporabnih informacij.
```html
File Viewer
@@ -156,19 +156,19 @@ Atribut `aria-label` lahko uporabite za opis povezave, kadar format strani tega
## Slike
Samoumevno je, da bralniki zaslona ne morejo samodejno prebrati, kaj je na sliki. Zagotavljanje dostopnosti slik ne zahteva veliko dela - za to je namenjen atribut `alt`. Vse smiselne slike bi morale imeti `alt`, ki opisuje, kaj predstavljajo.
-Slike, ki so zgolj dekorativne, bi morale imeti atribut `alt` nastavljen na prazno vrednost: `alt=""`. To preprečuje, da bi bralniki zaslona po nepotrebnem napovedovali dekorativno sliko.
+Slike, ki so zgolj dekorativne, bi morale imeti atribut `alt` nastavljen na prazno vrednost: `alt=""`. To prepreči, da bi bralniki zaslona po nepotrebnem napovedovali dekorativno sliko.
-✅ Kot bi pričakovali, tudi iskalniki ne morejo razumeti, kaj je na sliki. Tudi oni uporabljajo besedilo `alt`. Tako zagotavljanje dostopnosti vaše strani prinaša dodatne prednosti!
+✅ Kot bi pričakovali, iskalniki prav tako ne morejo razumeti, kaj je na sliki. Tudi oni uporabljajo alt besedilo. Tako zagotavljanje dostopnosti vaše strani prinaša dodatne prednosti!
## Tipkovnica
-Nekateri uporabniki ne morejo uporabljati miške ali sledilne ploščice, zato se zanašajo na interakcije s tipkovnico za premikanje od enega elementa do drugega. Pomembno je, da vaša spletna stran predstavi vsebino v logičnem vrstnem redu, tako da lahko uporabnik tipkovnice dostopa do vsakega interaktivnega elementa, ko se premika po dokumentu. Če gradite svoje spletne strani s semantičnim označevanjem in uporabljate CSS za oblikovanje njihovega vizualnega postavitve, bi morala biti vaša stran dostopna s tipkovnico, vendar je pomembno, da ta vidik preizkusite ročno. Več o [strategijah navigacije s tipkovnico](https://webaim.org/techniques/keyboard/) lahko izveste tukaj.
+Nekateri uporabniki ne morejo uporabljati miške ali sledilne ploščice, zato se zanašajo na interakcije s tipkovnico za premikanje med elementi. Pomembno je, da vaša spletna stran predstavi vsebino v logičnem zaporedju, tako da lahko uporabnik tipkovnice dostopa do vsakega interaktivnega elementa, ko se premika po dokumentu. Če gradite svoje spletne strani s semantičnim označevanjem in uporabljate CSS za oblikovanje njihovega vizualnega izgleda, bi morala biti vaša stran navigabilna s tipkovnico, vendar je pomembno, da ta vidik ročno preizkusite. Več o [strategijah navigacije s tipkovnico](https://webaim.org/techniques/keyboard/) lahko izveste tukaj.
-✅ Obiščite katero koli spletno stran in poskusite navigirati po njej samo s tipkovnico. Kaj deluje, kaj ne deluje? Zakaj?
+✅ Obiščite katerokoli spletno stran in poskusite navigirati po njej samo s tipkovnico. Kaj deluje, kaj ne deluje? Zakaj?
## Povzetek
-Splet, ki je dostopen le nekaterim, ni resnično 'svetovni splet'. Najboljši način za zagotavljanje dostopnosti strani, ki jih ustvarite, je vključitev najboljših praks za dostopnost že od začetka. Čeprav so potrebni dodatni koraki, bo vključitev teh veščin v vaš delovni proces zdaj pomenila, da bodo vse strani, ki jih ustvarite, dostopne.
+Splet, ki je dostopen le nekaterim, ni resnično "svetovni splet". Najboljši način za zagotavljanje dostopnosti strani, ki jih ustvarite, je vključitev najboljših praks za dostopnost že od začetka. Čeprav so potrebni dodatni koraki, bo vključitev teh veščin v vaš delovni proces zdaj pomenila, da bodo vse strani, ki jih ustvarite, dostopne.
---
@@ -220,17 +220,17 @@ Vzemite ta HTML in ga prepišite tako, da bo čim bolj dostopen, glede na strate
Semantic Example
-
+
```
## Kviz po predavanju
-[Kviz po predavanju](https://ff-quizzes.netlify.app/web/quiz/6)
+[Kviz po predavanju](https://ff-quizzes.netlify.app/web/en/)
## Pregled in samostojno učenje
-Mnoge vlade imajo zakone glede zahtev za dostopnost. Preberite zakone o dostopnosti v svoji državi. Kaj je zajeto in kaj ni? Primer je [ta vladna spletna stran](https://accessibility.blog.gov.uk/).
+Veliko vlad ima zakone glede zahtev za dostopnost. Preberite si zakone o dostopnosti v svoji državi. Kaj je zajeto in kaj ni? Primer je [ta vladna spletna stran](https://accessibility.blog.gov.uk/).
## Naloga
@@ -241,4 +241,4 @@ Zasluge: [Turtle Ipsum](https://github.com/Instrument/semantic-html-sample) avto
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna napačna razumevanja ali napačne interpretacije, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za strojno prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/2-js-basics/1-data-types/README.md b/translations/sl/2-js-basics/1-data-types/README.md
index bc756ee0..5f3939bf 100644
--- a/translations/sl/2-js-basics/1-data-types/README.md
+++ b/translations/sl/2-js-basics/1-data-types/README.md
@@ -1,19 +1,19 @@
# Osnove JavaScripta: Podatkovni tipi
-
+
> Sketchnote avtorja [Tomomi Imura](https://twitter.com/girlie_mac)
-## Kviz pred predavanjem
-[Kviz pred predavanjem](https://ff-quizzes.netlify.app/web/quiz/7)
+## Kviz pred predavanjem
+[Kviz pred predavanjem](https://ff-quizzes.netlify.app/web/)
Ta lekcija pokriva osnove JavaScripta, jezika, ki omogoča interaktivnost na spletu.
@@ -23,19 +23,19 @@ Ta lekcija pokriva osnove JavaScripta, jezika, ki omogoča interaktivnost na spl
[](https://youtube.com/watch?v=AWfA95eLdq8 "Podatkovni tipi v JavaScriptu")
-> 🎥 Kliknite zgornje slike za videoposnetke o spremenljivkah in podatkovnih tipih.
+> 🎥 Kliknite zgornje slike za videoposnetke o spremenljivkah in podatkovnih tipih
-Začnimo s spremenljivkami in podatkovnimi tipi, ki jih te vsebujejo!
+Začnimo s spremenljivkami in podatkovnimi tipi, ki jih napolnjujejo!
## Spremenljivke
-Spremenljivke shranjujejo vrednosti, ki jih lahko uporabljate in spreminjate v svoji kodi.
+Spremenljivke shranjujejo vrednosti, ki jih lahko uporabljate in spreminjate skozi svojo kodo.
Ustvarjanje in **deklaracija** spremenljivke ima naslednjo sintakso **[ključna beseda] [ime]**. Sestavljena je iz dveh delov:
- **Ključna beseda**. Ključne besede so lahko `let` ali `var`.
-✅ Ključna beseda `let` je bila uvedena v ES6 in daje vaši spremenljivki tako imenovani _blokovni obseg_. Priporočljivo je, da uporabljate `let` namesto `var`. Blokovne obsege bomo podrobneje obravnavali v prihodnjih delih.
+✅ Ključna beseda `let` je bila uvedena v ES6 in daje vaši spremenljivki tako imenovani _blokovni obseg_. Priporočljivo je, da uporabljate `let` namesto `var`. Blokovne obsege bomo podrobneje obravnavali v prihodnjih delih.
- **Ime spremenljivke**, to je ime, ki ga izberete sami.
### Naloga - delo s spremenljivkami
@@ -58,7 +58,7 @@ Ustvarjanje in **deklaracija** spremenljivke ima naslednjo sintakso **[ključna
`myVariable` je zdaj *inicializirana* z vrednostjo 123.
-1. **Refaktorirajte**. Zamenjajte svojo kodo z naslednjo izjavo.
+1. **Preoblikujte**. Zamenjajte svojo kodo z naslednjo izjavo.
```javascript
let myVariable = 123;
@@ -78,7 +78,7 @@ Ustvarjanje in **deklaracija** spremenljivke ima naslednjo sintakso **[ključna
## Konstante
-Deklaracija in inicializacija konstante sledi enakim konceptom kot spremenljivka, z izjemo ključne besede `const`. Konstante so običajno deklarirane z velikimi črkami.
+Deklaracija in inicializacija konstante sledi istim konceptom kot spremenljivka, z izjemo ključne besede `const`. Konstante so običajno deklarirane z vsemi velikimi črkami.
```javascript
const MY_VARIABLE = 123;
@@ -109,15 +109,15 @@ Konstante so podobne spremenljivkam, z dvema izjemama:
obj.a = 5; // allowed
```
- Zgornje spreminja vrednost objekta, ne pa same reference, kar je dovoljeno.
+ Zgornje spreminja vrednost objekta, ne pa tudi same reference, kar je dovoljeno.
> Opomba: `const` pomeni, da je referenca zaščitena pred ponovnim dodeljevanjem. Vrednost pa ni _nespremenljiva_ in se lahko spremeni, še posebej, če gre za kompleksno strukturo, kot je objekt.
## Podatkovni tipi
-Spremenljivke lahko shranjujejo različne tipe vrednosti, kot so števila in besedilo. Ti različni tipi vrednosti so znani kot **podatkovni tipi**. Podatkovni tipi so pomemben del razvoja programske opreme, saj razvijalcem pomagajo pri odločanju, kako naj bo koda napisana in kako naj programska oprema deluje. Poleg tega imajo nekateri podatkovni tipi edinstvene lastnosti, ki pomagajo preoblikovati ali pridobiti dodatne informacije iz vrednosti.
+Spremenljivke lahko shranjujejo različne tipe vrednosti, kot so števila in besedilo. Ti različni tipi vrednosti so znani kot **podatkovni tipi**. Podatkovni tipi so pomemben del razvoja programske opreme, saj razvijalcem pomagajo pri odločanju, kako naj bo koda napisana in kako naj programska oprema deluje. Poleg tega imajo nekateri podatkovni tipi edinstvene lastnosti, ki pomagajo pri preoblikovanju ali pridobivanju dodatnih informacij iz vrednosti.
-✅ Podatkovni tipi so znani tudi kot JavaScriptovi podatkovni primitivni tipi, saj so najnižji nivo podatkovnih tipov, ki jih zagotavlja jezik. Obstaja 7 primitivnih podatkovnih tipov: string, number, bigint, boolean, undefined, null in symbol. Vzemite si trenutek in si predstavljajte, kaj vsak od teh primitivov predstavlja. Kaj je `zebra`? Kaj pa `0`? `true`?
+✅ Podatkovni tipi so znani tudi kot JavaScriptovi podatkovni primitivni tipi, saj so najnižji nivo podatkovnih tipov, ki jih jezik ponuja. Obstaja 7 primitivnih podatkovnih tipov: string, number, bigint, boolean, undefined, null in symbol. Vzemite si trenutek in si predstavljajte, kaj vsak od teh primitivov predstavlja. Kaj je `zebra`? Kaj pa `0`? `true`?
### Števila
@@ -131,13 +131,13 @@ Spremenljivke lahko shranjujejo vse vrste števil, vključno z decimalnimi ali n
Obstaja več vrst operatorjev za izvajanje aritmetičnih funkcij, nekateri so navedeni tukaj:
-| Simbol | Opis | Primer |
-| ------ | ------------------------------------------------------------------------ | -------------------------------- |
-| `+` | **Seštevanje**: Izračuna vsoto dveh števil | `1 + 2 //pričakovani odgovor je 3` |
-| `-` | **Odštevanje**: Izračuna razliko dveh števil | `1 - 2 //pričakovani odgovor je -1` |
-| `*` | **Množenje**: Izračuna produkt dveh števil | `1 * 2 //pričakovani odgovor je 2` |
-| `/` | **Deljenje**: Izračuna količnik dveh števil | `1 / 2 //pričakovani odgovor je 0.5` |
-| `%` | **Ostanek**: Izračuna ostanek pri deljenju dveh števil | `1 % 2 //pričakovani odgovor je 1` |
+| Simbol | Opis | Primer |
+| ------ | ---------------------------------------------------------------------- | -------------------------------- |
+| `+` | **Seštevanje**: Izračuna vsoto dveh števil | `1 + 2 //pričakovani odgovor je 3` |
+| `-` | **Odštevanje**: Izračuna razliko dveh števil | `1 - 2 //pričakovani odgovor je -1` |
+| `*` | **Množenje**: Izračuna produkt dveh števil | `1 * 2 //pričakovani odgovor je 2` |
+| `/` | **Deljenje**: Izračuna količnik dveh števil | `1 / 2 //pričakovani odgovor je 0.5` |
+| `%` | **Ostalo**: Izračuna ostanek pri deljenju dveh števil | `1 % 2 //pričakovani odgovor je 1` |
✅ Poskusite! Poskusite aritmetično operacijo v konzoli svojega brskalnika. Vas rezultati presenetijo?
@@ -147,15 +147,15 @@ Nizi so nizi znakov, ki se nahajajo med enojnimi ali dvojnimi narekovaji.
- `'To je niz'`
- `"To je tudi niz"`
-- `let myString = 'To je vrednost niza, shranjena v spremenljivki';`
+- `let myString = 'To je niz, shranjen v spremenljivki';`
Ne pozabite uporabiti narekovajev pri pisanju niza, sicer bo JavaScript domneval, da gre za ime spremenljivke.
### Oblikovanje nizov
-Nizi so besedilni in jih je treba občasno oblikovati.
+Nizi so besedilni in jih bo treba občasno oblikovati.
-Za **združevanje** dveh ali več nizov, oziroma njihovo povezovanje, uporabite operator `+`.
+Za **združevanje** dveh ali več nizov, ali njihovo povezovanje, uporabite operator `+`.
```javascript
let myString1 = "Hello";
@@ -169,7 +169,7 @@ myString1 + ", " + myString2 + "!"; //Hello, World!
✅ Zakaj `1 + 1 = 2` v JavaScriptu, medtem ko `'1' + '1' = 11?` Razmislite o tem. Kaj pa `'1' + 1`?
-**Predloge nizov** so še en način za oblikovanje nizov, le da se namesto narekovajev uporablja poševnica nazaj. Vse, kar ni navadno besedilo, mora biti postavljeno v oklepaje `${ }`. To vključuje vse spremenljivke, ki so lahko nizi.
+**Predloge nizov** so še en način oblikovanja nizov, razen da se namesto narekovajev uporablja obrnjeni narekovaj. Vse, kar ni navadno besedilo, mora biti postavljeno v oklepaje `${ }`. To vključuje vse spremenljivke, ki so lahko nizi.
```javascript
let myString1 = "Hello";
@@ -179,27 +179,27 @@ let myString2 = "World";
`${myString1}, ${myString2}!` //Hello, World!
```
-Svoje cilje oblikovanja lahko dosežete z obema metodama, vendar bodo predloge nizov upoštevale vse presledke in prelome vrstic.
+Svoje cilje oblikovanja lahko dosežete z obema metodama, vendar bodo predloge nizov spoštovale vse presledke in prelome vrstic.
✅ Kdaj bi uporabili predlogo niza namesto navadnega niza?
-### Logične vrednosti
+### Logične vrednosti (Booleovi tipi)
-Logične vrednosti so lahko le dve: `true` ali `false`. Logične vrednosti pomagajo pri odločanju, katere vrstice kode naj se izvedejo, ko so izpolnjeni določeni pogoji. V mnogih primerih [operatorji](../../../../2-js-basics/1-data-types) pomagajo pri nastavitvi vrednosti logične vrednosti, pogosto pa boste opazili in pisali spremenljivke, ki so inicializirane ali katerih vrednosti se posodabljajo z operatorjem.
+Logične vrednosti so lahko le dve: `true` ali `false`. Logične vrednosti pomagajo pri odločanju, katere vrstice kode naj se izvedejo, ko so določeni pogoji izpolnjeni. V mnogih primerih [operatorji](../../../../2-js-basics/1-data-types) pomagajo pri nastavitvi vrednosti logične vrednosti, pogosto pa boste opazili in pisali spremenljivke, ki so inicializirane ali katerih vrednosti se posodabljajo z operatorjem.
- `let myTrueBool = true`
- `let myFalseBool = false`
-✅ Spremenljivka se lahko šteje za 'resnično', če se ovrednoti kot logična vrednost `true`. Zanimivo je, da so v JavaScriptu [vse vrednosti resnične, razen če so definirane kot neresnične](https://developer.mozilla.org/docs/Glossary/Truthy).
+✅ Spremenljivka se lahko šteje za 'resnično' (truthy), če se ovrednoti kot logična vrednost `true`. Zanimivo je, da so v JavaScriptu [vse vrednosti resnične, razen če so definirane kot napačne (falsy)](https://developer.mozilla.org/docs/Glossary/Truthy).
---
## 🚀 Izziv
-JavaScript je znan po svojih presenetljivih načinih obravnave podatkovnih tipov. Raziščite te 'pasti'. Na primer: občutljivost na velike in male črke vas lahko preseneti! Poskusite to v svoji konzoli: `let age = 1; let Age = 2; age == Age` (rezultat je `false` -- zakaj?). Katere druge pasti lahko najdete?
+JavaScript je znan po svojih presenetljivih načinih obravnave podatkovnih tipov. Raziščite te 'zanke'. Na primer: občutljivost na velike in male črke vas lahko preseneti! Poskusite to v svoji konzoli: `let age = 1; let Age = 2; age == Age` (reši se kot `false` -- zakaj?). Katere druge zanke lahko najdete?
-## Kviz po predavanju
-[Kviz po predavanju](https://ff-quizzes.netlify.app/web/quiz/8)
+## Kviz po predavanju
+[Kviz po predavanju](https://ff-quizzes.netlify.app)
## Pregled in samostojno učenje
@@ -207,9 +207,9 @@ Oglejte si [ta seznam vaj za JavaScript](https://css-tricks.com/snippets/javascr
## Naloga
-[Vaja s podatkovnimi tipi](assignment.md)
+[Vaja za podatkovne tipe](assignment.md)
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni prevod s strani človeka. Ne prevzemamo odgovornosti za morebitna napačna razumevanja ali napačne interpretacije, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna napačna razumevanja ali napačne interpretacije, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/2-js-basics/2-functions-methods/README.md b/translations/sl/2-js-basics/2-functions-methods/README.md
index 1ca1f8b9..8c0ba27c 100644
--- a/translations/sl/2-js-basics/2-functions-methods/README.md
+++ b/translations/sl/2-js-basics/2-functions-methods/README.md
@@ -1,8 +1,8 @@
-# Projekt razširitve brskalnika, 2. del: Klic API-ja, uporaba lokalne shrambe
+# Projekt razširitve brskalnika, 2. del: Klic API-ja, uporaba lokalnega shranjevanja
-## Predhodni kviz
+## Kviz pred predavanjem
-[Predhodni kviz](https://ff-quizzes.netlify.app/web/quiz/25)
+[Kviz pred predavanjem](https://ff-quizzes.netlify.app/web/quiz/25)
### Uvod
-V tej lekciji boste poklicali API tako, da boste oddali obrazec razširitve brskalnika in prikazali rezultate v razširitvi. Poleg tega se boste naučili, kako shraniti podatke v lokalno shrambo brskalnika za prihodnjo uporabo.
+V tej lekciji boste klicali API tako, da boste oddali obrazec svoje razširitve brskalnika in prikazali rezultate v razširitvi. Poleg tega se boste naučili, kako lahko shranite podatke v lokalno shrambo brskalnika za prihodnjo uporabo.
-✅ Sledite oštevilčenim segmentom v ustreznih datotekah, da boste vedeli, kam postaviti kodo.
+✅ Sledite oštevilčenim segmentom v ustreznih datotekah, da boste vedeli, kam postaviti svojo kodo.
### Priprava elementov za manipulacijo v razširitvi:
-Do sedaj ste že ustvarili HTML za obrazec in `` za prikaz rezultatov v razširitvi brskalnika. Od zdaj naprej boste delali v datoteki `/src/index.js` in postopoma gradili razširitev. Oglejte si [prejšnjo lekcijo](../1-about-browsers/README.md) za nastavitev projekta in proces gradnje.
+Do zdaj ste že ustvarili HTML za obrazec in `
` za rezultate v svoji razširitvi brskalnika. Od zdaj naprej boste delali v datoteki `/src/index.js` in postopoma gradili svojo razširitev. Oglejte si [prejšnjo lekcijo](../1-about-browsers/README.md) za navodila o nastavitvi projekta in procesu gradnje.
V datoteki `index.js` začnite z ustvarjanjem nekaj `const` spremenljivk za shranjevanje vrednosti, povezanih z različnimi polji:
@@ -45,7 +45,7 @@ Vsa ta polja so referencirana prek njihovih CSS razredov, kot ste jih nastavili
### Dodajanje poslušalcev dogodkov
-Nato dodajte poslušalce dogodkov za obrazec in gumb za ponastavitev, ki ponastavi obrazec, tako da se ob oddaji obrazca ali kliku na gumb zgodi nekaj, ter dodajte klic za inicializacijo aplikacije na dnu datoteke:
+Nato dodajte poslušalce dogodkov za obrazec in gumb za ponastavitev, ki ponastavi obrazec, tako da se ob oddaji obrazca ali kliku na gumb za ponastavitev nekaj zgodi. Na dnu datoteke dodajte klic za inicializacijo aplikacije:
```JavaScript
form.addEventListener('submit', (e) => handleSubmit(e));
@@ -53,11 +53,11 @@ clearBtn.addEventListener('click', (e) => reset(e));
init();
```
-✅ Opazite skrajšano obliko za poslušanje dogodkov oddaje ali klika ter kako se dogodek posreduje funkcijama `handleSubmit` ali `reset`. Ali lahko napišete ekvivalent te skrajšane oblike v daljši obliki? Katera vam je ljubša?
+✅ Opazite skrajšano obliko za poslušanje dogodkov oddaje ali klika in kako se dogodek posreduje funkcijama `handleSubmit` ali `reset`. Ali lahko napišete ekvivalent te skrajšane oblike v daljši obliki? Katero obliko raje uporabljate?
### Izdelava funkcij `init()` in `reset()`:
-Zdaj boste izdelali funkcijo za inicializacijo razširitve, imenovano `init()`:
+Zdaj boste ustvarili funkcijo, ki inicializira razširitev, imenovano `init()`:
```JavaScript
function init() {
@@ -93,34 +93,34 @@ function reset(e) {
```
-V tej funkciji je nekaj zanimive logike. Ko jo preberete, lahko vidite, kaj se zgodi?
+V tej funkciji je nekaj zanimive logike. Če jo preberete, lahko ugotovite, kaj se dogaja?
-- Dva `const` preverjata, ali je uporabnik shranil APIKey in kodo regije v lokalni shrambi.
+- Dva `const` preverjata, ali ima uporabnik shranjen APIKey in kodo regije v lokalni shrambi.
- Če je katera od teh vrednosti `null`, prikažite obrazec tako, da spremenite njegov slog na 'block'.
-- Skrijte območje rezultatov, nalaganje in gumb za ponastavitev ter nastavite besedilo napake na prazno vrednost.
+- Skrijte rezultate, nalaganje in gumb za ponastavitev ter nastavite besedilo napake na prazno vrednost.
- Če obstajata ključ in regija, začnite rutino za:
- - klic API-ja za pridobitev podatkov o porabi ogljika,
- - skrivanje območja rezultatov,
- - skrivanje obrazca,
- - prikaz gumba za ponastavitev.
+ - klic API-ja za pridobitev podatkov o ogljični porabi,
+ - skrijte območje rezultatov,
+ - skrijte obrazec,
+ - prikažite gumb za ponastavitev.
-Preden nadaljujete, je koristno spoznati zelo pomemben koncept, ki je na voljo v brskalnikih: [LocalStorage](https://developer.mozilla.org/docs/Web/API/Window/localStorage). LocalStorage je uporaben način za shranjevanje nizov v brskalniku kot par `ključ-vrednost`. Ta vrsta spletne shrambe se lahko manipulira z JavaScriptom za upravljanje podatkov v brskalniku. LocalStorage ne poteče, medtem ko se SessionStorage, druga vrsta spletne shrambe, izbriše ob zaprtju brskalnika. Različne vrste shrambe imajo prednosti in slabosti pri uporabi.
+Preden nadaljujete, je koristno spoznati zelo pomemben koncept, ki je na voljo v brskalnikih: [LocalStorage](https://developer.mozilla.org/docs/Web/API/Window/localStorage). LocalStorage je uporaben način za shranjevanje nizov v brskalniku kot par `ključ-vrednost`. Ta vrsta spletnega shranjevanja se lahko manipulira z JavaScriptom za upravljanje podatkov v brskalniku. LocalStorage ne poteče, medtem ko se SessionStorage, druga vrsta spletnega shranjevanja, izbriše, ko se brskalnik zapre. Različne vrste shranjevanja imajo prednosti in slabosti.
-> Opomba - razširitev brskalnika ima svojo lokalno shrambo; glavno okno brskalnika je ločena instanca in deluje neodvisno.
+> Opomba - vaša razširitev brskalnika ima svojo lokalno shrambo; glavno okno brskalnika je ločen primerek in se obnaša ločeno.
-APIKey nastavite na vrednost niza, na primer, in lahko vidite, da je nastavljen v Edgeu, če "pregledate" spletno stran (z desnim klikom na brskalnik lahko pregledate) in odprete zavihek Applications za ogled shrambe.
+Svoj APIKey nastavite na vrednost niza, na primer, in lahko vidite, da je nastavljen v Edgeu, če "pregledate" spletno stran (z desnim klikom na brskalnik lahko pregledate) in odprete zavihek Aplikacije, da vidite shrambo.

-✅ Razmislite o situacijah, kjer NE bi želeli shraniti nekaterih podatkov v LocalStorage. Na splošno je shranjevanje API ključev v LocalStorage slaba ideja! Vidite, zakaj? V našem primeru, ker je naša aplikacija namenjena zgolj učenju in ne bo objavljena v trgovini z aplikacijami, bomo uporabili to metodo.
+✅ Razmislite o situacijah, kjer NE bi želeli shranjevati določenih podatkov v LocalStorage. Na splošno je shranjevanje API ključev v LocalStorage slaba ideja! Vidite zakaj? V našem primeru, ker je naša aplikacija namenjena zgolj učenju in ne bo objavljena v trgovini z aplikacijami, bomo uporabili to metodo.
-Opazite, da uporabljate Web API za manipulacijo LocalStorage, bodisi z uporabo `getItem()`, `setItem()` ali `removeItem()`. Podprto je v večini brskalnikov.
+Opazite, da uporabljate spletni API za manipulacijo LocalStorage, bodisi z uporabo `getItem()`, `setItem()` ali `removeItem()`. Ta funkcionalnost je široko podprta v brskalnikih.
-Preden zgradite funkcijo `displayCarbonUsage()`, ki se kliče v `init()`, zgradite funkcionalnost za obravnavo začetne oddaje obrazca.
+Preden zgradite funkcijo `displayCarbonUsage()`, ki se kliče v `init()`, ustvarite funkcionalnost za obdelavo začetne oddaje obrazca.
-### Obravnava oddaje obrazca
+### Obdelava oddaje obrazca
-Ustvarite funkcijo `handleSubmit`, ki sprejme argument dogodka `(e)`. Ustavite propagacijo dogodka (v tem primeru želimo ustaviti osvežitev brskalnika) in pokličite novo funkcijo `setUpUser`, ki ji posredujete argumente `apiKey.value` in `region.value`. Na ta način uporabite dve vrednosti, ki sta pridobljeni prek začetnega obrazca, ko sta ustrezni polji izpolnjeni.
+Ustvarite funkcijo `handleSubmit`, ki sprejme argument dogodka `(e)`. Ustavite propagacijo dogodka (v tem primeru želimo ustaviti osvežitev brskalnika) in pokličite novo funkcijo `setUpUser`, pri čemer posredujete argumenta `apiKey.value` in `region.value`. Na ta način uporabite dve vrednosti, ki sta pridobljeni prek začetnega obrazca, ko sta ustrezni polji izpolnjeni.
```JavaScript
function handleSubmit(e) {
@@ -129,11 +129,11 @@ function handleSubmit(e) {
}
```
-✅ Osvežite spomin - HTML, ki ste ga nastavili v prejšnji lekciji, ima dve vnosni polji, katerih `vrednosti` so zajete prek `const`, ki ste jih nastavili na vrhu datoteke, in obe sta `required`, zato brskalnik prepreči uporabnikom vnos praznih vrednosti.
+✅ Osvežite spomin - HTML, ki ste ga nastavili v prejšnji lekciji, ima dve vnosni polji, katerih `vrednosti` so zajete prek `const`, ki ste jih nastavili na vrhu datoteke, in obe polji sta `obvezni`, zato brskalnik prepreči uporabnikom vnos praznih vrednosti.
### Nastavitev uporabnika
-Nadaljujte z funkcijo `setUpUser`, kjer nastavite vrednosti lokalne shrambe za apiKey in regionName. Dodajte novo funkcijo:
+Nadaljujte s funkcijo `setUpUser`, kjer nastavite vrednosti lokalne shrambe za `apiKey` in `regionName`. Dodajte novo funkcijo:
```JavaScript
function setUpUser(apiKey, regionName) {
@@ -149,15 +149,15 @@ function setUpUser(apiKey, regionName) {
Ta funkcija prikaže sporočilo o nalaganju, medtem ko se kliče API. Na tej točki ste prišli do ustvarjanja najpomembnejše funkcije te razširitve brskalnika!
-### Prikaz porabe ogljika
+### Prikaz ogljične porabe
Končno je čas za poizvedbo API-ja!
-Preden nadaljujete, se pogovorimo o API-jih. API-ji ali [Application Programming Interfaces](https://www.webopedia.com/TERM/A/API.html) so ključni element v orodjarni spletnega razvijalca. Zagotavljajo standardne načine za interakcijo in povezovanje programov med seboj. Na primer, če gradite spletno stran, ki mora poizvedovati bazo podatkov, je morda nekdo ustvaril API, ki ga lahko uporabite. Medtem ko obstaja veliko vrst API-jev, je eden najbolj priljubljenih [REST API](https://www.smashingmagazine.com/2018/01/understanding-using-rest-api/).
+Preden nadaljujete, se pogovorimo o API-jih. API-ji ali [Application Programming Interfaces](https://www.webopedia.com/TERM/A/API.html) so ključni element v orodjarni spletnega razvijalca. Zagotavljajo standardne načine za programe, da komunicirajo in sodelujejo med seboj. Na primer, če gradite spletno mesto, ki mora poizvedovati bazo podatkov, je morda nekdo ustvaril API, ki ga lahko uporabite. Medtem ko obstaja veliko vrst API-jev, je eden najbolj priljubljenih [REST API](https://www.smashingmagazine.com/2018/01/understanding-using-rest-api/).
-✅ Izraz 'REST' pomeni 'Representational State Transfer' in vključuje uporabo različno konfiguriranih URL-jev za pridobivanje podatkov. Raziskujte različne vrste API-jev, ki so na voljo razvijalcem. Katera oblika vam je najbolj všeč?
+✅ Izraz 'REST' pomeni 'Representational State Transfer' in vključuje uporabo različno konfiguriranih URL-jev za pridobivanje podatkov. Raziščite različne vrste API-jev, ki so na voljo razvijalcem. Katera oblika vam je najbolj všeč?
-V tej funkciji je nekaj pomembnih stvari. Najprej opazite ključni izraz [`async`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function). Pisanje funkcij tako, da delujejo asinhrono, pomeni, da počakajo na dokončanje dejanja, kot je vrnitev podatkov, preden nadaljujejo.
+V tej funkciji je nekaj pomembnih stvari. Najprej opazite ključno besedo [`async`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function). Pisanje funkcij tako, da delujejo asinhrono, pomeni, da čakajo na dokončanje dejanja, kot je vračanje podatkov, preden nadaljujejo.
Tukaj je kratek video o `async`:
@@ -207,28 +207,28 @@ async function displayCarbonUsage(apiKey, region) {
To je velika funkcija. Kaj se tukaj dogaja?
-- Po najboljših praksah uporabite ključni izraz `async`, da funkcija deluje asinhrono. Funkcija vsebuje blok `try/catch`, saj bo vrnila obljubo, ko API vrne podatke. Ker nimate nadzora nad hitrostjo odziva API-ja (morda se sploh ne odzove!), morate to negotovost obravnavati z asinhronim klicem.
-- Poizvedujete API co2signal za pridobitev podatkov o regiji, pri čemer uporabljate svoj API ključ. Za uporabo tega ključa morate uporabiti vrsto avtentikacije v parametrih glave.
-- Ko se API odzove, dodelite različne elemente njegovih podatkov odziva delom zaslona, ki ste jih nastavili za prikaz teh podatkov.
-- Če pride do napake ali ni rezultata, prikažete sporočilo o napaki.
+- Po najboljših praksah uporabite ključno besedo `async`, da se funkcija obnaša asinhrono. Funkcija vsebuje blok `try/catch`, saj bo vrnila obljubo, ko API vrne podatke. Ker nimate nadzora nad hitrostjo, s katero bo API odgovoril (morda sploh ne bo odgovoril!), morate to negotovost obravnavati z asinhronim klicem.
+- Poizvedujete API co2signal za pridobitev podatkov o vaši regiji, pri čemer uporabljate svoj API ključ. Za uporabo tega ključa morate uporabiti vrsto avtentikacije v parametrih glave.
+- Ko API odgovori, dodelite različne elemente njegovih podatkov o odgovoru delom zaslona, ki ste jih nastavili za prikaz teh podatkov.
+- Če pride do napake ali če ni rezultata, prikažete sporočilo o napaki.
-✅ Uporaba asinhronih vzorcev programiranja je še eno zelo uporabno orodje v vaši orodjarni. Preberite [o različnih načinih](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function), kako lahko konfigurirate to vrsto kode.
+✅ Uporaba asinhronih programskih vzorcev je še eno zelo uporabno orodje v vaši orodjarni. Preberite [o različnih načinih](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function), kako lahko konfigurirate to vrsto kode.
-Čestitke! Če zgradite svojo razširitev (`npm run build`) in jo osvežite v podoknu razširitev, imate delujočo razširitev! Edina stvar, ki ne deluje, je ikona, in to boste popravili v naslednji lekciji.
+Čestitamo! Če zgradite svojo razširitev (`npm run build`) in jo osvežite v podoknu razširitev, imate delujočo razširitev! Edina stvar, ki še ne deluje, je ikona, kar boste popravili v naslednji lekciji.
---
## 🚀 Izziv
-V teh lekcijah smo obravnavali več vrst API-jev. Izberite spletni API in podrobno raziščite, kaj ponuja. Na primer, si oglejte API-je, ki so na voljo v brskalnikih, kot je [HTML Drag and Drop API](https://developer.mozilla.org/docs/Web/API/HTML_Drag_and_Drop_API). Kaj po vašem mnenju naredi odličen API?
+V teh lekcijah smo razpravljali o več vrstah API-jev. Izberite spletni API in podrobno raziščite, kaj ponuja. Na primer, si oglejte API-je, ki so na voljo v brskalnikih, kot je [HTML Drag and Drop API](https://developer.mozilla.org/docs/Web/API/HTML_Drag_and_Drop_API). Kaj po vašem mnenju naredi API odličen?
-## Zaključni kviz
+## Kviz po predavanju
-[Zaključni kviz](https://ff-quizzes.netlify.app/web/quiz/26)
+[Kviz po predavanju](https://ff-quizzes.netlify.app/web/quiz/26)
## Pregled in samostojno učenje
-V tej lekciji ste se naučili o LocalStorage in API-jih, oboje zelo uporabno za profesionalnega spletnega razvijalca. Ali lahko razmislite, kako ti dve stvari delujeta skupaj? Razmislite, kako bi zasnovali spletno stran, ki bi shranjevala elemente za uporabo API-ja.
+V tej lekciji ste spoznali LocalStorage in API-je, oba zelo uporabna za profesionalnega spletnega razvijalca. Ali lahko razmislite, kako ti dve stvari delujeta skupaj? Razmislite, kako bi zasnovali spletno mesto, ki bi shranjevalo elemente za uporabo z API-jem.
## Naloga
@@ -237,4 +237,4 @@ V tej lekciji ste se naučili o LocalStorage in API-jih, oboje zelo uporabno za
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/5-browser-extension/3-background-tasks-and-performance/README.md b/translations/sl/5-browser-extension/3-background-tasks-and-performance/README.md
index 2b2d6215..a491b121 100644
--- a/translations/sl/5-browser-extension/3-background-tasks-and-performance/README.md
+++ b/translations/sl/5-browser-extension/3-background-tasks-and-performance/README.md
@@ -1,8 +1,8 @@
-# Ustvari vesoljsko igro, 1. del: Uvod
+# Izdelava vesoljske igre, 1. del: Uvod

@@ -17,30 +17,30 @@ CO_OP_TRANSLATOR_METADATA:
### Dedovanje in kompozicija pri razvoju iger
-V prejšnjih lekcijah ni bilo veliko potrebe po skrbi za arhitekturo aplikacij, ki ste jih ustvarili, saj so bili projekti zelo majhnega obsega. Ko pa vaše aplikacije rastejo v velikosti in obsegu, postanejo arhitekturne odločitve pomembnejše. Obstajata dva glavna pristopa za ustvarjanje večjih aplikacij v JavaScriptu: *kompozicija* ali *dedovanje*. Obe imata svoje prednosti in slabosti, vendar ju bomo razložili v kontekstu igre.
+V prejšnjih lekcijah ni bilo veliko potrebe po skrbi za arhitekturo aplikacij, ki ste jih ustvarili, saj so bili projekti zelo majhnega obsega. Ko pa vaše aplikacije rastejo v velikosti in obsegu, postanejo arhitekturne odločitve pomembnejše. Obstajata dva glavna pristopa k ustvarjanju večjih aplikacij v JavaScriptu: *kompozicija* ali *dedovanje*. Obe imata svoje prednosti in slabosti, vendar ju bomo razložili v kontekstu igre.
-✅ Ena najbolj znanih programerskih knjig vseh časov se ukvarja z [načrtnimi vzorci](https://en.wikipedia.org/wiki/Design_Patterns).
+✅ Ena najbolj znanih knjig o programiranju je povezana z [oblikovalskimi vzorci](https://en.wikipedia.org/wiki/Design_Patterns).
-V igri imate `igralne objekte`, ki so objekti, ki obstajajo na zaslonu. To pomeni, da imajo lokacijo v kartezičnem koordinatnem sistemu, ki jo določata koordinati `x` in `y`. Ko razvijate igro, boste opazili, da imajo vsi vaši igralni objekti standardne lastnosti, ki so skupne za vsako igro, ki jo ustvarite, in sicer elementi, ki so:
+V igri imate `objekte igre`, ki so objekti, ki obstajajo na zaslonu. To pomeni, da imajo lokacijo v kartezijskem koordinatnem sistemu, opredeljeno z `x` in `y` koordinato. Ko razvijate igro, boste opazili, da imajo vsi vaši objekti igre standardne lastnosti, skupne za vsako igro, ki jo ustvarite, in sicer elemente, ki so:
-- **lokacijsko osnovani** Večina, če ne vsi, igralni elementi so osnovani na lokaciji. To pomeni, da imajo lokacijo, `x` in `y`.
+- **lokacijsko osnovani** Večina, če ne vsi, elementi igre temeljijo na lokaciji. To pomeni, da imajo lokacijo, `x` in `y`.
- **premični** To so objekti, ki se lahko premaknejo na novo lokacijo. To je običajno junak, pošast ali NPC (ne-igralni lik), ne pa na primer statični objekt, kot je drevo.
-- **samouničujoči** Ti objekti obstajajo le določen čas, preden se pripravijo na izbris. Običajno je to predstavljeno z logično vrednostjo `mrtvo` ali `uničeno`, ki signalizira igralnemu pogonu, da tega objekta ni več treba prikazovati.
+- **samouničujoči** Ti objekti obstajajo le določen čas, preden se pripravijo na brisanje. Običajno je to predstavljeno z logično vrednostjo `mrtvo` ali `uničeno`, ki signalizira igralnemu pogonu, da tega objekta ni več treba prikazovati.
- **časovno omejeni** 'Časovna omejitev' je tipična lastnost kratkotrajnih objektov. Tipičen primer je kos besedila ali grafični učinek, kot je eksplozija, ki naj bo viden le nekaj milisekund.
-✅ Pomislite na igro, kot je Pac-Man. Ali lahko v tej igri prepoznate štiri zgoraj navedene tipe objektov?
+✅ Pomislite na igro, kot je Pac-Man. Ali lahko prepoznate štiri zgoraj navedene tipe objektov v tej igri?
### Izražanje vedenja
-Vse, kar smo opisali zgoraj, so vedenja, ki jih lahko imajo igralni objekti. Kako jih torej kodiramo? To vedenje lahko izrazimo kot metode, povezane z razredi ali objekti.
+Vse, kar smo opisali zgoraj, so vedenja, ki jih lahko imajo objekti igre. Kako jih torej kodiramo? To vedenje lahko izrazimo kot metode, povezane bodisi s klasami bodisi z objekti.
-**Razredi**
+**Klase**
-Ideja je uporabiti `razrede` v kombinaciji z `dedovanjem`, da dodamo določeno vedenje razredu.
+Ideja je uporabiti `klase` v kombinaciji z `dedovanjem`, da dodamo določeno vedenje klasi.
✅ Dedovanje je pomemben koncept za razumevanje. Več o tem preberite v [članku MDN o dedovanju](https://developer.mozilla.org/docs/Web/JavaScript/Inheritance_and_the_prototype_chain).
-Izraženo s kodo, lahko igralni objekt običajno izgleda takole:
+V kodi je objekt igre običajno videti takole:
```javascript
@@ -92,7 +92,7 @@ const tree = new Tree();
**Kompozicija**
-Drugačen način obravnave dedovanja objektov je uporaba *kompozicije*. Nato objekti izražajo svoje vedenje takole:
+Drugačen način obravnave dedovanja objektov je uporaba *kompozicije*. Takrat objekti izražajo svoje vedenje takole:
```javascript
//create a constant gameObject
@@ -145,17 +145,17 @@ Odločitev je vaša, kateri vzorec boste izbrali. JavaScript podpira oba pristop
Drug pogost vzorec pri razvoju iger obravnava problem upravljanja uporabniške izkušnje in zmogljivosti igre.
-## Vzorec Pub/Sub
+## Pub/sub vzorec
✅ Pub/Sub pomeni 'objavi-naroči se'
-Ta vzorec obravnava idejo, da si različni deli vaše aplikacije ne bi smeli biti medsebojno poznani. Zakaj? To omogoča lažje razumevanje dogajanja na splošno, če so različni deli ločeni. Prav tako omogoča enostavno spreminjanje vedenja, če je to potrebno. Kako to dosežemo? To storimo z vzpostavitvijo nekaterih konceptov:
+Ta vzorec obravnava idejo, da si različni deli vaše aplikacije ne bi smeli medsebojno poznati. Zakaj? To omogoča lažji pregled nad dogajanjem na splošno, če so različni deli ločeni. Prav tako omogoča enostavno spremembo vedenja, če je to potrebno. Kako to dosežemo? Z vzpostavitvijo nekaterih konceptov:
-- **sporočilo**: Sporočilo je običajno besedilni niz, ki mu lahko sledi dodatna vsebina (kos podatkov, ki pojasnjuje, za kaj gre pri sporočilu). Tipično sporočilo v igri je lahko `KEY_PRESSED_ENTER`.
+- **sporočilo**: Sporočilo je običajno besedilni niz, ki ga spremlja neobvezna vsebina (kos podatkov, ki pojasnjuje, kaj sporočilo pomeni). Tipično sporočilo v igri je lahko `KEY_PRESSED_ENTER`.
- **objavljalec**: Ta element *objavi* sporočilo in ga pošlje vsem naročnikom.
- **naročnik**: Ta element *posluša* določena sporočila in izvede neko nalogo kot rezultat prejetega sporočila, na primer izstreli laser.
-Implementacija je precej majhna, vendar je to zelo močan vzorec. Tukaj je, kako ga lahko implementiramo:
+Implementacija je zelo majhna, vendar je to zelo močan vzorec. Tukaj je, kako ga lahko implementiramo:
```javascript
//set up an EventEmitter class that contains listeners
@@ -204,7 +204,7 @@ window.addEventListener('keyup', (evt) => {
});
```
-Zgoraj povežemo dogodek tipkovnice, `ArrowLeft`, in pošljemo sporočilo `HERO_MOVE_LEFT`. Poslušamo to sporočilo in premaknemo `junaka` kot rezultat. Prednost tega vzorca je, da poslušalec dogodkov in junak ne vesta drug za drugega. Lahko premapirate `ArrowLeft` na tipko `A`. Poleg tega bi bilo mogoče narediti nekaj povsem drugega na `ArrowLeft` z nekaj spremembami v funkciji `on` eventEmitterja:
+Zgoraj povežemo dogodek tipkovnice, `ArrowLeft`, in pošljemo sporočilo `HERO_MOVE_LEFT`. Poslušamo to sporočilo in premaknemo `junaka` kot rezultat. Prednost tega vzorca je, da poslušalec dogodkov in junak ne poznata drug drugega. Lahko premapirate `ArrowLeft` na tipko `A`. Poleg tega bi bilo mogoče narediti nekaj povsem drugega na `ArrowLeft` z nekaj spremembami funkcije `on` v eventEmitterju:
```javascript
eventEmitter.on(Messages.HERO_MOVE_LEFT, () => {
@@ -212,13 +212,13 @@ eventEmitter.on(Messages.HERO_MOVE_LEFT, () => {
});
```
-Ko postanejo stvari bolj zapletene, ko vaša igra raste, ta vzorec ostane enako zapleten in vaša koda ostane čista. Zelo priporočljivo je, da sprejmete ta vzorec.
+Ko se stvari zapletejo, ko vaša igra raste, ta vzorec ostane enako zapleten, vaša koda pa ostane čista. Zelo priporočljivo je, da sprejmete ta vzorec.
---
## 🚀 Izziv
-Razmislite, kako lahko vzorec pub-sub izboljša igro. Kateri deli naj oddajajo dogodke in kako naj igra nanje reagira? Zdaj imate priložnost, da postanete ustvarjalni in razmislite o novi igri ter o tem, kako bi se njeni deli lahko obnašali.
+Razmislite, kako lahko pub-sub vzorec izboljša igro. Kateri deli naj oddajajo dogodke in kako naj igra nanje reagira? Zdaj imate priložnost, da postanete kreativni in razmislite o novi igri ter kako bi se njeni deli obnašali.
## Zaključni kviz
@@ -226,13 +226,13 @@ Razmislite, kako lahko vzorec pub-sub izboljša igro. Kateri deli naj oddajajo d
## Pregled in samostojno učenje
-Več o Pub/Sub preberite [tukaj](https://docs.microsoft.com/azure/architecture/patterns/publisher-subscriber/?WT.mc_id=academic-77807-sagibbon).
+Več o Pub/Sub vzorcu preberite [tukaj](https://docs.microsoft.com/azure/architecture/patterns/publisher-subscriber/?WT.mc_id=academic-77807-sagibbon).
## Naloga
-[Zasnujte igro](assignment.md)
+[Ustvarite osnutek igre](assignment.md)
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za strojno prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitne nesporazume ali napačne razlage, ki izhajajo iz uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/6-space-game/2-drawing-to-canvas/README.md b/translations/sl/6-space-game/2-drawing-to-canvas/README.md
index a4b5eeaa..6835b50b 100644
--- a/translations/sl/6-space-game/2-drawing-to-canvas/README.md
+++ b/translations/sl/6-space-game/2-drawing-to-canvas/README.md
@@ -1,13 +1,13 @@
-# Zgradite vesoljsko igro, 2. del: Narišite junaka in pošasti na platno
+# Zgradite vesoljsko igro, 2. del: Risanje junaka in pošasti na platno
## Predhodni kviz
@@ -15,34 +15,34 @@ CO_OP_TRANSLATOR_METADATA:
## Platno
-Platno je HTML element, ki privzeto nima vsebine; je prazna površina. Na njem morate risati, da ga zapolnite.
+Platno (Canvas) je HTML element, ki privzeto nima vsebine; je prazno platno. Dodati mu morate vsebino z risanjem nanj.
-✅ Preberite [več o API-ju za platno](https://developer.mozilla.org/docs/Web/API/Canvas_API) na MDN.
+✅ Preberite [več o Canvas API](https://developer.mozilla.org/docs/Web/API/Canvas_API) na MDN.
-Tukaj je primer, kako je običajno deklarirano kot del telesa strani:
+Tukaj je primer, kako ga običajno deklariramo kot del telesa strani:
```html
```
-Zgoraj nastavljamo `id`, `width` in `height`.
+Zgoraj nastavimo `id`, `width` in `height`.
-- `id`: nastavite to, da lahko pridobite referenco, ko želite z njim interagirati.
+- `id`: nastavite to, da lahko pridobite referenco, ko morate z njim interagirati.
- `width`: to je širina elementa.
- `height`: to je višina elementa.
## Risanje preproste geometrije
-Platno uporablja kartezični koordinatni sistem za risanje. Zato uporablja x-os in y-os za izražanje lokacije nečesa. Lokacija `0,0` je zgornji levi položaj, spodnji desni pa je tisto, kar ste nastavili kot ŠIRINO in VIŠINO platna.
+Platno uporablja kartezični koordinatni sistem za risanje. Zato uporablja x-os in y-os za izražanje lokacije nečesa. Lokacija `0,0` je zgornji levi kot, spodnji desni kot pa je določena z nastavljeno ŠIRINO in VIŠINO platna.
-
+
> Slika iz [MDN](https://developer.mozilla.org/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes)
Za risanje na element platna morate slediti naslednjim korakom:
1. **Pridobite referenco** na element platna.
-1. **Pridobite referenco** na element Context, ki se nahaja na elementu platna.
-1. **Izvedite operacijo risanja** z uporabo elementa Context.
+2. **Pridobite referenco** na element Context, ki se nahaja na platnu.
+3. **Izvedite risalno operacijo** z uporabo elementa Context.
Koda za zgornje korake običajno izgleda takole:
@@ -61,17 +61,17 @@ ctx.fillStyle = 'red';
ctx.fillRect(0,0, 200, 200) // x,y,width, height
```
-✅ API za platno se večinoma osredotoča na 2D oblike, vendar lahko na spletno stran narišete tudi 3D elemente; za to lahko uporabite [WebGL API](https://developer.mozilla.org/docs/Web/API/WebGL_API).
+✅ Canvas API se večinoma osredotoča na 2D oblike, vendar lahko na spletno stran narišete tudi 3D elemente; za to lahko uporabite [WebGL API](https://developer.mozilla.org/docs/Web/API/WebGL_API).
-S pomočjo API-ja za platno lahko narišete različne stvari, kot so:
+S Canvas API lahko narišete vse vrste stvari, kot so:
-- **Geometrijske oblike**, že smo pokazali, kako narisati pravokotnik, vendar je še veliko več, kar lahko narišete.
-- **Besedilo**, lahko narišete besedilo s katero koli pisavo in barvo, ki jo želite.
-- **Slike**, lahko narišete sliko na podlagi slikovnega vira, kot je .jpg ali .png.
+- **Geometrijske oblike**, že smo pokazali, kako narisati pravokotnik, vendar lahko narišete še veliko več.
+- **Besedilo**, lahko narišete besedilo s katero koli pisavo in barvo.
+- **Slike**, lahko narišete sliko na podlagi slikovne datoteke, kot je .jpg ali .png.
-✅ Poskusite! Zdaj, ko veste, kako narisati pravokotnik, ali lahko narišete krog na stran? Oglejte si nekaj zanimivih risb na platnu na CodePen. Tukaj je [posebej impresiven primer](https://codepen.io/dissimulate/pen/KrAwx).
+✅ Poskusite! Zdaj, ko veste, kako narisati pravokotnik, lahko poskusite narisati krog na stran? Oglejte si nekaj zanimivih risb na platnu na CodePen. Tukaj je [posebej impresiven primer](https://codepen.io/dissimulate/pen/KrAwx).
-## Naložite in narišite slikovni vir
+## Nalaganje in risanje slikovnega vira
Slikovni vir naložite tako, da ustvarite objekt `Image` in nastavite njegovo lastnost `src`. Nato poslušate dogodek `load`, da veste, kdaj je pripravljen za uporabo. Koda izgleda takole:
@@ -87,7 +87,7 @@ img.onload = () => {
### Vzorec nalaganja vira
-Priporočljivo je, da zgornje zavijete v konstrukcijo, kot je prikazano spodaj, da je lažje za uporabo in da poskušate z njim manipulirati šele, ko je popolnoma naložen:
+Priporočljivo je, da zgornje zavijete v strukturo, kot je ta, da je lažje za uporabo in da poskrbite, da ga poskušate manipulirati šele, ko je popolnoma naložen:
```javascript
function loadAsset(path) {
@@ -128,15 +128,15 @@ async function run() {
### Kaj zgraditi
-Zgradili boste spletno stran z elementom platna. Prikazati mora črn zaslon `1024*768`. Na voljo imate dve sliki:
+Zgradili boste spletno stran z elementom platna. Prikazati mora črn zaslon velikosti `1024*768`. Na voljo imate dve sliki:
-- Junakov ladja
+- Junakovo plovilo
- 
+ 
- 5*5 pošasti
- 
+ 
### Priporočeni koraki za začetek razvoja
@@ -151,7 +151,7 @@ Poiščite datoteke, ki so bile ustvarjene za vas v podmapi `your-work`. Vsebuje
-| package.json
```
-Odprite kopijo te mape v Visual Studio Code. Potrebujete lokalno razvojno okolje, po možnosti z Visual Studio Code, NPM in Node nameščenimi. Če na vašem računalniku ni nastavljen `npm`, [tukaj je, kako to storiti](https://www.npmjs.com/get-npm).
+Odprite kopijo te mape v Visual Studio Code. Potrebujete lokalno razvojno okolje, po možnosti z Visual Studio Code, NPM in Node nameščenimi. Če `npm` ni nastavljen na vašem računalniku, [tukaj je, kako to storiti](https://www.npmjs.com/get-npm).
Začnite svoj projekt tako, da se premaknete v mapo `your_work`:
@@ -160,7 +160,7 @@ cd your-work
npm start
```
-Zgornje bo zagnalo HTTP strežnik na naslovu `http://localhost:5000`. Odprite brskalnik in vnesite ta naslov. Trenutno je prazna stran, vendar se bo to spremenilo.
+Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprite brskalnik in vnesite ta naslov. Trenutno je stran prazna, vendar se bo to spremenilo.
> Opomba: za ogled sprememb na zaslonu osvežite brskalnik.
@@ -168,13 +168,13 @@ Zgornje bo zagnalo HTTP strežnik na naslovu `http://localhost:5000`. Odprite br
Dodajte potrebno kodo v `your-work/app.js`, da rešite spodnje:
-1. **Narišite** platno s črnim ozadjem
- > namig: dodajte dve vrstici pod ustrezen TODO v `/app.js`, nastavite element `ctx`, da bo črn, zgornje/leve koordinate na 0,0 ter višino in širino, da bosta enaki platnu.
-2. **Naložite** teksture
+1. **Narišite** platno s črnim ozadjem
+ > namig: dodajte dve vrstici pod ustrezen TODO v `/app.js`, nastavite element `ctx` na črno in zgornje/leve koordinate na 0,0, višino in širino pa na velikost platna.
+2. **Naložite** teksture
> namig: dodajte slike igralca in sovražnika z uporabo `await loadTexture` in podajte pot do slike. Na zaslonu jih še ne boste videli!
-3. **Narišite** junaka na sredino zaslona v spodnji polovici
- > namig: uporabite API `drawImage`, da narišete heroImg na zaslon, nastavite `canvas.width / 2 - 45` in `canvas.height - canvas.height / 4)`;
-4. **Narišite** 5*5 pošasti
+3. **Narišite** junaka na sredino zaslona v spodnji polovici
+ > namig: uporabite API `drawImage`, da narišete heroImg na zaslon, nastavite `canvas.width / 2 - 45` in `canvas.height - canvas.height / 4)`.
+4. **Narišite** 5*5 pošasti
> namig: zdaj lahko odstranite komentarje iz kode za risanje sovražnikov na zaslon. Nato pojdite v funkcijo `createEnemies` in jo dokončajte.
Najprej nastavite nekaj konstant:
@@ -198,19 +198,19 @@ Dodajte potrebno kodo v `your-work/app.js`, da rešite spodnje:
## Rezultat
-Končni rezultat naj izgleda takole:
+Končni rezultat naj bi izgledal takole:

## Rešitev
-Najprej poskusite rešiti sami, vendar če se zataknete, si oglejte [rešitev](../../../../6-space-game/2-drawing-to-canvas/solution/app.js).
+Najprej poskusite rešiti sami, če pa se zataknete, si oglejte [rešitev](../../../../6-space-game/2-drawing-to-canvas/solution/app.js).
---
## 🚀 Izziv
-Naučili ste se risanja z API-jem za platno, ki je osredotočen na 2D; poglejte si [WebGL API](https://developer.mozilla.org/docs/Web/API/WebGL_API) in poskusite narisati 3D objekt.
+Naučili ste se risanja z 2D Canvas API; poglejte si [WebGL API](https://developer.mozilla.org/docs/Web/API/WebGL_API) in poskusite narisati 3D objekt.
## Zaključni kviz
@@ -218,13 +218,13 @@ Naučili ste se risanja z API-jem za platno, ki je osredotočen na 2D; poglejte
## Pregled in samostojno učenje
-Več o API-ju za platno se naučite z [branjem o njem](https://developer.mozilla.org/docs/Web/API/Canvas_API).
+Več o Canvas API se naučite z [branjem o njem](https://developer.mozilla.org/docs/Web/API/Canvas_API).
## Naloga
-[Preizkusite API za platno](assignment.md)
+[Preizkusite Canvas API](assignment.md)
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/6-space-game/3-moving-elements-around/README.md b/translations/sl/6-space-game/3-moving-elements-around/README.md
index de3236a0..e4e0f23f 100644
--- a/translations/sl/6-space-game/3-moving-elements-around/README.md
+++ b/translations/sl/6-space-game/3-moving-elements-around/README.md
@@ -1,17 +1,17 @@
# Ustvarjanje vesoljske igre, 3. del: Dodajanje gibanja
-## Predhodni kviz
+## Pred-predavanje kviz
-[Predhodni kviz](https://ff-quizzes.netlify.app/web/quiz/33)
+[Pred-predavanje kviz](https://ff-quizzes.netlify.app/web/quiz/33)
Igre niso prav zabavne, dokler se po zaslonu ne začnejo premikati vesoljci! V tej igri bomo uporabili dve vrsti gibanja:
@@ -23,7 +23,7 @@ Kako torej premikamo stvari na zaslonu? Vse temelji na kartezičnih koordinatah:
Običajno potrebujete naslednje korake, da dosežete *gibanje* na zaslonu:
1. **Nastavite novo lokacijo** za objekt; to je potrebno, da se zdi, da se je objekt premaknil.
-2. **Počistite zaslon**, saj ga je treba očistiti med posameznimi risanji. To lahko storimo tako, da narišemo pravokotnik, ki ga zapolnimo z barvo ozadja.
+2. **Počistite zaslon**, zaslon je treba počistiti med posameznimi risanji. To lahko storimo tako, da narišemo pravokotnik, ki ga zapolnimo z barvo ozadja.
3. **Ponovno narišite objekt** na novi lokaciji. S tem končno dosežemo premik objekta z ene lokacije na drugo.
Tako lahko to izgleda v kodi:
@@ -45,7 +45,7 @@ ctx.drawImage(heroImg, hero.x, hero.y);
Dogodke obdelujete tako, da določene dogodke povežete s kodo. Dogodki tipkovnice se sprožijo na celotnem oknu, medtem ko so dogodki miške, kot je `click`, lahko povezani s klikom na določen element. V tem projektu bomo uporabljali dogodke tipkovnice.
-Za obdelavo dogodka morate uporabiti metodo `addEventListener()` okna in ji posredovati dva vhodna parametra. Prvi parameter je ime dogodka, na primer `keyup`. Drugi parameter je funkcija, ki naj se izvede, ko se dogodek zgodi.
+Za obdelavo dogodka morate uporabiti metodo `addEventListener()` okna in ji podati dva vhodna parametra. Prvi parameter je ime dogodka, na primer `keyup`. Drugi parameter je funkcija, ki naj se izvede, ko se dogodek zgodi.
Tukaj je primer:
@@ -58,7 +58,7 @@ window.addEventListener('keyup', (evt) => {
})
```
-Za dogodke tipk obstajata dve lastnosti dogodka, ki ju lahko uporabite za ugotovitev, katera tipka je bila pritisnjena:
+Za dogodke tipk obstajata dve lastnosti dogodka, ki ju lahko uporabite za ugotavljanje, katera tipka je bila pritisnjena:
- `key`, to je nizovna predstavitev pritisnjene tipke, na primer `ArrowUp`.
- `keyCode`, to je številčna predstavitev, na primer `37`, kar ustreza `ArrowLeft`.
@@ -67,7 +67,7 @@ Za dogodke tipk obstajata dve lastnosti dogodka, ki ju lahko uporabite za ugotov
### Posebne tipke: opozorilo
-Obstajajo nekatere *posebne* tipke, ki vplivajo na okno. To pomeni, da če poslušate dogodek `keyup` in uporabite te posebne tipke za premikanje junaka, bo to povzročilo tudi horizontalno pomikanje. Zaradi tega boste morda želeli *izklopiti* to privzeto vedenje brskalnika med razvojem igre. Potrebujete kodo, kot je ta:
+Obstajajo nekatere *posebne* tipke, ki vplivajo na okno. To pomeni, da če poslušate dogodek `keyup` in uporabite te posebne tipke za premikanje junaka, bo to povzročilo tudi horizontalno pomikanje. Zaradi tega boste morda želeli *izklopiti* to privzeto vedenje brskalnika, ko gradite svojo igro. Potrebujete kodo, kot je ta:
```javascript
let onKeyDown = function (e) {
@@ -103,7 +103,7 @@ let id = setInterval(() => {
## Igralna zanka
-Igralna zanka je koncept, ki je v bistvu funkcija, ki se izvaja v rednih intervalih. Imenuje se igralna zanka, ker se v njej nariše vse, kar naj bi bilo vidno uporabniku. Igralna zanka uporablja vse igralne objekte, ki so del igre, in jih nariše, razen če iz kakšnega razloga ne bi smeli biti več del igre. Na primer, če je objekt sovražnik, ki ga je zadela laserska žarka in eksplodira, ni več del trenutne igralne zanke (o tem boste izvedeli več v naslednjih lekcijah).
+Igralna zanka je koncept, ki je v bistvu funkcija, ki se izvaja v rednih intervalih. Imenuje se igralna zanka, ker se v njej nariše vse, kar naj bo vidno uporabniku. Igralna zanka uporablja vse igralne objekte, ki so del igre, in jih nariše, razen če iz kakšnega razloga ne bi smeli biti več del igre. Na primer, če je objekt sovražnik, ki ga je zadela laserska žarka in eksplodira, ni več del trenutne igralne zanke (o tem boste izvedeli več v naslednjih lekcijah).
Tako lahko igralna zanka običajno izgleda, izražena v kodi:
@@ -125,8 +125,8 @@ Zgornja zanka se izvaja vsakih `200` milisekund za ponovno risanje platna. Sami
Obstoječo kodo boste razširili. Lahko začnete s kodo, ki ste jo dokončali v prvem delu, ali uporabite kodo iz [2. dela - začetna koda](../../../../6-space-game/3-moving-elements-around/your-work).
-- **Premikanje junaka**: dodali boste kodo, da boste lahko junaka premikali s puščičnimi tipkami.
-- **Premikanje sovražnikov**: prav tako boste morali dodati kodo, da se bodo sovražniki premikali od zgoraj navzdol z določeno hitrostjo.
+- **Premikanje junaka**: dodali boste kodo, ki omogoča premikanje junaka s puščičnimi tipkami.
+- **Premikanje sovražnikov**: dodali boste tudi kodo, ki omogoča premikanje sovražnikov od zgoraj navzdol z določeno hitrostjo.
## Priporočeni koraki
@@ -148,13 +148,13 @@ cd your-work
npm start
```
-Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprite brskalnik in vnesite ta naslov; trenutno bi moral prikazati junaka in vse sovražnike, vendar se še nič ne premika!
+Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprite brskalnik in vnesite ta naslov. Trenutno bi morali videti junaka in vse sovražnike; nič se še ne premika!
### Dodajte kodo
1. **Dodajte namenski objekt** za `hero`, `enemy` in `game object`, ki naj imajo lastnosti `x` in `y`. (Spomnite se dela o [Dedovanju ali kompoziciji](../README.md)).
- *NAMIG*: `game object` naj bo tisti, ki ima lastnosti `x` in `y` ter sposobnost, da se nariše na platno.
+ *NAMIG*: `game object` naj bo tisti z lastnostma `x` in `y` ter zmožnostjo, da se nariše na platno.
>nasvet: začnite z dodajanjem novega razreda GameObject s konstruktorjem, kot je spodaj, in ga nato narišite na platno:
@@ -205,9 +205,9 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
}
```
-2. **Dodajte obdelovalce dogodkov tipk** za navigacijo (premikanje junaka gor/dol, levo/desno).
+2. **Dodajte obdelovalce dogodkov tipk**, da omogočite navigacijo s tipkami (premikanje junaka gor/dol, levo/desno).
- *SPOMNITE SE*: gre za kartezični sistem, zgornji levi kot je `0,0`. Prav tako ne pozabite dodati kode za zaustavitev *privzetega vedenja*.
+ *SPOMNITE SE*: gre za kartezični sistem, zgoraj levo je `0,0`. Prav tako ne pozabite dodati kode za zaustavitev *privzetega vedenja*.
>nasvet: ustvarite svojo funkcijo onKeyDown in jo povežite z oknom:
@@ -223,7 +223,7 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
Na tej točki preverite konzolo brskalnika in opazujte, kako se beležijo pritiski tipk.
-3. **Implementirajte** [vzorec Pub-Sub](../README.md), da bo vaša koda ostala čista, ko boste nadaljevali z naslednjimi deli.
+3. **Implementirajte** [Vzorec Pub-Sub](../README.md), da bo vaša koda ostala čista, ko boste sledili preostalim delom.
Za izvedbo tega zadnjega dela lahko:
@@ -243,7 +243,7 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
});
```
- 1. **Ustvarite razred EventEmitter** za objavljanje in naročanje na sporočila:
+ 1. **Ustvarite razred EventEmitter**, da objavljate in naročate sporočila:
```javascript
class EventEmitter {
@@ -313,7 +313,7 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
1. **Nastavite igralno zanko**
- Preoblikujte funkcijo window.onload, da inicializira igro in nastavi igralno zanko z ustreznim intervalom. Prav tako boste dodali laserski žarek:
+ Preoblikujte funkcijo window.onload, da inicializira igro in nastavi igralno zanko na ustrezen interval. Dodali boste tudi laserski žarek:
```javascript
window.onload = async () => {
@@ -334,7 +334,7 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
};
```
-5. **Dodajte kodo** za premikanje sovražnikov v določenih intervalih.
+5. **Dodajte kodo** za premikanje sovražnikov v določenih intervalih
Preoblikujte funkcijo `createEnemies()`, da ustvari sovražnike in jih doda v nov razred gameObjects:
@@ -382,15 +382,15 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
## 🚀 Izziv
-Kot lahko vidite, se vaša koda lahko spremeni v 'špagetno kodo', ko začnete dodajati funkcije, spremenljivke in razrede. Kako lahko bolje organizirate svojo kodo, da bo bolj berljiva? Narišite sistem za organizacijo kode, tudi če še vedno ostane v eni datoteki.
+Kot lahko vidite, se vaša koda lahko spremeni v 'špagetno kodo', ko začnete dodajati funkcije, spremenljivke in razrede. Kako lahko bolje organizirate svojo kodo, da bo bolj berljiva? Narišite sistem za organizacijo svoje kode, tudi če še vedno ostane v eni datoteki.
-## Zaključni kviz
+## Po-predavanje kviz
-[Zaključni kviz](https://ff-quizzes.netlify.app/web/quiz/34)
+[Po-predavanje kviz](https://ff-quizzes.netlify.app/web/quiz/34)
## Pregled in samostojno učenje
-Čeprav svojo igro pišemo brez uporabe ogrodij, obstaja veliko ogrodij za razvoj iger na osnovi JavaScripta in platna. Vzemite si čas za [branje o teh](https://github.com/collections/javascript-game-engines).
+Čeprav svojo igro pišemo brez uporabe ogrodij, obstaja veliko ogrodij za razvoj iger na osnovi JavaScript platna. Vzemite si čas za [branje o teh](https://github.com/collections/javascript-game-engines).
## Naloga
@@ -399,4 +399,4 @@ Kot lahko vidite, se vaša koda lahko spremeni v 'špagetno kodo', ko začnete d
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna napačna razumevanja ali napačne interpretacije, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/6-space-game/4-collision-detection/README.md b/translations/sl/6-space-game/4-collision-detection/README.md
index fce0c84d..589cabf6 100644
--- a/translations/sl/6-space-game/4-collision-detection/README.md
+++ b/translations/sl/6-space-game/4-collision-detection/README.md
@@ -1,36 +1,36 @@
-# Ustvari vesoljsko igro, 4. del: Dodajanje laserja in zaznavanje trkov
+# Zgradite vesoljsko igro, 4. del: Dodajanje laserja in zaznavanje trkov
-## Predhodni kviz
+## Kviz pred predavanjem
-[Predhodni kviz](https://ff-quizzes.netlify.app/web/quiz/35)
+[Kviz pred predavanjem](https://ff-quizzes.netlify.app/web/quiz/35)
V tej lekciji se boste naučili, kako streljati laserje z JavaScriptom! V igro bomo dodali dve stvari:
-- **Laser**: ta laser se izstreli iz ladje junaka in leti navpično navzgor
-- **Zaznavanje trkov**, kot del implementacije streljanja bomo dodali tudi nekaj pravil igre:
+- **Laser**: laser, ki ga izstreli ladja vašega junaka in se premika navpično navzgor
+- **Zaznavanje trkov**, kot del implementacije sposobnosti *streljanja* bomo dodali nekaj pravil igre:
- **Laser zadene sovražnika**: Sovražnik umre, če ga zadene laser
- **Laser zadene zgornji del zaslona**: Laser se uniči, če zadene zgornji del zaslona
- - **Trk sovražnika in junaka**: Sovražnik in junak se uničita, če trčita drug v drugega
+ - **Trk med sovražnikom in junakom**: Sovražnik in junak se uničita, če trčita drug v drugega
- **Sovražnik zadene spodnji del zaslona**: Sovražnik in junak se uničita, če sovražnik doseže spodnji del zaslona
-Skratka, vi -- *junak* -- morate zadeti vse sovražnike z laserjem, preden se ti premaknejo na dno zaslona.
+Na kratko, vi -- *junak* -- morate zadeti vse sovražnike z laserjem, preden se premaknejo na spodnji del zaslona.
-✅ Naredite malo raziskave o prvi računalniški igri, ki je bila kdaj napisana. Kakšna je bila njena funkcionalnost?
+✅ Raziskujte o prvi računalniški igri, ki je bila kdaj napisana. Kakšna je bila njena funkcionalnost?
Bodimo junaki skupaj!
## Zaznavanje trkov
-Kako zaznamo trke? Na naše igralne objekte moramo gledati kot na pravokotnike, ki se premikajo. Zakaj, se morda sprašujete? No, slika, ki jo uporabimo za risanje igralnega objekta, je pravokotnik: ima `x`, `y`, `širino` in `višino`.
+Kako zaznamo trke? Na naše igralne objekte moramo gledati kot na pravokotnike, ki se premikajo. Zakaj, se morda sprašujete? No, slika, ki jo uporabljamo za risanje igralnega objekta, je pravokotnik: ima `x`, `y`, `širino` in `višino`.
Če se dva pravokotnika, npr. junak in sovražnik, *prekrivata*, imamo trk. Kaj se zgodi potem, je odvisno od pravil igre. Za implementacijo zaznavanja trkov potrebujete naslednje:
@@ -47,7 +47,7 @@ Kako zaznamo trke? Na naše igralne objekte moramo gledati kot na pravokotnike,
}
```
-2. Funkcijo za primerjavo, ki lahko izgleda takole:
+2. Primerjalno funkcijo, ki lahko izgleda takole:
```javascript
function intersectRect(r1, r2) {
@@ -60,7 +60,7 @@ Kako zaznamo trke? Na naše igralne objekte moramo gledati kot na pravokotnike,
## Kako uničimo stvari
-Za uničenje stvari v igri morate igri sporočiti, da tega predmeta ne sme več risati v zanki igre, ki se sproži v določenem intervalu. To lahko storite tako, da označite igralni objekt kot *mrtev*, ko se nekaj zgodi, na primer:
+Za uničenje stvari v igri morate igri sporočiti, da določenega predmeta ne sme več risati v zanki igre, ki se sproži v določenem intervalu. To lahko storite tako, da označite igralni objekt kot *mrtvega*, ko se zgodi nekaj, na primer:
```javascript
// collision happened
@@ -77,13 +77,13 @@ gameObjects = gameObject.filter(go => !go.dead);
Izstrelitev laserja pomeni odziv na dogodek pritiska tipke in ustvarjanje objekta, ki se premika v določeni smeri. Zato moramo izvesti naslednje korake:
-1. **Ustvarite objekt laserja**: iz vrha ladje junaka, ki se ob ustvarjanju začne premikati navzgor proti vrhu zaslona.
-2. **Povežite kodo z dogodkom pritiska tipke**: izberemo tipko na tipkovnici, ki predstavlja streljanje laserja.
+1. **Ustvarite objekt laserja**: iz vrha ladje našega junaka, ki se ob ustvarjanju začne premikati navzgor proti vrhu zaslona.
+2. **Pripnite kodo na dogodek tipke**: izberemo tipko na tipkovnici, ki predstavlja igralčevo streljanje laserja.
3. **Ustvarite igralni objekt, ki izgleda kot laser**, ko je tipka pritisnjena.
## Časovna omejitev za laser
-Laser se mora sprožiti vsakič, ko pritisnete tipko, na primer *preslednico*. Da preprečimo, da bi igra v kratkem času ustvarila preveč laserjev, moramo to popraviti. Popravek izvedemo z implementacijo tako imenovane *časovne omejitve*, časovnika, ki zagotavlja, da se laser lahko sproži le v določenih intervalih. To lahko implementirate na naslednji način:
+Laser mora biti izstreljen vsakič, ko pritisnete tipko, na primer *preslednico*. Da preprečimo, da bi igra v kratkem času ustvarila preveč laserjev, moramo to popraviti. Popravek je izveden z implementacijo tako imenovane *časovne omejitve*, časovnika, ki zagotavlja, da se laser lahko izstreli le ob določenih intervalih. To lahko implementirate na naslednji način:
```javascript
class Cooldown {
@@ -113,14 +113,14 @@ class Weapon {
## Kaj bomo zgradili
-Vzemite obstoječo kodo (ki ste jo morali očistiti in preoblikovati) iz prejšnje lekcije in jo razširite. Lahko začnete s kodo iz drugega dela ali uporabite kodo iz [3. dela - začetna koda](../../../../../../../../../your-work).
+Vzemite obstoječo kodo (ki ste jo morali očistiti in preoblikovati) iz prejšnje lekcije in jo razširite. Lahko začnete s kodo iz 2. dela ali uporabite kodo iz [3. dela - začetna koda](../../../../../../../../../your-work).
-> nasvet: laser, s katerim boste delali, je že v vaši mapi z viri in je referenciran v vaši kodi
+> nasvet: laser, s katerim boste delali, je že v vaši mapi z viri in ga koda že referencira
-- **Dodajte zaznavanje trkov**, ko laser trči z nečim, naj veljajo naslednja pravila:
+- **Dodajte zaznavanje trkov**, ko laser trči v nekaj, naj veljajo naslednja pravila:
1. **Laser zadene sovražnika**: sovražnik umre, če ga zadene laser
2. **Laser zadene zgornji del zaslona**: laser se uniči, če zadene zgornji del zaslona
- 3. **Trk sovražnika in junaka**: sovražnik in junak se uničita, če trčita drug v drugega
+ 3. **Trk med sovražnikom in junakom**: sovražnik in junak se uničita, če trčita drug v drugega
4. **Sovražnik zadene spodnji del zaslona**: sovražnik in junak se uničita, če sovražnik doseže spodnji del zaslona
## Priporočeni koraki
@@ -137,18 +137,18 @@ Poiščite datoteke, ki so bile ustvarjene za vas v podmapi `your-work`. Vsebuje
-| package.json
```
-Svoj projekt začnete v mapi `your_work` z vnosom:
+Projekt začnete v mapi `your_work` tako, da vnesete:
```bash
cd your-work
npm start
```
-Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprite brskalnik in vnesite ta naslov. Trenutno bi morali videti junaka in vse sovražnike, vendar se še nič ne premika :).
+Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprite brskalnik in vnesite ta naslov, trenutno bi moral prikazati junaka in vse sovražnike, nič se še ne premika :).
### Dodajte kodo
-1. **Nastavite pravokotno predstavitev svojega igralnega objekta za obravnavo trkov**. Spodnja koda omogoča pridobitev pravokotne predstavitve `GameObject`. Uredite svoj razred GameObject, da ga razširite:
+1. **Nastavite pravokotno predstavitev vašega igralnega objekta za zaznavanje trkov** Spodnja koda omogoča pridobitev pravokotne predstavitve `GameObject`. Uredite razred GameObject, da ga razširite:
```javascript
rectFromGameObject() {
@@ -161,7 +161,7 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
}
```
-2. **Dodajte kodo za preverjanje trkov**. To bo nova funkcija, ki preverja, ali se dva pravokotnika prekrivata:
+2. **Dodajte kodo za preverjanje trkov** To bo nova funkcija, ki preverja, ali se dva pravokotnika prekrivata:
```javascript
function intersectRect(r1, r2) {
@@ -174,8 +174,8 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
}
```
-3. **Dodajte možnost streljanja laserja**
- 1. **Dodajte sporočilo za dogodek pritiska tipke**. Tipka *preslednica* naj ustvari laser tik nad ladjo junaka. Dodajte tri konstante v objekt Messages:
+3. **Dodajte sposobnost streljanja laserja**
+ 1. **Dodajte sporočilo za dogodek tipke**. Tipka *preslednica* naj ustvari laser tik nad ladjo junaka. Dodajte tri konstante v objekt Messages:
```javascript
KEY_EVENT_SPACE: "KEY_EVENT_SPACE",
@@ -183,7 +183,7 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
COLLISION_ENEMY_HERO: "COLLISION_ENEMY_HERO",
```
- 1. **Obravnavajte tipko preslednica**. Uredite funkcijo `window.addEventListener` za dogodek `keyup`, da obravnava preslednico:
+ 1. **Obdelajte tipko preslednica**. Uredite funkcijo `window.addEventListener` za dogodek `keyup`, da obdelate preslednico:
```javascript
} else if(evt.keyCode === 32) {
@@ -209,7 +209,7 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
})
```
- 1. **Premikajte objekt**, zagotovite, da se laser postopoma premika proti vrhu zaslona. Ustvarili boste nov razred Laser, ki razširja `GameObject`, kot ste to storili prej:
+ 1. **Premik objekta**, Poskrbite, da se laser postopoma premika proti vrhu zaslona. Ustvarili boste nov razred Laser, ki razširja `GameObject`, kot ste to že storili prej:
```javascript
class Laser extends GameObject {
@@ -230,7 +230,7 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
}
```
- 1. **Obravnavajte trke**, implementirajte pravila trkov za laser. Dodajte funkcijo `updateGameObjects()`, ki preverja trke med objekti:
+ 1. **Obdelajte trke**, Implementirajte pravila trkov za laser. Dodajte funkcijo `updateGameObjects()`, ki preverja trke med objekti:
```javascript
function updateGameObjects() {
@@ -252,9 +252,9 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
}
```
- Poskrbite, da dodate `updateGameObjects()` v svojo zanko igre v `window.onload`.
+ Poskrbite, da dodate `updateGameObjects()` v zanko igre v `window.onload`.
- 4. **Implementirajte časovno omejitev** za laser, da se lahko sproži le v določenih intervalih.
+ 4. **Implementirajte časovno omejitev** za laser, da se lahko izstreli le ob določenih intervalih.
Na koncu uredite razred Hero, da omogočite časovno omejitev:
@@ -285,21 +285,21 @@ Zgornji ukaz bo zagnal HTTP strežnik na naslovu `http://localhost:5000`. Odprit
}
```
-Na tej točki ima vaša igra nekaj funkcionalnosti! Premikate se lahko s puščičnimi tipkami, streljate laser s preslednico, in sovražniki izginejo, ko jih zadete. Odlično opravljeno!
+Na tej točki ima vaša igra nekaj funkcionalnosti! Lahko se premikate s puščičnimi tipkami, streljate laser s preslednico, in sovražniki izginejo, ko jih zadete. Odlično opravljeno!
---
## 🚀 Izziv
-Dodajte eksplozijo! Oglejte si vire igre v [repozitoriju Space Art](../../../../6-space-game/solution/spaceArt/readme.txt) in poskusite dodati eksplozijo, ko laser zadene tujca.
+Dodajte eksplozijo! Oglejte si igralne vire v [repozitoriju Space Art](../../../../6-space-game/solution/spaceArt/readme.txt) in poskusite dodati eksplozijo, ko laser zadene vesoljca.
-## Zaključni kviz
+## Kviz po predavanju
-[Zaključni kviz](https://ff-quizzes.netlify.app/web/quiz/36)
+[Kviz po predavanju](https://ff-quizzes.netlify.app/web/quiz/36)
## Pregled in samostojno učenje
-Eksperimentirajte z intervali v svoji igri do zdaj. Kaj se zgodi, ko jih spremenite? Preberite več o [časovnih dogodkih v JavaScriptu](https://www.freecodecamp.org/news/javascript-timing-events-settimeout-and-setinterval/).
+Eksperimentirajte z intervali v vaši igri do sedaj. Kaj se zgodi, ko jih spremenite? Preberite več o [časovnih dogodkih v JavaScriptu](https://www.freecodecamp.org/news/javascript-timing-events-settimeout-and-setinterval/).
## Naloga
@@ -308,4 +308,4 @@ Eksperimentirajte z intervali v svoji igri do zdaj. Kaj se zgodi, ko jih spremen
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazume ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna napačna razumevanja ali napačne interpretacije, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/6-space-game/5-keeping-score/README.md b/translations/sl/6-space-game/5-keeping-score/README.md
index 4784ff44..29944528 100644
--- a/translations/sl/6-space-game/5-keeping-score/README.md
+++ b/translations/sl/6-space-game/5-keeping-score/README.md
@@ -1,8 +1,8 @@
`.
+> Nasvet: Če želite videti, kako bo izgledala HTML predloga, lahko vrstice `
` in ` ` zakomentirate z uporabo ``.
-✅ Zakaj menite, da uporabljamo `id` atribute na predlogah? Ali bi lahko uporabili kaj drugega, kot so razredi?
+✅ Zakaj menite, da uporabljamo `id` atribut na predlogah? Ali bi lahko uporabili kaj drugega, kot so razredi?
## Prikazovanje predlog z JavaScriptom
-Če poskusite trenutno HTML datoteko v brskalniku, boste videli, da ostane prikazano sporočilo `Loading...`. To je zato, ker moramo dodati nekaj JavaScript kode za ustvarjanje in prikaz HTML predlog.
+Če poskusite trenutno HTML datoteko v brskalniku, boste videli, da ostane na `Loading...`. To je zato, ker moramo dodati nekaj JavaScript kode za obdelavo in prikaz HTML predlog.
-Ustvarjanje predloge običajno poteka v 3 korakih:
+Obdelava predloge običajno poteka v 3 korakih:
-1. Pridobitev elementa predloge v DOM-u, na primer z uporabo [`document.getElementById`](https://developer.mozilla.org/docs/Web/API/Document/getElementById).
+1. Pridobitev elementa predloge v DOM-u, na primer z [`document.getElementById`](https://developer.mozilla.org/docs/Web/API/Document/getElementById).
2. Kloniranje elementa predloge z uporabo [`cloneNode`](https://developer.mozilla.org/docs/Web/API/Node/cloneNode).
-3. Priključitev na DOM pod vidnim elementom, na primer z uporabo [`appendChild`](https://developer.mozilla.org/docs/Web/API/Node/appendChild).
+3. Priključitev na DOM pod vidnim elementom, na primer z [`appendChild`](https://developer.mozilla.org/docs/Web/API/Node/appendChild).
✅ Zakaj moramo klonirati predlogo, preden jo priključimo na DOM? Kaj mislite, da bi se zgodilo, če bi ta korak preskočili?
@@ -142,7 +142,7 @@ function updateRoute(templateId) {
}
```
-Tukaj izvajamo točno 3 korake, opisane zgoraj. Ustvarimo predlogo z `id` atributom `templateId` in njeno klonirano vsebino postavimo v naš element za aplikacijo. Upoštevajte, da moramo uporabiti `cloneNode(true)`, da kopiramo celotno drevesno strukturo predloge.
+Tukaj izvajamo točno 3 korake, opisane zgoraj. Obdelamo predlogo z `id`-jem `templateId` in njeno klonirano vsebino postavimo v naš element za aplikacijo. Upoštevajte, da moramo uporabiti `cloneNode(true)`, da kopiramo celotno drevo predloge.
Zdaj pokličite to funkcijo z eno od predlog in si oglejte rezultat.
@@ -154,7 +154,7 @@ updateRoute('login');
## Ustvarjanje poti
-Ko govorimo o spletni aplikaciji, imenujemo *usmerjanje* namen mapiranja **URL-jev** na določene zaslone, ki naj bi bili prikazani. Na spletni strani z več HTML datotekami se to izvaja samodejno, saj se poti datotek odražajo v URL-ju. Na primer, z naslednjimi datotekami v vaši projektni mapi:
+Ko govorimo o spletni aplikaciji, imenujemo *usmerjanje* namero za preslikavo **URL-jev** na določene zaslone, ki naj bi bili prikazani. Na spletni strani z več HTML datotekami se to zgodi samodejno, saj se poti datotek odražajo v URL-ju. Na primer, z naslednjimi datotekami v vaši projektni mapi:
```
mywebsite/index.html
@@ -162,7 +162,7 @@ mywebsite/login.html
mywebsite/admin/index.html
```
-Če ustvarite spletni strežnik z `mywebsite` kot korenom, bo mapiranje URL-jev naslednje:
+Če ustvarite spletni strežnik z `mywebsite` kot koren, bo preslikava URL-jev naslednja:
```
https://site.com --> mywebsite/index.html
@@ -170,11 +170,11 @@ https://site.com/login.html --> mywebsite/login.html
https://site.com/admin/ --> mywebsite/admin/index.html
```
-Vendar pa za našo spletno aplikacijo uporabljamo eno samo HTML datoteko, ki vsebuje vse zaslone, zato nam to privzeto vedenje ne bo pomagalo. To mapiranje moramo ustvariti ročno in posodobiti prikazano predlogo z uporabo JavaScripta.
+Vendar pa za našo spletno aplikacijo uporabljamo eno samo HTML datoteko, ki vsebuje vse zaslone, zato nam to privzeto vedenje ne bo pomagalo. To preslikavo moramo ustvariti ročno in posodobiti prikazano predlogo z uporabo JavaScripta.
### Naloga
-Uporabili bomo preprost objekt za implementacijo [zemljevida](https://en.wikipedia.org/wiki/Associative_array) med URL potmi in našimi predlogami. Dodajte ta objekt na vrh datoteke `app.js`.
+Uporabili bomo preprost objekt za implementacijo [preslikave](https://en.wikipedia.org/wiki/Associative_array) med URL potmi in našimi predlogami. Dodajte ta objekt na vrh svoje datoteke `app.js`.
```js
const routes = {
@@ -183,7 +183,7 @@ const routes = {
};
```
-Zdaj nekoliko spremenimo funkcijo `updateRoute`. Namesto da neposredno podamo `templateId` kot argument, ga želimo pridobiti tako, da najprej pogledamo trenutni URL, nato pa uporabimo naš zemljevid za pridobitev ustrezne vrednosti `templateId`. Uporabimo lahko [`window.location.pathname`](https://developer.mozilla.org/docs/Web/API/Location/pathname) za pridobitev samo dela poti iz URL-ja.
+Zdaj nekoliko spremenimo funkcijo `updateRoute`. Namesto da neposredno podamo `templateId` kot argument, ga želimo pridobiti tako, da najprej pogledamo trenutni URL, nato pa uporabimo našo preslikavo za pridobitev ustrezne vrednosti `templateId`. Uporabimo lahko [`window.location.pathname`](https://developer.mozilla.org/docs/Web/API/Location/pathname) za pridobitev samo dela poti iz URL-ja.
```js
function updateRoute() {
@@ -198,16 +198,16 @@ function updateRoute() {
}
```
-Tukaj smo mapirali poti, ki smo jih deklarirali, na ustrezne predloge. Preverite, ali deluje pravilno, tako da ročno spremenite URL v brskalniku.
+Tukaj smo preslikali poti, ki smo jih deklarirali, na ustrezne predloge. Preverite, ali deluje pravilno, tako da ročno spremenite URL v brskalniku.
✅ Kaj se zgodi, če vnesete neznano pot v URL? Kako bi to lahko rešili?
## Dodajanje navigacije
-Naslednji korak za našo aplikacijo je dodajanje možnosti za navigacijo med stranmi brez ročnega spreminjanja URL-ja. To vključuje dve stvari:
+Naslednji korak za našo aplikacijo je dodajanje možnosti za navigacijo med stranmi, ne da bi morali ročno spreminjati URL. To vključuje dve stvari:
-1. Posodabljanje trenutnega URL-ja
-2. Posodabljanje prikazane predloge glede na nov URL
+1. Posodobitev trenutnega URL-ja
+2. Posodobitev prikazane predloge glede na nov URL
Drugi del smo že obravnavali s funkcijo `updateRoute`, zato moramo ugotoviti, kako posodobiti trenutni URL.
@@ -253,7 +253,7 @@ function onLinkClick(event) {
}
```
-Dokončajmo navigacijski sistem z dodajanjem povezav za naše povezave *Prijava* in *Odjava* v HTML.
+Dokončajmo navigacijski sistem z dodajanjem povezav za naše *Prijava* in *Odjava* povezave v HTML-ju.
```html
Login
@@ -271,17 +271,17 @@ Poskusite klikniti te povezave, zdaj bi morali biti sposobni navigirati med razl
## Obvladovanje gumbov za nazaj in naprej v brskalniku
-Uporaba `history.pushState` ustvari nove vnose v zgodovini navigacije brskalnika. To lahko preverite tako, da držite *gumb za nazaj* v brskalniku, prikazati bi se moralo nekaj takega:
+Uporaba `history.pushState` ustvari nove vnose v zgodovini brskanja brskalnika. To lahko preverite tako, da držite *gumb za nazaj* v brskalniku, prikazati bi se moralo nekaj takega:

Če poskusite večkrat klikniti gumb za nazaj, boste videli, da se trenutni URL spremeni in zgodovina se posodobi, vendar se ista predloga še naprej prikazuje.
-To je zato, ker aplikacija ne ve, da moramo poklicati `updateRoute()` vsakič, ko se zgodovina spremeni. Če si ogledate [dokumentacijo za `history.pushState`](https://developer.mozilla.org/docs/Web/API/History/pushState), lahko vidite, da če se stanje spremeni - kar pomeni, da smo se premaknili na drug URL - se sproži dogodek [`popstate`](https://developer.mozilla.org/docs/Web/API/Window/popstate_event). To bomo uporabili za odpravo te težave.
+To je zato, ker aplikacija ne ve, da moramo poklicati `updateRoute()` vsakič, ko se zgodovina spremeni. Če si ogledate dokumentacijo [`history.pushState`](https://developer.mozilla.org/docs/Web/API/History/pushState), lahko vidite, da če se stanje spremeni - kar pomeni, da smo se premaknili na drug URL - se sproži dogodek [`popstate`](https://developer.mozilla.org/docs/Web/API/Window/popstate_event). To bomo uporabili za odpravo te težave.
### Naloga
-Da zagotovimo, da se prikazana predloga posodobi, ko se zgodovina brskalnika spremeni, bomo dodali novo funkcijo, ki kliče `updateRoute()`. To bomo storili na dnu datoteke `app.js`:
+Da zagotovimo, da se prikazana predloga posodobi, ko se zgodovina brskalnika spremeni, bomo dodali novo funkcijo, ki kliče `updateRoute()`. To bomo storili na dnu naše datoteke `app.js`:
```js
window.onpopstate = () => updateRoute();
@@ -296,7 +296,7 @@ Tukaj je osvežitveni video o puščičnih funkcijah:
> 🎥 Kliknite zgornjo sliko za video o puščičnih funkcijah.
-Zdaj poskusite uporabiti gumbe za nazaj in naprej v brskalniku ter preverite, ali se prikazana pot pravilno posodobi tokrat.
+Zdaj poskusite uporabiti gumbe za nazaj in naprej v brskalniku ter preverite, ali se prikazana pot tokrat pravilno posodobi.
---
@@ -304,13 +304,13 @@ Zdaj poskusite uporabiti gumbe za nazaj in naprej v brskalniku ter preverite, al
Dodajte novo predlogo in pot za tretjo stran, ki prikazuje zasluge za to aplikacijo.
-## Kviz po predavanju
+## Zaključni kviz
-[Kviz po predavanju](https://ff-quizzes.netlify.app/web/quiz/42)
+[Zaključni kviz](https://ff-quizzes.netlify.app/web/quiz/42)
## Pregled in samostojno učenje
-Usmerjanje je eden od presenetljivo zahtevnih delov spletnega razvoja, še posebej, ko se splet premika od vedenja osveževanja strani k osveževanju strani v aplikacijah z eno stranjo. Preberite nekaj o tem, [kako storitev Azure Static Web App](https://docs.microsoft.com/azure/static-web-apps/routes/?WT.mc_id=academic-77807-sagibbon) obravnava usmerjanje. Ali lahko razložite, zakaj so nekatere odločitve, opisane v tem dokumentu, potrebne?
+Usmerjanje je eden od presenetljivo zahtevnih delov spletnega razvoja, zlasti ko se splet premika od vedenja osveževanja strani k osveževanju strani v enostranskih aplikacijah. Preberite nekaj o tem, [kako storitev Azure Static Web App](https://docs.microsoft.com/azure/static-web-apps/routes/?WT.mc_id=academic-77807-sagibbon) obravnava usmerjanje. Ali lahko razložite, zakaj so nekatere odločitve, opisane v tem dokumentu, potrebne?
## Naloga
@@ -319,4 +319,4 @@ Usmerjanje je eden od presenetljivo zahtevnih delov spletnega razvoja, še poseb
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna napačna razumevanja ali napačne interpretacije, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za strojno prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da se zavedate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/7-bank-project/2-forms/README.md b/translations/sl/7-bank-project/2-forms/README.md
index f54fd7b5..c86d8adb 100644
--- a/translations/sl/7-bank-project/2-forms/README.md
+++ b/translations/sl/7-bank-project/2-forms/README.md
@@ -1,15 +1,15 @@
# Izdelava bančne aplikacije, 2. del: Prijavni in registracijski obrazec
-## Predhodni kviz pred predavanjem
+## Predhodni kviz
[Predhodni kviz](https://ff-quizzes.netlify.app/web/quiz/43)
@@ -51,11 +51,11 @@ Obstaja veliko različnih [tipov](https://developer.mozilla.org/docs/Web/HTML/El
Atribut `name` bo uporabljen kot ime lastnosti, ko bodo podatki obrazca poslani. Atribut `id` pa se uporablja za povezavo `
` z obrazcem.
-> Oglejte si celoten seznam [tipov ` `](https://developer.mozilla.org/docs/Web/HTML/Element/input) in [drugih kontrolnikov obrazca](https://developer.mozilla.org/docs/Learn/Forms/Other_form_controls), da dobite predstavo o vseh UI elementih, ki jih lahko uporabite pri gradnji uporabniškega vmesnika.
+> Oglejte si celoten seznam [tipov ` `](https://developer.mozilla.org/docs/Web/HTML/Element/input) in [drugih kontrolnikov obrazca](https://developer.mozilla.org/docs/Learn/Forms/Other_form_controls), da dobite predstavo o vseh vgrajenih UI elementih, ki jih lahko uporabite pri gradnji svojega vmesnika.
-✅ Upoštevajte, da je ` ` [prazni element](https://developer.mozilla.org/docs/Glossary/Empty_element), ki mu *ne* smete dodati ustrezne zapiralne oznake. Lahko pa uporabite samozapiralno oznako ` `, vendar to ni obvezno.
+✅ Upoštevajte, da je ` ` [prazni element](https://developer.mozilla.org/docs/Glossary/Empty_element), pri katerem *ne* smete dodati ustrezne zapiralne oznake. Lahko pa uporabite samozapiralno oznako ` `, vendar to ni obvezno.
-Element `` znotraj obrazca je nekoliko poseben. Če ne določite atributa `type`, bo samodejno poslal podatke obrazca strežniku, ko ga pritisnete. Tukaj so možne vrednosti atributa `type`:
+Element `` znotraj obrazca je nekoliko poseben. Če ne določite atributa `type`, bo samodejno poslal podatke obrazca na strežnik, ko ga pritisnete. Tukaj so možne vrednosti atributa `type`:
- `submit`: Privzeto znotraj ``, gumb sproži dejanje pošiljanja obrazca.
- `reset`: Gumb ponastavi vse kontrolnike obrazca na njihove začetne vrednosti.
@@ -81,12 +81,12 @@ Začnimo z dodajanjem obrazca v predlogo `login`. Potrebovali bomo polje za *upo
Če si podrobneje ogledate, lahko opazite, da smo tukaj dodali tudi element ``. Elementi `` se uporabljajo za dodajanje imena UI kontrolnikom, kot je naše polje za uporabniško ime. Oznake so pomembne za berljivost obrazcev, poleg tega pa prinašajo dodatne koristi:
-- Povezava oznake z kontrolnikom obrazca pomaga uporabnikom, ki uporabljajo pripomočke za dostopnost (npr. bralnik zaslona), da razumejo, katere podatke morajo vnesti.
+- Z asociacijo oznake z obrazcem pomagajo uporabnikom, ki uporabljajo pripomočke za dostop (npr. bralnik zaslona), da razumejo, katere podatke morajo vnesti.
- Klik na oznako neposredno postavi fokus na povezano polje, kar olajša dostop na napravah z zaslonom na dotik.
> [Dostopnost](https://developer.mozilla.org/docs/Learn/Accessibility/What_is_accessibility) na spletu je zelo pomembna tema, ki je pogosto spregledana. Zahvaljujoč [semantičnim HTML elementom](https://developer.mozilla.org/docs/Learn/Accessibility/HTML) ni težko ustvariti dostopne vsebine, če jih pravilno uporabljate. Več o dostopnosti lahko preberete [tukaj](https://developer.mozilla.org/docs/Web/Accessibility), da se izognete pogostim napakam in postanete odgovoren razvijalec.
-Zdaj bomo dodali drugi obrazec za registracijo, takoj pod prejšnjim:
+Sedaj bomo dodali drugi obrazec za registracijo, tik pod prejšnjim:
```html
@@ -109,21 +109,21 @@ Opazite tudi, da ima polje za `balance` tip `number`. Ali izgleda drugače kot o
✅ Ali lahko obrazce uporabljate in se po njih premikate samo s tipkovnico? Kako bi to storili?
-## Pošiljanje podatkov strežniku
+## Pošiljanje podatkov na strežnik
-Zdaj, ko imamo funkcionalni UI, je naslednji korak pošiljanje podatkov strežniku. Naredimo hiter test z našo trenutno kodo: kaj se zgodi, če kliknete na gumb *Prijava* ali *Registracija*?
+Sedaj, ko imamo funkcionalni UI, je naslednji korak pošiljanje podatkov na strežnik. Naredimo hiter test z našo trenutno kodo: kaj se zgodi, če kliknete na gumb *Prijava* ali *Registracija*?
Ste opazili spremembo v URL-ju vašega brskalnika?

-Privzeto dejanje za `` je pošiljanje obrazca na trenutni URL strežnika z uporabo [GET metode](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3), pri čemer se podatki obrazca dodajo neposredno v URL. Ta metoda ima nekaj pomanjkljivosti:
+Privzeto dejanje za ` ` je pošiljanje obrazca na trenutni URL strežnika z uporabo [GET metode](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3), pri čemer se podatki obrazca neposredno dodajo URL-ju. Ta metoda ima nekaj pomanjkljivosti:
- Poslani podatki so zelo omejeni po velikosti (približno 2000 znakov)
- Podatki so neposredno vidni v URL-ju (ni idealno za gesla)
- Ne deluje z nalaganjem datotek
-Zato lahko spremenite metodo na [POST](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5), ki pošlje podatke obrazca strežniku v telo HTTP zahteve, brez prejšnjih omejitev.
+Zato lahko spremenite metodo na [POST](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5), ki pošlje podatke obrazca na strežnik v telesu HTTP zahteve, brez prejšnjih omejitev.
> Čeprav je POST najpogosteje uporabljena metoda za pošiljanje podatkov, je [v nekaterih specifičnih scenarijih](https://www.w3.org/2001/tag/doc/whenToUseGet.html) bolje uporabiti metodo GET, na primer pri implementaciji iskalnega polja.
@@ -135,9 +135,9 @@ Dodajte lastnosti `action` in `method` obrazcu za registracijo:
```
-Zdaj poskusite registrirati nov račun z vašim imenom. Po kliku na gumb *Registracija* bi morali videti nekaj takega:
+Sedaj poskusite registrirati nov račun z vašim imenom. Po kliku na gumb *Registracija* bi morali videti nekaj takega:
-
+
Če gre vse po načrtih, bi moral strežnik odgovoriti na vašo zahtevo z [JSON](https://www.json.org/json-en.html) odzivom, ki vsebuje podatke o ustvarjenem računu.
@@ -147,11 +147,11 @@ Zdaj poskusite registrirati nov račun z vašim imenom. Po kliku na gumb *Regist
Kot ste verjetno opazili, je pri pristopu, ki smo ga pravkar uporabili, majhna težava: ob pošiljanju obrazca zapustimo našo aplikacijo in brskalnik preusmeri na URL strežnika. Poskušamo se izogniti vsem osvežitvam strani v naši spletni aplikaciji, saj izdelujemo [enostransko aplikacijo (SPA)](https://en.wikipedia.org/wiki/Single-page_application).
-Za pošiljanje podatkov obrazca strežniku brez prisilnega osveževanja strani moramo uporabiti JavaScript kodo. Namesto da v lastnost `action` elementa ` ` vnesete URL, lahko uporabite katero koli JavaScript kodo, ki ji predhodite z nizom `javascript:`, da izvedete prilagojeno dejanje. Uporaba tega pomeni tudi, da boste morali sami implementirati nekatere naloge, ki jih je prej samodejno opravil brskalnik:
+Da pošljemo podatke obrazca na strežnik brez prisilnega osveževanja strani, moramo uporabiti JavaScript kodo. Namesto da v lastnost `action` elementa ` ` vnesemo URL, lahko uporabimo katerokoli JavaScript kodo, ki ji predhodimo z nizom `javascript:`, da izvedemo prilagojeno dejanje. Uporaba tega pomeni, da boste morali sami implementirati nekatere naloge, ki jih je prej samodejno opravil brskalnik:
- Pridobitev podatkov obrazca
- Pretvorba in kodiranje podatkov obrazca v ustrezen format
-- Ustvarjanje HTTP zahteve in pošiljanje strežniku
+- Ustvarjanje HTTP zahteve in pošiljanje na strežnik
### Naloga
@@ -172,9 +172,9 @@ function register() {
}
```
-Tukaj pridobimo element obrazca z uporabo `getElementById()` in uporabimo pripomoček [`FormData`](https://developer.mozilla.org/docs/Web/API/FormData) za pridobitev vrednosti iz kontrolnikov obrazca kot niz ključ/vrednost. Nato podatke pretvorimo v običajen objekt z [`Object.fromEntries()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries) in jih na koncu serializiramo v [JSON](https://www.json.org/json-en.html), format, ki se pogosto uporablja za izmenjavo podatkov na spletu.
+Tukaj pridobimo element obrazca z uporabo `getElementById()` in uporabimo pripomoček [`FormData`](https://developer.mozilla.org/docs/Web/API/FormData) za pridobitev vrednosti iz kontrolnikov obrazca kot nabor ključ/vrednost parov. Nato podatke pretvorimo v običajen objekt z uporabo [`Object.fromEntries()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries) in jih na koncu serializiramo v [JSON](https://www.json.org/json-en.html), format, ki se pogosto uporablja za izmenjavo podatkov na spletu.
-Podatki so zdaj pripravljeni za pošiljanje strežniku. Ustvarite novo funkcijo z imenom `createAccount`:
+Podatki so sedaj pripravljeni za pošiljanje na strežnik. Ustvarite novo funkcijo z imenom `createAccount`:
```js
async function createAccount(account) {
@@ -191,7 +191,7 @@ async function createAccount(account) {
}
```
-Kaj počne ta funkcija? Najprej opazite ključni besedi `async`. To pomeni, da funkcija vsebuje kodo, ki se bo izvajala [**asinhrono**](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function). Ko jo uporabimo skupaj s ključnimi besedami `await`, omogoča čakanje na izvajanje asinhrone kode - na primer čakanje na odgovor strežnika - preden nadaljujemo.
+Kaj počne ta funkcija? Najprej opazite ključni besedi `async` tukaj. To pomeni, da funkcija vsebuje kodo, ki se bo izvajala [**asinhrono**](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/async_function). Ko jo uporabimo skupaj s ključnimi besedami `await`, omogoča čakanje na izvajanje asinhrone kode - na primer čakanje na odgovor strežnika - preden nadaljujemo.
Tukaj je kratek video o uporabi `async/await`:
@@ -199,14 +199,14 @@ Tukaj je kratek video o uporabi `async/await`:
> 🎥 Kliknite zgornjo sliko za video o async/await.
-Uporabimo API `fetch()` za pošiljanje JSON podatkov strežniku. Ta metoda sprejme 2 parametra:
+Uporabimo API `fetch()` za pošiljanje JSON podatkov na strežnik. Ta metoda sprejme 2 parametra:
- URL strežnika, zato tukaj ponovno vnesemo `//localhost:5000/api/accounts`.
-- Nastavitve zahteve. Tukaj nastavimo metodo na `POST` in zagotovimo `body` zahteve. Ker pošiljamo JSON podatke strežniku, moramo nastaviti tudi glavo `Content-Type` na `application/json`, da strežnik ve, kako interpretirati vsebino.
+- Nastavitve zahteve. Tukaj nastavimo metodo na `POST` in zagotovimo `body` za zahtevo. Ker pošiljamo JSON podatke na strežnik, moramo nastaviti tudi glavo `Content-Type` na `application/json`, da strežnik ve, kako interpretirati vsebino.
-Ker bo strežnik odgovoril na zahtevo z JSON, lahko uporabimo `await response.json()` za razčlenitev JSON vsebine in vrnitev rezultirajočega objekta. Upoštevajte, da je ta metoda asinhrona, zato tukaj uporabimo ključni besedi `await`, da zagotovimo, da se morebitne napake med razčlenitvijo ujamejo.
+Ker bo strežnik odgovoril na zahtevo z JSON, lahko uporabimo `await response.json()` za razčlenitev JSON vsebine in vrnitev rezultirajočega objekta. Upoštevajte, da je ta metoda asinhrona, zato tukaj uporabimo ključni besedi `await`, da zagotovimo, da so morebitne napake med razčlenitvijo tudi zajete.
-Zdaj dodajte nekaj kode funkciji `register`, da pokliče `createAccount()`:
+Sedaj dodajte nekaj kode v funkcijo `register`, da pokličete `createAccount()`:
```js
const result = await createAccount(jsonData);
@@ -239,13 +239,13 @@ To je bilo nekoliko daljše, vendar smo prišli do cilja! Če odprete [orodja za

-✅ Ali menite, da so podatki varno poslani strežniku? Kaj če bi nekdo lahko prestregel zahtevo? Več o [HTTPS](https://en.wikipedia.org/wiki/HTTPS) lahko preberete, da se naučite več o varni komunikaciji podatkov.
+✅ Ali menite, da so podatki poslani na strežnik varno? Kaj če bi nekdo prestregel zahtevo? Več o [HTTPS](https://en.wikipedia.org/wiki/HTTPS) lahko preberete, da se naučite več o varni komunikaciji podatkov.
## Validacija podatkov
Če poskusite registrirati nov račun brez vnosa uporabniškega imena, lahko vidite, da strežnik vrne napako s statusno kodo [400 (Slaba zahteva)](https://developer.mozilla.org/docs/Web/HTTP/Status/400#:~:text=The%20HyperText%20Transfer%20Protocol%20(HTTP,%2C%20or%20deceptive%20request%20routing).).
-Pred pošiljanjem podatkov strežniku je dobra praksa, da [validirate podatke obrazca](https://developer.mozilla.org/docs/Learn/Forms/Form_validation) vnaprej, kadar je to mogoče, da zagotovite, da pošljete veljavno zahtevo. HTML5 kontrolniki obrazcev omogočajo vgrajeno validacijo z uporabo različnih atributov:
+Pred pošiljanjem podatkov na strežnik je dobra praksa, da [validirate podatke obrazca](https://developer.mozilla.org/docs/Learn/Forms/Form_validation) vnaprej, kadar je to mogoče, da zagotovite, da pošiljate veljavno zahtevo. HTML5 kontrolniki obrazcev omogočajo vgrajeno validacijo z uporabo različnih atributov:
- `required`: polje mora biti izpolnjeno, sicer obrazca ni mogoče poslati.
- `minlength` in `maxlength`: določata minimalno in maksimalno število znakov v besedilnih poljih.
@@ -255,7 +255,7 @@ Pred pošiljanjem podatkov strežniku je dobra praksa, da [validirate podatke ob
Namig: videz kontrolnikov obrazca lahko prilagodite glede na to, ali so veljavni ali ne, z uporabo CSS psevdo-razredov `:valid` in `:invalid`.
### Naloga
-Za ustvarjanje veljavnega novega računa sta obvezni polji uporabniško ime in valuta, ostala polja so neobvezna. Posodobite HTML obrazca tako, da uporabite atribut `required` in besedilo v oznaki polja, da:
+Za ustvarjanje veljavnega novega računa sta potrebni 2 obvezni polji: uporabniško ime in valuta, ostala polja so neobvezna. Posodobite HTML obrazca z uporabo atributa `required` in besedila v oznaki polja, da:
```html
Username (required)
@@ -265,7 +265,7 @@ Za ustvarjanje veljavnega novega računa sta obvezni polji uporabniško ime in v
```
-Čeprav ta posebna implementacija strežnika ne uveljavlja specifičnih omejitev glede največje dolžine polj, je vedno dobra praksa določiti razumne omejitve za vnos besedila uporabnika.
+Čeprav ta specifična implementacija strežnika ne uveljavlja posebnih omejitev glede največje dolžine polj, je vedno dobra praksa določiti razumne omejitve za vnos besedila uporabnika.
Dodajte atribut `maxlength` v besedilna polja:
@@ -281,7 +281,7 @@ Zdaj, če pritisnete gumb *Registriraj* in polje ne upošteva pravila validacije

-Validacija, ki se izvede *preden* se podatki pošljejo na strežnik, se imenuje **validacija na strani odjemalca**. Vendar pa ni vedno mogoče izvesti vseh preverjanj brez pošiljanja podatkov. Na primer, tukaj ne moremo preveriti, ali račun z istim uporabniškim imenom že obstaja, ne da bi poslali zahtevo strežniku. Dodatna validacija, ki se izvede na strežniku, se imenuje **validacija na strani strežnika**.
+Validacija, ki se izvede *preden* se podatki pošljejo na strežnik, se imenuje **validacija na strani odjemalca**. Vendar pa ni vedno mogoče izvesti vseh preverjanj brez pošiljanja podatkov. Na primer, tukaj ne moremo preveriti, ali račun z istim uporabniškim imenom že obstaja, ne da bi poslali zahtevo na strežnik. Dodatna validacija, ki se izvede na strežniku, se imenuje **validacija na strani strežnika**.
Običajno je treba implementirati obe vrsti validacije, in čeprav validacija na strani odjemalca izboljša uporabniško izkušnjo z zagotavljanjem takojšnjih povratnih informacij uporabniku, je validacija na strani strežnika ključna za zagotavljanje, da so podatki uporabnika, s katerimi delate, zanesljivi in varni.
@@ -301,7 +301,7 @@ Tukaj je primer, kako lahko končna stran za prijavo izgleda po nekaj oblikovanj
## Pregled in samostojno učenje
-Razvijalci so postali zelo ustvarjalni pri oblikovanju obrazcev, še posebej pri strategijah validacije. Spoznajte različne tokove obrazcev z raziskovanjem [CodePen](https://codepen.com); ali lahko najdete zanimive in navdihujoče obrazce?
+Razvijalci so postali zelo ustvarjalni pri svojih prizadevanjih za gradnjo obrazcev, še posebej glede strategij validacije. Spoznajte različne tokove obrazcev z raziskovanjem [CodePen](https://codepen.com); ali lahko najdete zanimive in navdihujoče obrazce?
## Naloga
@@ -310,4 +310,4 @@ Razvijalci so postali zelo ustvarjalni pri oblikovanju obrazcev, še posebej pri
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/7-bank-project/3-data/README.md b/translations/sl/7-bank-project/3-data/README.md
index 8760e93a..95dad27b 100644
--- a/translations/sl/7-bank-project/3-data/README.md
+++ b/translations/sl/7-bank-project/3-data/README.md
@@ -1,8 +1,8 @@
-# Ustvarjanje bančne aplikacije, 4. del: Koncepti upravljanja stanja
+# Izdelava bančne aplikacije, 4. del: Koncepti upravljanja stanja
## Predhodni kviz
@@ -15,15 +15,15 @@ CO_OP_TRANSLATOR_METADATA:
### Uvod
-Ko spletna aplikacija raste, postane težko slediti vsem podatkovnim tokovom. Katera koda pridobi podatke, katera stran jih uporablja, kje in kdaj jih je treba posodobiti... hitro lahko nastane zmedena koda, ki jo je težko vzdrževati. To še posebej velja, ko morate deliti podatke med različnimi stranmi aplikacije, na primer uporabniške podatke. Koncept *upravljanja stanja* je vedno obstajal v vseh vrstah programov, vendar je zaradi naraščajoče kompleksnosti spletnih aplikacij postal ključen vidik razvoja.
+Ko spletna aplikacija raste, postane težko slediti vsem tokovom podatkov. Kateri del kode pridobi podatke, katera stran jih uporablja, kje in kdaj jih je treba posodobiti... hitro se lahko znajdemo v zmešnjavi kode, ki jo je težko vzdrževati. To je še posebej res, ko je treba podatke deliti med različnimi stranmi aplikacije, na primer podatke o uporabniku. Koncept *upravljanja stanja* je vedno obstajal v vseh vrstah programov, vendar je zaradi naraščajoče kompleksnosti spletnih aplikacij postal ključna točka pri razvoju.
V tem zadnjem delu bomo pregledali aplikacijo, ki smo jo zgradili, da ponovno premislimo, kako je stanje upravljano, kar bo omogočilo podporo osvežitvi brskalnika kadarkoli in ohranjanje podatkov med uporabniškimi sejami.
### Predpogoji
-Za to lekcijo morate dokončati del aplikacije, ki se ukvarja z [pridobivanjem podatkov](../3-data/README.md). Prav tako morate namestiti [Node.js](https://nodejs.org) in [zagnati strežniški API](../api/README.md) lokalno, da lahko upravljate podatke o računih.
+Za to lekcijo morate dokončati [pridobivanje podatkov](../3-data/README.md) v spletni aplikaciji. Prav tako morate namestiti [Node.js](https://nodejs.org) in [zagnati strežniški API](../api/README.md) lokalno, da lahko upravljate podatke o računih.
-Preverite, ali strežnik deluje pravilno, tako da v terminalu izvedete naslednji ukaz:
+Preverite, ali strežnik pravilno deluje, tako da v terminalu zaženete naslednji ukaz:
```sh
curl http://localhost:5000/api
@@ -34,34 +34,34 @@ curl http://localhost:5000/api
## Ponovno premislimo upravljanje stanja
-V [prejšnji lekciji](../3-data/README.md) smo v aplikaciji uvedli osnovni koncept stanja z globalno spremenljivko `account`, ki vsebuje bančne podatke trenutno prijavljenega uporabnika. Vendar ima naša trenutna implementacija nekaj pomanjkljivosti. Poskusite osvežiti stran, ko ste na nadzorni plošči. Kaj se zgodi?
+V [prejšnji lekciji](../3-data/README.md) smo v aplikaciji predstavili osnovni koncept stanja z globalno spremenljivko `account`, ki vsebuje bančne podatke trenutno prijavljenega uporabnika. Vendar ima naša trenutna implementacija nekaj pomanjkljivosti. Poskusite osvežiti stran, ko ste na nadzorni plošči. Kaj se zgodi?
-Trenutna koda ima 3 težave:
+Trenutna koda ima tri težave:
- Stanje ni ohranjeno, saj vas osvežitev brskalnika vrne na stran za prijavo.
-- Obstaja več funkcij, ki spreminjajo stanje. Ko aplikacija raste, to oteži sledenje spremembam in zlahka pozabimo posodobiti eno od njih.
+- Obstaja več funkcij, ki spreminjajo stanje. Ko aplikacija raste, postane težko slediti spremembam in zlahka pozabimo posodobiti eno od njih.
- Stanje ni očiščeno, zato so podatki o računu še vedno prisotni, ko kliknete *Odjava*, čeprav ste na strani za prijavo.
-Kodo bi lahko posodobili, da bi te težave rešili eno za drugo, vendar bi to povzročilo podvajanje kode in naredilo aplikacijo bolj zapleteno ter težje vzdrževano. Ali pa si lahko vzamemo nekaj minut in premislimo našo strategijo.
+Te težave bi lahko reševali eno za drugo, vendar bi to ustvarilo več podvajanja kode in aplikacijo naredilo bolj zapleteno ter težje vzdrževano. Ali pa bi si lahko vzeli nekaj minut in premislili našo strategijo.
> Katere težave pravzaprav poskušamo rešiti?
[Upravljanje stanja](https://en.wikipedia.org/wiki/State_management) se osredotoča na iskanje dobrega pristopa za reševanje teh dveh specifičnih težav:
-- Kako ohraniti podatkovne tokove v aplikaciji razumljive?
-- Kako zagotoviti, da so podatki o stanju vedno usklajeni z uporabniškim vmesnikom (in obratno)?
+- Kako ohraniti tokove podatkov v aplikaciji razumljive?
+- Kako zagotoviti, da so podatki stanja vedno usklajeni z uporabniškim vmesnikom (in obratno)?
-Ko te težave rešite, so lahko vse druge težave, s katerimi se soočate, že odpravljene ali pa jih je lažje rešiti. Obstaja veliko možnih pristopov za reševanje teh težav, vendar bomo uporabili pogosto rešitev, ki vključuje **centralizacijo podatkov in načinov za njihovo spreminjanje**. Podatkovni tokovi bodo potekali takole:
+Ko se lotite teh težav, so lahko druge težave že rešene ali pa jih je lažje odpraviti. Obstaja veliko možnih pristopov za reševanje teh težav, vendar bomo uporabili običajno rešitev, ki vključuje **centralizacijo podatkov in načinov za njihovo spreminjanje**. Tokovi podatkov bi potekali takole:
-
+
-> Tukaj ne bomo obravnavali dela, kjer podatki samodejno sprožijo posodobitev pogleda, saj je to povezano z naprednejšimi koncepti [reaktivnega programiranja](https://en.wikipedia.org/wiki/Reactive_programming). To je dobra tema za nadaljnje raziskovanje, če želite poglobljen vpogled.
+> Tukaj ne bomo obravnavali dela, kjer podatki samodejno sprožijo posodobitev pogleda, saj je povezan z naprednejšimi koncepti [reaktivnega programiranja](https://en.wikipedia.org/wiki/Reactive_programming). To je dobra tema za nadaljnje poglobljeno raziskovanje.
-✅ Obstaja veliko knjižnic z različnimi pristopi k upravljanju stanja, [Redux](https://redux.js.org) pa je priljubljena izbira. Oglejte si koncepte in vzorce, ki jih uporablja, saj je to pogosto dober način za razumevanje morebitnih težav, s katerimi se lahko soočate v velikih spletnih aplikacijah, in kako jih je mogoče rešiti.
+✅ Obstaja veliko knjižnic z različnimi pristopi k upravljanju stanja, [Redux](https://redux.js.org) pa je priljubljena izbira. Oglejte si koncepte in vzorce, ki jih uporablja, saj je to pogosto dober način za učenje o potencialnih težavah, s katerimi se lahko soočate v velikih spletnih aplikacijah, in kako jih je mogoče rešiti.
### Naloga
-Začeli bomo z nekaj preureditvami. Zamenjajte deklaracijo `account`:
+Začeli bomo z nekaj prestrukturiranja. Zamenjajte deklaracijo `account`:
```js
let account = null;
@@ -75,27 +75,27 @@ let state = {
};
```
-Ideja je, da *centraliziramo* vse podatke naše aplikacije v enem samem objektu stanja. Trenutno imamo v stanju samo `account`, zato se veliko ne spremeni, vendar to odpira pot za prihodnje izboljšave.
+Ideja je, da *centraliziramo* vse podatke aplikacije v enem samem objektu stanja. Trenutno imamo v stanju samo `account`, zato se ne spremeni veliko, vendar to odpira pot za nadaljnje izboljšave.
-Prav tako moramo posodobiti funkcije, ki ga uporabljajo. V funkcijah `register()` in `login()` zamenjajte `account = ...` z `state.account = ...`;
+Posodobiti moramo tudi funkcije, ki ga uporabljajo. V funkcijah `register()` in `login()` zamenjajte `account = ...` z `state.account = ...`;
-Na vrh funkcije `updateDashboard()` dodajte to vrstico:
+Na vrhu funkcije `updateDashboard()` dodajte to vrstico:
```js
const account = state.account;
```
-Ta preureditev sama po sebi ne prinaša veliko izboljšav, vendar je ideja, da postavimo temelje za naslednje spremembe.
+To prestrukturiranje samo po sebi ni prineslo veliko izboljšav, vendar je ideja bila postaviti temelje za naslednje spremembe.
## Sledenje spremembam podatkov
Zdaj, ko smo vzpostavili objekt `state` za shranjevanje naših podatkov, je naslednji korak centralizacija posodobitev. Cilj je olajšati sledenje vsem spremembam in kdaj se zgodijo.
-Da bi se izognili neželenim spremembam objekta `state`, je dobra praksa, da ga obravnavamo kot [*nespremenljivega*](https://en.wikipedia.org/wiki/Immutable_object), kar pomeni, da ga ni mogoče spreminjati. To pomeni, da morate ustvariti nov objekt stanja, če želite karkoli spremeniti. S tem se zaščitite pred morebitnimi neželenimi [stranskimi učinki](https://en.wikipedia.org/wiki/Side_effect_(computer_science)) in odprete možnosti za nove funkcije v aplikaciji, kot je implementacija razveljavitve/ponovitve, hkrati pa olajšate odpravljanje napak. Na primer, lahko beležite vsako spremembo stanja in hranite zgodovino sprememb, da razumete izvor napake.
+Da bi se izognili spremembam objekta `state`, je dobra praksa, da ga obravnavamo kot [*nepremičnega*](https://en.wikipedia.org/wiki/Immutable_object), kar pomeni, da ga ni mogoče spreminjati. To pomeni, da morate ustvariti nov objekt stanja, če želite kaj spremeniti v njem. S tem se zaščitite pred morebitnimi neželenimi [stranskimi učinki](https://en.wikipedia.org/wiki/Side_effect_(computer_science)) in odprete možnosti za nove funkcije v aplikaciji, kot je implementacija razveljavitve/ponovne uveljavitve, hkrati pa olajšate odpravljanje napak. Na primer, lahko beležite vsako spremembo stanja in hranite zgodovino sprememb, da razumete vir napake.
-V JavaScriptu lahko uporabite [`Object.freeze()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) za ustvarjanje nespremenljive različice objekta. Če poskusite spremeniti nespremenljiv objekt, bo sprožena izjema.
+V JavaScriptu lahko uporabite [`Object.freeze()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) za ustvarjanje nepremičnega objekta. Če poskušate narediti spremembe na nepremičnem objektu, bo sprožena izjema.
-✅ Ali poznate razliko med *plitkim* in *globokim* nespremenljivim objektom? Več o tem lahko preberete [tukaj](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze#What_is_shallow_freeze).
+✅ Ali poznate razliko med *plitkim* in *globokim* nepremičnim objektom? Preberite več o tem [tukaj](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze#What_is_shallow_freeze).
### Naloga
@@ -110,9 +110,9 @@ function updateState(property, newData) {
}
```
-V tej funkciji ustvarimo nov objekt stanja in kopiramo podatke iz prejšnjega stanja z uporabo [*operatorja razširitve (`...`)*](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax#Spread_in_object_literals). Nato z uporabo [notacije z oglatimi oklepaji](https://developer.mozilla.org/docs/Web/JavaScript/Guide/Working_with_Objects#Objects_and_properties) `[property]` prepišemo določeno lastnost objekta stanja z novimi podatki. Na koncu zaklenemo objekt, da preprečimo spremembe, z `Object.freeze()`. Trenutno imamo v stanju shranjeno samo lastnost `account`, vendar lahko s tem pristopom dodate toliko lastnosti, kot jih potrebujete.
+V tej funkciji ustvarimo nov objekt stanja in kopiramo podatke iz prejšnjega stanja z uporabo [*operatorja razširitve (`...`)*](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Spread_syntax#Spread_in_object_literals). Nato preglasimo določeno lastnost objekta stanja z novimi podatki z uporabo [notacije z oglatimi oklepaji](https://developer.mozilla.org/docs/Web/JavaScript/Guide/Working_with_Objects#Objects_and_properties) `[property]` za dodelitev. Na koncu zaklenemo objekt, da preprečimo spremembe z uporabo `Object.freeze()`. Trenutno imamo v stanju shranjeno samo lastnost `account`, vendar lahko s tem pristopom dodate toliko lastnosti, kot jih potrebujete.
-Prav tako bomo posodobili inicializacijo `state`, da zagotovimo, da je začetno stanje prav tako zamrznjeno:
+Posodobili bomo tudi inicializacijo `state`, da zagotovimo, da je začetno stanje prav tako zamrznjeno:
```js
let state = Object.freeze({
@@ -120,7 +120,7 @@ let state = Object.freeze({
});
```
-Nato posodobite funkcijo `register` tako, da zamenjate `state.account = result;` z:
+Nato posodobite funkcijo `register` tako, da zamenjate dodelitev `state.account = result;` z:
```js
updateState('account', result);
@@ -147,31 +147,31 @@ V `updateDashboard()` zamenjajte preusmeritev `return navigate('/login');` z `re
Poskusite registrirati nov račun, se odjaviti in ponovno prijaviti, da preverite, ali vse še vedno deluje pravilno.
-> Nasvet: vse spremembe stanja si lahko ogledate tako, da na dno funkcije `updateState()` dodate `console.log(state)` in odprete konzolo v orodjih za razvijalce vašega brskalnika.
+> Nasvet: lahko si ogledate vse spremembe stanja tako, da dodate `console.log(state)` na dnu funkcije `updateState()` in odprete konzolo v orodjih za razvijalce vašega brskalnika.
## Ohranjanje stanja
-Večina spletnih aplikacij mora ohranjati podatke, da lahko pravilno delujejo. Vsi ključni podatki so običajno shranjeni v bazi podatkov in dostopni prek strežniškega API-ja, kot so podatki o uporabniškem računu v našem primeru. Vendar je včasih zanimivo ohraniti nekatere podatke v odjemalski aplikaciji, ki se izvaja v vašem brskalniku, za boljšo uporabniško izkušnjo ali za izboljšanje zmogljivosti nalaganja.
+Večina spletnih aplikacij mora ohranjati podatke, da lahko pravilno deluje. Vsi ključni podatki so običajno shranjeni v podatkovni bazi in dostopni prek strežniškega API-ja, kot so podatki o uporabniških računih v našem primeru. Včasih pa je zanimivo ohraniti nekatere podatke v odjemalski aplikaciji, ki se izvaja v vašem brskalniku, za boljšo uporabniško izkušnjo ali izboljšanje zmogljivosti nalaganja.
Ko želite ohraniti podatke v brskalniku, si morate zastaviti nekaj pomembnih vprašanj:
- *Ali so podatki občutljivi?* Izogibajte se shranjevanju občutljivih podatkov na odjemalcu, kot so gesla uporabnikov.
- *Kako dolgo potrebujete te podatke?* Ali nameravate dostopati do teh podatkov samo med trenutno sejo ali jih želite shraniti za vedno?
-Obstaja več načinov za shranjevanje informacij v spletni aplikaciji, odvisno od tega, kaj želite doseči. Na primer, lahko uporabite URL-je za shranjevanje iskalnih poizvedb in jih naredite deljive med uporabniki. Uporabite lahko tudi [HTTP piškotke](https://developer.mozilla.org/docs/Web/HTTP/Cookies), če je treba podatke deliti s strežnikom, na primer informacije o [avtentikaciji](https://en.wikipedia.org/wiki/Authentication).
+Obstaja več načinov za shranjevanje informacij znotraj spletne aplikacije, odvisno od tega, kaj želite doseči. Na primer, lahko uporabite URL-je za shranjevanje iskalne poizvedbe in jo naredite deljivo med uporabniki. Lahko uporabite tudi [HTTP piškotke](https://developer.mozilla.org/docs/Web/HTTP/Cookies), če je treba podatke deliti s strežnikom, na primer informacije o [avtentikaciji](https://en.wikipedia.org/wiki/Authentication).
-Druga možnost je uporaba ene od številnih API-jev brskalnika za shranjevanje podatkov. Dva sta še posebej zanimiva:
+Druga možnost je uporaba ene od številnih API-jev brskalnika za shranjevanje podatkov. Dva od njih sta še posebej zanimiva:
- [`localStorage`](https://developer.mozilla.org/docs/Web/API/Window/localStorage): [Shramba ključ/vrednost](https://en.wikipedia.org/wiki/Key%E2%80%93value_database), ki omogoča ohranjanje podatkov, specifičnih za trenutno spletno mesto, med različnimi sejami. Podatki, shranjeni v njej, nikoli ne potečejo.
-- [`sessionStorage`](https://developer.mozilla.org/docs/Web/API/Window/sessionStorage): deluje enako kot `localStorage`, razen da se podatki, shranjeni v njej, izbrišejo, ko se seja konča (ko zaprete brskalnik).
+- [`sessionStorage`](https://developer.mozilla.org/docs/Web/API/Window/sessionStorage): deluje enako kot `localStorage`, razen da se podatki, shranjeni v njej, izbrišejo, ko se seja konča (ko se brskalnik zapre).
Upoštevajte, da oba API-ja omogočata shranjevanje samo [nizov](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String). Če želite shraniti kompleksne objekte, jih boste morali serializirati v format [JSON](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/JSON) z uporabo [`JSON.stringify()`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).
-✅ Če želite ustvariti spletno aplikacijo, ki ne deluje s strežnikom, je mogoče ustvariti bazo podatkov na odjemalcu z uporabo API-ja [`IndexedDB`](https://developer.mozilla.org/docs/Web/API/IndexedDB_API). Ta je rezerviran za napredne primere uporabe ali če morate shraniti večjo količino podatkov, saj je bolj zapleten za uporabo.
+✅ Če želite ustvariti spletno aplikacijo, ki ne deluje s strežnikom, je mogoče ustvariti podatkovno bazo na odjemalcu z uporabo API-ja [`IndexedDB`](https://developer.mozilla.org/docs/Web/API/IndexedDB_API). Ta je rezerviran za napredne primere uporabe ali če morate shraniti večjo količino podatkov, saj je bolj zapleten za uporabo.
### Naloga
-Želimo, da uporabniki ostanejo prijavljeni, dokler izrecno ne kliknejo gumba *Odjava*, zato bomo uporabili `localStorage` za shranjevanje podatkov o računu. Najprej definirajmo ključ, ki ga bomo uporabili za shranjevanje naših podatkov.
+Želimo, da naši uporabniki ostanejo prijavljeni, dokler izrecno ne kliknejo gumba *Odjava*, zato bomo uporabili `localStorage` za shranjevanje podatkov o računu. Najprej definirajmo ključ, ki ga bomo uporabili za shranjevanje naših podatkov.
```js
const storageKey = 'savedAccount';
@@ -183,7 +183,7 @@ Nato dodajte to vrstico na konec funkcije `updateState()`:
localStorage.setItem(storageKey, JSON.stringify(state.account));
```
-S tem bodo podatki o uporabniškem računu ohranjeni in vedno posodobljeni, saj smo prej centralizirali vse posodobitve stanja. Tukaj začnemo izkoriščati vse prejšnje preureditve 🙂.
+S tem bodo podatki o uporabniškem računu ohranjeni in vedno posodobljeni, saj smo prej centralizirali vse posodobitve stanja. Tukaj začnemo izkoriščati vse naše prejšnje prestrukturiranje 🙂.
Ker so podatki shranjeni, moramo poskrbeti tudi za njihovo obnovitev, ko se aplikacija naloži. Ker bomo začeli imeti več inicializacijske kode, je morda dobra ideja, da ustvarimo novo funkcijo `init`, ki vključuje tudi našo prejšnjo kodo na dnu `app.js`:
@@ -202,17 +202,17 @@ function init() {
init();
```
-Tukaj pridobimo shranjene podatke in, če obstajajo, ustrezno posodobimo stanje. Pomembno je, da to storimo *pred* posodobitvijo poti, saj lahko obstaja koda, ki se zanaša na stanje med posodobitvijo strani.
+Tukaj pridobimo shranjene podatke, in če obstajajo, ustrezno posodobimo stanje. Pomembno je, da to storimo *pred* posodobitvijo poti, saj lahko obstaja koda, ki se zanaša na stanje med posodobitvijo strani.
-Privzeto stran naše aplikacije lahko naredimo tudi *Nadzorno ploščo*, saj zdaj ohranjamo podatke o računu. Če podatki niso najdeni, nadzorna plošča vseeno poskrbi za preusmeritev na stran *Prijava*. V `updateRoute()` zamenjajte privzeto `return navigate('/login');` z `return navigate('/dashboard');`.
+Privzeto stran naše aplikacije lahko naredimo *Nadzorno ploščo*, saj zdaj ohranjamo podatke o računu. Če podatki niso najdeni, nadzorna plošča poskrbi za preusmeritev na stran *Prijava*. V `updateRoute()` zamenjajte privzeto `return navigate('/login');` z `return navigate('/dashboard');`.
-Zdaj se prijavite v aplikacijo in poskusite osvežiti stran. Ostati bi morali na nadzorni plošči. S to posodobitvijo smo rešili vse začetne težave...
+Zdaj se prijavite v aplikacijo in poskusite osvežiti stran. Ostati bi morali na nadzorni plošči. S to posodobitvijo smo odpravili vse naše začetne težave...
## Osvežitev podatkov
-...Vendar smo morda ustvarili novo težavo. Ups!
+...Ampak morda smo ustvarili novo težavo. Ups!
-Pojdite na nadzorno ploščo z računom `test`, nato v terminalu izvedite ta ukaz za ustvarjanje nove transakcije:
+Pojdite na nadzorno ploščo z računom `test`, nato zaženite ta ukaz v terminalu za ustvarjanje nove transakcije:
```sh
curl --request POST \
@@ -223,9 +223,9 @@ curl --request POST \
Zdaj poskusite osvežiti stran nadzorne plošče v brskalniku. Kaj se zgodi? Ali vidite novo transakcijo?
-Stanje je ohranjeno za nedoločen čas zahvaljujoč `localStorage`, vendar to tudi pomeni, da se nikoli ne posodobi, dokler se ne odjavite iz aplikacije in ponovno prijavite!
+Stanje je ohranjeno za nedoločen čas zahvaljujoč `localStorage`, vendar to pomeni, da se nikoli ne posodobi, dokler se ne odjavite iz aplikacije in ponovno prijavite!
-Ena od možnih strategij za rešitev tega problema je, da vsakič, ko se naloži nadzorna plošča, ponovno naložimo podatke o računu, da se izognemo zastarelim podatkom.
+Ena od možnih strategij za odpravo te težave je, da vsakič, ko se naloži nadzorna plošča, ponovno naložimo podatke o računu, da se izognemo zastarelim podatkom.
### Naloga
@@ -249,7 +249,7 @@ async function updateAccountData() {
Ta metoda preveri, ali smo trenutno prijavljeni, nato pa ponovno naloži podatke o računu s strežnika.
-Ustvarite še eno funkcijo z imenom `refresh`:
+Ustvarite drugo funkcijo z imenom `refresh`:
```js
async function refresh() {
@@ -258,7 +258,7 @@ async function refresh() {
}
```
-Ta funkcija posodobi podatke o računu, nato pa poskrbi za posodobitev HTML-ja na strani nadzorne plošče. To je funkcija, ki jo moramo poklicati, ko se naloži pot nadzorne plošče. Posodobite definicijo poti z:
+Ta funkcija posodobi podatke o računu, nato pa poskrbi za posodobitev HTML-ja na strani nadzorne plošče. To je tisto, kar moramo poklicati, ko se naloži pot nadzorne plošče. Posodobite definicijo poti z:
```js
const routes = {
@@ -267,28 +267,28 @@ const routes = {
};
```
-Zdaj poskusite osvežiti nadzorno ploščo, prikazati bi se morali posodobljeni podatki o računu.
+Zdaj poskusite osvežiti nadzorno ploščo, prikazati bi morali posodobljene podatke o računu.
---
## 🚀 Izziv
-Zdaj, ko vsakič, ko se naloži nadzorna plošča, ponovno naložimo podatke o računu, menite, da je še vedno potrebno ohranjati *vse podatke o računu*?
+Zdaj, ko vsakič, ko se naloži nadzorna plošča, ponovno naložimo podatke o računu, ali menite, da moramo še vedno ohranjati *vse podatke o računu*?
-Poskusite skupaj spremeniti, kaj se shrani in naloži iz `localStorage`, tako da vključuje samo tisto, kar je absolutno potrebno za delovanje aplikacije.
+Poskusite skupaj spremeniti, kaj je shranjeno in naloženo iz `localStorage`, da vključuje samo tisto, kar je absolutno potrebno za delovanje aplikacije.
-## Kviz po predavanju
-[Post-predavanje kviz](https://ff-quizzes.netlify.app/web/quiz/48)
+## Zaključni kviz
-## Naloga
+[Zaključni kviz](https://ff-quizzes.netlify.app/web/quiz/48)
-[Izvedite dialog "Dodaj transakcijo"](assignment.md)
+## Naloga
+[Izvedi "Dodaj transakcijo" pogovorno okno](assignment.md)
-Tukaj je primer rezultata po zaključeni nalogi:
+Tukaj je primer rezultata po zaključku naloge:
-
+
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/8-code-editor/1-using-a-code-editor/README.md b/translations/sl/8-code-editor/1-using-a-code-editor/README.md
index a8539b38..145023af 100644
--- a/translations/sl/8-code-editor/1-using-a-code-editor/README.md
+++ b/translations/sl/8-code-editor/1-using-a-code-editor/README.md
@@ -1,23 +1,23 @@
# Uporaba urejevalnika kode
-Ta lekcija zajema osnove uporabe [VSCode.dev](https://vscode.dev), spletnega urejevalnika kode, ki vam omogoča spreminjanje kode in prispevanje k projektu brez potrebe po namestitvi programske opreme na vaš računalnik.
+Ta lekcija zajema osnove uporabe [VSCode.dev](https://vscode.dev), spletnega urejevalnika kode, ki vam omogoča spreminjanje kode in prispevanje k projektu brez potrebe po nameščanju programske opreme na vaš računalnik.
-## Cilji učenja
+## Učni cilji
-V tej lekciji boste spoznali:
+V tej lekciji boste spoznali, kako:
-- Kako uporabljati urejevalnik kode v projektnem okolju
-- Kako slediti spremembam z različico nadzora
-- Kako prilagoditi urejevalnik za razvoj
+- Uporabljati urejevalnik kode v projektu
+- Spremljati spremembe z uporabo sistema za nadzor različic
+- Prilagoditi urejevalnik za razvoj
### Predpogoji
@@ -25,122 +25,122 @@ Preden začnete, morate ustvariti račun na [GitHub](https://github.com). Obiš
### Uvod
-Urejevalnik kode je ključno orodje za pisanje programov in sodelovanje pri obstoječih projektih. Ko boste razumeli osnove urejevalnika in kako uporabljati njegove funkcije, jih boste lahko uporabili pri pisanju kode.
+Urejevalnik kode je ključno orodje za pisanje programov in sodelovanje pri obstoječih projektih. Ko boste razumeli osnove urejevalnika in kako izkoristiti njegove funkcije, jih boste lahko uporabili pri pisanju kode.
## Začetek z VSCode.dev
-[VSCode.dev](https://vscode.dev) je urejevalnik kode na spletu. Ni vam treba ničesar namestiti, saj deluje podobno kot odpiranje katere koli druge spletne strani. Za začetek odprite naslednjo povezavo: [https://vscode.dev](https://vscode.dev). Če niste prijavljeni v [GitHub](https://github.com/), sledite navodilom za prijavo ali ustvarite nov račun in se nato prijavite.
+[VSCode.dev](https://vscode.dev) je spletni urejevalnik kode. Za njegovo uporabo vam ni treba ničesar namestiti, saj deluje podobno kot odpiranje katere koli druge spletne strani. Za začetek odprite naslednjo povezavo: [https://vscode.dev](https://vscode.dev). Če niste prijavljeni v [GitHub](https://github.com/), sledite navodilom za prijavo ali ustvarite nov račun in se nato prijavite.
-Ko se stran naloži, bo videti podobno kot na tej sliki:
+Ko se urejevalnik naloži, bi moral izgledati podobno kot na tej sliki:

-Obstajajo tri glavne sekcije, od leve proti desni:
+Obstajajo trije glavni deli, od leve proti desni:
-1. _Aktivnostna vrstica_, ki vključuje nekaj ikon, kot so povečevalno steklo 🔎, zobnik ⚙️ in nekaj drugih.
-2. Razširjena aktivnostna vrstica, ki privzeto prikazuje _Raziskovalec_ (_Explorer_), imenovana _stranska vrstica_.
-3. Nazadnje, območje kode na desni.
+1. _Vrstica dejavnosti_ (_activity bar_), ki vključuje ikone, kot so povečevalno steklo 🔎, zobnik ⚙️ in nekaj drugih.
+2. Razširjena vrstica dejavnosti, ki privzeto prikazuje _Raziskovalec_ (_Explorer_), imenovana _stranska vrstica_ (_side bar_).
+3. In nazadnje, območje kode na desni strani.
-Kliknite na vsako ikono, da prikažete različne menije. Ko končate, kliknite na _Raziskovalec_, da se vrnete na začetno mesto.
+Kliknite na vsako od ikon, da prikažete različne menije. Ko končate, kliknite na _Raziskovalec_, da se vrnete na začetno točko.
-Ko začnete ustvarjati ali spreminjati kodo, se to dogaja v največjem območju na desni. To območje boste uporabili tudi za vizualizacijo obstoječe kode, kar boste storili v naslednjem koraku.
+Ko začnete ustvarjati ali spreminjati kodo, se to dogaja v največjem območju na desni strani. To območje boste uporabili tudi za pregled obstoječe kode, kar boste storili v nadaljevanju.
## Odprite GitHub repozitorij
-Prva stvar, ki jo potrebujete, je odpreti GitHub repozitorij. Obstaja več načinov za odpiranje repozitorija. V tem razdelku boste spoznali dva različna načina, kako odpreti repozitorij in začeti delati na spremembah.
+Prva stvar, ki jo potrebujete, je odpreti GitHub repozitorij. Obstaja več načinov za odpiranje repozitorija. V tem razdelku boste spoznali dva različna načina, kako lahko odprete repozitorij in začnete delati na spremembah.
-### 1. Z urejevalnikom
+### 1. Z uporabo urejevalnika
Uporabite urejevalnik za odpiranje oddaljenega repozitorija. Če obiščete [VSCode.dev](https://vscode.dev), boste videli gumb _"Open Remote Repository"_:

-Lahko uporabite tudi ukazno paleto. Ukazna paleta je vnosno polje, kjer lahko vnesete katero koli besedo, ki je del ukaza ali dejanja, da najdete pravi ukaz za izvedbo. Uporabite meni v zgornjem levem kotu, nato izberite _View_ in nato _Command Palette_, ali pa uporabite naslednjo bližnjico na tipkovnici: Ctrl-Shift-P (na MacOS-u Command-Shift-P).
+Lahko uporabite tudi ukazno paleto. Ukazna paleta je vnosno polje, kjer lahko vnesete katero koli besedo, ki je del ukaza ali dejanja, da najdete pravi ukaz za izvedbo. Uporabite meni v zgornjem levem kotu, nato izberite _View_ in nato _Command Palette_, ali uporabite naslednjo bližnjico na tipkovnici: Ctrl-Shift-P (na MacOS Command-Shift-P).

-Ko se meni odpre, vnesite _open remote repository_ in nato izberite prvo možnost. Prikazali se bodo repozitoriji, katerih del ste ali ki ste jih nedavno odprli. Lahko uporabite tudi celoten URL GitHub-a za izbiro enega. Uporabite naslednji URL in ga prilepite v polje:
+Ko se meni odpre, vnesite _open remote repository_ in nato izberite prvo možnost. Prikazali se bodo repozitoriji, katerih del ste, ali tisti, ki ste jih nedavno odprli. Uporabite tudi celoten GitHub URL za izbiro repozitorija. Vnesite naslednji URL v polje:
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
-✅ Če je uspešno, boste videli vse datoteke tega repozitorija naložene v urejevalniku besedila.
+✅ Če je bilo uspešno, boste videli vse datoteke tega repozitorija naložene v urejevalniku.
### 2. Z uporabo URL-ja
-Repozitorij lahko naložite tudi neposredno z URL-jem. Na primer, celoten URL trenutnega repozitorija je [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners), vendar lahko zamenjate domeno GitHub z `VSCode.dev/github` in repozitorij naložite neposredno. Nastali URL bi bil [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
+Repozitorij lahko naložite tudi neposredno z uporabo URL-ja. Na primer, celoten URL za trenutni repozitorij je [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners), vendar lahko domeno GitHub zamenjate z `VSCode.dev/github` in repozitorij naložite neposredno. Rezultirajoči URL bi bil [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
## Urejanje datotek
-Ko odprete repozitorij v brskalniku/vscode.dev, je naslednji korak posodabljanje ali spreminjanje projekta.
+Ko odprete repozitorij v brskalniku/vscode.dev, je naslednji korak posodobitev ali sprememba projekta.
### 1. Ustvarite novo datoteko
-Datoteko lahko ustvarite znotraj obstoječe mape ali v korenskem imeniku/mapi. Za ustvarjanje nove datoteke odprite lokacijo/mapo, kamor želite shraniti datoteko, in izberite ikono _'New file ...'_ na aktivnostni vrstici _(levo)_, ji dodelite ime in pritisnite enter.
+Datoteko lahko ustvarite znotraj obstoječe mape ali v korenskem imeniku/mapi. Za ustvarjanje nove datoteke odprite lokacijo/mapo, kamor želite shraniti datoteko, in izberite ikono _'New file ...'_ na vrstici dejavnosti _(levo)_, poimenujte datoteko in pritisnite Enter.

### 2. Uredite in shranite datoteko v repozitoriju
-Uporaba vscode.dev je koristna, kadar želite hitro posodobiti svoj projekt brez potrebe po lokalni namestitvi programske opreme.
-
-Za posodobitev kode kliknite ikono 'Explorer', ki se nahaja na aktivnostni vrstici, da si ogledate datoteke in mape v repozitoriju. Izberite datoteko, da jo odprete v območju kode, naredite spremembe in shranite.
+Uporaba vscode.dev je koristna, kadar želite hitro posodobiti svoj projekt brez nalaganja programske opreme lokalno.
+Za posodobitev kode kliknite ikono 'Raziskovalec', ki se nahaja tudi na vrstici dejavnosti, da si ogledate datoteke in mape v repozitoriju.
+Izberite datoteko, da jo odprete v območju kode, naredite spremembe in shranite.

Ko končate s posodabljanjem projekta, izberite ikono _`source control`_, ki vsebuje vse nove spremembe, ki ste jih naredili v repozitoriju.
-Za ogled sprememb, ki ste jih naredili v projektu, izberite datoteke v mapi `Changes` v razširjeni aktivnostni vrstici. To bo odprlo 'Delovno drevo' (_Working Tree_), kjer boste vizualno videli spremembe, ki ste jih naredili v datoteki. Rdeča označuje izbris, zelena pa dodatek.
+Za ogled sprememb, ki ste jih naredili v projektu, izberite datoteko(-e) v mapi `Changes` v razširjeni vrstici dejavnosti. To bo odprlo 'Delovno drevo' (_Working Tree_), kjer lahko vizualno vidite spremembe, ki ste jih naredili v datoteki. Rdeča barva označuje izbris, zelena pa dodatek.

-Če ste zadovoljni s spremembami, ki ste jih naredili, se pomaknite na mapo `Changes` in kliknite gumb `+`, da pripravite spremembe za oddajo. Priprava pomeni pripravo sprememb za oddajo na GitHub.
+Če ste zadovoljni s spremembami, ki ste jih naredili, se pomaknite na mapo `Changes` in kliknite gumb `+`, da pripravite spremembe za oddajo. Priprava pomeni, da spremembe pripravite za oddajo na GitHub.
Če pa niste zadovoljni z nekaterimi spremembami in jih želite zavreči, se pomaknite na mapo `Changes` in izberite ikono `undo`.
-Nato vnesite _sporočilo o oddaji_ (opis spremembe, ki ste jo naredili v projektu), kliknite ikono za preverjanje, da oddate in potisnete spremembe.
+Nato vnesite `commit message` _(opis spremembe, ki ste jo naredili v projektu)_, kliknite ikono za potrditev (check icon) in oddajte spremembe.
-Ko končate z delom na projektu, izberite ikono 'hamburger menu' v zgornjem levem kotu, da se vrnete v repozitorij na github.com.
+Ko končate z delom na projektu, izberite ikono menija (hamburger menu) v zgornjem levem kotu, da se vrnete na repozitorij na github.com.

## Uporaba razširitev
-Namestitev razširitev v VSCode omogoča dodajanje novih funkcij in možnosti prilagojenega razvojnega okolja v urejevalniku, kar izboljša vaš delovni proces. Te razširitve pomagajo dodati podporo za več programskih jezikov in so pogosto bodisi generične bodisi jezikovno specifične.
+Nameščanje razširitev v VSCode omogoča dodajanje novih funkcij in prilagoditev okolja za razvoj v urejevalniku, kar izboljša vaš delovni tok. Te razširitve omogočajo tudi podporo za več programskih jezikov in so pogosto splošne ali specifične za določen jezik.
-Za pregled seznama vseh razpoložljivih razširitev kliknite ikono _`Extensions`_ na aktivnostni vrstici in začnite vnašati ime razširitve v besedilno polje z oznako _'Search Extensions in Marketplace'_.
-Videli boste seznam razširitev, vsaka pa vsebuje **ime razširitve, ime založnika, en stavek opisa, število prenosov** in **oceno z zvezdicami**.
+Za pregled seznama vseh razpoložljivih razširitev kliknite ikono _`Extensions`_ na vrstici dejavnosti in začnite vnašati ime razširitve v iskalno polje z oznako _'Search Extensions in Marketplace'_.
+Prikazal se bo seznam razširitev, vsaka z **imenom razširitve, imenom založnika, enovrstičnim opisom, številom prenosov** in **oceno z zvezdicami**.

-Prav tako lahko pregledate vse prej nameščene razširitve v razširjeni mapi _`Installed`_, priljubljene razširitve, ki jih uporablja večina razvijalcev, v mapi _`Popular`_ in priporočene razširitve za vas bodisi na podlagi uporabnikov v istem delovnem prostoru bodisi na podlagi vaših nedavno odprtih datotek v mapi _`Recommended`_.
+Prav tako si lahko ogledate vse prej nameščene razširitve v razširjeni mapi _`Installed`_, priljubljene razširitve, ki jih uporablja večina razvijalcev, v mapi _`Popular`_ in priporočene razširitve za vas bodisi na podlagi uporabnikov v istem delovnem prostoru ali na podlagi vaših nedavno odprtih datotek v mapi _`Recommended`_.

### 1. Namestitev razširitev
-Za namestitev razširitve vnesite ime razširitve v iskalno polje in kliknite nanjo, da si ogledate dodatne informacije o razširitvi v območju kode, ko se prikaže v razširjeni aktivnostni vrstici.
+Za namestitev razširitve vnesite ime razširitve v iskalno polje in kliknite nanjo, da si ogledate dodatne informacije o razširitvi v območju kode, ko se prikaže v razširjeni vrstici dejavnosti.
-Lahko kliknete _modri gumb za namestitev_ v razširjeni aktivnostni vrstici za namestitev ali uporabite gumb za namestitev, ki se prikaže v območju kode, ko izberete razširitev za nalaganje dodatnih informacij.
+Lahko kliknete _modri gumb za namestitev_ v razširjeni vrstici dejavnosti za namestitev ali uporabite gumb za namestitev, ki se prikaže v območju kode, ko izberete razširitev za nalaganje dodatnih informacij.

### 2. Prilagoditev razširitev
-Po namestitvi razširitve boste morda morali prilagoditi njeno delovanje glede na vaše želje. Za to izberite ikono razširitev, in tokrat se bo vaša razširitev pojavila v mapi _Installed_, kliknite na _**ikono zobnika**_ in pojdite na _Extensions Setting_.
+Po namestitvi razširitve boste morda morali prilagoditi njeno vedenje in jo nastaviti glede na svoje želje. To storite tako, da izberete ikono Razširitve, nato pa se bo vaša razširitev prikazala v mapi _Installed_. Kliknite na _**ikono zobnika**_ in pojdite na _Extensions Setting_.

### 3. Upravljanje razširitev
-Po namestitvi in uporabi razširitve vam vscode.dev ponuja možnosti za upravljanje razširitev glede na različne potrebe. Na primer, lahko se odločite za:
+Po namestitvi in uporabi razširitve vam vscode.dev ponuja možnosti za upravljanje razširitev glede na različne potrebe. Na primer, lahko:
-- **Onemogočanje:** _(Začasno onemogočite razširitev, ko je ne potrebujete, vendar je ne želite popolnoma odstraniti)_
+- **Onemogočite:** _(Začasno onemogočite razširitev, ko je ne potrebujete, vendar je ne želite popolnoma odstraniti.)_
- Izberite nameščeno razširitev v razširjeni aktivnostni vrstici > kliknite ikono zobnika > izberite 'Disable' ali 'Disable (Workspace)' **ALI** odprite razširitev v območju kode in kliknite modri gumb Disable.
+ Izberite nameščeno razširitev v razširjeni vrstici dejavnosti > kliknite ikono zobnika > izberite 'Disable' ali 'Disable (Workspace)' **ALI** odprite razširitev v območju kode in kliknite modri gumb Disable.
-- **Odstranitev:** Izberite nameščeno razširitev v razširjeni aktivnostni vrstici > kliknite ikono zobnika > izberite 'Uninstall' **ALI** odprite razširitev v območju kode in kliknite modri gumb Uninstall.
+- **Odstranite:** Izberite nameščeno razširitev v razširjeni vrstici dejavnosti > kliknite ikono zobnika > izberite 'Uninstall' **ALI** odprite razširitev v območju kode in kliknite modri gumb Uninstall.
---
diff --git a/translations/sl/8-code-editor/1-using-a-code-editor/assignment.md b/translations/sl/8-code-editor/1-using-a-code-editor/assignment.md
index d5d9fa61..295d6f84 100644
--- a/translations/sl/8-code-editor/1-using-a-code-editor/assignment.md
+++ b/translations/sl/8-code-editor/1-using-a-code-editor/assignment.md
@@ -1,13 +1,13 @@
-# Ustvarite spletno stran za življenjepis z uporabo vscode.dev
+# Ustvarite spletno stran z življenjepisom z uporabo vscode.dev
_Kako kul bi bilo, če bi vas zaposlovalec prosil za vaš življenjepis, vi pa bi mu poslali kar URL?_ 😎
@@ -23,9 +23,9 @@ Po tej nalogi boste znali:
## Koraki
-**Korak 1:** Ustvarite novo GitHub repozitorij in mu dajte ime `my-resume`.
+**Korak 1:** Ustvarite novo GitHub repozitorij in ga poimenujte `my-resume`
-**Korak 2:** V svojem repozitoriju ustvarite datoteko `index.html`. Na github.com bomo dodali vsaj eno datoteko, saj praznega repozitorija ni mogoče odpreti v vscode.dev.
+**Korak 2:** Ustvarite datoteko `index.html` v svojem repozitoriju. Na github.com bomo dodali vsaj eno datoteko, saj praznega repozitorija ni mogoče odpreti v vscode.dev.
Kliknite povezavo `creating a new file`, vnesite ime `index.html` in izberite gumb `Commit new file`.
@@ -33,9 +33,9 @@ Kliknite povezavo `creating a new file`, vnesite ime `index.html` in izberite gu
**Korak 3:** Odprite [VSCode.dev](https://vscode.dev) in izberite gumb `Open Remote Repository`.
-Kopirajte URL repozitorija, ki ste ga pravkar ustvarili za svojo spletno stran življenjepisa, in ga prilepite v vnosno polje:
+Kopirajte URL repozitorija, ki ste ga pravkar ustvarili za svojo spletno stran z življenjepisom, in ga prilepite v vnosno polje:
-_Zamenjajte `your-username` z vašim GitHub uporabniškim imenom._
+_Zamenjajte `your-username` s svojim GitHub uporabniškim imenom._
```
https://github.com/your-username/my-resume
@@ -45,10 +45,10 @@ https://github.com/your-username/my-resume

-**Korak 4:** Odprite datoteko `index.html`, prilepite spodnjo kodo v območje kode in shranite.
+**Korak 4:** Odprite datoteko `index.html`, prilepite spodnjo kodo v svoje delovno območje in shranite.
- HTML koda, ki je odgovorna za vsebino vaše spletne strani življenjepisa.
+ HTML koda, ki je odgovorna za vsebino vaše spletne strani z življenjepisom.
@@ -69,7 +69,7 @@ https://github.com/your-username/my-resume
KONTAKT
-
+
Vnesite svoj e-poštni naslov tukaj
@@ -217,9 +217,9 @@ Dodajte podrobnosti svojega življenjepisa, da zamenjate _nadomestno besedilo_ v
"styles": []
}
-**Korak 7:** Namestite razširitev `Codeswing`, da si ogledate spletno stran življenjepisa na območju kode.
+**Korak 7:** Namestite razširitev `Codeswing`, da si ogledate spletno stran z življenjepisom v delovnem območju.
-Kliknite ikono _`Extensions`_ na orodni vrstici in vnesite Codeswing. Kliknite _modri gumb za namestitev_ na razširjeni orodni vrstici ali uporabite gumb za namestitev, ki se prikaže na območju kode, ko izberete razširitev za nalaganje dodatnih informacij. Takoj po namestitvi razširitve opazujte spremembe v svojem projektu 😃.
+Kliknite ikono _`Extensions`_ v orodni vrstici in vnesite Codeswing. Kliknite _modri gumb za namestitev_ na razširjeni orodni vrstici ali uporabite gumb za namestitev, ki se prikaže v delovnem območju, ko izberete razširitev za nalaganje dodatnih informacij. Takoj po namestitvi razširitve opazujte spremembe v svojem projektu 😃.

@@ -229,13 +229,13 @@ To je tisto, kar boste videli na zaslonu po namestitvi razširitve.
Če ste zadovoljni s spremembami, ki ste jih naredili, premaknite kazalec na mapo `Changes` in kliknite gumb `+`, da pripravite spremembe.
-Vnesite sporočilo za commit _(Opis spremembe, ki ste jo naredili v projektu)_ in potrdite svoje spremembe s klikom na `check`. Ko končate z delom na projektu, izberite ikono hamburger menija v zgornjem levem kotu, da se vrnete v repozitorij na GitHubu.
+Vnesite sporočilo za commit _(Opis spremembe, ki ste jo naredili v projektu)_ in potrdite svoje spremembe s klikom na `check`. Ko končate z delom na projektu, izberite ikono menija hamburger v zgornjem levem kotu, da se vrnete v repozitorij na GitHubu.
-Čestitke 🎉 Pravkar ste ustvarili svojo spletno stran življenjepisa z uporabo vscode.dev v nekaj korakih.
+Čestitke 🎉 Pravkar ste ustvarili svojo spletno stran z življenjepisom z uporabo vscode.dev v nekaj korakih.
## 🚀 Izziv
-Odprite oddaljeni repozitorij, za katerega imate dovoljenja za urejanje, in posodobite nekaj datotek. Nato poskusite ustvariti novo vejo s svojimi spremembami in ustvariti Pull Request.
+Odprite oddaljeni repozitorij, za katerega imate dovoljenja za spreminjanje, in posodobite nekaj datotek. Nato poskusite ustvariti novo vejo s svojimi spremembami in ustvariti Pull Request.
## Pregled in samostojno učenje
@@ -244,4 +244,4 @@ Preberite več o [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-w
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna napačna razumevanja ali napačne interpretacije, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za strojno prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da se zavedate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/9-chat-project/README.md b/translations/sl/9-chat-project/README.md
new file mode 100644
index 00000000..9e16cf6a
--- /dev/null
+++ b/translations/sl/9-chat-project/README.md
@@ -0,0 +1,389 @@
+
+# Projekt klepeta
+
+Ta projekt klepeta prikazuje, kako zgraditi klepetalnega asistenta z uporabo GitHub Modelov.
+
+Tako izgleda končan projekt:
+
+
+
+
+
+Nekaj konteksta: gradnja klepetalnih asistentov z uporabo generativne umetne inteligence je odličen način za začetek učenja o umetni inteligenci. V tej lekciji se boste naučili, kako integrirati generativno umetno inteligenco v spletno aplikacijo. Začnimo.
+
+## Povezovanje z generativno umetno inteligenco
+
+Za zaledje uporabljamo GitHub Modele. To je odlična storitev, ki omogoča brezplačno uporabo umetne inteligence. Obiščite njihovo testno okolje in pridobite kodo, ki ustreza vašemu izbranemu programskemu jeziku za zaledje. Tako izgleda na [GitHub Models Playground](https://github.com/marketplace/models/azure-openai/gpt-4o-mini/playground).
+
+
+
+
+
+Kot rečeno, izberite zavihek "Code" in svoj izbrani runtime.
+
+
+
+
+
+V tem primeru izberemo Python, kar pomeni, da uporabimo to kodo:
+
+```python
+"""Run this model in Python
+
+> pip install openai
+"""
+import os
+from openai import OpenAI
+
+# To authenticate with the model you will need to generate a personal access token (PAT) in your GitHub settings.
+# Create your PAT token by following instructions here: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
+client = OpenAI(
+ base_url="https://models.github.ai/inference",
+ api_key=os.environ["GITHUB_TOKEN"],
+)
+
+response = client.chat.completions.create(
+ messages=[
+ {
+ "role": "system",
+ "content": "",
+ },
+ {
+ "role": "user",
+ "content": "What is the capital of France?",
+ }
+ ],
+ model="openai/gpt-4o-mini",
+ temperature=1,
+ max_tokens=4096,
+ top_p=1
+)
+
+print(response.choices[0].message.content)
+```
+
+To kodo bomo nekoliko očistili, da bo bolj uporabna:
+
+```python
+def call_llm(prompt: str, system_message: str):
+ response = client.chat.completions.create(
+ messages=[
+ {
+ "role": "system",
+ "content": system_message,
+ },
+ {
+ "role": "user",
+ "content": prompt,
+ }
+ ],
+ model="openai/gpt-4o-mini",
+ temperature=1,
+ max_tokens=4096,
+ top_p=1
+ )
+
+ return response.choices[0].message.content
+```
+
+S to funkcijo `call_llm` lahko zdaj podamo poziv in sistemski poziv, funkcija pa vrne rezultat.
+
+### Prilagoditev AI asistenta
+
+Če želite prilagoditi AI asistenta, lahko določite, kako naj se obnaša, tako da izpolnite sistemski poziv, kot je prikazano:
+
+```python
+call_llm("Tell me about you", "You're Albert Einstein, you only know of things in the time you were alive")
+```
+
+## Izpostavitev prek spletnega API-ja
+
+Odlično, AI del je zaključen, poglejmo, kako ga lahko integriramo v spletni API. Za spletni API smo izbrali Flask, vendar je primeren kateri koli spletni okvir. Tukaj je koda:
+
+```python
+# api.py
+from flask import Flask, request, jsonify
+from llm import call_llm
+from flask_cors import CORS
+
+app = Flask(__name__)
+CORS(app) # * example.com
+
+@app.route("/", methods=["GET"])
+def index():
+ return "Welcome to this API. Call POST /hello with 'message': 'my message' as JSON payload"
+
+
+@app.route("/hello", methods=["POST"])
+def hello():
+ # get message from request body { "message": "do this taks for me" }
+ data = request.get_json()
+ message = data.get("message", "")
+
+ response = call_llm(message, "You are a helpful assistant.")
+ return jsonify({
+ "response": response
+ })
+
+if __name__ == "__main__":
+ app.run(host="0.0.0.0", port=5000)
+```
+
+Tukaj ustvarimo Flask API in definiramo privzeto pot "/" ter "/chat". Slednja je namenjena uporabi s strani našega uporabniškega vmesnika za posredovanje vprašanj.
+
+Za integracijo *llm.py* moramo narediti naslednje:
+
+- Uvoziti funkcijo `call_llm`:
+
+ ```python
+ from llm import call_llm
+ from flask import Flask, request
+ ```
+
+- Poklicati jo iz poti "/chat":
+
+ ```python
+ @app.route("/hello", methods=["POST"])
+ def hello():
+ # get message from request body { "message": "do this taks for me" }
+ data = request.get_json()
+ message = data.get("message", "")
+
+ response = call_llm(message, "You are a helpful assistant.")
+ return jsonify({
+ "response": response
+ })
+ ```
+
+ Tukaj razčlenimo dohodno zahtevo, da pridobimo lastnost `message` iz telesa JSON. Nato pokličemo LLM s tem klicem:
+
+ ```python
+ response = call_llm(message, "You are a helpful assistant")
+
+ # return the response as JSON
+ return jsonify({
+ "response": response
+ })
+ ```
+
+Odlično, zdaj smo naredili, kar je potrebno.
+
+### Konfiguracija Cors
+
+Omeniti moramo, da smo nastavili nekaj, kot je CORS (deljenje virov med različnimi izviri). To pomeni, da ker bosta naše zaledje in uporabniški vmesnik delovala na različnih vratih, moramo omogočiti, da uporabniški vmesnik kliče zaledje. V datoteki *api.py* je del kode, ki to omogoča:
+
+```python
+from flask_cors import CORS
+
+app = Flask(__name__)
+CORS(app) # * example.com
+```
+
+Trenutno je nastavljeno, da dovoljuje "*", kar pomeni vse izvore, kar je nekoliko nevarno. To bi morali omejiti, ko gremo v produkcijo.
+
+## Zagon projekta
+
+Torej, imamo *llm.py* in *api.py*, kako lahko to deluje z zaledjem? Potrebujemo dve stvari:
+
+- Namestitev odvisnosti:
+
+ ```sh
+ cd backend
+ python -m venv venv
+ source ./venv/bin/activate
+
+ pip install openai flask flask-cors openai
+ ```
+
+- Zagon API-ja:
+
+ ```sh
+ python api.py
+ ```
+
+ Če uporabljate Codespaces, morate v spodnjem delu urejevalnika odpreti zavihke za vrata, z desno tipko miške klikniti nanje, izbrati "Port Visibility" in izbrati "Public".
+
+### Delo na uporabniškem vmesniku
+
+Zdaj, ko imamo API, ustvarimo uporabniški vmesnik. Minimalni uporabniški vmesnik, ki ga bomo postopoma izboljšali. V mapi *frontend* ustvarite naslednje:
+
+```text
+backend/
+frontend/
+index.html
+app.js
+styles.css
+```
+
+Začnimo z **index.html**:
+
+```html
+
+
+
+
+
+
+
+
+ Send
+
+
+
+
+```
+
+Zgornje je absolutni minimum, ki ga potrebujete za podporo klepetalnega okna, saj vsebuje besedilno polje, kjer bodo prikazana sporočila, vnosno polje za vnos sporočila in gumb za pošiljanje sporočila zaledju. Poglejmo naslednji JavaScript v *app.js*.
+
+**app.js**
+
+```js
+// app.js
+
+(function(){
+ // 1. set up elements
+ const messages = document.getElementById("messages");
+ const form = document.getElementById("form");
+ const input = document.getElementById("input");
+
+ const BASE_URL = "change this";
+ const API_ENDPOINT = `${BASE_URL}/hello`;
+
+ // 2. create a function that talks to our backend
+ async function callApi(text) {
+ const response = await fetch(API_ENDPOINT, {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({ message: text })
+ });
+ let json = await response.json();
+ return json.response;
+ }
+
+ // 3. add response to our textarea
+ function appendMessage(text, role) {
+ const el = document.createElement("div");
+ el.className = `message ${role}`;
+ el.innerHTML = text;
+ messages.appendChild(el);
+ }
+
+ // 4. listen to submit events
+ form.addEventListener("submit", async(e) => {
+ e.preventDefault();
+ // someone clicked the button in the form
+
+ // get input
+ const text = input.value.trim();
+
+ appendMessage(text, "user")
+
+ // reset it
+ input.value = '';
+
+ const reply = await callApi(text);
+
+ // add to messages
+ appendMessage(reply, "assistant");
+
+ })
+})();
+```
+
+Pojdimo skozi kodo po odsekih:
+
+- 1) Tukaj pridobimo sklice na vse elemente, na katere se bomo sklicevali kasneje v kodi.
+- 2) V tem delu ustvarimo funkcijo, ki uporablja vgrajeno metodo `fetch` za klic našega zaledja.
+- 3) `appendMessage` pomaga dodajati odgovore in tudi to, kar uporabnik vnese.
+- 4) Tukaj poslušamo dogodek oddaje, preberemo vnosno polje, uporabnikovo sporočilo postavimo v besedilno polje, pokličemo API in prikažemo odgovor v besedilnem polju.
+
+Poglejmo še oblikovanje, tukaj lahko resnično ustvarite nekaj po svojem okusu, vendar so tukaj nekateri predlogi:
+
+**styles.css**
+
+```
+.message {
+ background: #222;
+ box-shadow: 0 0 0 10px orange;
+ padding: 10px:
+ margin: 5px;
+}
+
+.message.user {
+ background: blue;
+}
+
+.message.assistant {
+ background: grey;
+}
+```
+
+S temi tremi razredi boste oblikovali sporočila različno, odvisno od tega, ali prihajajo od asistenta ali uporabnika. Če potrebujete navdih, si oglejte mapo `solution/frontend/styles.css`.
+
+### Sprememba osnovnega URL-ja
+
+Ena stvar, ki je tukaj nismo nastavili, je `BASE_URL`. Ta ni znan, dokler zaledje ni zagnano. Za nastavitev:
+
+- Če API zaženete lokalno, bi moral biti nastavljen na nekaj, kot je `http://localhost:5000`.
+- Če ga zaženete v Codespaces, bi moral izgledati nekaj takega: "[name]app.github.dev".
+
+## Naloga
+
+Ustvarite svojo mapo *project* z vsebino, kot je prikazano:
+
+```text
+project/
+ frontend/
+ index.html
+ app.js
+ styles.css
+ backend/
+ api.py
+ llm.py
+```
+
+Kopirajte vsebino iz zgoraj navedenih navodil, vendar jo po želji prilagodite.
+
+## Rešitev
+
+[Rešitev](./solution/README.md)
+
+## Bonus
+
+Poskusite spremeniti osebnost AI asistenta. Ko pokličete `call_llm` v *api.py*, lahko spremenite drugi argument v nekaj po svoji izbiri, na primer:
+
+```python
+call_llm(message, "You are Captain Picard")
+```
+
+Prav tako spremenite CSS in besedilo po svojem okusu, torej naredite spremembe v *index.html* in *styles.css*.
+
+## Povzetek
+
+Odlično, naučili ste se, kako iz nič ustvariti osebnega asistenta z uporabo umetne inteligence. To smo naredili z uporabo GitHub Modelov, zaledja v Pythonu in uporabniškega vmesnika v HTML, CSS in JavaScript.
+
+## Nastavitev s Codespaces
+
+- Pojdite na: [Web Dev For Beginners repo](https://github.com/microsoft/Web-Dev-For-Beginners)
+- Ustvarite iz predloge (prepričajte se, da ste prijavljeni v GitHub) v zgornjem desnem kotu:
+
+ 
+
+- Ko ste v svojem repozitoriju, ustvarite Codespace:
+
+ 
+
+ To bi moralo zagnati okolje, s katerim lahko zdaj delate.
+
+---
+
+**Omejitev odgovornosti**:
+Ta dokument je bil preveden z uporabo storitve za strojno prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/9-chat-project/solution/README.md b/translations/sl/9-chat-project/solution/README.md
new file mode 100644
index 00000000..c2c1f5d3
--- /dev/null
+++ b/translations/sl/9-chat-project/solution/README.md
@@ -0,0 +1,55 @@
+
+# Zagon kode
+
+## Nastavitev
+
+Ustvari virtualno okolje
+
+```sh
+cd backend
+python -m venv venv
+source ./venv/bin/activate
+```
+
+## Namesti odvisnosti
+
+```sh
+pip install openai flask flask-cors
+```
+
+## Zaženi API
+
+```sh
+python api.py
+```
+
+## Zaženi frontend
+
+Prepričaj se, da si v mapi frontend
+
+Poišči *app.js*, spremeni `BASE_URL` na URL svojega backend-a
+
+Zaženi
+
+```
+npx http-server -p 8000
+```
+
+Poskusi vtipkati sporočilo v klepet, moral bi videti odgovor (če to izvajaš v Codespace ali si nastavil dostopni žeton).
+
+## Nastavi dostopni žeton (če tega ne izvajaš v Codespace)
+
+Poglej [Set up PAT](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)
+
+---
+
+**Omejitev odgovornosti**:
+Ta dokument je bil preveden z uporabo storitve za strojno prevajanje [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas opozarjamo, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi izhajale iz uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sl/README.md b/translations/sl/README.md
index fac0ff43..ac6a996a 100644
--- a/translations/sl/README.md
+++ b/translations/sl/README.md
@@ -1,210 +1,208 @@
-[](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
-[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
-[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
-[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
-[](http://makeapullrequest.com)
+Sledite tem korakom, da začnete uporabljati te vire:
+1. **Forkajte repozitorij**: Kliknite [](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork)
+2. **Klonirajte repozitorij**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
+3. [**Pridružite se Azure AI Foundry Discordu in spoznajte strokovnjake ter druge razvijalce**](https://discord.com/invite/ByRwuEEgH4)
-[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
-[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
-[](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
+# Spletni razvoj za začetnike - Kurikulum
-[](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
+Naučite se osnov spletnega razvoja z našim 12-tedenskim celovitim tečajem, ki ga ponujajo Microsoftovi Cloud Advocates. Vsaka od 24 lekcij se poglobi v JavaScript, CSS in HTML prek praktičnih projektov, kot so terariji, razširitve brskalnika in vesoljske igre. Sodelujte v kvizih, razpravah in praktičnih nalogah. Izboljšajte svoje veščine in optimizirajte svoje znanje z našo učinkovito projektno pedagogiko. Začnite svojo kodirno pot danes!
-[](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
+### 🌐 Podpora za več jezikov
-[](https://discord.com/invite/ByRwuEEgH4)
+#### Podprto prek GitHub Action (samodejno in vedno posodobljeno)
-Sledite tem korakom, da začnete uporabljati te vire:
-1. **Forkajte repozitorij**: Kliknite [](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork)
-2. **Klonirajte repozitorij**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
-3. [**Pridružite se Azure AI Foundry Discordu in spoznajte strokovnjake ter druge razvijalce**](https://discord.com/invite/ByRwuEEgH4)
+[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](./README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md)
-# Spletni razvoj za začetnike - Kurikulum
+**Če želite, da so podprti dodatni jeziki, so navedeni [tukaj](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
-Naučite se osnov spletnega razvoja z našim 12-tedenskim celovitim tečajem, ki ga ponujajo Microsoftovi Cloud Advocates. Vsaka od 24 lekcij se poglobi v JavaScript, CSS in HTML prek praktičnih projektov, kot so terariji, razširitve za brskalnike in vesoljske igre. Vključite se v kvize, razprave in praktične naloge. Izboljšajte svoje veščine in optimizirajte svoje znanje z našo učinkovito projektno pedagogiko. Začnite svojo pot kodiranja še danes!
+#### 🧑🎓 _Ste študent?_
-#### 🧑🎓 _Ste študent?_
+Obiščite [**stran Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), kjer boste našli začetne vire, študentske pakete in celo načine za pridobitev brezplačnega certifikata. To je stran, ki jo želite shraniti med zaznamke in občasno preveriti, saj mesečno menjamo vsebino.
-Obiščite [**stran Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), kjer boste našli vire za začetnike, študentske pakete in celo načine za pridobitev brezplačnega potrdila. To je stran, ki jo želite dodati med zaznamke in občasno preveriti, saj vsebino mesečno posodabljamo.
+### 📣 Obvestilo - _Nov projekt za gradnjo z generativno umetno inteligenco_
-### 📣 Obvestilo - _Nov kurikulum_ o generativni umetni inteligenci za JavaScript je pravkar izšel
+Pravkar dodan nov projekt AI Assistant, preverite [projekt](./09-chat-project/README.md)
-Ne zamudite našega novega kurikuluma o generativni umetni inteligenci!
+### 📣 Obvestilo - _Nov kurikulum_ o generativni umetni inteligenci za JavaScript je bil pravkar objavljen
-Obiščite [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) za začetek!
+Ne zamudite našega novega kurikuluma o generativni umetni inteligenci!
-
+Obiščite [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course), da začnete!
-- Lekcije, ki pokrivajo vse od osnov do RAG.
-- Interakcija z zgodovinskimi osebnostmi z uporabo GenAI in naše spremljevalne aplikacije.
-- Zabavna in privlačna pripoved, potovali boste skozi čas!
+
-
+- Lekcije, ki pokrivajo vse od osnov do RAG.
+- Interakcija z zgodovinskimi osebnostmi z uporabo GenAI in naše spremljevalne aplikacije.
+- Zabavna in privlačna pripoved, potovali boste skozi čas!
-Vsaka lekcija vključuje nalogo za dokončanje, preverjanje znanja in izziv, ki vas vodi pri učenju tem, kot so:
-- Oblikovanje pozivov in inženiring pozivov
-- Generiranje aplikacij za besedilo in slike
-- Aplikacije za iskanje
+
-Obiščite [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) za začetek!
+Vsaka lekcija vključuje nalogo za dokončanje, preverjanje znanja in izziv, ki vas vodi pri učenju tem, kot so:
+- Oblikovanje pozivov in inženiring pozivov
+- Generiranje aplikacij za besedilo in slike
+- Iskalne aplikacije
-## 🌱 Začetek
+Obiščite [https://aka.ms/genai-js-course](../../[https:/aka.ms/genai-js-course), da začnete!
-> **Učitelji**, [vključili smo nekaj predlogov](for-teachers.md) o tem, kako uporabiti ta kurikulum. Veseli bomo vaših povratnih informacij [v našem forumu za razprave](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
-**[Učenci](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, za vsako lekcijo začnite s kvizom pred predavanjem, nato preberite gradivo za predavanje, dokončajte različne aktivnosti in preverite svoje razumevanje s kvizom po predavanju.
-Za izboljšanje učne izkušnje se povežite s svojimi vrstniki in skupaj delajte na projektih! Razprave so dobrodošle v našem [forumu za razprave](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), kjer bo naša ekipa moderatorjev na voljo za odgovore na vaša vprašanja.
+## 🌱 Začetek
-Za nadaljnje izobraževanje toplo priporočamo raziskovanje [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) za dodatno študijsko gradivo.
+> **Učitelji**, [vključili smo nekaj predlogov](for-teachers.md) o tem, kako uporabiti ta kurikulum. Veseli bomo vaših povratnih informacij [v našem forumu za razprave](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
-### 📋 Nastavitev okolja
+**[Učenci](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, za vsako lekcijo začnite s kvizom pred predavanjem, nadaljujte z branjem gradiva predavanja, dokončajte različne aktivnosti in preverite svoje razumevanje s kvizom po predavanju.
-Ta kurikulum ima pripravljeno razvojno okolje! Ko začnete, lahko izberete, ali želite kurikulum zagnati v [Codespace](https://github.com/features/codespaces/) (_okolje, ki temelji na brskalniku, brez potrebnih namestitev_) ali lokalno na svojem računalniku z uporabo urejevalnika besedila, kot je [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
+Da izboljšate svojo izkušnjo učenja, se povežite s svojimi vrstniki in skupaj delajte na projektih! Razprave so spodbujene v našem [forum za razprave](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), kjer bo naša ekipa moderatorjev na voljo za odgovore na vaša vprašanja.
-#### Ustvarite svoj repozitorij
-Da boste svoje delo enostavno shranili, priporočamo, da ustvarite svojo kopijo tega repozitorija. To lahko storite s klikom na gumb **Use this template** na vrhu strani. To bo ustvarilo nov repozitorij v vašem GitHub računu s kopijo kurikuluma.
+Za nadaljnje izobraževanje toplo priporočamo raziskovanje [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) za dodatne študijske materiale.
-Sledite tem korakom:
-1. **Forkajte repozitorij**: Kliknite gumb "Fork" v zgornjem desnem kotu te strani.
-2. **Klonirajte repozitorij**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
+### 📋 Nastavitev vašega okolja
-#### Zagon kurikuluma v Codespace
+Ta kurikulum ima razvojno okolje, ki je pripravljeno za uporabo! Ko začnete, lahko izberete, da kurikulum zaženete v [Codespace](https://github.com/features/codespaces/) (_okolje, ki temelji na brskalniku, brez potrebnih namestitev_), ali lokalno na vašem računalniku z uporabo urejevalnika besedila, kot je [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
-V svoji kopiji tega repozitorija, ki ste jo ustvarili, kliknite gumb **Code** in izberite **Open with Codespaces**. To bo ustvarilo nov Codespace, v katerem lahko delate.
+#### Ustvarite svoj repozitorij
+Da boste lahko enostavno shranili svoje delo, priporočamo, da ustvarite svojo kopijo tega repozitorija. To lahko storite s klikom na gumb **Use this template** na vrhu strani. To bo ustvarilo nov repozitorij v vašem GitHub računu s kopijo kurikuluma.
-[!Codespace](../..)./images/createcodespace.png)
+Sledite tem korakom:
+1. **Forkajte repozitorij**: Kliknite na gumb "Fork" v zgornjem desnem kotu te strani.
+2. **Klonirajte repozitorij**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
-#### Zagon kurikuluma lokalno na vašem računalniku
+#### Zagon kurikuluma v Codespace
-Za zagon tega kurikuluma lokalno na vašem računalniku boste potrebovali urejevalnik besedila, brskalnik in orodje za ukazno vrstico. Naša prva lekcija, [Uvod v programske jezike in orodja](../../1-getting-started-lessons/1-intro-to-programming-languages), vas bo vodila skozi različne možnosti za vsako od teh orodij, da izberete, kaj vam najbolj ustreza.
+V vaši kopiji tega repozitorija, ki ste jo ustvarili, kliknite gumb **Code** in izberite **Open with Codespaces**. To bo ustvarilo nov Codespace, v katerem lahko delate.
-Naše priporočilo je uporaba [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) kot urejevalnika, ki ima tudi vgrajen [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Visual Studio Code lahko prenesete [tukaj](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
+[!Codespace](../..)./images/createcodespace.png)
-1. Klonirajte svoj repozitorij na računalnik. To lahko storite s klikom na gumb **Code** in kopiranjem URL-ja:
+#### Zagon kurikuluma lokalno na vašem računalniku
- [!CodeSpace](./images/createcodespace.png)
+Da zaženete ta kurikulum lokalno na vašem računalniku, boste potrebovali urejevalnik besedila, brskalnik in orodje za ukazno vrstico. Naša prva lekcija, [Uvod v programske jezike in orodja](../../1-getting-started-lessons/1-intro-to-programming-languages), vas bo vodila skozi različne možnosti za vsako od teh orodij, da izberete tisto, kar vam najbolj ustreza.
- Nato odprite [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) znotraj [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) in zaženite naslednji ukaz, pri čemer zamenjajte `` z URL-jem, ki ste ga pravkar kopirali:
+Naše priporočilo je, da uporabite [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) kot vaš urejevalnik, ki ima tudi vgrajen [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Visual Studio Code lahko prenesete [tukaj](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
+
+1. Klonirajte svoj repozitorij na vaš računalnik. To lahko storite s klikom na gumb **Code** in kopiranjem URL-ja:
+
+ [!CodeSpace](./images/createcodespace.png)
+
+ Nato odprite [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) znotraj [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) in zaženite naslednji ukaz, pri čemer zamenjajte `` z URL-jem, ki ste ga pravkar kopirali:
```bash
git clone
- ```
-
-2. Odprite mapo v Visual Studio Code. To lahko storite s klikom na **File** > **Open Folder** in izbiro mape, ki ste jo pravkar klonirali.
-
-> Priporočene razširitve za Visual Studio Code:
->
-> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - za predogled HTML strani znotraj Visual Studio Code
-> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - za hitrejše pisanje kode
-
-## 📂 Vsaka lekcija vključuje:
-
-- opcijski sketchnote
-- opcijski dopolnilni video
-- kviz za ogrevanje pred lekcijo
-- pisno lekcijo
-- za projektno usmerjene lekcije, vodnike po korakih za gradnjo projekta
-- preverjanje znanja
-- izziv
-- dopolnilno branje
-- nalogo
-- [kviz po lekciji](https://ff-quizzes.netlify.app/web/)
-
-> **Opomba o kvizih**: Vsi kvizi so v mapi Quiz-app, skupaj 48 kvizov s po tremi vprašanji. Na voljo so [tukaj](https://ff-quizzes.netlify.app/web/), aplikacijo za kvize pa lahko zaženete lokalno ali jo namestite na Azure; sledite navodilom v mapi `quiz-app`.
-
-## 🗃️ Lekcije
-
-| | Ime projekta | Pojmi, ki se učijo | Učni cilji | Povezana lekcija | Avtor |
-| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
-| 01 | Začetek dela | Uvod v programiranje in orodja za delo | Naučite se osnovnih temeljev večine programskih jezikov in o programski opremi, ki pomaga profesionalnim razvijalcem pri delu | [Uvod v programske jezike in orodja](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
-| 02 | Začetek dela | Osnove GitHuba, vključno z delom v ekipi | Kako uporabljati GitHub v svojem projektu, kako sodelovati z drugimi na kodi | [Uvod v GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
-| 03 | Začetek dela | Dostopnost | Naučite se osnov spletne dostopnosti | [Osnove dostopnosti](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
-| 04 | Osnove JS | Podatkovni tipi v JavaScriptu | Osnove podatkovnih tipov v JavaScriptu | [Podatkovni tipi](./2-js-basics/1-data-types/README.md) | Jasmine |
-| 05 | Osnove JS | Funkcije in metode | Naučite se o funkcijah in metodah za upravljanje logičnega toka aplikacije | [Funkcije in metode](./2-js-basics/2-functions-methods/README.md) | Jasmine in Christopher |
-| 06 | Osnove JS | Sprejemanje odločitev z JS | Naučite se ustvarjati pogoje v kodi z uporabo metod za sprejemanje odločitev | [Sprejemanje odločitev](./2-js-basics/3-making-decisions/README.md) | Jasmine |
-| 07 | Osnove JS | Tabele in zanke | Delo s podatki z uporabo tabel in zank v JavaScriptu | [Tabele in zanke](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
-| 08 | [Terarij](./3-terrarium/solution/README.md) | HTML v praksi | Zgradite HTML za ustvarjanje spletnega terarija, osredotočite se na postavitev | [Uvod v HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
-| 09 | [Terarij](./3-terrarium/solution/README.md) | CSS v praksi | Zgradite CSS za oblikovanje spletnega terarija, osredotočite se na osnove CSS, vključno z odzivnostjo strani | [Uvod v CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
-| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript zapiranja, manipulacija DOM-a | Ustvarite JavaScript, ki omogoča delovanje terarija kot vmesnika za povleci/spusti, s poudarkom na zapiranjih in manipulaciji DOM-a | [JavaScript zapiranja, manipulacija DOM-a](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
-| 11 | [Igra tipkanja](./4-typing-game/solution/README.md) | Ustvarite igro tipkanja | Naučite se uporabljati dogodke tipkovnice za upravljanje logike vaše JavaScript aplikacije | [Programiranje na podlagi dogodkov](./4-typing-game/typing-game/README.md) | Christopher |
-| 12 | [Zelena razširitev brskalnika](./5-browser-extension/solution/README.md) | Delo z brskalniki | Naučite se, kako delujejo brskalniki, njihovo zgodovino in kako pripraviti prve elemente razširitve brskalnika | [O brskalnikih](./5-browser-extension/1-about-browsers/README.md) | Jen |
-| 13 | [Zelena razširitev brskalnika](./5-browser-extension/solution/README.md) | Ustvarjanje obrazca, klicanje API-ja in shranjevanje spremenljivk v lokalni pomnilnik | Ustvarite JavaScript elemente razširitve brskalnika za klicanje API-ja z uporabo spremenljivk, shranjenih v lokalnem pomnilniku | [API-ji, obrazci in lokalni pomnilnik](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
-| 14 | [Zelena razširitev brskalnika](./5-browser-extension/solution/README.md) | Ozadni procesi v brskalniku, spletna zmogljivost | Uporabite ozadne procese brskalnika za upravljanje ikone razširitve; naučite se o spletni zmogljivosti in optimizacijah | [Ozadne naloge in zmogljivost](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
-| 15 | [Vesoljska igra](./6-space-game/solution/README.md) | Naprednejši razvoj iger z JavaScriptom | Naučite se o dedovanju z uporabo razredov in kompozicije ter o vzorcu Pub/Sub, kot pripravo na ustvarjanje igre | [Uvod v napredni razvoj iger](./6-space-game/1-introduction/README.md) | Chris |
-| 16 | [Vesoljska igra](./6-space-game/solution/README.md) | Risanje na platno | Naučite se o API-ju Canvas, ki se uporablja za risanje elementov na zaslon | [Risanje na platno](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
-| 17 | [Vesoljska igra](./6-space-game/solution/README.md) | Premikanje elementov po zaslonu | Odkrijte, kako lahko elementi pridobijo gibanje z uporabo kartezičnih koordinat in API-ja Canvas | [Premikanje elementov](./6-space-game/3-moving-elements-around/README.md) | Chris |
-| 18 | [Vesoljska igra](./6-space-game/solution/README.md) | Zaznavanje trkov | Naredite, da se elementi zaletijo in reagirajo drug na drugega z uporabo pritiskov tipk ter dodajte funkcijo ohlajanja za zmogljivost igre | [Zaznavanje trkov](./6-space-game/4-collision-detection/README.md) | Chris |
-| 19 | [Vesoljska igra](./6-space-game/solution/README.md) | Beleženje točk | Izvajajte matematične izračune na podlagi stanja igre in zmogljivosti | [Beleženje točk](./6-space-game/5-keeping-score/README.md) | Chris |
-| 20 | [Vesoljska igra](./6-space-game/solution/README.md) | Končanje in ponovni zagon igre | Naučite se o končanju in ponovnem zagonu igre, vključno s čiščenjem sredstev in ponastavitvijo vrednosti spremenljivk | [Pogoji za konec igre](./6-space-game/6-end-condition/README.md) | Chris |
-| 21 | [Bančna aplikacija](./7-bank-project/solution/README.md) | HTML predloge in poti v spletni aplikaciji | Naučite se, kako ustvariti zasnovo arhitekture večstranske spletne strani z uporabo usmerjanja in HTML predlog | [HTML predloge in poti](./7-bank-project/1-template-route/README.md) | Yohan |
-| 22 | [Bančna aplikacija](./7-bank-project/solution/README.md) | Ustvarjanje obrazca za prijavo in registracijo | Naučite se o ustvarjanju obrazcev in upravljanju rutine za validacijo | [Obrazci](./7-bank-project/2-forms/README.md) | Yohan |
-| 23 | [Bančna aplikacija](./7-bank-project/solution/README.md) | Metode pridobivanja in uporabe podatkov | Kako podatki tečejo v in iz vaše aplikacije, kako jih pridobiti, shraniti in odstraniti | [Podatki](./7-bank-project/3-data/README.md) | Yohan |
-| 24 | [Bančna aplikacija](./7-bank-project/solution/README.md) | Koncepti upravljanja stanja | Naučite se, kako vaša aplikacija ohranja stanje in kako ga programatično upravljati | [Upravljanje stanja](./7-bank-project/4-state-management/README.md) | Yohan |
-
+ ```
+
+2. Odprite mapo v Visual Studio Code. To lahko storite s klikom na **File**
+> **Odpri mapo** in izberi mapo, ki si jo pravkar kloniral.
+> Priporočene razširitve za Visual Studio Code:
+>
+> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - za predogled HTML strani znotraj Visual Studio Code
+> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - za hitrejše pisanje kode
+
+## 📂 Vsaka lekcija vključuje:
+
+- opcijsko sketchnote
+- opcijski dopolnilni video
+- kviz za ogrevanje pred lekcijo
+- pisno lekcijo
+- za projektno usmerjene lekcije, vodnik po korakih za izdelavo projekta
+- preverjanje znanja
+- izziv
+- dodatno branje
+- nalogo
+- [kviz po lekciji](https://ff-quizzes.netlify.app/web/)
+
+> **Opomba o kvizih**: Vsi kvizi so shranjeni v mapi Quiz-app, skupaj 48 kvizov, vsak s tremi vprašanji. Na voljo so [tukaj](https://ff-quizzes.netlify.app/web/), aplikacijo za kvize pa lahko zaženete lokalno ali jo namestite na Azure; sledite navodilom v mapi `quiz-app`.
+
+## 🗃️ Lekcije
+
+| | Ime projekta | Naučeni koncepti | Cilji učenja | Povezana lekcija | Avtor |
+| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
+| 01 | Začetek | Uvod v programiranje in orodja za delo | Spoznajte osnovne temelje večine programskih jezikov in programsko opremo, ki pomaga profesionalnim razvijalcem pri delu | [Uvod v programske jezike in orodja za delo](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
+| 02 | Začetek | Osnove GitHuba, vključno z delom v ekipi | Kako uporabljati GitHub v svojem projektu in sodelovati z drugimi na kodi | [Uvod v GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
+| 03 | Začetek | Dostopnost | Spoznajte osnove spletne dostopnosti | [Osnove dostopnosti](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
+| 04 | Osnove JS | JavaScript podatkovni tipi | Osnove podatkovnih tipov v JavaScriptu | [Podatkovni tipi](./2-js-basics/1-data-types/README.md) | Jasmine |
+| 05 | Osnove JS | Funkcije in metode | Spoznajte funkcije in metode za upravljanje logičnega toka aplikacije | [Funkcije in metode](./2-js-basics/2-functions-methods/README.md) | Jasmine in Christopher |
+| 06 | Osnove JS | Sprejemanje odločitev z JS | Naučite se ustvarjati pogoje v kodi z metodami za sprejemanje odločitev | [Sprejemanje odločitev](./2-js-basics/3-making-decisions/README.md) | Jasmine |
+| 07 | Osnove JS | Tabele in zanke | Delo s podatki z uporabo tabel in zank v JavaScriptu | [Tabele in zanke](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
+| 08 | [Terarij](./3-terrarium/solution/README.md) | HTML v praksi | Zgradite HTML za ustvarjanje spletnega terarija, osredotočite se na postavitev | [Uvod v HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
+| 09 | [Terarij](./3-terrarium/solution/README.md) | CSS v praksi | Zgradite CSS za oblikovanje spletnega terarija, osredotočite se na osnove CSS, vključno z odzivnostjo strani | [Uvod v CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
+| 10 | [Terarij](./3-terrarium/solution/README.md) | JavaScript zapiranja, manipulacija DOM | Zgradite JavaScript za delovanje terarija kot vmesnika za povleci/spusti, osredotočite se na zapiranja in manipulacijo DOM | [JavaScript zapiranja, manipulacija DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
+| 11 | [Igra tipkanja](./4-typing-game/solution/README.md) | Zgradite igro tipkanja | Naučite se uporabljati dogodke tipkovnice za upravljanje logike vaše JavaScript aplikacije | [Programiranje na podlagi dogodkov](./4-typing-game/typing-game/README.md) | Christopher |
+| 12 | [Zeleni brskalniški dodatek](./5-browser-extension/solution/README.md) | Delo z brskalniki | Spoznajte, kako delujejo brskalniki, njihovo zgodovino in kako pripraviti prve elemente brskalniškega dodatka | [O brskalnikih](./5-browser-extension/1-about-browsers/README.md) | Jen |
+| 13 | [Zeleni brskalniški dodatek](./5-browser-extension/solution/README.md) | Izdelava obrazca, klicanje API-ja in shranjevanje spremenljivk v lokalni shrambi | Zgradite JavaScript elemente brskalniškega dodatka za klicanje API-ja z uporabo spremenljivk, shranjenih v lokalni shrambi | [API-ji, obrazci in lokalna shramba](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
+| 14 | [Zeleni brskalniški dodatek](./5-browser-extension/solution/README.md) | Procesi v ozadju brskalnika, spletna zmogljivost | Uporabite procese v ozadju brskalnika za upravljanje ikone dodatka; spoznajte spletno zmogljivost in nekatere optimizacije za izboljšanje | [Naloge v ozadju in zmogljivost](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
+| 15 | [Vesoljska igra](./6-space-game/solution/README.md) | Naprednejši razvoj iger z JavaScriptom | Spoznajte dedovanje z uporabo razredov in kompozicije ter vzorec Pub/Sub, kot pripravo na izdelavo igre | [Uvod v napredni razvoj iger](./6-space-game/1-introduction/README.md) | Chris |
+| 16 | [Vesoljska igra](./6-space-game/solution/README.md) | Risanje na platno | Spoznajte API Canvas, ki se uporablja za risanje elementov na zaslon | [Risanje na platno](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
+| 17 | [Vesoljska igra](./6-space-game/solution/README.md) | Premikanje elementov po zaslonu | Spoznajte, kako lahko elementi pridobijo gibanje z uporabo kartezičnih koordinat in API-ja Canvas | [Premikanje elementov](./6-space-game/3-moving-elements-around/README.md) | Chris |
+| 18 | [Vesoljska igra](./6-space-game/solution/README.md) | Zaznavanje trkov | Naredite, da se elementi zaletijo in reagirajo drug na drugega z uporabo tipk ter zagotovite funkcijo ohlajanja za zmogljivost igre | [Zaznavanje trkov](./6-space-game/4-collision-detection/README.md) | Chris |
+| 19 | [Vesoljska igra](./6-space-game/solution/README.md) | Beleženje točk | Izvajajte matematične izračune na podlagi stanja igre in zmogljivosti | [Beleženje točk](./6-space-game/5-keeping-score/README.md) | Chris |
+| 20 | [Vesoljska igra](./6-space-game/solution/README.md) | Končanje in ponovni zagon igre | Spoznajte, kako končati in ponovno zagnati igro, vključno s čiščenjem sredstev in ponastavitvijo vrednosti spremenljivk | [Pogoji za konec](./6-space-game/6-end-condition/README.md) | Chris |
+| 21 | [Bančna aplikacija](./7-bank-project/solution/README.md) | HTML predloge in poti v spletni aplikaciji | Spoznajte, kako ustvariti zasnovo arhitekture večstranske spletne strani z uporabo usmerjanja in HTML predlog | [HTML predloge in poti](./7-bank-project/1-template-route/README.md) | Yohan |
+| 22 | [Bančna aplikacija](./7-bank-project/solution/README.md) | Izdelava obrazca za prijavo in registracijo | Spoznajte izdelavo obrazcev in upravljanje rutine za preverjanje | [Obrazci](./7-bank-project/2-forms/README.md) | Yohan |
+| 23 | [Bančna aplikacija](./7-bank-project/solution/README.md) | Metode pridobivanja in uporabe podatkov | Kako podatki tečejo v in iz vaše aplikacije, kako jih pridobiti, shraniti in odstraniti | [Podatki](./7-bank-project/3-data/README.md) | Yohan |
+| 24 | [Bančna aplikacija](./7-bank-project/solution/README.md) | Koncepti upravljanja stanja | Spoznajte, kako vaša aplikacija ohranja stanje in kako ga programirati | [Upravljanje stanja](./7-bank-project/4-state-management/README.md) | Yohan |
+| 25 | [Brskalnik/VScode koda](../../8-code-editor) | Delo z VScode | Spoznajte uporabo urejevalnika kode | [Uporaba urejevalnika kode VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
+| 26 | [AI pomočniki](./9-chat-project/README.md) | Delo z AI | Spoznajte, kako zgraditi svojega AI pomočnika | [Projekt AI pomočnika](./9-chat-project/README.md) | Chris |
## 🏫 Pedagogika
-Naš učni načrt temelji na dveh ključnih pedagoških načelih:
+Naš učni načrt je zasnovan z dvema ključnima pedagoškima načeloma:
* učenje na podlagi projektov
* pogosti kvizi
-Program poučuje osnove JavaScripta, HTML-a in CSS-a ter najnovejša orodja in tehnike, ki jih uporabljajo sodobni spletni razvijalci. Študenti bodo pridobili praktične izkušnje z ustvarjanjem igre tipkanja, virtualnega terarija, okolju prijazne razširitve brskalnika, igre v slogu vesoljskih napadalcev in bančne aplikacije za podjetja. Do konca serije bodo študenti pridobili trdno razumevanje spletnega razvoja.
-
+Program poučuje osnove JavaScripta, HTML-ja in CSS-ja ter najnovejša orodja in tehnike, ki jih uporabljajo sodobni spletni razvijalci. Študenti bodo imeli priložnost pridobiti praktične izkušnje z izdelavo igre tipkanja, virtualnega terarija, okolju prijaznega brskalniškega dodatka, igre v slogu vesoljskih napadalcev in bančne aplikacije za podjetja. Do konca serije bodo študenti pridobili trdno razumevanje spletnega razvoja.
-> 🎓 Prve lekcije tega učnega načrta lahko opravite kot [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) na Microsoft Learn!
+> 🎓 Prve lekcije v tem učnem načrtu lahko opravite kot [učna pot](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) na Microsoft Learn!
-Z zagotavljanjem, da vsebina ustreza projektom, je proces za študente bolj privlačen, koncepti pa se bolje ohranijo. Poleg tega smo pripravili več začetnih lekcij o osnovah JavaScripta za uvod v koncepte, skupaj z videoposnetkom iz zbirke "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)", katere avtorji so prispevali k temu učnemu načrtu.
+Z zagotavljanjem, da vsebina ustreza projektom, je proces za študente bolj privlačen, koncepti pa se bolje ohranijo. Poleg tega smo napisali več začetnih lekcij o osnovah JavaScripta za uvod v koncepte, skupaj z videom iz zbirke "[Serija za začetnike: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)", katere avtorji so prispevali k temu učnemu načrtu.
-Poleg tega nizko-stresni kviz pred predavanjem usmeri pozornost študenta na učenje teme, medtem ko drugi kviz po predavanju zagotavlja boljše ohranjanje znanja. Ta učni načrt je bil zasnovan tako, da je prilagodljiv in zabaven ter ga je mogoče opraviti v celoti ali delno. Projekti se začnejo majhni in postajajo vse bolj zapleteni do konca 12-tedenskega cikla.
+Poleg tega nizko-stresni kviz pred poukom usmeri študentovo pozornost na učenje teme, medtem ko drugi kviz po pouku zagotavlja nadaljnje ohranjanje znanja. Ta učni načrt je bil zasnovan tako, da je prilagodljiv in zabaven ter ga je mogoče opraviti v celoti ali delno. Projekti se začnejo majhni in postajajo vse bolj kompleksni do konca 12-tedenskega cikla.
-Čeprav smo se namerno izognili uvajanju JavaScript ogrodij, da se osredotočimo na osnovne veščine, potrebne kot spletni razvijalec pred sprejetjem ogrodja, bi bil dober naslednji korak po zaključku tega učnega načrta učenje o Node.js prek druge zbirke videoposnetkov: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
+Čeprav smo se namerno izognili uvajanju JavaScript ogrodij, da bi se osredotočili na osnovne veščine, potrebne kot spletni razvijalec pred sprejetjem ogrodja, bi bil dober naslednji korak po zaključku tega učnega načrta učenje o Node.js prek druge zbirke videov: "[Serija za začetnike: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
-> Obiščite naše [Kodeks ravnanja](CODE_OF_CONDUCT.md) in [Smernice za prispevanje](CONTRIBUTING.md). Veseli bomo vaših konstruktivnih povratnih informacij!
+> Obiščite naš [Kodeks ravnanja](CODE_OF_CONDUCT.md) in [Smernice za prispevanje](CONTRIBUTING.md). Veseli bomo vaših konstruktivnih povratnih informacij!
## 🧭 Dostop brez povezave
-To dokumentacijo lahko zaženete brez povezave z uporabo [Docsify](https://docsify.js.org/#/). Forkajte to repozitorij, [namestite Docsify](https://docsify.js.org/#/quickstart) na vaš lokalni računalnik, nato pa v korenski mapi tega repozitorija vnesite `docsify serve`. Spletna stran bo na voljo na portu 3000 na vašem localhostu: `localhost:3000`.
+To dokumentacijo lahko zaženete brez povezave z uporabo [Docsify](https://docsify.js.org/#/). Forkajte to repozitorij, [namestite Docsify](https://docsify.js.org/#/quickstart) na svojo lokalno napravo, nato pa v korenski mapi tega repozitorija vnesite `docsify serve`. Spletna stran bo na voljo na portu 3000 na vašem localhostu: `localhost:3000`.
## 📘 PDF
-PDF vseh lekcij najdete [tukaj](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
+PDF vseh lekcij je na voljo [tukaj](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 Drugi tečaji
-Naša ekipa ustvarja tudi druge tečaje! Oglejte si:
+Naša ekipa pripravlja tudi druge tečaje! Oglejte si:
- [Generativna AI za začetnike](https://aka.ms/genai-beginners)
- [Generativna AI za začetnike .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [Generativna AI z JavaScriptom](https://github.com/microsoft/generative-ai-with-javascript)
- [Generativna AI z Javo](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [AI za začetnike](https://aka.ms/ai-beginners)
-- [Podatkovna znanost za začetnike](https://aka.ms/datascience-beginners)
-- [ML za začetnike](https://aka.ms/ml-beginners)
-- [Kibernetska varnost za začetnike](https://github.com/microsoft/Security-101)
-- [Spletni razvoj za začetnike](https://aka.ms/webdev-beginners)
-- [IoT za začetnike](https://aka.ms/iot-beginners)
-- [XR razvoj za začetnike](https://github.com/microsoft/xr-development-for-beginners)
-- [Obvladovanje GitHub Copilota za agentno uporabo](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
-- [Obvladovanje GitHub Copilota za razvijalce C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
-- [Izberite svojo Copilot pustolovščino](https://github.com/microsoft/CopilotAdventures)
+- [Osnove podatkovne znanosti](https://aka.ms/datascience-beginners)
+- [Osnove strojnega učenja](https://aka.ms/ml-beginners)
+- [Osnove kibernetske varnosti](https://github.com/microsoft/Security-101)
+- [Osnove spletnega razvoja](https://aka.ms/webdev-beginners)
+- [Osnove interneta stvari (IoT)](https://aka.ms/iot-beginners)
+- [Osnove razvoja XR](https://github.com/microsoft/xr-development-for-beginners)
+- [Obvladovanje GitHub Copilot za agentno uporabo](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
+- [Obvladovanje GitHub Copilot za razvijalce C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
+- [Izberi svojo Copilot pustolovščino](https://github.com/microsoft/CopilotAdventures)
-## Licenca
+## Licenca
-Ta repozitorij je licenciran pod licenco MIT. Več informacij najdete v datoteki [LICENSE](../../LICENSE).
+Ta repozitorij je licenciran pod licenco MIT. Za več informacij si oglejte datoteko [LICENSE](../../LICENSE).
---
**Omejitev odgovornosti**:
-Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
+Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.
\ No newline at end of file
diff --git a/translations/sr/1-getting-started-lessons/1-intro-to-programming-languages/README.md b/translations/sr/1-getting-started-lessons/1-intro-to-programming-languages/README.md
index 7fbfcb38..cafc15cd 100644
--- a/translations/sr/1-getting-started-lessons/1-intro-to-programming-languages/README.md
+++ b/translations/sr/1-getting-started-lessons/1-intro-to-programming-languages/README.md
@@ -1,15 +1,15 @@
-# Увод у програмске језике и алате заната
+# Увод у програмске језике и алате за рад
-Ова лекција покрива основе програмских језика. Теме које су овде обрађене примењују се на већину савремених програмских језика данас. У одељку „Алати заната“ научићете о корисном софтверу који вам помаже као програмеру.
+Ова лекција покрива основе програмских језика. Теме које су овде обрађене примењују се на већину савремених програмских језика данас. У делу „Алати за рад“ научићете о корисном софтверу који вам помаже као програмеру.

> Скетч од [Tomomi Imura](https://twitter.com/girlie_mac)
@@ -17,34 +17,34 @@ CO_OP_TRANSLATOR_METADATA:
## Квиз пре предавања
[Квиз пре предавања](https://forms.office.com/r/dru4TE0U9n?origin=lprLink)
-## Увод
+## Увод
-У овој лекцији ћемо обрадити:
+У овој лекцији обрадићемо:
- Шта је програмирање?
- Типови програмских језика
- Основни елементи програма
- Корисни софтвер и алати за професионалног програмера
-> Ову лекцију можете пратити на [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
+> Ову лекцију можете проћи на [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
-## Шта је програмирање?
+## Шта је програмирање?
-Програмирање (познато и као кодирање) је процес писања упутстава за уређај као што је рачунар или мобилни уређај. Ова упутства пишемо помоћу програмског језика, који уређај затим интерпретира. Ови скупови упутстава могу се називати различитим именима, али *програм*, *рачунарски програм*, *апликација (апликација)* и *извршни фајл* су нека од популарних имена.
+Програмирање (познато и као кодирање) је процес писања упутстава за уређај као што је рачунар или мобилни уређај. Ова упутства пишемо помоћу програмског језика, који уређај затим интерпретира. Овај сет упутстава може се називати различитим именима, али *програм*, *рачунарски програм*, *апликација (апп)* и *извршни фајл* су нека од популарних имена.
-*Програм* може бити било шта што је написано кодом; веб-сајтови, игре и апликације за телефоне су програми. Иако је могуће направити програм без писања кода, основна логика се интерпретира од стране уређаја, а та логика је највероватније написана кодом. Програм који *ради* или *извршава* код спроводи упутства. Уређај на ком читате ову лекцију покреће програм који је приказује на вашем екрану.
+*Програм* може бити било шта што је написано кодом; веб-сајтови, игре и апликације за телефоне су програми. Иако је могуће направити програм без писања кода, основна логика се интерпретира од стране уређаја, а та логика је највероватније написана кодом. Програм који *ради* или *извршава* код спроводи упутства. Уређај на којем читате ову лекцију покреће програм који је приказује на вашем екрану.
✅ Урадите мало истраживање: ко се сматра првим програмером на свету?
-## Програмски језици
+## Програмски језици
-Програмски језици омогућавају програмерима да пишу упутства за уређај. Уређаји могу разумети само бинарни код (1 и 0), а за *већину* програмера то није баш ефикасан начин комуникације. Програмски језици су средство комуникације између људи и рачунара.
+Програмски језици омогућавају програмерима да пишу упутства за уређај. Уређаји могу разумети само бинарни код (1 и 0), а за *већину* програмера то није ефикасан начин комуникације. Програмски језици су средство комуникације између људи и рачунара.
-Програмски језици долазе у различитим форматима и могу служити различитим сврхама. На пример, JavaScript се углавном користи за веб апликације, док се Bash углавном користи за оперативне системе.
+Програмски језици долазе у различитим форматима и могу служити различитим сврхама. На пример, JavaScript се углавном користи за веб апликације, док се Bash углавном користи за оперативне системе.
-*Језици ниског нивоа* обично захтевају мање корака него *језици високог нивоа* да би уређај интерпретирао упутства. Међутим, оно што чини језике високог нивоа популарним је њихова читљивост и подршка. JavaScript се сматра језиком високог нивоа.
+*Језици ниског нивоа* обично захтевају мање корака него *језици високог нивоа* да би уређај интерпретирао упутства. Међутим, оно што чини језике високог нивоа популарним јесте њихова читљивост и подршка. JavaScript се сматра језиком високог нивоа.
-Следећи код илуструје разлику између језика високог нивоа са JavaScript-ом и језика ниског нивоа са ARM асемблерским кодом.
+Следећи код илуструје разлику између језика високог нивоа (JavaScript) и језика ниског нивоа (ARM асемблерски код).
```javascript
let number = 10
@@ -56,7 +56,7 @@ for (let i = 1; i <= number; i++) {
n1 = n2;
n2 = nextTerm;
}
-```
+```
```c
area ascen,code,readonly
@@ -81,44 +81,44 @@ back add r0,r1
cmp r4,#00
bne back
end
-```
+```
-Веровали или не, *оба раде исту ствар*: исписују Фибоначијев низ до 10.
+Веровали или не, *оба раде исту ствар*: штампају Фибоначијев низ до 10.
-✅ Фибоначијев низ је [дефинисан](https://en.wikipedia.org/wiki/Fibonacci_number) као скуп бројева где је сваки број збир два претходна, почевши од 0 и 1. Првих 10 бројева у Фибоначијевом низу су 0, 1, 1, 2, 3, 5, 8, 13, 21 и 34.
+✅ Фибоначијев низ је [дефинисан](https://en.wikipedia.org/wiki/Fibonacci_number) као сет бројева где је сваки број збир два претходна, почевши од 0 и 1. Првих 10 бројева у Фибоначијевом низу су 0, 1, 1, 2, 3, 5, 8, 13, 21 и 34.
-## Елементи програма
+## Елементи програма
-Једна инструкција у програму назива се *изјава* и обично има карактер или размак који означава где се инструкција завршава, или *терминира*. Начин на који програм терминира зависи од језика.
+Једно упутство у програму назива се *изјава* и обично има карактер или размак који означава где упутство завршава, или *престаје*. Начин на који програм престаје варира у зависности од језика.
-Изјаве у програму могу се ослањати на податке које обезбеђује корисник или други извор како би извршиле инструкције. Подаци могу променити понашање програма, па програмски језици долазе са начином да привремено складиште податке како би се касније користили. Ово се називају *променљиве*. Променљиве су изјаве које упућују уређај да сачува податке у својој меморији. Променљиве у програмима су сличне променљивим у алгебри, где имају јединствено име и њихова вредност може да се мења током времена.
+Изјаве у програму могу се ослањати на податке које пружа корисник или други извор како би извршиле упутства. Подаци могу променити начин на који се програм понаша, па програмски језици долазе са начином да привремено складиште податке како би се касније користили. Ово се назива *променљиве*. Променљиве су изјаве које упућују уређај да сачува податке у својој меморији. Променљиве у програмима су сличне променљивама у алгебри, где имају јединствено име и њихова вредност може да се мења током времена.
-Постоји могућност да неке изјаве не буду извршене од стране уређаја. Ово је обично намерно када их програмер напише или случајно када дође до неочекиване грешке. Ова врста контроле над апликацијом чини је робуснијом и лакшом за одржавање. Типично, ове промене у контроли дешавају се када су испуњени одређени услови. Уобичајена изјава која се користи у савременом програмирању за контролу начина на који програм ради је `if..else` изјава.
+Постоји могућност да неке изјаве не буду извршене од стране уређаја. Ово је обично намерно када их програмер напише или случајно када се догоди неочекивана грешка. Ова врста контроле над апликацијом чини је робуснијом и лакшом за одржавање. Типично, ове промене у контроли се дешавају када су испуњени одређени услови. Уобичајена изјава која се користи у савременом програмирању за контролу начина на који програм ради је `if..else` изјава.
-✅ Више о овом типу изјаве ћете научити у наредним лекцијама.
+✅ О овом типу изјаве ћете више научити у наредним лекцијама.
-## Алати заната
+## Алати за рад
-[](https://youtube.com/watch?v=69WJeXGBdxg "Алати заната")
+[](https://youtube.com/watch?v=69WJeXGBdxg "Алати за рад")
-> 🎥 Кликните на слику изнад за видео о алатима
+> 🎥 Кликните на слику изнад за видео о алатима
-У овом одељку ћете научити о неком софтверу који би вам могао бити веома користан док започињете своје професионално програмерско путовање.
+У овом делу научићете о неком софтверу који може бити веома користан док започињете своје професионално програмерско путовање.
-**Развојно окружење** је јединствен скуп алата и функција које програмер често користи приликом писања софтвера. Неки од ових алата су прилагођени специфичним потребама програмера и могу се мењати током времена ако програмер промени приоритете у раду, личним пројектима или када користи други програмски језик. Развојна окружења су јединствена као и програмери који их користе.
+**Развојно окружење** је јединствен сет алата и функција које програмер често користи приликом писања софтвера. Неки од ових алата су прилагођени специфичним потребама програмера и могу се мењати током времена ако програмер промени приоритете у раду, личним пројектима или када користи други програмски језик. Развојна окружења су јединствена као и програмери који их користе.
-### Уређивачи
+### Уређивачи
-Један од најважнијих алата за развој софтвера је уређивач. Уређивачи су место где пишете свој код, а понекад и где га извршавате.
+Један од најважнијих алата за развој софтвера је уређивач. Уређивачи су место где пишете свој код, а понекад и где га покрећете.
-Програмери се ослањају на уређиваче из неколико додатних разлога:
+Програмери се ослањају на уређиваче из неколико додатних разлога:
-- *Отклањање грешака* помаже у проналажењу грешака и проблема корак по корак кроз код. Неки уређивачи имају могућности за отклањање грешака; могу се прилагодити и додати за специфичне програмске језике.
-- *Синтаксно истицање* додаје боје и формат текста коду, чинећи га лакшим за читање. Већина уређивача омогућава прилагођено истицање синтаксе.
-- *Екстензије и интеграције* су специјализовани алати за програмере, од стране програмера. Ови алати нису уграђени у основни уређивач. На пример, многи програмери документују свој код како би објаснили како функционише. Могу инсталирати екстензију за проверу правописа како би пронашли грешке у документацији. Већина екстензија је намењена за употребу унутар одређеног уређивача, а већина уређивача долази са начином претраге доступних екстензија.
-- *Прилагођавање* омогућава програмерима да креирају јединствено развојно окружење које одговара њиховим потребама. Већина уређивача је изузетно прилагодљива и може такође омогућити програмерима да креирају сопствене екстензије.
+- *Дебаговање* помаже у откривању грешака и проблема корак по корак кроз код, линију по линију. Неки уређивачи имају могућности дебаговања; могу се прилагодити и додати за специфичне програмске језике.
+- *Истакнуто синтаксно бојење* додаје боје и формат текста у код, чинећи га лакшим за читање. Већина уређивача омогућава прилагођено синтаксно бојење.
+- *Екстензије и интеграције* су специјализовани алати за програмере, од стране програмера. Ови алати нису уграђени у основни уређивач. На пример, многи програмери документују свој код како би објаснили како функционише. Могу инсталирати екстензију за проверу правописа како би пронашли грешке у документацији. Већина екстензија је намењена за употребу унутар специфичног уређивача, а већина уређивача долази са начином претраге доступних екстензија.
+- *Прилагођавање* омогућава програмерима да креирају јединствено развојно окружење које одговара њиховим потребама. Већина уређивача је изузетно прилагодљива и може такође омогућити програмерима да креирају сопствене екстензије.
-#### Популарни уређивачи и екстензије за веб развој
+#### Популарни уређивачи и екстензије за веб развој
- [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)
- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker)
@@ -132,58 +132,58 @@ back add r0,r1
- [emmet](https://emmet.io/)
- [SublimeLinter](http://www.sublimelinter.com/en/stable/)
-### Прегледачи
+### Прегледачи
-Још један важан алат је прегледач. Веб програмери се ослањају на прегледач како би видели како њихов код ради на вебу. Такође се користи за приказ визуелних елемената веб странице који су написани у уређивачу, као што је HTML.
+Још један важан алат је прегледач. Веб програмери се ослањају на прегледач да виде како њихов код ради на вебу. Такође се користи за приказ визуелних елемената веб странице који су написани у уређивачу, као што је HTML.
-Многи прегледачи долазе са *алатима за програмере* (DevTools) који садрже скуп корисних функција и информација за помоћ програмерима у прикупљању и хватању важних информација о њиховој апликацији. На пример: Ако веб страница има грешке, понекад је корисно знати када су се догодиле. DevTools у прегледачу могу се конфигурисати да прикупе ове информације.
+Многи прегледачи долазе са *алатима за програмере* (DevTools) који садрже сет корисних функција и информација за помоћ програмерима у прикупљању и хватању важних информација о њиховој апликацији. На пример: Ако веб страница има грешке, понекад је корисно знати када су се догодиле. DevTools у прегледачу може бити конфигурисан да прикупи ове информације.
-#### Популарни прегледачи и DevTools
+#### Популарни прегледачи и DevTools
- [Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)
- [Chrome](https://developers.google.com/web/tools/chrome-devtools/)
- [Firefox](https://developer.mozilla.org/docs/Tools)
-### Алатке командне линије
+### Алатке командне линије
-Неки програмери више воле мање графички приказ за своје свакодневне задатке и ослањају се на командну линију да то постигну. Писање кода захтева значајну количину куцања и неки програмери више воле да не прекидају свој ток на тастатури. Они ће користити пречице на тастатури за пребацивање између прозора на радној површини, рад на различитим фајловима и коришћење алата. Већина задатака може се обавити мишем, али једна од предности коришћења командне линије је што се много тога може урадити без потребе за пребацивањем између миша и тастатуре. Још једна предност командне линије је што је конфигурабилна и можете сачувати прилагођену конфигурацију, променити је касније и увезти је на друге развојне машине. Пошто су развојна окружења тако јединствена за сваког програмера, неки ће избегавати коришћење командне линије, неки ће се у потпуности ослањати на њу, а неки ће преферирати мешавину оба.
+Неки програмери преферирају мање графички приказ за своје свакодневне задатке и ослањају се на командну линију да то постигну. Писање кода захтева значајну количину куцања, а неки програмери преферирају да не прекидају свој ток рада на тастатури. Они ће користити пречице на тастатури за пребацивање између прозора на радној површини, рад на различитим фајловима и коришћење алата. Већина задатака може се обавити мишем, али једна предност коришћења командне линије је што се много тога може урадити помоћу алатки командне линије без потребе за пребацивањем између миша и тастатуре. Још једна предност командне линије је што је конфигурабилна и можете сачувати прилагођену конфигурацију, променити је касније и увезти је на друге развојне машине. Пошто су развојна окружења тако јединствена за сваког програмера, неки ће избегавати коришћење командне линије, неки ће се у потпуности ослањати на њу, а неки ће преферирати мешавину оба.
-### Популарне опције командне линије
+### Популарне опције командне линије
-Опције за командну линију разликују се у зависности од оперативног система који користите.
+Опције за командну линију ће се разликовати у зависности од оперативног система који користите.
-*💻 = долази унапред инсталирано на оперативном систему.*
+*💻 = долази прединсталирано на оперативном систему.*
-#### Windows
+#### Windows
- [Powershell](https://docs.microsoft.com/powershell/scripting/overview?view=powershell-7/?WT.mc_id=academic-77807-sagibbon) 💻
- [Command Line](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands/?WT.mc_id=academic-77807-sagibbon) (познат и као CMD) 💻
- [Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)
- [mintty](https://mintty.github.io/)
-#### MacOS
+#### MacOS
- [Terminal](https://support.apple.com/guide/terminal/open-or-quit-terminal-apd5265185d-f365-44cb-8b09-71a064a42125/mac) 💻
- [iTerm](https://iterm2.com/)
- [Powershell](https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-7/?WT.mc_id=academic-77807-sagibbon)
-#### Linux
+#### Linux
- [Bash](https://www.gnu.org/software/bash/manual/html_node/index.html) 💻
- [KDE Konsole](https://docs.kde.org/trunk5/en/konsole/konsole/index.html)
- [Powershell](https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7/?WT.mc_id=academic-77807-sagibbon)
-#### Популарни алати командне линије
+#### Популарне алатке командне линије
- [Git](https://git-scm.com/) (💻 на већини оперативних система)
- [NPM](https://www.npmjs.com/)
- [Yarn](https://classic.yarnpkg.com/en/docs/cli/)
-### Документација
+### Документација
-Када програмер жели да научи нешто ново, највероватније ће се окренути документацији како би научио како да то користи. Програмери се често ослањају на документацију како би их водила кроз правилно коришћење алата и језика, али и како би стекли дубље знање о томе како они функционишу.
+Када програмер жели да научи нешто ново, највероватније ће се окренути документацији да научи како да то користи. Програмери се често ослањају на документацију да их води кроз правилно коришћење алата и језика, као и да стекну дубље знање о томе како функционише.
-#### Популарна документација о веб развоју
+#### Популарна документација о веб развоју
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web), од Mozille, издавача [Firefox](https://www.mozilla.org/firefox/) прегледача
- [Frontend Masters](https://frontendmasters.com/learn/)
@@ -191,26 +191,26 @@ back add r0,r1
- [Microsoft-ова документација за програмере](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), за [Microsoft Edge](https://www.microsoft.com/edge)
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
-✅ Урадите истраживање: Сада када знате основе окружења веб програмера, упоредите га са окружењем веб дизајнера.
+✅ Урадите истраживање: Сада када знате основе окружења веб програмера, упоредите га са окружењем веб дизајнера.
---
-## 🚀 Изазов
+## 🚀 Изазов
-Упоредите неке програмске језике. Које су неке од јединствених карактеристика JavaScript-а у односу на Java? А шта је са COBOL-ом у односу на Go?
+Упоредите неке програмске језике. Које су неке од јединствених карактеристика JavaScript-а у односу на Java? А шта је са COBOL-ом у односу на Go?
## Квиз после предавања
-[Квиз после предавања](https://ff-quizzes.netlify.app/web/quiz/2)
+[Квиз после предавања](https://ff-quizzes.netlify.app/web/)
-## Преглед и самостално учење
+## Преглед и самостално учење
-Проучите различите језике доступне програмеру. Покушајте да напишете једну линију кода на једном језику, а затим је препишите на два друга. Шта сте научили?
+Проучите различите језике доступне програмеру. Покушајте да напишете једну линију у једном језику, а затим је препишите у два друга. Шта сте научили?
-## Задатак
+## Задатак
[Читање документације](assignment.md)
---
**Одрицање од одговорности**:
-Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматизовани преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.
\ No newline at end of file
+Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква погрешна тумачења или неспоразуме који могу произаћи из коришћења овог превода.
\ No newline at end of file
diff --git a/translations/sr/1-getting-started-lessons/2-github-basics/README.md b/translations/sr/1-getting-started-lessons/2-github-basics/README.md
index 6870bd1d..0a68115f 100644
--- a/translations/sr/1-getting-started-lessons/2-github-basics/README.md
+++ b/translations/sr/1-getting-started-lessons/2-github-basics/README.md
@@ -1,21 +1,21 @@
# Увод у GitHub
-Ова лекција покрива основе GitHub-а, платформе за хостовање и управљање изменама вашег кода.
+Ова лекција покрива основе GitHub-а, платформе за хостовање и управљање променама у вашем коду.

> Скетч од [Tomomi Imura](https://twitter.com/girlie_mac)
## Квиз пре предавања
-[Квиз пре предавања](https://ff-quizzes.netlify.app/web/quiz/3)
+[Квиз пре предавања](https://ff-quizzes.netlify.app)
## Увод
@@ -27,44 +27,44 @@ CO_OP_TRANSLATOR_METADATA:
### Предуслови
-Пре него што почнете, потребно је да проверите да ли је Git инсталиран. У терминалу укуцајте:
+Пре него што почнете, проверите да ли је Git инсталиран. У терминалу укуцајте:
`git --version`
-Ако Git није инсталиран, [преузмите Git](https://git-scm.com/downloads). Затим подесите ваш локални Git профил у терминалу:
+Ако Git није инсталиран, [преузмите Git](https://git-scm.com/downloads). Затим подесите свој локални Git профил у терминалу:
* `git config --global user.name "ваше-име"`
* `git config --global user.email "ваш-имејл"`
Да бисте проверили да ли је Git већ конфигурисан, можете укуцати:
`git config --list`
-Такође ће вам бити потребан GitHub налог, уређивач кода (као што је Visual Studio Code), и потребно је да отворите ваш терминал (или командну линију).
+Такође ће вам бити потребан GitHub налог, едитор за код (као што је Visual Studio Code), и потребно је да отворите терминал (или командну линију).
-Посетите [github.com](https://github.com/) и направите налог ако га већ немате, или се пријавите и попуните ваш профил.
+Идите на [github.com](https://github.com/) и направите налог ако га већ немате, или се пријавите и попуните свој профил.
-✅ GitHub није једини репозиторијум кода на свету; постоје и други, али GitHub је најпознатији.
+✅ GitHub није једини репозиторијум за код на свету; постоје и други, али GitHub је најпознатији.
### Припрема
-Потребан вам је фолдер са код пројектом на вашем локалном рачунару (лаптопу или десктопу) и јавни репозиторијум на GitHub-у, који ће служити као пример како допринети пројектима других.
+Биће вам потребан фолдер са код пројектом на вашем локалном рачунару (лаптопу или ПЦ-у) и јавни репозиторијум на GitHub-у, који ће служити као пример како допринети пројектима других.
---
## Управљање кодом
-Рецимо да имате локални фолдер са неким код пројектом и желите да почнете да пратите ваш напредак користећи git - систем за контролу верзија. Неки људи пореде коришћење git-а са писањем љубавног писма себи у будућности. Читајући поруке ваших commit-ова данима, недељама или месецима касније, моћи ћете да се сетите зашто сте донели одређену одлуку или да "вратите" промену - то јест, ако пишете добре поруке commit-ова.
+Претпоставимо да имате фолдер локално са неким код пројектом и желите да почнете да пратите свој напредак користећи git - систем за контролу верзија. Неки људи пореде коришћење git-а са писањем љубавног писма свом будућем себи. Читајући поруке о комитима након неколико дана, недеља или месеци, моћи ћете да се сетите зашто сте донели одређену одлуку или да "вратите" промену - под условом да пишете добре поруке о комитима.
-### Задатак: Направите репозиторијум и commit-ујте код
+### Задатак: Направите репозиторијум и комитујте код
> Погледајте видео
>
-> [](https://www.youtube.com/watch?v=9R31OUPpxU4)
+> [](https://www.youtube.com/watch?v=9R31OUPpxU4)
-1. **Направите репозиторијум на GitHub-у**. На GitHub.com, у картици репозиторијума или из навигационе траке у горњем десном углу, пронађите дугме **new repo**.
+1. **Направите репозиторијум на GitHub-у**. На GitHub.com, у картици репозиторијума или из навигационог менија у горњем десном углу, пронађите дугме **new repo**.
- 1. Дајте вашем репозиторијуму (фолдеру) име.
+ 1. Дајте свом репозиторијуму (фолдеру) име.
1. Изаберите **create repository**.
-1. **Навигирајте до вашег радног фолдера**. У вашем терминалу, пребаците се у фолдер (такође познат као директоријум) који желите да почнете да пратите. Укуцајте:
+1. **Пребаците се у свој радни фолдер**. У терминалу, промените директоријум на фолдер који желите да почнете да пратите. Укуцајте:
```bash
cd [name of your folder]
@@ -82,7 +82,7 @@ CO_OP_TRANSLATOR_METADATA:
git status
```
- излаз може изгледати овако:
+ Излаз може изгледати овако:
```output
Changes not staged for commit:
@@ -93,16 +93,16 @@ CO_OP_TRANSLATOR_METADATA:
modified: file2.txt
```
- Обично команда `git status` вам говори ствари као што су који фајлови су спремни да буду _сачувани_ у репозиторијуму или имају измене које можда желите да задржите.
+ Типично, команда `git status` вам говори, на пример, који фајлови су спремни за _чување_ у репозиторијуму или имају промене које можда желите да сачувате.
1. **Додајте све фајлове за праћење**
- Ово се такође назива постављање фајлова/додавање фајлова у staging area.
+ Ово се такође назива стаговање фајлова/додавање фајлова у стагинг зону.
```bash
git add .
```
- Аргумент `git add` са `.` означава да су сви ваши фајлови и измене спремни за праћење.
+ Команда `git add` са аргументом `.` означава да су сви ваши фајлови и промене спремни за праћење.
1. **Додајте одабране фајлове за праћење**
@@ -110,53 +110,53 @@ CO_OP_TRANSLATOR_METADATA:
git add [file or folder name]
```
- Ово нам помаже да додамо само одабране фајлове у staging area када не желимо да commit-ујемо све фајлове одједном.
+ Ово нам помаже да додамо само одабране фајлове у стагинг зону када не желимо да комитујемо све фајлове одједном.
-1. **Уклони све фајлове из staging area**
+1. **Уклони све фајлове из стагинг зоне**
```bash
git reset
```
- Ова команда нам помаже да уклонимо све фајлове из staging area одједном.
+ Ова команда нам помаже да уклонимо све фајлове из стагинг зоне одједном.
-1. **Уклони одређени фајл из staging area**
+1. **Уклони одређени фајл из стагинг зоне**
```bash
git reset [file or folder name]
```
- Ова команда нам помаже да уклонимо само одређени фајл из staging area који не желимо да укључимо у следећи commit.
+ Ова команда нам помаже да уклонимо само одређени фајл из стагинг зоне који не желимо да укључимо у следећи комит.
-1. **Сачувајте ваш рад**. У овом тренутку сте додали фајлове у такозвани _staging area_. Место где Git прати ваше фајлове. Да бисте направили промену трајном, потребно је да _commit-ујете_ фајлове. Да бисте то урадили, направите _commit_ командом `git commit`. _Commit_ представља тачку чувања у историји вашег репозиторијума. Укуцајте следеће да направите _commit_:
+1. **Сачувајте свој рад**. У овом тренутку сте додали фајлове у такозвану _стагинг зону_. То је место где Git прати ваше фајлове. Да бисте промену учинили трајном, потребно је да _комитујете_ фајлове. Да бисте то урадили, креирајте _комит_ командом `git commit`. Комит представља тачку чувања у историји вашег репозиторијума. Укуцајте следеће да бисте креирали _комит_:
```bash
git commit -m "first commit"
```
- Ово commit-ује све ваше фајлове, додајући поруку "first commit". За будуће поруке commit-ова, желећете да будете описнији у вашем опису како бисте пренели какву сте промену направили.
+ Ово комитује све ваше фајлове, додајући поруку "first commit". За будуће поруке о комитима, желећете да будете описнији како бисте пренели какву сте промену направили.
-1. **Повежите ваш локални Git репозиторијум са GitHub-ом**. Git репозиторијум је добар на вашем рачунару, али у неком тренутку желите да имате резервну копију ваших фајлова негде и такође позовете друге људе да раде са вама на вашем репозиторијуму. Једно такво одлично место је GitHub. Запамтите да смо већ направили репозиторијум на GitHub-у, тако да је једино што треба да урадимо да повежемо наш локални Git репозиторијум са GitHub-ом. Команда `git remote add` ће то урадити. Укуцајте следећу команду:
+1. **Повежите свој локални Git репозиторијум са GitHub-ом**. Git репозиторијум је добар на вашем рачунару, али у неком тренутку ћете желети да направите резервну копију својих фајлова негде и такође позовете друге људе да раде са вама на вашем репозиторијуму. Једно одлично место за то је GitHub. Сетите се да смо већ креирали репозиторијум на GitHub-у, тако да је једино што треба да урадимо да повежемо наш локални Git репозиторијум са GitHub-ом. Команда `git remote add` ће то урадити. Укуцајте следећу команду:
- > Напомена, пре него што укуцате команду, идите на страницу вашег GitHub репозиторијума да пронађете URL репозиторијума. Користићете га у команди испод. Замените ```https://github.com/username/repository_name.git``` вашим GitHub URL-ом.
+ > Напомена: Пре него што укуцате команду, идите на страницу вашег GitHub репозиторијума да бисте пронашли URL репозиторијума. Користићете га у команди испод. Замените ```https://github.com/username/repository_name.git``` са вашим GitHub URL-ом.
```bash
git remote add origin https://github.com/username/repository_name.git
```
- Ово креира _remote_, или везу, названу "origin" која показује на GitHub репозиторијум који сте раније направили.
+ Ово креира _remote_, или везу, под именом "origin" која показује на GitHub репозиторијум који сте раније креирали.
-1. **Пошаљите локалне фајлове на GitHub**. До сада сте направили _везу_ између локалног репозиторијума и GitHub репозиторијума. Хајде да пошаљемо ове фајлове на GitHub следећом командом `git push`, овако:
-
- > Напомена, име ваше гране може бити другачије од ```main```.
+1. **Пошаљите локалне фајлове на GitHub**. До сада сте креирали _везу_ између локалног репозиторијума и GitHub репозиторијума. Хајде да пошаљемо ове фајлове на GitHub следећом командом `git push`, овако:
+
+ > Напомена: Име ваше гране може бити другачије од ```main```.
```bash
git push -u origin main
```
- Ово шаље ваше commit-ове у вашу "main" грану на GitHub.
+ Ово шаље ваше комитове у вашу "main" грану на GitHub-у.
-2. **Додајте још измена**. Ако желите да наставите са прављењем измена и њиховим слањем на GitHub, само ћете морати да користите следеће три команде:
+2. **Додајте још промена**. Ако желите да наставите са прављењем промена и њиховим слањем на GitHub, само ћете морати да користите следеће три команде:
```bash
git add .
@@ -164,57 +164,57 @@ CO_OP_TRANSLATOR_METADATA:
git push
```
- > Савет, Можда ћете желети да усвојите `.gitignore` фајл како бисте спречили да фајлови које не желите да пратите буду приказани на GitHub-у - као што је тај фајл са белешкама који чувате у истом фолдеру, али нема место у јавном репозиторијуму. Можете пронаћи шаблоне за `.gitignore` фајлове на [.gitignore templates](https://github.com/github/gitignore).
+ > Савет: Можда ћете желети да усвојите `.gitignore` фајл како бисте спречили да се фајлови које не желите да пратите појаве на GitHub-у - као што је онај фајл са белешкама који чувате у истом фолдеру, али нема место у јавном репозиторијуму. Можете пронаћи шаблоне за `.gitignore` фајлове на [.gitignore templates](https://github.com/github/gitignore).
-#### Поруке commit-ова
+#### Поруке о комитима
-Одлична порука у Git commit-у завршава следећу реченицу:
-Ако се примени, овај commit ће <ваша порука овде>
+Одлична порука о комиту треба да заврши следећу реченицу:
+Ако се примени, овај комит ће <ваша порука овде>.
-За наслов користите императив, садашње време: "промени" уместо "променио" или "мења".
-Као и у наслову, у телу (опционо) такође користите императив, садашње време. Тело треба да укључи мотивацију за промену и да је упореди са претходним понашањем. Објашњавате `зашто`, а не `како`.
+За наслов користите императив, садашње време: "промени" уместо "промењено" или "мења".
+Као и у наслову, у телу (опционо) такође користите императив, садашње време. Тело треба да укључи мотивацију за промену и упореди је са претходним понашањем. Објашњавате `зашто`, а не `како`.
-✅ Одвојите неколико минута да прегледате GitHub. Можете ли пронаћи заиста одличну поруку commit-а? Можете ли пронаћи заиста минималну? Које информације мислите да су најважније и најкорисније за преношење у поруци commit-а?
+✅ Одвојите неколико минута да прегледате GitHub. Можете ли пронаћи заиста добру поруку о комиту? Можете ли пронаћи заиста минималну? Које информације мислите да су најважније и најкорисније за преношење у поруци о комиту?
### Задатак: Сарадња
-Главни разлог за постављање ствари на GitHub је да се омогући сарадња са другим програмерима.
+Главни разлог за постављање ствари на GitHub био је да се омогући сарадња са другим програмерима.
## Рад на пројектима са другима
> Погледајте видео
>
-> [](https://www.youtube.com/watch?v=bFCM-PC3cu8)
+> [](https://www.youtube.com/watch?v=bFCM-PC3cu8)
-У вашем репозиторијуму, идите на `Insights > Community` да видите како ваш пројекат стоји у поређењу са препорученим стандардима за заједницу.
+У вашем репозиторијуму, идите на `Insights > Community` да видите како ваш пројекат стоји у односу на препоручене стандарде заједнице.
- Ево неких ствари које могу побољшати ваш GitHub репозиторијум:
- - **Опис**. Да ли сте додали опис за ваш пројекат?
- - **README**. Да ли сте додали README? GitHub пружа смернице за писање [README](https://docs.github.com/articles/about-readmes/?WT.mc_id=academic-77807-sagibbon).
- - **Смернице за допринос**. Да ли ваш пројекат има [смернице за допринос](https://docs.github.com/articles/setting-guidelines-for-repository-contributors/?WT.mc_id=academic-77807-sagibbon)?
- - **Кодекс понашања**. Да ли ваш пројекат има [кодекс понашања](https://docs.github.com/articles/adding-a-code-of-conduct-to-your-project/)?
- - **Лиценца**. Можда најважније, да ли ваш пројекат има [лиценцу](https://docs.github.com/articles/adding-a-license-to-a-repository/)?
+Ево неких ствари које могу побољшати ваш GitHub репозиторијум:
+- **Опис**. Да ли сте додали опис за ваш пројекат?
+- **README**. Да ли сте додали README? GitHub пружа смернице за писање [README](https://docs.github.com/articles/about-readmes/?WT.mc_id=academic-77807-sagibbon).
+- **Смернице за доприносе**. Да ли ваш пројекат има [смернице за доприносе](https://docs.github.com/articles/setting-guidelines-for-repository-contributors/?WT.mc_id=academic-77807-sagibbon)?
+- **Кодекс понашања**. Да ли ваш пројекат има [кодекс понашања](https://docs.github.com/articles/adding-a-code-of-conduct-to-your-project/)?
+- **Лиценца**. Можда најважније, да ли ваш пројекат има [лиценцу](https://docs.github.com/articles/adding-a-license-to-a-repository/)?
-Сви ови ресурси ће помоћи у укључивању нових чланова тима. То су обично ствари које нови сарадници гледају пре него што уопште погледају ваш код, како би утврдили да ли је ваш пројекат право место за њих да проведу своје време.
+Сви ови ресурси ће олакшати укључивање нових чланова тима. То су обично ствари које нови доприносиоци прво гледају пре него што уопште погледају ваш код, како би сазнали да ли је ваш пројекат право место за њихово време.
-✅ README фајлови, иако захтевају време за припрему, често се занемарују од стране заузетих одржавалаца. Можете ли пронаћи пример посебно описног README-а? Напомена: постоје неки [алати за креирање добрих README-а](https://www.makeareadme.com/) које бисте могли да испробате.
+✅ README фајлови, иако захтевају време за припрему, често се занемарују од стране заузетих одржавалаца. Можете ли пронаћи пример посебно описног README-а? Напомена: постоје неки [алати за креирање добрих README-а](https://www.makeareadme.com/) које бисте можда желели да испробате.
### Задатак: Спојите код
-Документација о доприносу помаже људима да допринесу пројекту. Она објашњава које врсте доприноса тражите и како процес функционише. Сарадници ће морати да прођу кроз низ корака да би могли да допринесу вашем репозиторијуму на GitHub-у:
+Документација за доприносе помаже људима да допринесу пројекту. Она објашњава које врсте доприноса тражите и како процес функционише. Доприносиоци ће морати да прођу кроз низ корака како би могли да допринесу вашем репозиторијуму на GitHub-у:
-1. **Fork-овање вашег репозиторијума**. Вероватно ћете желети да људи _fork-ују_ ваш пројекат. Fork-овање значи креирање реплике вашег репозиторијума на њиховом GitHub профилу.
-1. **Clone**. Након тога ће clone-овати пројекат на свој локални рачунар.
+1. **Форковање вашег репозиторијума**. Вероватно ћете желети да људи _форкују_ ваш пројекат. Форковање значи креирање реплике вашег репозиторијума на њиховом GitHub профилу.
+1. **Клонирање**. Након тога ће клонирати пројекат на свој локални рачунар.
1. **Креирање гране**. Желите да их замолите да креирају _грану_ за свој рад.
-1. **Фокусирање измена на једну област**. Замолите сараднике да концентришу своје доприносе на једну ствар у исто време - на тај начин су веће шансе да можете _спојити_ њихов рад. Замислите да напишу исправку грешке, додају нову функцију и ажурирају неколико тестова - шта ако желите, или можете да имплементирате само 2 од 3, или 1 од 3 измене?
+1. **Фокусирање на једну област**. Замолите доприносиоце да се концентришу на једну ствар у исто време - на тај начин су веће шансе да можете _спојити_ њихов рад. Замислите да напишу исправку грешке, додају нову функцију и ажурирају неколико тестова - шта ако желите да имплементирате само 2 од 3 или 1 од 3 промене?
-✅ Замислите ситуацију где су гране посебно критичне за писање и испоруку доброг кода. Које случајеве употребе можете да замислите?
+✅ Замислите ситуацију у којој су гране посебно критичне за писање и испоруку доброг кода. Које случајеве употребе можете замислити?
-> Напомена, будите промена коју желите да видите у свету и креирајте гране за свој рад. Сви commit-ови које направите биће направљени на грани на којој сте тренутно "checked out". Користите `git status` да видите на којој грани се налазите.
+> Напомена: Будите промена коју желите да видите у свету и креирајте гране за свој рад. Сви комитови које направите биће направљени на грани на којој сте тренутно "чековани". Користите `git status` да видите на којој сте грани.
-Хајде да прођемо кроз процес сарадника. Претпоставимо да је сарадник већ _fork-овао_ и _clone-овао_ репозиторијум, тако да има Git репозиторијум спреман за рад на свом локалном рачунару:
+Хајде да прођемо кроз процес рада доприносиоца. Претпоставимо да је доприносилац већ _форковао_ и _клонирао_ репозиторијум, тако да има Git репозиторијум спреман за рад на свом локалном рачунару:
-1. **Креирање гране**. Користите команду `git branch` да креирате грану која ће садржати измене које намеравају да допринесу:
+1. **Креирање гране**. Користите команду `git branch` да креирате грану која ће садржати промене које желите да допринесете:
```bash
git branch [branch-name]
@@ -226,108 +226,106 @@ CO_OP_TRANSLATOR_METADATA:
git switch [branch-name]
```
-1. **Радите на изменама**. У овом тренутку желите да додате своје измене. Не заборавите да кажете Git-у о томе следећим командама:
+1. **Радите на променама**. У овом тренутку желите да додате своје промене. Не заборавите да обавестите Git о томе следећим командама:
```bash
git add .
git commit -m "my changes"
```
- Уверите се да сте дали вашем commit-у добро име, за ваше добро као и за одржаваоца репозиторијума на којем помажете.
+ Уверите се да сте дали добар назив свом комиту, како за себе тако и за одржаваоца репозиторијума коме помажете.
-1. **Комбинујте ваш рад са `main` граном**. У неком тренутку сте завршили рад и желите да комбинујете ваш рад са радом `main` гране. `Main` грана је можда промењена у међувремену, па се уверите да сте је прво ажурирали на најновију верзију следећим командама:
+1. **Комбинујте свој рад са `main` граном**. У неком тренутку завршавате рад и желите да комбинујете свој рад са оним из `main` гране. `Main` грана је можда у међувремену промењена, па се уверите да сте је прво ажурирали на најновију верзију следећим командама:
```bash
git switch main
git pull
```
- У овом тренутку желите да се уверите да се сви _конфликти_, ситуације где Git не може лако да _комбинује_ измене, дешавају у вашој радној грани. Зато покрените следеће команде:
+ У овом тренутку желите да се уверите да се сви _конфликти_, ситуације у којима Git не може лако да _комбинује_ промене, дешавају у вашој радној грани. Због тога покрените следеће команде:
```bash
git switch [branch_name]
git merge main
```
- Ово ће донети све измене из `main` гране у вашу грану и надамо се да можете само наставити. Ако не, VS Code ће вам показати где је Git _збуњен_ и само измените погођене фајлове да кажете који садржај је најтачнији.
+ Ово ће унети све промене из `main` гране у вашу грану и, надамо се, можете само наставити. Ако не, VS Code ће вам показати где је Git _збуњен_, а ви само измените погођене фајлове како бисте рекли који садржај је најтачнији.
-1. **Пошаљите ваш рад на GitHub**. Слање вашег рада на GitHub значи две ствари. Пушовање ваше гране на ваш репозиторијум и затим отварање PR-а (Pull Request).
+1. **Пошаљите свој рад на GitHub**. Слање вашег рада на GitHub подразумева две ствари. Гурање ваше гране на ваш репозиторијум и затим отварање PR-а (Pull Request).
```bash
git push --set-upstream origin [branch-name]
```
- Горња команда креира грану на вашем fork-ованом репозиторијуму.
-
-1. **Отворите PR**. Затим, желите да отворите PR. То радите тако што навигирајте до fork-ованог репозиторијума на GitHub-у. Видећете индикацију на GitHub-у где вас пита да ли желите да креирате нови PR, кликнете на то и бићете одведени на интерфејс где можете променити наслов поруке commit
-Увери се да одеђеш на GitHub страницу за форковани репо и уклониш удаљену грану коју си управо послао.
+ Горња команда креира грану на вашем форкованом репозиторијуму.
-`Pull request` изгледа као смешан термин јер заправо желиш да "погураш" своје измене у пројекат. Али одржавалац (власник пројекта) или главни тим треба да размотри твоје измене пре него што их споји са "главном" граном пројекта, тако да заправо тражиш одлуку о изменама од одржаваоца.
+1. **Отворите PR**. Затим, желите да отворите PR. То радите тако што одете на форковани репозиторијум на GitHub-у. Видећете индикацију на GitHub-у где вас пита да ли желите да креирате нови PR, кликнете на то и бићете одведени
+`Pull request` изгледа као смешан термин јер у ствари желите да "пушујете" своје измене у пројекат. Али одржавалац (власник пројекта) или главни тим треба да размотри ваше измене пре него што их споји са "главном" граном пројекта, тако да у суштини тражите одлуку о промени од одржаваоца.
-Pull request је место где се упоређују и дискутују разлике уведене на грани уз рецензије, коментаре, интегрисане тестове и још много тога. Добар pull request прати отприлике исте смернице као и порука комита. Можеш додати референцу на проблем у тракеру проблема, на пример када твој рад решава одређени проблем. Ово се ради коришћењем `#` праћеног бројем твог проблема. На пример `#97`.
+`Pull request` је место где се упоређују и дискутују разлике уведене на грани уз рецензије, коментаре, интегрисане тестове и још много тога. Добар `pull request` прати отприлике иста правила као и порука комита. Можете додати референцу на проблем у трагачу за проблемима, на пример када ваш рад решава неки проблем. Ово се ради коришћењем `#` праћеног бројем вашег проблема. На пример, `#97`.
-🤞Држимо палчеве да сви провери прођу и да власник(ци) пројекта споје твоје измене у пројекат🤞
+🤞Држимо палчеве да сви провери прођу и да власник(ци) пројекта споје ваше измене у пројекат🤞
-Ажурирај своју тренутну локалну радну грану са свим новим комитима из одговарајуће удаљене гране на GitHub-у:
+Ажурирајте своју тренутну локалну радну грану са свим новим комитима са одговарајуће удаљене гране на GitHub-у:
`git pull`
## Како допринети отвореном коду
-Прво, хајде да пронађемо репозиторијум (или **репо**) на GitHub-у који те интересује и коме би желео да допринесеш изменом. Желиш да копираш његов садржај на свој рачунар.
+Прво, хајде да пронађемо репозиторијум (или **репо**) на GitHub-у који вас занима и коме бисте желели да допринесете неком променом. Желите да копирате његов садржај на свој рачунар.
-✅ Добар начин да пронађеш репозиторијуме погодне за почетнике је [претрага по ознаци 'good-first-issue'](https://github.blog/2020-01-22-browse-good-first-issues-to-start-contributing-to-open-source/).
+✅ Добар начин да пронађете репозиторијуме погодне за почетнике је [претрага по ознаци 'good-first-issue'](https://github.blog/2020-01-22-browse-good-first-issues-to-start-contributing-to-open-source/).
-
+
-Постоји неколико начина за копирање кода. Један од начина је да "клонираш" садржај репозиторијума, користећи HTTPS, SSH или GitHub CLI (Command Line Interface).
+Постоји неколико начина за копирање кода. Један од начина је да "клонирате" садржај репозиторијума, користећи HTTPS, SSH или GitHub CLI (Command Line Interface).
-Отвори свој терминал и клонирај репозиторијум овако:
+Отворите свој терминал и клонирајте репозиторијум овако:
`git clone https://github.com/ProjectURL`
-Да би радио на пројекту, пребаци се у одговарајући фолдер:
+Да бисте радили на пројекту, промените директоријум на одговарајући фолдер:
`cd ProjectURL`
-Можеш такође отворити цео пројекат користећи [Codespaces](https://github.com/features/codespaces), GitHub-ов уграђени едитор кода / облачно окружење за развој, или [GitHub Desktop](https://desktop.github.com/).
+Такође можете отворити цео пројекат користећи [Codespaces](https://github.com/features/codespaces), GitHub-ов уграђени едитор кода / облачно окружење за развој, или [GitHub Desktop](https://desktop.github.com/).
-На крају, можеш преузети код у зипованом фолдеру.
+На крају, можете преузети код у зипованом фолдеру.
### Неколико занимљивих ствари о GitHub-у
-Можеш да означиш звездицом, пратиш и/или "форкујеш" било који јавни репозиторијум на GitHub-у. Своје репозиторијуме означене звездицом можеш пронаћи у падајућем менију у горњем десном углу. То је као обележавање, али за код.
+Можете да означите звездицом, пратите и/или "форкујете" било који јавни репозиторијум на GitHub-у. Своје означене репозиторијуме можете пронаћи у падајућем менију у горњем десном углу. То је као обележивање, али за код.
-Пројекти имају тракер проблема, углавном на GitHub-у у картици "Issues", осим ако није другачије назначено, где људи дискутују о проблемима везаним за пројекат. А картица Pull Requests је место где људи дискутују и прегледају измене које су у току.
+Пројекти имају трагач за проблемима, углавном на GitHub-у у картици "Issues", осим ако није другачије назначено, где људи дискутују о проблемима везаним за пројекат. А картица "Pull Requests" је место где људи дискутују и прегледају измене које су у току.
-Пројекти могу такође имати дискусије у форумима, мејлинг листама или каналима за ћаскање као што су Slack, Discord или IRC.
+Пројекти могу такође имати дискусије у форумима, мејлинг листама или чет каналима као што су Slack, Discord или IRC.
-✅ Разгледај свој нови GitHub репо и испробај неколико ствари, као што су уређивање подешавања, додавање информација у свој репо и креирање пројекта (као што је Канбан табла). Постоји много тога што можеш да урадиш!
+✅ Погледајте свој нови GitHub репозиторијум и испробајте неколико ствари, као што су подешавање опција, додавање информација у свој репозиторијум и креирање пројекта (као што је Канбан табла). Постоји много тога што можете да урадите!
---
## 🚀 Изазов
-Удружи се са пријатељем да радите на кодовима један другог. Креирајте пројекат заједно, форкујте код, креирајте гране и спојите измене.
+Упарите се са пријатељем и радите на коду једно другог. Креирајте пројекат заједно, форкујте код, креирајте гране и спајајте измене.
## Квиз након предавања
-[Квиз након предавања](https://ff-quizzes.netlify.app/web/quiz/4)
+[Квиз након предавања](https://ff-quizzes.netlify.app/web/en/)
## Преглед и самостално учење
-Прочитај више о [доприносу софтверу отвореног кода](https://opensource.guide/how-to-contribute/#how-to-submit-a-contribution).
+Прочитајте више о [доприносу софтверу отвореног кода](https://opensource.guide/how-to-contribute/#how-to-submit-a-contribution).
[Git подсетник](https://training.github.com/downloads/github-git-cheat-sheet/).
-Вежбај, вежбај, вежбај. GitHub има одличне путеве за учење доступне преко [skills.github.com](https://skills.github.com):
+Вежбајте, вежбајте, вежбајте. GitHub има одличне путеве за учење доступне преко [skills.github.com](https://skills.github.com):
- [Прва недеља на GitHub-у](https://skills.github.com/#first-week-on-github)
-Наћи ћеш и напредније курсеве.
+Ту ћете пронаћи и напредније курсеве.
## Задатак
-Заврши [курс Прва недеља на GitHub-у](https://skills.github.com/#first-week-on-github)
+Завршите [курс Прва недеља на GitHub-у](https://skills.github.com/#first-week-on-github)
---
**Одрицање од одговорности**:
-Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.
\ No newline at end of file
+Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако тежимо тачности, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква неспоразумевања или погрешна тумачења која могу произаћи из коришћења овог превода.
\ No newline at end of file
diff --git a/translations/sr/1-getting-started-lessons/3-accessibility/README.md b/translations/sr/1-getting-started-lessons/3-accessibility/README.md
index a5b83179..fa094b46 100644
--- a/translations/sr/1-getting-started-lessons/3-accessibility/README.md
+++ b/translations/sr/1-getting-started-lessons/3-accessibility/README.md
@@ -1,8 +1,8 @@
# Основе JavaScript-а: Типови података
-
+
> Скетч од [Tomomi Imura](https://twitter.com/girlie_mac)
-## Квиз пре предавања
-[Квиз пре предавања](https://ff-quizzes.netlify.app/web/quiz/7)
+## Квиз пре предавања
+[Квиз пре предавања](https://ff-quizzes.netlify.app/web/)
Ова лекција покрива основе JavaScript-а, језика који омогућава интерактивност на вебу.
@@ -35,7 +35,7 @@ CO_OP_TRANSLATOR_METADATA:
- **Кључна реч**. Кључне речи могу бити `let` или `var`.
-✅ Кључна реч `let` је уведена у ES6 и даје вашој променљивој такозвани _блоковски домет_. Препоручује се да користите `let` уместо `var`. Блоковске домете ћемо детаљније обрадити у наредним деловима.
+✅ Кључна реч `let` је уведена у ES6 и даје вашој променљивој такозвани _блоковски домет_. Препоручује се да користите `let` уместо `var`. Блоковске домете ћемо детаљније обрадити у наредним деловима.
- **Име променљиве**, које сами бирате.
### Задатак - рад са променљивама
@@ -46,7 +46,7 @@ CO_OP_TRANSLATOR_METADATA:
let myVariable;
```
- `myVariable` је сада декларисана помоћу кључне речи `let`. Тренутно нема вредност.
+ `myVariable` је сада декларисана користећи кључну реч `let`. Тренутно нема вредност.
1. **Доделите вредност**. Сачувајте вредност у променљивој помоћу оператора `=`, праћеног очекиваном вредношћу.
@@ -117,7 +117,7 @@ const MY_VARIABLE = 123;
Променљиве могу чувати различите типове вредности, попут бројева и текста. Ови различити типови вредности познати су као **типови података**. Типови података су важан део развоја софтвера јер помажу програмерима да одлуче како код треба да буде написан и како софтвер треба да ради. Поред тога, неки типови података имају јединствене карактеристике које помажу у трансформацији или извлачењу додатних информација из вредности.
-✅ Типови података се такође називају JavaScript примитивама, јер су то најосновнији типови података које језик пружа. Постоји 7 примитивних типова података: string, number, bigint, boolean, undefined, null и symbol. Одвојите минут да визуализујете шта свака од ових примитива може представљати. Шта је `zebra`? А `0`? `true`?
+✅ Типови података се такође називају JavaScript примитивима, јер су то најосновнији типови података које језик пружа. Постоји 7 примитивних типова података: string, number, bigint, boolean, undefined, null и symbol. Одвојите минут да визуализујете шта сваки од ових примитива може представљати. Шта је `зебра`? А `0`? `true`?
### Бројеви
@@ -131,19 +131,19 @@ const MY_VARIABLE = 123;
Постоји неколико врста оператора за извођење аритметичких функција, а неки од њих су наведени овде:
-| Симбол | Опис | Пример |
-| ------ | ----------------------------------------------------------------------- | -------------------------------- |
-| `+` | **Сабирање**: Израчунава збир два броја | `1 + 2 //очекивани одговор је 3` |
-| `-` | **Одузимање**: Израчунава разлику два броја | `1 - 2 //очекивани одговор је -1` |
-| `*` | **Множење**: Израчунава производ два броја | `1 * 2 //очекивани одговор је 2` |
-| `/` | **Дељење**: Израчунава количник два броја | `1 / 2 //очекивани одговор је 0.5` |
-| `%` | **Остатак**: Израчунава остатак од дељења два броја | `1 % 2 //очекивани одговор је 1` |
+| Симбол | Опис | Пример |
+| ------ | ---------------------------------------------------------------------- | -------------------------------- |
+| `+` | **Сабирање**: Израчунава збир два броја | `1 + 2 //очекивани одговор је 3` |
+| `-` | **Одузимање**: Израчунава разлику два броја | `1 - 2 //очекивани одговор је -1` |
+| `*` | **Множење**: Израчунава производ два броја | `1 * 2 //очекивани одговор је 2` |
+| `/` | **Дељење**: Израчунава количник два броја | `1 / 2 //очекивани одговор је 0.5` |
+| `%` | **Остатак**: Израчунава остатак од дељења два броја | `1 % 2 //очекивани одговор је 1` |
-✅ Пробајте! Испробајте неку аритметичку операцију у конзоли вашег претраживача. Да ли вас резултати изненађују?
+✅ Пробајте! Испробајте аритметичку операцију у конзоли вашег претраживача. Да ли вас резултати изненађују?
### Ниске (Strings)
-Ниске су низови карактера који се налазе између једноструких или двоструких наводника.
+Ниске су скупови карактера који се налазе између једноструких или двоструких наводника.
- `'Ово је ниска'`
- `"Ово је такође ниска"`
@@ -167,7 +167,7 @@ myString1 + ", " + myString2 + "!"; //Hello, World!
```
-✅ Зашто је `1 + 1 = 2` у JavaScript-у, али `'1' + '1' = 11?` Размислите о томе. Шта је са `'1' + 1`?
+✅ Зашто `1 + 1 = 2` у JavaScript-у, али `'1' + '1' = 11?` Размислите о томе. Шта је са `'1' + 1`?
**Шаблонске ниске** су још један начин за форматирање ниски, осим што се уместо наводника користи обрнути апостроф. Све што није обичан текст мора бити смештено у ознаке `${ }`. Ово укључује све променљиве које могу бити ниске.
@@ -196,10 +196,10 @@ let myString2 = "World";
## 🚀 Изазов
-JavaScript је познат по својим изненађујућим начинима руковања типовима података у одређеним ситуацијама. Истражите мало о овим 'замкама'. На пример: осетљивост на велика и мала слова може вас изненадити! Пробајте ово у вашој конзоли: `let age = 1; let Age = 2; age == Age` (резултат је `false` -- зашто?). Које друге замке можете пронаћи?
+JavaScript је познат по својим изненађујућим начинима руковања типовима података у одређеним ситуацијама. Истражите мало о овим 'замкама'. На пример: осетљивост на велика и мала слова може вас изненадити! Испробајте ово у вашој конзоли: `let age = 1; let Age = 2; age == Age` (резултат је `false` -- зашто?). Које друге замке можете пронаћи?
-## Квиз након предавања
-[Квиз након предавања](https://ff-quizzes.netlify.app/web/quiz/8)
+## Квиз након предавања
+[Квиз након предавања](https://ff-quizzes.netlify.app)
## Преглед и самостално учење
@@ -212,4 +212,4 @@ JavaScript је познат по својим изненађујућим нач
---
**Одрицање од одговорности**:
-Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.
\ No newline at end of file
+Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције [Co-op Translator](https://github.com/Azure/co-op-translator). Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не сносимо одговорност за било каква погрешна тумачења или неспоразуме који могу произаћи из коришћења овог превода.
\ No newline at end of file
diff --git a/translations/sr/2-js-basics/2-functions-methods/README.md b/translations/sr/2-js-basics/2-functions-methods/README.md
index af2691b6..34aad6f5 100644
--- a/translations/sr/2-js-basics/2-functions-methods/README.md
+++ b/translations/sr/2-js-basics/2-functions-methods/README.md
@@ -1,8 +1,8 @@
# Пројекат Тераријум, 1. део: Увод у HTML
-
+
> Скетч од [Томоми Имура](https://twitter.com/girlie_mac)
## Квиз пре предавања
@@ -23,31 +23,31 @@ CO_OP_TRANSLATOR_METADATA:
### Увод
-HTML, или ХиперТекст Маркуп Језик, је 'скелет' веба. Ако CSS 'облачи' ваш HTML, а JavaScript му даје живот, онда је HTML тело ваше веб апликације. Чак и синтакса HTML-а одражава ту идеју, јер укључује ознаке као што су "head", "body" и "footer".
+HTML, или ХиперТекст Маркуп Језик, је 'скелет' веба. Ако CSS 'облачи' ваш HTML, а JavaScript га оживљава, онда је HTML тело ваше веб апликације. Чак и синтакса HTML-а одражава ту идеју, јер укључује ознаке као што су "head", "body" и "footer".
У овој лекцији ћемо користити HTML да направимо 'скелет' интерфејса нашег виртуелног тераријума. Имаће наслов и три колоне: десну и леву колону где ће се налазити биљке које се могу превлачити, и централни део који ће представљати стаклени тераријум. До краја ове лекције, моћи ћете да видите биљке у колонама, али интерфејс ће изгледати мало чудно; не брините, у следећем делу ћете додати CSS стилове како би интерфејс изгледао боље.
### Задатак
-На вашем рачунару, направите фасциклу под називом 'terrarium' и унутар ње фајл под називом 'index.html'. Ово можете урадити у Visual Studio Code-у након што направите фасциклу тераријума тако што ћете отворити нови прозор VS Code-а, кликнути на 'open folder' и пронаћи вашу нову фасциклу. Кликните на мало дугме 'file' у панелу Explorer и направите нови фајл:
+На вашем рачунару, направите фасциклу под називом 'terrarium' и унутар ње датотеку под називом 'index.html'. Ово можете урадити у Visual Studio Code-у након што направите фасциклу тераријума тако што ћете отворити нови прозор VS Code-а, кликнути на 'open folder' и пронаћи вашу нову фасциклу. Кликните на мало дугме 'file' у панелу Explorer и направите нову датотеку:

Или
-Користите ове команде у вашем git bash-у:
-* `mkdir terrarium`
-* `cd terrarium`
-* `touch index.html`
-* `code index.html` или `nano index.html`
+Користите ове команде у вашем git bash-у:
+* `mkdir terrarium`
+* `cd terrarium`
+* `touch index.html`
+* `code index.html` или `nano index.html`
-> index.html фајлови указују претраживачу да је то подразумевани фајл у фасцикли; URL-ови као што је `https://anysite.com/test` могу бити изграђени користећи структуру фасцикли која укључује фасциклу под називом `test` са `index.html` унутар ње; `index.html` не мора да се приказује у URL-у.
+> index.html датотеке указују прегледачу да је то подразумевана датотека у фасцикли; URL-ови као што је `https://anysite.com/test` могу бити изграђени користећи структуру фасцикли која укључује фасциклу под називом `test` са `index.html` унутар ње; `index.html` не мора да се приказује у URL-у.
---
## DocType и html ознаке
-Први ред HTML фајла је његов doctype. Мало је изненађујуће што овај ред мора бити на самом врху фајла, али он говори старијим претраживачима да страница треба да се рендерује у стандардном режиму, пратећи тренутну html спецификацију.
+Први ред HTML датотеке је њен doctype. Мало је изненађујуће што овај ред мора бити на самом врху датотеке, али он говори старијим прегледачима да треба да приказују страницу у стандардном режиму, пратећи тренутну спецификацију HTML-а.
> Савет: у VS Code-у, можете прећи мишем преко ознаке и добити информације о њеној употреби из MDN референтних водича.
@@ -55,26 +55,26 @@ HTML, или ХиперТекст Маркуп Језик, је 'скелет'
### Задатак
-Додајте ове редове на врх вашег `index.html` фајла:
+Додајте ове редове на врх ваше `index.html` датотеке:
```HTML
```
-✅ Постоји неколико различитих режима који се могу одредити постављањем DocType-а са упитом: [Quirks Mode и Standards Mode](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). Ови режими су коришћени за подршку веома старим претраживачима који се данас ретко користе (Netscape Navigator 4 и Internet Explorer 5). Можете се држати стандардне декларације doctype-а.
+✅ Постоји неколико различитих режима који се могу одредити постављањем DocType-а са упитним низом: [Quirks Mode и Standards Mode](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). Ови режими су некада подржавали веома старе прегледаче који се данас ретко користе (Netscape Navigator 4 и Internet Explorer 5). Можете се држати стандардне декларације doctype-а.
---
## 'Head' документа
-'Head' део HTML документа укључује кључне информације о вашој веб страници, познате као [метаподаци](https://developer.mozilla.org/docs/Web/HTML/Element/meta). У нашем случају, серверу на који ће ова страница бити послата за рендеровање, шаљемо ове четири ствари:
+'Head' део HTML документа укључује кључне информације о вашој веб страници, познате као [метаподаци](https://developer.mozilla.org/docs/Web/HTML/Element/meta). У нашем случају, серверу на који ће ова страница бити послата за приказивање, пружамо ове четири ствари:
-- наслов странице
-- метаподатке странице, укључујући:
- - 'character set', који говори о томе која се кодна страна користи на страници
- - информације о претраживачу, укључујући `x-ua-compatible` који указује да је IE=edge претраживач подржан
- - информације о томе како би viewport требало да се понаша када се страница учита. Постављање viewport-а да има почетни скал од 1 контролише ниво зумирања када се страница први пут учита.
+- наслов странице
+- метаподатке странице, укључујући:
+ - 'character set', који указује на то која се кодна страна користи на страници
+ - информације о прегледачу, укључујући `x-ua-compatible` који указује да је IE=edge прегледач подржан
+ - информације о томе како би viewport требало да се понаша када се учита. Постављање viewport-а да има почетни скал од 1 контролише ниво зумирања када се страница први пут учита.
### Задатак
@@ -89,15 +89,15 @@ HTML, или ХиперТекст Маркуп Језик, је 'скелет'
```
-✅ Шта би се десило ако поставите viewport мета ознаку овако: ` `? Прочитајте више о [viewport-у](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag).
+✅ Шта би се догодило ако поставите viewport meta ознаку овако: ` `? Прочитајте више о [viewport-у](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag).
---
-## `Body` документа
+## 'Body' документа
### HTML ознаке
-У HTML-у, додајете ознаке у ваш .html фајл како бисте креирали елементе веб странице. Свака ознака обично има отварајућу и затварајућу ознаку, као што је: `здраво
` за означавање параграфа. Креирајте тело вашег интерфејса додавањем скупа `` ознака унутар `` пара ознака; ваш код сада изгледа овако:
+У HTML-у, додајете ознаке у вашу .html датотеку како бисте креирали елементе веб странице. Свака ознака обично има отварајућу и затварајућу ознаку, попут ове: `hello
` за означавање параграфа. Направите тело вашег интерфејса додавањем скупа `` ознака унутар `` пара ознака; ваш код сада изгледа овако:
### Задатак
@@ -114,13 +114,13 @@ HTML, или ХиперТекст Маркуп Језик, је 'скелет'
```
-Сада можете почети са изградњом ваше странице. Обично користите `` ознаке за креирање одвојених елемената на страници. Направићемо серију `
` елемената који ће садржати слике.
+Сада можете почети да градите вашу страницу. Обично користите `
` ознаке за креирање одвојених елемената на страници. Направићемо серију `
` елемената који ће садржати слике.
### Слике
-Једна HTML ознака која не захтева затварајућу ознаку је `
` ознака, јер има `src` елемент који садржи све информације потребне страници да рендерује ставку.
+Једна HTML ознака која не захтева затварајућу ознаку је `
` ознака, јер има `src` елемент који садржи све информације потребне страници да прикаже ставку.
-Направите фасциклу у вашој апликацији под називом `images` и у њу додајте све слике из [фасцикле са изворним кодом](../../../../3-terrarium/solution/images); (постоји 14 слика биљака).
+Направите фасциклу у вашој апликацији под називом `images` и у њој додајте све слике из [изворног кода](../../../../3-terrarium/solution/images); (постоји 14 слика биљака).
### Задатак
@@ -177,11 +177,11 @@ HTML, или ХиперТекст Маркуп Језик, је 'скелет'
```
-> Напомена: Divs vs. Spans. Divs се сматрају 'блок' елементима, а Spans 'inline'. Шта би се десило ако бисте ове div-ове претворили у span-ове?
+> Напомена: Спанови против Дивова. Дивови се сматрају 'блок' елементима, а Спанови 'инлајн'. Шта би се догодило ако ове дивове претворите у спанове?
Са овим кодом, биљке се сада приказују на екрану. Изгледа прилично лоше, јер још увек нису стилизоване помоћу CSS-а, што ћемо урадити у следећој лекцији.
-Свака слика има alt текст који ће се појавити чак и ако не можете да видите или рендерујете слику. Ово је важан атрибут за укључивање ради приступачности. Сазнајте више о приступачности у будућим лекцијама; за сада, запамтите да alt атрибут пружа алтернативне информације за слику ако корисник из неког разлога не може да је види (због споре везе, грешке у src атрибуту или ако корисник користи читач екрана).
+Свака слика има alt текст који ће се појавити чак и ако не можете да видите или прикажете слику. Ово је важан атрибут за укључивање ради приступачности. Сазнајте више о приступачности у будућим лекцијама; за сада, запамтите да alt атрибут пружа алтернативне информације за слику ако корисник из неког разлога не може да је види (због споре везе, грешке у src атрибуту или ако корисник користи читач екрана).
✅ Да ли сте приметили да свака слика има исти alt текст? Да ли је ово добра пракса? Зашто или зашто не? Можете ли побољшати овај код?
@@ -189,7 +189,7 @@ HTML, или ХиперТекст Маркуп Језик, је 'скелет'
## Семантички маркуп
-Уопштено, пожељно је користити значајан 'семантички' маркуп приликом писања HTML-а. Шта то значи? То значи да користите HTML ознаке да представите тип података или интеракције за које су дизајниране. На пример, главни наслов текста на страници треба да користи `
` ознаку.
+Уопштено, пожељно је користити значајан 'семантички' маркуп када пишете HTML. Шта то значи? То значи да користите HTML ознаке које представљају тип података или интеракције за које су дизајниране. На пример, главни наслов текста на страници треба да користи `` ознаку.
Додајте следећи ред одмах испод ваше отварајуће `` ознаке:
@@ -197,9 +197,9 @@ HTML, или ХиперТекст Маркуп Језик, је 'скелет'
My Terrarium
```
-Коришћење семантичког маркупа, као што је коришћење `` за наслове и `` за неуређене листе, помаже читачима екрана да се крећу кроз страницу. Уопштено, дугмад треба писати као ``, а листе као ``. Иако је _могуће_ користити посебно стилизоване `` елементе са обрађивачима кликова да би се имитирала дугмад, боље је за кориснике са инвалидитетом да користе технологије које одређују где се дугме налази на страници и да интерагују са њим ако се елемент појављује као дугме. Из тог разлога, покушајте да користите семантички маркуп што је више могуће.
+Коришћење семантичког маркупа, као што је коришћење `` за наслове и `` за неуређене листе, помаже читачима екрана да се крећу кроз страницу. Уопштено, дугмад треба да буду написана као ``, а листе као ``. Иако је _могуће_ користити посебно стилизоване `` елементе са обрађивачима кликова да би се имитирала дугмад, боље је за кориснике са инвалидитетом да користе технологије које одређују где се дугме налази на страници и да интерагују са њим ако се елемент појављује као дугме. Из тог разлога, покушајте да користите семантички маркуп што је више могуће.
-✅ Погледајте читач екрана и [како он интерагује са веб страницом](https://www.youtube.com/watch?v=OUDV1gqs9GA). Можете ли видети зашто би несемантички маркуп могао фрустрирати корисника?
+✅ Погледајте читач екрана и [како он интерагује са веб страницом](https://www.youtube.com/watch?v=OUDV1gqs9GA). Можете ли видети зашто би несемантички маркуп могао да фрустрира корисника?
## Тераријум
@@ -221,21 +221,21 @@ HTML, или ХиперТекст Маркуп Језик, је 'скелет'
```
-✅ Иако сте додали овај маркуп на екран, не видите ништа што се рендерује. Зашто?
+✅ Иако сте додали овај маркуп на екран, апсолутно ништа се не приказује. Зашто?
---
## 🚀Изазов
-Постоје неке занимљиве 'старе' ознаке у HTML-у које је и даље забавно испробати, иако не би требало да користите застареле ознаке као што су [ове ознаке](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements) у вашем маркупу. Ипак, можете ли користити стару `
` ознаку да натерате h1 наслов да се хоризонтално помера? (ако то урадите, не заборавите да је уклоните након тога)
+Постоје неке занимљиве 'старије' ознаке у HTML-у које је и даље забавно испробати, иако не би требало да користите застареле ознаке као што су [ове ознаке](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements) у вашем маркупу. Ипак, можете ли користити стару `` ознаку да натерате наслов `