From 61fccb535bbd75a0c7c39c0cfe8cb7d45e1bac04 Mon Sep 17 00:00:00 2001 From: Naufaldi Rafif S Date: Tue, 2 May 2023 13:56:56 +0700 Subject: [PATCH 1/4] feat: translate to indonesia in line 90 --- .../javascript-in-jsx-with-curly-braces.md | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/content/learn/javascript-in-jsx-with-curly-braces.md b/src/content/learn/javascript-in-jsx-with-curly-braces.md index 502916113..1da88c216 100644 --- a/src/content/learn/javascript-in-jsx-with-curly-braces.md +++ b/src/content/learn/javascript-in-jsx-with-curly-braces.md @@ -1,25 +1,25 @@ --- -title: JavaScript in JSX with Curly Braces +title: JavaScript di JSX menggunakan Curly Braces --- -JSX lets you write HTML-like markup inside a JavaScript file, keeping rendering logic and content in the same place. Sometimes you will want to add a little JavaScript logic or reference a dynamic property inside that markup. In this situation, you can use curly braces in your JSX to open a window to JavaScript. +JSX memungkinkan Anda menulis markup mirip HTML di dalam file JavaScript, sehingga membuat logika rendering dan konten berada pada satu tempat yang sama. Terkadang Anda akan ingin menambahkan sedikit logika JavaScript atau merujuk pada properti yang dinamis di dalam markup tersebut. Dalam situasi ini, Anda dapat menggunakan tanda kurung kurawal pada JSX untuk membuka akses ke JavaScript. -* How to pass strings with quotes -* How to reference a JavaScript variable inside JSX with curly braces -* How to call a JavaScript function inside JSX with curly braces -* How to use a JavaScript object inside JSX with curly braces +* Bagaimana cara untuk oper *strings* dengan tanda kutip +* Bagaimana cara mereferensikan variabel didalam JSX dengan kurung kurawal +* Bagaimana cara memanggil fungsi Javascript didalam JSX dengan kurung kurawal +* Bagaimana cara menggunakan objek Javascript didalam JSX dengan kurung kurawal -## Passing strings with quotes {/*passing-strings-with-quotes*/} +## Mengoper *strings* dengan tanda kutip {/*passing-strings-with-quotes*/} -When you want to pass a string attribute to JSX, you put it in single or double quotes: +Ketika Anda ingin oper atribut *string* ke JSX, Anda memasukkannya ke dalam tanda kutip tunggal atau ganda: @@ -41,9 +41,10 @@ export default function Avatar() { -Here, `"https://i.imgur.com/7vQD0fPs.jpg"` and `"Gregorio Y. Zara"` are being passed as strings. +Disini, `"https://i.imgur.com/7vQD0fPs.jpg"` dan `"Gregorio Y. Zara"` sedang dioper sebagai *strings*. + +Namun bagaimana jika Anda ingin secara dinamis menentukan teks `src` atau `alt? Anda dapat **menggunakan nilai dari JavaScript dengan mengganti `"` dan `"` dengan `{` dan `}`**: -But what if you want to dynamically specify the `src` or `alt` text? You could **use a value from JavaScript by replacing `"` and `"` with `{` and `}`**: @@ -67,11 +68,11 @@ export default function Avatar() { -Notice the difference between `className="avatar"`, which specifies an `"avatar"` CSS class name that makes the image round, and `src={avatar}` that reads the value of the JavaScript variable called `avatar`. That's because curly braces let you work with JavaScript right there in your markup! +Perhatikan perbedaan antara `className="avatar"`, yang menentukan nama kelas CSS `"avatar"` yang membuat gambar bulat, dan `src={avatar}` yang membaca nilai variabel JavaScript disebut `avatar`. Hal itu terjadi karena kurung kurawal memungkinkan Anda bekerja dengan JavaScript langsung di markup Anda! -## Using curly braces: A window into the JavaScript world {/*using-curly-braces-a-window-into-the-javascript-world*/} +## Menggunakan kurung kurawal: Jendela ke dunia JavaScript {/*using-curly-braces-a-window-into-the-javascript-world*/} -JSX is a special way of writing JavaScript. That means it’s possible to use JavaScript inside it—with curly braces `{ }`. The example below first declares a name for the scientist, `name`, then embeds it with curly braces inside the `

