From 4a87b82c6c2b5356c0919bbec29dbbe6955c14b3 Mon Sep 17 00:00:00 2001 From: Bilal Karakollu Date: Sun, 19 Jan 2025 01:00:33 +0300 Subject: [PATCH 1/6] fix strict mode --- src/content/reference/react/StrictMode.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/content/reference/react/StrictMode.md b/src/content/reference/react/StrictMode.md index 7e3bc252b..fcb6b408f 100644 --- a/src/content/reference/react/StrictMode.md +++ b/src/content/reference/react/StrictMode.md @@ -42,10 +42,10 @@ root.render( Strict Modu aşağıdaki geliştirici davranışlarını etkinleştirir: -- Your components will [re-render an extra time](#fixing-bugs-found-by-double-rendering-in-development) to find bugs caused by impure rendering. -- Your components will [re-run Effects an extra time](#fixing-bugs-found-by-re-running-effects-in-development) to find bugs caused by missing Effect cleanup. -- Your components will [re-run refs callbacks an extra time](#fixing-bugs-found-by-re-running-ref-callbacks-in-development) to find bugs caused by missing ref cleanup. -- Your components will [be checked for usage of deprecated APIs.](#fixing-deprecation-warnings-enabled-by-strict-mode) +- Bileşenleriniz, saf olmayan render'dan kaynaklanan hataları bulmak için [bir ekstra kez yeniden render edilmiştir](#fixing-bugs-found-by-double-rendering-in-development). +- Bileşenleriniz, eksik Effect temizliklerinden kaynaklanan hataları bulmak için [bir ekstra kez Efekt'leri yeniden çalıştırır](#fixing-bugs-found-by-re-running-effects-in-development). +- Bileşenleriniz, eksik ref temizliklerinden kaynaklanan hataları bulmak için [bir ekstra kez ref geri çağırmalarını yeniden çalıştırır](#fixing-bugs-found-by-re-running-ref-callbacks-in-development). +- Bileşenleriniz, [deprecate edilmiş API'lerin kullanımına karşı kontrol edilir](#fixing-deprecation-warnings-enabled-by-strict-mode). #### Prop'lar {/*props*/} @@ -86,10 +86,10 @@ Strict Mod kontrolleri **yalnızca geliştirme aşamasında çalıştırılsa da Strict Modu geliştirme sırasında aşağıdaki kontrolleri etkinleştirir: -- Your components will [re-render an extra time](#fixing-bugs-found-by-double-rendering-in-development) to find bugs caused by impure rendering. -- Your components will [re-run Effects an extra time](#fixing-bugs-found-by-re-running-effects-in-development) to find bugs caused by missing Effect cleanup. -- Your components will [re-run ref callbacks an extra time](#fixing-bugs-found-by-cleaning-up-and-re-attaching-dom-refs-in-development) to find bugs caused by missing ref cleanup. -- Your components will [be checked for usage of deprecated APIs.](#fixing-deprecation-warnings-enabled-by-strict-mode) +- Bileşenleriniz, saf olmayan render'dan kaynaklanan hataları bulmak için [bir ekstra kez yeniden render edilir](#fixing-bugs-found-by-double-rendering-in-development). +- Bileşenleriniz, eksik Effect temizliklerinden kaynaklanan hataları bulmak için [bir ekstra kez Effect'leri yeniden çalıştırır](#fixing-bugs-found-by-re-running-effects-in-development). +- Bileşenleriniz, eksik ref temizliklerinden kaynaklanan hataları bulmak için [bir ekstra kez ref geri çağırmalarını yeniden çalıştırır](#fixing-bugs-found-by-cleaning-up-and-re-attaching-dom-refs-in-development). +- Bileşenleriniz, [deprecate edilmiş API'lerin kullanımına karşı kontrol edilir](#fixing-deprecation-warnings-enabled-by-strict-mode). **Tüm bu kontroller yalnızca geliştirme sırasında çalıştırılar ve canlıda herhangi bir etkisi yoktur.** From a4f70d6761a5c31f0e661676fd7456f404805a7d Mon Sep 17 00:00:00 2001 From: Bilal Karakollu Date: Sun, 19 Jan 2025 01:06:36 +0300 Subject: [PATCH 2/6] fix suspanse translate --- src/content/reference/react/Suspense.md | 74 ++++++++++++------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/src/content/reference/react/Suspense.md b/src/content/reference/react/Suspense.md index 9b3c5c8fb..bded13cea 100644 --- a/src/content/reference/react/Suspense.md +++ b/src/content/reference/react/Suspense.md @@ -119,9 +119,9 @@ export default function Albums({ artistId }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemini yapma şekliniz, birlikte kullandığınız çatıya bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir çatı içinde yer alır. let cache = new Map(); @@ -141,7 +141,7 @@ async function getData(url) { } async function getAlbums() { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 3000); }); @@ -334,9 +334,9 @@ export default function Albums({ artistId }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemini yapma şekliniz, birlikte kullandığınız çatıya bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir çatı içinde yer alır. let cache = new Map(); @@ -358,7 +358,7 @@ async function getData(url) { } async function getBio() { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 1500); }); @@ -370,7 +370,7 @@ async function getBio() { } async function getAlbums() { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 3000); }); @@ -596,9 +596,9 @@ export default function Albums({ artistId }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemini yapma şekliniz, birlikte kullandığınız framework'e bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir framework içinde yer alır. let cache = new Map(); @@ -620,7 +620,7 @@ async function getData(url) { } async function getBio() { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 500); }); @@ -632,7 +632,7 @@ async function getBio() { } async function getAlbums() { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 3000); }); @@ -780,9 +780,9 @@ export default function SearchResults({ query }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemi, birlikte kullandığınız framework'e bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir framework içinde yer alır. let cache = new Map(); @@ -802,7 +802,7 @@ async function getData(url) { } async function getSearchResults(query) { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 500); }); @@ -964,9 +964,9 @@ export default function SearchResults({ query }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemi, birlikte kullandığınız framework'e bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir framework içinde yer alır. let cache = new Map(); @@ -986,7 +986,7 @@ async function getData(url) { } async function getSearchResults(query) { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 500); }); @@ -1223,9 +1223,9 @@ export default function Panel({ children }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemi, birlikte kullandığınız framework'e bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir framework içinde yer alır. let cache = new Map(); @@ -1247,7 +1247,7 @@ async function getData(url) { } async function getBio() { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 500); }); @@ -1259,7 +1259,7 @@ async function getBio() { } async function getAlbums() { - // Add a fake delay to make waiting noticeable. +// Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 3000); }); @@ -1535,9 +1535,9 @@ export default function Panel({ children }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemi, birlikte kullandığınız framework'e bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir framework içinde yer alır. let cache = new Map(); @@ -1559,7 +1559,7 @@ async function getData(url) { } async function getBio() { - // Add a fake delay to make waiting noticeable. +// Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 500); }); @@ -1571,7 +1571,7 @@ async function getBio() { } async function getAlbums() { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 3000); }); @@ -1846,9 +1846,9 @@ export default function Panel({ children }) { ``` ```js src/data.js hidden -// Note: the way you would do data fetching depends on -// the framework that you use together with Suspense. -// Normally, the caching logic would be inside a framework. +// Not: Veri çekme işlemi, birlikte kullandığınız framework'e bağlıdır +// ve Suspense ile birlikte çalışır. +// Normalde, önbellekleme mantığı bir framework içinde yer alır. let cache = new Map(); @@ -1870,7 +1870,7 @@ async function getData(url) { } async function getBio() { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 500); }); @@ -1882,7 +1882,7 @@ async function getBio() { } async function getAlbums() { - // Add a fake delay to make waiting noticeable. + // Beklemeyi fark edilebilir hale getirmek için sahte bir gecikme ekleyin. await new Promise(resolve => { setTimeout(resolve, 3000); }); From 47592cd1a70b58198c965288656fc7214f3f88d1 Mon Sep 17 00:00:00 2001 From: Bilal Karakollu Date: Sun, 19 Jan 2025 01:07:59 +0300 Subject: [PATCH 3/6] fix createContext --- src/content/reference/react/createContext.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/reference/react/createContext.md b/src/content/reference/react/createContext.md index c75c621ed..b9040ce9a 100644 --- a/src/content/reference/react/createContext.md +++ b/src/content/reference/react/createContext.md @@ -85,7 +85,7 @@ function Button() { } ``` -Although this older way still works, **newly written code should read context with [`useContext()`](/reference/react/useContext) instead:** +Bu eski yöntem hala çalışsa da, **yeni yazılan kodlar bunun yerine [`useContext()`](/reference/react/useContext) ile context okumalıdır:** ```js function Button() { From 02fd859e8ff9fa59c700d6132b0a8a415a782db1 Mon Sep 17 00:00:00 2001 From: Bilal Karakollu Date: Sun, 19 Jan 2025 01:08:45 +0300 Subject: [PATCH 4/6] fix props text --- src/content/reference/react/createContext.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/reference/react/createContext.md b/src/content/reference/react/createContext.md index b9040ce9a..be2a7fddb 100644 --- a/src/content/reference/react/createContext.md +++ b/src/content/reference/react/createContext.md @@ -61,7 +61,7 @@ function App() { } ``` -#### Props {/*provider-props*/} +#### Proplar {/*provider-props*/} * `value`: Ne kadar derin olursa olsun, bu sağlayıcının içindeki contexti okuyan tüm bileşenlere aktarmak istediğiniz değer. Context değeri herhangi bir türde olabilir. Sağlayıcı içinde [`useContext(SomeContext)`](/reference/react/useContext) kullanan bir bileşen, üzerindeki en içte bulunan ilgili context sağlayıcısının `value` değerini alır. From 9b9adec4d0d2ab02712b4dc65de4e24c48bf080b Mon Sep 17 00:00:00 2001 From: Bilal Karakollu Date: Sun, 19 Jan 2025 01:11:28 +0300 Subject: [PATCH 5/6] translate paragraph in startTransition --- src/content/reference/react/startTransition.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/content/reference/react/startTransition.md b/src/content/reference/react/startTransition.md index 5e9ad58bf..9daf502a9 100644 --- a/src/content/reference/react/startTransition.md +++ b/src/content/reference/react/startTransition.md @@ -4,7 +4,7 @@ title: startTransition -`startTransition` lets you render a part of the UI in the background. +`startTransition`, UI'nin bir kısmını arka planda render etmenizi sağlar. ```js startTransition(action) @@ -41,7 +41,7 @@ function TabContainer() { #### Parametreler {/*parameters*/} -* `action`: A function that updates some state by calling one or more [`set` functions](/reference/react/useState#setstate). React calls `action` immediately with no parameters and marks all state updates scheduled synchronously during the `action` function call as Transitions. Any async calls awaited in the `action` will be included in the transition, but currently require wrapping any `set` functions after the `await` in an additional `startTransition` (see [Troubleshooting](/reference/react/useTransition#react-doesnt-treat-my-state-update-after-await-as-a-transition)). State updates marked as Transitions will be [non-blocking](#marking-a-state-update-as-a-non-blocking-transition) and [will not display unwanted loading indicators.](/reference/react/useTransition#preventing-unwanted-loading-indicators). +* `action`: Bir veya birden fazla [`set` fonksiyonu](/reference/react/useState#setstate) çağırarak bazı Stateleri güncelleyen bir fonksiyon. React, `action` fonksiyonunu hemen parametresiz olarak çağırır ve `action` fonksiyonu çağrıldığında senkronize olarak planlanan tüm State güncellemelerini Transition olarak işaretler. `action` içinde beklenen herhangi bir async çağrı, geçişe dahil edilecektir, ancak şu anda `await` sonrası herhangi bir `set` fonksiyonunun ek bir `startTransition` içinde sarılması gerekmektedir (bkz. [Sorun Giderme](/reference/react/useTransition#react-doesnt-treat-my-state-update-after-await-as-a-transition)). Transition olarak işaretlenen durum güncellemeleri [bloklanmayan](#marking-a-state-update-as-a-non-blocking-transition) olacak ve [istenmeyen yükleme göstergelerini göstermeyecektir.](/reference/react/useTransition#preventing-unwanted-loading-indicators). #### Dönen değerler {/*returns*/} @@ -61,7 +61,7 @@ function TabContainer() { * Transition güncellemeleri, metin girişlerini kontrol etmek için kullanılamaz. -* If there are multiple ongoing Transitions, React currently batches them together. This is a limitation that may be removed in a future release. +* Birden fazla devam eden Transition varsa, React şu anda bunları birleştirir. Bu, gelecekteki bir sürümde kaldırılabilecek bir sınırlamadır. --- From 8573ac023e5ee5f09418ea48acda4ee172dd272d Mon Sep 17 00:00:00 2001 From: Bilal Karakollu Date: Sun, 19 Jan 2025 01:16:16 +0300 Subject: [PATCH 6/6] translate paragraphs in use.md --- src/content/reference/react/use.md | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/content/reference/react/use.md b/src/content/reference/react/use.md index c07674ea1..f1133dd12 100644 --- a/src/content/reference/react/use.md +++ b/src/content/reference/react/use.md @@ -48,13 +48,9 @@ The `use` API returns the value that was read from the resource like the resolve #### Caveats {/*caveats*/} -* The `use` API must be called inside a Component or a Hook. -* When fetching data in a [Server Component](/reference/rsc/server-components), prefer `async` and `await` over `use`. `async` and `await` pick up rendering from the point where `await` was invoked, whereas `use` re-renders the component after the data is resolved. -* Prefer creating Promises in [Server Components](/reference/rsc/server-components) and passing them to [Client Components](/reference/rsc/use-client) over creating Promises in Client Components. Promises created in Client Components are recreated on every render. Promises passed from a Server Component to a Client Component are stable across re-renders. [See this example](#streaming-data-from-server-to-client). - -* `use` API, bir bileşen veya bir hook'un içerisinde çağırılmak zorundadır.. -* Bir [Sunucu Bileşeni](/reference/react/use-server) içerisinde veri çekilirken, `use` yerine `async` ve `await` kullanmayı tercih edin. `async` ve `await`, oluşturma işlemini `await` ifadesinin çağırıldığı noktadan devam ettirirken; `use`, veri çözümlendikten sonra bileşeni yeniden oluşturur. -* [Sunucu Bileşeni](/reference/react/use-server) içerisinde Promise oluşturup [İstemci Bileşeni](/reference/react/use-client) içerisine aktarmak yerine Promise'i [İstemci Bileşeni](/reference/react/use-client) içerisinde oluşturmayı tercih edin. İstemci Bileşeni içerisine eklenen Promise'ler her oluşturma işlemi sırasında yeniden oluşturulur. Sunucu Bileşeninden İstemci Bileşenine aktarılan Promise'ler ise yeniden oluşturma işlemleri sırasında sabit kalır. [Bu örneği inceleyin](#streaming-data-from-server-to-client). +* `use` API'si bir Bileşen veya Hook içinde çağrılmalıdır. +* [Sunucu Bileşenleri](/reference/rsc/server-components) içinde veri çekerken, `use` yerine `async` ve `await` kullanmayı tercih edin. `async` ve `await`, `await` çağrıldığında render'a başlar, oysa `use` veri çözümlandıktan sonra bileşeni yeniden render eder. +* [Sunucu Bileşenleri](/reference/rsc/server-components) içinde Promise'ler oluşturmayı ve bunları [İstemci Bileşenleri](/reference/rsc/use-client) içine iletmeyi, İstemci Bileşenleri içinde Promise'ler oluşturmaya tercih edin. Client Bileşenleri içinde oluşturulan Promise'ler her render işleminde yeniden oluşturulur. Sunucu Bileşenlerin'den İstemci Bileşenleri'e geçirilen Promise'ler yeniden render'lar arasında sabittir. [Bu örneğe bakın](#streaming-data-from-server-to-client). --- ## Kullanım {/*usage*/} @@ -281,9 +277,9 @@ import React, { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; import './styles.css'; -// TODO: update this example to use -// the Codesandbox Server Component -// demo environment once it is created +// TODO: Bu örneği, +// Codesandbox Sunucu Bileşeni +// demo ortamı oluşturulduğunda güncelleyin import App from './App'; const root = createRoot(document.getElementById('root')); @@ -388,9 +384,9 @@ import React, { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; import './styles.css'; -// TODO: update this example to use -// the Codesandbox Sunucu Component -// demo environment once it is created +// TODO: Bu örneği, +// Codesandbox Sunucu Bileşeni +// demo ortamı oluşturulduğunda güncelleyin import App from './App'; const root = createRoot(document.getElementById('root'));