From 6a0174448c793cb071e1e6d12f3da3a65eeb4e15 Mon Sep 17 00:00:00 2001 From: kabayan <> Date: Wed, 31 Oct 2007 20:41:11 +0000 Subject: Indonesian: Huge typos corrections and more formal language. --- .../pages/ActiveControls/id/ActiveButton.page | 11 +++--- .../pages/ActiveControls/id/ActiveCheckBox.page | 4 +- .../ActiveControls/id/ActiveCustomValidator.page | 2 +- .../pages/ActiveControls/id/ActiveHyperLink.page | 2 +- .../protected/pages/ActiveControls/id/Home.page | 18 ++++----- .../pages/Advanced/Samples/I18N/id/Home.page | 4 +- .../protected/pages/Advanced/id/Assets.page | 16 ++++---- .../protected/pages/Advanced/id/Auth.page | 8 ++-- .../protected/pages/Advanced/id/Collections.page | 4 +- .../protected/pages/Advanced/id/Error.page | 2 +- .../protected/pages/Advanced/id/I18N.page | 34 ++++++++--------- .../protected/pages/Advanced/id/Logging.page | 2 +- .../protected/pages/Advanced/id/MasterContent.page | 2 +- .../protected/pages/Advanced/id/Performance.page | 6 +-- .../protected/pages/Advanced/id/Scripts.page | 32 ++++++++-------- .../protected/pages/Advanced/id/Scripts1.page | 10 ++--- .../protected/pages/Advanced/id/Scripts2.page | 16 ++++---- .../protected/pages/Advanced/id/Scripts3.page | 6 +-- .../protected/pages/Advanced/id/Security.page | 2 +- .../protected/pages/Advanced/id/Themes.page | 10 ++--- .../pages/Configurations/id/AppConfig.page | 8 ++-- .../pages/Configurations/id/Templates1.page | 6 +-- .../pages/Configurations/id/Templates2.page | 4 +- .../pages/Configurations/id/Templates3.page | 14 +++---- .../pages/Configurations/id/UrlMapping.page | 2 +- .../protected/pages/Database/id/ActiveRecord.page | 44 +++++++++++----------- .../protected/pages/Database/id/DAO.page | 6 +-- .../protected/pages/Database/id/SqlMap.page | 22 +++++------ .../pages/Fundamentals/id/Components.page | 2 +- .../protected/pages/Fundamentals/id/Controls.page | 6 +-- .../pages/GettingStarted/id/AboutPrado.page | 2 +- .../pages/GettingStarted/id/CommandLine.page | 14 +++---- .../pages/GettingStarted/id/HelloWorld.page | 8 ++-- .../pages/GettingStarted/id/Installation.page | 6 +-- .../pages/GettingStarted/id/Introduction.page | 14 +++---- .../pages/GettingStarted/id/Upgrading.page | 2 +- .../protected/pages/Services/id/SoapService.page | 4 +- .../protected/pages/Tutorial/id/AjaxChat.page | 24 ++++++------ .../pages/Tutorial/id/CurrencyConverter.page | 28 +++++++------- 39 files changed, 203 insertions(+), 204 deletions(-) (limited to 'demos/quickstart/protected/pages') 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 @@

TActiveButton adalah kontrol aktif selain TButton. -Ketika TActiveButton diklik daripada permintaan postback normal, permintaan callback yang diinisiasi. Event OnCallback dimunculkan selama permintaan callback dan dimunculkan setelah event OnClick. +Ketika TActiveButton diklik pada permintaan postback normal, permintaan callback yang diinisiasi. Event OnCallback dimunculkan selama permintaan callback dan dimunculkan setelah event OnClick.

Ketika properti ActiveControl.EnableUpdate adalah true, mengubah properti Text selama permintaan callback akan memutakhirkan judul tombol pada sisi-klien.

-

Karena event OnCallback hanya dimunculkan selama permintaan callback, pengendali event OnCallback bisas dipakai untuk menangani logika terutama yang terkait dengan permintaan callback. Pengendali event OnClick dimunculkan kapan saja tombol diklik, meskipun javascript dimatikan.

+