`: +JSX merupakan cara khusus dalam menulis JavaScript. Artinya, memungkinkan untuk menggunakan JavaScript di dalamnya - dengan kurung kurawal `{ }`. Contohnya di bawah ini pertama-tama mendeklarasikan sebuah nama untuk ilmuwan, `name`, kemudian menyematkannya dengan kurung kurawal di dalam `

`: @@ -86,7 +87,7 @@ export default function TodoList() { -Try changing the `name`'s value from `'Gregorio Y. Zara'` to `'Hedy Lamarr'`. See how the list title changes? +Coba ubah nilai `name` dari `'Gregorio Y. Zara'` menjadi `'Hedy Lamarr'`. Lihat bagaimana judul daftar berubah? Any JavaScript expression will work between curly braces, including function calls like `formatDate()`: From 9abec36a014cd3187146c4904f2ece61d062db4a Mon Sep 17 00:00:00 2001 From: Naufaldi Rafif S Date: Wed, 3 May 2023 06:34:07 +0700 Subject: [PATCH 2/4] docs: translate line 246 --- .../javascript-in-jsx-with-curly-braces.md | 47 ++++++++++--------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/src/content/learn/javascript-in-jsx-with-curly-braces.md b/src/content/learn/javascript-in-jsx-with-curly-braces.md index 1da88c216..9e95b5bf7 100644 --- a/src/content/learn/javascript-in-jsx-with-curly-braces.md +++ b/src/content/learn/javascript-in-jsx-with-curly-braces.md @@ -89,7 +89,7 @@ export default function TodoList() { Coba ubah nilai `name` dari `'Gregorio Y. Zara'` menjadi `'Hedy Lamarr'`. Lihat bagaimana judul daftar berubah? -Any JavaScript expression will work between curly braces, including function calls like `formatDate()`: +Setiap ekspresi JavaScript akan berfungsi di antara kurung kurawal, termasuk fungsi seperti `formatDate()`: @@ -112,18 +112,18 @@ export default function TodoList() { -### Where to use curly braces {/*where-to-use-curly-braces*/} +### Dimana menggunakan kurung kurawal? {/*where-to-use-curly-braces*/} -You can only use curly braces in two ways inside JSX: +Anda hanya dapat menggunakan kurung keriting (curly braces) dalam dua cara di dalam JSX: -1. **As text** directly inside a JSX tag: `

{name}'s To Do List

` works, but `<{tag}>Gregorio Y. Zara's To Do List` will not. -2. **As attributes** immediately following the `=` sign: `src={avatar}` will read the `avatar` variable, but `src="{avatar}"` will pass the string `"{avatar}"`. +1. **Sebagai teks** langsung di dalam tag JSX: `

Daftar Tugas {name}

