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. --- .../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 +++---- 14 files changed, 75 insertions(+), 75 deletions(-) (limited to 'demos/quickstart/protected/pages/Advanced/id') 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 @@
-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 down.gif dan up.gif, untuk menampilkan kondisi toggle berbeda. Jika kita ingin file gambar disimpan di bawah direktori images 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 down.gif dan up.gif, untuk menampilkan kondisi toggle berbeda. Jika kita ingin file gambar disimpan di bawah direktori images 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.
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
-PRADO menyediakan beberapa metode untuk penerbitan asset atu direktori yang berisi asset: +PRADO menyediakan beberapa metode untuk penerbitan asset atau direktori yang berisi asset:
-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.
-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, System.Web.TAssetManager hanya menerbitkan asset saat ia memiliki waktu modifikasi file lebih baru daripada file yang pernah diterbitkan. Ketika aplikasi dijalankan di bawah mode Performance, 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, System.Web.TAssetManager hanya menerbitkan asset saat ia memiliki waktu modifikasi file lebih baru daripada file yang pernah diterbitkan. Ketika aplikasi dijalankan dengan mode Performance, pemeriksaan cap waktu tersebut juga diabaikan.
-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.
-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,
-TDbUserManager 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 TDbUser. +TDbUserManager 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 TDbUser.
Untuk menggunakan TDbUserManager, 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.
-Untuk menghidupkan manipulasi obyek-terorientasi atas koleksi, PRADO menyediakan kelas koleksi bertenaga. Diantaranya, TList dan TMap 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, TList dan TMap 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.
-Seringkali kita ingin memperluas TList untuk melakukan operasi tambahan untuk setiap penambahan atau penghapusan sebuah item. Satu-satunya metode yang diperlukan kelas anak untuk mengganti adalah insertAt() dan removeAt(). Sebagai contoh, untuk memastikan daftar hanya berisi item yang bertipe TControl, kita dapat mengganti insertAt() sebagai berikut, +Seringkali kita ingin memperluas TList untuk melakukan operasi tambahan untuk setiap penambahan atau penghapusan sebuah item. Satu-satunya metode yang diperlukan kelas anak untuk mengganti adalah insertAt() dan removeAt(). Sebagai contoh, guna memastikan daftar hanya berisi item yang bertipe TControl, kita dapat mengganti insertAt() sebagai berikut,
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.
+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.
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).
Untuk menghidupkan fitur lokalisasi dalam PRADO, anda perlu menambahkan beberapa opsi konfigurasi dalam konfigurasi aplikasi anda. -Pertama anda perlu menyertakan namespace System.I18N.* ke path anda. +
Untuk menghidupkan fitur lokalisasi dalam PRADO, Anda perlu menambahkan beberapa opsi konfigurasi dalam konfigurasi aplikasi Anda. +Pertama Anda perlu menyertakan namespace System.I18N.* ke path Anda.
Kemudian, jika anda ingin menterjemahkan beberapa teks dalam aplikasi anda, anda perlu menambahkan sumber data pesan terjemahan.
+Kemudian, jika Anda ingin menerjemahkan beberapa teks dalam aplikasi Anda, perlu ditambahkan sumber data pesan terjemahan.
Di mana source dalam translation adalah path titik ke direktori di mana anda akan menyimpan katalog pesan terjemahan. Atribut autosave jika dihidupkan, menyimpan pesan tidak diterjemahkan kembali ke dalam katalog pesasn. +
Di mana source dalam translation adalah path titik ke direktori di mana Anda akan menyimpan katalog pesan terjemahan. Atribut autosave jika dihidupkan, menyimpan pesan tidak diterjemahkan kembali ke dalam katalog pesasn. Dengan menghidupkan cache, pesan yang diterjemahkan disimpan dalam direktori aplikasi runtime/i18n. Nilai marker dipakai untuk mengelilingi teks yang tidak diterjemahkan.
-Dengan konfigurasi lengkap, sekarang kita dapat mulai melokalisasi aplikasi anda. Jika anda menghidupkan autosave, setelah menjalankan aplikasi anda dengan beberapa aktivitas lokalisasi (misalnya menterjemahkan beberapa teks), anda akan melihat sebuah direktori dan messages.xml dibuat di dalam direktori source.
+Dengan konfigurasi lengkap, sekarang kita dapat mulai melokalisasi aplikasi Anda. Jika Anda menghidupkan autosave, setelah menjalankan aplikasi Anda dengan beberapa aktivitas lokalisasi (misalnya menterjemahkan beberapa teks), Anda akan melihat sebuah direktori dan messages.xml dibuat di dalam direktori source.
File katalog pesan terjemahan, jika menggunakan type="XLIFF", 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.
@@ -78,14 +78,14 @@ Setiap pesan terjemahan dilapisi dengan tag trans-unit, di mana souSekali globalisasi dihidupkan, anda dapat mengakses setelan globalisasi, seperti Culture, Charset, dll, menggunakan
+Sekali globalisasi dihidupkan, Anda dapat mengakses setelan globalisasi, seperti Culture, Charset, dll, menggunakan
Anda juga mengubah cara kultur ditentukan dengan mengubah atribut class dalam konfigurasi modul. Sebagai contoh, untuk menyetel kultur yang tergantung pada setelan browser, anda bisa menggunakan kelas TGlobalizationAutoDetect. +
Anda juga mengubah cara kultur ditentukan dengan mengubah atribut class dalam konfigurasi modul. Sebagai contoh, untuk menyetel kultur yang tergantung pada setelan browser, Anda bisa menggunakan kelas TGlobalizationAutoDetect.
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 tag kontrol template. Sebagai contoh, mengubah Culture ke "zh".
+Terakhir, Anda dapat mengubah setelan globalisasi dengan basis halaman demi halaman menggunakan tag kontrol template. Sebagai contoh, mengubah Culture ke "zh".Fungsi localize 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 $sender (menganggap, katakanlah, sender adalah sebuah tombol). Kode asli sebelum lokalisasi adalah sebagai berikut. +
Fungsi localize 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 $sender (menganggap, katakanlah, sender adalah sebuah tombol). Kode asli sebelum lokalisasi adalah sebagai berikut.
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. 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. Pesan dan string bisa dilokalisasi dalam PHP atau dalam template.
-Untuk menterjemahkan pesan atau string dalam template, gunakan TTranslate.Pesan Gabungan
-TTranslate
Properti Culture dan Currency dapat ditetapkan untuk membentuk angka spesifik lokal.
-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 Culture="de_DE" guna memperoleh kurs yang benar, misalnya 100,00$. Pemisah desimal dan pengelompokan kemudian juga dari lokal de_DE. Ini dapat menimbulkan beberapa kebingungan karena orang dari US memakai "," (koma) sebagai pemisah ribuan. Oleh karena itu, atribut Currency tersedia agar output dari hasil contoh berikut menghasilkan $100.00 +
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 Culture="de_DE" guna memperoleh kurs yang benar, misalnya 100,00$. Pemisah desimal dan pengelompokan kemudian juga dari lokal de_DE. Ini dapat menimbulkan beberapa kebingungan karena orang dari US memakai "," (koma) sebagai pemisah ribuan. Oleh karena itu, atribut Currency tersedia agar output dari hasil contoh berikut menghasilkan $100.00
Menggunakan fungsi localize atau komponen TTranslate 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 jumlah apel. Menggunakan fungsi localize atau komponen TTranslate 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 jumlah apel. Komponen TChoiceFormat melakukan pilihan terjemahan pesan/string. Contoh berikut mendemonstrasikan terjemahan pesan 2 pilihan sederhana.TChoiceFormat
-
-Kategori pesan adalah hirarkis. Kategori yang namanya awalan dari yang lain disebut menjadi leluhur kategori atas kategori lainnya. Sebagai contoh, kategori System.Web adalah leluhur dari kategori System.Web.UI dan System.Web.UI.WebControls. Pesan bisa diambil secara selektif menggunakan filter kategori hirarkis tersebut. Sebagai contoh, jika filter kategori adalah System.Web, maka semua pesan dalam System.Web dikembalikan. Sebagai tambahan, pesan dalam kategori anak seperti System.Web.UI.WebControls, juga dikembalikan. +Kategori pesan adalah hirarkis. Kategori yang namanya awalan dari yang lain disebut leluhur kategori atas kategori lainnya. Sebagai contoh, kategori System.Web adalah leluhur dari kategori System.Web.UI dan System.Web.UI.WebControls. Pesan bisa diambil secara selektif menggunakan filter kategori hirarkis tersebut. Sebagai contoh, jika filter kategori adalah System.Web, maka semua pesan dalam System.Web dikembalikan. Sebagai tambahan, pesan dalam kategori anak seperti System.Web.UI.WebControls, juga dikembalikan.
Dengan ketentuan, pesan yang dicatat dalam kode inti PRADO dikategorikan berdasarkan namespace dari kelas terkait. Sebagai contoh, pesan yang dicatat dalam TPage akan menjadi kategori System.Web.UI.TPage. 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.
-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.
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 TDataGrid. Guna mengurangi ukuran besarnya halaman yang dikirimkan melalui jaringan, dua strategi dapat dipakai.
-Pertama, anda dapat mematikan kondisi tampilan dengan menyetel EnableViewState 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 EnableViewState menjadi false untuk halaman atau beberapa kontrol pada halaman jika pengguna tidak perlu berinteraksi dengan halaman/kontrol.
-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 StatePersisterClass dari halaman menentukan kelas persisten kondisi yang dipakai. Standarnya menggunakan System.Web.UI.TPageStatePersister untuk menyimpan kondisi persisten dalam field tersembunyi. Anda bisa mengubah properti ini ke kelas persisten anda sendiri, selama kelas persister menerapkan antarmuka IPageStatePersister. 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 StatePersisterClass dari halaman menentukan kelas persisten kondisi yang dipakai. Standarnya menggunakan System.Web.UI.TPageStatePersister untuk menyimpan kondisi persisten dalam field tersembunyi. Anda bisa mengubah properti ini ke kelas persisten Anda sendiri, selama kelas persister menerapkan antarmuka IPageStatePersister. Anda dapat mengkonfigurasi properti ini dalam beberapa tempat, seperti konfigurasi aplikasi atau konfigurasi halaman menggunakan tag <pages> or <page>,
-Catatan, dalam SpecialPage di atas akan menggunakan MyPersister2 sebagai kelas persisternya, sementara halaman lainnya akan menggunakan MyPersister1. Oleh karena itu, anda dapat memiliki strategi perister kondisi untuk halaman yang berbeda. +Catatan, dalam SpecialPage di atas akan menggunakan MyPersister2 sebagai kelas persisternya, sementara halaman lainnya akan menggunakan MyPersister1. Oleh karena itu, Anda dapat memiliki strategi perister kondisi untuk halaman yang berbeda.
- 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.
@@ -17,13 +17,13 @@ Bimbingan cepat bagi tur JavaScript tingkat lanjut dengan beberapa fitur OO
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 Prototipe.js, Scriptaculous, moo.fx, Perilaku, YUI, - 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.
@@ -65,16 +65,16 @@ var myPet =
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.
-- 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.
@@ -113,7 +113,7 @@ annoyThePet(myCat.meow);
- 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:
- 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:
- 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.
- 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.
- 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.
- 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.
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;
Karena fungsi buttonClicked didefinisikan di luar obyek manapun kita cenderung berpikir kata kunci this akan berisi referensi ke - obyek window atau document (menganggap kode ini ada ditengah halaman HTML yang dilihat dalam browser.) + obyek window atau document (menganggap kode ini ada di tengah halaman HTML yang dilihat dalam browser.)
@@ -287,7 +287,7 @@ myButton.onclick();
- 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.
- 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 this. Masalahnya adalah bahwa this.formFields tidak didefinisikan jika this 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 oleh Sergio Pereira.
-Dalam hal anda tidak pernah menggunakannya, prototype.js adalah librari +Dalam hal Anda tidak pernah menggunakannya, prototype.js adalah librari JavaScript yang ditulis oleh Sam Stephenson. - Pemikiran yang hebat ini dan kode sesuai-standar 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 sesuai-standar yang ditulis dengan baik mengambil banyak beban terkait dengan pembuatan halaman web sangat interaktif dan kaya yang mengkarakterkan Web 2.0 di belakang Anda.
- 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.
- 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.
@@ -61,7 +61,7 @@ function test2()- Hal baik lainnya dari fungsi ini adalah bahwa anda bisa mengirimkan baik string id 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 id ataupun elemen obyek itu sendiri, yang menjadikan fungsi ini sangat berguna ketika membuat fungsi lain yang juga mengambil bentuk argumen.
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.
-Catatan terakhir pada event tekanan tombol; Jika anda ingin mendeteksi klik kiri anda bisa menggunakan Event.isLeftClick(event).
+Catatan terakhir pada event tekanan tombol; Jika Anda ingin mendeteksi klik kiri, Anda bisa menggunakan Event.isLeftClick(event).
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.
+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.
-Mari kita lihat pada beberapa kode agar anda bisa mendapatkan pengertian yang lebih baik atas apa yang sedang saya bicarakan.
+Mari kita lihat pada beberapa kode agar Anda bisa mendapatkan pengertian yang lebih baik atas apa yang sedang saya bicarakan.
Sekarang, melihat kode di atas, anda akan mencatat fungsi bindEvent. Ini mengambil metode sebelumnya showTagName dan memperlakukannya sebagai metode yang akan dipicu ketika seseorang mengklik salah satu dari item daftar kita.
+Sekarang, melihat kode di atas, Anda akan mencatat fungsi bindEvent. Ini mengambil metode sebelumnya showTagName dan memperlakukannya sebagai metode yang akan dipicu ketika seseorang mengklik salah satu dari item daftar kita.
Anda juga akan mencatat bahwa kita mengirimkan ini sebagai argumen ke fungsi bindEvent. Ini membolehkan kita untuk mereferensi obyek dalam konteks EventDispenser -di dalam fungsi showTagName(event) kita. Jika fungsi showTagName memerlukan parameter tambahan, anda melampirkannya ke parameter terakhir dari bindEvent. Sebagai contoh
+di dalam fungsi showTagName(event) kita. Jika fungsi showTagName memerlukan parameter tambahan, Anda melampirkannya ke parameter terakhir dari bindEvent. Sebagai contohSelanjutnya, anda akan melihat bind(this) yang dilampirkan ke fungsi iterator. +
Selanjutnya, Anda akan melihat bind(this) yang dilampirkan ke fungsi iterator. Ini sama sekali tidak berkaitan dengan event, ia berada di sini untuk membolehkan saya menggunakan this di dalam iterator. Jika kita tidak menggunakan bind(this), saya tidak bisa mereferensi metode showTagName di dalam iterator.
Ok, kita berlanjut untuk melihat metode kita yang sebenarnya dipanggil saat terjadi event. Karena kita sudah berhadapan dengan showTagName, mari kita lihat itu.
@@ -172,10 +172,10 @@ showTagName: function(event) } -Seperti yang anda lihat, fungsi ini menerima satu argumen--event. +
Seperti yang Anda lihat, fungsi ini menerima satu argumen--event. Agar kita mendapatkan elemen yang memicu event kita perlu mengirimkan argumen ke Event.element. Sekarang kita dapat memanipulasinya kapan saja.
-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.
+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.
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 TDatePicker pada halaman, datepicker dan dependensinya akan secara otomatis disertakan pada halaman.
+Sebagai contoh, jika Anda menambah komponen TDatePicker pada halaman, datepicker dan dependensinya akan secara otomatis disertakan pada halaman. -Lihat TClientScript untuk opsi penambahan kode Javascript kustom anda ke halaman.
+Lihat TClientScript untuk opsi penambahan kode Javascript kustom Anda ke halaman.
-Untuk menggunakan skema validasi cookie yang disediakan oleh PRADO, anda juga perlu mengambil cookie melalui koleksi Cookies dari THttpRequest dengan menggunakan pernyataan PHP berikut, +Untuk menggunakan skema validasi cookie yang disediakan oleh PRADO, Anda juga perlu mengambil cookie melalui koleksi Cookies dari THttpRequest dengan menggunakan pernyataan PHP berikut,
-Untuk menggunakan sebuah tema, anda perlu menyetel properti Theme dari halaman dengan nama tema, yaitu nama direktori tema. Anda dapat menyetelnya dalam konfigurasi halaman atau dalam konstruktor atau metode onPreInit() dari halaman. Anda tidak bisa menyetel properti setelah onPreInit() 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 Theme dari halaman dengan nama tema, yaitu nama direktori tema. Anda dapat menyetelnya dalam konfigurasi halaman atau dalam konstruktor atau metode onPreInit() dari halaman. Anda tidak bisa menyetel properti setelah onPreInit() karena saat itu, kontrol anak dari halaman sudah dibuat (skin harus diterapkan ke kontrol setelah kontrol tersebut dibuat.)
Untuk menggunakan skin tertentu dalam tema untuk sebuah kontrol, setel properti SkinID 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" ... />
-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 StyleSheetTheme dari halaman daripada Theme (anda bisa memiliki keduanya StyleSheetTheme dan Theme). +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 StyleSheetTheme dari halaman daripada Theme (Anda bisa memiliki keduanya StyleSheetTheme dan Theme).
Untuk menggunakan file Javascript dan file CSS yang berada dalam sebuah tema, kontrol THead harus ditempatkan pada template halaman. Ini dikarenakan tema akan meregistrasi file itu dengan halaman dan THead 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
-Semua tema standarnya harus ditempatkan di bawah direktori [AppEntryPath]/themes, di mana AppEntryPath merujuk ke direktori yang berisi naskah entri aplikasi. Jika anda ingin menggunakan direktori berbeda, konfigurasi properti BasePath dan BaseUrl dari modul System.Web.UI.TThemeManager dalam konfigurasi aplikasi, +Semua tema standarnya harus ditempatkan di bawah direktori [AppEntryPath]/themes, di mana AppEntryPath merujuk ke direktori yang berisi naskah entri aplikasi. Jika Anda ingin menggunakan direktori berbeda, konfigurasi properti BasePath dan BaseUrl dari modul System.Web.UI.TThemeManager dalam konfigurasi aplikasi,
-Membuat sebuah tema melibatkan pembuatan direktori tema dan penulisan file skin (dan kemungkinan file Javascript serta CSS). Nama file skin harus diakhiri dengan .skin. 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 TButton, 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 .skin. 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 TButton, tulis yang berikut dalam file skin,
-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, Button.skin akan berisi skin hanya untuk tipe kontrol TButton. +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, Button.skin akan berisi skin hanya untuk tipe kontrol TButton.