Skip to content

feat(turkish): Add complete Turkish translations for Days 1–30#440

Open
sametsarikaya wants to merge 18 commits into
Asabeneh:masterfrom
sametsarikaya:turkish-translation-days-1-6-to-10
Open

feat(turkish): Add complete Turkish translations for Days 1–30#440
sametsarikaya wants to merge 18 commits into
Asabeneh:masterfrom
sametsarikaya:turkish-translation-days-1-6-to-10

Conversation

@sametsarikaya

@sametsarikaya sametsarikaya commented May 10, 2026

Copy link
Copy Markdown

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.md

Full translation covering:

  • Adding JavaScript to a web page (<script> inline, internal, external)
  • Variables (var, let, const)
  • Data types (primitive and non-primitive)
  • Arrays and array methods
  • Conditionals (if, else, ternary, switch)
  • Loops (for, while, for...of, for...in)
  • Functions (declaration, expression, arrow, IIFE)
  • Scope (global, local, closure)
  • Objects and object methods
  • Higher Order Functions (map, filter, reduce, forEach)
  • Destructuring and spread operator
  • Functional programming concepts
  • Classes and inheritance
  • DOM manipulation basics

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:

File Issue Fix
Turkish/readMe.md October, 2020 not translated Ekim, 2020
Turkish/readMe.md Top nav link started at Day 2; table only listed Days 2–5 → now starts at Day 1; table lists Days 1–30
Turkish/03_Gun_Kurulum/03_kurulum.md Author: not translated; October, 2020 not translated Yazar:, Ekim, 2020
Turkish/04_Gun_Bilesenler/04_bilesenler.md Author: not translated; October, 2020 not translated Yazar:, Ekim, 2020
Turkish/05_Gun_Props/05_props.md Author: not translated; October, 2020 not translated; both Day 6 navigation links pointed to English source file Yazar:, Ekim, 2020; links updated to ../06_Gun_Dizi_Haritalama/06_dizi_haritalama.md

Translation Conventions

Consistent conventions are applied across all files:

  • Prose and headings → fully translated to Turkish
  • Code (variable names, function names, JSX elements) → unchanged
  • Code comments → fully translated to Turkish
  • React technical terms → English kept, Turkish in parentheses:
    • 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)
  • Image paths../../images/ (two levels up from day folder)
  • Navigation links → point to Turkish files where available, English source otherwise
  • Exercises → Levels labeled Seviye 1, Seviye 2, Seviye 3
  • Congratulations🎉 TEBRİKLER! 🎉

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.
Copilot AI review requested due to automatic review settings May 10, 2026 10:43

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.md with 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.

Comment thread Turkish/03_Gun_Kurulum/03_kurulum.md Outdated
Comment thread Turkish/06_Gun_Dizi_Haritalama/06_dizi_haritalama.md Outdated
Comment thread Turkish/08_Gun_State/08_state.md Outdated
Comment thread Turkish/08_Gun_State/08_state.md Outdated
Comment thread Turkish/09_Gun_Kosullu_Render/09_kosullu_render.md Outdated
Comment thread Turkish/10_Gun_Proje_Klasor_Yapisi/10_proje_klasor_yapisi.md Outdated
Comment thread Turkish/02_Gun_Reacta_Giris/02_reacta_giris.md Outdated
Comment thread Turkish/10_Gun_Proje_Klasor_Yapisi/10_proje_klasor_yapisi.md Outdated
Comment thread Turkish/10_Gun_Proje_Klasor_Yapisi/10_proje_klasor_yapisi.md
Comment thread Turkish/10_Gun_Proje_Klasor_Yapisi/10_proje_klasor_yapisi.md
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.)
sametsarikaya

This comment was marked as outdated.

@MatthewRInnes

MatthewRInnes commented May 11, 2026 via email

Copy link
Copy Markdown

@sametsarikaya

Copy link
Copy Markdown
Author

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?

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.

Comment thread Turkish/05_Gun_Props/05_props.md Outdated
Comment thread Turkish/04_Gun_Bilesenler/04_bilesenler.md
Comment thread Turkish/08_Gun_State/08_state.md Outdated
Comment thread Turkish/08_Gun_State/08_state.md
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@sametsarikaya

Copy link
Copy Markdown
Author

@copilot apply changes based on the comments in this thread

@sametsarikaya

sametsarikaya commented May 17, 2026

Copy link
Copy Markdown
Author

Hi! This PR has been updated with additional Turkish translations.

What's new in this update

  • Day 12 — Forms (Turkish/12_Gun_Formlar/)
  • Day 13 — Controlled vs Uncontrolled Inputs (Turkish/13_Gun_Kontrollü_ve_Kontrolsüz_Input/)
  • Day 14 — Component Lifecycles (Turkish/14_Gun_Bilesen_Yasam_Donguleri/)
  • Day 15 — Third-party Packages (Turkish/15_Gun_Üçüncü_Taraf_Paketler/)
  • Day 16 — Higher Order Components (Turkish/16_Gun_Yuksek_Duzey_Bilesen/)
  • Day 17 — React Router (Turkish/17_Gun_React_Router/)
  • Day 18 — Fetch and Axios (Turkish/18_Gun_Fetch_ve_Axios/)
  • Day 19 — Projects (Turkish/19_Gun_Projeler/)
  • Day 20 — Projects (Turkish/20_Gun_Projeler/)