` berfungsi, tetapi `<{tag}>Daftar Tugas Gregorio Y. Zara` tidak akan berhasil. +2. **Sebagai atribut** yang segera mengikuti tanda dengan `=`: `src={avatar}` akan membaca variabel `avatar`, tetapi `src="{avatar}"` akan mengoper string `"{avatar}"`. -## Using "double curlies": CSS and other objects in JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/} +## Menggunakan "kurung kurawal ganda": CSS dan objek lain di JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/} -In addition to strings, numbers, and other JavaScript expressions, you can even pass objects in JSX. Objects are also denoted with curly braces, like `{ name: "Hedy Lamarr", inventions: 5 }`. Therefore, to pass a JS object in JSX, you must wrap the object in another pair of curly braces: `person={{ name: "Hedy Lamarr", inventions: 5 }}`. +Selain string, angka, dan ekspresi JavaScript lainnya, Anda bahkan dapat oper objek dalam JSX. Objek juga ditandai dengan kurung kurawal, seperti `{ name: "Hedy Lamarr", inventions: 5 }`. Oleh karena itu, untuk oper objek JavaScript di JSX, Anda harus membungkus objek tersebut dalam sepasang kurung kurawal lainnya: `person={{ name: "Hedy Lamarr", inventions: 5 }}`. -You may see this with inline CSS styles in JSX. React does not require you to use inline styles (CSS classes work great for most cases). But when you need an inline style, you pass an object to the `style` attribute: +Anda mungkin melihat ini pada gaya CSS *inline* dalam JSX. React tidak mengharuskan Anda untuk menggunakan gaya *inline* (kelas CSS berfungsi lebih baik untuk kebanyakan kasus). Namun, ketika Anda membutuhkan gaya *inline*, Anda dapat oper objek ke atribut `style`: @@ -149,9 +149,10 @@ ul { padding: 20px 20px 20px 40px; margin: 0; } -Try changing the values of `backgroundColor` and `color`. +Coba ubah nilai dari `backgroundColor` dan `color`. + +Anda dapat melihat objek JavaScript di dalam kurung kurawal dengan jelas ketika Anda menulisnya seperti ini: -You can really see the JavaScript object inside the curly braces when you write it like this: ```js {2-5}
    ``` -The next time you see `{{` and `}}` in JSX, know that it's nothing more than an object inside the JSX curlies! +Ketika Anda melihat `{{` dan `}}` di dalam JSX, Anda akan tahu bahwa itu tidak lebih dari objek di dalam kurung kurawal JSX! + -Inline `style` properties are written in camelCase. For example, HTML `
      ` would be written as `
        ` in your component. +Properti `style` dalam bentuk *inline* ditulis menggunakan gaya *camelCase* di dalam JSX. Sebagai contoh, jika pada HTML Anda menuliskan `
          `, maka pada komponen React Anda harus menulisnya sebagai `
            `. -## More fun with JavaScript objects and curly braces {/*more-fun-with-javascript-objects-and-curly-braces*/} +## Lebih banyak kesenangan dengan objek JavaScript dan kurung kurawal {/*more-fun-with-javascript-objects-and-curly-braces*/} -You can move several expressions into one object, and reference them in your JSX inside curly braces: +Anda dapat memasukkan beberapa ekspresi ke dalam satu objek, dan merujuk pada objek tersebut di dalam JSX menggunakan kurung kurawal. Sebagai contoh: @@ -212,7 +214,7 @@ body > div > div { padding: 20px; } -In this example, the `person` JavaScript object contains a `name` string and a `theme` object: +Pada contoh ini, objek JavaScript `person` berisi sebuah string `name` dan sebuah objek `theme`: ```js const person = { @@ -224,23 +226,24 @@ const person = { }; ``` -The component can use these values from `person` like so: +Komponen dapat menggunakan nilai-nilai dari objek `person` seperti ini: + ```js

            {person.name}'s Todos

            ``` -JSX is very minimal as a templating language because it lets you organize data and logic using JavaScript. +JSX sangat sederhana sebagai bahasa templating karena memungkinkan Anda untuk mengorganisir data dan logika menggunakan JavaScript. -Now you know almost everything about JSX: +Sekarang Anda hampir tahu segalanya tentang JSX: -* JSX attributes inside quotes are passed as strings. -* Curly braces let you bring JavaScript logic and variables into your markup. -* They work inside the JSX tag content or immediately after `=` in attributes. -* `{{` and `}}` is not special syntax: it's a JavaScript object tucked inside JSX curly braces. +* Atribut JSX di dalam tanda kutip dianggap sebagai string. +* Kurung kurawal memungkinkan Anda membawa logika JavaScript dan variabel ke dalam markup. +* Kurung kurawal berfungsi di dalam konten tag JSX atau segera setelah `=` pada atribut. +* `{{` dan `}}` bukanlah sintaks khusus: itu adalah objek JavaScript yang tersembunyi di dalam kurung kurawal JSX. From c9e62ca2d0f2918c0e7f121e0fdb04ed60781baa Mon Sep 17 00:00:00 2001 From: Naufaldi Rafif S Date: Mon, 15 May 2023 15:35:52 +0700 Subject: [PATCH 3/4] docs: translasi baris terkahir --- .../javascript-in-jsx-with-curly-braces.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/content/learn/javascript-in-jsx-with-curly-braces.md b/src/content/learn/javascript-in-jsx-with-curly-braces.md index 9e95b5bf7..11c799460 100644 --- a/src/content/learn/javascript-in-jsx-with-curly-braces.md +++ b/src/content/learn/javascript-in-jsx-with-curly-braces.md @@ -249,9 +249,9 @@ Sekarang Anda hampir tahu segalanya tentang JSX: -#### Fix the mistake {/*fix-the-mistake*/} +#### Perbaiki Kesalahan {/*fix-the-mistake*/} -This code crashes with an error saying `Objects are not valid as a React child`: +Kode ini mengalami crash dengan pesan galat yang menyatakan `Objects are not valid as a React child`: @@ -291,15 +291,15 @@ body > div > div { padding: 20px; } -Can you find the problem? +Bisakah Anda menemukan masalahnya? -Look for what's inside the curly braces. Are we putting the right thing there? +Periksa apa yang ada di dalam kurung kurawal. Apakah kita meletakkan sesuatu yang benar di sana? -This is happening because this example renders *an object itself* into the markup rather than a string: `

            {person}'s Todos

            ` is trying to render the entire `person` object! Including raw objects as text content throws an error because React doesn't know how you want to display them. +Ini terjadi karena contoh ini *merender* *objek itu sendiri* ke dalam markup bukan string: `

            {person}'s Todos

            ` mencoba *render* seluruh objek `person`! Menyertakan objek mentah sebagai konten teks menghasilkan kesalahan karena React tidak tahu bagaimana Anda ingin menampilkannya. -To fix it, replace `

            {person}'s Todos

            ` with `

            {person.name}'s Todos

            `: +Untuk memperbaikinya, ganti `

            {person}'s Todos

            ` dengan `

            {person.name}'s Todos

            `: @@ -341,9 +341,9 @@ body > div > div { padding: 20px; }
            -#### Extract information into an object {/*extract-information-into-an-object*/} +#### Ekstrak informasi ke dalam sebuah objek {/*extract-information-into-an-object*/} -Extract the image URL into the `person` object. +Ekstrak URL gambar ke dalam objek `person`. @@ -385,7 +385,7 @@ body > div > div { padding: 20px; } -Move the image URL into a property called `person.imageUrl` and read it from the `` tag using the curlies: +Pindahkan URL gambar ke dalam properti yang disebut `person.imageUrl` dan baca dari tag `` menggunakan kurung kurawal: @@ -428,13 +428,13 @@ body > div > div { padding: 20px; } -#### Write an expression inside JSX curly braces {/*write-an-expression-inside-jsx-curly-braces*/} +#### Menulis ekspresi di dalam kurung kurawal JSX {/*write-an-expression-inside-jsx-curly-braces*/} -In the object below, the full image URL is split into four parts: base URL, `imageId`, `imageSize`, and file extension. +Pada objek di bawah ini, URL lengkap gambar dibagi menjadi empat bagian: URL dasar, `imageId`, `imageSize`, dan ekstensi file. -We want the image URL to combine these attributes together: base URL (always `'https://i.imgur.com/'`), `imageId` (`'7vQD0fP'`), `imageSize` (`'s'`), and file extension (always `'.jpg'`). However, something is wrong with how the `` tag specifies its `src`. +Kita ingin URL gambar menggabungkan atribut-atribut ini bersama-sama: URL dasar (selalu `'https://i.imgur.com/'`), `imageId` (`'7vQD0fP'`), `imageSize` (`'s'`), dan ekstensi file (selalu `'.jpg'`). Namun, ada yang salah dengan bagaimana tag `` menentukan `src`. -Can you fix it? +Bisakah anda memperbaikinya? @@ -478,15 +478,15 @@ body > div > div { padding: 20px; } -To check that your fix worked, try changing the value of `imageSize` to `'b'`. The image should resize after your edit. +Untuk memeriksa apakah perbaikan Anda berhasil, coba ubah nilai dari `imageSize` menjadi `'b'`. Gambar harus menyesuaikan ukuran setelah diubah. -You can write it as `src={baseUrl + person.imageId + person.imageSize + '.jpg'}`. +Anda bisa menuliskannya seperti ini `src={baseUrl + person.imageId + person.imageSize + '.jpg'}`. -1. `{` opens the JavaScript expression -2. `baseUrl + person.imageId + person.imageSize + '.jpg'` produces the correct URL string -3. `}` closes the JavaScript expression +1. `{` membuka ekspresi JavaScript +2. `baseUrl + person.imageId + person.imageSize + '.jpg'` menghasilkan string URL yang benar +3. `}` menutup ekspresi JavaScript. @@ -529,7 +529,7 @@ body > div > div { padding: 20px; } -You can also move this expression into a separate function like `getImageUrl` below: +Anda juga dapat memindahkan ekspresi ini ke fungsi terpisah seperti `getImageUrl` di bawah ini. @@ -584,7 +584,7 @@ body > div > div { padding: 20px; } -Variables and functions can help you keep the markup simple! +Variabel dan fungsi dapat membantu Anda menjaga markup tetap sederhana! From d2b50f8f22531a78888e96c22ff029e7cd56b0e3 Mon Sep 17 00:00:00 2001 From: Naufaldi Rafif S Date: Mon, 12 Jun 2023 19:01:06 +0700 Subject: [PATCH 4/4] fix: revision on translation --- .../javascript-in-jsx-with-curly-braces.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/content/learn/javascript-in-jsx-with-curly-braces.md b/src/content/learn/javascript-in-jsx-with-curly-braces.md index 11c799460..095e6f0f0 100644 --- a/src/content/learn/javascript-in-jsx-with-curly-braces.md +++ b/src/content/learn/javascript-in-jsx-with-curly-braces.md @@ -1,5 +1,5 @@ --- -title: JavaScript di JSX menggunakan Curly Braces +title: JavaScript di JSX Menggunakan Kurung Kurawal --- @@ -10,14 +10,14 @@ JSX memungkinkan Anda menulis markup mirip HTML di dalam file JavaScript, sehing -* Bagaimana cara untuk oper *strings* dengan tanda kutip +* Bagaimana cara mengoper *string* dengan tanda kutip * Bagaimana cara mereferensikan variabel didalam JSX dengan kurung kurawal * Bagaimana cara memanggil fungsi Javascript didalam JSX dengan kurung kurawal * Bagaimana cara menggunakan objek Javascript didalam JSX dengan kurung kurawal -## Mengoper *strings* dengan tanda kutip {/*passing-strings-with-quotes*/} +## Mengoper string dengan tanda kutip {/*passing-strings-with-quotes*/} Ketika Anda ingin oper atribut *string* ke JSX, Anda memasukkannya ke dalam tanda kutip tunggal atau ganda: @@ -41,7 +41,7 @@ export default function Avatar() { -Disini, `"https://i.imgur.com/7vQD0fPs.jpg"` dan `"Gregorio Y. Zara"` sedang dioper sebagai *strings*. +Di sini, `"https://i.imgur.com/7vQD0fPs.jpg"` dan `"Gregorio Y. Zara"` sedang dioper sebagai *string*. Namun bagaimana jika Anda ingin secara dinamis menentukan teks `src` atau `alt? Anda dapat **menggunakan nilai dari JavaScript dengan mengganti `"` dan `"` dengan `{` dan `}`**: @@ -114,16 +114,16 @@ export default function TodoList() { ### Dimana menggunakan kurung kurawal? {/*where-to-use-curly-braces*/} -Anda hanya dapat menggunakan kurung keriting (curly braces) dalam dua cara di dalam JSX: +Anda hanya dapat menggunakan kurung kurawal (curly braces) dalam dua cara di dalam JSX: 1. **Sebagai teks** langsung di dalam tag JSX: `

            Daftar Tugas {name}

            ` berfungsi, tetapi `<{tag}>Daftar Tugas Gregorio Y. Zara` tidak akan berhasil. 2. **Sebagai atribut** yang segera mengikuti tanda dengan `=`: `src={avatar}` akan membaca variabel `avatar`, tetapi `src="{avatar}"` akan mengoper string `"{avatar}"`. ## Menggunakan "kurung kurawal ganda": CSS dan objek lain di JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/} -Selain string, angka, dan ekspresi JavaScript lainnya, Anda bahkan dapat oper objek dalam JSX. Objek juga ditandai dengan kurung kurawal, seperti `{ name: "Hedy Lamarr", inventions: 5 }`. Oleh karena itu, untuk oper objek JavaScript di JSX, Anda harus membungkus objek tersebut dalam sepasang kurung kurawal lainnya: `person={{ name: "Hedy Lamarr", inventions: 5 }}`. +Selain string, angka, dan ekspresi JavaScript lainnya, Anda bahkan dapat mengoper objek dalam JSX. Objek juga ditandai dengan kurung kurawal, seperti `{ name: "Hedy Lamarr", inventions: 5 }`. Oleh karena itu, untuk mengoper objek JavaScript di JSX, Anda harus membungkus objek tersebut dalam sepasang kurung kurawal lainnya: `person={{ name: "Hedy Lamarr", inventions: 5 }}`. -Anda mungkin melihat ini pada gaya CSS *inline* dalam JSX. React tidak mengharuskan Anda untuk menggunakan gaya *inline* (kelas CSS berfungsi lebih baik untuk kebanyakan kasus). Namun, ketika Anda membutuhkan gaya *inline*, Anda dapat oper objek ke atribut `style`: +Anda mungkin melihat ini pada gaya CSS *inline* dalam JSX. React tidak mengharuskan Anda untuk menggunakan gaya *inline* (kelas CSS berfungsi lebih baik untuk kebanyakan kasus). Namun, ketika Anda membutuhkan gaya *inline*, Anda dapat mengoper objek ke atribut `style`: @@ -251,7 +251,7 @@ Sekarang Anda hampir tahu segalanya tentang JSX: #### Perbaiki Kesalahan {/*fix-the-mistake*/} -Kode ini mengalami crash dengan pesan galat yang menyatakan `Objects are not valid as a React child`: +Kode ini mengalami *crash* dengan pesan galat yang menyatakan `Objects are not valid as a React child`: @@ -297,7 +297,7 @@ Bisakah Anda menemukan masalahnya? -Ini terjadi karena contoh ini *merender* *objek itu sendiri* ke dalam markup bukan string: `

            {person}'s Todos

            ` mencoba *render* seluruh objek `person`! Menyertakan objek mentah sebagai konten teks menghasilkan kesalahan karena React tidak tahu bagaimana Anda ingin menampilkannya. +Ini terjadi karena contoh ini me-*render* *objek itu sendiri* ke dalam markup bukan string: `

            {person}'s Todos

            ` mencoba *render* seluruh objek `person`! Menyertakan objek mentah sebagai konten teks menghasilkan kesalahan karena React tidak tahu bagaimana Anda ingin menampilkannya. Untuk memperbaikinya, ganti `

            {person}'s Todos

            ` dengan `

            {person.name}'s Todos

            `: