diff --git a/docs/id/bookinfo.xml b/docs/id/bookinfo.xml
new file mode 100644
index 00000000..ae56c7c3
--- /dev/null
+++ b/docs/id/bookinfo.xml
@@ -0,0 +1,41 @@
+
+
+
+ Smarty - mesin template yang mengompilasi PHP
+
+
+ Monte
+ Ohrt <monte at ohrt dot com>
+
+
+ Andrei
+ Zmievski <andrei@php.net>
+
+
+ &build-date;
+
+ 2001-2005
+ New Digital Group, Inc.
+
+
+
+
diff --git a/docs/id/getting-started.xml b/docs/id/getting-started.xml
new file mode 100644
index 00000000..c60cb6d3
--- /dev/null
+++ b/docs/id/getting-started.xml
@@ -0,0 +1,689 @@
+
+
+
+ Memulai
+
+
+ Apa itu Smarty?
+
+ Smarty adalah mesin template untuk PHP. Lebih khusus, ia memfasilitasi
+ cara yang bisa diatur untuk memisahkan logika aplikasi dan konten dari
+ penampilannya. Ini jauh lebih baik dijelaskan dalam situasi di mana
+ pemrogram aplikasi dan desainer template memainkan aturan yang berbeda,
+ atau secara umum bukan orang yang sama.
+
+
+
+ Sebagai contoh, katakanlah anda sedang membuat halaman web yang
+ menampilkan artikel koran.
+
+
+
+ Artikel $headline, $tagline,
+ $author dan $body adalah elemen
+ konten, tidak berisi informasi mengenai bagaimana akan ditampilkan.
+ Ia akan dioper ke dalam Smarty
+ oleh aplikasi.
+
+
+ Kemudian desainer template mengedit template dan
+ menggunakan kombinasi tag HTML dan
+ tag template untuk
+ membentuk presentasi terhadap
+ variabel ini dengan
+ elemen seperti tabel, div, warna latar belakang, ukuran font, style
+ sheets, svg dll.
+
+
+ Suatu hari pemrogram perlu mengubah cara konten
+ artikel diambil (perubahan dalam logika aplikasi). Perubahan
+ ini tidak mempengaruhi desainer template, konten masih akan
+ muncul dalam template persis sama.
+
+
+
+ Demikian juga jika desainer template ingin mendesain ulang template
+ seutuhnya, ini tidak memerlukan perubahan logika aplikasi.
+
+
+ Oleh karena itu, pemrogram dapat membuat perubahan
+ terhadap logika aplikasi tanpa perlu merestrukturisasi template, dan
+ desainer template bisa membuat perubahan terhadap template tanpa
+ membongkar logika aplikasi.
+
+
+
+
+ Satu tujuan desain Smarty adalah pemisahan logika bisnis dan logika
+ presentasi.
+
+
+
+
+ Ini berarti template tentu saja dapat berisi logika di bawah
+ kondisi yang hanya untuk presentasi saja. Hal seperti
+ menyertakan
+ template lain,
+ memilih warna baris tabel,
+ membesarkan huruf variabel,
+ mengulang terus
+ sebuah data array dan menampilkannya
+ adalah contoh dari logika presentasi.
+
+
+ Ini tidak
+ berarti bahwa Smarty memaksa pemisahan logika bisnis dan presentasi. Smarty
+ tidak mengetahui yang mana adalah yang mana, maka menempatkan logika bisnis
+ dalam template adalah anda sendiri yang melakukannya.
+
+ Juga, jika anda
+ menginginkan tidak ada logika dalam template, anda
+ tentunya dapat melakukannya dengan menetapkan konten cukup ke teks dan
+ variabel saja.
+
+
+
+
+ Salah satu aspek unik mengenai Smarty adalah kompilasi template. Ini
+ berartu Smarty membaca file template dan membuat naskah PHP darinya.
+ Sekali dibuat, selanjutnya ia dieksekusi darinya. Oleh karenanya tidak
+ ada beban menguraikan file template untuk setiap permintaan, dan setiap
+ template dapat memanfaatkan solusi cache kompilator PHP seperti
+ eAccelerator,
+ ionCube
+ mmCache
+ atau Zend Accelerator
+ adalah beberapa diantaranya.
+
+
+ Beberapa fitur Smarty:
+
+
+
+
+ Sangat cepat.
+
+
+
+
+ Efisien karena pengurai PHP yang mengerjakan pekerjaan beratnya.
+
+
+
+
+ Tidak ada kelebihan penguraian template, hanya sekali mengompilasi.
+
+
+
+
+ Pintar mengenai rekompilasi
+ hanya file template yang telah diubah.
+
+
+
+
+ Anda dapat membuat dengan mudah fungsi kustom
+ dan pengubah variabel, agar
+ bahasa template bisa diperluas secara ekstrim.
+
+
+
+
+ Template bisa mengkonfigurasi sintaks tag
+ {pemisah}, agar
+ anda dapat menggunakan
+ {$foo}, {{$foo}},
+ <!--{$foo}-->, dll.
+
+
+
+
+ Konstruksi
+ {if}..{elseif}..{else}..{/if}
+ dioper ke pengurai PHP, maka sintaks ekspresi {if...}
+ bisa berupa evaluasi sesederhana atau serumit yang anda
+ inginkan.
+
+
+
+
+ Membolehkan pengulangan tidak terbatas dari
+
+ sections, if's dll.
+
+
+
+
+ Dimungkinkan untuk
+ menyertakan kode PHP
+ langsung dalam file template anda, meskipun ini mungkin tidak
+ diperlukan (ataupun direkomendasikan) karena mesin
+ dapat dikustomisasi.
+
+
+
+
+ Dukungan built-in caching
+
+
+
+
+ Bebas sumber template
+
+
+
+
+ Fungsi kustom
+ penanganan cache
+
+
+
+
+ Arsitektur Plugin
+
+
+
+
+
+
+
+
+
+
+ Instalasi
+
+
+ Persyaratan
+
+ Smarty membutuhkan server web yang menjalankan PHP 4.0.6 atau lebih
+ tinggi.
+
+
+
+
+ Instalasi Dasar
+
+
+ Instalasi file librari Smarty yang ada dalam sub direktori
+ /libs/ dari
+ distributsi. Ini adalah file .php yang
+ TIDAK BOLEH diedit. Ia berbagi diantara seluruh aplikasi dan hanya
+ diubah ketika anda meingkatkannya ke versi Smarty baru.
+
+ Dalam contoh di bawah ini Smarty tarball telah diuraikan ke:
+
+
+ /usr/local/lib/Smarty-v.e.r/ untuk
+ mesin *nix
+ dan
+ c:\webroot\libs\Smarty-v.e.r\ untuk
+ lingkungan windows.
+
+
+
+
+ File librari Smarty yang Diperlukan
+
+
+
+
+
+
+ Smarty menggunakan konstan
+ PHP bernama SMARTY_DIR
+ yang merupakan path file sistem lengkap
+ ke direktori libs/ Smarty.
+ Pada dasarnya, jika aplikasi anda dapat menemukan file
+ Smarty.class.php, anda tidak perlu menyetel
+ SMARTY_DIR
+ karena Smarty akan mengetahui dirinya sendiri.
+ Oleh karena itu, jika
+ Smarty.class.php tidak dalam
+ include_path
+ anda, atau anda tidak menyertakan path absolut kepadanya dalam aplikasi
+ anda, maka anda harus mendefinisikan SMARTY_DIR
+ secara manual.
+ SMARTY_DIRharus menyertakan
+ akhiran garis miring/.
+
+
+
+
+
+ Ini adalah bagaimana anda membuat turunan Smarty dalam naskah PHP anda:
+
+
+
+]]>
+
+
+
+
+ Coba menjalankan naskah di atas. Jika anda mendapatkan kesalahan yang
+ mengatakan
+ Smarty.class.php file could not be found, anda perlu
+ melakukan salah satu dari yang berikut:
+
+
+
+ Setel konstan SMARTY_DIR secara manual
+
+
+]]>
+
+
+
+
+ Sertakan path absolut ke file librari
+
+
+]]>
+
+
+
+
+ Tambah path librari ke file php.ini
+
+
+
+
+
+
+ Menambahkan path include dalam naskah PHP dengan
+ ini_set()
+
+
+]]>
+
+
+
+
+ Sekarang file librari itu di tempatnya, waktunya menyiapkan
+ direktori Smarty untuk aplikasi anda:
+
+
+
+ Smarty memerlukan empat direktori yang secara standar bernama
+ templates/,
+ templates_c/, configs/ dan cache/
+
+
+ Setiap dari yang di atas tersebut bisa didefinisikan
+ dengan properti kelas Smarty masing-masing
+
+ $template_dir,
+
+ $compile_dir,
+
+ $config_dir, dan
+
+ $cache_dir
+
+
+
+ It is highly recommended
+ that you setup a separate set of these directories for each application
+ that will use Smarty
+
+
+
+
+ For our installation example, we will be setting up the Smarty environment
+ for a guest book application. We picked an application only for the purpose
+ of a directory naming convention. You can use the same environment for any
+ application, just replace guestbook/ with
+ the name of your application.
+
+
+
+
+ What the file structure looks like
+
+
+
+
+
+
+ Be sure that you know the location of your web server's document root as a
+ file path. In the following examples, the document root is /web/www.example.com/guestbook/htdocs/.
+ The Smarty
+ directories are only accessed by the Smarty library and never accessed
+ directly by the web browser. Therefore to avoid any security concerns, it
+ is recommended (but not mandatory) to place these directories
+ outside of the web server's document root.
+
+
+
+ You will need as least one file under your document root, and that is the
+ script accessed by the web browser. We will name our script
+ index.php, and place it in a subdirectory under the
+ document root /htdocs/.
+
+
+
+
+ Smarty will need write access
+ (windows users please ignore) to the
+
+ $compile_dir and
+
+ $cache_dir directories
+ (templates_c/ and
+ cache/), so be sure the web server
+ user account can write to them.
+
+ This is usually user nobody and
+ group nobody. For OS X users,
+ the default is user www and group www.
+ If you are using Apache, you can look in your
+ httpd.conf file to see
+ what user and group are being used.
+
+
+
+ Permissions and making directories writable
+
+
+
+
+
+
+ Note
+
+ chmod 770 will be fairly tight security, it only allows
+ user nobody and group nobody read/write access
+ to the directories. If you would like to open up read access to anyone
+ (mostly for your own convenience of viewing
+ these files), you can use 775 instead.
+
+
+
+
+ We need to create the index.tpl file that Smarty will
+ display. This needs to be located in the
+ $template_dir.
+
+
+
+ /web/www.example.com/guestbook/templates/index.tpl
+
+
+
+
+
+
+ Technical Note
+
+ {* Smarty *} is a template
+ comment.
+ It is not required, but it is good
+ practice to start all your template files with this comment. It makes
+ the file easy to recognize regardless of the file extension. For
+ example, text editors could recognize the file and turn on special
+ syntax highlighting.
+
+
+
+
+ Now lets edit index.php. We'll create an instance of Smarty,
+ assign() a
+ template variable and display()
+ the index.tpl file.
+
+
+
+ Editing /web/www.example.com/docs/guestbook/index.php
+
+template_dir = '/web/www.example.com/guestbook/templates/';
+$smarty->compile_dir = '/web/www.example.com/guestbook/templates_c/';
+$smarty->config_dir = '/web/www.example.com/guestbook/configs/';
+$smarty->cache_dir = '/web/www.example.com/guestbook/cache/';
+
+$smarty->assign('name','Ned');
+
+//** un-comment the following line to show the debug console
+//$smarty->debugging = true;
+
+$smarty->display('index.tpl');
+
+?>
+]]>
+
+
+
+
+ Note
+
+ In our example, we are setting absolute paths to all of the Smarty
+ directories. If /web/www.example.com/guestbook/ is
+ within your PHP include_path, then these settings are not necessary.
+ However, it is more efficient and (from experience) less error-prone to
+ set them to absolute paths. This ensures that Smarty is getting files
+ from the directories you intended.
+
+
+
+
+ Now naviagate to the index.php file with the web browser.
+ You should see "Hello Ned, welcome to Smarty!"
+
+
+ You have completed the basic setup for Smarty!
+
+
+
+
+
+
+
+
+ Extended Setup
+
+
+ This is a continuation of the basic installation, please read
+ that first!
+
+
+ A slightly more flexible way to setup Smarty is to
+ extend the class and
+ initialize your Smarty environment. So instead of repeatedly setting
+ directory paths, assigning the same vars, etc., we can do that in one place.
+
+
+ Lets create a new directory /php/includes/guestbook/
+ and make a new file called setup.php. In our example
+ environment, /php/includes is in our
+ include_path.
+ Be sure you set this up too, or use absolute file paths.
+
+
+
+ /php/includes/guestbook/setup.php
+
+Smarty();
+
+ $this->template_dir = '/web/www.example.com/guestbook/templates/';
+ $this->compile_dir = '/web/www.example.com/guestbook/templates_c/';
+ $this->config_dir = '/web/www.example.com/guestbook/configs/';
+ $this->cache_dir = '/web/www.example.com/guestbook/cache/';
+
+ $this->caching = true;
+ $this->assign('app_name', 'Guest Book');
+ }
+
+}
+?>
+]]>
+
+
+
+
+ Now lets alter the index.php file to use
+ setup.php:
+
+
+
+ /web/www.example.com/guestbook/htdocs/index.php
+
+assign('name','Ned');
+
+$smarty->display('index.tpl');
+?>
+]]>
+
+
+
+
+ Now you see it is quite simple to bring up an instance of Smarty, just use
+ Smarty_GuestBook() which automatically initializes everything for our
+ application.
+
+
+
+
+
+
+
+
diff --git a/docs/id/language-defs.ent b/docs/id/language-defs.ent
new file mode 100644
index 00000000..0891dd26
--- /dev/null
+++ b/docs/id/language-defs.ent
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/docs/id/language-snippets.ent b/docs/id/language-snippets.ent
new file mode 100644
index 00000000..525d7bd7
--- /dev/null
+++ b/docs/id/language-snippets.ent
@@ -0,0 +1,66 @@
+
+
+
+
Catatan Teknis
+
+ Parameter merge merupakan kunci array, maka jika
+ anda menggabung dua array berindeks secara numerik, keduanya bisa saling
+ menimpa atau hasil dalam kunci non-sekuensial. Ini tidak seperti fungsi
+ PHP
+ array_merge() yang menghapus kunci numerik
+ dan menomorinya kembali.
+
+'>
+
+
+ Catatan Teknis
+
+ Jika fungsi callback yang dipilih dalam bentuk
+ array(&$object, $method), hanya satu turunan dari
+ class yang sama dan dengan $method yang sama bisa
+ diregistrasi. Fungsi callback teregistrasi terbaru
+ akan digunakan dalam skenario seperti itu.
+
+'>
+
+
+ Sebagai parameter opsional ketiga, anda dapat mengoper
+ $compile_id.
+ Ini dalam keadaan di mana anda ingin mengompilasi versi berbeda terhadap
+ template yang sama, seperti memiliki template terpisa dikompilasi untuk
+ bahasa yang berbeda. Penggunaan lainnya untuk
+ $compile_id ialah saat anda menggunakan lebih dari
+ satu
+ $template_dir
+ tapi hanya satu
+ $compile_dir.
+ Set $compile_id secara terpisah untuk setiap
+ $template_dir,
+ atau sebaliknya template dengan nama sama akan saling menimpa. Anda juga
+ bisa menyetel variabel
+ $compile_id sekali daripada mengoperkan ini
+ ke setiap pemanggilan fungsi ini.
+'>
+
+
+ Fungsi-php callback function dapat berupa:
+
+
+ String yang berisi nama fungsi
+
+
+
+ Sebuah array dalam bentuk array(&$object, $method) dengan
+ &$object menjadi referensi ke sebuah
+ obyek dan $method menjadi string yang
+ berisi nama-metode
+
+
+
+ Sebuah array dalam bentuk
+ array($class, $method) dengan
+ $class menjadi nama kelas dan
+ $method menjadi metode kelas.
+
+
+ '>
\ No newline at end of file
diff --git a/docs/id/livedocs.ent b/docs/id/livedocs.ent
new file mode 100644
index 00000000..740b1885
--- /dev/null
+++ b/docs/id/livedocs.ent
@@ -0,0 +1,6 @@
+
+
+'>
+'>
+
+
diff --git a/docs/id/preface.xml b/docs/id/preface.xml
new file mode 100644
index 00000000..bf38669f
--- /dev/null
+++ b/docs/id/preface.xml
@@ -0,0 +1,94 @@
+
+
+
+ Kata Pengantar
+
+ Tidak diragukan lagi salah satu pertanyaan yang paling sering diajukan
+ pada milis PHP: bagaimana saya membuat naskah PHP independen terhadap
+ tata letak? Sementara PHP dihitung sebagai "bahasa penaskahan melekat HTML",
+ setelah menulis beberapa proyek yang mencampur PHP dan HTML secara bebas,
+ datanglah satu ide yang memisahkan formulir dan isis adalah Good Thing [TM].
+ Sebagai tambahan, dalam banyak perusahaan aturan pendesain tata letak dan
+ pemrogram adalah terpisah. Konsekuensinya, pencarian solusi templating
+ terjadi kemudian.
+
+
+ Dalam perusahaan kami contohnya, pengembangan aplikasi terjadi
+ sebagai berikut: Setelah peryaratan dokumen selesai, pendesain
+ interface membuat maket interface dan memberikannya ke pemrogram.
+ Pemrogram mengimplementasikan logika bisnis dalam PHP dan menggunakan
+ maket interface untuk membuat rangka template. Proyek kemudian diserahkan
+ ke pendesain HTML/ata letak halaman web, orang tang membawa template
+ sampai penuh dengan kemegahan. Proyek mungkin bolak-balik diantara
+ pemrogram/HTML beberapa kali. Selanjutnya, adalah penting untuk mempunyai
+ dukungan template karena pemrogram tidak ingin melakukan hal yang
+ berkaitan dengan HTML dan tidan ingin pendesain HTML memaketkannya dengan
+ kode PHP. Pendesain memerlukan dukungan untuk file konfigurasi, blok
+ dinamis dan hal lain yang berkenaan dengan interface, tapi mereka tidak
+ harus berhadapan dengan kerumitan bahasa pemrograman PHP.
+
+
+ Melihat di banyaknya solusi template untuk PHP hari ini, kebanyakan
+ darinya menyediakan cara yang belum sempurna atas penggantian variabel
+ ke dalam template dan melakukan bentuk terbatas dari fungsionalitas blok
+ dinamis. Tapi kebutuhan kita memerlukan sedikit lebih banyak dari itu.
+ Kami tidak menginginkan pemrogram untuk berurusan dengan tata letak HTML
+ SAMA SEKALI, tapi ini hampir tidak bisa dihindari. Sebagai contoh, jika
+ pendesain menginginkan warna latar belakang untuk berubah pada blok
+ dinamis, ini harus dikerjakan dengan pemrogram terlebih dulu. Kami juga
+ membutuhkan pendesain untuk bisa menggunakan file konfigurasinya sendiri,
+ dan menarik variabel darinya ke dalam template. Daftar terus bertambah.
+
+
+ Kami mulai menulis spesifikasi untuk mesin template di akhir 1999.
+ Setelah menyelesaikan spesifikasi, kami mulai bekerja pada mesin template
+ yang ditulis dalam C yang dengan harapan dapat diterima untuk disertakan
+ dengan PHP. Kami tidak hanya mengalami teknis yang kompleks, tapi juga
+ ada debat panas mengenai apa yang harus dilakukan dan tidak oleh mesin
+ template . Dari pengalaman ini, kami memutuskan bahwa mesin template
+ harus ditulis dalam PHP sebagai kelas, agar setiap orang menggunakannya
+ bila sesuai. Maka kami menulis mesin yang tidak hanya itu dan
+ SmartTemplate memperlihatkan keberadaannya
+ (catatan: kelas ini tidak pernah dikirimkan untuk umum). Ia adalah kelas
+ yang mengerjakan hampir apapun yang kami inginkan: substitusi variabel
+ reguler, didukung termasuk template lain, integrasi dengan file
+ konfigurasi, melekatkan kode PHP, fungsionalitas pernyataan 'if' terbatas
+ dan blok dinamis lebih stabil yang dapat diperbanyak secara berulang. Ia
+ melakukan ini semua dengan ekspresi reguler dan kode diubah menjadi,
+ harus kami katakan, bisa dipahami. Ia juga tercatat lambat dalam aplikasi
+ besar dari semua penguraian dan ekspresi reguler mengerjakannya harus
+ melakukannya untuk setiap permintaan. Masalah terbesar dari sudut pandang
+ pemrogram adalah semua pekerjaan yang perlu dalam naskah PHP untuk
+ menyiapkan dan memproses template dan blok dimasis. Bagaimana kami membuat
+ ini lebih mudah?
+
+
+ Lalu datanglah bayangan atas apa yang secara utama menjadi Smarty. Kami
+ mengtahui seberapa cepat kode PHP tanpa melebihkan penguraian template.
+ Kami juga mengetahui bagaimana teliti dan memaksanya bahasa PHP terlihat
+ bagi umumnya pendesain, dan ini bisa diatasi dengan sintaks template yang
+ lebih sederhana. Lalu bagaimana jika kami menggabungkan dua kekuatan?
+ Selanjutnya, Smarty dilahirkan... :-)
+
+
+
+