Karena event OnCallback hanya dimunculkan selama permintaan callback, pengendali event OnCallback bisa dipakai untuk menangani logika terutama yang terkait dengan permintaan callback. Pengendali event OnClick dimunculkan kapan saja tombol diklik, meskipun javascript dimatikan.

Contoh berikut menggunakan kedua event OnClick dan OnCallback dari TActiveButton.

@@ -39,8 +39,7 @@ permintaan callback ditampung. OnCallback="button_callback" ActiveControl.CallbackParameter="value" /> -

In the OnCallback event handler method, the CallbackParameter -is available in the $param object.

+

Dalam metode pengendali event OnCallback, CallbackParameter tersedua di dalam obyek $param.

public function button_callback($sender, $param) { @@ -51,8 +50,8 @@ public function button_callback($sender, $param)

Menambah Perilaku Sisi Klien

Di dalam properti ActiveControl adalah turunan dari -TCallbackClientSide yang tersedia sebagi ClientSide dari TActiveButton. -Properti ClientSide berisi sub-properti, serperti RequestTimeOut, dan pengendali event javascript sisi-klien, seperti OnLoading, yang dipakai oleh sisi-klien saat membuat permitaan callback. +TCallbackClientSide yang tersedia sebagai ClientSide dari TActiveButton. +Properti ClientSide berisi sub-properti, serperti RequestTimeOut, dan pengendali event javascript sisi-klien, seperti OnLoading, dipakai oleh sisi-klien saat membuat permitaan callback. Contoh berikut mendemonstrasikan menghidup matikan indikator "loading" saat sisi-klien membuat permintaan callback.

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 @@

TActiveCheckBox adalah kontrol aktif selain TCheckbox. Properti AutoPostBack - dari TActiveCheckBox standarnya disetel menjadi true. + dari TActiveCheckBox standarnya disetel true. Selanjutnya, saat kotak centang diklik, event OnCallback muncul setelah event OnCheckedChanged.

Properti Text dan Checked dari TActiveCheckBox bisa diubah selama permintaan callback. Properti TextAlign dari - TActiveCheckBox tidak bisa diubah selama permintaan + TActiveCheckBox tidak bisa diubah saat permintaan callback.

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 @@

Melakukan validasi kustom hanya menggunakan event validasi OnServerValidate sisi-server. Sisi-klien menggunakan callback untuk memunculkan event onServerValidate. Properti ClientValidationFunction dimatikan - dan akan mengeluarkan kekecualian jika mencoba untuk menyetel properti ini. + dan akan mengeluarkan eksepsi jika mencoba untuk menyetel properti ini.

Harap berhati-hati onServerValidate 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 @@

Kontrol aktif selain komponen THyperLink. -Selama permintaan callback, perubahan terhadap properti Text, ImageUrl, +Saat permintaan callback, perubahan terhadap properti Text, ImageUrl, NavigateUrl dan Target pada sisi server juga akan mengubah atribut serta konten terkait di sisi-klien.

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 ClientSide yang menyediakan banyak properti untuk mengkustomisasi kontrol. Properti CallbackClient dari kelas TPage 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 kelas javascript.

Untuk demo cepat atas kontrol aktif, coba kontrol -TActiveButton. Lihat juga bagian akhir dari tutorial Pengubah Kurs untuk conton lebih mendalam. +TActiveButton. Lihat juga bagian akhir dari tutorial Pengubah Kurs untuk contoh lebih mendalam.

* tutorial untuk kontrol ini belum lengkap.

@@ -29,7 +29,7 @@ TActiveButton. Lihat juga bagian akhir dari tutorial TActiveCheckBox mewakili kotak centang pada halaman Web. Ia dapat dipakai untuk mengoleksi input dua-kondisi pengguna - dan memicu permintaan callback. + serta memicu permintaan callback.
  • @@ -74,8 +74,8 @@ TActiveButton. Lihat juga bagian akhir dari tutorial TActiveRadioButton 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.
  • @@ -96,20 +96,20 @@ TActiveButton. Lihat juga bagian akhir dari tutorial
  • * TActiveCheckBoxList - 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.
  • * TActiveDropDownList 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.
  • * TActiveListBox - 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.
  • @@ -320,7 +320,7 @@ TActiveButton. Lihat juga bagian akhir dari tutorial TActivePageAdapter - memproses masa-hidup halaman untuk permintaan callback. + memroses masa-hidup halaman untuk permintaan callback.
  • 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 @@

    Internasionlisasi dalam PRADO

    -

    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.

    +

    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.

    -Saat ini kultur anda adalah <%= $this->Page->CurrentCulture %>. +Saat ini kultur Anda adalah <%= $this->Page->CurrentCulture %>.

  • Elemen <modules> berisi konfigurasi untuk daftar modul. Setiap modul ditetapkan dengan elemen <module>. Setiap modul diidentifikasi secara unik oleh atribut id dan tipe class. Pasangan PropertyName="PropertyValue" menetapkan nilai awal untuk properti modul.
  • -
  • Elemen <parameters> 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, +
  • Elemen <parameters> 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, Catatan, jika atribut value tidak ditetapkan, seluruh parameter XML node (dari tipe TXmlElement) akan dikembalikan sebagai nilai parameter. Sebagai tambahan, modul System.Util.TParameterModule menyediakan satu cara untuk mengambil parameter dari file XML eksternal. Lihat lebih jelasnya dalam dokumentasi API.
  • -
  • Elemen <include> membolehkan seseorang menyertakan file konfigurasi eksternal. Ia sudah diperkenalkan sejak v3.1.0. Atribut file menetapkan file konfigurasi eksternal dalam format namespace. Nama ekstensi dari file harus .xml. Atribut when berisi ekspresi PHP dan opsional (standarnya true). Hanya ketika ekspresi mengevaluasi true, file konfigurasi eksternal akan disertakan. Konteks ekspresi adalah aplikasi, misalnya $this dalam ekspresi akan merujuk ke obyek aplikasi. +
  • Elemen <include> membolehkan seseorang menyertakan file konfigurasi eksternal. Sudah diperkenalkan sejak v3.1.0. Atribut file menetapkan file konfigurasi eksternal dalam format namespace. Nama ekstensi dari file harus .xml. Atribut when berisi ekspresi PHP dan opsional (standarnya true). Hanya ketika ekspresi mengevaluasi true, file konfigurasi eksternal akan disertakan. Konteks ekspresi adalah aplikasi, misalnya $this dalam ekspresi akan merujuk ke obyek aplikasi.
  • Elemen <services> mirip dengan elemen <modules>. Ia sebagian besar menetapkan layanan yang disediakan oleh aplikasi. Di dalam elemen <service>, seseorang dapat memiliki salah satu elemen di atas. Ini akan efektif hanya ketika layanan terkait sedang diminta.
  • @@ -53,7 +53,7 @@ File konfigurasi eksternal mempunyai format yang sama seperti dijelaskan di atas

    -Standarnya tanpa konfigurasi eksplisit, aplikasi PRADO akan mengambil beberapa modul inti, seperti THttpRequest, THttpResponse, dll. Ia juga akan menyediakan TPageService 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 THttpRequest, THttpResponse, dll. Ia juga akan menyediakan TPageService 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.

    $Id: AppConfig.page 1695 2007-02-13 14:16:09Z xue $
    \ 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, PropertyName adalah tidak sensitif-huruf dan bisa berupa nama properti atau subproperti.

    -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 Init 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 Init dari kontrol.

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

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

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

    $Id: Templates1.page 1902 2007-05-07 04:17:37Z wei $
    \ 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

    Tag Asset

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

    Format tag asset adalah sebagai berikut, @@ -81,7 +81,7 @@ Format tag asset adalah sebagai berikut, di mana LocalFileName 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.

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

    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 @@

    Tag Properti Dinamis

    -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,

    <com:ComponentType PropertyName=DynamicPropertyTag ...> @@ -12,7 +12,7 @@ body content </com:ComponentType>

    -di mana anda dapat mengurung DynamicPropertyTag di dalam tanda kutip tunggal atau dua agar pembacaannya lebih baik. +di mana Anda dapat mengurung DynamicPropertyTag di dalam tanda kutip tunggal atau dua agar pembacaannya lebih baik.

    Seperti tag konten dinamis, kami mempunyai tag ekspresi, tag databind, tag parameter, tag asset dan tag lokalisasi. (Catatan, tidak ada tag pernyataan di sini.) @@ -45,7 +45,7 @@ Format tag databind adalah sebagai berikut, <%# PhpExpression %>

    -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,

    <com:TLabel> @@ -56,7 +56,7 @@ Sejak v3.0.2, tag ekspresi dan tag databind dapat direkatkan di dalam string sta </com:TLabel>

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

    @@ -74,7 +74,7 @@ Catatan, parameter aplikasi biasanya didefinisikan konfigurasi aplikasi atau kon

    Tag Asset

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

    Format tag asset adalah sebagai berikut, @@ -86,13 +86,13 @@ Format tag asset adalah sebagai berikut, di mana LocalFileName 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.

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

    Tag Lokalisasi

    -Tag lokalisasi mewakili teks yang dilokalisasi. Formatnya adalah sebagai berikut, +Tag lokalisasi mewakili teks yang dilokalisir. Formatnya adalah sebagai berikut,

    <%[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 "\d+" (1 atau lebih digit). Intinya, nama dan nilai atribut Parameters digunakan sebagai substrings dalam penggantian tempat pada string Pattern untuk membentuk string ekspresi reguler lengkap.

    -
    Catatan: Jika anda bermaksud untuk menggunakan properti RegularExpression anda perlu mengulang garis miring dalam ekspresi reguler. +
    Catatan: Jika Anda bermaksud untuk menggunakan properti RegularExpression Anda perlu mengulang garis miring dalam ekspresi reguler.

    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.

    -

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

    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.

    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 Pemeta Data SqlMap. 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 SqlMap digambarkan dalam diagram berikut. Lebih rinci mengenai Pemeta Data SqlMap dapat ditemukan dalam + "Hubungan" antara Rekaman Aktif dan SqlMap digambarkan dalam diagram berikut. Lebih rinci mengenai Pemeta Data SqlMap dapat ditemukan dalam Manual SqlMap. alt="Rekaman Aktif dan SqlMap DataMapper" id="fig:diagram.png" class="figure"/>

    - Kelas Rekaman Aktif mempunyai fungsionalitas untuk melakukan tugas-tugas berikut. + Kelas Rekaman Aktif berfungsi untuk melakukan tugas-tugas berikut.

    • Membuat, Mengambil, Memutakhirkan dan Menghapus rekaman.
    • @@ -42,15 +42,15 @@

    Implikasi Desain

    -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 Customer, kali berikutnya anda meminta kustomer itu, anda akan kembali mendapatkan turunan lain dari obyek Customer. Ini berarti bahwa perbandingan tepat (misalnya menggunakan ===) akan mengembalikan false, sementara perbandingan bebas (misalnya menggunakan ==) 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 Customer, kali berikutnya Anda meminta kustomer itu, Anda akan kembali mendapatkan turunan lain dari obyek Customer. Ini berarti bahwa perbandingan tepat (misalnya menggunakan ===) akan mengembalikan false, sementara perbandingan bebas (misalnya menggunakan ==) akan mengembalikan true jika nilai obyek sama menurut perbandingan bebas.

    Implikasi desain ini terkait dengan pertanyaan berikut. "Anda pikir kustomer sebagai obyek, di mana hanya satu, -atau anda pikir obyek yang anda operasikan sebagai duplikat dari database?" +atau Anda pikir obyek yang Anda operasikan sebagai duplikat dari database?" 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. -"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. +"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." [A. Hejlsberg 2003]

    @@ -101,10 +101,10 @@ class UserRecord extends TActiveRecord

    Setiap kolom dari tabel "users" harus mempunyai properti terkait atas nama yang sama seperti nama kolom dalam kelas UserRecord. - 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 TABLE adalah opsional saat nama kelas adalah sama seperti nama tabel dalam database, sebaliknya TABLE harus - menetapkan nama tabel yang terkait dengan kelas Rekaman Aktif anda. + menetapkan nama tabel yang terkait dengan kelas Rekaman Aktif Anda.

    Tip: @@ -112,7 +112,7 @@ Anda dapat menetapkan nama-nama tabel yang memenuhi syarat. Contohnya untuk MySQ

    - Karena TActiveRecord memperluas TComponent, metode penentu dan pengambil dapat didefinisikan guna membolehkan kontrol melalui bagaimana variabel disetel dan dikembalikan. Sebagai contoh, menambah properti $level untuk menggunakan kelas UserRecord: + Karena TActiveRecord memperluas TComponent, metode penyetel dan pengambil dapat didefinisikan guna membolehkan kontrol melalui bagaimana variabel disetel dan dikembalikan. Sebagai contoh, menambah properti $level untuk menggunakan kelas UserRecord:

    class UserRecord extends TActiveRecord { @@ -155,7 +155,7 @@ $conn = new TDbConnection($dsn, 'dbuser','dbpass'); TActiveRecordManager::getInstance()->setDbConnection($conn); -

    Alternatifnya, anda dapat membuat basis kelas dan mengganti metode getDbConnection() untuk mengembalikan +

    Alternatifnya, Anda dapat membuat basis kelas dan mengganti metode getDbConnection() 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).

    @@ -196,7 +196,7 @@ class MyDb2Record extends TActiveRecord
    Tip: - Atribut EnableCache 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. Modul cache juga harus didefinisikan agar cache berfungsi. + Atribut EnableCache 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. Modul cache juga harus didefinisikan agar cache berfungsi.

    @@ -369,7 +369,7 @@ $user2->save(); //sisipkan rekaman baru
    Tip: 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.
    +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.

    Untuk memutakhirkan rekaman dalam database, cukup ubah satu atau lebih properti obyek Rekaman Aktif yang sudah diambil dari database dan kemudian panggil metode save(). @@ -387,7 +387,7 @@ Obyek Rekaman Aktif mempunyai masa-hidup sederhana seperti digambarkan dalam dia alt="Active Records Life Cycle" id="fig:cycle.png" class="figure"/>

    Kita melihat bahwa obyek TActiveRecord baru dibuat dengan menggunakan salah satu metode find*() ataupun membuat turunan baru dengan menggunakan kata kunci PHP new. Obyek yang dibuat dengan metode find*() dimulai dengan kondisi clean. Turunan baru TActiveRecord membuat selain metode find*() yang dimulai dengan kondisi new. -Kapan saja anda memanggil metode save() pada obyek TActiveRecord, obyek memasuki keadaan clean. Obyek dalam clean menjadi dirty ketika satu atau lebih keadaan internalnya diubah. Pemanggilan metode delete() pada obyek mengakhiri masa-hidup obyek, tidak ada aksi lanjutan yang dilakukan pada obyek. +Kapan saja Anda memanggil metode save() pada obyek TActiveRecord, obyek memasuki keadaan clean. Obyek dalam clean menjadi dirty ketika satu atau lebih keadaan internalnya diubah. Pemanggilan metode delete() pada obyek mengakhiri masa-hidup obyek, tidak ada aksi lanjutan yang dilakukan pada obyek.

    Menghapus rekaman yang sudah ada

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

    Tip: -Untuk database SQLite, anda dapat membuat tabel yang mendefinisikan batasan kunci asing seperti contoh di bawah ini. Akan tetapi, batasan ini TIDAK +Untuk database SQLite, Anda dapat membuat tabel yang mendefinisikan batasan kunci asing seperti contoh di bawah ini. Akan tetapi, batasan ini TIDAK dipaksakan oleh database SQLite itu sendiri. CREATE TABLE foo @@ -603,7 +603,7 @@ Ini berlaku untuk hubungan termasuk BELONGS_TO, HAS_ONE dan HAS_MANY. Lihat seksi Tabel Asosiaasi Merujuk Dirinya Sendiri untuk memecahkan kerancuan atas hubungan MANY_TO_MANY.
    -

    Hubungan "has many" tidak diambil secara otomatis ketika anda menggunakan salah satu metode finder Rekaman Aktif. +

    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.

    @@ -739,7 +739,7 @@ class Category extends TActiveRecord

    Pemetaan Tabel Asosiasi

    -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 has many, 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 has many, 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.

    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

    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 SkillRecord untuk daftar obyek PlayerRecord. -Dalam hal ini, anda melakukan query dalam dua tahap. Tahap pertama meng-query tabel Players untuk mencari seluruh baris dari pemain yang anda inginkan. Tahap kedua mencari obyek SkillRecord ID pemain terkait untuk setiap barisnya dalam tabel asosiasi Player_Skills menggunakan sebuah inner join. +Dalam hal ini, Anda melakukan query dalam dua tahap. Tahap pertama meng-query tabel Players untuk mencari seluruh baris dari pemain yang Anda inginkan. Tahap kedua mencari obyek SkillRecord ID pemain terkait untuk setiap barisnya dalam tabel asosiasi Player_Skills menggunakan sebuah inner join.

    Desain Rekaman Aktif Prado mengimplementasikan dua tahap pendekatan. Untuk hubungan entitas Players-Skills M-N (many-to-many), kita perlu mendefinisikan sebuah hubungan has many dalam kelas PlayerRecord dan sebagai tambahan mendefinisikan hubungan has many dalam kelas SkillRecord juga. @@ -883,10 +883,10 @@ PlayerSkillAssocation::finder()->deleteByPk(array('fk1','fk2'));

    Pengambilan Malas Obyek Terkait

    Catatan: -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.
    -

    Menggunakan metode with_xxx() 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 TComponent 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 PlayerRecord dapat mengambil obyek asing $skills secara kondisional. +

    Menggunakan metode with_xxx() 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 TComponent 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 PlayerRecord dapat mengambil obyek asing $skills secara kondisional.

    class PlayerRecord extends BaseFkRecord @@ -970,7 +970,7 @@ class UserRecord extends TActiveRecord

    Dengan pemetaan kolom di atas, kita mengalamatkan first_name menggunakan $userRecord->firstName -daripada $userRecord->first_name. Ini membantu pemisahan dari logika dan model. +daripada $userRecord->first_name. Ini membantu pemisahan dari logika dengan model.

    Referensi

    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 PHP Data Objects (PDO). 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.

    Catatan: -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 PHP Manual. +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 PHP Manual.

    PRADO DAO sebagian besar terdiri dari empat kelas (kebalikan dari PDO yang hanya dua kelas, PDO dan PDOStatement): @@ -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 serangan injeksi SQL 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.

    -Tempat parameter dapat bernama (diwakili dengan token unik) ataupun tidak bernama (diwakili dengan tanda tanya). Panggil TDbCommand.bindParameter() atau TDbCommand.bindValue() 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 TDbCommand.bindParameter() atau TDbCommand.bindValue() 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.

    // 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 @@

    Pemeta Data

    -

    Pemeta Data memindahkan data antara obyek dan database sementara memeliharanya berdiri sendiri satu sama lain dan pemetanya sendiri. Jika anda mulai dengan - Active Records, 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. +

    Pemeta Data memindahkan data antara obyek dan database sementara memeliharanya berdiri sendiri satu sama lain dan pemetanya sendiri. Jika Anda mulai dengan + Active Records, 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.

    Pemeta Data memisahkan obyek dalam-memori dari database. Tanggung jawabnya adalah mentransfer data diantara keduanya dan juga saling mengisolasinya. @@ -12,21 +12,21 @@

    Kapan Menggunakannya

    -

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

    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.

    -

    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 database yang sudah ada, ini sangat berharga. +

    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 database yang sudah ada, ini sangat berharga.

    -

    Harga tentunya merupakan lapisan ekstra yang tidak anda peroleh dengan Rekaman Aktif, maka pengujian menggunakan pola ini adalah kompleksitas dari logika bisnis. Jika anda memiliki logika bisa cukup sederhana, Rekaman Aktif mungkin akan mencukupi. +

    Harga tentunya merupakan lapisan ekstra yang tidak Anda peroleh dengan Rekaman Aktif, maka pengujian menggunakan pola ini adalah kompleksitas dari logika bisnis. Jika Anda memiliki logika bisa cukup sederhana, Rekaman Aktif mungkin akan mencukupi. Untuk logika yang lebih rumit, Pemeta Data mungkin lebih cocok.

    Pemeta Data SqlMap

    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.

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

    -

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

    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.

    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();

    Tip: Atribut EnableCache 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. modul cache juga harus didefinisikan agar cache berfungsi.

    @@ -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");

    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 $callback merujuk ke callback PHP yang benar (misalnya nama fun

    Namespace

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

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

    -Hubungan leluhur-anak biasanya dilakukan oleh kerangka kerja melalui template. 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 template. Dalam kode, Anda dapat menetapkan kontrol secara eksplisit sebagai anak dari yang lainnya menggunakan salah satu metode berikut, $parent->Controls->add($child); $parent->Controls[]=$child; @@ -19,12 +19,12 @@ di mana properti Controls merujuk ke koleksi kontrol anak dari leluhur.

    Identifikasi Kontrol

    -Setiap kontrol mempunyai properti ID yang dapat secara unik dapat mengidentifikasi dirinya sendiri diantara kontrol keluarganya. Sebagai tambahan, setiap kontrol mempunyai UniqueID dan ClientID yang dapat dipakai untuk mengidentifikasi kontrol secara global dalam susunan di mana kontrol berada. UniqueID dan ClientID 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 UniqueID atau ClientID. +Setiap kontrol mempunyai properti ID yang dapat secara unik dapat mengidentifikasi dirinya sendiri diantara kontrol keluarganya. Sebagai tambahan, setiap kontrol mempunyai UniqueID dan ClientID yang dapat dipakai untuk mengidentifikasi kontrol secara global dalam susunan di mana kontrol berada. UniqueID dan ClientID 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 UniqueID atau ClientID.

    Wadah Penamaan

    -Setiap kontrol mempunyai wadah penamaan yang mana kontrol membuat ruang nama (namespace) unik untuk membedakan antara kontrol dengan ID yang sama. Sebagai contoh, kontrol TRepeater membuat multipel item masing-masing mempunyai kontrol anak dengan ID 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 ID bersama dengan ID-nya sendiri. Seperti yang mungkin sudah anda mengerti, UniqueID dan ClientID bergantung pada wadah penamaan. +Setiap kontrol mempunyai wadah penamaan yang mana kontrol membuat ruang nama (namespace) unik untuk membedakan antara kontrol dengan ID yang sama. Sebagai contoh, kontrol TRepeater membuat multipel item masing-masing mempunyai kontrol anak dengan ID 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 ID bersama dengan ID-nya sendiri. Seperti yang mungkin sudah Anda mengerti, UniqueID dan ClientID bergantung pada wadah penamaan.

    Kontrol dapat bertindak sebagai wadah penamaan jika ia menerapkan antarmuka INamingContainer. 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

  • Integrasi tim - Penyajian dan logika disimpan secara terpisah. Aplikasi PRADO dapat berganti tema.
  • 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.
  • 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.
  • -
  • 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.
  • +
  • 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.
  • Dukungan I18N dan L10N - PRADO menyertakan dukungan lengkap untuk membangun aplikasi dengan multipel bahasa dan lokal.
  • Sesuai XHTML - Halaman Web yang dibuat oleh PRADO sesuai dengan XHTML.
  • 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

    Persyaratan

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

    Usage

    -Jika anda ketik php path/ke/framework/prado-cli.php, anda seharusnya melihat informasi berikut. Alternatifnya, jika anda tidak pada Windows, anda dapat mencoba untuk mengubah prado-cli.php ke dalam eksecutabel dan menjalankannya seperti sebuah naskah

    +Jika Anda ketik php path/ke/framework/prado-cli.php, Anda seharusnya melihat informasi berikut. Alternatifnya, jika Anda tidak pada Windows, Anda dapat mencoba untuk mengubah prado-cli.php ke dalam eksecutabel dan menjalankannya seperti sebuah naskah

    Command line tools for Prado 3.0.5. usage: php prado-cli.php action [optional] @@ -35,16 +35,16 @@ actions:

    Untuk membuat kerangka proyek Prado, lakukan yang berikut:

      -
    1. Ubah direktori di mana anda ingin membuat kerangka proyek.
    2. +
    3. Ubah direktori di mana Anda ingin membuat kerangka proyek.
    4. Ketik, php ../prado/framework/prado-cli.php -c helloworld, sedangkan - helloworld adalah nama direktori di mana file kerangka proyek ingin anda buat.
    5. + helloworld adalah nama direktori di mana file kerangka proyek ingin Anda buat.
    6. Ketik, php ../prado/framework/prado-cli.php -t helloworld untuk membuat perlengkapan pengujian untuk proyek helloworld.

    Shell Interaktif

    -Shell interaktif membolehkan anda untuk mengevaluasi pernyataan PHP dari baris perintah. -Naskah prado-cli.php 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 prado dan anda mengetikan. +Shell interaktif membolehkan Anda untuk mengevaluasi pernyataan PHP dari baris perintah. +Naskah prado-cli.php 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 prado dan Anda mengetikkannya.

    @@ -72,7 +72,7 @@ Terakhir, kita ingin menggunakan modul data untuk meng-query sebuah tulisan deng >> $db->queryPostByID(1) -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. 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 @@

    Aplikasi PRADO Pertama Saya

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

    -"Hello World" barangkali adalah aplikasi PRADO interaktif paling sederhana yang bisa anda buat. Ia menampilkan kepada pengguna-akhir sebuah halaman dengan tombol kirim yang judulnya adalah Click Me. Setelah pengguna mengklik tombol, judulnya diubah ke Hello World. +"Hello World" barangkali adalah aplikasi PRADO interaktif paling sederhana yang bisa Anda buat. Ia menampilkan kepada pengguna-akhir sebuah halaman dengan tombol kirim yang judulnya adalah Click Me. Setelah pengguna mengklik tombol, judulnya diubah ke Hello World.

    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 onclick. @@ -19,7 +19,7 @@ PRADO mempromosikan pemrograman Web berbasis-komponen dan kendali-event. Tombol Aplikasi PRADO kita terdiri dari tiga file, index.php, Home.page dan Home.php, yang diatur sebagai berikut, -di mana setiap direktori dijelaskan sebagai berikut. Catatan, struktur direktori di atas bisa dikustomisasi. Sebagai contoh, seseorang dapat memindahkan direktori protected 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 protected ke luar direktori Web. Anda akan mengetahui bagaimana melakukan ini setelah Anda melewati tutorial ini.

    • assets - direktori yang menyimpan file pribadi yang dipublikasikan. Lihat seksi assets untuk lebih jelasnya. Direktori ini harus bisa ditulisi oleh proses server Web.
    • @@ -32,7 +32,7 @@ di mana setiap direktori dijelaskan sebagai berikut. Catatan, struktur direktori Tip:Anda juga dapat menggunakan framework/prado-cli.php naskah baris perintah untuk membuat struktur direktori Prado. Sebagai contoh, ketik perintah -php path/to/prado-cli.php -c helloworld dalam direktori di mana anda ingin membuat proyek helloworld. +php path/to/prado-cli.php -c helloworld dalam direktori di mana Anda ingin membuat proyek helloworld.

    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 @@

    Menginstalasi PRADO

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

    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.

    -Instalasi PRADO anda selesai dan anda dapat mulai bermain dengan demo aplikasi yang disertakan dalam rilis PRADO via URL http://web-server-address/prado/demos/. Di sini kami menganggap PRADO diurai ke subdirektori prado di bawah DocumentRoot pada server Web. +Instalasi PRADO Anda selesai dan dapat mulai bermain dengan demo aplikasi yang disertakan dalam rilis PRADO via URL http://web-server-address/prado/demos/. Di sini kami menganggap PRADO diurai ke subdirektori prado di bawah DocumentRoot pada server Web.

    -Jika anda menemukan masalah dengan demo aplikasi, silahkan gunakan naskah pemeriksa persyaratan, yang dapapt diakses melalui http://web-server-address/prado/requirements/index.php, 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 http://web-server-address/prado/requirements/index.php, untuk terlebih dahulu memeriksa apakah konfigurasi server Anda memenuhi kondisi yang dibutuhkan oleh PRADO.

    $Id: Installation.page 1650 2007-01-24 06:55:32Z wei $
    \ 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 @@

    Selamat datang di Tutorial Cepat PRADO

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

    -Jika anda adalah pengguna yang sudah mengenal PRADO 3.x dan ingin mempelajari peningkatan apa yang tersedia pada versi baru, silahkan periksa halaman fitur baru. 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 fitur baru. Sebaliknya, seksi berikut sangat membantu bagi para pemula.

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