feat(turkish): Add complete Turkish translations for Days 1–30#440
feat(turkish): Add complete Turkish translations for Days 1–30#440sametsarikaya wants to merge 18 commits into
Conversation
30-Days-Of-React reposunun Türkçe çevirisi başlatıldı. Turkish/ klasörü altına Gün 2 (React'a Giriş), Gün 3 (Kurulum), Gün 4 (Bileşenler) ve Gün 5 (Props) eklendi.
… 3-5 bugs New translations added: - Day 01: JavaScript Refresher (01_Gun_JavaScript_Tazeleyici) Complete coverage: adding JS to web, variables, data types, arrays, conditionals, loops, scope, objects, functions, higher order functions, destructuring, spread, functional programming, classes, DOM - Day 06: Mapping Arrays (06_Gun_Dizi_Haritalama) Covers mapping number arrays, arrays of arrays, arrays of objects, and the importance of the key prop - Day 07: Class Components (07_Gun_Class_Bilesenler) Converting functional to class components, this.props access, class methods, complete code examples - Day 08: State / Durum (08_Gun_State) What is state, setState(), counter example, cat/dog toggle example, full combined app with state and props - Day 09: Conditional Rendering / Kosullu Render (09_Gun_Kosullu_Render) if/else, ternary operator, && operator, Login/Welcome components, message state, exercises - Day 10: React Project Folder Structure (10_Gun_Proje_Klasor_Yapisi) File naming (CamelCase), folder structure, named vs default exports, components folder organization, Fragments Bug fixes in existing translations (Days 3-5): - Fixed 'Author:' not translated -> 'Yazar:' in Days 3, 4, 5 - Fixed 'October, 2020' not translated -> 'Ekim, 2020' in Days 3, 4, 5 and readMe Navigation improvements: - readMe.md: updated top nav link from Day 2 to Day 1 (now that Day 1 exists) - readMe.md: expanded table of contents from Days 2-5 to Days 1-10 - Day 05 (05_props.md): fixed both nav links for Day 6 to point to Turkish version (06_Gun_Dizi_Haritalama) instead of English source Translation conventions used throughout: - Prose and headings fully translated to Turkish - Code (variable/function names, JSX) left unchanged - Code comments translated to Turkish - React technical terms kept in English with Turkish in parentheses: Component (Bilesen), State (Durum), Props (Ozellikler), Hook (Kanca), Functional Component (Fonksiyonel Bilesen), Class Component (Sinif Tabanlı Bilesen), Fragment (Parca), etc.
There was a problem hiding this comment.
Pull request overview
This PR expands the Turkish track of the “30 Days of React” content by adding new Turkish lesson markdown for later days and updating Turkish navigation, while also incorporating some fixes in previously added Turkish content.
Changes:
- Adds Turkish markdown content for Days 6–10 (and updates Turkish navigation to cover Days 1–10).
- Updates Turkish lesson files for earlier days to align author/date strings and navigation links.
- Extends
Turkish/readMe.mdwith a Day 1 entry and a complete Day 1–10 table.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| Turkish/readMe.md | Adds/updates Turkish landing page navigation and Day 1–10 table. |
| Turkish/02_Gun_Reacta_Giris/02_reacta_giris.md | Turkish Day 2 lesson content. |
| Turkish/03_Gun_Kurulum/03_kurulum.md | Turkish Day 3 lesson content + metadata/nav. |
| Turkish/04_Gun_Bilesenler/04_bilesenler.md | Turkish Day 4 lesson content + metadata/nav. |
| Turkish/05_Gun_Props/05_props.md | Turkish Day 5 lesson content + metadata/nav. |
| Turkish/06_Gun_Dizi_Haritalama/06_dizi_haritalama.md | Turkish Day 6 lesson content + exercises. |
| Turkish/07_Gun_Class_Bilesenler/07_class_bilesenler.md | Turkish Day 7 lesson content. |
| Turkish/08_Gun_State/08_state.md | Turkish Day 8 lesson content. |
| Turkish/09_Gun_Kosullu_Render/09_kosullu_render.md | Turkish Day 9 lesson content. |
| Turkish/10_Gun_Proje_Klasor_Yapisi/10_proje_klasor_yapisi.md | Turkish Day 10 lesson content + folder structure guidance. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Turkish/03_Gun_Kurulum/03_kurulum.md:
- Fix broken relative link: '../03/../03_Day_Setting_Up/' -> '../../03_Day_Setting_Up/'
Turkish/06_Gun_Dizi_Haritalama/06_dizi_haritalama.md:
- Fix broken relative link: '../06_Day_Map_List_Keys/' -> '../../06_Day_Map_List_Keys/'
Turkish/02_Gun_Reacta_Giris/02_reacta_giris.md:
- Fix missing Turkish character: 'TEBRIKLER!' -> 'TEBRİKLER!'
Turkish/08_Gun_State/08_state.md:
- Remove unused 'const count = this.state.count' in cat/dog example
(state only has 'image', not 'count')
- Fix JSX attribute: 'class=' -> 'className=' on the Change button
Turkish/09_Gun_Kosullu_Render/09_kosullu_render.md:
- Fix undefined variable: 'techs={techs}' -> 'techs={this.state.techs}'
('techs' was not declared in render scope; it lives in this.state)
Turkish/10_Gun_Proje_Klasor_Yapisi/10_proje_klasor_yapisi.md:
- Fix missing closing quote in all 'import React from 'react' lines (6 places)
- Fix invalid syntax 'export default const App = ...' ->
'const App = ...; export default App'
- Fix JSX attribute: '<div class="country_text">' -> '<div className="country_text">'
- Remove 'this.state.backgroundColor' from render (field not defined in state)
- Fix typos in folder structure example:
'Forgotpassword.js' -> 'ForgotPassword.js'
'Resetpassord.js' -> 'ResetPassword.js'
'icnons' -> 'icons'
'- fonts' (bad indent) -> '-fonts'
- Fix Header component: destructure props.data instead of using
undeclared variables (welcome, title, etc.)
|
Day you aye. Fuck off
…On Sun, 10 May 2026 at 18:17, Samet SARIKAYA ***@***.***> wrote:
***@***.**** commented on this pull request.
I do copilot suggestions
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Why? |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
@copilot apply changes based on the comments in this thread |
…Üçüncü Taraf Paketler)
…10' into turkish-translation-days-1-6-to-10
|
Hi! This PR has been updated with additional Turkish translations. What's new in this update
Notes for the reviewer
Thanks for taking the time to review! |
Turkish Translation Update — Days 21–30This push adds the complete Turkish translation for Days 21 through 30, completing the full 30-day series. Added in this update:
Translation conventions followed:
All commits are on branch `turkish-translation-days-1-6-to-10`. The Turkish/ folder now contains all 30 days. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 31 out of 31 changed files in this pull request and generated 14 comments.
Comments suppressed due to low confidence (5)
Turkish/20_Gun_Projeler/20_projeler.md:38
- This bottom navigation link also points to the English Day 21 file instead of the Turkish Day 21 translation, breaking the localized day-to-day navigation.
[<< Gün 19](../19_Gun_Projeler/19_projeler.md) | [Gün 21 >>](../../21_Introducing_Hooks/21_introducing_hooks.md)
Turkish/04_Gun_Bilesenler/04_bilesenler.md:437
- This code block defines the app component as lowercase
appjust above, but renders<App />, which is undefined in the snippet. That makes the example fail when copied; the declaration or the rendered component name should be consistent.
// App bileşenini ReactDOM paketiyle render ediyoruz
ReactDOM.render(<App />, rootElement);
Turkish/25_Gun_Ozel_Hooklar/25_ozel_hooklar.md:183
- This React/JSX example repeats the
classattribute instead ofclassName, which is inconsistent with JSX usage elsewhere in the same snippet and can produce warnings for readers copying the example.
<div class='country_text'>
Turkish/16_Gun_Yuksek_Duzey_Bilesen/16_yuksek_duzey_bilesen.md:156
- This block defines the HOC as
buttonWithStyles, but these declarations call the undefinedbuttonWithSuperPower. The example will throw instead of demonstrating the styled buttons.
const NewButton = buttonWithSuperPower(Button)
const ReactButton = buttonWithSuperPower(Button, 'react')
const InfoButton = buttonWithSuperPower(Button, 'info')
const SuccessButton = buttonWithSuperPower(Button, 'success')
const WarningButton = buttonWithSuperPower(Button, 'warning')
Turkish/16_Gun_Yuksek_Duzey_Bilesen/16_yuksek_duzey_bilesen.md:157
- This declaration also calls the undefined
buttonWithSuperPowerinstead of the HOC defined above, so theDangerButtonexample cannot run.
const DangerButton = buttonWithSuperPower(Button, 'danger')
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 31 out of 31 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (2)
Turkish/03_Gun_Kurulum/03_kurulum.md:172
- The
$prompt is escaped inside the shell code block, which renders a literal backslash before the prompt and makes thenpm startexample misleading for copy/paste.
```sh
Asabeneh@DESKTOP-KGC1AKC MINGW64 ~/Desktop/30-days-of-react (master)
\$ npm start
Turkish/03_Gun_Kurulum/03_kurulum.md:261
- This fenced shell example also renders the prompt as
\$because the$is escaped. In a code block the escape is unnecessary and produces an inaccurate command prompt.
```sh
Asabeneh@DESKTOP-KGC1AKC MINGW64 ~/Desktop/30-days-of-react (master)
\$ npm start
- 03_kurulum.md: kod bloklarında \$ → $ düzeltildi (5 adet) - 08_state.md: \_belirli → _belirli kaçış karakteri kaldırıldı - 04_bilesenler.md: Statefull → Stateful yazım hatası düzeltildi Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
This PR completes the full Turkish translation of the 30 Days of React challenge — all 30 days are now translated. It also fixes several bugs found in the previously merged Days 2–5 translations (PR #439).
New Translations
Day 01 — JavaScript Refresher
File:
Turkish/01_Gun_JavaScript_Tazeleyici/01_javascript_tazeleyici.mdFull translation covering:
<script>inline, internal, external)var,let,const)if,else, ternary,switch)for,while,for...of,for...in)map,filter,reduce,forEach)Day 06 — Mapping Arrays / Dizi Haritalama
Day 07 — Class Components / Sınıf Tabanlı Bileşenler
Day 08 — State / Durum
Day 09 — Conditional Rendering / Koşullu Render
Day 10 — React Project Folder Structure / Proje Klasör Yapısı
Day 11 — Events / Olaylar
Day 12 — Forms / Formlar
Day 13 — Controlled vs Uncontrolled Input / Kontrollü ve Kontrolsüz Input
Day 14 — Component Lifecycle / Bileşen Yaşam Döngüleri
Day 15 — Third Party Packages / Üçüncü Taraf Paketler
Day 16 — Higher Order Component / Yüksek Düzey Bileşen
Day 17 — React Router
Day 18 — Fetch and Axios / Fetch ve Axios
Day 19 — Projects / Projeler
Day 20 — Projects / Projeler
Day 21 — Introducing Hooks / React Hook'larına Giriş
Day 22 — Forms with Hooks / Hook ile Form
Day 23 — Fetching Data with Hooks / Hook ile Veri Çekme
Day 24 — Projects / Projeler
Day 25 — Custom Hooks / Özel Hook'lar
Day 26 — Context
Day 27 — useRef
Day 28 — Project / Proje
Day 29 — Explore / Keşfet
Day 30 — Conclusions / Sonuçlar
Bug Fixes (Days 3–5, readMe)
The following issues were found in the existing Turkish translation:
Turkish/readMe.mdOctober, 2020not translatedEkim, 2020Turkish/readMe.mdTurkish/03_Gun_Kurulum/03_kurulum.mdAuthor:not translated;October, 2020not translatedYazar:,Ekim, 2020Turkish/04_Gun_Bilesenler/04_bilesenler.mdAuthor:not translated;October, 2020not translatedYazar:,Ekim, 2020Turkish/05_Gun_Props/05_props.mdAuthor:not translated;October, 2020not translated; both Day 6 navigation links pointed to English source fileYazar:,Ekim, 2020; links updated to../06_Gun_Dizi_Haritalama/06_dizi_haritalama.mdTranslation Conventions
Consistent conventions are applied across all files:
Component (Bileşen),State (Durum),Props (Özellikler)Hook (Kanca),Fragment (Parça)Functional Component (Fonksiyonel Bileşen)Class Component (Sınıf Tabanlı Bileşen)Higher Order Function (Yüksek Dereceli Fonksiyon)../../images/(two levels up from day folder)Seviye 1,Seviye 2,Seviye 3🎉 TEBRİKLER! 🎉