Notes for the reviewer

  • The Copilot autofix commit (67da427) on Day 5 props was merged into this branch - no conflicts.
  • Only Turkish content under Turkish/ was touched; no source/English files were modified.
  • Code blocks, JSX snippets, and external links were preserved as-is; only prose was translated.

Thanks for taking the time to review!

@sametsarikaya

Copy link
Copy Markdown
Author

Turkish Translation Update — Days 21–30

This push adds the complete Turkish translation for Days 21 through 30, completing the full 30-day series.

Added in this update:

  • Day 21 — React Hook'larına Giriş (Introducing React Hooks): useState, useEffect, useContext, useRef, useReducer overviews and examples
  • Day 22 — Hook ile Form (Form Using React Hooks): controlled inputs, multi-field forms, various input types (checkbox, radio, select, file, color, date), and form validation with onBlur
  • Day 23 — Hook ile Veri Çekme (Fetching Data Using Hooks): useEffect-based data fetching from REST API
  • Day 24 — Projeler (Projects): country data API project exercise
  • Day 25 — Özel Hook'lar (Custom Hooks): building a reusable useFetch custom hook on top of useState and useEffect
  • Day 26 — Context: explanation of React Context API and when to use it
  • Day 27 — useRef: getting input data, focus, DOM content, and styling DOM elements with useRef
  • Day 28 — Proje (Project): CRUD operations explanation and Twitter clone exercise
  • Day 29 — Keşfet (Explore): encouragement, GitHub/portfolio/LinkedIn tips, and Level 1 exercises
  • Day 30 — Sonuçlar (Conclusions): final conclusions, testimony link

Translation conventions followed:

  • React/JS technical terms kept in English (useState, useEffect, hooks, props, state, component, etc.)
  • Code block inline comments translated to Turkish
  • JSX visible text (labels, buttons, placeholders, headings) translated to Turkish
  • Navigation links point to Turkish folder paths
  • Image paths use `../../images/` (two levels up from Turkish subfolder)

All commits are on branch `turkish-translation-days-1-6-to-10`. The Turkish/ folder now contains all 30 days.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 app just 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 class attribute instead of className, 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 undefined buttonWithSuperPower. 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 buttonWithSuperPower instead of the HOC defined above, so the DangerButton example cannot run.
const DangerButton = buttonWithSuperPower(Button, 'danger')

Comment thread Turkish/20_Gun_Projeler/20_projeler.md Outdated
Comment thread Turkish/readMe.md Outdated
Comment thread Turkish/03_Gun_Kurulum/03_kurulum.md Outdated
Comment thread Turkish/11_Gun_Olaylar/11_olaylar.md Outdated
Comment thread Turkish/04_Gun_Bilesenler/04_bilesenler.md
Comment thread Turkish/16_Gun_Yuksek_Duzey_Bilesen/16_yuksek_duzey_bilesen.md Outdated
Comment thread Turkish/11_Gun_Olaylar/11_olaylar.md Outdated
Comment thread Turkish/21_Gun_Hook_Giris/21_hook_giris.md Outdated
Comment thread Turkish/23_Gun_Hook_ile_Veri_Cekme/23_hook_ile_veri_cekme.md Outdated
Comment thread Turkish/11_Gun_Olaylar/11_olaylar.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 31 out of 31 changed files in this pull request and generated 8 comments.

Comment thread Turkish/readMe.md
Comment thread Turkish/11_Gun_Olaylar/11_olaylar.md Outdated
Comment thread Turkish/21_Gun_Hook_Giris/21_hook_giris.md Outdated
Comment thread Turkish/21_Gun_Hook_Giris/21_hook_giris.md Outdated
Comment thread Turkish/12_Gun_Formlar/12_formlar.md Outdated
Comment thread Turkish/12_Gun_Formlar/12_formlar.md Outdated
Comment thread Turkish/11_Gun_Olaylar/11_olaylar.md Outdated
Comment thread Turkish/16_Gun_Yuksek_Duzey_Bilesen/16_yuksek_duzey_bilesen.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 31 out of 31 changed files in this pull request and generated 1 comment.

Comment thread Turkish/readMe.md
@sametsarikaya sametsarikaya changed the title feat(turkish): Add Turkish translations for Days 1 and 6–10, fix Days 3–5 bugs feat(turkish): Add complete Turkish translations for Days 1–30 May 18, 2026
@sametsarikaya sametsarikaya requested a review from Copilot May 18, 2026 20:10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 the npm start example 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

Comment thread Turkish/03_Gun_Kurulum/03_kurulum.md Outdated
Comment thread Turkish/08_Gun_State/08_state.md Outdated
Comment thread Turkish/04_Gun_Bilesenler/04_bilesenler.md Outdated
- 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>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants