diff options
author | kabayan <> | 2007-10-31 20:41:11 +0000 |
---|---|---|
committer | kabayan <> | 2007-10-31 20:41:11 +0000 |
commit | 6a0174448c793cb071e1e6d12f3da3a65eeb4e15 (patch) | |
tree | a6dc996689ffb584b75e13542ed81f10e3cd6ab2 /demos | |
parent | 583e6aede969fb26333af86e4954cb7a2f158c8e (diff) |
Indonesian: Huge typos corrections and more formal language.
Diffstat (limited to 'demos')
50 files changed, 216 insertions, 217 deletions
diff --git a/demos/blog-tutorial/protected/pages/Day1/id/Setup.page b/demos/blog-tutorial/protected/pages/Day1/id/Setup.page index 67e468ff..edc469d5 100644 --- a/demos/blog-tutorial/protected/pages/Day1/id/Setup.page +++ b/demos/blog-tutorial/protected/pages/Day1/id/Setup.page @@ -158,7 +158,7 @@ Untuk membuat lokasi akar direktori halaman dan mengubah nama homepage, seseoran </com:TTextHighlighter>
<p>
-Setelah anda mempelajari lebih jauh mengenai PRADO, anda akan melihat bahwa PRADO adalah kerangka kerja fleksibel yang membolehkan anda untuk mengkustomisasi hampir setiap aspeknya. Kami akan menjelaskan lebih lanjut teknik kustomisasi setelah kita melanjutkan tutorial kita.
+Setelah Anda mempelajari lebih jauh mengenai PRADO, Anda akan melihat bahwa PRADO adalah kerangka kerja fleksibel yang membolehkan Anda untuk mengkustomisasi hampir setiap aspeknya. Kami akan menjelaskan lebih lanjut teknik kustomisasi setelah kita melanjutkan tutorial kita.
</p>
</com:TContent>
\ No newline at end of file diff --git a/demos/blog-tutorial/protected/pages/Day3/id/CreateAdminUser.page b/demos/blog-tutorial/protected/pages/Day3/id/CreateAdminUser.page index c9ee7c5a..6dbf45a3 100644 --- a/demos/blog-tutorial/protected/pages/Day3/id/CreateAdminUser.page +++ b/demos/blog-tutorial/protected/pages/Day3/id/CreateAdminUser.page @@ -143,7 +143,7 @@ Karena <tt>AdminUser</tt> hanya bisa diakses oleh administrator, maka kita perlu <h2>Pengujian</h2>
<p>
-Untuk menguji halaman <tt>AdminUser</tt>, kunjungi URL <tt>http://hostname/blog/index.php?page=users.AdminUser</tt>. Anda mungkin perlu masuk sebagai administrator lebih dahulu jika anda belum melakukannya. Kita akan melihat hasil seperti berikut.
+Untuk menguji halaman <tt>AdminUser</tt>, kunjungi URL <tt>http://hostname/blog/index.php?page=users.AdminUser</tt>. Anda mungkin perlu masuk sebagai administrator lebih dahulu jika Anda belum melakukannya. Kita akan melihat hasil seperti berikut.
</p>
<img src="<%~ output3.gif %>" class="output" />
diff --git a/demos/blog-tutorial/protected/pages/Day3/id/CreateEditUser.page b/demos/blog-tutorial/protected/pages/Day3/id/CreateEditUser.page index e15df047..760a123a 100644 --- a/demos/blog-tutorial/protected/pages/Day3/id/CreateEditUser.page +++ b/demos/blog-tutorial/protected/pages/Day3/id/CreateEditUser.page @@ -21,7 +21,7 @@ Kita membuat dua file <tt>protected/pages/users/EditUser.page</tt> dan <tt>prote <h2>Membuat Template Halaman</h2>
<p>
-Seperti yang telah anda tebak, template halaman <tt>EditUser</tt> sebagian besar sama seperti pada <tt>NewUser</tt>. Selain perbedaan dalam judul halaman dan judul tombol submit, ada tiga perbedaan utama.
+Seperti yang telah Anda tebak, template halaman <tt>EditUser</tt> sebagian besar sama seperti pada <tt>NewUser</tt>. Selain perbedaan dalam judul halaman dan judul tombol submit, ada tiga perbedaan utama.
</p>
<ul>
<li>Kotak teks "username" diganti oleh kontrol <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.Label">TLabel</a> karena kita tidak membolehkan memodifikasi nama pengguna;</li>
@@ -189,7 +189,7 @@ Metode <tt>onInit()</tt> dipanggil oleh PRADO selama salah satu <a href="http:// <h2>Pengujian</h2>
<p>
-Untuk menguji halaman <tt>EditUser</tt>, kunjungi URL <tt>http://hostname/blog/index.php?page=users.EditUser&username=demo</tt>. Anda mungkin perlu masuk lebih dulu jika anda belum melakukannya. Coba masuk dengan akun berbeda (e.g. admin/demo, demo/demo) dan lihat bagaimana halaman ditampilkan secara berbeda.
+Untuk menguji halaman <tt>EditUser</tt>, kunjungi URL <tt>http://hostname/blog/index.php?page=users.EditUser&username=demo</tt>. Anda mungkin perlu masuk lebih dulu jika Anda belum melakukannya. Coba masuk dengan akun berbeda (e.g. admin/demo, demo/demo) dan lihat bagaimana halaman ditampilkan secara berbeda.
</p>
</com:TContent>
\ No newline at end of file diff --git a/demos/blog-tutorial/protected/pages/Day3/id/CreateNewUser.page b/demos/blog-tutorial/protected/pages/Day3/id/CreateNewUser.page index 905f7489..11385c8e 100644 --- a/demos/blog-tutorial/protected/pages/Day3/id/CreateNewUser.page +++ b/demos/blog-tutorial/protected/pages/Day3/id/CreateNewUser.page @@ -174,7 +174,7 @@ Untuk menguji halaman <tt>NewUser</tt>, kunjungi URL <tt>http://hostname/blog/in <h2>Menambahkan Pemeriksaan Perijinan</h2>
<p>
-Selama pengujian, anda mungkin bertanya: apakah halaman <tt>NewUser</tt> seharusnya hanya bisa diakses oleh pengguna administrator? Ya, ini disebut <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.Auth">otorisasi</a>. Sekarang kami menjelaskan bagaimana kita menambahkan pemeriksaan perijinan ini ke halaman <tt>NewUser</tt>.
+Selama pengujian, Anda mungkin bertanya: apakah halaman <tt>NewUser</tt> seharusnya hanya bisa diakses oleh pengguna administrator? Ya, ini disebut <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.Auth">otorisasi</a>. Sekarang kami menjelaskan bagaimana kita menambahkan pemeriksaan perijinan ini ke halaman <tt>NewUser</tt>.
</p>
<p>
diff --git a/demos/blog-tutorial/protected/pages/Day4/id/CreateNewPost.page b/demos/blog-tutorial/protected/pages/Day4/id/CreateNewPost.page index 68dcde44..65bae82b 100644 --- a/demos/blog-tutorial/protected/pages/Day4/id/CreateNewPost.page +++ b/demos/blog-tutorial/protected/pages/Day4/id/CreateNewPost.page @@ -124,7 +124,7 @@ Untuk menguji halaman <tt>NewPost</tt>, masuk lebih dulu dan klik pada link tomb </p>
<com:InfoBox>
-Ketika anda mengunjungi halaman <tt>NewPost</tt> untuk pertama kali, anda bisa melihat bahwa ia memerlukan beberapa detik sebelum halaman ditampilkan. Ini dikarenakan PRADO perlu mengurai dan mempublikasikan kode javascript dan gambar untuk kontrol <tt>THtmlArea</tt> yang dipakai dalam halaman. Ini dikerjakan sekali dan untuk semuanya.
+Ketika Anda mengunjungi halaman <tt>NewPost</tt> untuk pertama kali, Anda bisa melihat bahwa diperlukan beberapa detik sebelum halaman ditampilkan. Ini dikarenakan PRADO perlu mengurai dan mempublikasikan kode javascript dan gambar untuk kontrol <tt>THtmlArea</tt> yang dipakai dalam halaman. Ini dikerjakan sekali dan untuk semuanya.
</com:InfoBox>
<com:TipBox>
diff --git a/demos/blog-tutorial/protected/pages/Day5/id/Summary.page b/demos/blog-tutorial/protected/pages/Day5/id/Summary.page index eff9c2a9..8925948b 100644 --- a/demos/blog-tutorial/protected/pages/Day5/id/Summary.page +++ b/demos/blog-tutorial/protected/pages/Day5/id/Summary.page @@ -30,7 +30,7 @@ Tidak seperti urutan dalam tutorial kita, pengendalian kesalahan dan pembuatan t </p>
<p>
-Sebagai tips terakhir, coba untuk berpikir dalam cara terorientasi-obyek selama mendesain dan mengimplementasikan. Gunakan turunan kelas dan komposisi secara luas, dan anda akan menemukan seluruh proyek lebih mudah dikembangkan secara paralel oleh multipel pengembang. Kode juga lebih banya memiliki kesempatan dipakai ulang agar proyek mendatang dapat diselesaikan dalam waktu yang lebih cepat.
+Sebagai tips terakhir, coba untuk berpikir dalam cara terorientasi-obyek selama mendesain dan mengimplementasikan. Gunakan turunan kelas dan komposisi secara luas, dan Anda akan menemukan seluruh proyek lebih mudah dikembangkan secara paralel oleh multipel pengembang. Kode juga lebih banya memiliki kesempatan dipakai ulang agar proyek mendatang dapat diselesaikan dalam waktu yang lebih cepat.
</p>
</com:TContent>
\ No newline at end of file diff --git a/demos/blog-tutorial/protected/pages/id/Requirements.page b/demos/blog-tutorial/protected/pages/id/Requirements.page index 17d429ea..4bee1d62 100644 --- a/demos/blog-tutorial/protected/pages/id/Requirements.page +++ b/demos/blog-tutorial/protected/pages/id/Requirements.page @@ -3,7 +3,7 @@ <h1>Analisis Persyaratan</h1>
<p>
-Halaman ini menampilkan persyaratan untuk sistem blog yang akan kami kembangkan dalam tutorial ini menggunakan PRADO. Kami tidak menyertakan beberapa fitur blog populer di sini (misalnya mengkomentari, mengatur tulisan, kalender, dll), karena kami ingin menjaga tutorial cukup pendek dan kami percaya fitur-fitur ini mudah untuk ditambahkan setelah anda selesai membaca tutorial ini.
+Halaman ini menampilkan persyaratan untuk sistem blog yang akan kami kembangkan dalam tutorial ini menggunakan PRADO. Kami tidak menyertakan beberapa fitur blog populer di sini (misalnya mengkomentari, mengatur tulisan, kalender, dll), karena kami ingin menjaga tutorial cukup pendek dan kami percaya fitur-fitur ini mudah untuk ditambahkan setelah Anda selesai membaca tutorial ini.
</p>
<p>
diff --git a/demos/quickstart/protected/controls/id/RequiresVersion.tpl b/demos/quickstart/protected/controls/id/RequiresVersion.tpl index 5521d109..f703512b 100644 --- a/demos/quickstart/protected/controls/id/RequiresVersion.tpl +++ b/demos/quickstart/protected/controls/id/RequiresVersion.tpl @@ -1 +1 @@ -<p class="requires-version">Memerlukan Prado versi <strong><%= $this->Version %></strong> or later.</p>
\ No newline at end of file +<p class="requires-version">Memerlukan Prado versi <strong><%= $this->Version %></strong> atau lebih baru.</p>
\ No newline at end of file diff --git a/demos/quickstart/protected/controls/id/SampleLayout.tpl b/demos/quickstart/protected/controls/id/SampleLayout.tpl index a6f7bcc2..6d990598 100644 --- a/demos/quickstart/protected/controls/id/SampleLayout.tpl +++ b/demos/quickstart/protected/controls/id/SampleLayout.tpl @@ -1,7 +1,7 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
-<com:THead Title="Contoh Jalan Cepat PRADO">
+<com:THead Title="Contoh Tutorial Cepat PRADO">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="content-language" content="en"/>
</com:THead>
@@ -19,7 +19,7 @@ </div>
<div class="samplemenu">
<div class="copyright">
- Hak Cipta © 2005-2006 <a href="http://www.pradosoft.com">PradoSoft</a>
+ Hak Cipta © 2005-2007 <a href="http://www.pradosoft.com">PradoSoft</a>
</div>
</div>
diff --git a/demos/quickstart/protected/controls/id/SearchBox.tpl b/demos/quickstart/protected/controls/id/SearchBox.tpl index 64eb2329..11e9cf7a 100644 --- a/demos/quickstart/protected/controls/id/SearchBox.tpl +++ b/demos/quickstart/protected/controls/id/SearchBox.tpl @@ -1,3 +1,3 @@ <com:TLabel ForControl="search" Text="Cari:" CssClass="searchLabel"/>
<com:TTextBox ID="search" OnTextChanged="doSearch" CssClass="searchBox"/>
-<com:TButton ID="find" Text="Cari" OnClick="doSearch" CssClass="searchButton"/>
\ No newline at end of file +<com:TButton ID="find" Text="Ayo" OnClick="doSearch" CssClass="searchButton"/>
\ No newline at end of file diff --git a/demos/quickstart/protected/controls/id/TopicList.tpl b/demos/quickstart/protected/controls/id/TopicList.tpl index c8d675d2..bfc6ed64 100644 --- a/demos/quickstart/protected/controls/id/TopicList.tpl +++ b/demos/quickstart/protected/controls/id/TopicList.tpl @@ -26,7 +26,7 @@ <div class="topic">
<div>Fundamental</div>
<ul>
- <li><a href="?page=Fundamentals.Architecture">Arsitectur</a></li>
+ <li><a href="?page=Fundamentals.Architecture">Arsitektur</a></li>
<li><a href="?page=Fundamentals.Components">Komponen</a></li>
<li><a href="?page=Fundamentals.Controls">Kontrol</a></li>
<li><a href="?page=Fundamentals.Pages">Halaman</a></li>
diff --git a/demos/quickstart/protected/pages/ActiveControls/id/ActiveButton.page b/demos/quickstart/protected/pages/ActiveControls/id/ActiveButton.page index 98ccffd3..b108e56e 100644 --- a/demos/quickstart/protected/pages/ActiveControls/id/ActiveButton.page +++ b/demos/quickstart/protected/pages/ActiveControls/id/ActiveButton.page @@ -5,14 +5,14 @@ <p id="610410" class="block-content"><tt>TActiveButton</tt> adalah kontrol aktif selain
<a href="?page=Controls.Button">TButton</a>.
-Ketika <tt>TActiveButton</tt> diklik daripada permintaan postback normal, permintaan callback yang diinisiasi. Event <tt>OnCallback</tt> dimunculkan selama permintaan callback dan dimunculkan <strong>setelah</strong> event <tt>OnClick</tt>.
+Ketika <tt>TActiveButton</tt> diklik pada permintaan postback normal, permintaan callback yang diinisiasi. Event <tt>OnCallback</tt> dimunculkan selama permintaan callback dan dimunculkan <strong>setelah</strong> event <tt>OnClick</tt>.
</p>
<p id="610411" class="block-content">Ketika properti <tt>ActiveControl.EnableUpdate</tt> adalah true,
mengubah properti <tt>Text</tt> selama permintaan callback akan memutakhirkan
judul tombol pada sisi-klien.</p>
-<p id="610412" class="block-content">Karena event <tt>OnCallback</tt> hanya dimunculkan selama permintaan callback, pengendali event <tt>OnCallback</tt> bisas dipakai untuk menangani logika terutama yang terkait dengan permintaan callback. Pengendali event <tt>OnClick</tt> dimunculkan kapan saja tombol diklik, meskipun javascript dimatikan.</p>
+<p id="610412" class="block-content">Karena event <tt>OnCallback</tt> hanya dimunculkan selama permintaan callback, pengendali event <tt>OnCallback</tt> bisa dipakai untuk menangani logika terutama yang terkait dengan permintaan callback. Pengendali event <tt>OnClick</tt> dimunculkan kapan saja tombol diklik, meskipun javascript dimatikan.</p>
<p id="610413" class="block-content">Contoh berikut menggunakan kedua event <tt>OnClick</tt> dan <tt>OnCallback</tt> dari <tt>TActiveButton</tt>.</p>
@@ -39,8 +39,7 @@ permintaan callback ditampung. OnCallback="button_callback"
ActiveControl.CallbackParameter="value" />
</com:TTextHighlighter>
-<p id="610416" class="block-content">In the <tt>OnCallback</tt> event handler method, the <tt>CallbackParameter</tt>
-is available in the <tt>$param</tt> object.</p>
+<p id="610416" class="block-content">Dalam metode pengendali event <tt>OnCallback</tt>, <tt>CallbackParameter</tt> tersedua di dalam obyek <tt>$param</tt>.</p>
<com:TTextHighlighter Language="php" CssClass="source block-content" id="code2">
public function button_callback($sender, $param)
{
@@ -51,8 +50,8 @@ public function button_callback($sender, $param) <h2 id="122028">Menambah Perilaku Sisi Klien</h2>
<p id="610417" class="block-content">Di dalam properti <tt>ActiveControl</tt> adalah turunan dari
-<a href="?page=ActiveControls.CallbackClientSide">TCallbackClientSide</a> yang tersedia sebagi <tt>ClientSide</tt> dari <tt>TActiveButton</tt>.
-Properti <tt>ClientSide</tt> berisi sub-properti, serperti <tt>RequestTimeOut</tt>, dan pengendali event javascript sisi-klien, seperti <tt>OnLoading</tt>, yang dipakai oleh sisi-klien saat membuat permitaan callback.
+<a href="?page=ActiveControls.CallbackClientSide">TCallbackClientSide</a> yang tersedia sebagai <tt>ClientSide</tt> dari <tt>TActiveButton</tt>.
+Properti <tt>ClientSide</tt> berisi sub-properti, serperti <tt>RequestTimeOut</tt>, dan pengendali event javascript sisi-klien, seperti <tt>OnLoading</tt>, dipakai oleh sisi-klien saat membuat permitaan callback.
Contoh berikut mendemonstrasikan menghidup matikan indikator "loading" saat sisi-klien
membuat permintaan callback.
</p>
diff --git a/demos/quickstart/protected/pages/ActiveControls/id/ActiveCheckBox.page b/demos/quickstart/protected/pages/ActiveControls/id/ActiveCheckBox.page index b68f4123..e75e559a 100644 --- a/demos/quickstart/protected/pages/ActiveControls/id/ActiveCheckBox.page +++ b/demos/quickstart/protected/pages/ActiveControls/id/ActiveCheckBox.page @@ -6,14 +6,14 @@ <p id="620419" class="block-content">
<tt>TActiveCheckBox</tt> adalah kontrol aktif selain
<a href="?page=Controls.CheckBox">TCheckbox</a>. Properti <tt>AutoPostBack</tt>
- dari <tt>TActiveCheckBox</tt> standarnya disetel menjadi true.
+ dari <tt>TActiveCheckBox</tt> standarnya disetel true.
Selanjutnya, saat kotak centang diklik, event <tt>OnCallback</tt> muncul setelah event <tt>OnCheckedChanged</tt>.
</p>
<p id="620420" class="block-content">
Properti <tt>Text</tt> dan <tt>Checked</tt> dari <tt>TActiveCheckBox</tt>
bisa diubah selama permintaan callback. Properti <tt>TextAlign</tt> dari
- <tt>TActiveCheckBox</tt> <strong>tidak bisa</strong> diubah selama permintaan
+ <tt>TActiveCheckBox</tt> <strong>tidak bisa</strong> diubah saat permintaan
callback.
</p>
diff --git a/demos/quickstart/protected/pages/ActiveControls/id/ActiveCustomValidator.page b/demos/quickstart/protected/pages/ActiveControls/id/ActiveCustomValidator.page index 485fee80..ebec56ce 100644 --- a/demos/quickstart/protected/pages/ActiveControls/id/ActiveCustomValidator.page +++ b/demos/quickstart/protected/pages/ActiveControls/id/ActiveCustomValidator.page @@ -6,7 +6,7 @@ <p id="630421" class="block-content">Melakukan validasi kustom hanya menggunakan event validasi <tt>OnServerValidate</tt>
sisi-server. Sisi-klien menggunakan callback untuk memunculkan event
<tt>onServerValidate</tt>. Properti <tt>ClientValidationFunction</tt> dimatikan
- dan akan mengeluarkan kekecualian jika mencoba untuk menyetel properti ini.
+ dan akan mengeluarkan eksepsi jika mencoba untuk menyetel properti ini.
</p>
<p id="630422" class="block-content"> Harap berhati-hati <tt>onServerValidate</tt> dapat
diff --git a/demos/quickstart/protected/pages/ActiveControls/id/ActiveHyperLink.page b/demos/quickstart/protected/pages/ActiveControls/id/ActiveHyperLink.page index faa9f068..d41c5766 100644 --- a/demos/quickstart/protected/pages/ActiveControls/id/ActiveHyperLink.page +++ b/demos/quickstart/protected/pages/ActiveControls/id/ActiveHyperLink.page @@ -5,7 +5,7 @@ <p>
Kontrol aktif selain komponen <a href=?page=Controls.HyperLink">THyperLink</a>.
-Selama permintaan callback, perubahan terhadap properti <tt>Text</tt>, <tt>ImageUrl</tt>,
+Saat permintaan callback, perubahan terhadap properti <tt>Text</tt>, <tt>ImageUrl</tt>,
<tt>NavigateUrl</tt> dan <tt>Target</tt> pada sisi server juga akan
mengubah atribut serta konten terkait di sisi-klien.
</p>
diff --git a/demos/quickstart/protected/pages/ActiveControls/id/Home.page b/demos/quickstart/protected/pages/ActiveControls/id/Home.page index 458a28eb..60ca140e 100644 --- a/demos/quickstart/protected/pages/ActiveControls/id/Home.page +++ b/demos/quickstart/protected/pages/ActiveControls/id/Home.page @@ -9,12 +9,12 @@ sub-properti <a href="?page=ActiveControls.CallbackClientSide">ClientSide</a> yang menyediakan banyak properti untuk mengkustomisasi kontrol. Properti
<a href="?page=TCallbackClientScript">CallbackClient</a> dari kelas
<tt>TPage</tt> menyediakan metode untuk memutakhirkan dan mengubah konten sisi-klien
-selama permintaan callback. Kontrol aktif bergantung pada koleksi
+saat permintaan callback. Kontrol aktif bergantung pada koleksi
<a href="?page=ActiveControl.ClientSideJavascript">kelas javascript</a>.
</p>
<p id="640424" class="block-content">Untuk demo cepat atas kontrol aktif, coba kontrol <a href="?page=ActiveControls.ActiveButton">
-TActiveButton</a>. Lihat juga bagian akhir dari tutorial <a href="?page=Tutorial.CurrencyConverter">Pengubah Kurs</a> untuk conton lebih mendalam.
+TActiveButton</a>. Lihat juga bagian akhir dari tutorial <a href="?page=Tutorial.CurrencyConverter">Pengubah Kurs</a> untuk contoh lebih mendalam.
</p>
<p id="640425" class="block-content">* tutorial untuk kontrol ini belum lengkap.</p>
@@ -29,7 +29,7 @@ TActiveButton</a>. Lihat juga bagian akhir dari tutorial <a href="?page=Tutorial <li>
<a href="?page=ActiveControls.ActiveCheckBox">TActiveCheckBox</a>
mewakili kotak centang pada halaman Web. Ia dapat dipakai untuk mengoleksi input dua-kondisi pengguna
- dan memicu permintaan callback.
+ serta memicu permintaan callback.
</li>
<li>
@@ -74,8 +74,8 @@ TActiveButton</a>. Lihat juga bagian akhir dari tutorial <a href="?page=Tutorial <li>
* <a href="?page=ActiveControls.ActiveRadioButton">TActiveRadioButton</a>
mewakili tombol radio pada halaman Web.
- Ia dipakai terutama dalam sebuah grup di mana pengguna bisa memilih. Ini
- dapat digunakan untul melakukan permintaan callback.
+ Dipakai terutama dalam sebuah grup di mana pengguna bisa memilih. Ini
+ dapat digunakan untuk melakukan permintaan callback.
</li>
<li>
@@ -96,20 +96,20 @@ TActiveButton</a>. Lihat juga bagian akhir dari tutorial <a href="?page=Tutorial <ul id="u2" class="block-content">
<li>
* <a href="?page=ActiveControls.ActiveCheckBoxList">TActiveCheckBoxList</a>
- menampilkan daftar kotak centang pada halaman Web dans setiap kotak centang
+ menampilkan daftar kotak centang pada halaman Web dan setiap kotak centang
dapat memicu permintaan callback.
</li>
<li>
* <a href="?page=ActiveControls.ActiveDropDownList">TActiveDropDownList</a>
menampilkan kotak daftar dropdown yang membolehkan para pengguna untuk memilih
- satu opsi dari beberapa yang telah ditetapkan. Ia dapat dipakai untuk melakukan
+ satu opsi dari beberapa yang telah ditetapkan. Dapat dipakai untuk melakukan
permintaan callback.
</li>
<li>
* <a href="?page=ActiveControls.ActiveListBox">TActiveListBox</a>
- menampilkan kotak daftar yang membolehkan satu pilihan atau multipel. Ia dapat
+ menampilkan kotak daftar yang membolehkan satu pilihan atau multipel. Dapat
dipakai untuk melakukan permintaan callback.
</li>
@@ -320,7 +320,7 @@ TActiveButton</a>. Lihat juga bagian akhir dari tutorial <a href="?page=Tutorial <li>
* <a href="?page=ActiveControls.ActivePageAdapter">TActivePageAdapter</a>
- memproses masa-hidup halaman untuk permintaan callback.
+ memroses masa-hidup halaman untuk permintaan callback.
</li>
<li>
diff --git a/demos/quickstart/protected/pages/Advanced/Samples/I18N/id/Home.page b/demos/quickstart/protected/pages/Advanced/Samples/I18N/id/Home.page index c7e5c63d..597b1ca7 100644 --- a/demos/quickstart/protected/pages/Advanced/Samples/I18N/id/Home.page +++ b/demos/quickstart/protected/pages/Advanced/Samples/I18N/id/Home.page @@ -3,10 +3,10 @@ <com:TContent ID="body">
<h1>Internasionlisasi dalam PRADO</h1>
-<p>Demo ini memperlihatkan komponen dasar yang tersedia dalam PRADO untuk memproses Internasionalisasi dan Lokalisasi aplikasi web. Halam ini memanfaatkan template siap multipel lokal (atau kultur) untuk memperlihatkan halaman terlokalisasi yang tersedia. Untuk melihat versi dilokalisasi yang berbeda, silahkan ganti setelan bahasa dalam browser anda.</p>
+<p>Demo ini memperlihatkan komponen dasar yang tersedia dalam PRADO untuk memproses Internasionalisasi dan Lokalisasi aplikasi web. Halam ini memanfaatkan template siap multipel lokal (atau kultur) untuk memperlihatkan halaman terlokalisasi yang tersedia. Untuk melihat versi dilokalisasi yang berbeda, silahkan ganti setelan bahasa dalam browser Anda.</p>
<p>
-Saat ini kultur anda adalah <%= $this->Page->CurrentCulture %>.
+Saat ini kultur Anda adalah <%= $this->Page->CurrentCulture %>.
<div class="links">
Versi lokalisasi tersedia:
<com:LanguageList />
diff --git a/demos/quickstart/protected/pages/Advanced/id/Assets.page b/demos/quickstart/protected/pages/Advanced/id/Assets.page index 047b795d..cf441278 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Assets.page +++ b/demos/quickstart/protected/pages/Advanced/id/Assets.page @@ -2,7 +2,7 @@ <h1 id="5701">Assets</h1>
<p id="740577" class="block-content">
-Asset adalah file sumber daya (seperti gambar, suara, video, CSS stylesheet, javascript, dll.) yang dimiliki oleh kelas komponen tertentu. Assets disediakan bagi para pengguna Web. Untuk usabilitas dan kemudahan penyebaran kelas komponen terkait, asset harus berada bersama dengan file kelas komponen. Sebagai contoh, tombol toggle dapat memakai dua gambar, disimpan dalam file <tt>down.gif</tt> dan <tt>up.gif</tt>, untuk menampilkan kondisi toggle berbeda. Jika kita ingin file gambar disimpan di bawah direktori <tt>images</tt> di bawah akar dokumen server Web, tidak akan menjadi nyaman bagi para pengguna komponen tombol toggle, karena setiap kali mereka mengembangkan atau menyebarkan aplikasi baru, mereka harus meng-copy file gambar ke direktori tertentu itu secara manual. Untuk mengeliminir persyaratan ini, direktori relatif ke file kelas komponen harus digunakan untuk menyimpan file gambar. Strategi umum adalah menggunakan direktori yang berisi file kelas komponen untuk menyimpan file asset.
+Asset adalah file sumber daya (seperti gambar, suara, video, CSS stylesheet, javascript, dll.) yang dimiliki oleh kelas komponen tertentu. Assets disediakan bagi para pengguna Web. Untuk kegunaan dan kemudahan penyebaran kelas komponen terkait, asset harus berada bersama dengan file kelas komponen. Sebagai contoh, tombol toggle dapat memakai dua gambar, disimpan dalam file <tt>down.gif</tt> dan <tt>up.gif</tt>, untuk menampilkan kondisi toggle berbeda. Jika kita ingin file gambar disimpan di bawah direktori <tt>images</tt> di bawah akar dokumen server Web, tidak akan memembuat nyaman bagi para pengguna komponen tombol toggle, karena setiap kali mereka mengembangkan atau menyebarkan aplikasi baru, mereka harus meng-copy file gambar ke direktori tertentu itu secara manual. Untuk mengeliminir persyaratan ini, direktori relatif ke file kelas komponen harus digunakan untuk menyimpan file gambar. Strategi umum adalah menggunakan direktori yang berisi file kelas komponen untuk menyimpan file asset.
</p>
<p id="740578" class="block-content">
Karena direktori yang berisi file kelas komponen biasanya tidak bisa diakses oleh pengguna Web, PRADO menerapkan skema penerbitan asset untuk menjadikan assets tersedia bagi para pengguna Web. Sebuah asset, setelah diterbitkan, akan mempunyai URL di mana para pengguna bisa mengambil file asset.
@@ -10,15 +10,15 @@ Karena direktori yang berisi file kelas komponen biasanya tidak bisa diakses ole <h2 id="5702">Penerbitan Asset</h2>
<p id="740579" class="block-content">
-PRADO menyediakan beberapa metode untuk penerbitan asset atu direktori yang berisi asset:
+PRADO menyediakan beberapa metode untuk penerbitan asset atau direktori yang berisi asset:
</p>
<ul id="u1" class="block-content">
-<li>Dalam file template, anda dapat menggunakan <a href="?page=Configurations.Templates2#at">tag asset</a> guna menerbitkan asset dan mendapatkan URL-nya. Catatan, asset harus relatif ke direktori yang berisi file template.</li>
-<li>Dalam kode PHP, anda dapat memanggil <tt>$object->publishAsset($assetPath)</tt> untuk menerbitkan asset dan mendapatkan URL-nya. <tt>$object</tt> di sini merujuk ke turunan <tt>TApplicationComponent</tt> atau kelas asalnya, dan <tt>$assetPath</tt> adalah file atau direktori relatif ke direktori yang berisi file kelas.</li>
-<li>Jika anda ingin menerbitkan asset sesukanya, anda perlu memanggil <tt>TAssetManager::publishFilePath($path)</tt>.</li>
+<li>Dalam file template, Anda dapat menggunakan <a href="?page=Configurations.Templates2#at">tag asset</a> guna menerbitkan asset dan mendapatkan URL-nya. Catatan, asset harus relatif ke direktori yang berisi file template.</li>
+<li>Dalam kode PHP, Anda dapat memanggil <tt>$object->publishAsset($assetPath)</tt> untuk menerbitkan asset dan mendapatkan URL-nya. <tt>$object</tt> di sini merujuk ke turunan <tt>TApplicationComponent</tt> atau kelas asalnya, dan <tt>$assetPath</tt> adalah file atau direktori relatif ke direktori yang berisi file kelas.</li>
+<li>Jika Anda ingin menerbitkan asset sesuka hati, Anda perlu memanggil <tt>TAssetManager::publishFilePath($path)</tt>.</li>
</ul>
<p id="740580" class="block-content">
-HATI-HATI: Sangat berhati-hatilah dengan penerbitan asset, karena ia memberikan para pengguna Web akses ke file yang sebelumnya tidak dapat diakses. Pastikan bahwa anda tidak menerbitkan file yang tidak ingin pengguna lain melihatnya.
+HATI-HATI: Berhati-hatilah dengan penerbitan asset, karena ia memberikan para pengguna Web mengakses ke file yang sebelumnya tidak dapat diakses. Pastikan bahwa Anda tidak menerbitkan file yang tidak ingin dilihat pengguna lain.
</p>
<h2 id="5703">Kustomisasi</h2>
@@ -36,10 +36,10 @@ Penerbitan asset diatur oleh modul <tt>System.Web.TAssetManager</tt>. Standarnya <h2 id="5704">Performansi</h2>
<p id="740582" class="block-content">
-PRADO menggunakan teknik cache guna memastikan efisiensi penerbitan asset. Menerbitkan asset intinya memerlukan operasi copy file, yang mahal. Untuk menyimpan operasi copy file yang tidak diperlukan, <tt>System.Web.TAssetManager</tt> hanya menerbitkan asset saat ia memiliki waktu modifikasi file lebih baru daripada file yang pernah diterbitkan. Ketika aplikasi dijalankan di bawah mode <tt>Performance</tt>, pemeriksaan cap waktu tersebut juga diabaikan.
+PRADO menggunakan teknik cache guna memastikan efisiensi penerbitan asset. Menerbitkan asset intinya memerlukan operasi copy file, yang mahal. Untuk menyimpan operasi copy file yang tidak diperlukan, <tt>System.Web.TAssetManager</tt> hanya menerbitkan asset saat ia memiliki waktu modifikasi file lebih baru daripada file yang pernah diterbitkan. Ketika aplikasi dijalankan dengan mode <tt>Performance</tt>, pemeriksaan cap waktu tersebut juga diabaikan.
</p>
<p id="740583" class="block-content">
-SARAN: Jangan menggunakan penerbitan asset secara berlebihan. Konsep asset dipakai terutama untuk membantu pemakaian ulang dan redistribusi kelas komponen lebih baik. Normalnya, anda tidak akan menggunakan penerbitan asset untuk sumberdaya yang tidak terikat ke komponen manapun dalam aplikasi. Sebagai contoh, anda jangan menggunakan penerbitan asset untuk gambar yang digunakan terutama sebagai elemen desain (misalnya logo, gambar latar belakang, dll). Biarkan server Web melayani gambar ini secara langsung yang akan membantu meningkatkan performansi aplikasi anda.
+SARAN: Jangan menggunakan penerbitan asset secara berlebihan. Konsep asset dipakai terutama untuk membantu pemakaian ulang dan redistribusi kelas komponen agar lebih baik. Normalnya, Anda tidak akan menggunakan penerbitan asset untuk sumberdaya yang tidak terikat ke komponen mana pun dalam aplikasi. Sebagai contoh, Anda jangan menggunakan penerbitan asset untuk gambar yang digunakan terutama sebagai elemen desain (misalnya logo, gambar latar belakang, dll). Biarkan server Web melayani gambar ini secara langsung yang akan membantu meningkatkan performansi aplikasi Anda.
</p>
<h2 id="5705">Contoh Tombol Toggle</h2>
diff --git a/demos/quickstart/protected/pages/Advanced/id/Auth.page b/demos/quickstart/protected/pages/Advanced/id/Auth.page index c1e44656..49db655e 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Auth.page +++ b/demos/quickstart/protected/pages/Advanced/id/Auth.page @@ -53,7 +53,7 @@ Aturan otorisasi untuk halaman ditetapkan dalam <a href="?page=Configurations.Pa </authorization>
</com:TTextHighlighter>
<p id="720557" class="block-content">
-Aturan otorisasi bisa berupa aturan <tt>mengijinkan</tt> atau aturan <tt>menolak</tt>. Setiap aturan terdiri dari empat properti opsional:
+Aturan otorisasi bisa berupa aturan <tt>allow</tt> atau aturan <tt>deny</tt>. Setiap aturan terdiri dari empat properti opsional:
</p>
<ul id="u1" class="block-content">
<li><tt>pages</tt> - daftar nama halaman dipisahkan koma yang menerapkan aturan ini. Jika kosong atau tidak disetel, aturan ini akan berlaku ke semua halaman di bawah direktori saat ini dan seluruh subdirektorinya secara rekursif.</li>
@@ -67,7 +67,7 @@ Ketika permintaan halaman sedang diproses, daftar aturan otorisassi menjadi ters </p>
<ul id="u2" class="block-content">
<li>Aturan diurut dari bawah-ke atas, misalnya aturan yang berisi dalam konfigurasi dari folder halaman saat ini menjadi yang pertama. Aturan dalam konfigurasi dari folder halaman leluhurnya menjadi yang berikutnya.</li>
-<li>Sebuah aturan efektif jika halaman saat ini dalam halaman yang didaftarkan pada aturan DAN aksi pengguna saat ini (<tt>get</tt> ata <tt>post</tt>) dalam aksi terdaftar.</li>
+<li>Sebuah aturan efektif jika halaman saat ini dalam halaman yang didaftarkan pada aturan DAN aksi pengguna saat ini (<tt>get</tt> atau <tt>post</tt>) dalam aksi terdaftar.</li>
<li>Sebuah aturan sama terjadi jika nama pengguna saat ini ada dalam daftar nama pengguna pada aturan <i>efektif</i> ATAU jika aturan pengguna ada dalam aturan terdaftar yang mengaturnya.</li>
<li>Jika tidak ada aturan yang sama, pengguna diotorisasi.</li>
</ul>
@@ -88,7 +88,7 @@ Juga diperkenalkan dalam versi 3.1.1 adalah aturan IP. Ini ditetapkan oleh atrib Seperti telah disebutkan di atas, <tt>TUserManager</tt> menerapkan database pengguna hanya-baca. Informasi pengguna ditetapkan baik dalam konfigurasi aplikasi ataupun file XML eksternal.
</p>
<p id="720561" class="block-content">
-Kita telah melihat contoh di atas yang menggunakan duapengguna ditetapkan dalam konfigurasi aplikasi. Sintaks lengkap atas penetapan pengguna dan informasi aturan adalah sebagi berikut,
+Kita telah melihat contoh di atas yang menggunakan dua pengguna ditetapkan dalam konfigurasi aplikasi. Sintaks lengkap atas penetapan pengguna dan informasi aturan adalah sebagai berikut,
</p>
<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code3">
<user name="demo" password="demo" roles="demo,admin" />
@@ -100,7 +100,7 @@ di mana atribut <tt>roles</tt> dalam elemen <tt>user</tt> adalah opsional. Atura <h2 id="5505">Menggunakan <tt>TDbUserManager</tt></h2>
<p id="720563" class="block-content">
-<tt>TDbUserManager</tt> diperkenalkan dalam v3.1.0. Tujuan utamanya adalah untuk menyederhanakan tugas pengaturan akun pengguna yang disimpan dalam sebuah database. Ini membutuhkan para pengembang untuk menulis kelaspengguna yang mewakili informasi yang diperlukan untuk akun pengguna. Kelas pengguna harus diperluas dari <tt>TDbUser</tt>.
+<tt>TDbUserManager</tt> diperkenalkan dalam v3.1.0. Tujuan utamanya adalah untuk menyederhanakan tugas pengaturan akun pengguna yang disimpan dalam sebuah database. Ini membutuhkan para pengembang untuk menulis kelas pengguna yang mewakili informasi yang diperlukan untuk akun pengguna. Kelas pengguna harus diperluas dari <tt>TDbUser</tt>.
</p>
<p id="720564" class="block-content">
Untuk menggunakan <tt>TDbUserManager</tt>, konfigurasi itu dalam konfigurasi aplikasi seperti berikut:
diff --git a/demos/quickstart/protected/pages/Advanced/id/Collections.page b/demos/quickstart/protected/pages/Advanced/id/Collections.page index acd821f7..70defa8c 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Collections.page +++ b/demos/quickstart/protected/pages/Advanced/id/Collections.page @@ -5,7 +5,7 @@ Koleksi adalah struktur data dasar dalam pemrograman. Sebagai tambahan pada pemrograman PHP, array dipakai secara luas untuk mewakili koleksi struktur data. Array PHP adalah campuran dari array berindeks-kardinal dan tabel campuran.
</p>
<p id="710530" class="block-content">
-Untuk menghidupkan manipulasi obyek-terorientasi atas koleksi, PRADO menyediakan kelas koleksi bertenaga. Diantaranya, <tt>TList</tt> dan <tt>TMap</tt> adalah yang paling mendasar dan biasanya melayani sebagai basis kelas untuk kelas koleksi lainnya. Karena banyak komponen PRADO memiliki properti yang bertipe koleksi, penting bagi para pengembang untuk menguasai pemakaian kelas koleksi PRADO.
+Untuk menghidupkan manipulasi obyek-terorientasi atas koleksi, PRADO menyediakan kelas koleksi yang bertenaga. Diantaranya, <tt>TList</tt> dan <tt>TMap</tt> adalah yang paling mendasar dan biasanya melayani sebagai basis kelas untuk kelas koleksi lainnya. Karena banyak komponen PRADO memiliki properti yang bertipe koleksi, penting bagi para pengembang untuk menguasai pemakaian kelas koleksi PRADO.
</p>
<h2 id="5502">Menggunakan <tt>TList</tt></h2>
@@ -64,7 +64,7 @@ Controh lain adalah properti <tt>Items</tt>, tersedia dalam kontrol list, <tt>TR <h3 id="5505">Memperluas <tt>TList</tt></h3>
<p id="710539" class="block-content">
-Seringkali kita ingin memperluas <tt>TList</tt> untuk melakukan operasi tambahan untuk setiap penambahan atau penghapusan sebuah item. Satu-satunya metode yang diperlukan kelas anak untuk mengganti adalah <tt>insertAt()</tt> dan <tt>removeAt()</tt>. Sebagai contoh, untuk memastikan daftar hanya berisi item yang bertipe <tt>TControl</tt>, kita dapat mengganti <tt>insertAt()</tt> sebagai berikut,
+Seringkali kita ingin memperluas <tt>TList</tt> untuk melakukan operasi tambahan untuk setiap penambahan atau penghapusan sebuah item. Satu-satunya metode yang diperlukan kelas anak untuk mengganti adalah <tt>insertAt()</tt> dan <tt>removeAt()</tt>. Sebagai contoh, guna memastikan daftar hanya berisi item yang bertipe <tt>TControl</tt>, kita dapat mengganti <tt>insertAt()</tt> sebagai berikut,
</p>
<com:TTextHighlighter CssClass="source block-content" id="code4">
public function insertAt($index,$item)
diff --git a/demos/quickstart/protected/pages/Advanced/id/Error.page b/demos/quickstart/protected/pages/Advanced/id/Error.page index 4224c551..50ebc7b9 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Error.page +++ b/demos/quickstart/protected/pages/Advanced/id/Error.page @@ -71,7 +71,7 @@ Konvensi penamaan untuk file template yang dipakai bagi semua eksepsi adalah seb Sekali lagi, jika bahasa yang diinginkan tidak ditemukan, sebaliknya PRADO akan mencoba menggunakan <tt>exception.html</tt>.
</p>
<div class="note">
-<b class="tip">PERHATIAN:</b> Ketika menyimpan file template, pastikan file disimpan menggunakan pengkodean UTF-8. Pada Windows, anda bisa menggunakan <tt>Notepad.exe</tt> untuk melakukan penyimpanan tersebut.
+<b class="tip">PERHATIAN:</b> Ketika menyimpan file template, pastikan file disimpan menggunakan pengkodean UTF-8. Pada Windows, Anda bisa menggunakan <tt>Notepad.exe</tt> untuk melakukan penyimpanan tersebut.
</div>
<div class="last-modified">$Id: Error.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Advanced/id/I18N.page b/demos/quickstart/protected/pages/Advanced/id/I18N.page index 675257f0..15426b79 100644 --- a/demos/quickstart/protected/pages/Advanced/id/I18N.page +++ b/demos/quickstart/protected/pages/Advanced/id/I18N.page @@ -1,7 +1,7 @@ <com:TContent ID="body" >
<h1 id="6201">Internasionalisasi (I18N) dan Lokalisasi (L10N)</h1>
-<p id="790625" class="block-content">Banyak aplikasi web dibangun dengan PHP tidak memikirkan internasionlisasi saat ia pertama kali ditulis. Itu mungkin dikarenakan tidak dimaksudkan untuk digunakan dalam bahasa dan kultur. Internasionalisasi adalah aspek penting karena meningkatkan adopsi Internet dalam banyak negara yang berbicara non-Ingris. Proses internasionalisasi dan lokalisasi akan mengandung kesulitan. Di bawah adalah beberapa petunjuk umum untuk menginternasionalisasi aplikasi yang sudah ada.</p>
+<p id="790625" class="block-content">Banyak aplikasi web dibangun dengan PHP tidak memikirkan internasionlisasi saat ia pertama kali ditulis. Itu mungkin dikarenakan tidak dimaksudkan untuk digunakan dalam bahasa dan kultur. Internasionalisasi adalah aspek penting karena meningkatkan adopsi Internet dalam banyak negara yang berbicara non-Ingris. Proses internasionalisasi dan lokalisasi akan menghadapi kesulitan. Di bawah adalah beberapa petunjuk umum untuk menginternasionalisasi aplikasi yang sudah ada.</p>
<h2 id="6203">Pisahkan data sensitif kultur/lokal</h2>
@@ -26,8 +26,8 @@ <p id="790627" class="block-content">Bila memungkinkan semua ragam teks harus diisolasi dan disimpan dalam format persisten. Teks ini termasuk, pesan kesalahan aplikasi, string ditulis tangan dalam file PHP, email, teks statis HTML, dan teks pada elemen formulir (misalnya tombol).</p>
<h2 id="6204">Konfigurasi</h2>
-<p id="790628" class="block-content">Untuk menghidupkan fitur lokalisasi dalam PRADO, anda perlu menambahkan beberapa opsi konfigurasi dalam <a href="?page=Configurations.AppConfig">konfigurasi aplikasi</a> anda.
-Pertama anda perlu menyertakan namespace <tt>System.I18N.*</tt> ke path anda.
+<p id="790628" class="block-content">Untuk menghidupkan fitur lokalisasi dalam PRADO, Anda perlu menambahkan beberapa opsi konfigurasi dalam <a href="?page=Configurations.AppConfig">konfigurasi aplikasi</a> Anda.
+Pertama Anda perlu menyertakan namespace <tt>System.I18N.*</tt> ke path Anda.
</p>
<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_790203">
<paths>
@@ -35,7 +35,7 @@ Pertama anda perlu menyertakan namespace <tt>System.I18N.*</tt> ke path anda. </paths>
</com:TTextHighlighter>
-<p id="790629" class="block-content">Kemudian, jika anda ingin menterjemahkan beberapa teks dalam aplikasi anda, anda perlu menambahkan sumber data pesan terjemahan.</p>
+<p id="790629" class="block-content">Kemudian, jika Anda ingin menerjemahkan beberapa teks dalam aplikasi Anda, perlu ditambahkan sumber data pesan terjemahan.</p>
<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_790204">
<module id="globalization" class="TGlobalization">
<translation type="XLIFF"
@@ -45,12 +45,12 @@ Pertama anda perlu menyertakan namespace <tt>System.I18N.*</tt> ke path anda. </module>
</com:TTextHighlighter>
-<p id="790630" class="block-content">Di mana <tt>source</tt> dalam <tt>translation</tt> adalah path titik ke direktori di mana anda akan menyimpan katalog pesan terjemahan. Atribut <tt>autosave</tt> jika dihidupkan, menyimpan pesan tidak diterjemahkan kembali ke dalam katalog pesasn.
+<p id="790630" class="block-content">Di mana <tt>source</tt> dalam <tt>translation</tt> adalah path titik ke direktori di mana Anda akan menyimpan katalog pesan terjemahan. Atribut <tt>autosave</tt> jika dihidupkan, menyimpan pesan tidak diterjemahkan kembali ke dalam katalog pesasn.
Dengan menghidupkan <tt>cache</tt>, pesan yang diterjemahkan disimpan dalam direktori aplikasi <tt>runtime/i18n</tt>.
Nilai <tt>marker</tt> dipakai untuk mengelilingi teks yang tidak diterjemahkan.
</p>
-<p id="790631" class="block-content">Dengan konfigurasi lengkap, sekarang kita dapat mulai melokalisasi aplikasi anda. Jika anda menghidupkan <tt>autosave</tt>, setelah menjalankan aplikasi anda dengan beberapa aktivitas lokalisasi (misalnya menterjemahkan beberapa teks), anda akan melihat sebuah direktori dan <tt>messages.xml</tt> dibuat di dalam direktori <tt>source</tt>.</p>
+<p id="790631" class="block-content">Dengan konfigurasi lengkap, sekarang kita dapat mulai melokalisasi aplikasi Anda. Jika Anda menghidupkan <tt>autosave</tt>, setelah menjalankan aplikasi Anda dengan beberapa aktivitas lokalisasi (misalnya menterjemahkan beberapa teks), Anda akan melihat sebuah direktori dan <tt>messages.xml</tt> dibuat di dalam direktori <tt>source</tt>.</p>
<h2 id="6205">Apa yang harus dilakukan dengan <tt>messages.xml</tt>?</h2>
<p id="790632" class="block-content">File katalog pesan terjemahan, jika menggunakan <tt>type="XLIFF"</tt>, adalah format intechange XML pesan terjemahan distandarisasi. Anda bisa mengedit file XML menggunakan editor yang mampu menangani UTF-8. Format dari XML adalah sesuatu mirip seperti berikut ini.</p>
@@ -78,14 +78,14 @@ Setiap pesan terjemahan dilapisi dengan tag <tt>trans-unit</tt>, di mana <tt>sou <h2 id="6206">Menyetel dan Mengubah Kultur</h2>
-<p id="790633" class="block-content">Sekali globalisasi dihidupkan, anda dapat mengakses setelan globalisasi, seperti <tt>Culture</tt>, <tt>Charset</tt>, dll, menggunakan </p>
+<p id="790633" class="block-content">Sekali globalisasi dihidupkan, Anda dapat mengakses setelan globalisasi, seperti <tt>Culture</tt>, <tt>Charset</tt>, dll, menggunakan </p>
<com:TTextHighlighter CssClass="source block-content" id="code_790206">
$globalization = $this->getApplication()->getGlobalization();
echo $globalization->Culture;
$globalization->Charset= "GB-2312"; //ubah charset
</com:TTextHighlighter>
-<p id="790634" class="block-content">Anda juga mengubah cara kultur ditentukan dengan mengubah atribut <tt>class</tt> dalam konfigurasi modul. Sebagai contoh, untuk menyetel kultur yang tergantung pada setelan browser, anda bisa menggunakan kelas <tt>TGlobalizationAutoDetect</tt>.
+<p id="790634" class="block-content">Anda juga mengubah cara kultur ditentukan dengan mengubah atribut <tt>class</tt> dalam konfigurasi modul. Sebagai contoh, untuk menyetel kultur yang tergantung pada setelan browser, Anda bisa menggunakan kelas <tt>TGlobalizationAutoDetect</tt>.
<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_790207">
<module id="globalization" class="TGlobalizationAutoDetect">
...
@@ -93,16 +93,16 @@ $globalization->Charset= "GB-2312"; //ubah charset </com:TTextHighlighter>
<p id="790635" class="block-content">Anda juga bisa menyediakan kelas globalisasi sendiri untuk mengubah bagaimana kultur aplikasi ditetapkan.
-Terakhir, anda dapat mengubah setelan globalisasi dengan basis halaman demi halaman menggunakan <a href="?page=Configurations.Templates1#tct">tag kontrol template</a>. Sebagai contoh, mengubah <tt>Culture</tt> ke "zh".</p>
+Terakhir, Anda dapat mengubah setelan globalisasi dengan basis halaman demi halaman menggunakan <a href="?page=Configurations.Templates1#tct">tag kontrol template</a>. Sebagai contoh, mengubah <tt>Culture</tt> ke "zh".</p>
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_790208">
<%@ Application.Globalization.Culture="zh" %>
</com:TTextHighlighter>
-<h2 id="6207">Melokalisasi aplikasi PRADO anda</h2>
-Ada dua area dalam aplikasi anda yang mungkin membutuhkan lokalisasi pesan atau string, dalam kode PHP dan dalam template. Untuk melokalisasi string di dalam PHP, gunakan fungsi <tt>localize</tt> yang dijelaskan di bawah. Untuk melokalisasi teks dalam template, gunakan komponen <a href="#ttranslate">TTranslate</a>.
-<h2 id="6208">Menggunakan fungsi <tt>localize</tt> untuk menterjemahkan teks dalam PHP</h2>
+<h2 id="6207">Melokalisir aplikasi PRADO Anda</h2>
+Ada dua area dalam aplikasi Anda yang mungkin membutuhkan lokalisasi pesan atau string, dalam kode PHP dan dalam template. Untuk melokalisasi string di dalam PHP, gunakan fungsi <tt>localize</tt> yang dijelaskan di bawah. Untuk melokalisasi teks dalam template, gunakan komponen <a href="#ttranslate">TTranslate</a>.
+<h2 id="6208">Menggunakan fungsi <tt>localize</tt> untuk mennerjemahkan teks dalam PHP</h2>
-<p id="790636" class="block-content">Fungsi <tt>localize</tt> mencari string yang diterjemahkan yang sama dengan aslinya dari sumber terjemahan anda. Pertama, anda perlu mencari semua teks dikode langsung dalam PHP yang ditampilkan atau dikirimkan ke pengguna akhir. Contoh berikut melokalisasi teks <tt>$sender</tt> (menganggap, katakanlah, sender adalah sebuah tombol). Kode asli sebelum lokalisasi adalah sebagai berikut.
+<p id="790636" class="block-content">Fungsi <tt>localize</tt> mencari string yang diterjemahkan yang sama dengan aslinya dari sumber terjemahan Anda. Pertama, Anda perlu mencari semua teks dikode langsung dalam PHP yang ditampilkan atau dikirimkan ke pengguna akhir. Contoh berikut melokalisasi teks <tt>$sender</tt> (menganggap, katakanlah, sender adalah sebuah tombol). Kode asli sebelum lokalisasi adalah sebagai berikut.
<com:TTextHighlighter CssClass="source block-content" id="code_790209">
function clickMe($sender,$param)
{
@@ -120,7 +120,7 @@ function clickMe($sender,$param) <h2 id="6209">Pesan Gabungan</h2>
-<p id="790638" class="block-content">Pesan gabungan dapat berisi data variabel. Sebagai contoh, dalam pesan "There are 12 users online.", integer 12 dapat berubah tergantung pada beberapa data dalam aplikasi anda. Ini sulit diterjemahkan karena posisi dari data variabel mungkin berbeda untuk bahasa yang berbeda. Seabgai tambahan, bahasa yang berbeda memiliki aturannya sendiri untuk bentuk jamak (jika ada) dan/atau pembilang. Contoh berikut tidak mudah untuk diterjemahkan, karena struktur kalimat sudah tetap dengan dikodekan langsung data variabel dengan pesan.</p>
+<p id="790638" class="block-content">Pesan gabungan dapat berisi data variabel. Sebagai contoh, dalam pesan "There are 12 users online.", integer 12 dapat berubah tergantung pada beberapa data dalam aplikasi Anda. Ini sulit diterjemahkan karena posisi dari data variabel mungkin berbeda untuk bahasa yang berbeda. Seabgai tambahan, bahasa yang berbeda memiliki aturannya sendiri untuk bentuk jamak (jika ada) dan/atau pembilang. Contoh berikut tidak mudah untuk diterjemahkan, karena struktur kalimat sudah tetap dengan dikodekan langsung data variabel dengan pesan.</p>
<com:TTextHighlighter CssClass="source block-content" id="code_790211">
$num_users = 12;
$message = "There are " . $num_users . " users online.";
@@ -141,7 +141,7 @@ Fungsi <tt>localize</tt> tidak memecahkan masalah lokalisasi bahasa yang memilik <a name="ttranslate"></a>
<h2 id="6210">TTranslate</h2>
<p id="790641" class="block-content">Pesan dan string bisa dilokalisasi dalam PHP atau dalam template.
-Untuk menterjemahkan pesan atau string dalam template, gunakan <tt>TTranslate</tt>.</p>
+Untuk menerjemahkan pesan atau string dalam template, gunakan <tt>TTranslate</tt>.</p>
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_790213">
<com:TTranslate>Hello World</com:TTranslate>
@@ -266,7 +266,7 @@ numbers by specifying the <tt>Type</tt> attribute. The valid types are:</p> <p id="790657" class="block-content">Properti <tt>Culture</tt> dan <tt>Currency</tt> dapat ditetapkan untuk membentuk angka spesifik lokal. </p>
-<p id="790658" class="block-content">Jika seseorang dari US ingin melihat gambar penjualan dari sebuah toko dalam bahasa Jerman (katakanlah menggunakan kurs EURO), diformat menggunakan kurs jerman, anda perlu untuk menggunakan atribut <tt>Culture="de_DE"</tt> guna memperoleh kurs yang benar, misalnya 100,00$. Pemisah desimal dan pengelompokan kemudian juga dari lokal <tt>de_DE</tt>. Ini dapat menimbulkan beberapa kebingungan karena orang dari US memakai "," (koma) sebagai pemisah ribuan. Oleh karena itu, atribut <tt>Currency</tt> tersedia agar output dari hasil contoh berikut menghasilkan $100.00
+<p id="790658" class="block-content">Jika seseorang dari US ingin melihat gambar penjualan dari sebuah toko dalam bahasa Jerman (katakanlah menggunakan kurs EURO), diformat menggunakan kurs jerman, Anda perlu untuk menggunakan atribut <tt>Culture="de_DE"</tt> guna memperoleh kurs yang benar, misalnya 100,00$. Pemisah desimal dan pengelompokan kemudian juga dari lokal <tt>de_DE</tt>. Ini dapat menimbulkan beberapa kebingungan karena orang dari US memakai "," (koma) sebagai pemisah ribuan. Oleh karena itu, atribut <tt>Currency</tt> tersedia agar output dari hasil contoh berikut menghasilkan $100.00
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_790222">
<com:TNumberFormat Type="currency"
Culture="en_US" Currency="EUR" Value="100" />
@@ -311,7 +311,7 @@ Dalam contoh berikut, string "{greeting}" dan "{name}" masing-masing akan digant <a name="choice-format"></a>
<h2 id="6214">TChoiceFormat</h2>
-<p id="790661" class="block-content">Menggunakan fungsi <tt>localize</tt> atau komponen <tt>TTranslate</tt> untuk menterjemahkan pesan tidak memberitahu penterjemah kardinalitas dari data yang diminta untuk menentukan struktur jamak yang benar yang dipakai. Ia hanya memberitahunya bahwa ada data tersedia, data dapat berupa apa saja. Selanjutnya, penterjemah tidak akan bisa menentukan dengan memperhatikan penempatan data plural yang benar, struktur bahasa atau prasa yang dipakai. Misalnya dalam bahasa Inggris, untuk menterjemahkan kalimat, "There are {number} of apples.", hasil terjemahan akan berbeda tergantung pada <tt>jumlah</tt> apel.</p>
+<p id="790661" class="block-content">Menggunakan fungsi <tt>localize</tt> atau komponen <tt>TTranslate</tt> untuk menerjemahkan pesan tidak memberitahu penerjemah kardinalitas dari data yang diminta untuk menentukan struktur jamak yang benar yang dipakai. Ia hanya memberitahunya bahwa ada data tersedia, data dapat berupa apa saja. Selanjutnya, penerjemah tidak akan bisa menentukan dengan memperhatikan penempatan data plural yang benar, struktur bahasa atau prasa yang dipakai. Misalnya dalam bahasa Inggris, untuk menerjemahkan kalimat, "There are {number} of apples.", hasil terjemahan akan berbeda tergantung pada <tt>jumlah</tt> apel.</p>
<p id="790662" class="block-content">Komponen <tt>TChoiceFormat</tt> melakukan pilihan terjemahan pesan/string. Contoh berikut mendemonstrasikan terjemahan pesan 2 pilihan sederhana.</p>
diff --git a/demos/quickstart/protected/pages/Advanced/id/Logging.page b/demos/quickstart/protected/pages/Advanced/id/Logging.page index aa8cbb8e..40367812 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Logging.page +++ b/demos/quickstart/protected/pages/Advanced/id/Logging.page @@ -52,7 +52,7 @@ Pesan bisa disaring berdasarkan tingkat catatan serta kategorinya. Setiap catata Tingkat catatan didefinisikan dalam <tt>System.Util.TLogger</tt> termasuk: <tt>DEBUG</tt>, <tt>INFO</tt>, <tt>NOTICE</tt>, <tt>WARNING</tt>, <tt>ERROR</tt>, <tt>ALERT</tt>, <tt>FATAL</tt>. Pesan bisa disaring berdasarkan kriteria tingkat catatan. Sebagai contoh, jika sebuah filter menetapkan tingkat <tt>WARNING</tt> dan <tt>ERROR</tt>, maka hanya pesan tersebut yakni <tt>WARNING</tt> and <tt>ERROR</tt> yang akan dikembalikan.
</p>
<p id="780623" class="block-content">
-Kategori pesan adalah hirarkis. Kategori yang namanya awalan dari yang lain disebut menjadi leluhur kategori atas kategori lainnya. Sebagai contoh, kategori <tt>System.Web</tt> adalah leluhur dari kategori <tt>System.Web.UI</tt> dan <tt>System.Web.UI.WebControls</tt>. Pesan bisa diambil secara selektif menggunakan filter kategori hirarkis tersebut. Sebagai contoh, jika filter kategori adalah <tt>System.Web</tt>, maka semua pesan dalam <tt>System.Web</tt> dikembalikan. Sebagai tambahan, pesan dalam kategori anak seperti <tt>System.Web.UI.WebControls</tt>, juga dikembalikan.
+Kategori pesan adalah hirarkis. Kategori yang namanya awalan dari yang lain disebut leluhur kategori atas kategori lainnya. Sebagai contoh, kategori <tt>System.Web</tt> adalah leluhur dari kategori <tt>System.Web.UI</tt> dan <tt>System.Web.UI.WebControls</tt>. Pesan bisa diambil secara selektif menggunakan filter kategori hirarkis tersebut. Sebagai contoh, jika filter kategori adalah <tt>System.Web</tt>, maka semua pesan dalam <tt>System.Web</tt> dikembalikan. Sebagai tambahan, pesan dalam kategori anak seperti <tt>System.Web.UI.WebControls</tt>, juga dikembalikan.
</p>
<p id="780624" class="block-content">
Dengan ketentuan, pesan yang dicatat dalam kode inti PRADO dikategorikan berdasarkan namespace dari kelas terkait. Sebagai contoh, pesan yang dicatat dalam <tt>TPage</tt> akan menjadi kategori <tt>System.Web.UI.TPage</tt>.
diff --git a/demos/quickstart/protected/pages/Advanced/id/MasterContent.page b/demos/quickstart/protected/pages/Advanced/id/MasterContent.page index 45a3ab08..5a2cb6b6 100644 --- a/demos/quickstart/protected/pages/Advanced/id/MasterContent.page +++ b/demos/quickstart/protected/pages/Advanced/id/MasterContent.page @@ -48,7 +48,7 @@ Master sangat mirip dengan template eksternal yang diperkenalkan sejak versi 3.0 Baik template master maupun eksternal bisa dipakai untuk berbagi konten yang sama diantara halaman. Master adalah kontrol template yang berisi konten umum dan file kelasnya berisi logika terkait dengan master. Dilain pihak, template eksternal adalah file template murni tanpa file kelas apapun.
</p>
<p id="750594" class="block-content">
-Oleh karena itu, gunakan kontrol master jika konten umum harus dikaitkan dengan beberapa logika, seperti header halaman dengan kotak pencarian atau kotak login. Kontrol master membolehkan anda untuk menetapkan bagaimana konten umum harus berinteraksi dengan pengguna akhir. Jika anda menggunakan template eksternal, anda harus menyimpan logika yang diperlukan dalam halaman atau kelas kontrol yang memiliki basis template.
+Oleh karena itu, gunakan kontrol master jika konten umum harus dikaitkan dengan beberapa logika, seperti header halaman dengan kotak pencarian atau kotak login. Kontrol master membolehkan Anda untuk menetapkan bagaimana konten umum harus berinteraksi dengan pengguna akhir. Jika Anda menggunakan template eksternal, Anda harus menyimpan logika yang diperlukan dalam halaman atau kelas kontrol yang memiliki basis template.
</p>
<p id="750595" class="block-content">
Performansinya, template eksternal lebih ringan daripada master seperti berisi kontrol sendiri yang berparisipasi dalam masa hidup halaman, karena pembentuk hanya dipakai saat template sedang diuraikan.
diff --git a/demos/quickstart/protected/pages/Advanced/id/Performance.page b/demos/quickstart/protected/pages/Advanced/id/Performance.page index e655ee62..98e89644 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Performance.page +++ b/demos/quickstart/protected/pages/Advanced/id/Performance.page @@ -66,10 +66,10 @@ Untuk berganti mode aplikasi, konfigurasi itu dalam konfigurasi aplikasi: Standarnya PRADO menyimpan kondisi halaman dalam field tersembunyi dari output HTML. Kondisi halaman bisa berukuran sangat besar jika menggunakan kontrol yang kompleks, seperti <tt>TDataGrid</tt>. Guna mengurangi ukuran besarnya halaman yang dikirimkan melalui jaringan, dua strategi dapat dipakai.
</p>
<p id="810689" class="block-content">
-Pertama, anda dapat mematikan kondisi tampilan dengan menyetel <tt>EnableViewState</tt> menjadi false untuk halaman atau beberapa kontrol pada halaman jika pengguna tidak perlu berinteraksi dengan halaman/kontrol.
+Pertama, Anda dapat mematikan kondisi tampilan dengan menyetel <tt>EnableViewState</tt> menjadi false untuk halaman atau beberapa kontrol pada halaman jika pengguna tidak perlu berinteraksi dengan halaman/kontrol.
</p>
<p id="810690" class="block-content">
-Kedua, anda bisa menggunakan penyimpanan kondisi halaman berbeda. Sebagai contoh, kondisi halaman bisa disimpan dalam sesi, yang menyimpan kondisi halamaa terutama pada sisi server dan menghemat waktu transmisi jaringan. Properti <tt>StatePersisterClass</tt> dari halaman menentukan kelas persisten kondisi yang dipakai. Standarnya menggunakan <tt>System.Web.UI.TPageStatePersister</tt> untuk menyimpan kondisi persisten dalam field tersembunyi. Anda bisa mengubah properti ini ke kelas persisten anda sendiri, selama kelas persister menerapkan antarmuka <tt>IPageStatePersister</tt>. Anda dapat mengkonfigurasi properti ini dalam beberapa tempat, seperti konfigurasi aplikasi atau konfigurasi halaman menggunakan tag <pages> or <page>,
+Kedua, Anda bisa menggunakan penyimpanan kondisi halaman berbeda. Sebagai contoh, kondisi halaman bisa disimpan dalam sesi, yang menyimpan kondisi halamaa terutama pada sisi server dan menghemat waktu transmisi jaringan. Properti <tt>StatePersisterClass</tt> dari halaman menentukan kelas persisten kondisi yang dipakai. Standarnya menggunakan <tt>System.Web.UI.TPageStatePersister</tt> untuk menyimpan kondisi persisten dalam field tersembunyi. Anda bisa mengubah properti ini ke kelas persisten Anda sendiri, selama kelas persister menerapkan antarmuka <tt>IPageStatePersister</tt>. Anda dapat mengkonfigurasi properti ini dalam beberapa tempat, seperti konfigurasi aplikasi atau konfigurasi halaman menggunakan tag <pages> or <page>,
</p>
<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_810232">
<pages StatePersisterClass="MyPersister1" ... >
@@ -77,7 +77,7 @@ Kedua, anda bisa menggunakan penyimpanan kondisi halaman berbeda. Sebagai contoh </pages>
</com:TTextHighlighter>
<p id="810691" class="block-content">
-Catatan, dalam <tt>SpecialPage</tt> di atas akan menggunakan <tt>MyPersister2</tt> sebagai kelas persisternya, sementara halaman lainnya akan menggunakan <tt>MyPersister1</tt>. Oleh karena itu, anda dapat memiliki strategi perister kondisi untuk halaman yang berbeda.
+Catatan, dalam <tt>SpecialPage</tt> di atas akan menggunakan <tt>MyPersister2</tt> sebagai kelas persisternya, sementara halaman lainnya akan menggunakan <tt>MyPersister1</tt>. Oleh karena itu, Anda dapat memiliki strategi perister kondisi untuk halaman yang berbeda.
</p>
<h2 id="6406">Teknik Lainnya</h2>
diff --git a/demos/quickstart/protected/pages/Advanced/id/Scripts.page b/demos/quickstart/protected/pages/Advanced/id/Scripts.page index b18899d1..fcc135fb 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Scripts.page +++ b/demos/quickstart/protected/pages/Advanced/id/Scripts.page @@ -3,9 +3,9 @@ Bimbingan ini berdasarkan pada <a href="http://www.sergiopereira.com/articles/advjs.html">
Bimbingan cepat bagi tur JavaScript tingkat lanjut dengan beberapa fitur OO</a> oleh Sergio Pereira.
-<h2 id="6502">Hey, Saya tidak tahu anda bisa melakukannya</h2>
+<h2 id="6502">Hey, Saya tidak tahu Anda bisa melakukannya</h2>
<p id="820693" class="block-content">
- Jika anda adalah seorang pengembang web developer dan datang dari tempat yang sama seperti saya, anda mungkin telah mengenal sedikit Javascript dalam halaman web anda, terutama sebagai perekat UI.
+ Jika Anda adalah seorang pengembang web developer dan datang dari tempat yang sama seperti saya, Anda mungkin telah mengenal sedikit Javascript dalam halaman web Anda, terutama sebagai perekat UI.
</p>
<p id="820694" class="block-content">
@@ -17,13 +17,13 @@ Bimbingan cepat bagi tur JavaScript tingkat lanjut dengan beberapa fitur OO</a> </p>
<p id="820696" class="block-content">
Dalam banyak cata kita dapat mengatakan bahwa dengan tiba-tiba palang ditaruh lebih tinggi dari sebelumnya. Ia mengambil palang pintu lebih ahli menulis aplikasi untuk Web baru dan kita perlu mengingkatkan keahlian Javascript kita agar bisa sampai ke sana.
- Jika anda mencoba untuk menggunakan banyak librari javascript yang ada di luar sana, seperti
+ Jika Anda mencoba untuk menggunakan banyak librari javascript yang ada di luar sana, seperti
<a href="http://prototype.conio.net/">Prototipe.js</a>,
<a href="http://script.aculo.us/">Scriptaculous</a>,
<a href="http://moofx.mad4milk.net/">moo.fx</a>,
<a href="http://bennolan.com/behaviour/">Perilaku</a>,
<a href="http://developer.yahoo.net/yui/">YUI</a>,
- dan lain-lain, anda secara kebetulan akan menemukan diri anda sendiri sedang membaca kode JS. Mungkin dikarenakan anda ingin mempelajari bagaimana mereka melakukannya, atau karena anda penasaran, atau lebih sering karena itulah satu-satunya cara untuk memahami bagaimana untuk memakainya, karena dokumentasi nampaknya tidak banyak ditujukan terutama terhadap librari ini. Apapun kasusnya, anda akan menghadapi teknik kung-fu yang akan menjadi asing dan menakutkan jika anda belum melihat itu sebelumnya.
+ dan lain-lain, Anda secara kebetulan akan menemukan diri Anda sendiri sedang membaca kode JS. Mungkin dikarenakan Anda ingin mempelajari bagaimana mereka melakukannya, atau karena Anda penasaran, atau lebih sering karena itulah satu-satunya cara untuk memahami bagaimana untuk memakainya, karena dokumentasi nampaknya tidak banyak ditujukan terutama terhadap librari ini. Apapun kasusnya, Anda akan menghadapi teknik kung-fu yang akan menjadi asing dan menakutkan jika Anda belum melihat itu sebelumnya.
</p>
<p id="820697" class="block-content">
@@ -65,16 +65,16 @@ var myPet = <com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_820235">
alert('my pet is ' + myPet.color);
alert('my pet has ' + myPet.legCount + ' legs');
-//jika anda anjing, mengonggong tiga kali:
+//jika Anda anjing, mengonggong tiga kali:
myPet.communicate(3);
</com:TTextHighlighter>
<p id="820701" class="block-content">
Anda akan melihat JSON banyak dipakai di mana saja dalam JS baru-baru ini, sebagai argumen bagi fungsi, sebagai nilai hasil, sebagai respon server (dalam string,) dll.
</p>
-<h2 id="6504">Apa yang anda maksud? Fungsi juga adalah sebuah obyek?</h2>
+<h2 id="6504">Apa yang Anda maksud? Fungsi juga adalah sebuah obyek?</h2>
<p id="820702" class="block-content">
- Ini mungkin tidak biasa bagi para pengembang yang tidak pernah memikirkan tentang itu, tapi dalam fungsi JS adalah sebuah obyek. Anda bisa mengirimkan sebuah fungsi sebagai argumen terhadap fungsi lain sama seperti anda mengirimkan sebuah string, misalnya. Ini sering dipakai dan siap digunakan.
+ Ini mungkin tidak biasa bagi para pengembang yang tidak pernah memikirkan tentang itu, tapi dalam fungsi JS adalah sebuah obyek. Anda bisa mengirimkan sebuah fungsi sebagai argumen terhadap fungsi lain sama seperti Anda mengirimkan sebuah string, misalnya. Ini sering dipakai dan siap digunakan.
</p>
<p id="820703" class="block-content">
@@ -113,7 +113,7 @@ annoyThePet(myCat.meow); </p>
<p id="820705" class="block-content">
- Jika anda ingin membuat kucing malas mulai mengeong, anda dapat dengan mudah melakukan ini:
+ Jika Anda ingin membuat kucing malas mulai mengeong, Anda dapat dengan mudah melakukan ini:
</p>
<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_820237">
myCat.meow = myDog.bark;
@@ -130,7 +130,7 @@ var a = new Array(); var b = [];
</com:TTextHighlighter>
<p id="820707" class="block-content">
- Karena saya yakin anda sudah mengetahuinya, anda dapat mengakses item individual dalam sebuah array menggunakan tanda kurung kotak:
+ Karena saya yakin Anda sudah mengetahuinya, anda dapat mengakses item individual dalam sebuah array menggunakan tanda kurung kotak:
</p>
<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_820239">
var a = ['first', 'second', 'third'];
@@ -140,7 +140,7 @@ var v3 = a[2]; </com:TTextHighlighter>
<p id="820708" class="block-content">
- Tetapi anda tidak dibatasi pada indeks numerik. Anda bisa mengakses banyak obyek JS dengan menggunakan namanya, dalam sebuah string. Contoh berikut membuat obyek kosong, dan menambah beberapa anggotanya dengan nama.
+ Tetapi Anda tidak dibatasi pada indeks numerik. Anda bisa mengakses banyak obyek JS dengan menggunakan namanya, dalam sebuah string. Contoh berikut membuat obyek kosong, dan menambah beberapa anggotanya dengan nama.
</p>
<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_820240">
var obj = {}; //baru, obyek kosong
@@ -172,7 +172,7 @@ obj['some_function'](); <h2 id="6506">Cukup tentang obyek, boleh saya memiliki kelas sekarang?</h2>
<p id="820711" class="block-content">
- Kekuatan besar dari bahasa pemrograman obyek berasal dari pemakaian kelas. Saya tidak berpikir telah menebak bagaimana kelas didefinisikan dalam JS hanya menggunakan pengalaman saya sebelumnya dengan bahasa lainnya. Nilailah bagi diri anda sendiri.
+ Kekuatan besar dari bahasa pemrograman obyek berasal dari pemakaian kelas. Saya tidak berpikir telah menebak bagaimana kelas didefinisikan dalam JS hanya menggunakan pengalaman saya sebelumnya dengan bahasa lainnya. Nilailah bagi diri Anda sendiri.
</p>
<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_820243">
//mendefinisikan kelas baru bernama Pet
@@ -221,7 +221,7 @@ Pet.prototype = <h2 id="6507">Fungsi sebagai argumen, pola yang menarik</h2>
<p id="820714" class="block-content">
- Jika anda tidak pernah bekerja dengan bahasa yang mendukung klosur anda akan mendapatkan idion berikut terlalu busuk.
+ Jika Anda tidak pernah bekerja dengan bahasa yang mendukung klosur Anda akan mendapatkan idion berikut terlalu busuk.
</p>
<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_820246">
var myArray = ['first', 'second', 'third'];
@@ -232,7 +232,7 @@ myArray.each( function(item, index) </com:TTextHighlighter>
<p id="820715" class="block-content">
- Wah! Mari kita jelaskan apa yang terjadi di sini sebelum anda memutuskan saya telah pergi terlalu jauh dan beralih ke artikel yang lebih baik dari yang ini.
+ Wah! Mari kita jelaskan apa yang terjadi di sini sebelum Anda memutuskan saya telah pergi terlalu jauh dan beralih ke artikel yang lebih baik dari yang ini.
</p>
<p id="820716" class="block-content">
Pertama, dalam contoh di atas kita menggunakan librari prototype.js, yang menambahkan setiap fungsi ke kelas array. Setiap fungsi menerima satu argumen yang adalah obyek fungsi. Fungsi ini, silah berganti akan dipanggil sekali untuk setiap item dalam array, mengirimkan dua argumen saat dipanggil, item dan indeks untuk item saat ini. Mari kita panggil fungsi ini sebagai fungsi pengulang kita.
@@ -276,7 +276,7 @@ myButton2.onclick = buttonClicked; </com:TTextHighlighter>
<p id="820721" class="block-content">
Karena fungsi buttonClicked didefinisikan di luar obyek manapun kita cenderung berpikir kata kunci <tt>this</tt> akan berisi referensi ke
- obyek <tt>window</tt> atau <tt>document</tt> (menganggap kode ini ada ditengah halaman HTML yang dilihat dalam browser.)
+ obyek <tt>window</tt> atau <tt>document</tt> (menganggap kode ini ada di tengah halaman HTML yang dilihat dalam browser.)
</p>
<p id="820722" class="block-content">
@@ -287,7 +287,7 @@ myButton.onclick(); </com:TTextHighlighter>
<p id="820723" class="block-content">
- Itu tidak membingungkan sama sekali bukan? Tapi lihat apa yang terjadi, anda mulai memiliki obyek lain yang berhadapan dengannya dan anda ingi betindak pada obyek ini terhadap event seperti klik tombol.
+ Itu tidak membingungkan sama sekali bukan? Tapi lihat apa yang terjadi, Anda mulai memiliki obyek lain yang berhadapan dengannya dan Anda ingin betindak pada obyek ini terhadap event seperti klik tombol.
</p>
<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_820250">
var myHelper =
@@ -316,7 +316,7 @@ var clearButton = document.getElementById('btnClear'); clearButton.onclick = myHelper.emptyAllFields;
</com:TTextHighlighter>
<p id="820724" class="block-content">
- Anda pikir bagus, sekarang saya dapat mengklik tombol Clear pada halaman saya dan tiga kotak teks itu akan dikosongkan. Kemudian anda mencoba mengklik tombol hanya untuk mendapatkan kesalahan runtime. Kesalahan akan terkait dengan
+ Anda pikir bagus, sekarang saya dapat mengklik tombol Clear pada halaman saya dan tiga kotak teks itu akan dikosongkan. Kemudian Anda mencoba mengklik tombol hanya untuk mendapatkan kesalahan runtime. Kesalahan akan terkait dengan
(tebak apa?) kata kunci <tt>this</tt>.
Masalahnya adalah bahwa <tt>this.formFields</tt> tidak didefinisikan jika
<tt>this</tt> berisi sebuah referensi ke tombol, tepatnya itulah apa yang terjadi. Satu solusi cepat adalah menulis ulang baris kode terakhir.
diff --git a/demos/quickstart/protected/pages/Advanced/id/Scripts1.page b/demos/quickstart/protected/pages/Advanced/id/Scripts1.page index d36c96f1..8fc2eb0c 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Scripts1.page +++ b/demos/quickstart/protected/pages/Advanced/id/Scripts1.page @@ -6,16 +6,16 @@ Catatan Pengembang untuk prototype.js</a> oleh Sergio Pereira. <h2 id="6603">Apa itu?</h2>
<p id="830726" class="block-content">
-Dalam hal anda tidak pernah menggunakannya, <a href="http://prototype.conio.net">prototype.js</a> adalah librari
+Dalam hal Anda tidak pernah menggunakannya, <a href="http://prototype.conio.net">prototype.js</a> adalah librari
JavaScript yang ditulis oleh <a href="http://www.conio.net">Sam Stephenson</a>.
- Pemikiran yang hebat ini dan kode <b>sesuai-standar</b> yang ditulis dengan baik mengambil banyak beban terkait dengan pembuatan halaman web sangat interaktif dan kaya yang mengkarakterkan Web 2.0 di belakang anda.
+ Pemikiran yang hebat ini dan kode <b>sesuai-standar</b> yang ditulis dengan baik mengambil banyak beban terkait dengan pembuatan halaman web sangat interaktif dan kaya yang mengkarakterkan Web 2.0 di belakang Anda.
</p>
<p id="830727" class="block-content">
- Jika anda baru saja mencoba menggunakan librari ini, anda mungkin mencatat bahwa dokumentasi bukanlah salah satu titik yang terkuat. Seperti banyak pengembang lain sebelum saya, saya mempelajari prototype.js dengan membaca kode sumber dan melakukan percobaan denganya. Saya pikir akan baik jika mengambil catatan selama saya mempelajari dan berbagi dengan orang lain.
+ Jika Anda baru saja mencoba menggunakan librari ini, Anda mungkin mencatat bahwa dokumentasi bukanlah salah satu titik yang terkuat. Seperti banyak pengembang lain sebelum saya, saya mempelajari prototype.js dengan membaca kode sumber dan melakukan percobaan denganya. Saya pikir akan baik jika mengambil catatan selama saya mempelajari dan berbagi dengan orang lain.
</p>
<p id="830728" class="block-content">
- Setelah anda membaca contoh dan referensi, para pengembang yang terbiasa dengan bahasa pemrograman Ruby akan mencatat kesamaan maksud antara kelas built-in Ruby dan banyak ekstensi diimplementasikan oleh librari ini.
+ Setelah Anda membaca contoh dan referensi, para pengembang yang terbiasa dengan bahasa pemrograman Ruby akan mencatat kesamaan maksud antara kelas built-in Ruby dan banyak ekstensi diimplementasikan oleh librari ini.
</p>
@@ -61,7 +61,7 @@ function test2() </script>
</com:TTextHighlighter>
<p id="830733" class="block-content">
- Hal baik lainnya dari fungsi ini adalah bahwa anda bisa mengirimkan baik string <tt>id</tt> ataupun elemen obyek itu sendiri, yang menjadikan fungsi ini sangat berguna ketika membuat fungsi lain yang juga mengambil bentuk argumen.
+ Hal baik lainnya dari fungsi ini adalah bahwa Anda bisa mengirimkan baik string <tt>id</tt> ataupun elemen obyek itu sendiri, yang menjadikan fungsi ini sangat berguna ketika membuat fungsi lain yang juga mengambil bentuk argumen.
</p>
<h2 id="6605">Menggunakan fungsi <tt>$F()</tt></h2>
diff --git a/demos/quickstart/protected/pages/Advanced/id/Scripts2.page b/demos/quickstart/protected/pages/Advanced/id/Scripts2.page index 10ba3684..72016fbc 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Scripts2.page +++ b/demos/quickstart/protected/pages/Advanced/id/Scripts2.page @@ -51,7 +51,7 @@ Event.observe('search', 'keypress', function(event) <p id="840740" class="block-content">Prototipe mendefinisikan properti di dalam obyek event untuk beberapa dari tombol yang lebih umum, maka jangan ragu-ragu untuk mencari di sekitar Prototype guna melihat yang mana saja itu.</p>
-<p id="840741" class="block-content">Catatan terakhir pada event tekanan tombol; Jika anda ingin mendeteksi klik kiri anda bisa menggunakan <tt>Event.isLeftClick(event)</tt>.</p>
+<p id="840741" class="block-content">Catatan terakhir pada event tekanan tombol; Jika Anda ingin mendeteksi klik kiri, Anda bisa menggunakan <tt>Event.isLeftClick(event)</tt>.</p>
<h2 id="6704">Mendapatkan koordinat dari penunjuk mouse</h2>
@@ -73,9 +73,9 @@ Event.observe(document, 'mousemove', function(event) <h2 id="6706">Event, Penyatuan, dan Obyek</h2>
-<p id="840745" class="block-content">Sejauh ini semuanya sudah jelas, tapi sesuatu mulai menjadi sedikit lebih rumit ketika anda perlu bekerja dengan event dalam lingkungan obyek-terorientasi. Anda harus berhadapan dengan penyatuan dan sintaks yang terlihat aneh yang memerlukan beberapa waktu bagi anda untuk mengetahuinya.</p>
+<p id="840745" class="block-content">Sejauh ini semuanya sudah jelas, tapi sesuatu mulai menjadi sedikit lebih rumit ketika Anda perlu bekerja dengan event dalam lingkungan obyek-terorientasi. Anda harus berhadapan dengan penyatuan dan sintaks yang terlihat aneh yang memerlukan beberapa waktu bagi Anda untuk mengetahuinya.</p>
-<p id="840746" class="block-content">Mari kita lihat pada beberapa kode agar anda bisa mendapatkan pengertian yang lebih baik atas apa yang sedang saya bicarakan.</p>
+<p id="840746" class="block-content">Mari kita lihat pada beberapa kode agar Anda bisa mendapatkan pengertian yang lebih baik atas apa yang sedang saya bicarakan.</p>
<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840260">
EventDispenser = Class.create();
EventDispenser.prototype =
@@ -148,11 +148,11 @@ Setelah kita menemukan daftar item kita berhadapan dengan apa yang kita kirim ke Event.observe(item, 'click', this.showTagName.bindEvent(this));
</com:TTextHighlighter>
-<p id="840751" class="block-content">Sekarang, melihat kode di atas, anda akan mencatat fungsi <tt>bindEvent</tt>. Ini mengambil metode sebelumnya <tt>showTagName</tt> dan memperlakukannya sebagai metode yang akan dipicu ketika seseorang mengklik salah satu dari item daftar kita.</p>
+<p id="840751" class="block-content">Sekarang, melihat kode di atas, Anda akan mencatat fungsi <tt>bindEvent</tt>. Ini mengambil metode sebelumnya <tt>showTagName</tt> dan memperlakukannya sebagai metode yang akan dipicu ketika seseorang mengklik salah satu dari item daftar kita.</p>
<p id="840752" class="block-content">Anda juga akan mencatat bahwa kita mengirimkan ini sebagai argumen ke fungsi <tt>bindEvent</tt>.
Ini membolehkan kita untuk mereferensi obyek dalam konteks <tt>EventDispenser</tt>
-di dalam fungsi <tt>showTagName(event)</tt> kita. Jika fungsi <tt>showTagName</tt> memerlukan parameter tambahan, anda melampirkannya ke parameter terakhir dari <tt>bindEvent</tt>. Sebagai contoh</p>
+di dalam fungsi <tt>showTagName(event)</tt> kita. Jika fungsi <tt>showTagName</tt> memerlukan parameter tambahan, Anda melampirkannya ke parameter terakhir dari <tt>bindEvent</tt>. Sebagai contoh</p>
<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840263">
this.showTagName.bindEvent(this, param1, param2);
@@ -160,7 +160,7 @@ this.showTagName.bindEvent(this, param1, param2); showTime : function (event, param1, param2) { ... }
</com:TTextHighlighter>
-<p id="840753" class="block-content">Selanjutnya, anda akan melihat <tt>bind(this)</tt> yang dilampirkan ke fungsi iterator.
+<p id="840753" class="block-content">Selanjutnya, Anda akan melihat <tt>bind(this)</tt> yang dilampirkan ke fungsi iterator.
Ini sama sekali tidak berkaitan dengan event, ia berada di sini untuk membolehkan saya menggunakan <tt>this</tt> di dalam iterator. Jika kita tidak menggunakan <tt>bind(this)</tt>, saya tidak bisa mereferensi metode <tt>showTagName</tt> di dalam iterator.</p>
<p id="840754" class="block-content">Ok, kita berlanjut untuk melihat metode kita yang sebenarnya dipanggil saat terjadi event. Karena kita sudah berhadapan dengan <tt>showTagName</tt>, mari kita lihat itu.</p>
@@ -172,10 +172,10 @@ showTagName: function(event) }
</com:TTextHighlighter>
-<p id="840755" class="block-content">Seperti yang anda lihat, fungsi ini menerima satu argumen--event.
+<p id="840755" class="block-content">Seperti yang Anda lihat, fungsi ini menerima satu argumen--event.
Agar kita mendapatkan elemen yang memicu event kita perlu mengirimkan argumen ke <tt>Event.element</tt>. Sekarang kita dapat memanipulasinya kapan saja.</p>
-<p id="840756" class="block-content">Ini mencakup bagian yang paling membingungkan dari kode kita. Teks di atas juga relevan untuk bagian sisa dari kode kita. Jika ada sesuatu mengenai ini yang tidak anda mengerti, jangan ragu-ragu untuk mengajukan pertanyaan dalam forum.</p>
+<p id="840756" class="block-content">Ini mencakup bagian yang paling membingungkan dari kode kita. Teks di atas juga relevan untuk bagian sisa dari kode kita. Jika ada sesuatu mengenai ini yang tidak Anda mengerti, jangan ragu-ragu untuk mengajukan pertanyaan dalam forum.</p>
<h2 id="6707">Menghapus Pendengar Event</h2>
diff --git a/demos/quickstart/protected/pages/Advanced/id/Scripts3.page b/demos/quickstart/protected/pages/Advanced/id/Scripts3.page index cffe4904..4df27143 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Scripts3.page +++ b/demos/quickstart/protected/pages/Advanced/id/Scripts3.page @@ -28,9 +28,9 @@ Paket librari yang tersedia disertakan dalam Prado adalah </ul>
<p id="850761" class="block-content">Ketergantungan masing-masing librari secara otomatis dipecahkan. Komponen yang memerlukan libari tertentu juga akan secara otomatis mengambil librari yang diperlukan.
-Sebagai contoh, jika anda menambah komponen <tt>TDatePicker</tt> pada halaman, <tt>datepicker</tt> dan dependensinya akan secara otomatis disertakan pada halaman.</p>
+Sebagai contoh, jika Anda menambah komponen <tt>TDatePicker</tt> pada halaman, <tt>datepicker</tt> dan dependensinya akan secara otomatis disertakan pada halaman.</p>
-<p id="850762" class="block-content">Lihat <a href="?page=Controls.ClientScript">TClientScript</a> untuk opsi penambahan kode Javascript kustom anda ke halaman.</p>
+<p id="850762" class="block-content">Lihat <a href="?page=Controls.ClientScript">TClientScript</a> untuk opsi penambahan kode Javascript kustom Anda ke halaman.</p>
<h2 id="176028">Menerbitkan Librari Javascript sebagai Assets</h2>
<com:SinceVersion Version="3.1b" />
@@ -62,7 +62,7 @@ class MyJavascriptLib extends TComponent protected function registerScriptLoader()
{
- $dir = dirname(__FILE__).'/myscripts'; //berisi file my javascript
+ $dir = dirname(__FILE__).'/myscripts'; //berisi file javascript
$scripts = array_keys($this->_packages);
$url = $this->_manager->registerJavascriptPackages($dir, $scripts);
$this->_manager->registerScriptFile($url,$url);
diff --git a/demos/quickstart/protected/pages/Advanced/id/Security.page b/demos/quickstart/protected/pages/Advanced/id/Security.page index 0dd13aaa..2c0c765d 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Security.page +++ b/demos/quickstart/protected/pages/Advanced/id/Security.page @@ -62,7 +62,7 @@ Validasi cookie standarnya dimatikan. Untuk menghidupkannya, konfigurasi modul < </modules>
</com:TTextHighlighter>
<p id="730575" class="block-content">
-Untuk menggunakan skema validasi cookie yang disediakan oleh PRADO, anda juga perlu mengambil cookie melalui koleksi <tt>Cookies</tt> dari <tt>THttpRequest</tt> dengan menggunakan pernyataan PHP berikut,
+Untuk menggunakan skema validasi cookie yang disediakan oleh PRADO, Anda juga perlu mengambil cookie melalui koleksi <tt>Cookies</tt> dari <tt>THttpRequest</tt> dengan menggunakan pernyataan PHP berikut,
</p>
<com:TTextHighlighter CssClass="source block-content" id="code_730188">
foreach($this->Request->Cookies as $cookie)
diff --git a/demos/quickstart/protected/pages/Advanced/id/Themes.page b/demos/quickstart/protected/pages/Advanced/id/Themes.page index 418a0bee..4dcab499 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Themes.page +++ b/demos/quickstart/protected/pages/Advanced/id/Themes.page @@ -14,7 +14,7 @@ Tema adalah sebuah direktori yang terdiri dari file skin, file javascript dan fi <h2 id="5904">Menggunakan Tema</h2>
<p id="760598" class="block-content">
-Untuk menggunakan sebuah tema, anda perlu menyetel properti <tt>Theme</tt> dari halaman dengan nama tema, yaitu nama direktori tema. Anda dapat menyetelnya dalam <a href="?page=Configurations.PageConfig">konfigurasi halaman</a> atau dalam konstruktor atau metode <tt>onPreInit()</tt> dari halaman. Anda tidak bisa menyetel properti setelah <tt>onPreInit()</tt> karena saat itu, kontrol anak dari halaman sudah dibuat (skin harus diterapkan ke kontrol setelah kontrol tersebut dibuat.)
+Untuk menggunakan sebuah tema, Anda perlu menyetel properti <tt>Theme</tt> dari halaman dengan nama tema, yaitu nama direktori tema. Anda dapat menyetelnya dalam <a href="?page=Configurations.PageConfig">konfigurasi halaman</a> atau dalam konstruktor atau metode <tt>onPreInit()</tt> dari halaman. Anda tidak bisa menyetel properti setelah <tt>onPreInit()</tt> karena saat itu, kontrol anak dari halaman sudah dibuat (skin harus diterapkan ke kontrol setelah kontrol tersebut dibuat.)
</p>
<p id="760599" class="block-content">
Untuk menggunakan skin tertentu dalam tema untuk sebuah kontrol, setel properti <tt>SkinID</tt> dari kontrol dalam template seperti berikut,
@@ -23,7 +23,7 @@ Untuk menggunakan skin tertentu dalam tema untuk sebuah kontrol, setel properti <com:TButton SkinID="Blue" ... />
</com:TTextHighlighter>
<p id="760600" class="block-content">
-Ini akan menerapkan skin 'Blue' ke tombol. Catatan, nilai properti awal yang ditetapkan oleh skin 'Blue' akan mengganti setiap nilai properti tombol. Gunakan tema stylesheet jika anda tidak ingi diganti. Untuk menggunakan tema stylesheet, setel properti <tt>StyleSheetTheme</tt> dari halaman daripada <tt>Theme</tt> (anda bisa memiliki keduanya <tt>StyleSheetTheme</tt> dan <tt>Theme</tt>).
+Ini akan menerapkan skin 'Blue' ke tombol. Catatan, nilai properti awal yang ditetapkan oleh skin 'Blue' akan mengganti setiap nilai properti tombol. Gunakan tema stylesheet jika Anda tidak ingi diganti. Untuk menggunakan tema stylesheet, setel properti <tt>StyleSheetTheme</tt> dari halaman daripada <tt>Theme</tt> (Anda bisa memiliki keduanya <tt>StyleSheetTheme</tt> dan <tt>Theme</tt>).
</p>
<p id="760601" class="block-content">
Untuk menggunakan file Javascript dan file CSS yang berada dalam sebuah tema, kontrol <tt>THead</tt> harus ditempatkan pada template halaman. Ini dikarenakan tema akan meregistrasi file itu dengan halaman dan <tt>THead</tt> adalah tempat yang tepat untuk menempatkan mengambil file tersebut.
@@ -34,7 +34,7 @@ Dimungkinkan untuk menetapkan tipe media dari file CSS yang berisikan sebuah tem <h2 id="5905">Penyimpanan Tema</h2>
<p id="760603" class="block-content">
-Semua tema standarnya harus ditempatkan di bawah direktori <tt>[AppEntryPath]/themes</tt>, di mana <tt>AppEntryPath</tt> merujuk ke direktori yang berisi naskah entri aplikasi. Jika anda ingin menggunakan direktori berbeda, konfigurasi properti <tt>BasePath</tt> dan <tt>BaseUrl</tt> dari modul <tt>System.Web.UI.TThemeManager</tt> dalam konfigurasi aplikasi,
+Semua tema standarnya harus ditempatkan di bawah direktori <tt>[AppEntryPath]/themes</tt>, di mana <tt>AppEntryPath</tt> merujuk ke direktori yang berisi naskah entri aplikasi. Jika Anda ingin menggunakan direktori berbeda, konfigurasi properti <tt>BasePath</tt> dan <tt>BaseUrl</tt> dari modul <tt>System.Web.UI.TThemeManager</tt> dalam konfigurasi aplikasi,
</p>
<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_760195">
<service id="page" class="TPageService">
@@ -49,12 +49,12 @@ Semua tema standarnya harus ditempatkan di bawah direktori <tt>[AppEntryPath]/th <h2 id="5906">Membuat Tema</h2>
<p id="760604" class="block-content">
-Membuat sebuah tema melibatkan pembuatan direktori tema dan penulisan file skin (dan kemungkinan file Javascript serta CSS). Nama file skin harus diakhiri dengan <tt>.skin</tt>. Format file skin adalah sama seperti file template kontrol. Karena file skin tidak mendefinisikan penyajian hubungan leluhur-aak diantara kontrolnya, anda tidak bisa menempatkan tag komponen di dalam yang lainnya. Dan setiap teks statis antara tag komponen diabaikan. Untuk mendefinisikan skin 'Blue' seperti telah disebutkan di atas untuk <tt>TButton</tt>, tulis yang berikut dalam file skin,
+Membuat sebuah tema melibatkan pembuatan direktori tema dan penulisan file skin (dan kemungkinan file Javascript serta CSS). Nama file skin harus diakhiri dengan <tt>.skin</tt>. Format file skin adalah sama seperti file template kontrol. Karena file skin tidak mendefinisikan penyajian hubungan leluhur-aak diantara kontrolnya, Anda tidak bisa menempatkan tag komponen di dalam yang lainnya. Dan setiap teks statis antara tag komponen diabaikan. Untuk mendefinisikan skin 'Blue' seperti telah disebutkan di atas untuk <tt>TButton</tt>, tulis yang berikut dalam file skin,
</p>
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_760196">
<com:TButton SkinID="Blue" BackColor="blue" />
</com:TTextHighlighter>
<p id="760605" class="block-content">
-Seperti sudah disebutan di atas, anda dapat menyimpan beberapa skin dalam satu file skin, atau memisahkannya ke dalam beberapa file. Strategi yang umum digunakan adalah bahwa setiap file skin hanya berisi skin untuk satu tipe kontrol. Sebagai contoh, <tt>Button.skin</tt> akan berisi skin hanya untuk tipe kontrol <tt>TButton</tt>.
+Seperti sudah disebutan di atas, Anda dapat menyimpan beberapa skin dalam satu file skin, atau memisahkannya ke dalam beberapa file. Strategi yang umum digunakan adalah bahwa setiap file skin hanya berisi skin untuk satu tipe kontrol. Sebagai contoh, <tt>Button.skin</tt> akan berisi skin hanya untuk tipe kontrol <tt>TButton</tt>.
</p>
<div class="last-modified">$Id: Themes.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Configurations/id/AppConfig.page b/demos/quickstart/protected/pages/Configurations/id/AppConfig.page index e980f120..3de919e6 100644 --- a/demos/quickstart/protected/pages/Configurations/id/AppConfig.page +++ b/demos/quickstart/protected/pages/Configurations/id/AppConfig.page @@ -2,7 +2,7 @@ <h1 id="1801">Konfigurasi Aplikasi</h1>
<p id="210213" class="block-content">
-Konfigurasi aplikasi digunakan untuk menetapkan pperilaku global atas aplikasi. Ini terrmasuk spesifikasi alias path, pemakaian namespace, konfigurasi modul dan dan layanan, serta parameter.
+Konfigurasi aplikasi digunakan untuk menetapkan perilaku global atas aplikasi. Ini terrmasuk spesifikasi alias path, pemakaian namespace, konfigurasi modul dan dan layanan, serta parameter.
</p>
<p id="210214" class="block-content">
Konfigurasi untuk aplikasi disimpan dalam sebuah file XML bernama <tt>application.xml</tt>, yang harus ditempatkan di bawah path basis aplikasi. Formatnya ditampilkan berikut ini. Spesifikasi lengkap dari konfigurasi aplikasi dapat ditemukan dalam file <a href="<%~../../../../../../docs/specs/application.dtd%>">DTD</a> dan <a href="<%~../../../../../../docs/specs/application.xsd%>">XSD</a>.
@@ -34,14 +34,14 @@ Konfigurasi untuk aplikasi disimpan dalam sebuah file XML bernama <tt>applicatio <li>Elemen <tt><modules></tt> berisi konfigurasi untuk daftar modul. Setiap modul ditetapkan dengan elemen <tt><module></tt>. Setiap modul diidentifikasi secara unik oleh atribut <tt>id</tt> dan tipe <tt>class</tt>. Pasangan <tt>PropertyName="PropertyValue"</tt> menetapkan nilai awal untuk properti modul.</li>
-<li>Elemen <tt><parameters></tt> berisi daftar parameter level-aplikasi yang dapat diakses dari mana saja dalam aplikasi. Anda bisa menetapkan parameter tipe-komponen seperti menetapkan modul, atau anda bisa menetapkan parameter tipe-string yang merupakan format lebih sederhana seperti berikut,
+<li>Elemen <tt><parameters></tt> berisi daftar parameter level-aplikasi yang dapat diakses dari mana saja dalam aplikasi. Anda bisa menetapkan parameter tipe-komponen seperti menetapkan modul, atau Anda bisa menetapkan parameter tipe-string yang merupakan format lebih sederhana seperti berikut,
<com:TTextHighlighter Language="xml" CssClass="source block-content" id="code_210096">
<parameter id="ParameterID" value="ParameterValue" />
</com:TTextHighlighter>
Catatan, jika atribut <tt>value</tt> tidak ditetapkan, seluruh parameter XML node (dari tipe <tt>TXmlElement</tt>) akan dikembalikan sebagai nilai parameter. Sebagai tambahan, modul <tt>System.Util.TParameterModule</tt> menyediakan satu cara untuk mengambil parameter dari file XML eksternal. Lihat lebih jelasnya dalam dokumentasi API.
</li>
-<li>Elemen <tt><include></tt> membolehkan seseorang menyertakan file konfigurasi eksternal. Ia sudah diperkenalkan sejak v3.1.0. Atribut <tt>file</tt> menetapkan file konfigurasi eksternal dalam format namespace. Nama ekstensi dari file harus <tt>.xml</tt>. Atribut <tt>when</tt> berisi ekspresi PHP dan opsional (standarnya true). Hanya ketika ekspresi mengevaluasi true, file konfigurasi eksternal akan disertakan. Konteks ekspresi adalah aplikasi, misalnya <tt>$this</tt> dalam ekspresi akan merujuk ke obyek aplikasi.
+<li>Elemen <tt><include></tt> membolehkan seseorang menyertakan file konfigurasi eksternal. Sudah diperkenalkan sejak v3.1.0. Atribut <tt>file</tt> menetapkan file konfigurasi eksternal dalam format namespace. Nama ekstensi dari file harus <tt>.xml</tt>. Atribut <tt>when</tt> berisi ekspresi PHP dan opsional (standarnya true). Hanya ketika ekspresi mengevaluasi true, file konfigurasi eksternal akan disertakan. Konteks ekspresi adalah aplikasi, misalnya <tt>$this</tt> dalam ekspresi akan merujuk ke obyek aplikasi.
</li>
<li>Elemen <tt><services></tt> mirip dengan elemen <tt><modules></tt>. Ia sebagian besar menetapkan layanan yang disediakan oleh aplikasi. Di dalam elemen <tt><service></tt>, seseorang dapat memiliki salah satu elemen di atas. Ini akan efektif hanya ketika layanan terkait sedang diminta.</li>
@@ -53,7 +53,7 @@ File konfigurasi eksternal mempunyai format yang sama seperti dijelaskan di atas </p>
<p id="210216" class="block-content">
-Standarnya tanpa konfigurasi eksplisit, aplikasi PRADO akan mengambil beberapa modul inti, seperti <tt>THttpRequest</tt>, <tt>THttpResponse</tt>, dll. Ia juga akan menyediakan <tt>TPageService</tt> sebagai layanan standar. Konfigurasi dan penggunaan modul serta layanan ini tercakup dalam seksi individual pada tutorial ini. Catatan, jika aplikasi anda mengambil setelan standar untuk modul dan layanan ini, anda tidak perlu menyediakan konfigurasi aplikasi. Akan tetapi, jika modul atau layanan ini tidak mencukupi, atau anda ingin menghubah perilakunya dengan mengkonfigurasi nilai propertinya, anda memerlukan konfigurasi aplikasi.
+Standarnya tanpa konfigurasi eksplisit, aplikasi PRADO akan mengambil beberapa modul inti, seperti <tt>THttpRequest</tt>, <tt>THttpResponse</tt>, dll. Ia juga akan menyediakan <tt>TPageService</tt> sebagai layanan standar. Konfigurasi dan penggunaan modul serta layanan ini tercakup dalam seksi individual pada tutorial ini. Catatan, jika aplikasi Anda mengambil setelan standar untuk modul dan layanan ini, Anda tidak perlu menyediakan konfigurasi aplikasi. Akan tetapi, jika modul atau layanan ini tidak mencukupi, atau Anda ingin menghubah perilakunya dengan mengkonfigurasi nilai propertinya, Anda memerlukan konfigurasi aplikasi.
</p>
<div class="last-modified">$Id: AppConfig.page 1695 2007-02-13 14:16:09Z xue $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Configurations/id/Templates1.page b/demos/quickstart/protected/pages/Configurations/id/Templates1.page index 4c5fd388..23392815 100644 --- a/demos/quickstart/protected/pages/Configurations/id/Templates1.page +++ b/demos/quickstart/protected/pages/Configurations/id/Templates1.page @@ -66,10 +66,10 @@ Tag kontrol template digunakan untuk mengkonfigurasi nilai properti awal dari ko Seperti dalam tag komponen, <tt>PropertyName</tt> adalah tidak sensitif-huruf dan bisa berupa nama properti atau subproperti.
</p>
<p id="180175" class="block-content">
-Nilai awal yang ditetapkan melalui tag kontrol template ditempatkan ke properti terkait saat kontrol template dibentuk. Oleh karena itu, anda dapat mengganti nilai properti ini dalam langkah berikutnya, seperti tahap <tt>Init</tt> dari kontrol.
+Nilai awal yang ditetapkan melalui tag kontrol template ditempatkan ke properti terkait saat kontrol template dibentuk. Oleh karena itu, Anda dapat mengganti nilai properti ini dalam langkah berikutnya, seperti tahap <tt>Init</tt> dari kontrol.
</p>
<p id="180176" class="block-content">
-Tag kontrol template adalah opsional dalam sebuah template. Setiap template dapat berisi paling banyak satu tag kontrol template. Anda dapat menempatkan tag kontrol template di mana saja di dalam template. Direkomendasikan bahwa anda menempatkannya di awal template untuk visibilitas lebih baik.
+Tag kontrol template adalah opsional dalam sebuah template. Setiap template dapat berisi paling banyak satu tag kontrol template. Anda dapat menempatkan tag kontrol template di mana saja di dalam template. Direkomendasikan bahwa Anda menempatkannya di awal template untuk visibilitas lebih baik.
</p>
<a name="cot"></a>
@@ -97,7 +97,7 @@ Sejak versi 3.0.5, PRADO mulai mendukung penyertaan template eksternal. Ini dila Template eksternal akan disisipkan di tempat di mana tag include terjadi dalam basis template.
</p>
<p id="180180" class="block-content">
-Catatan, pengulangan penyertaan template tidak didukung, misalnya anda tidak dapat mempunyai tag include di dalam template eksternal.
+Catatan, pengulangan penyertaan template tidak didukung, misalnya Anda tidak dapat mempunyai tag include di dalam template eksternal.
</p>
<div class="last-modified">$Id: Templates1.page 1902 2007-05-07 04:17:37Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Configurations/id/Templates2.page b/demos/quickstart/protected/pages/Configurations/id/Templates2.page index 2c7c5488..03e7f07f 100644 --- a/demos/quickstart/protected/pages/Configurations/id/Templates2.page +++ b/demos/quickstart/protected/pages/Configurations/id/Templates2.page @@ -69,7 +69,7 @@ Catatan, parameter aplikasi biasanya didefinisikan konfigurasi aplikasi atau kon <a name="at"></a>
<h3 id="1607">Tag Asset</h3>
<p id="190190" class="block-content">
-Tag asset dipakai untuk mempublikasikan file pribadi dan menampilkan URL terkait. Sebagai contoh, jika anda mempunyai file gambar yang tidak bisa diakses Web dan anda ingin menjadikannya terlihat bagi pengguna-akhir, anda dapat menggunakan tag asset untuk mempublikasikan file ini dan menampilkan URL ke pengguna-akhir agar mereka dapat mengambil gambar yang dipublikasikan.
+Tag asset dipakai untuk mempublikasikan file pribadi dan menampilkan URL terkait. Sebagai contoh, jika Anda mempunyai file gambar yang tidak bisa diakses Web dan Anda ingin menjadikannya terlihat bagi pengguna-akhir, Anda dapat menggunakan tag asset untuk mempublikasikan file ini dan menampilkan URL ke pengguna-akhir agar mereka dapat mengambil gambar yang dipublikasikan.
</p>
<p id="190191" class="block-content">
Format tag asset adalah sebagai berikut,
@@ -81,7 +81,7 @@ Format tag asset adalah sebagai berikut, di mana <tt>LocalFileName</tt> merujuk ke path file yang relatif ke direktori yang berisi file template saat ini. Path file bisa berupa file tunggal atau sebuah direktori. Jika direktori, konten dalam seluruh direktori akan dibuat dapat diakses oleh pengguna-akhir.
</p>
<p id="190193" class="block-content">
-HARAP SANGAT BERHATI-HATI ketika anda menggunakan tag asset karena ia dapat memperlihatkan ke pengguna-akhir file yang tidak ingin anda perlihatkan kepada mereka.
+HARAP SANGAT BERHATI-HATI ketika Anda menggunakan tag asset karena ia dapat memperlihatkan ke pengguna-akhir file yang tidak ingin Anda perlihatkan kepada mereka.
</p>
<a name="lot"></a>
diff --git a/demos/quickstart/protected/pages/Configurations/id/Templates3.page b/demos/quickstart/protected/pages/Configurations/id/Templates3.page index f900f72c..eb67f962 100644 --- a/demos/quickstart/protected/pages/Configurations/id/Templates3.page +++ b/demos/quickstart/protected/pages/Configurations/id/Templates3.page @@ -4,7 +4,7 @@ <a name="dpt"></a>
<h2 id="1702">Tag Properti Dinamis</h2>
<p id="200196" class="block-content">
-Tag properti dinamis sangat mirip dengan tag konten dinamis, kecuali bahwa ia berlaku untuk properti komponen. Kegunaan tag properti dinamis adalah untuk membolehkan konfigurasi properti komponen lebih serba guna. Catatan, anda tidak perlu memakai tag properti dinamis karena apa yang bisa dikerjakan oleh tag properti dinamis juga bisa dilakukan dalam kode PHP. Akan tetapi, menggunakan tag properti dinamis membawa anda jauh lebih nyaman saat menyempurnakan tugas yang sama. Pemakaian dasar dari tag properti dinamis adalah sebagai berikut,
+Tag properti dinamis sangat mirip dengan tag konten dinamis, kecuali bahwa ia berlaku untuk properti komponen. Kegunaan tag properti dinamis adalah untuk membolehkan konfigurasi properti komponen lebih serba guna. Catatan, Anda tidak perlu memakai tag properti dinamis karena apa yang bisa dikerjakan oleh tag properti dinamis juga bisa dilakukan dalam kode PHP. Akan tetapi, menggunakan tag properti dinamis membawa Anda jauh lebih nyaman saat menyempurnakan tugas yang sama. Pemakaian dasar dari tag properti dinamis adalah sebagai berikut,
</p>
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200087">
<com:ComponentType PropertyName=DynamicPropertyTag ...>
@@ -12,7 +12,7 @@ body content </com:ComponentType>
</com:TTextHighlighter>
<p id="200197" class="block-content">
-di mana anda dapat mengurung <tt>DynamicPropertyTag</tt> di dalam tanda kutip tunggal atau dua agar pembacaannya lebih baik.
+di mana Anda dapat mengurung <tt>DynamicPropertyTag</tt> di dalam tanda kutip tunggal atau dua agar pembacaannya lebih baik.
</p>
<p id="200198" class="block-content">
Seperti tag konten dinamis, kami mempunyai <a href="#et">tag ekspresi</a>, <a href="#dt">tag databind</a>, <a href="#pt">tag parameter</a>, <a href="#at">tag asset</a> dan <a href="#lot">tag lokalisasi</a>. (Catatan, tidak ada tag pernyataan di sini.)
@@ -45,7 +45,7 @@ Format tag databind adalah sebagai berikut, <%# PhpExpression %>
</com:TTextHighlighter>
<p id="200203" class="block-content">
-Sejak v3.0.2, tag ekspresi dan tag databind dapat direkatkan di dalam string statis. Sebagai contoh, anda bisa menulis yang berikut dalam template,
+Sejak v3.0.2, tag ekspresi dan tag databind dapat direkatkan di dalam string statis. Sebagai contoh, Anda bisa menulis yang berikut dalam template,
</p>
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200091">
<com:TLabel>
@@ -56,7 +56,7 @@ Sejak v3.0.2, tag ekspresi dan tag databind dapat direkatkan di dalam string sta </com:TLabel>
</com:TTextHighlighter>
<p id="200204" class="block-content">
-Sebelumnya, anda harus menggunakan ekspresi tunggal dengan penggabungan string untuk mendapatkan efek yang sama.
+Sebelumnya, Anda harus menggunakan ekspresi tunggal dengan penggabungan string untuk mendapatkan efek yang sama.
</p>
<a name="pt"></a>
@@ -74,7 +74,7 @@ Catatan, parameter aplikasi biasanya didefinisikan konfigurasi aplikasi atau kon <a name="at"></a>
<h3 id="1706">Tag Asset</h3>
<p id="200207" class="block-content">
-Tag asset dipakai untuk mempublikasikan file pribadi dan menampilkan URL terkait. Sebagai contoh, jika anda mempunyai file gambar yang tidak bisa diakses Web dan anda ingin menjadikannya terlihat bagi pengguna-akhir, anda dapat menggunakan tag asset untuk mempublikasikan file ini dan menampilkan URL ke pengguna-akhir agar mereka dapat mengambil gambar yang dipublikasikan. Tag asset dievaluasi ketika template diberi contoh.
+Tag asset dipakai untuk mempublikasikan file pribadi dan menampilkan URL terkait. Sebagai contoh, jika Anda mempunyai file gambar yang tidak bisa diakses Web dan Anda ingin menjadikannya terlihat bagi pengguna-akhir, Anda dapat menggunakan tag asset untuk mempublikasikan file ini dan menampilkan URL ke pengguna-akhir agar mereka dapat mengambil gambar yang dipublikasikan. Tag asset dievaluasi ketika template diberi contoh.
</p>
<p id="200208" class="block-content">
Format tag asset adalah sebagai berikut,
@@ -86,13 +86,13 @@ Format tag asset adalah sebagai berikut, di mana <tt>LocalFileName</tt> merujuk ke path file yang relatif ke direktori yang berisi file template saat ini. Path file bisa berupa file tunggal atau sebuah direktori. Jika direktori, konten dalam seluruh direktori akan dibuat dapat diakses oleh pengguna-akhir.
</p>
<p id="200210" class="block-content">
-HARAP SANGAT BERHATI-HATI ketika anda menggunakan tag asset karena ia dapat memperlihatkan ke pengguna-akhir file yang tidak ingin anda perlihatkan kepada mereka.
+HARAP SANGAT BERHATI-HATI ketika Anda menggunakan tag asset karena ia dapat memperlihatkan ke pengguna-akhir file yang tidak ingin Anda perlihatkan kepada mereka.
</p>
<a name="lot"></a>
<h3 id="1707">Tag Lokalisasi</h3>
<p id="200211" class="block-content">
-Tag lokalisasi mewakili teks yang dilokalisasi. Formatnya adalah sebagai berikut,
+Tag lokalisasi mewakili teks yang dilokalisir. Formatnya adalah sebagai berikut,
</p>
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_200094">
<%[string]%>
diff --git a/demos/quickstart/protected/pages/Configurations/id/UrlMapping.page b/demos/quickstart/protected/pages/Configurations/id/UrlMapping.page index 2f36e674..8c918000 100644 --- a/demos/quickstart/protected/pages/Configurations/id/UrlMapping.page +++ b/demos/quickstart/protected/pages/Configurations/id/UrlMapping.page @@ -73,7 +73,7 @@ dan "<tt>\d+</tt>" (1 atau lebih digit). Intinya, nama dan nilai atribut <tt>Parameters</tt> digunakan sebagai substrings dalam penggantian tempat pada string <tt>Pattern</tt> untuk membentuk string ekspresi reguler lengkap.
</p>
-<div class="note"><b class="tip">Catatan:</b> Jika anda bermaksud untuk menggunakan properti <tt>RegularExpression</tt> anda perlu mengulang garis miring dalam ekspresi reguler.
+<div class="note"><b class="tip">Catatan:</b> Jika Anda bermaksud untuk menggunakan properti <tt>RegularExpression</tt> Anda perlu mengulang garis miring dalam ekspresi reguler.
</div>
<p id="230230" class="block-content">Berikut dari contoh pola di atas,
diff --git a/demos/quickstart/protected/pages/Database/id/ActiveRecord.page b/demos/quickstart/protected/pages/Database/id/ActiveRecord.page index a779a1da..a171ed7d 100644 --- a/demos/quickstart/protected/pages/Database/id/ActiveRecord.page +++ b/demos/quickstart/protected/pages/Database/id/ActiveRecord.page @@ -19,20 +19,20 @@ seperti membuat, membaca, memutakhirkan, dan menghapus. Derivasi dan validasi didasarkan pada satu rekaman yang bekerja denga baik dalam struktur ini. Rekaman Aktif mempunyai kuntungan utama dalam hal kesederhanaan. Mudah untuk membangun Rekaman Aktif, dan mudah untuk dimengerti.</p> - <p id="690480" class="block-content">Akan tetapi, seiring dengan perkembangan logika bisnis anda dalm hal kompleksitas, anda akan segera ingin menggunakan hubungan langsung obyek anda, koleksi, turunan, dan seterusnya. Ini tidak mudah diterapkan ke dalam Rekaman Aktif, dan menambahkannya sedikit demi sedikit menjadi sangat kacau. + <p id="690480" class="block-content">Akan tetapi, seiring dengan perkembangan logika bisnis Anda dalm hal kompleksitas, Anda akan segera ingin menggunakan hubungan langsung obyek Anda, koleksi, turunan, dan seterusnya. Ini tidak mudah diterapkan ke dalam Rekaman Aktif, dan menambahkannya sedikit demi sedikit menjadi sangat kacau. Argumen lain terhadap Rekaman Aktif adalah kenyataan bahwa ia menyandingkan desin obyek ke desain database. Ini menjadikannya lebih sulit untuk merefraktorisasi karena proyek terus berjalan.</p> <p id="690481" class="block-content">Alternatifnya adalah menggunakan Pemeta Data yang yang memisahkan aturan dari obyek bisnis dan bagaimana obyek ini disimpan. Prado menyediakan pilihan tambahan antara Rekaman Aktif dan <a href="?page=Database.SqlMap">Pemeta Data SqlMap</a>. Pemeta Data SqlMap bisa dipakai untuk mengambil obyek Rekaman Aktif, hasilnya; obyek Rekaman Aktif ini bisa dipakai untuk memutakhirkan database. - "Hubungan" andara Rekaman Aktif dan <a href="?page=Database.SqlMap">SqlMap</a> digambarkan dalam diagram berikut. Lebih rinci mengenai Pemeta Data SqlMap dapat ditemukan dalam + "Hubungan" antara Rekaman Aktif dan <a href="?page=Database.SqlMap">SqlMap</a> digambarkan dalam diagram berikut. Lebih rinci mengenai Pemeta Data SqlMap dapat ditemukan dalam <a href="http://www.pradosoft.com/demos/sqlmap/">Manual SqlMap</a>. <img src=<%~ sqlmap_active_record.png %> alt="Rekaman Aktif dan SqlMap DataMapper" id="fig:diagram.png" class="figure"/> </p> <p id="690482" class="block-content"> - Kelas Rekaman Aktif mempunyai fungsionalitas untuk melakukan tugas-tugas berikut. + Kelas Rekaman Aktif berfungsi untuk melakukan tugas-tugas berikut. </p> <ul id="u1" class="block-content"> <li>Membuat, Mengambil, Memutakhirkan dan Menghapus rekaman.</li> @@ -42,15 +42,15 @@ </ul> <h2>Implikasi Desain</h2> <p> -Implementasi Prado terhadap Rekaman Aktif tidak memelihara identitas referensial. Setiap obyek diperoleh menggunakan Rekaman Aktif pada data dalam database. Sebagai contoh, jika anda meminta kustomer tertentu dan mendapatkan kembali obyek <tt>Customer</tt>, kali berikutnya anda meminta kustomer itu, anda akan kembali mendapatkan turunan lain dari obyek <tt>Customer</tt>. Ini berarti bahwa perbandingan tepat (misalnya menggunakan <tt>===</tt>) akan mengembalikan false, sementara perbandingan bebas (misalnya menggunakan <tt>==</tt>) akan mengembalikan true jika nilai obyek sama menurut perbandingan bebas. +Implementasi Prado terhadap Rekaman Aktif tidak memelihara identitas referensial. Setiap obyek diperoleh menggunakan Rekaman Aktif pada data dalam database. Sebagai contoh, jika Anda meminta kustomer tertentu dan mendapatkan kembali obyek <tt>Customer</tt>, kali berikutnya Anda meminta kustomer itu, Anda akan kembali mendapatkan turunan lain dari obyek <tt>Customer</tt>. Ini berarti bahwa perbandingan tepat (misalnya menggunakan <tt>===</tt>) akan mengembalikan false, sementara perbandingan bebas (misalnya menggunakan <tt>==</tt>) akan mengembalikan true jika nilai obyek sama menurut perbandingan bebas. <p> <p> Implikasi desain ini terkait dengan pertanyaan berikut. <i>"Anda pikir kustomer sebagai obyek, di mana hanya satu, -atau anda pikir obyek yang anda operasikan sebagai <b>duplikat</b> dari database?"</i> +atau Anda pikir obyek yang Anda operasikan sebagai <b>duplikat</b> dari database?"</i> Pemetaan O/R lain akan mengartikan bahwa hanya ada satu obyek Kustomer dengan custID 100, dan secara literal ia adalah kustomer. -Jika anda mendapatkan kustomer dan mengubah field-nya, maka anda sekarang telah mengubah kustomer itu. -<i>"Itu berbatasan dengan: anda telah mengubah duplikat kustomer ini, tapi bukan pada duplikat itu. +Jika Anda mendapatkan kustomer dan mengubah field-nya, maka Anda sekarang telah mengubah kustomer itu. +<i>"Itu berbatasan dengan: Anda telah mengubah duplikat kustomer ini, tapi bukan pada duplikat itu. Dan jika dua orang memutakhirkan kustomer pada dua duplikat obyek, siapapun yang memutakhirkan pertama kali, atau mungkin yang terakhir yang menang."</i> [A. Hejlsberg 2003] </p> @@ -101,10 +101,10 @@ class UserRecord extends TActiveRecord </com:TTextHighlighter> </p> <p id="690485" class="block-content">Setiap kolom dari tabel "<tt>users</tt>" harus mempunyai properti terkait atas nama yang sama seperti nama kolom dalam kelas <tt>UserRecord</tt>. - Tentunya, anda juga mendefinisikan variabel atau properti tambahan yang tidak ada dalam struktur tabel. + Tentunya, Anda juga mendefinisikan variabel atau properti tambahan yang tidak ada dalam struktur tabel. Konstan kelas <tt>TABLE</tt> adalah opsional saat nama kelas adalah sama seperti nama tabel dalam database, sebaliknya <tt>TABLE</tt> harus - menetapkan nama tabel yang terkait dengan kelas Rekaman Aktif anda. + menetapkan nama tabel yang terkait dengan kelas Rekaman Aktif Anda. </p> <div class="tip"><b class="note">Tip:</b> @@ -112,7 +112,7 @@ Anda dapat menetapkan nama-nama tabel yang memenuhi syarat. Contohnya untuk MySQ </div> <p class="block-content" id="ar_as_component"> - Karena <tt>TActiveRecord</tt> memperluas <tt>TComponent</tt>, metode penentu dan pengambil dapat didefinisikan guna membolehkan kontrol melalui bagaimana variabel disetel dan dikembalikan. Sebagai contoh, menambah properti <tt>$level</tt> untuk menggunakan kelas UserRecord: + Karena <tt>TActiveRecord</tt> memperluas <tt>TComponent</tt>, metode penyetel dan pengambil dapat didefinisikan guna membolehkan kontrol melalui bagaimana variabel disetel dan dikembalikan. Sebagai contoh, menambah properti <tt>$level</tt> untuk menggunakan kelas UserRecord: </p> <com:TTextHighlighter Language="php" CssClass="source block-content" id="code_690149"> class UserRecord extends TActiveRecord { @@ -155,7 +155,7 @@ $conn = new TDbConnection($dsn, 'dbuser','dbpass'); TActiveRecordManager::getInstance()->setDbConnection($conn); </com:TTextHighlighter> -<p id="710011" class="block-content">Alternatifnya, anda dapat membuat basis kelas dan mengganti metode <tt>getDbConnection()</tt> untuk mengembalikan +<p id="710011" class="block-content">Alternatifnya, Anda dapat membuat basis kelas dan mengganti metode <tt>getDbConnection()</tt> untuk mengembalikan koneksi database. Ini adalah cara sederhana untuk mengijinkan koneksi database multipel. Kode berikut mendemonstrasikan penetapan koneksi database dalam sebuah basis kelas (tidak perlu menyetel koneksi DB di manapun juga). </p> <com:TTextHighlighter Language="php" CssClass="source block-content"> @@ -196,7 +196,7 @@ class MyDb2Record extends TActiveRecord </modules> </com:TTextHighlighter> <div class="tip"><b class="note">Tip:</b> - Atribut <tt>EnableCache</tt> ketika disetel ke "true" akan melakukan cache meta data tabel, yakni nama kolom tabel, indeks dan batasan yang disimpan dalam cache dan dipakai ulang. Anda harus membersihkan atau mematikan cache jika anda ingin melihat perubahan terhadap definisi tabel anda. <a href="?page=Advanced.Performance#6402">Modul cache</a> juga harus didefinisikan agar cache berfungsi. + Atribut <tt>EnableCache</tt> ketika disetel ke "true" akan melakukan cache meta data tabel, yakni nama kolom tabel, indeks dan batasan yang disimpan dalam cache dan dipakai ulang. Anda harus membersihkan atau mematikan cache jika Anda ingin melihat perubahan terhadap definisi tabel Anda. <a href="?page=Advanced.Performance#6402">Modul cache</a> juga harus didefinisikan agar cache berfungsi. </div> </p> @@ -369,7 +369,7 @@ $user2->save(); //sisipkan rekaman baru </com:TTextHighlighter> <div class="tip"><b class="note">Tip:</b> Obyek dimutakhirkan dengan kunci primer dari tabel itu yang berisi definisi yang secara otomatis membuat kunci primer untuk rekaman yang baru saja disisipkan. -Sebagai contoh, jika anda menyisipkan sebuah rekaman baru ke dalam tabel MySQL yang kolomnya didefinisikan dengan "autoincrement", obyek Rekaman Aktif akan dimutakhirkan dengan nilai yang ditambahkan.</div> +Sebagai contoh, jika Anda menyisipkan sebuah rekaman baru ke dalam tabel MySQL yang kolomnya didefinisikan dengan "autoincrement", obyek Rekaman Aktif akan dimutakhirkan dengan nilai yang ditambahkan.</div> <p id="690500" class="block-content"> Untuk memutakhirkan rekaman dalam database, cukup ubah satu atau lebih properti obyek Rekaman Aktif yang sudah diambil dari database dan kemudian panggil metode <tt>save()</tt>. @@ -387,7 +387,7 @@ Obyek Rekaman Aktif mempunyai masa-hidup sederhana seperti digambarkan dalam dia <img src=<%~ object_states.png %> alt="Active Records Life Cycle" id="fig:cycle.png" class="figure"/> <p id="690501" class="block-content"> Kita melihat bahwa obyek TActiveRecord baru dibuat dengan menggunakan salah satu metode <tt>find*()</tt> ataupun membuat turunan baru dengan menggunakan kata kunci PHP <tt>new</tt>. Obyek yang dibuat dengan metode <tt>find*()</tt> dimulai dengan kondisi <tt>clean</tt>. Turunan baru TActiveRecord membuat selain metode <tt>find*()</tt> yang dimulai dengan kondisi <tt>new</tt>. -Kapan saja anda memanggil metode <tt>save()</tt> pada obyek TActiveRecord, obyek memasuki keadaan <tt>clean</tt>. Obyek dalam <tt>clean</tt> menjadi <tt>dirty</tt> ketika satu atau lebih keadaan internalnya diubah. Pemanggilan metode <tt>delete()</tt> pada obyek mengakhiri masa-hidup obyek, tidak ada aksi lanjutan yang dilakukan pada obyek. +Kapan saja Anda memanggil metode <tt>save()</tt> pada obyek TActiveRecord, obyek memasuki keadaan <tt>clean</tt>. Obyek dalam <tt>clean</tt> menjadi <tt>dirty</tt> ketika satu atau lebih keadaan internalnya diubah. Pemanggilan metode <tt>delete()</tt> pada obyek mengakhiri masa-hidup obyek, tidak ada aksi lanjutan yang dilakukan pada obyek. </p> <h2 id="138052">Menghapus rekaman yang sudah ada</h2> @@ -517,7 +517,7 @@ Dalam bagian berikut kita akan menganggap hubungan tabel antara Ada ketidak cocokan antara hubungan dengan obyek dan hubungan tabel. Pertama, ada perbedaan dalam penyajian. Penghubung kendali obyek dengen menyimpan referensi yang dipegang oleh lingkungan memori-teratur runtime. Database relasional menangani kaitan dengan membentuk sebuah kunci ke dalam tabel lainnya. Keuda, obyek dapat dengan mudah menggunakan koleksi guna menangani multipel referensi dari satu field, sementara normalisasi memaksa seluruh relasi entitas mengaitkan ke nilai tunggal. Ini menyebabkan pembalikan struktur data antara obyek dan tabel. Pendekatan yang diambil dalam desain Rekaman Aktif Prado adalah untuk menggunakan batasan kunci asing guna memperoleh hubungan obyek. Ini berarti bahwa database di bawahnya harus mendukung batasan kunci asing. </p> <div class="tip"><b class="note">Tip:</b> -Untuk database SQLite, anda dapat membuat tabel yang mendefinisikan batasan kunci asing seperti contoh di bawah ini. Akan tetapi, batasan ini <b>TIDAK</b> +Untuk database SQLite, Anda dapat membuat tabel yang mendefinisikan batasan kunci asing seperti contoh di bawah ini. Akan tetapi, batasan ini <b>TIDAK</b> dipaksakan oleh database SQLite itu sendiri. <com:TTextHighlighter Language="sql" CssClass="source block-content"> CREATE TABLE foo @@ -603,7 +603,7 @@ Ini berlaku untuk hubungan termasuk <tt>BELONGS_TO</tt>, <tt>HAS_ONE</tt> dan <tt>HAS_MANY</tt>. Lihat seksi <a href="#142021">Tabel Asosiaasi Merujuk Dirinya Sendiri</a> untuk memecahkan kerancuan atas hubungan <tt>MANY_TO_MANY</tt>. </div> -<p id="710023" class="block-content">Hubungan "has many" tidak diambil secara otomatis ketika anda menggunakan salah satu metode finder Rekaman Aktif. +<p id="710023" class="block-content">Hubungan "has many" tidak diambil secara otomatis ketika Anda menggunakan salah satu metode finder Rekaman Aktif. Anda perlu untuk mengambil secara eksplisit obyek terkait seperti berikut. Dalam kode di bawah ini, kedua baris adalah sama dan nama metode tidak sensitif huruf. </p> <com:TTextHighlighter Language="php" CssClass="source block-content"> @@ -739,7 +739,7 @@ class Category extends TActiveRecord <h2 id="142013">Pemetaan Tabel Asosiasi</h2> <p id="710032" class="block-content"> -Obyek dapat dengan mudah menangani field multi nilai dengan menggunakan koleksi sebagai nilai field. Database relasional tidak memiliki fitur ini dan dibatasi hanya ke field nilai-tunggal. Ketika anda memetakan asosiasi satu-ke-banyak, anda bisa menangani ini menggunakan hubungan <b>has many</b>, intinya menggunakan kunci asing untuk nilai-tunggal akhir dari asosiasi. Tapi asosiasi banyak-ke-banyak tidak bisa melakukan ini karena tidak ada nilai-tunggal akhir ke kunci asing yang dipegangnya. +Obyek dapat dengan mudah menangani field multi nilai dengan menggunakan koleksi sebagai nilai field. Database relasional tidak memiliki fitur ini dan dibatasi hanya ke field nilai-tunggal. Ketika Anda memetakan asosiasi satu-ke-banyak, Anda bisa menangani ini menggunakan hubungan <b>has many</b>, intinya menggunakan kunci asing untuk nilai-tunggal akhir dari asosiasi. Tapi asosiasi banyak-ke-banyak tidak bisa melakukan ini karena tidak ada nilai-tunggal akhir ke kunci asing yang dipegangnya. </p> <p id="710033" class="block-content"> Jawabannya adalah resolusi klasik yang telah dipakai oleh orang selama dekade ini yakni: buat tabel ekstra (tabel asosiasi) untuk merekam asosiasi. @@ -747,9 +747,9 @@ Ide dasarnya adalah menggunakan tabel asosiasi untuk menyimpan asosiasi. Tabel i </p> <p id="710034" class="block-content"> Tabel asosiasi tidak mempunyai kaitan obyek dalam-memori dan kunci primernya adalah gabungan dari dua kunci primer dari tabel yang diasosiasikan. -Dalam batasan yang sederhana, tuntuk mengambil data dari tabel asosiasi, anda melakukan dua query (secara umum, ini juga bisa dicapai menggunakan satu query yang terdiri dari join). +Dalam batasan yang sederhana, tuntuk mengambil data dari tabel asosiasi, Anda melakukan dua query (secara umum, ini juga bisa dicapai menggunakan satu query yang terdiri dari join). Anggap pengambilan koleksi <tt>SkillRecord</tt> untuk daftar obyek <tt>PlayerRecord</tt>. -Dalam hal ini, anda melakukan query dalam dua tahap. Tahap pertama meng-query tabel <tt>Players</tt> untuk mencari seluruh baris dari pemain yang anda inginkan. Tahap kedua mencari obyek <tt>SkillRecord</tt> ID pemain terkait untuk setiap barisnya dalam tabel asosiasi <tt>Player_Skills</tt> menggunakan sebuah inner join. +Dalam hal ini, Anda melakukan query dalam dua tahap. Tahap pertama meng-query tabel <tt>Players</tt> untuk mencari seluruh baris dari pemain yang Anda inginkan. Tahap kedua mencari obyek <tt>SkillRecord</tt> ID pemain terkait untuk setiap barisnya dalam tabel asosiasi <tt>Player_Skills</tt> menggunakan sebuah inner join. </p> <p id="710035" class="block-content">Desain Rekaman Aktif Prado mengimplementasikan dua tahap pendekatan. Untuk hubungan entitas <tt>Players</tt>-<tt>Skills</tt> M-N (many-to-many), kita perlu mendefinisikan sebuah hubungan <b>has many</b> dalam kelas <tt>PlayerRecord</tt> dan sebagai tambahan mendefinisikan hubungan <b>has many</b> dalam kelas <tt>SkillRecord</tt> juga. @@ -883,10 +883,10 @@ PlayerSkillAssocation::finder()->deleteByPk(array('fk1','fk2')); <h2 id="142015">Pengambilan Malas Obyek Terkait</h2> <div class="note"><b class="note">Catatan:</b> -Secara implisit mendeklarasikan properti terkait yang diperkenalkan dalam versi 3.1.2 secara otomatis memiliki fitur pengambilan malas. Oleh karena itu, teknik pengambilan malas dijelaskan berikut ini tidak lagi diperlukan dalam banyak kasus, kecuali anda ingin memanipulasi obyek terkait melalui pengambil/penyetel. +Secara implisit mendeklarasikan properti terkait yang diperkenalkan dalam versi 3.1.2 secara otomatis memiliki fitur pengambilan malas. Oleh karena itu, teknik pengambilan malas dijelaskan berikut ini tidak lagi diperlukan dalam banyak kasus, kecuali Anda ingin memanipulasi obyek terkait melalui pengambil/penyetel. </div> -<p id="710045" class="block-content">Menggunakan metode <tt>with_xxx()</tt> akan mengambil hubungan rekaman sesuai permintaan. Mengambil rekaman terkait dengan lazy loading (yaitu, hanya obyek terkait itu saja yang diakses) bisa dicapai dengan menggunakan sebuah fitur <tt>TComponent</tt> yang menyediakan metode pengakses. Dalam keadaan tertentu, kita mendefinisikan pasangan metode pengambil dan penentu di mana metode pengambil akan mengambil hubungan secara kondisional. Contoh berikut menggambarkan bahwa <tt>PlayerRecord</tt> dapat mengambil obyek asing <tt>$skills</tt> secara kondisional. +<p id="710045" class="block-content">Menggunakan metode <tt>with_xxx()</tt> akan mengambil hubungan rekaman sesuai permintaan. Mengambil rekaman terkait dengan lazy loading (yaitu, hanya obyek terkait itu saja yang diakses) bisa dicapai dengan menggunakan sebuah fitur <tt>TComponent</tt> yang menyediakan metode pengakses. Dalam keadaan tertentu, kita mendefinisikan pasangan metode pengambil dan penyetel di mana metode pengambil akan mengambil hubungan secara kondisional. Contoh berikut menggambarkan bahwa <tt>PlayerRecord</tt> dapat mengambil obyek asing <tt>$skills</tt> secara kondisional. </p> <com:TTextHighlighter Language="php" CssClass="source block-content"> class PlayerRecord extends BaseFkRecord @@ -970,7 +970,7 @@ class UserRecord extends TActiveRecord </com:TTextHighlighter> <p> Dengan pemetaan kolom di atas, kita mengalamatkan <tt>first_name</tt> menggunakan <tt>$userRecord->firstName</tt> -daripada <tt>$userRecord->first_name</tt>. Ini membantu pemisahan dari logika dan model. +daripada <tt>$userRecord->first_name</tt>. Ini membantu pemisahan dari logika dengan model. </p> <h2 id="138054">Referensi</h2> diff --git a/demos/quickstart/protected/pages/Database/id/DAO.page b/demos/quickstart/protected/pages/Database/id/DAO.page index 94c6f569..842a4a76 100644 --- a/demos/quickstart/protected/pages/Database/id/DAO.page +++ b/demos/quickstart/protected/pages/Database/id/DAO.page @@ -9,7 +9,7 @@ Obyek Akses Data atau Data Access Object (DAO) memisahkan data sumber daya antar Sejak versi 3.1, PRADO mulai menyediakan DAO yang adalah pelapis tipis sekitar <a href="http://www.php.net/manual/en/ref.pdo.php">PHP Data Objects (PDO)</a>. Meskipun PDO memiliki set fitur bagus dan API yang baik, kami memilih untuk mengimplementasikan PRADO DAO di atas PDO karena kelas PRADO DAO adalah kelas komponen dan bisa dikonfigurasi dalam aplikasi PRADO. Para pengguna dapat menggunakan kelas DAO ini dalam cara yang lebih disukai-PRADO.
</p>
<div class="note"><b class="tip">Catatan:</b>
-Karena PRADO DAO didasarkan pada PDO, ekstensi PDO PHP perlu diinstalasi. Sebagai tambahan, anda perlu menginstalasi driver PDO database terkait untuk digunakan dalam aplikasi anda. Lihat lebih jelasnya dalam <a href="http://www.php.net/manual/en/ref.pdo.php">PHP Manual</a>.
+Karena PRADO DAO didasarkan pada PDO, ekstensi PDO PHP perlu diinstalasi. Sebagai tambahan, Anda perlu menginstalasi driver PDO database terkait untuk digunakan dalam aplikasi Anda. Lihat lebih jelasnya dalam <a href="http://www.php.net/manual/en/ref.pdo.php">PHP Manual</a>.
</div>
<p id="680463" class="block-content">
PRADO DAO sebagian besar terdiri dari empat kelas (kebalikan dari PDO yang hanya dua kelas, <tt>PDO</tt> dan <tt>PDOStatement</tt>):
@@ -108,7 +108,7 @@ try //.... eksekusi SQL lain
$transaction->commit();
}
-catch(Exception $e) // kekecualian dimunculkan jika query gagal
+catch(Exception $e) // eksepsi dimunculkan jika query gagal
{
$transaction->rollBack();
}
@@ -120,7 +120,7 @@ catch(Exception $e) // kekecualian dimunculkan jika query gagal Guna menghindari <a href="http://en.wikipedia.org/wiki/SQL_injection">serangan injeksi SQL</a> dan untuk meningkatkan performansi dari eksekusi pernyataan SQL yang dipakai secara berulang-ulang, seseorang dapat "menyiapkan" pernyataan SQL dengan tempat parameter opsional yang akan diganti dengan parameter sebenarnya selama proses pengikatan parameter.
</p>
<p id="680474" class="block-content">
-Tempat parameter dapat bernama (diwakili dengan token unik) ataupun tidak bernama (diwakili dengan tanda tanya). Panggil <tt>TDbCommand.bindParameter()</tt> atau <tt>TDbCommand.bindValue()</tt> untuk mengganti tempat ini dengan parameter aktual. Parameter tidak perlu diberi tanda kutip: driver database melakukan ini bagi anda. Pengikatan parameter harus dikerjakan sebelum pernyataan SQL dijalankan.
+Tempat parameter dapat bernama (diwakili dengan token unik) ataupun tidak bernama (diwakili dengan tanda tanya). Panggil <tt>TDbCommand.bindParameter()</tt> atau <tt>TDbCommand.bindValue()</tt> untuk mengganti tempat ini dengan parameter aktual. Parameter tidak perlu diberi tanda kutip: driver database melakukan ini bagi Anda. Pengikatan parameter harus dikerjakan sebelum pernyataan SQL dijalankan.
</p>
<com:TTextHighlighter Language="php" CssClass="source block-content" id="code_680145">
// sebuah SQL dengan dua tempat ":username" dan ":email"
diff --git a/demos/quickstart/protected/pages/Database/id/SqlMap.page b/demos/quickstart/protected/pages/Database/id/SqlMap.page index 939b58f7..70161a29 100644 --- a/demos/quickstart/protected/pages/Database/id/SqlMap.page +++ b/demos/quickstart/protected/pages/Database/id/SqlMap.page @@ -3,8 +3,8 @@ <h1 id="140062">Pemeta Data</h1> <com:SinceVersion Version="3.1a" /> -<p id="700505" class="block-content">Pemeta Data memindahkan data antara obyek dan database sementara memeliharanya berdiri sendiri satu sama lain dan pemetanya sendiri. Jika anda mulai dengan - <a href="?page=Database.ActiveRecord">Active Records</a>, mungkin nantinya anda dihadapkan dengan obyek bisnis lebih kompleks seiring denga kemajuan proyek anda. Ketika anda membangun model obyek dengan banyak logika bisnis, sangat berharga untuk memakai mekanisme ini untuk mengatur data lebih baik dan perilaku bersamanya. Melakukan itu menyebabkan skema varian; yakni skema obyek dan skema relasional tidak sama. +<p id="700505" class="block-content">Pemeta Data memindahkan data antara obyek dan database sementara memeliharanya berdiri sendiri satu sama lain dan pemetanya sendiri. Jika Anda mulai dengan + <a href="?page=Database.ActiveRecord">Active Records</a>, mungkin nantinya Anda dihadapkan dengan obyek bisnis lebih kompleks seiring denga kemajuan proyek Anda. Ketika Anda membangun model obyek dengan banyak logika bisnis, sangat berharga untuk memakai mekanisme ini untuk mengatur data lebih baik dan perilaku bersamanya. Melakukan itu menyebabkan skema varian; yakni skema obyek dan skema relasional tidak sama. </p> <p id="700506" class="block-content">Pemeta Data memisahkan obyek dalam-memori dari database. Tanggung jawabnya adalah mentransfer data diantara keduanya dan juga saling mengisolasinya. @@ -12,21 +12,21 @@ </p> <h2 id="140063">Kapan Menggunakannya</h2> -<p id="700507" class="block-content">Tujuan utama menggunakan Pemeta Data ialah ketika anda menginginkan skema database dan model obyek tumbuh secara independen. Keuntungan utama dari Pemeta Data adalah bahwa saat bekerja pada obyek bisnis (atau domain) anda bisa mengabaikan database, baik dalam desain maupun pembangunan propes pengujian. Obyek domain tidak mengetahui struktur databasenya karena semua ini dikerjakan oleh pemeta. +<p id="700507" class="block-content">Tujuan utama menggunakan Pemeta Data ialah ketika Anda menginginkan skema database dan model obyek tumbuh secara independen. Keuntungan utama dari Pemeta Data adalah bahwa saat bekerja pada obyek bisnis (atau domain) Anda bisa mengabaikan database, baik dalam desain maupun pembangunan propes pengujian. Obyek domain tidak mengetahui struktur databasenya karena semua ini dikerjakan oleh pemeta. </p> -<p id="700508" class="block-content">Ini membantu anda dalam kode karena anda bisa mengerti serta bekerja dengan obyek domain tanpa harus mengerti bagaimana ia disimpan dalam . Anda bisa memodifikasi model bisnis atau database tanpa harus mengubahnya. Dengan pemetaan rumit, terutama yang menyangkut <b>database yang sudah ada</b>, ini sangat berharga. +<p id="700508" class="block-content">Ini membantu Anda dalam kode karena Anda bisa mengerti serta bekerja dengan obyek domain tanpa harus mengerti bagaimana ia disimpan dalam. Anda bisa memodifikasi model bisnis atau database tanpa harus mengubahnya. Dengan pemetaan rumit, terutama yang menyangkut <b>database yang sudah ada</b>, ini sangat berharga. </p> -<p id="700509" class="block-content">Harga tentunya merupakan lapisan ekstra yang tidak anda peroleh dengan <a href="?page=Database.ActiveRecord">Rekaman Aktif</a>, maka pengujian menggunakan pola ini adalah kompleksitas dari logika bisnis. Jika anda memiliki logika bisa cukup sederhana, <a href="?page=Database.ActiveRecord">Rekaman Aktif</a> mungkin akan mencukupi. +<p id="700509" class="block-content">Harga tentunya merupakan lapisan ekstra yang tidak Anda peroleh dengan <a href="?page=Database.ActiveRecord">Rekaman Aktif</a>, maka pengujian menggunakan pola ini adalah kompleksitas dari logika bisnis. Jika Anda memiliki logika bisa cukup sederhana, <a href="?page=Database.ActiveRecord">Rekaman Aktif</a> mungkin akan mencukupi. Untuk logika yang lebih rumit, Pemeta Data mungkin lebih cocok. </p> <h2 id="140064">Pemeta Data SqlMap</h2> <p id="700510" class="block-content">Kerangka kerja Pemeta Data SqlMap memudahkan untuk menggunakan database dengan aplikasi PHP. - PemetaData SqlMap memasangkan obyek dengan prosedur tersimpan atau pernyataan SQL menggunakan deskriptor XML. Kesederhanaan adalah keuntungan terbesar dari PemetaData SqlMap di atas piranti pemetaan relasional obyek. Untuk menggunakan PemetaData SqlMap anda bergantung pada obyek anda sendiri, - XML, dan SQL. Anda sedikit yang harus dipelajari yang belum anda ketahui. - Dengan Pemeta Data SqlMap anda mempunyai tenaga penuh pada SQL dan prosedur tersimpan di tangan anda. + PemetaData SqlMap memasangkan obyek dengan prosedur tersimpan atau pernyataan SQL menggunakan deskriptor XML. Kesederhanaan adalah keuntungan terbesar dari PemetaData SqlMap di atas piranti pemetaan relasional obyek. Untuk menggunakan PemetaData SqlMap Anda bergantung pada obyek Anda sendiri, + XML, dan SQL. Anda sedikit yang harus mempelajari yang belum Anda ketahui. + Dengan Pemeta Data SqlMap Anda mempunyai tenaga penuh pada SQL dan prosedur tersimpan di tangan Anda. </p> <p id="700511" class="block-content"> @@ -35,7 +35,7 @@ Untuk logika yang lebih rumit, Pemeta Data mungkin lebih cocok. Ini adalah penjelasan tingkat tinggi atas alur kerja yang dilukiskan pada gambar di atas. Menyediakan parameter, baik sebagai obyek ataupun tipe primitif. Parameter bisa dipakai untuk menyetel nilai runtime dalam pernyataan SQL atau prosedur. Jika nilai runtime tidak diperlukan, parameter dapat diabaikan. </p> -<p id="700512" class="block-content">Menjalankan pemetaan dengan mengirimkan parameter dan nama yang anda berikan pada deskriptor XML anda. Langkah ini adalah saat di mana keajaiban terjadi. Kerangka kerja akan menyiapkan pernyataan SQL atau prosedur tersimpan, menyetel setiap nilai runtime menggunakan parameter anda, menjalankan prosedur atau pernyataan, dan mengembalikan hasil. +<p id="700512" class="block-content">Menjalankan pemetaan dengan mengirimkan parameter dan nama yang Anda berikan pada deskriptor XML Anda. Langkah ini adalah saat di mana keajaiban terjadi. Kerangka kerja akan menyiapkan pernyataan SQL atau prosedur tersimpan, menyetel setiap nilai runtime menggunakan parameter Anda, menjalankan prosedur atau pernyataan, dan mengembalikan hasil. </p> <p id="700513" class="block-content">Dalam hal pemutakhiran, jumlah baris yang dipengaruhi dikembalikan. Dalam hal query, obyek tunggal, atau koleksi obyek dikembalikan. Seperti parameter, obyek hasil, atau koleksi obyek, bisa berupa obyek biasa ataupun tipe PHP primitif. @@ -78,7 +78,7 @@ $sqlmap = $manager->getSqlMapGateway(); <div class="tip"><b class="note">Tip:</b> Atribut <tt>EnableCache</tt> saat disetel "true" akan men-cache - konfigurasi yang diurai. Anda harus membersihkan atau menghapus cache jika anda mengubah file konfigurasi anda. + konfigurasi yang diurai. Anda harus membersihkan atau menghapus cache jika Anda mengubah file konfigurasinya. <a href="?page=Advanced.Performance#6402">modul cache</a> juga harus didefinisikan agar cache berfungsi. </div> </p> @@ -136,7 +136,7 @@ class User //anggap bahwa $sqlmap adalah turunan TSqlMapGateway $userList = $sqlmap->queryForList("SelectUsers"); -//Atau hanya satu, jika hanya itu yang anda butuhkan: +//Atau hanya satu, jika hanya itu yang Anda butuhkan: $user = $sqlmap->queryForObject("SelectUsers"); </com:TTextHighlighter> </p> diff --git a/demos/quickstart/protected/pages/Fundamentals/id/Components.page b/demos/quickstart/protected/pages/Fundamentals/id/Components.page index b30d975c..2e28c5c4 100644 --- a/demos/quickstart/protected/pages/Fundamentals/id/Components.page +++ b/demos/quickstart/protected/pages/Fundamentals/id/Components.page @@ -78,7 +78,7 @@ di mana <tt>$callback</tt> merujuk ke callback PHP yang benar (misalnya nama fun <h2 id="704">Namespace</h2>
<p id="110121" class="block-content">
-Namespace merujuk ke pengelompokan logis dari beberapa nama kelas agar dapat dibedakan dari nama kelas lain meskipun jika namanya sama. Karena PHP pada hakekatnya tidak mendukung namespace, anda tidak bisa membuat turunan dari dua kelas yang mempunyai nama sama tapi dengan definisi berbeda. Untuk membedakan dari kelas didefinisikan pengguna, semua kelas PRADO diawali dengan huruf 'T' (berarti 'Type'). Para pengguna disarankan untuk tidak menamai kelasnya seperti ini. Sebaiknya mengawali nama kelasnya dengan huruf yang lainnya.
+Namespace merujuk ke pengelompokan logis dari beberapa nama kelas agar dapat dibedakan dari nama kelas lain meskipun jika namanya sama. Karena PHP pada hakekatnya tidak mendukung namespace, Anda tidak bisa membuat turunan dari dua kelas yang mempunyai nama sama tapi dengan definisi berbeda. Untuk membedakan dari kelas didefinisikan pengguna, semua kelas PRADO diawali dengan huruf 'T' (berarti 'Type'). Para pengguna disarankan untuk tidak menamai kelasnya seperti ini. Sebaiknya mengawali nama kelasnya dengan huruf yang lainnya.
</p>
<p id="110122" class="block-content">
Namespace dalam PRADO dianggap sebagai direktori yang berisi satu atau beberapa file kelas. Sebuah kelas dapat ditetapkan tanpa dwimakna menggunakan namespace demikian diikuti oleh nama kelas. Setiap namespace dalam PRADO ditetapkan dalam format berikut,
diff --git a/demos/quickstart/protected/pages/Fundamentals/id/Controls.page b/demos/quickstart/protected/pages/Fundamentals/id/Controls.page index dba49936..75a76551 100644 --- a/demos/quickstart/protected/pages/Fundamentals/id/Controls.page +++ b/demos/quickstart/protected/pages/Fundamentals/id/Controls.page @@ -9,7 +9,7 @@ Kontrol adalah turunan dari kelas <tt>TControl</tt> atau asal sub kelasnya. Kont Kontrol dikaitkan satu sama lain melalui hubungan leluhur-anak. Setiap kontrol leluhur dapat memiliki beberapa kontrol anak. Kontrol leluhur bertugas terhadap transisi keadaan dari kontrol anaknya. Hasil dari kontrol anak biasanya dipakai untuk mengatur penampilan kontrol leluhur. Hubungan leluhur-anak membawa kontrol bersama ke dalam susunan kontrol. Halaman ada di akar dari susunan yang penampilannya di berikan kepada pengguna-akhir.
</p>
<p id="120130" class="block-content">
-Hubungan leluhur-anak biasanya dilakukan oleh kerangka kerja melalui <a href="?page=Configurations.Templates1">template</a>. Dalam kode, anda dapat menetapkan kontrol secara eksplisit sebagai anak dari yang lainnya menggunakan salah satu metode berikut,
+Hubungan leluhur-anak biasanya dilakukan oleh kerangka kerja melalui <a href="?page=Configurations.Templates1">template</a>. Dalam kode, Anda dapat menetapkan kontrol secara eksplisit sebagai anak dari yang lainnya menggunakan salah satu metode berikut,
<com:TTextHighlighter CssClass="source block-content" id="code_120067">
$parent->Controls->add($child);
$parent->Controls[]=$child;
@@ -19,12 +19,12 @@ di mana properti <tt>Controls</tt> merujuk ke koleksi kontrol anak dari leluhur. <h2 id="803">Identifikasi Kontrol</h2>
<p id="120131" class="block-content">
-Setiap kontrol mempunyai properti <tt>ID</tt> yang dapat secara unik dapat mengidentifikasi dirinya sendiri diantara kontrol keluarganya. Sebagai tambahan, setiap kontrol mempunyai <tt>UniqueID</tt> dan <tt>ClientID</tt> yang dapat dipakai untuk mengidentifikasi kontrol secara global dalam susunan di mana kontrol berada. <tt>UniqueID</tt> dan <tt>ClientID</tt> sangat mirip. Pembentuk dipakai oleh kerangka kerja guna menentukan lokasi dari kontrol terkait dalam susunan, sementara yang kedua sebagian besar dipakai pada sisi klien sebagai ID tag HTML. Secara umum, anda tidak boleh bergantung pada bentuk eksplisit <tt>UniqueID</tt> atau <tt>ClientID</tt>.
+Setiap kontrol mempunyai properti <tt>ID</tt> yang dapat secara unik dapat mengidentifikasi dirinya sendiri diantara kontrol keluarganya. Sebagai tambahan, setiap kontrol mempunyai <tt>UniqueID</tt> dan <tt>ClientID</tt> yang dapat dipakai untuk mengidentifikasi kontrol secara global dalam susunan di mana kontrol berada. <tt>UniqueID</tt> dan <tt>ClientID</tt> sangat mirip. Pembentuk dipakai oleh kerangka kerja guna menentukan lokasi dari kontrol terkait dalam susunan, sementara yang kedua sebagian besar dipakai pada sisi klien sebagai ID tag HTML. Secara umum, Anda tidak boleh bergantung pada bentuk eksplisit <tt>UniqueID</tt> atau <tt>ClientID</tt>.
</p>
<h2 id="804">Wadah Penamaan</h2>
<p id="120132" class="block-content">
-Setiap kontrol mempunyai wadah penamaan yang mana kontrol membuat ruang nama (namespace) unik untuk membedakan antara kontrol dengan <tt>ID</tt> yang sama. Sebagai contoh, kontrol <tt>TRepeater</tt> membuat multipel item masing-masing mempunyai kontrol anak dengan <tt>ID</tt> yang sama. Untuk membedakan kontrol anak ini, setiap item bertindak sebagai wadah penamaan. Oleh karena itu, kontrol anak dapat diidentifikasi secara unik menggunakan wadah penamaan <tt>ID</tt> bersama dengan <tt>ID</tt>-nya sendiri. Seperti yang mungkin sudah anda mengerti, <tt>UniqueID</tt> dan <tt>ClientID</tt> bergantung pada wadah penamaan.
+Setiap kontrol mempunyai wadah penamaan yang mana kontrol membuat ruang nama (namespace) unik untuk membedakan antara kontrol dengan <tt>ID</tt> yang sama. Sebagai contoh, kontrol <tt>TRepeater</tt> membuat multipel item masing-masing mempunyai kontrol anak dengan <tt>ID</tt> yang sama. Untuk membedakan kontrol anak ini, setiap item bertindak sebagai wadah penamaan. Oleh karena itu, kontrol anak dapat diidentifikasi secara unik menggunakan wadah penamaan <tt>ID</tt> bersama dengan <tt>ID</tt>-nya sendiri. Seperti yang mungkin sudah Anda mengerti, <tt>UniqueID</tt> dan <tt>ClientID</tt> bergantung pada wadah penamaan.
</p>
<p id="120133" class="block-content">
Kontrol dapat bertindak sebagai wadah penamaan jika ia menerapkan antarmuka <tt>INamingContainer</tt>.
diff --git a/demos/quickstart/protected/pages/GettingStarted/id/AboutPrado.page b/demos/quickstart/protected/pages/GettingStarted/id/AboutPrado.page index a3b98d1f..9d53a6bd 100644 --- a/demos/quickstart/protected/pages/GettingStarted/id/AboutPrado.page +++ b/demos/quickstart/protected/pages/GettingStarted/id/AboutPrado.page @@ -26,7 +26,7 @@ PRADO banyak dikutip sebagai kerangka kerja yang unik. Kenyataannya, ia begitu u <li>Integrasi tim - Penyajian dan logika disimpan secara terpisah. Aplikasi PRADO dapat berganti tema.</li>
<li>Kontrol Web bertenaga - PRADO hadir dengan set komponen bertenaga berkenaan dengan antarmuka pengguna Web. Halaman Web interaktif tinggi dapat dibuat dengan beberapa baris kode. Sebagai contoh, menggunakan komponen datagrid, seseorang bisa dengan cepat membuat sebuah halaman yang menyajikan tabel data yang membolehkan banyak halaman, pengurutan, penyuntingan, dan penghapusan baris data.
<li>Dukungan database kuat - Sejak versi 3.1, PRADO telah dilengkapi dengan dukungan database lengkap yang secara alami ditulis dan selanjutnya cocok dengan kerangka kerja PRADO lainnya. Berdasarkan kompleksitas dari obyek bisnis, seseorang dapat memilih untuk menggunakan akses data berbasis-PDO, atau rekaman aktif yang lebih umum dikenal, atau skema pemetaan obyek bisnis lengkap SqlMap.</li>
-<li>Dukungan AJAX - Menggunakan AJAX dalam PRADO jauh lebih mudah dengan kontrol aktif inovatif yang diperkenalkan sejak versi 3.1. Dengan mudah anda dapat menulis aplikasi AJAX-enabled tanpa menuliskan satu barispun kode javascript. Kenyataannya, menggunakan kontrol aktif tidak jauh berbeda dengan menggunakan kontrol Web reguler non-AJAX.</li>
+<li>Dukungan AJAX - Menggunakan AJAX dalam PRADO jauh lebih mudah dengan kontrol aktif inovatif yang diperkenalkan sejak versi 3.1. Dengan mudah Anda dapat menulis aplikasi AJAX-enabled tanpa menuliskan satu barispun kode javascript. Kenyataannya, menggunakan kontrol aktif tidak jauh berbeda dengan menggunakan kontrol Web reguler non-AJAX.</li>
<li>Dukungan I18N dan L10N - PRADO menyertakan dukungan lengkap untuk membangun aplikasi dengan multipel bahasa dan lokal.</li>
<li>Sesuai XHTML - Halaman Web yang dibuat oleh PRADO sesuai dengan XHTML.</li>
<li>Akomodasi dari pekerjaan yang sudah ada - PRADO adalah kerangka kerja umum dengan fokus pada lapisan penyajian. Ita tidak mengecualikan para pengembang dari pemakaian librari kelas atau kit piranti yang sudah ada. Sebagai contoh, seseorang dapat memakai AdoDB atau Creole untuk berhadapan dengan DB dalam aplikasi PRADO-nya.
diff --git a/demos/quickstart/protected/pages/GettingStarted/id/CommandLine.page b/demos/quickstart/protected/pages/GettingStarted/id/CommandLine.page index 04b36b05..6c6def02 100644 --- a/demos/quickstart/protected/pages/GettingStarted/id/CommandLine.page +++ b/demos/quickstart/protected/pages/GettingStarted/id/CommandLine.page @@ -6,12 +6,12 @@ menyediakan piranti baris perintah untuk melakukan berbagai hal membosankan dala </p>
<h2 id="502">Persyaratan</h2>
<p id="70047" class="block-content">
-Untuk menggunakan piranti baris perintah, anda perlu memakai prompt perintah anda, konsol perintah atau terminal. Sebagai tambahan, PHP harus dapat menjalankan naskah PHP dari baris perintah.
+Untuk menggunakan piranti baris perintah, Anda perlu memakai prompt perintah Anda, konsol perintah atau terminal. Sebagai tambahan, PHP harus dapat menjalankan naskah PHP dari baris perintah.
</p>
<h2 id="503">Usage</h2>
<p id="70048" class="block-content">
-Jika anda ketik <tt>php path/ke/framework/prado-cli.php</tt>, anda seharusnya melihat informasi berikut. Alternatifnya, jika anda tidak pada Windows, anda dapat mencoba untuk mengubah <tt>prado-cli.php</tt> ke dalam eksecutabel dan menjalankannya seperti sebuah naskah</p>
+Jika Anda ketik <tt>php path/ke/framework/prado-cli.php</tt>, Anda seharusnya melihat informasi berikut. Alternatifnya, jika Anda tidak pada Windows, Anda dapat mencoba untuk mengubah <tt>prado-cli.php</tt> ke dalam eksecutabel dan menjalankannya seperti sebuah naskah</p>
<com:TTextHighlighter Language="cli" CssClass="source block-content cli" id="code_70006">
Command line tools for Prado 3.0.5.
usage: php prado-cli.php action <parameter> [optional]
@@ -35,16 +35,16 @@ actions: <p id="70050" class="block-content">Untuk membuat kerangka proyek Prado, lakukan yang berikut:</p>
<ol>
- <li>Ubah direktori di mana anda ingin membuat kerangka proyek.</li>
+ <li>Ubah direktori di mana Anda ingin membuat kerangka proyek.</li>
<li>Ketik, <tt>php ../prado/framework/prado-cli.php -c helloworld</tt>, sedangkan
- <tt>helloworld</tt> adalah nama direktori di mana file kerangka proyek ingin anda buat.</li>
+ <tt>helloworld</tt> adalah nama direktori di mana file kerangka proyek ingin Anda buat.</li>
<li>Ketik, <tt>php ../prado/framework/prado-cli.php <b>-t</b> helloworld</tt> untuk membuat perlengkapan pengujian untuk proyek <tt>helloworld</tt>.</li>
</ol>
<h2 id="505">Shell Interaktif</h2>
<p id="70051" class="block-content">
-Shell interaktif membolehkan anda untuk mengevaluasi pernyataan PHP dari baris perintah.
-Naskah <tt>prado-cli.php</tt> dapat dipakai untuk memulai shell dan mengambil proyek Prado yang sudah ada. Sebagai contoh, mari kita ambil proyek demo blog. Anggap bahwa baris perintah anda ada dalam direktori distribusi <tt>prado</tt> dan anda mengetikan.
+Shell interaktif membolehkan Anda untuk mengevaluasi pernyataan PHP dari baris perintah.
+Naskah <tt>prado-cli.php</tt> dapat dipakai untuk memulai shell dan mengambil proyek Prado yang sudah ada. Sebagai contoh, mari kita ambil proyek demo blog. Anggap bahwa baris perintah Anda ada dalam direktori distribusi <tt>prado</tt> dan Anda mengetikkannya.
</p>
<p id="70052" class="block-content">
<com:TTextHighlighter Language="cli" CssClass="source block-content cli" id="code_70007">
@@ -72,7 +72,7 @@ Terakhir, kita ingin menggunakan modul data untuk meng-query sebuah tulisan deng <com:TTextHighlighter Language="cli" CssClass="source block-content cli" id="code_70010">
>> $db->queryPostByID(1)
</com:TTextHighlighter>
-Di sana seharusnya tidak terjadi kesalahan apapun dan seharusnya anda melihat yang berikut.
+Di sana seharusnya tidak terjadi kesalahan apapun dan seharusnya Anda melihat yang berikut.
<com:TTextHighlighter Language="cli" CssClass="source block-content cli" id="code_70011">
PostRecord#1
(
diff --git a/demos/quickstart/protected/pages/GettingStarted/id/HelloWorld.page b/demos/quickstart/protected/pages/GettingStarted/id/HelloWorld.page index 89bae715..b25fc8d7 100644 --- a/demos/quickstart/protected/pages/GettingStarted/id/HelloWorld.page +++ b/demos/quickstart/protected/pages/GettingStarted/id/HelloWorld.page @@ -2,10 +2,10 @@ <h1 id="401">Aplikasi PRADO Pertama Saya</h1>
<div id="hello1" class="block-content">
<p id="50034">
-Dalam seksi ini, kami membimbing anda melalui pembuatan aplikasi PRADO pertama anda, aplikasi terkenal "Hello World".
+Dalam seksi ini, kami membimbing Anda melalui pembuatan aplikasi PRADO pertama Anda, aplikasi terkenal "Hello World".
</p>
<p id="50035">
-"Hello World" barangkali adalah aplikasi PRADO <i>interaktif</i> paling sederhana yang bisa anda buat. Ia menampilkan kepada pengguna-akhir sebuah halaman dengan tombol kirim yang judulnya adalah <tt>Click Me</tt>. Setelah pengguna mengklik tombol, judulnya diubah ke <tt>Hello World</tt>.
+"Hello World" barangkali adalah aplikasi PRADO <i>interaktif</i> paling sederhana yang bisa Anda buat. Ia menampilkan kepada pengguna-akhir sebuah halaman dengan tombol kirim yang judulnya adalah <tt>Click Me</tt>. Setelah pengguna mengklik tombol, judulnya diubah ke <tt>Hello World</tt>.
</p>
<p id="50036">
Ada banyak pendekatan yang dapat mencapai tujuan di atas. Seseorang dapat mengirim halaman ke server, menentukan variabel POST, dan membuat halaman baru dengan judul tombol yang dimutakhirkan. Atau seseorang cukup menggunakan JavaScript untuk memutakhirkan judul tombol setelah event klien <tt>onclick</tt>.
@@ -19,7 +19,7 @@ PRADO mempromosikan pemrograman Web berbasis-komponen dan kendali-event. Tombol Aplikasi PRADO kita terdiri dari tiga file, <tt>index.php</tt>, <tt>Home.page</tt> dan <tt>Home.php</tt>, yang diatur sebagai berikut,
<img src="<%~directory.gif%>" class="figure"/>
-di mana setiap direktori dijelaskan sebagai berikut. Catatan, struktur direktori di atas bisa dikustomisasi. Sebagai contoh, seseorang dapat memindahkan direktori <tt>protected</tt> ke luar direktori Web. Anda akan mengetahui bagaimana melakukan ini setelah anda melewati tutorial ini.
+di mana setiap direktori dijelaskan sebagai berikut. Catatan, struktur direktori di atas bisa dikustomisasi. Sebagai contoh, seseorang dapat memindahkan direktori <tt>protected</tt> ke luar direktori Web. Anda akan mengetahui bagaimana melakukan ini setelah Anda melewati tutorial ini.
</p>
<ul id="dir-struct" class="block-content">
<li><tt>assets</tt> - direktori yang menyimpan file pribadi yang dipublikasikan. Lihat seksi <a href="?page=Advanced.Assets">assets</a> untuk lebih jelasnya. Direktori ini harus bisa ditulisi oleh proses server Web.</li>
@@ -32,7 +32,7 @@ di mana setiap direktori dijelaskan sebagai berikut. Catatan, struktur direktori <b class="tip">Tip:</b>Anda juga dapat menggunakan <tt>framework/prado-cli.php</tt>
<a href="?page=GettingStarted.CommandLine">naskah baris perintah</a>
untuk membuat struktur direktori Prado. Sebagai contoh, ketik perintah
-<tt>php path/to/prado-cli.php -c helloworld</tt> dalam direktori di mana anda ingin membuat proyek <tt>helloworld</tt>.
+<tt>php path/to/prado-cli.php -c helloworld</tt> dalam direktori di mana Anda ingin membuat proyek <tt>helloworld</tt>.
</div>
<p id="50040">
diff --git a/demos/quickstart/protected/pages/GettingStarted/id/Installation.page b/demos/quickstart/protected/pages/GettingStarted/id/Installation.page index eee27171..d165e4d5 100644 --- a/demos/quickstart/protected/pages/GettingStarted/id/Installation.page +++ b/demos/quickstart/protected/pages/GettingStarted/id/Installation.page @@ -2,7 +2,7 @@ <h1 id="301">Menginstalasi PRADO</h1>
<div id="install-info" class="block-content">
<p id="30018">
-Jika anda sedang melihat halaman ini dari server Web anda, anda sudah selesai dengan instalasi.
+Jika Anda sedang melihat halaman ini dari server Web Anda, maka Anda sudah selesai dengan instalasi.
</p>
<p id="30019">
Persyaratan minimum PRADO adalah server Web yang mendukung PHP 5. PRADO sudah diuji dengan server Web Apache pada Windows dan Linux. Sangat dimungkinkan ia juga berjalan pada platform lain dengan server Web lain, selama PHP 5 didukung.
@@ -20,10 +20,10 @@ Instalasi PRADO sebagian besar menyangkut download dan penguraian. </div>
<div id="install-after" class="block-content">
<p id="30021">
-Instalasi PRADO anda selesai dan anda dapat mulai bermain dengan demo aplikasi yang disertakan dalam rilis PRADO via URL <tt>http://web-server-address/prado/demos/</tt>. Di sini kami menganggap PRADO diurai ke subdirektori <tt>prado</tt> di bawah <tt>DocumentRoot</tt> pada server Web.
+Instalasi PRADO Anda selesai dan dapat mulai bermain dengan demo aplikasi yang disertakan dalam rilis PRADO via URL <tt>http://web-server-address/prado/demos/</tt>. Di sini kami menganggap PRADO diurai ke subdirektori <tt>prado</tt> di bawah <tt>DocumentRoot</tt> pada server Web.
</p>
<p id="30022">
-Jika anda menemukan masalah dengan demo aplikasi, silahkan gunakan naskah pemeriksa persyaratan, yang dapapt diakses melalui <tt>http://web-server-address/prado/requirements/index.php</tt>, untuk terlebih dahulu memeriksa apakah konfigurasi server anda memenuhi kondisi yang dibutuhkan oleh PRADO.
+Jika Anda menemukan masalah dengan demo aplikasi, silahkan gunakan naskah pemeriksa persyaratan, yang dapapt diakses melalui <tt>http://web-server-address/prado/requirements/index.php</tt>, untuk terlebih dahulu memeriksa apakah konfigurasi server Anda memenuhi kondisi yang dibutuhkan oleh PRADO.
</p>
</div>
<div class="last-modified">$Id: Installation.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/GettingStarted/id/Introduction.page b/demos/quickstart/protected/pages/GettingStarted/id/Introduction.page index 31815414..058d1583 100644 --- a/demos/quickstart/protected/pages/GettingStarted/id/Introduction.page +++ b/demos/quickstart/protected/pages/GettingStarted/id/Introduction.page @@ -2,10 +2,10 @@ <h1 id="101">Selamat datang di Tutorial Cepat PRADO</h1>
<div id="intro" class="block-content">
<p id="10001">
-Tutorial Cepat ini disediakan untuk membantu anda secara cepat membangun aplikasi Web anda sendiri berbasis PRADO versi 3.x.
+Tutorial Cepat ini disediakan untuk membantu Anda secara cepat membangun aplikasi Web Anda sendiri berbasis PRADO versi 3.x.
</p>
<p id="10001" class="block-content">
-Jika anda adalah pengguna yang sudah mengenal PRADO 3.x dan ingin mempelajari peningkatan apa yang tersedia pada versi baru, silahkan periksa halaman <a href="?page=GettingStarted.NewFeatures">fitur baru</a>. Sebaliknya, seksi berikut sangat membantu bagi para pemula.
+Jika Anda adalah pengguna yang sudah mengenal PRADO 3.x dan ingin mempelajari peningkatan apa yang tersedia pada versi baru, silahkan periksa halaman <a href="?page=GettingStarted.NewFeatures">fitur baru</a>. Sebaliknya, seksi berikut sangat membantu bagi para pemula.
</p>
<!--
<div class="start-page">
@@ -16,7 +16,7 @@ Jika anda adalah pengguna yang sudah mengenal PRADO 3.x dan ingin mempelajari pe <li><a href="#">Membangun aplikasi web dengan PRADO</a></li>
<li><a href="#">Kontrol dan event Web</a></li>
<li><a href="#">Memvalidasi input pengguna</a></li>
- <li><a href="#">Menyabung ke database anda</a></li>
+ <li><a href="#">Menyambung ke database Anda</a></li>
<li><a href="#">Menampilkan data dari database</a></li>
</ol>
</div>
@@ -31,7 +31,7 @@ Jika anda adalah pengguna yang sudah mengenal PRADO 3.x dan ingin mempelajari pe <li><a href="../time-tracker/">Pelacak Waktu Proyek</a></li>
</ul>
<p id="10003" class="block-content">Lebih banyak contoh di <a href="?page=Controls.Standard">Kontrol Standar</a>,
- <a href="?page=Controls.Validation">Memvalidatsi Kontrol</a> dan
+ <a href="?page=Controls.Validation">Memvalidasi Kontrol</a> dan
<a href="?page=Controls.Data">Kontrol Data</a>.
</div>
@@ -39,16 +39,16 @@ Jika anda adalah pengguna yang sudah mengenal PRADO 3.x dan ingin mempelajari pe <h2 id="2003">Tutorial dan Bantuan</h2>
<ul>
<li><a href="?page=GettingStarted.HelloWorld">Hello World secara rinci</a></li>
- <li><a href="?page=Tutorial.CurrencyConverter">Currency Converter Tutorial</a></li>
+ <li><a href="?page=Tutorial.CurrencyConverter">Tutorial Pengubah Kurs</a></li>
<li><a href="?page=Tutorial.AddressBook">Tutorial Buku Alamat</a></li>
- <li><a href="?page=Tutorial.AjaxChat">Tutorial Chat AJAX</a></li>
+ <li><a href="?page=Tutorial.AjaxChat">Tutorial Obrolan AJAX</a></li>
</ul>
</div>
</div>
-->
<p id="10002">
-Anda dapat merujuk ke sumber daya berikut jika anda mendapatkan tutorial ini tidak memenuhi semua kebutuhan anda.
+Anda dapat merujuk ke sumber daya berikut jika Anda mendapatkan tutorial ini tidak memenuhi semua kebutuhan Anda.
</p>
</div>
<ul class="block-content" id="intro-links">
diff --git a/demos/quickstart/protected/pages/GettingStarted/id/Upgrading.page b/demos/quickstart/protected/pages/GettingStarted/id/Upgrading.page index e6f3d4dd..13ed77c5 100644 --- a/demos/quickstart/protected/pages/GettingStarted/id/Upgrading.page +++ b/demos/quickstart/protected/pages/GettingStarted/id/Upgrading.page @@ -26,7 +26,7 @@ public function setEnabled($value) }
</com:TTextHighlighter>
<p id="40027" class="block-content">
-di mana <tt>TPropertyValue::ensureBoolean()</tt> dipakai untuk memastikan bahwa nilai input adalah boolean. Ini adalah karena ketika properti dikonfigurasi dalam template, nilai string dikirimkan ke penyetel. Dalam versi sebelumnya, PRADO mengetahui tipe properti berdasarkan file spesifikasi komponen dan melakukan konversi tipe bagi anda.
+di mana <tt>TPropertyValue::ensureBoolean()</tt> dipakai untuk memastikan bahwa nilai input adalah boolean. Ini adalah karena ketika properti dikonfigurasi dalam template, nilai string dikirimkan ke penyetel. Dalam versi sebelumnya, PRADO mengetahui tipe properti berdasarkan file spesifikasi komponen dan melakukan konversi tipe bagi Anda.
</p>
<h2 id="503">Pengontrol Aplikasi</h2>
diff --git a/demos/quickstart/protected/pages/Services/id/SoapService.page b/demos/quickstart/protected/pages/Services/id/SoapService.page index 8663376e..aeabdac0 100644 --- a/demos/quickstart/protected/pages/Services/id/SoapService.page +++ b/demos/quickstart/protected/pages/Services/id/SoapService.page @@ -121,14 +121,14 @@ class ContactManager { }
}
</com:TTextHighlighter>
-<p id="670457" class="block-content">Untuk obyek soap kompleks, properti obyek ditetapkan dengan kata kunci <tt>@soapproperty</tt> dalam phpdocs. Selanjutnya, nama tipe properti harus ditetapkan sebagai <tt>@var type $name</tt> di mana <tt>type</tt> adalah tipe apapun yang benar seperti telah disebutkan sebelumnya dan <tt>$name</tt> akan mendefinisikan properti <tt>name</tt> (catatan bahwa jika kelas anda adalah TComponent, anda bisa menyediakan properti pengambil/penentu).
+<p id="670457" class="block-content">Untuk obyek soap kompleks, properti obyek ditetapkan dengan kata kunci <tt>@soapproperty</tt> dalam phpdocs. Selanjutnya, nama tipe properti harus ditetapkan sebagai <tt>@var type $name</tt> di mana <tt>type</tt> adalah tipe apapun yang benar seperti telah disebutkan sebelumnya dan <tt>$name</tt> akan mendefinisikan properti <tt>name</tt> (catatan bahwa jika kelas Anda adalah TComponent, Anda bisa menyediakan properti pengambil/penentu).
</p>
<p id="670458" class="block-content">
Sebuah array dari obyek yang kompleks juga bisa dihasilkan dengan menambahkan pasangan yang dilindungi kurung kotak setelah nama tipe. Sebagai contoh, untuk menghasilkan array dari tipe <tt>Contact</tt>, kita mendefinisikan <tt>@return Contact[] ...</tt>.
</p>
<div class="tip"><b class="note">Tip:</b>
-Piranti sangat berguna untuk menguji layanan web anda adalah piranti bebas
+Piranti sangat berguna untuk menguji layanan web Anda adalah piranti bebas
<a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=65a1d4ea-0f7a-41bd-8494-e916ebc4159c">WebServiceStudio 2.0</a>. Ia bisa memanggil webmethods secara interaktif. Pengguna dapat menyediakan sebuah titik akhir WSDL. Pada saat mengklik tombol Get piranti mengambil WSDL, membuat proxy .NET dari WSDL dan menampilkan daftar metode yang tersedia. Pengguna bisa memilih setiap metode dan menyediakan parameter input yang diplerukan.
Piranti membutuhkan MS .NET runtime terinstalasi.
diff --git a/demos/quickstart/protected/pages/Tutorial/id/AjaxChat.page b/demos/quickstart/protected/pages/Tutorial/id/AjaxChat.page index ae83f826..4085d767 100644 --- a/demos/quickstart/protected/pages/Tutorial/id/AjaxChat.page +++ b/demos/quickstart/protected/pages/Tutorial/id/AjaxChat.page @@ -1,9 +1,9 @@ <com:TContent ID="body">
- <h1 id="18008">Membangun Aplikasi Chat AJAX</h1>
+ <h1 id="18008">Membangun Aplikasi Obrolan AJAX</h1>
<com:RequiresVersion Version="3.1a" />
<p id="90081" class="block-content">Tutorial ini memperkenalkan kerangka kerja aplikasi web Prado
<a href="?page=Database.ActiveRecord">ActiveRecord</a>
- dan <a href="?page=ActiveControls.Home">Kontrol Aktif</a> untuk membangun aplikasi web Chat. Diasumsikan bahwa anda sudah terbiasa dengan PHP dan akan telah mengakses server web yang dapat melayani naskah PHP5.
+ dan <a href="?page=ActiveControls.Home">Kontrol Aktif</a> untuk membangun aplikasi web Chat. Diasumsikan bahwa Anda sudah terbiasa dengan PHP dan akan telah mengakses server web yang dapat melayani naskah PHP5.
Aplikasi chat dasar ini akan memanfaatkan ide/komponen berikut dalam Prado.
</p>
<ul id="u1" class="block-content">
@@ -14,7 +14,7 @@ <li>Memisahkan logika aplikasi dan alur aplikasi.</li>
</ul>
- <p id="90082" class="block-content">Dalam tutorial ini anda akan membangun sebuah aplikasi web Chat AJAX yang membolehkan
+ <p id="90082" class="block-content">Dalam tutorial ini Anda akan membangun sebuah aplikasi web Chat AJAX yang membolehkan
multipel pengguna untuk berkomunikasi melalui web browser mereka.
Aplikasi terdiri dari dua halaman: halaman masuk yang menanyakan pada
pengguna untuk memasukkan nama panggilannya dan halaman aplikasi chat utama.
@@ -36,7 +36,7 @@ php prado/framework/prado-cli.php -c chat </p>
<p id="90084" class="block-content">Perintah di atas membuat struktur direktori yang diperlukan dan file minimal (termasuk "index.php" dan "Home.page") untuk menjalankan aplikasi web Prado.
- Sekarang anda dapat mengarahkan URL browser anda ke server web untuk melayani
+ Sekarang Anda dapat mengarahkan URL browser Anda ke server web untuk melayani
naskah <tt>index.php</tt> dalam direktori <tt>chat</tt>.
Anda seharusnya melihat pesan "Welcome to Prado!"
</p>
@@ -90,7 +90,7 @@ class Login extends TPage a <com:DocLink ClassPath="System.Web.UI.WebControls.TRequiredFieldValidator" Text="TRequiredFieldValidator" />
dan <com:DocLink ClassPath="System.Web.UI.WebControls.TButton" Text="TButton" />. Halaman yang dihasilkan terlihat seperti berikut (setelah menerapkan beberapa style sheet).
<img src=<%~ chat2.png %> class="figure" />
- Jika anda mengklik pada tombol <tt>Login</tt> tanpa memasukan teks
+ Jika Anda mengklik pada tombol <tt>Login</tt> tanpa memasukan teks
apapun dalam kotak teks nama pengguna, pesan kesalahan ditampilkan. Ini dikarenakan <com:DocLink ClassPath="System.Web.UI.WebControls.TRequiredFieldValidator" Text="TRequiredFieldValidator" />
memerlukan pengguna untuk memasukan beberapa teks dalam kotak teks sebelum melanjutkan.
</p>
@@ -129,8 +129,8 @@ Kita membolehkan setiap pengguna dengan aturan yang sama dengan "normal" (didefi Terakhir, kita menolak semua pengguna tanpa aturan apapun untuk mengakses setiap halaman. Aturan otorisasi dijalankan pada basis sama pertama kali.
</p>
-<p id="90088" class="block-content">Jika anda mencoba untuk mengakses halaman <tt>Home</tt> dengan mengarahkan browser anda ke
-<tt>index.php</tt> anda akan dialihkan ke halaman <tt>Login</tt>.
+<p id="90088" class="block-content">Jika Anda mencoba untuk mengakses halaman <tt>Home</tt> dengan mengarahkan browser Anda ke
+<tt>index.php</tt> Anda akan dialihkan ke halaman <tt>Login</tt>.
</p>
<h1 id="18011">Rekaman Aktif untuk tabel <tt>chat_users</tt></h1>
@@ -145,7 +145,7 @@ CREATE TABLE chat_users last_activity INTEGER NOT NULL DEFAULT "0"
);
</com:TTextHighlighter>
-Selanjutnya kita mendefinisikan kelas <tt>ChatUserRecord</tt> dan menyimpannya sebagai <tt>chat/protected/App_Code/ChatUserRecord.php</tt> (anda perlu untuk membuat direktori <tt>App_Code</tt> juga). Kita juga menyimpan file database sqlite sebagai <tt>App_Code/chat.db</tt>.
+Selanjutnya kita mendefinisikan kelas <tt>ChatUserRecord</tt> dan menyimpannya sebagai <tt>chat/protected/App_Code/ChatUserRecord.php</tt> (Anda perlu untuk membuat direktori <tt>App_Code</tt> juga). Kita juga menyimpan file database sqlite sebagai <tt>App_Code/chat.db</tt>.
<com:TTextHighlighter Language="php" CssClass="source block-content" id="code_90033">
class ChatUserRecord extends TActiveRecord
{
@@ -301,7 +301,7 @@ Akhirnya, kita mengalihkan klien ke halaman standar <tt>Home</tt>. </p>
<h2 id="18021">Nilai Standar untuk ActiveRecord</h2>
-<p id="90096" class="block-content">Jika anda mencoba untuk melakukan login sekarang, anda akan menerima pesan kesalahan seperti
+<p id="90096" class="block-content">Jika Anda mencoba untuk melakukan login sekarang, Anda akan menerima pesan kesalahan seperti
"<i>Property '<tt>ChatUserRecord::$last_activity</tt>' must not be null as defined
by column '<tt>last_activity</tt>' in table '<tt>chat_users</tt>'.</i>". Ini berarti bahwa nilai properti <tt>$last_activity</tt> adalah null dalam kolom terkait pada tabel dan memboleh nilai null atau menetapkan nilai standar dalam kelas <tt>ChatUserRecord</tt>. Kita akan mendemonstrasikannya nanti dengan mengubah <tt>ChatUserRecord</tt> dengan tambahan dari metode setelan pengambil/pengetap untuk properti <tt>last_activity</tt>.
@@ -417,7 +417,7 @@ class Home extends TPage }
}
</com:TTextHighlighter>
-Jika anda sekarang mengetikan sesuatu dalam kotak teks aplikasi utama dan mengklik tombol kirim, anda seharusnya melihat apapun yang anda ketikan muncul dalam konsol <tt>TJavascriptLogger</tt>.
+Jika Anda sekarang mengetikan sesuatu dalam kotak teks aplikasi utama dan mengklik tombol kirim, Anda seharusnya melihat apapun yang Anda ketikan muncul dalam konsol <tt>TJavascriptLogger</tt>.
</p>
<p id="90099" class="block-content">Untuk menambah atau menambahkan beberapa konten ke panel daftar pesan, kita perlu memakai beberapa metode dalam kelas
@@ -569,7 +569,7 @@ Kita cukup menyimpan pesan ke bufer chat dan kemudian meminta semua pesan untuk (gaya AJAX).
</p>
-<p id="90104" class="block-content">Pada titik ini aplikasi sebenarnya sudah berfungsi, cuma tidak bersahabat. Jika anda membuka dua browser berbeda, anda seharusnya bisa berkomunikasi diantara dua pengguna kapan saja tombol <tt>Send</tt> diklik.
+<p id="90104" class="block-content">Pada titik ini aplikasi sebenarnya sudah berfungsi, cuma tidak bersahabat. Jika Anda membuka dua browser berbeda, Anda seharusnya bisa berkomunikasi diantara dua pengguna kapan saja tombol <tt>Send</tt> diklik.
</p>
<p id="90105" class="block-content">Bagian berikutnya barangkali lebih rumit dan mengakali daripada tugas lainnya. Kita perlu untuk meningkatkan pengalaman pengguna. Pertama, kita menginginkan daftar pengguna saat ini juga. Maka kita menambahkan metode berikut ke <tt>Home.php</tt>, kita dapat memanggil metode ini kapan saja beberapa event callback dimunculkan, misalnya saat tombol <tt>Send</tt> diklik.
@@ -680,7 +680,7 @@ Rincian sehubungan dengan javascript bisa dilihat dalam seksi <a href="?page=Advanced.Scripts">Pengenalan Javascript</a> pada tutorial cepat.
</p>
-<p id="90110" class="block-content">Ini melengkapi tutorial untuk membuat aplikasi chat web menggunakan kerangka kerja Prado. Diharapkan anda menikmatinya.
+<p id="90110" class="block-content">Ini melengkapi tutorial untuk membuat aplikasi chat web menggunakan kerangka kerja Prado. Diharapkan Anda menikmatinya.
</p>
<div class="last-modified">$Id: AjaxChat.page 1846 2007-04-07 10:35:16Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Tutorial/id/CurrencyConverter.page b/demos/quickstart/protected/pages/Tutorial/id/CurrencyConverter.page index 523e8a43..113a2d2a 100644 --- a/demos/quickstart/protected/pages/Tutorial/id/CurrencyConverter.page +++ b/demos/quickstart/protected/pages/Tutorial/id/CurrencyConverter.page @@ -1,12 +1,12 @@ <com:TContent ID="body"> <h1 id="16001">Membangun Pengubah Kurs Sederhana</h1> - <p id="80053" class="block-content">Tutorial ini memperkenalkan kerangka kerja aplikasi web Prado dan mengajarkan anda bagaimana untuk + <p id="80053" class="block-content">Tutorial ini memperkenalkan kerangka kerja aplikasi web Prado dan mengajarkan Anda bagaimana untuk membangun aplikasi web sederhana dalam beberapa langkah sederhana. Tutorial - ini menganggap bahwa anda terbiasa dengan PHP dan anda telah mengakses + ini menganggap bahwa Anda terbiasa dengan PHP dan Anda telah mengakses server web yang dapat melayani naskah PHP5. </p> - <p id="80054" class="block-content">Dalam tutorial ini anda akan membangun aplikasi web sederhana yang mengubah + <p id="80054" class="block-content">Dalam tutorial ini Anda akan membangun aplikasi web sederhana yang mengubah nilai dolar ke kurs lain, nilai kurs yang disediakan untuk kurs tersebut relatif terhadap dolar. Aplikasi lengkap ditampilkan di bawah ini. <img src=<%~ example2.png %> class="figure" /> Anda dapat mencoba aplikasi <a href="../currency-converter/index.php">secara lokal</a> atau di @@ -17,13 +17,13 @@ <h1 id="download">Men-download dan Menginstalasi Prado</h1> <p id="80055" class="block-content">Untuk menginstalasi Prado, cukup download versi terbaru Prado dari <a href="http://www.pradosoft.com/">http://www.pradosoft.com</a> - dan uraikan file ke sebuah direktori yang <b>tidak</b> dapat diakses oleh server web anda (anda dapat menguraikannya ke sebuah direktori yang dapat diakses oleh server web jika anda ingin melihat demo dan pengujian). Untuk instalasi lebih rinci, lihat bimbingan + dan uraikan file ke sebuah direktori yang <b>tidak</b> dapat diakses oleh server web Anda (Anda dapat menguraikannya ke sebuah direktori yang dapat diakses oleh server web jika Anda ingin melihat demo dan pengujian). Untuk instalasi lebih rinci, lihat bimbingan <a href="?page=GettingStarted.Installation">Instalasi Cepat</a>. </p> <h1 id="16002">Membuat Aplikasi web Prado baru</h1> <p id="80056" class="block-content">Cara tercepat dan termudah untuk membuat aplikasi web Prado baru adalah menggunakan piranti perintah <tt>prado-cli.php</tt> yang ditemukan dalam direktori <tt>framework</tt> - pada distribusi Prado. Kita membuat aplikasi baru dengan menjalankan perintah berikut dalam prompt perintah atau konsol anda. Perintah membuat direktori baru bernama <tt>currency-converter</tt> dalam direktori kerja anda saat ini. + pada distribusi Prado. Kita membuat aplikasi baru dengan menjalankan perintah berikut dalam prompt perintah atau konsol Anda. Perintah membuat direktori baru bernama <tt>currency-converter</tt> dalam direktori kerja Anda saat ini. Anda perlu mengubahnya ke direktori yang benar terlebih dahulu. Lihat <a href="?page=GettingStarted.CommandLine">Piranti Baris Perintah</a>
untuk lebih jelasnya.
@@ -33,8 +33,8 @@ php prado/framework/prado-cli.php -c currency-converter </com:TTextHighlighter> <p id="80057" class="block-content">Perintah di atas membuat struktur direktori yang diperlukan dan file minimal (termasuk "index.php" dan "Home.page") untuk menjalankan aplikasi Prado. - Sekarang anda dapat mengarahkan url browser anda ke server web untuk melayani naskah <tt>index.php</tt> dalam direktori <tt>currency-converter</tt>. - Seharusnya anda melihat pesan "Welcome to Prado!" + Sekarang Anda dapat mengarahkan url browser Anda ke server web untuk melayani naskah <tt>index.php</tt> dalam direktori <tt>currency-converter</tt>. + Seharusnya Anda melihat pesan "Welcome to Prado!" </p> <h1 id="16003">Membuat Antarmuka Pengguna Pengubah Kurs</h1> @@ -64,7 +64,7 @@ php prado/framework/prado-cli.php -c currency-converter </com:TForm> </com:TTextHighlighter>
<p id="refresh" class="block-content"> - Jika anda menyegarkan halaman, anda akan melihat sesuatu mirip dengan gambar berikut. + Jika Anda menyegarkan halaman, Anda akan melihat sesuatu mirip dengan gambar berikut. Ia mungkin terlihat tidak cukup bagus atau berurut, tapi kita akan mengubahnya nanti dengan menggunakan CSS. <img src=<%~ example1.png %> class="figure" /> </p> @@ -86,7 +86,7 @@ php prado/framework/prado-cli.php -c currency-converter diperuntukan. Ini membolehkan pengguna aplikasi mengklik pada label untuk memfokuskan pada field (hal yang baik). Anda mungkin telah menggunakan elemen biasa HTML <tt><label></tt> untuk melakukan hal yang sama, tapi - anda harus mencari <tt>ID</tt> yang benar pada kotak teks (atau + Anda harus mencari <tt>ID</tt> yang benar pada kotak teks (atau <tt><input></tt> dalam HTML) karena komponen Prado dapat/mungkin menyajikan nilai <tt>ID</tt> secara berbeda dalam output HTML. </p> @@ -106,7 +106,7 @@ php prado/framework/prado-cli.php -c currency-converter <h1 id="16004">Mengimplementasikan Konversi Kurs</h1> - <p id="80063" class="block-content">Jika anda mencoba mengklik pada tombol "Convert" kemudian halaman akan menyegarkan + <p id="80063" class="block-content">Jika Anda mencoba mengklik pada tombol "Convert" kemudian halaman akan menyegarkan dan tidak melakukan apapun. Agar tombol melakukan beberapa pekerjaan, kita perlu menambahkan "Home.php" ke di mana "Home.page" berada. Kelas <tt>Home</tt> harus memperluas <com:DocLink ClassPath="System.Web.UI.TPage" Text="TPage" />, basis kelas standar untuk semua halaman Prado.
@@ -156,8 +156,8 @@ class Home extends TPage </com:TTextHighlighter>
<div id="3332" class="block-content">
<p id="333"> - Jika anda menjalankan aplikasi dalam web browser anda, masukkan beberapa nilai - dan klik tombol "Convert" kemudian anda akan melihat nilai yang dihitung ditampilkan + Jika Anda menjalankan aplikasi dalam web browser Anda, masukkan beberapa nilai + dan klik tombol "Convert" kemudian Anda akan melihat nilai yang dihitung ditampilkan di dekat label "Amount in Other Currency". </p> @@ -249,7 +249,7 @@ $this->total->Text = $rate * $dollars; </com:TTextHighlighter> </p> - <p id="80072" class="block-content">Sekarang jika anda mencoba memasukan beberapa data tidak benar dalam aplikasi atau membiarkan field kosong + <p id="80072" class="block-content">Sekarang jika Anda mencoba memasukan beberapa data tidak benar dalam aplikasi atau membiarkan field kosong validators akan diaktifkan dan menyajikan pesan kesalahan kepada pengguna. Catatan bahwa pesan kesalahan disajikan tanpa mengambil ulang halaman. Validator Prado standarnya memvalidasi javascript dan di dalam server. Validasi di dalam server <b>selalu dilakukan</b>. Untuk sisi server, kita harus melewati perhitungan jika validator tidak memuaskan. Ini dapat dilakukan seperti berikut.
</p> <com:TTextHighlighter Language="php" CssClass="source block-content" id="code10" > @@ -295,7 +295,7 @@ memperbaiki pengalaman pengguna dengan meningkatkan tanggapan aplikasi. Satu car Prado::using('System.Web.UI.ActiveControls.*'); </com:TTextHighlighter> - <p id="80075" class="block-content">Jika anda mencoba aplikasi sekarang, anda akan melihat bahwa halaman tidak perlu lagi mengambil ulang untuk menghitung dan menampilkan jumlah total yang dikonversi. + <p id="80075" class="block-content">Jika Anda mencoba aplikasi sekarang, Anda akan melihat bahwa halaman tidak perlu lagi mengambil ulang untuk menghitung dan menampilkan jumlah total yang dikonversi. Akan tetapi, karena di sana tidak ada pengambilan halaman ulang, tidak ada petunjuk atau tidak jelas bahwa dengan mengklik pada tombol "Convert" telah terjadi. Selanjutnya kita bisa memperbaiki pengalaman pengguna dengan mengunah label teks "total" menjadi "calculating..." saat pengguna mengklik tombol "Convert". Label teks "total" masih dimutakhirkan dengan jumlah perhitungan baru seperti sebelumnya. </p> |