Sebelum menginstall Mageia, silakan baca syarat
+dan ketentuan lisensi dengan seksama.
Syarat dan ketentuan ini berlaku ke seluruh distribusi
+Mageia dan harus diterima sebelum Anda
+melanjutkan.
Untuk menerima, pilih Terima lalu klik
+Selanjutnya.
Jika Anda memutuskan untuk tidak menerima ketentuan ini, maka terima kasih
+karena telah melihat-lihat. Mengklik Keluar akan
+menyalakan ulang komputer Anda.
Catatan Rilis
Untuk melihat apa yang baru di rilis Mageia ini,
+klik pada tombol Catatan Rilis.
diff --git a/installer/4/id/content/addUser.html b/installer/4/id/content/addUser.html
new file mode 100644
index 00000000..4daf1fdc
--- /dev/null
+++ b/installer/4/id/content/addUser.html
@@ -0,0 +1,76 @@
+
+
+
+
+ Pengelolaan Pengguna dan Pengguna Super
Disarankan untuk semua instalasi Mageia agar
+mengatur sandi superuser atau administrator, biasanya di Linux disebut
+sandi root. Saat Anda mengetik sandi pada kotak atas,
+warna kotak pinggirnya akan berubah dari merah menjadi kuning atau hijau
+tergantung pada kekuatan sandi. Warna hijau menandakan bahwa Anda
+menggunakan sandi yang kuat. Anda harus mengulang sandi yang sama pada kotak
+di bawah kotak sandi pertama, ini memeriksa jika Anda tidak salah mengetik
+sandi pada sandi pertama dengan membandingkannya.
Catatan
Semua sandi berlaku sensitif, akan sangat baik untuk menggunakan
+penggabungan huruf (besar dan kecil), nomor dan karakter lain sebagai sandi.
Masukkan pengguna
Tambahkan pengguna di sini. Pengguna memiliki hak yang lebih sedikit
+dibanding superuser (root), tapi cukup untuk menjelajah internet,
+menggunakan aplikasi perkantoran atau memainkan permainan dan hal lain yang
+biasa dilakukan pengguna dengan komputernya
Ikon: jika Anda mengklik tombol ini akan mengubah
+ikon pengguna.
Nama Asli: Masukkan nama asli pengguna pada kotak teks
+ini.
Nama Login: Di sini Anda memasukkan nama login pengguna
+atau biarkan drakx menggunakan versi dari nama asli pengguna. Nama
+login berlaku sensitif.
Sandi: Pada kotak teks ini Anda perlu mengetikkan sandi
+pengguna. Terdapat pelindung pada ujung dari kotak teks yang menandakan
+kekuatan sandi. (Lihat juga Catatan)
Sandi (lagi): Ketik ulang sandi pengguna pada kotak
+teks ini, drakx akan memeriksa bahwa Anda memiliki sandi yang sama pada
+tiap-tiap kotak teks.
Catatan
Setiap pengguna yang Anda tambahkan saat menginstall Mageia akan memiliki
+direktori home yang terbaca oleh semua (tapi terlindungi dari penulisan).
Akan tetapi, saat menggunakan instalasi baru, setiap pengguna yang Anda
+tambahkan di MCC - Sistem - Kelola pengguna pada sistem
+akan memiliki direktori home yang terproteksi pembacaan dan penulisan.
Jika Anda tidak ingin direktori home bisa dibaca semua orang, disarankan
+untuk sekarang hanya menambahkan pengguna sementara dan menambahkan yang
+sebenarnya setelah menyalakan ulang komputer.
Jika Anda lebih suka direktori home bisa dilihat semua orang, Anda mungkin
+ingin menambahkan pengguna tambahan pada langkah Konfigurasi -
+Ringkasan saat instalasi. Pilih Pengelolaan
+pengguna.
Perizinan hak akses juga bisa diubah setelah instalasi.
Pengelolaan Pengguna Lanjutan
Jika tombol lanjutan diklik, akan ditampilkan sebuah
+layar yang memungkinkan Anda mengedit pengaturan pengguna yang Anda
+tambahkan. Sebagai tambahan, Anda bisa mematikan atau menghidupkan akun
+tamu.
Awas
Apapun yang disimpan oleh akun tamu dengan rbash bawaan
+yang disimpan di direktori /home akan dihapus saat dia keluar. Tamu harus
+menyimpan file pentingnya ke dalam flashdisk.
Hidupkan akun tamu: Di sini Anda bisa menghidupkan atau
+mematikan akun tamu. Akun tamu memungkinkan tamu masuk dan menggunakan
+komputer, tapi dia memiliki akses yang lebih terbatas daripada pengguna
+normal.
Shell: Daftar drop down ini memungkinkan Anda mengubah
+shell yang akan digunakan oleh pengguna yang telah ditambahkan pada layar
+sebelumnya, pilihannya adalah Bash, Dash dan Sh
ID pengguna: Di sini Anda bisa mengatur ID untuk
+pengguna yang Anda tambahkan pada layar sebelumnya. Ini adalah nomor.
+Biarkan ini kosong kecuali jika Anda mengetahui apa yang harus diisikan di
+sini.
ID grup: Ini untuk mengatur ID grup. Nomor juga,
+biasanya sama dengan pengguna. Biarkan kosong kecuali jika Anda mengetahui
+apa yang harus diisikan di sini.
Pemilihan Media (Konfigurasi Media Instalasi Pelengkap)
Pemilihan Media (Konfigurasi Media Instalasi Pelengkap)
Layar ini memberi Anda daftar repositori yang telah dikenali. Anda bisa
+menambahkan sumber lain, seperti disk optik atau sumber remote. Pemilihan
+sumber menentukan paket-paket mana yang akan tersedia untuk dipilih selama
+langkah-langkah berikutnya.
Untuk sumber jaringan, ada dua langkah yang harus diikuti:
Memilih dan mengaktifkan jaringan, jika belum terhubung.
Memilih mirror atau menentukan URL (entri paling awal). Dengan memilih
+mirror, Anda memiliki akses ke semua repositori terpilih yang dikelola oleh
+Mageia, seperti repositori Nonfree, Tainted dan Update. Dengan URL, Anda
+bisa menentukan repositori tertentu atau instalasi NFS Anda.
Di sini Anda melihat partisi Linux yang ditemukan di komputer. Jika Anda
+tidak setuju dengan saran DrakX, Anda bisa
+mengubah titik kaitnya.
Catatan
Jika Anda mengubah apapun, pastikan Anda tetap memiliki partisi
+/ (root).
Setiap partisi ditampilkan sebagai berikut: "Perangkat" ("Kapasitas", "Titik
+kait", "Tipe").
"Perangkat", terdiri dari: "harddisk", ["nomor harddisk"(huruf)], "nomor
+partisi" (contohnya, "sda5").
Jika Anda memiliki banyak partisi, Anda bisa memilih banyak titik kait yang
+berbeda dari menu drop down, seperti /,
+/home dan /var. Anda juga bisa membuat
+titik kait sendiri, contohnya /video untuk partisi di
+mana Anda ingin menyimpan film, atau /cauldron-home untuk
+partisi /home instalasi cauldron.
Untuk partisi yang tidak akan Anda akses, Anda bisa membiarkan kolom titik
+kait kosong.
Awas
Pilih Sebelumnya jika Anda tidak yakin akan memilih
+apa, lalu pilih Pemartisian disk sesuaian. Di layar
+berikutnya, Anda bisa mengklik partisi untuk melihat tipe dan ukurannya.
Jika Anda yakin titik kait sudah benar, klik
+Selanjutnya, lalu pilih apakah Anda hanya akan
+memformat partisi yang disarankan Drakx atau yang lainnya juga.
Tergantung pada apa yang dipilih di sini, Anda mungkin akan ditawarkan layar
+lanjutan untuk menyesuaikan pilihan.
Setelah pemilihan langkah, Anda akan melihat tampilan slide selama instalasi
+paket. Tampilan slide bisa dimatikan dengan menekan tombol
+Rincian
Pilih apakah Anda lebih suka menggunakan lingkungan desktop
+KDE atau
+Gnome. Keduanya disertai dengan seperangkat
+aplikasi dan peralatan yang berguna. Pilih Sesuaian
+jika Anda tidak ingin memilih keduanya atau memilih keduanya, atau jika Anda
+menginginkan yang selain pilihan software bawaan dari lingkungan desktop
+tersebut. Desktop LXDE lebih ringan dari kedua
+lingkungan desktop sebelumnya, kurang terlihat cantik dan lebih sedikit
+paket bawaan yang diinstall.
Paket telah dipilah ke dalam grup, supaya memilih apa yang dibutuhkan untuk
+sistem Anda lebih mudah. Semua grup dibuat sangat jelas, tapi informasi
+lebih tentang isi dari tiap grup tersedia dalam tool tip yang akan terlihat
+saat mouse di arahkan ke grup-grup tersebut.
Lingkungan kerja.
Server.
Lingkungan Grafis
Pemilihan Paket Individu: Anda bisa menggunakan pilihan ini untuk menambah
+atau menghapus paket secara manual.
Di sini Anda bisa menambah atau menghapus paket tambahan apapun untuk
+menyesuaikan instalasi.
Setelah selesai memilih, Anda bisa mengklik ikon
+floppy di bawah halaman untuk menyimpan pilihan paket (bisa juga
+disimpan ke flashdisk). Anda bisa menggunakan file ini untuk menginstall
+paket yang sama pada komputer lain, dengan menekan tombol yang sama saat
+instalasi dan memuatnya.
Pilih Server X (Konfigurasi Perangkat Grafis Anda)
Pilih Server X (Konfigurasi Perangkat Grafis Anda)
DrakX memiliki basis data perangkat video yang lengkap dan biasanya akan
+mengidentifikasi perangkat video Anda dengan benar.
Jika installer tidak mendeteksi perangkat grafis Anda dengan benar dan Anda
+mengetahui mana yang Anda punya, Anda bisa memilihnya dari pohon dengan:
pabrikan
lalu nama perangkat
dan tipe perangkat
Jika tidak menemukan perangkat Anda di daftar pabrikan (karena belum masuk
+basis data atau perangkat lawas) Anda mungkin bisa menemukan driver yang
+cocok di kategori Xorg
Daftaran Xorg menyediakan lebih dari 40 driver perangkat video umum dan open
+source. Jika masih tidak menemukan driver untuk perangkat Anda, masih ada
+pilihan untuk menggunakan driver vesa yang menyediakan kemampuan dasar.
Perhatikan bahwa jika Anda memilih driver yang tidak cocok, Anda mungkin
+hanya akan bisa mengakses Antarmuka Baris Perintah.
Beberapa pabrikan perangkat video menyediakan driver proprietary untuk Linux
+yang mungkin hanya tersedia dalam repository Nonfree dan mungkin juga hanya
+tersedia di website mereka.
Repository Nonfree harus dihidupkan secara eksplisit untuk
+mengaksesnya. Jika Anda tidak memilih itu sebelumnya, Anda harus melakukan
+ini setelah komputer dinyalakan ulang.
Apapun lingkungan grafis (disebut juga lingkungan desktop) yang Anda pilih
+dalam menginstall Mageia, semua bersandar pada
+sistem antarmuka pengguna grafis yang disebut Sistem Window
+X, atau hanya X. Agar KDE,
+Gnome, LXDE atau yang lainnya bisa
+bekerja dengan baik, pengaturan X berikut harus
+tepat. Pilih pengaturan yang tepat jika DrakX
+tidak membuat pilihan, atau jika pilihan salah.
Perangkat Grafis: Pilih
+perangkat Anda dari daftar berikut jika diperlukan.
Monitor: Anda bisa memilih
+Plug'n Play jika bisa diterapkan, atau pilih monitor
+dari daftar Pabrikan atau
+Umum. Pilih Sesuaian jika Anda
+lebih suka untuk mengatur refresh rate monitor horisontal dan vertikal
+secara manual.
Awas
Refresh rate yang tidak tepat bisa merusak monitor Anda
Resolusi: Atur resolusi dan
+kedalaman warna monitor yang diinginkan di sini.
Coba: Tombol untuk mencoba tidak
+selalu muncul saat instalasi. Jika tombolnya ada, Anda bisa mengendalikan
+pengaturan dengan menekannya. Jika Anda melihat pertanyaan apakah pengaturan
+sudah tepat, Anda bisa menjawab "ya", dan pengaturan akan
+dipertahankan. Jika Anda tidak melihat apapun, Anda akan kembali ke layar
+konfigurasi dan bisa mengkonfigurasi ulang semua sampai hasilnya
+bagus. Pastikan pengaturan Anda adalah yang teraman jika tombol
+untuk mencoba tidak tersedia
Pilihan: Di sini Anda bisa
+memilih untuk menghidupkan atau mematikan berbagai pilihan.
DrakX memiliki basis data monitor yang lengkap dan biasanya akan mengenali
+monitor Anda dengan tepat.
Awas
Memilih monitor dengan karakteristik yang berbeda bisa merusak
+monitor atau perangkat video Anda. Jangan mencoba sesuatu jika Anda tidak
+mengetahuinya. Jika ragu, sebaiknya Anda membaca dokumentasi
+monitor yang Anda miliki
Sesuaian
Pilihan ini memungkinkan Anda mengatur dua parameter penting, refresh rate
+vertikal dan sync rate horisontal. Refresh vertikal menentukan seberapa
+sering layar disegarkan dan sync horisontal adalah kecepatan di mana scan
+line ditampilkan.
SANGAT PENTING untuk tidak menentukan tipe monitor
+dengan jarak sync diluar kemampuan monitor: Anda bisa merusak monitor. Jika
+ragu, pilih pengaturan sederhana dan baca dokumentasi monitor yang Anda
+miliki.
Plug 'n Play
Ini adalah pilihan bawaan dan mencoba untuk menentukan tipe monitor dari
+basis data.
Pabrikan
Jika installer tidak mendeteksi monitor Anda dengan benar dan Anda
+mengetahui jenis monitor yang Anda miliki, Anda bisa memilihnya dari pohon
+dengan memilih:
pabrikan
nama pembuat monitor
keterangan monitor
Umum
memilih grup ini menampilkan hampir 30 konfigurasi seperti 1024x768 @ 60 Hz
+dan termasuk layar datar seperti yang digunakan pada laptop. Ini seringkali
+bagus digunakan untuk memilih monitor jika Anda menggunakan driver Vesa
+ketika perangkat video Anda tidak bisa ditentukan secara otomatis. Akan
+sangat bijaksana jika Anda memilih yang sederhana.
Jika ingin menggunakan enkripsi untuk partisi / Anda,
+pastikan Anda memiliki partisi /boot terpisah. Pilihan
+enkripsi untuk partisi /boot JANGAT diatur, atau sistem
+Anda tidak akan bisa berjalan.
Atur tampilan disk Anda di sini. Anda bisa menghapus atau membuat partisi,
+mengubah filesystem partisi atau mengubah ukurannya dan menampilkan isinya
+sebelum Anda memulai.
+
Ada tab untuk setiap hard disk yang terdeteksi atau perangkat penyimpanan
+lainnya, seperti flashdisk. Contohnya sda, sdb dan sdc jika ada tiga.
+
Tekan Bersihkan semua untuk membersihkan semua
+partisi pada perangkat penyimpanan terpilih
Untuk aksi lainnya: klik pada partisi yang diinginkan terlebih dahulu. Lalu
+tampilkan, atau pilih filesystem dan titik kait, ubah ukuran atau bersihkan.
Lanjutkan hingga Anda mengatur semua yang Anda inginkan.
Di layar ini Anda bisa melihat isi perangkat disk dan lihat solusi yang
+ditemukan pemandu pemartisian DrakX di mana
+Mageia akan diinstall.
Pilihan yang tersedia dari daftar di bawah akan beragam tergantung pada
+tampilan dan isi perangkat disk Anda.
Gunakan Partisi yang Tersedia
Jika pilihan ini tersedia, artinya partisi yang cocok untuk Linux telah
+ditemukan dan mungkin bisa digunakan untuk instalasi.
Gunakan Ruang Kosong
Jika Anda memiliki ruang tak terpakai pada perangkat disk Anda, maka pilihan
+ini akan menggunakannya untuk menginstall Mageia.
Gunakan Ruang Kosong pada Partisi Windows
Jika Anda memiliki ruang tak terpakai pada partisi Windows yang ada,
+installer akan menawarkan untuk menggunakannya.
Ini cara yang berguna untuk membuat ruang untuk instalasi Mageia, tapi
+beresiko sehingga Anda harus membuat cadangan file penting Anda!
Perhatikan bahwa ini akan mengurangi ukuran dari partisi Windows. Partisi
+harus "bersih", maksudnya, Windows harus dimatikan dengan benar saat
+terakhir kali digunakan. Juga harus sudah didefrag, walaupun tidak ada
+jaminan bahwa semua file telah dipindahkan dari area yang akan
+digunakan. Sangat disarankan untuk membuat cadangan semua file pribadi.
Hapus dan gunakan Seluruh Disk.
Pilihan ini akan menggunakan seluruh perangkat untuk Mageia.
Perhatikan! Ini akan menghapus SEMUA data pada harddisk yang
+dipilih. Hati-hati!
Jika Anda bermaksud untuk menggunakan sebagian dari disk untuk yang lain,
+atau Anda memiliki data pada perangkat yang tidak boleh hilang, jangan
+gunakan pilihan ini.
Sesuaian
Ini memberi Anda kendali penuh untuk menempatkan instalasi pada harddisk.
Awas
Beberapa perangkat baru sekarang menggunakan sektor logis 4096 bit, daripada
+standar sebelumnya 512 bit. Karena keterbatasan hardware, alat pemartisian
+yang digunakan pada installer belum teruji pada perangkat tersebut. Beberapa
+perangkat ssd juga menggunakan ukuran blok penghapusan melebihi 1
+MB. Disarankan untuk melakukan pemartisian awal menggunakan alat pemartisian
+alternatif seperti gparted jika Anda memilikinya, dan menggunakan pengaturan
+berikut:
"Selaraskan ke" "MiB"
"Ruang kosong di awal (MiB)" "2"
Juga pastikan semua partisi dibuat dengan penomoran megabite.
Di sini Anda bisa memilih partisi mana yang ingin Anda format. Semua data
+pada partisi yang tidak ditandai untuk diformat akan
+tetap tersimpan.
Biasanya, setidaknya partisi yang dipilih oleh DrakX perlu diformat
Klik pada Lanjutan untuk memilih partisi yang ingin
+Anda periksa dari yang disebut blok rusak
Tip
Jika Anda tidak yakin telah membuat pilihan yang benar, Anda bisa mengklik
+Sebelumnya, lalu Sebelumnya
+lagi, lalu Sesuaian untuk kembali ke layar utama.
+Pada layar tersebut, Anda bisa memilih untuk melihat apa yang ada dalam
+partisi Anda.
Jika Anda cukup yakin dengan pilihan Anda, klik pada
+Selanjutnya untuk melanjutkan.
Tidak seorang pun akan melihat semua layar installer yang Anda lihat dalam
+manual ini. Layar mana yang akan Anda lihat, tergantung pada hardware dan
+pilihan yang Anda buat saat menginstall.
Mulai sejak dirilis Mageia versi ini, beberapa
+paket akan terus diupdate atau ditingkatkan.
Pilih ya jika Anda ingin mendownload dan
+menginstallnya, pilih tidak jika tidak ingin
+melakukannya sekarang, atau jika Anda tidak terhubung ke internet
Tidak peduli Anda baru mengenal GNU-Linux atau yang telah berpengalaman,
+Installer Mageia dibuat untuk membantu instalasi atau upgrade semudah
+mungkin.
Layar menu awal memiliki berbagai pilihan, akan tetapi bawaannya akan
+memulai installer, yang normalnya adalah yang Anda inginkan.
Proses instalasi terbagi ke dalam beberapa langkah, yang bisa diikuti pada
+panel samping dari layar.
Setiap langkah memiliki satu layar atau lebih yang mungkin juga memiliki
+tombol Lanjutan dengan pilihan tambahan yang tidak
+terlalu dibutuhkan.
Kebanyakan layar memiliki tombol Bantuan yang memberi
+penjelasan lebih tentang langkah yang sedang dijalani.
Catatan
Jika di manapun saat menginstall Anda memutuskan untuk menghentikan
+instalasi, komputer bisa dijalankan ulang, tapi harap dipikir dua kali
+sebelum melakukannya. Setelah partisi diformat atau update telah dijalankan
+atau diinstall, komputer Anda sudah tidak lagi dalam kondisi yang sama dan
+menjalankan ulang komputer bisa membuat sistem komputer Anda tidak
+stabil. Jika Anda benar-benar ingin menjalankan ulang komputer, jalankan
+terminal teks dengan menekan tiga tombol Alt Ctrl F2
+secara bersamaan. Setelahnya, tekan Alt Ctrl Delete
+secara bersamaan untuk menjalankan ulang.
Pilihan instalasi
Jika instalasi gagal, mungkin perlu dicoba lagi dengan menggunakan salah
+satu pilihan tambahan yang tersedia dengan menekan tombol F1
+(Bantuan) lihat Gambar 1, “Layar Selamat Datang untuk Instalasi”
Ini akan membuka bantuan berbasis teks berikut.
Gambar 2. Layar Bantuan Instalasi
Masalah Instalasi dan Kemungkinan Solusinya
Tidak Ada Antarmuka Grafis
Setelah layar awal, Anda tidak pernah sampai pada layar pemilihan
+bahasa. Ini bisa terjadi dengan beberapa perangkat grafis dan komputer
+lama. Coba menggunakan resolusi yang lebih rendah dengan mengetikkan
+vgalo pada baris perintah.
Jika hardware sangat tua, instalasi dengan gambar mungkin tidak bisa. Dalam
+kasus seperti ini, patut dicoba untuk menginstall dengan mode teks. Untuk
+menggunakan ini, tekan ESC pada layar selamat datang pertama lalu konfirmasi
+dengan ENTER. Akan tersaji layar hitam dengan kata "boot:". Ketik "text"
+lalu tekan ENTER. Lanjutkan instalasi dengan mode teks.
Instalasi Membeku
Jika sistem membeku saat instalasi, mungkin ada masalah dengan pendeteksian
+hardware. Pada kasus seperti ini, pendeteksian otomatis mungkin perlu
+dilewati untuk ditangani kemudian. Untuk mencobanya, ketik
+noauto pada baris perintah. Pilihan ini juga bisa
+dikombinasikan dengan pilihan lain seperlunya.
Pilihan Kernel
Ini jarang diperlukan, tapi dalam beberapa kasus, hardware menginformasikan
+RAM yang tersedia tidak benar. Untuk menentukan ini secara manual, Anda bisa
+menggunakan parameter mem=xxxM, di mana xxx adalah besar RAM
+yang benar. Misalnya mem=256M untuk menentukan RAM 256MB.
Di sini Anda memiliki daftar repository yang tersedia. Tidak semua
+repository tersedia, mengikuti pada media mana yang digunakan untuk
+instalasi. Pemilihan repository akan menentukan paket mana yang akan
+tersedia untuk dipilih pada langkah selanjutnya.
Repository Core tidak bisa dimatikan karena berisi
+dasar dari distribusi.
Repository Nonfree menyediakan paket-paket yang gratis,
+misalnya Mageia mungkin menyediakannya, tapi mungkin berisi software dengan
+sumber tertutup (karenanya dinamakan - Nonfree). Sebagai contoh, repository
+ini menyediakan driver proprietary untuk perangkat grafis nVidia dan ATI,
+firmware untuk berbagai perangkat WiFi, dsb.
Repository Tainted menyertakan paket-paket yang
+dikeluarkan di bawah lisensi bebas. Kriteria utama menempatkan paket-paket
+ke dalam repository ini adalah karena paket-paket ini mungkin akan melanggar
+hak cipta dan hak paten di beberapa negara, misalnya codec Multimedia yang
+diperlukan untuk memainkan beragam file audio/video; paket-paket yang
+diperlukan untuk memainkan video DVD komersial, dsb.
Instalasi Minimal dimaksudkan bagi yang ingin menggunakan
+Mageia untuk tujuan tertentu, seperti server atau
+lingkungan kerja khusus. Anda mungkin menggunakan pilihan ini dan
+dikombinasikan dengan Pemilihan Paket Manual, lihat bagian bernama “Pilih Paket Individual”.
Jika Anda memilih instalasi ini, maka layar yang berhubungan akan menawarkan
+Anda sedikit tambahan untuk diinstall, seperti dokumentasi dan X.
DrakX membuat pilihan pintar untuk konfigurasi sistem Anda tergantung pada
+pilihan yang telah Anda buat dan pada hardware yang terdeteksi oleh
+DrakX. Anda bisa memeriksanya di sini dan mengubahnya jika Anda mau setelah
+menekan Konfigurasi.
Anda bisa menambah pengguna tambahan di sini. Mereka akan mendapatkan
+direktori /home masing-masing.
Layanan:
Layanan sistem yang mengacu pada program kecil yang berjalan di belakang
+layar (daemon). Alat ini memungkinkan Anda untuk menghidupkan atau mematikan
+tugas-tugas tertentu.
Anda harus memeriksa dengan hati-hati sebelum mengubah apapun di sini -
+sebuah kesalahan bisa menghalangi komputer untuk berjalan dengan semestinya.
Ini adalah tempat Anda bisa mengatur atau mengubah layout keyboard yang akan
+tergantung pada lokasi, bahasa atau tipe keyboard Anda.
Mouse:
Di sini Anda bisa menambah atau mengkonfigurasi perangkat penunjuk lainnya,
+tablet, trackball, dsb.
Perangkat suara:
Installer menggunakan driver baku, jika ada. Opsi untuk memilih driver
+berbeda hanya diberikan ketika ada lebih dari satu driver untuk perangkat
+Anda, tapi tidak satupun merupakan pilihan baku.
Antarmuka grafis:
Bagian ini memungkinkan Anda mengkonfigurasi perangkat grafis dan tampilan.
Anda bisa mengkonfigurasi jaringan di sini, tapi untuk perangkat jaringan
+dengan driver non-free akan lebih baik jika dilakukan setelah menjalankan
+ulang komputer, di Pusat Kendali Mageia, jika
+Anda belum menghidupkan reporitory media Nonfree.
Awas
Jika Anda menambahkan perangkat jaringan, jangan lupa untuk mengatur
+firewall untuk melihat antarmuka jaringan tersebut.
Proxy:
Server Proxy berfungsi sebagai perantara antara komputer Anda dengan
+internet yang lebih luas. Bagian ini memungkinkan Anda mengkonfigurasi
+komputer untuk memanfaatkan layanan proxy.
Anda mungkin perlu bertanya pada administrator sistem untuk mendapatkan
+parameter yang diperlukan untuk dimasukkan di sini
Keamanan
Tingkat Keamanan:
Di sini Anda mengatur tingkat keamanan komputer, biasanya pengaturan bawaan
+(Standar) adalah yang paling memadai untuk penggunaan umum.
Lihat pilihan yang sesuai dengan penggunaan komputer Anda.
Firewall:
Firewall dimaksudkan untuk menjadi pembatas antara data penting Anda dengan
+para penjahat di internet yang bermaksud untuk membahayakan atau mencurinya.
Pilih layanan yang ingin bisa diakses ke sistem komputer Anda. Pilihan akan
+tergantung pada komputer Anda akan digunakan untuk apa.
Awas
Ingat bahwa membiarkan semua (tanpa firewall) akan sangat beresiko.
diff --git a/installer/4/id/content/nwSearchFnt.js b/installer/4/id/content/nwSearchFnt.js
new file mode 100644
index 00000000..fc12d113
--- /dev/null
+++ b/installer/4/id/content/nwSearchFnt.js
@@ -0,0 +1,513 @@
+/*----------------------------------------------------------------------------
+ * JavaScript for webhelp search
+ *----------------------------------------------------------------------------
+ This file is part of the webhelpsearch plugin for DocBook WebHelp
+ Copyright (c) 2007-2008 NexWave Solutions All Rights Reserved.
+ www.nexwave.biz Nadege Quaine
+ http://kasunbg.blogspot.com/ Kasun Gajasinghe
+ */
+
+//string initialization
+var htmlfileList = "htmlFileList.js";
+var htmlfileinfoList = "htmlFileInfoList.js";
+var useCJKTokenizing = false;
+
+/* Cette fonction verifie la validite de la recherche entrre par l utilisateur */
+function Verifie(ditaSearch_Form) {
+
+ // Check browser compatibitily
+ if (navigator.userAgent.indexOf("Konquerer") > -1) {
+
+ alert(txt_browser_not_supported);
+ return;
+ }
+
+
+ var expressionInput = document.ditaSearch_Form.textToSearch.value;
+ //Set a cookie to store the searched keywords
+ $.cookie('textToSearch', expressionInput);
+
+
+ if (expressionInput.length < 1) {
+
+ // expression is invalid
+ alert(txt_enter_at_least_1_char);
+ // reactive la fenetre de search (utile car cadres)
+ document.ditaSearch_Form.textToSearch.focus();
+ }
+ else {
+
+ // Effectuer la recherche
+ Effectuer_recherche(expressionInput);
+
+ // reactive la fenetre de search (utile car cadres)
+ document.ditaSearch_Form.textToSearch.focus();
+ }
+}
+
+var stemQueryMap = new Array(); // A hashtable which maps stems to query words
+
+/* This function parses the search expression, loads the indices and displays the results*/
+function Effectuer_recherche(expressionInput) {
+
+ /* Display a waiting message */
+ //DisplayWaitingMessage();
+
+ /*data initialisation*/
+ var searchFor = ""; // expression en lowercase et sans les caracte res speciaux
+ //w = new Object(); // hashtable, key=word, value = list of the index of the html files
+ scriptLetterTab = new Scriptfirstchar(); // Array containing the first letter of each word to look for
+ var wordsList = new Array(); // Array with the words to look for
+ var finalWordsList = new Array(); // Array with the words to look for after removing spaces
+ var linkTab = new Array();
+ var fileAndWordList = new Array();
+ var txt_wordsnotfound = "";
+
+
+ /*nqu: expressionInput, la recherche est lower cased, plus remplacement des char speciaux*/
+ searchFor = expressionInput.toLowerCase().replace(/<\//g, "_st_").replace(/\$_/g, "_di_").replace(/\.|%2C|%3B|%21|%3A|@|\/|\*/g, " ").replace(/(%20)+/g, " ").replace(/_st_/g, "").replace(/_di_/g, "%24_");
+
+ searchFor = searchFor.replace(/ +/g, " ");
+ searchFor = searchFor.replace(/ $/, "").replace(/^ /, "");
+
+ wordsList = searchFor.split(" ");
+ wordsList.sort();
+
+ //set the tokenizing method
+ if(typeof indexerLanguage != "undefined" && (indexerLanguage=="zh" || indexerLanguage=="ja" ||indexerLanguage=="ko")){
+ useCJKTokenizing=true;
+ } else {
+ useCJKTokenizing=false;
+ }
+ //If Lucene CJKTokenizer was used as the indexer, then useCJKTokenizing will be true. Else, do normal tokenizing.
+ // 2-gram tokenizinghappens in CJKTokenizing,
+ if(useCJKTokenizing){
+ finalWordsList = cjkTokenize(wordsList);
+ } else {
+ finalWordsList = tokenize(wordsList);
+ }
+
+ //load the scripts with the indices: the following lines do not work on the server. To be corrected
+ /*if (IEBrowser) {
+ scriptsarray = loadTheIndexScripts (scriptLetterTab);
+ } */
+
+ /**
+ * Compare with the indexed words (in the w[] array), and push words that are in it to tempTab.
+ */
+ var tempTab = new Array();
+ for (var t in finalWordsList) {
+ if (w[finalWordsList[t].toString()] == undefined) {
+ txt_wordsnotfound += finalWordsList[t] + " ";
+ } else {
+ tempTab.push(finalWordsList[t]);
+ }
+ }
+ finalWordsList = tempTab;
+
+ if (finalWordsList.length) {
+
+ //search 'and' and 'or' one time
+ fileAndWordList = SortResults(finalWordsList);
+
+ var cpt = fileAndWordList.length;
+ for (var i = cpt - 1; i >= 0; i--) {
+ if (fileAndWordList[i] != undefined) {
+ linkTab.push("
" + "Your search returned no results for " + "" + txt_wordsnotfound + "" + "
";
+ }
+ //alert(results);
+ document.getElementById('searchResults').innerHTML = results;
+}
+
+function tokenize(wordsList){
+ var stemmedWordsList = new Array(); // Array with the words to look for after removing spaces
+ var cleanwordsList = new Array(); // Array with the words to look for
+ for(var j in wordsList){
+ var word = wordsList[j];
+ if(typeof stemmer != "undefined" ){
+ stemQueryMap[stemmer(word)] = word;
+ } else {
+ stemQueryMap[word] = word;
+ }
+ }
+ //stemmedWordsList is the stemmed list of words separated by spaces.
+ for (var t in wordsList) {
+ wordsList[t] = wordsList[t].replace(/(%22)|^-/g, "");
+ if (wordsList[t] != "%20") {
+ scriptLetterTab.add(wordsList[t].charAt(0));
+ cleanwordsList.push(wordsList[t]);
+ }
+ }
+
+ if(typeof stemmer != "undefined" ){
+ //Do the stemming using Porter's stemming algorithm
+ for (var i = 0; i < cleanwordsList.length; i++) {
+ var stemWord = stemmer(cleanwordsList[i]);
+ stemmedWordsList.push(stemWord);
+ }
+ } else {
+ stemmedWordsList = cleanwordsList;
+ }
+ return stemmedWordsList;
+}
+
+//Invoker of CJKTokenizer class methods.
+function cjkTokenize(wordsList){
+ var allTokens= new Array();
+ var notCJKTokens= new Array();
+ var j=0;
+ for(j=0;j";
+ return this.input.substring(this.offset,this.offset+2);
+ }
+
+ function getAllTokens(){
+ while(this.incrementToken()){
+ var tmp = this.tokenize();
+ this.tokens.push(tmp);
+ }
+ return this.unique(this.tokens);
+// document.getElementById("content").innerHTML += tokens+" ";
+// document.getElementById("content").innerHTML += " dada"+sortedTokens+" ";
+// console.log(tokens.length+"dsdsds");
+ /*for(i=0;idada"+un[i]+"- "+stems[i]+" "+ ss;
+ document.getElementById("content").innerHTML += " "+sortedTokens[i];
+ }*/
+ }
+
+ function unique(a)
+ {
+ var r = new Array();
+ o:for(var i = 0, n = a.length; i < n; i++)
+ {
+ for(var x = 0, y = r.length; x < y; x++)
+ {
+ if(r[x]==a[i]) continue o;
+ }
+ r[r.length] = a[i];
+ }
+ return r;
+ }
+}
+
+
+/* Scriptfirstchar: to gather the first letter of index js files to upload */
+function Scriptfirstchar() {
+ this.strLetters = "";
+ this.add = addLettre;
+}
+
+function addLettre(caract) {
+
+ if (this.strLetters == 'undefined') {
+ this.strLetters = caract;
+ } else if (this.strLetters.indexOf(caract) < 0) {
+ this.strLetters += caract;
+ }
+
+ return 0;
+}
+/* end of scriptfirstchar */
+
+/*main loader function*/
+/*tab contains the first letters of each word looked for*/
+function loadTheIndexScripts(tab) {
+
+ //alert (tab.strLetters);
+ var scriptsarray = new Array();
+
+ for (var i = 0; i < tab.strLetters.length; i++) {
+
+ scriptsarray[i] = "..\/search" + "\/" + tab.strLetters.charAt(i) + ".js";
+ }
+ // add the list of html files
+ i++;
+ scriptsarray[i] = "..\/search" + "\/" + htmlfileList;
+
+ //debug
+ for (var t in scriptsarray) {
+ //alert (scriptsarray[t]);
+ }
+
+ tab = new ScriptLoader();
+ for (t in scriptsarray) {
+ tab.add(scriptsarray[t]);
+ }
+ tab.load();
+ //alert ("scripts loaded");
+ return (scriptsarray);
+}
+
+/* ScriptLoader: to load the scripts and wait that it's finished */
+function ScriptLoader() {
+ this.cpt = 0;
+ this.scriptTab = new Array();
+ this.add = addAScriptInTheList;
+ this.load = loadTheScripts;
+ this.onScriptLoaded = onScriptLoadedFunc;
+}
+
+function addAScriptInTheList(scriptPath) {
+ this.scriptTab.push(scriptPath);
+}
+
+function loadTheScripts() {
+ var script;
+ var head;
+
+ head = document.getElementsByTagName('head').item(0);
+
+ //script = document.createElement('script');
+
+ for (var el in this.scriptTab) {
+ //alert (el+this.scriptTab[el]);
+ script = document.createElement('script');
+ script.src = this.scriptTab[el];
+ script.type = 'text/javascript';
+ script.defer = false;
+
+ head.appendChild(script);
+ }
+
+}
+
+function onScriptLoadedFunc(e) {
+ e = e || window.event;
+ var target = e.target || e.srcElement;
+ var isComplete = true;
+ if (typeof target.readyState != undefined) {
+
+ isComplete = (target.readyState == "complete" || target.readyState == "loaded");
+ }
+ if (isComplete) {
+ ScriptLoader.cpt++;
+ if (ScriptLoader.cpt == ScriptLoader.scripts.length) {
+ ScriptLoader.onLoadComplete();
+ }
+ }
+}
+
+/*
+function onLoadComplete() {
+ alert("loaded !!");
+} */
+
+/* End of scriptloader functions */
+
+// Array.unique( strict ) - Remove duplicate values
+function unique(tab) {
+ var a = new Array();
+ var i;
+ var l = tab.length;
+
+ if (tab[0] != undefined) {
+ a[0] = tab[0];
+ }
+ else {
+ return -1
+ }
+
+ for (i = 1; i < l; i++) {
+ if (indexof(a, tab[i], 0) < 0) {
+ a.push(tab[i]);
+ }
+ }
+ return a;
+}
+function indexof(tab, element, begin) {
+ for (var i = begin; i < tab.length; i++) {
+ if (tab[i] == element) {
+ return i;
+ }
+ }
+ return -1;
+
+}
+/* end of Array functions */
+
+
+/*
+ Param: mots= list of words to look for.
+ This function creates an hashtable:
+ - The key is the index of a html file which contains a word to look for.
+ - The value is the list of all words contained in the html file.
+
+ Return value: the hashtable fileAndWordList
+ */
+function SortResults(mots) {
+
+ var fileAndWordList = new Object();
+ if (mots.length == 0) {
+ return null;
+ }
+
+ for (var t in mots) {
+ // get the list of the indices of the files.
+ var listNumerosDesFicStr = w[mots[t].toString()];
+ //alert ("listNumerosDesFicStr "+listNumerosDesFicStr);
+ var tab = listNumerosDesFicStr.split(",");
+
+ //for each file (file's index):
+ for (var t2 in tab) {
+ var temp = tab[t2].toString();
+ if (fileAndWordList[temp] == undefined) {
+
+ fileAndWordList[temp] = "" + mots[t];
+ } else {
+
+ fileAndWordList[temp] += "," + mots[t];
+ }
+ }
+ }
+
+ var fileAndWordListValuesOnly = new Array();
+
+ // sort results according to values
+ var temptab = new Array();
+ for (t in fileAndWordList) {
+ tab = fileAndWordList[t].split(',');
+
+ var tempDisplay = new Array();
+ for (var x in tab) {
+ if(stemQueryMap[tab[x]] != undefined){
+ tempDisplay.push(stemQueryMap[tab[x]]); //get the original word from the stem word.
+ } else {
+ tempDisplay.push(tab[x]); //no stem is available. (probably a CJK language)
+ }
+ }
+ var tempDispString = tempDisplay.join(", ");
+
+ temptab.push(new resultPerFile(t, fileAndWordList[t], tab.length, tempDispString));
+ fileAndWordListValuesOnly.push(fileAndWordList[t]);
+ }
+
+
+ //alert("t"+fileAndWordListValuesOnly.toString());
+
+ fileAndWordListValuesOnly = unique(fileAndWordListValuesOnly);
+ fileAndWordListValuesOnly = fileAndWordListValuesOnly.sort(compare_nbMots);
+ //alert("t: "+fileAndWordListValuesOnly.join(';'));
+
+ var listToOutput = new Array();
+
+ for (var j in fileAndWordListValuesOnly) {
+ for (t in temptab) {
+ if (temptab[t].motsliste == fileAndWordListValuesOnly[j]) {
+ if (listToOutput[j] == undefined) {
+ listToOutput[j] = new Array(temptab[t]);
+ } else {
+ listToOutput[j].push(temptab[t]);
+ }
+ }
+ }
+ }
+ return listToOutput;
+}
+
+function resultPerFile(filenb, motsliste, motsnb, motslisteDisplay) {
+ this.filenb = filenb;
+ this.motsliste = motsliste;
+ this.motsnb = motsnb;
+ this.motslisteDisplay= motslisteDisplay;
+}
+
+function compare_nbMots(s1, s2) {
+ var t1 = s1.split(',');
+ var t2 = s2.split(',');
+ //alert ("s1:"+t1.length + " " +t2.length)
+ if (t1.length == t2.length) {
+ return 0;
+ } else if (t1.length > t2.length) {
+ return 1;
+ } else {
+ return -1;
+ }
+ //return t1.length - t2.length);
+}
\ No newline at end of file
diff --git a/installer/4/id/content/search/punctuation.props b/installer/4/id/content/search/punctuation.props
new file mode 100644
index 00000000..d3e3fcd2
--- /dev/null
+++ b/installer/4/id/content/search/punctuation.props
@@ -0,0 +1,31 @@
+Punct01=\\u3002
+Punct02=\\u3003
+Punct03=\\u300C
+Punct04=\\u300D
+Punct05=\\u300E
+Punct06=\\u300F
+Punct07=\\u301D
+Punct08=\\u301E
+Punct09=\\u301F
+Punct10=\\u309B
+Punct11=\\u2018
+Punct12=\\u2019
+Punct13=\\u201A
+Punct14=\\u201C
+Punct15=\\u201D
+Punct16=\\u201E
+Punct17=\\u2032
+Punct18=\\u2033
+Punct19=\\u2035
+Punct20=\\u2039
+Punct21=\\u203A
+Punct22=\\u201E
+Punct23=\\u00BB
+Punct24=\\u00AB
+Punct25=
+Punct26=
+Punct27=\\u00A0
+Punct28=\\u2014
+
+
+
diff --git a/installer/4/id/content/search/stemmers/de_stemmer.js b/installer/4/id/content/search/stemmers/de_stemmer.js
new file mode 100644
index 00000000..7ff3822a
--- /dev/null
+++ b/installer/4/id/content/search/stemmers/de_stemmer.js
@@ -0,0 +1,247 @@
+/*
+ * Author: Joder Illi
+ *
+ * Copyright (c) 2010, FormBlitz AG
+ * All rights reserved.
+ * Implementation of the stemming algorithm from http://snowball.tartarus.org/algorithms/german/stemmer.html
+ * Copyright of the algorithm is: Copyright (c) 2001, Dr Martin Porter and can be found at http://snowball.tartarus.org/license.php
+ *
+ * Redistribution and use in source and binary forms, with or without modification, is covered by the standard BSD license.
+ *
+ */
+
+//var stemmer = function Stemmer() {
+ /*
+ German includes the following accented forms,
+ ä ö ü
+ and a special letter, ß, equivalent to double s.
+ The following letters are vowels:
+ a e i o u y ä ö ü
+ */
+
+ var stemmer = function(word) {
+ /*
+ Put u and y between vowels into upper case
+ */
+ word = word.replace(/([aeiouyäöü])u([aeiouyäöü])/g, '$1U$2');
+ word = word.replace(/([aeiouyäöü])y([aeiouyäöü])/g, '$1Y$2');
+
+ /*
+ and then do the following mappings,
+ (a) replace ß with ss,
+ (a) replace ae with ä, Not doing these, have trouble with diphtongs
+ (a) replace oe with ö, Not doing these, have trouble with diphtongs
+ (a) replace ue with ü unless preceded by q. Not doing these, have trouble with diphtongs
+ So in quelle, ue is not mapped to ü because it follows q, and in feuer it is not mapped because the first part of the rule changes it to feUer, so the u is not found.
+ */
+ word = word.replace(/ß/g, 'ss');
+ //word = word.replace(/ae/g, 'ä');
+ //word = word.replace(/oe/g, 'ö');
+ //word = word.replace(/([^q])ue/g, '$1ü');
+
+ /*
+ R1 and R2 are first set up in the standard way (see the note on R1 and R2), but then R1 is adjusted so that the region before it contains at least 3 letters.
+ R1 is the region after the first non-vowel following a vowel, or is the null region at the end of the word if there is no such non-vowel.
+ R2 is the region after the first non-vowel following a vowel in R1, or is the null region at the end of the word if there is no such non-vowel.
+ */
+
+ var r1Index = word.search(/[aeiouyäöü][^aeiouyäöü]/);
+ var r1 = '';
+ if (r1Index != -1) {
+ r1Index += 2;
+ r1 = word.substring(r1Index);
+ }
+
+ var r2Index = -1;
+ var r2 = '';
+
+ if (r1Index != -1) {
+ var r2Index = r1.search(/[aeiouyäöü][^aeiouyäöü]/);
+ if (r2Index != -1) {
+ r2Index += 2;
+ r2 = r1.substring(r2Index);
+ r2Index += r1Index;
+ } else {
+ r2 = '';
+ }
+ }
+
+ if (r1Index != -1 && r1Index < 3) {
+ r1Index = 3;
+ r1 = word.substring(r1Index);
+ }
+
+ /*
+ Define a valid s-ending as one of b, d, f, g, h, k, l, m, n, r or t.
+ Define a valid st-ending as the same list, excluding letter r.
+ */
+
+ /*
+ Do each of steps 1, 2 and 3.
+ */
+
+ /*
+ Step 1:
+ Search for the longest among the following suffixes,
+ (a) em ern er
+ (b) e en es
+ (c) s (preceded by a valid s-ending)
+ */
+ var a1Index = word.search(/(em|ern|er)$/g);
+ var b1Index = word.search(/(e|en|es)$/g);
+ var c1Index = word.search(/([bdfghklmnrt]s)$/g);
+ if (c1Index != -1) {
+ c1Index++;
+ }
+ var index1 = 10000;
+ var optionUsed1 = '';
+ if (a1Index != -1 && a1Index < index1) {
+ optionUsed1 = 'a';
+ index1 = a1Index;
+ }
+ if (b1Index != -1 && b1Index < index1) {
+ optionUsed1 = 'b';
+ index1 = b1Index;
+ }
+ if (c1Index != -1 && c1Index < index1) {
+ optionUsed1 = 'c';
+ index1 = c1Index;
+ }
+
+ /*
+ and delete if in R1. (Of course the letter of the valid s-ending is not necessarily in R1.) If an ending of group (b) is deleted, and the ending is preceded by niss, delete the final s.
+ (For example, äckern -> äck, ackers -> acker, armes -> arm, bedürfnissen -> bedürfnis)
+ */
+
+ if (index1 != 10000 && r1Index != -1) {
+ if (index1 >= r1Index) {
+ word = word.substring(0, index1);
+ if (optionUsed1 == 'b') {
+ if (word.search(/niss$/) != -1) {
+ word = word.substring(0, word.length -1);
+ }
+ }
+ }
+ }
+ /*
+ Step 2:
+ Search for the longest among the following suffixes,
+ (a) en er est
+ (b) st (preceded by a valid st-ending, itself preceded by at least 3 letters)
+ */
+
+ var a2Index = word.search(/(en|er|est)$/g);
+ var b2Index = word.search(/(.{3}[bdfghklmnt]st)$/g);
+ if (b2Index != -1) {
+ b2Index += 4;
+ }
+
+ var index2 = 10000;
+ var optionUsed2 = '';
+ if (a2Index != -1 && a2Index < index2) {
+ optionUsed2 = 'a';
+ index2 = a2Index;
+ }
+ if (b2Index != -1 && b2Index < index2) {
+ optionUsed2 = 'b';
+ index2 = b2Index;
+ }
+
+ /*
+ and delete if in R1.
+ (For example, derbsten -> derbst by step 1, and derbst -> derb by step 2, since b is a valid st-ending, and is preceded by just 3 letters)
+ */
+
+ if (index2 != 10000 && r1Index != -1) {
+ if (index2 >= r1Index) {
+ word = word.substring(0, index2);
+ }
+ }
+
+ /*
+ Step 3: d-suffixes (*)
+ Search for the longest among the following suffixes, and perform the action indicated.
+ end ung
+ delete if in R2
+ if preceded by ig, delete if in R2 and not preceded by e
+ ig ik isch
+ delete if in R2 and not preceded by e
+ lich heit
+ delete if in R2
+ if preceded by er or en, delete if in R1
+ keit
+ delete if in R2
+ if preceded by lich or ig, delete if in R2
+ */
+
+ var a3Index = word.search(/(end|ung)$/g);
+ var b3Index = word.search(/[^e](ig|ik|isch)$/g);
+ var c3Index = word.search(/(lich|heit)$/g);
+ var d3Index = word.search(/(keit)$/g);
+ if (b3Index != -1) {
+ b3Index ++;
+ }
+
+ var index3 = 10000;
+ var optionUsed3 = '';
+ if (a3Index != -1 && a3Index < index3) {
+ optionUsed3 = 'a';
+ index3 = a3Index;
+ }
+ if (b3Index != -1 && b3Index < index3) {
+ optionUsed3 = 'b';
+ index3 = b3Index;
+ }
+ if (c3Index != -1 && c3Index < index3) {
+ optionUsed3 = 'c';
+ index3 = c3Index;
+ }
+ if (d3Index != -1 && d3Index < index3) {
+ optionUsed3 = 'd';
+ index3 = d3Index;
+ }
+
+ if (index3 != 10000 && r2Index != -1) {
+ if (index3 >= r2Index) {
+ word = word.substring(0, index3);
+ var optionIndex = -1;
+ var optionSubsrt = '';
+ if (optionUsed3 == 'a') {
+ optionIndex = word.search(/[^e](ig)$/);
+ if (optionIndex != -1) {
+ optionIndex++;
+ if (optionIndex >= r2Index) {
+ word = word.substring(0, optionIndex);
+ }
+ }
+ } else if (optionUsed3 == 'c') {
+ optionIndex = word.search(/(er|en)$/);
+ if (optionIndex != -1) {
+ if (optionIndex >= r1Index) {
+ word = word.substring(0, optionIndex);
+ }
+ }
+ } else if (optionUsed3 == 'd') {
+ optionIndex = word.search(/(lich|ig)$/);
+ if (optionIndex != -1) {
+ if (optionIndex >= r2Index) {
+ word = word.substring(0, optionIndex);
+ }
+ }
+ }
+ }
+ }
+
+ /*
+ Finally,
+ turn U and Y back into lower case, and remove the umlaut accent from a, o and u.
+ */
+ word = word.replace(/U/g, 'u');
+ word = word.replace(/Y/g, 'y');
+ word = word.replace(/ä/g, 'a');
+ word = word.replace(/ö/g, 'o');
+ word = word.replace(/ü/g, 'u');
+
+ return word;
+ };
+//}
\ No newline at end of file
diff --git a/installer/4/id/content/search/stemmers/en_stemmer.js b/installer/4/id/content/search/stemmers/en_stemmer.js
new file mode 100644
index 00000000..f58012f2
--- /dev/null
+++ b/installer/4/id/content/search/stemmers/en_stemmer.js
@@ -0,0 +1,187 @@
+// Porter stemmer in Javascript. Few comments, but it's easy to follow against the rules in the original
+// paper, in
+//
+// Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14,
+// no. 3, pp 130-137,
+//
+// see also http://www.tartarus.org/~martin/PorterStemmer
+
+// Release 1 be 'andargor', Jul 2004
+// Release 2 (substantially revised) by Christopher McKenzie, Aug 2009
+
+
+var stemmer = (function(){
+ var step2list = {
+ "ational" : "ate",
+ "tional" : "tion",
+ "enci" : "ence",
+ "anci" : "ance",
+ "izer" : "ize",
+ "bli" : "ble",
+ "alli" : "al",
+ "entli" : "ent",
+ "eli" : "e",
+ "ousli" : "ous",
+ "ization" : "ize",
+ "ation" : "ate",
+ "ator" : "ate",
+ "alism" : "al",
+ "iveness" : "ive",
+ "fulness" : "ful",
+ "ousness" : "ous",
+ "aliti" : "al",
+ "iviti" : "ive",
+ "biliti" : "ble",
+ "logi" : "log"
+ },
+
+ step3list = {
+ "icate" : "ic",
+ "ative" : "",
+ "alize" : "al",
+ "iciti" : "ic",
+ "ical" : "ic",
+ "ful" : "",
+ "ness" : ""
+ },
+
+ c = "[^aeiou]", // consonant
+ v = "[aeiouy]", // vowel
+ C = c + "[^aeiouy]*", // consonant sequence
+ V = v + "[aeiou]*", // vowel sequence
+
+ mgr0 = "^(" + C + ")?" + V + C, // [C]VC... is m>0
+ meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$", // [C]VC[V] is m=1
+ mgr1 = "^(" + C + ")?" + V + C + V + C, // [C]VCVC... is m>1
+ s_v = "^(" + C + ")?" + v; // vowel in stem
+
+ return function (w) {
+ var stem,
+ suffix,
+ firstch,
+ re,
+ re2,
+ re3,
+ re4,
+ origword = w;
+
+ if (w.length < 3) { return w; }
+
+ firstch = w.substr(0,1);
+ if (firstch == "y") {
+ w = firstch.toUpperCase() + w.substr(1);
+ }
+
+ // Step 1a
+ re = /^(.+?)(ss|i)es$/;
+ re2 = /^(.+?)([^s])s$/;
+
+ if (re.test(w)) { w = w.replace(re,"$1$2"); }
+ else if (re2.test(w)) { w = w.replace(re2,"$1$2"); }
+
+ // Step 1b
+ re = /^(.+?)eed$/;
+ re2 = /^(.+?)(ed|ing)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ re = new RegExp(mgr0);
+ if (re.test(fp[1])) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+ } else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1];
+ re2 = new RegExp(s_v);
+ if (re2.test(stem)) {
+ w = stem;
+ re2 = /(at|bl|iz)$/;
+ re3 = new RegExp("([^aeiouylsz])\\1$");
+ re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re2.test(w)) { w = w + "e"; }
+ else if (re3.test(w)) { re = /.$/; w = w.replace(re,""); }
+ else if (re4.test(w)) { w = w + "e"; }
+ }
+ }
+
+ // Step 1c
+ re = /^(.+?)y$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(s_v);
+ if (re.test(stem)) { w = stem + "i"; }
+ }
+
+ // Step 2
+ re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem)) {
+ w = stem + step2list[suffix];
+ }
+ }
+
+ // Step 3
+ re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ suffix = fp[2];
+ re = new RegExp(mgr0);
+ if (re.test(stem)) {
+ w = stem + step3list[suffix];
+ }
+ }
+
+ // Step 4
+ re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
+ re2 = /^(.+?)(s|t)(ion)$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ if (re.test(stem)) {
+ w = stem;
+ }
+ } else if (re2.test(w)) {
+ var fp = re2.exec(w);
+ stem = fp[1] + fp[2];
+ re2 = new RegExp(mgr1);
+ if (re2.test(stem)) {
+ w = stem;
+ }
+ }
+
+ // Step 5
+ re = /^(.+?)e$/;
+ if (re.test(w)) {
+ var fp = re.exec(w);
+ stem = fp[1];
+ re = new RegExp(mgr1);
+ re2 = new RegExp(meq1);
+ re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
+ if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {
+ w = stem;
+ }
+ }
+
+ re = /ll$/;
+ re2 = new RegExp(mgr1);
+ if (re.test(w) && re2.test(w)) {
+ re = /.$/;
+ w = w.replace(re,"");
+ }
+
+ // and turn initial Y back to y
+
+ if (firstch == "y") {
+ w = firstch.toLowerCase() + w.substr(1);
+ }
+
+ return w;
+ }
+})();
\ No newline at end of file
diff --git a/installer/4/id/content/search/stemmers/fr_stemmer.js b/installer/4/id/content/search/stemmers/fr_stemmer.js
new file mode 100644
index 00000000..34f97431
--- /dev/null
+++ b/installer/4/id/content/search/stemmers/fr_stemmer.js
@@ -0,0 +1,299 @@
+/*
+ * Author: Kasun Gajasinghe
+ * E-Mail: kasunbg AT gmail DOT com
+ * Date: 09.08.2010
+ *
+ * usage: stemmer(word);
+ * ex: var stem = stemmer(foobar);
+ * Implementation of the stemming algorithm from http://snowball.tartarus.org/algorithms/french/stemmer.html
+ *
+ * LICENSE:
+ *
+ * Copyright (c) 2010, Kasun Gajasinghe. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY KASUN GAJASINGHE ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KASUN GAJASINGHE BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+var stemmer = function(word){
+// Letters in French include the following accented forms,
+// â à ç ë é ê è ï î ô û ù
+// The following letters are vowels:
+// a e i o u y â à ë é ê è ï î ô û ù
+
+ word = word.toLowerCase();
+ var oriWord = word;
+ word = word.replace(/qu/g, 'qU'); //have to perform first, as after the operation, capital U is not treated as a vowel
+ word = word.replace(/([aeiouyâàëéêèïîôûù])u([aeiouyâàëéêèïîôûù])/g, '$1U$2');
+ word = word.replace(/([aeiouyâàëéêèïîôûù])i([aeiouyâàëéêèïîôûù])/g, '$1I$2');
+ word = word.replace(/([aeiouyâàëéêèïîôûù])y/g, '$1Y');
+ word = word.replace(/y([aeiouyâàëéêèïîôûù])/g, 'Y$1');
+
+ var rv='';
+ var rvIndex = -1;
+ if(word.search(/^(par|col|tap)/) != -1 || word.search(/^[aeiouyâàëéêèïîôûù]{2}/) != -1){
+ rv = word.substring(3);
+ rvIndex = 3;
+ } else {
+ rvIndex = word.substring(1).search(/[aeiouyâàëéêèïîôûù]/);
+ if(rvIndex != -1){
+ rvIndex +=2; //+2 is to supplement the substring(1) used to find rvIndex
+ rv = word.substring(rvIndex);
+ } else {
+ rvIndex = word.length;
+ }
+ }
+
+// R1 is the region after the first non-vowel following a vowel, or the end of the word if there is no such non-vowel.
+// R2 is the region after the first non-vowel following a vowel in R1, or the end of the word if there is no such non-vowel
+ var r1Index = word.search(/[aeiouyâàëéêèïîôûù][^aeiouyâàëéêèïîôûù]/);
+ var r1 = '';
+ if (r1Index != -1) {
+ r1Index += 2;
+ r1 = word.substring(r1Index);
+ } else {
+ r1Index = word.length;
+ }
+
+ var r2Index = -1;
+ var r2 = '';
+ if (r1Index != -1) {
+ r2Index = r1.search(/[aeiouyâàëéêèïîôûù][^aeiouyâàëéêèïîôûù]/);
+ if (r2Index != -1) {
+ r2Index += 2;
+ r2 = r1.substring(r2Index);
+ r2Index += r1Index;
+ } else {
+ r2 = '';
+ r2Index = word.length;
+ }
+ }
+ if (r1Index != -1 && r1Index < 3) {
+ r1Index = 3;
+ r1 = word.substring(r1Index);
+ }
+
+ /*
+ Step 1: Standard suffix removal
+ */
+ var a1Index = word.search(/(ance|iqUe|isme|able|iste|eux|ances|iqUes|ismes|ables|istes)$/);
+ var a2Index = word.search(/(atrice|ateur|ation|atrices|ateurs|ations)$/);
+ var a3Index = word.search(/(logie|logies)$/);
+ var a4Index = word.search(/(usion|ution|usions|utions)$/);
+ var a5Index = word.search(/(ence|ences)$/);
+ var a6Index = word.search(/(ement|ements)$/);
+ var a7Index = word.search(/(ité|ités)$/);
+ var a8Index = word.search(/(if|ive|ifs|ives)$/);
+ var a9Index = word.search(/(eaux)$/);
+ var a10Index = word.search(/(aux)$/);
+ var a11Index = word.search(/(euse|euses)$/);
+ var a12Index = word.search(/[^aeiouyâàëéêèïîôûù](issement|issements)$/);
+ var a13Index = word.search(/(amment)$/);
+ var a14Index = word.search(/(emment)$/);
+ var a15Index = word.search(/[aeiouyâàëéêèïîôûù](ment|ments)$/);
+
+ if(a1Index != -1 && a1Index >= r2Index){
+ word = word.substring(0,a1Index);
+ } else if(a2Index != -1 && a2Index >= r2Index){
+ word = word.substring(0,a2Index);
+ var a2Index2 = word.search(/(ic)$/);
+ if(a2Index2 != -1 && a2Index2 >= r2Index){
+ word = word.substring(0, a2Index2); //if preceded by ic, delete if in R2,
+ } else { //else replace by iqU
+ word = word.replace(/(ic)$/,'iqU');
+ }
+ } else if(a3Index != -1 && a3Index >= r2Index){
+ word = word.replace(/(logie|logies)$/,'log'); //replace with log if in R2
+ } else if(a4Index != -1 && a4Index >= r2Index){
+ word = word.replace(/(usion|ution|usions|utions)$/,'u'); //replace with u if in R2
+ } else if(a5Index != -1 && a5Index >= r2Index){
+ word = word.replace(/(ence|ences)$/,'ent'); //replace with ent if in R2
+ } else if(a6Index != -1 && a6Index >= rvIndex){
+ word = word.substring(0,a6Index);
+ if(word.search(/(iv)$/) >= r2Index){
+ word = word.replace(/(iv)$/, '');
+ if(word.search(/(at)$/) >= r2Index){
+ word = word.replace(/(at)$/, '');
+ }
+ } else if(word.search(/(eus)$/) != -1){
+ var a6Index2 = word.search(/(eus)$/);
+ if(a6Index2 >=r2Index){
+ word = word.substring(0, a6Index2);
+ } else if(a6Index2 >= r1Index){
+ word = word.substring(0,a6Index2)+"eux";
+ }
+ } else if(word.search(/(abl|iqU)$/) >= r2Index){
+ word = word.replace(/(abl|iqU)$/,''); //if preceded by abl or iqU, delete if in R2,
+ } else if(word.search(/(ièr|Ièr)$/) >= rvIndex){
+ word = word.replace(/(ièr|Ièr)$/,'i'); //if preceded by abl or iqU, delete if in R2,
+ }
+ } else if(a7Index != -1 && a7Index >= r2Index){
+ word = word.substring(0,a7Index); //delete if in R2
+ if(word.search(/(abil)$/) != -1){ //if preceded by abil, delete if in R2, else replace by abl, otherwise,
+ var a7Index2 = word.search(/(abil)$/);
+ if(a7Index2 >=r2Index){
+ word = word.substring(0, a7Index2);
+ } else {
+ word = word.substring(0,a7Index2)+"abl";
+ }
+ } else if(word.search(/(ic)$/) != -1){
+ var a7Index3 = word.search(/(ic)$/);
+ if(a7Index3 != -1 && a7Index3 >= r2Index){
+ word = word.substring(0, a7Index3); //if preceded by ic, delete if in R2,
+ } else { //else replace by iqU
+ word = word.replace(/(ic)$/,'iqU');
+ }
+ } else if(word.search(/(iv)$/) != r2Index){
+ word = word.replace(/(iv)$/,'');
+ }
+ } else if(a8Index != -1 && a8Index >= r2Index){
+ word = word.substring(0,a8Index);
+ if(word.search(/(at)$/) >= r2Index){
+ word = word.replace(/(at)$/, '');
+ if(word.search(/(ic)$/) >= r2Index){
+ word = word.replace(/(ic)$/, '');
+ } else { word = word.replace(/(ic)$/, 'iqU'); }
+ }
+ } else if(a9Index != -1){ word = word.replace(/(eaux)/,'eau')
+ } else if(a10Index >= r1Index){ word = word.replace(/(aux)/,'al')
+ } else if(a11Index != -1 ){
+ var a11Index2 = word.search(/(euse|euses)$/);
+ if(a11Index2 >=r2Index){
+ word = word.substring(0, a11Index2);
+ } else if(a11Index2 >= r1Index){
+ word = word.substring(0, a11Index2)+"eux";
+ }
+ } else if(a12Index!=-1 && a12Index>=r1Index){
+ word = word.substring(0,a12Index+1); //+1- amendment to non-vowel
+ } else if(a13Index!=-1 && a13Index>=rvIndex){
+ word = word.replace(/(amment)$/,'ant');
+ } else if(a14Index!=-1 && a14Index>=rvIndex){
+ word = word.replace(/(emment)$/,'ent');
+ } else if(a15Index!=-1 && a15Index>=rvIndex){
+ word = word.substring(0,a15Index+1);
+ }
+
+ /* Step 2a: Verb suffixes beginning i*/
+ var wordStep1 = word;
+ var step2aDone = false;
+ if(oriWord == word.toLowerCase() || oriWord.search(/(amment|emment|ment|ments)$/) != -1){
+ step2aDone = true;
+ var b1Regex = /([^aeiouyâàëéêèïîôûù])(îmes|ît|îtes|i|ie|ies|ir|ira|irai|iraIent|irais|irait|iras|irent|irez|iriez|irions|irons|iront|is|issaIent|issais|issait|issant|issante|issantes|issants|isse|issent|isses|issez|issiez|issions|issons|it)$/i;
+ if(word.search(b1Regex) >= rvIndex){
+ word = word.replace(b1Regex,'$1');
+ }
+ }
+
+ /* Step 2b: Other verb suffixes*/
+ if (step2aDone && wordStep1 == word) {
+ if (word.search(/(ions)$/) >= r2Index) {
+ word = word.replace(/(ions)$/, '');
+ } else {
+ var b2Regex = /(é|ée|ées|és|èrent|er|era|erai|eraIent|erais|erait|eras|erez|eriez|erions|erons|eront|ez|iez)$/i;
+ if (word.search(b2Regex) >= rvIndex) {
+ word = word.replace(b2Regex, '');
+ } else {
+ var b3Regex = /e(âmes|ât|âtes|a|ai|aIent|ais|ait|ant|ante|antes|ants|as|asse|assent|asses|assiez|assions)$/i;
+ if (word.search(b3Regex) >= rvIndex) {
+ word = word.replace(b3Regex, '');
+ } else {
+ var b3Regex2 = /(âmes|ât|âtes|a|ai|aIent|ais|ait|ant|ante|antes|ants|as|asse|assent|asses|assiez|assions)$/i;
+ if (word.search(b3Regex2) >= rvIndex) {
+ word = word.replace(b3Regex2, '');
+ }
+ }
+ }
+ }
+ }
+
+ if(oriWord != word.toLowerCase()){
+ /* Step 3 */
+ var rep = '';
+ if(word.search(/Y$/) != -1) {
+ word = word.replace(/Y$/, 'i');
+ } else if(word.search(/ç$/) != -1){
+ word = word.replace(/ç$/, 'c');
+ }
+ } else {
+ /* Step 4 */
+ //If the word ends s, not preceded by a, i, o, u, è or s, delete it.
+ if (word.search(/([^aiouès])s$/) >= rvIndex) {
+ word = word.replace(/([^aiouès])s$/, '$1');
+ }
+ var e1Index = word.search(/ion$/);
+ if (e1Index >= r2Index && word.search(/[st]ion$/) >= rvIndex) {
+ word = word.substring(0, e1Index);
+ } else {
+ var e2Index = word.search(/(ier|ière|Ier|Ière)$/);
+ if (e2Index != -1 && e2Index >= rvIndex) {
+ word = word.substring(0, e2Index) + "i";
+ } else {
+ if (word.search(/e$/) >= rvIndex) {
+ word = word.replace(/e$/, ''); //delete last e
+ } else if (word.search(/guë$/) >= rvIndex) {
+ word = word.replace(/guë$/, 'gu');
+ }
+ }
+ }
+ }
+
+ /* Step 5: Undouble */
+ //word = word.replace(/(en|on|et|el|eil)(n|t|l)$/,'$1');
+ word = word.replace(/(en|on)(n)$/,'$1');
+ word = word.replace(/(ett)$/,'et');
+ word = word.replace(/(el|eil)(l)$/,'$1');
+
+ /* Step 6: Un-accent */
+ word = word.replace(/[éè]([^aeiouyâàëéêèïîôûù]+)$/,'e$1');
+ word = word.toLowerCase();
+ return word;
+};
+
+var eqOut = new Array();
+var noteqOut = new Array();
+var eqCount = 0;
+/*
+To test the stemming, create two arrays named "voc" and "COut" which are for vocabualary and the stemmed output.
+Then add the vocabulary strings and output strings. This method will generate the stemmed output for "voc" and will
+compare the output with COut.
+ (I used porter's voc and out files and did a regex to convert them to js objects. regex: /");\nvoc.push("/g . This
+ will add strings to voc array such that output would look like: voc.push("foobar"); ) drop me an email for any help.
+ */
+function testFr(){
+ var start = new Date().getTime(); //execution time
+ eqCount = 0;
+ eqOut = new Array();
+ noteqOut = new Array();
+ for(var k=0;k
+
+
+
+ Tingkat Keamanan
Pilih negara atau wilayah Anda. Ini akan penting untuk semua jenis
+pengaturan, seperti mata uang dan regulasi domain nirkabel. Mengatur negara
+yang salah akan membawa pada tidak bisa digunakannya jaringan Nirkabel.
Jika negara Anda tidak ada di dalam daftar, klik tombol Negara
+Lainnya lalu pilih negara / wilayah Anda di sana.
Catatan
Jika negara Anda hanya dalam daftar Negara Lainnya,
+setelah mengklik OK mungkin sebuah negara dari daftar
+pertama telah terpilih. Abaikan saja, DrakX akan mengikuti pilihan Anda yang
+sebenarnya.
Metode masukan
Pada layar Negara Lainnya Anda juga bisa memilih metode
+input (di bagian bawah dari daftar). Metode input memungkinkan pengguna
+memasukkan karakter berbagai bahasa (Cina, Jepang, Korea, dsb). IBus adalah
+metode input bawaan DVD Mageia, LiveCD Afrika/India dan
+Asia/tanpa-India. Untuk lokalisasi Asia dan Afrika, IBus akan diatur sebagai
+metode input bawaan sehingga pengguna tidak perlu mengkonfigurasinya secara
+manual. Metode input lain (SCIM, GCIN, HIME, dsb) juga menyediakan fungsi
+serupa yang bisa diinstall jika Anda menambahkan media HTTP/FTP sebelum
+pemilihan paket.
Catatan
Jika Anda melewatkan pengaturan metode input saat instalasi, Anda bisa
+mengaksesnya setelah menjalankan ulang komputer melalui "Konfigurasi
+Komputer Anda" -> "Sistem", atau dengan menjalankan localedrake sebagai
+root.
Jika Anda memilihi satu atau lebih instalasi
+Mageia pada sistem, installer akan memberi
+pilihan untuk upgrade salah satunya.
Awas
Hanya upgrade dari versi Mageia yang masih didukung
+saat versi installer ini dirilis, yang telah sepenuhnya diuji. Jika Anda
+ingin melakukan upgrade versi Mageia yang telah mencapai akhir dukungan
+ketika yang ini dirilis, akan lebih baik untuk melakukan instalasi baru dan
+membiarkan partisi /home Anda.
Catatan
Jika selama instalasi Anda memutuskan untuk menghentikannya, Anda bisa
+menjalankan ulang komputer, tapi pikir dua kali sebelum
+melakukannya. Setelah partisi diformat atau update telah mulai diinstall,
+kondisi komputer Anda sudah tidak sama lagi dan menjalankan ulang komputer
+bisa membuat komputer Anda tidak bisa digunakan lagi. Jika Anda benar-benar
+ingin menjalankan ulang komputer, jalankan terminal dengan menekan tiga
+tombol Alt Ctrl F2 secara bersamaan. Lalu tekan
+Alt Ctrl Delete secara bersamaan untuk menjalankan
+ulang.
Tip
Jika Anda terlupa untuk memilih bahasa tambahan, Anda bisa kembali dari
+layar "Install atau Upgrade" ke layar pemilihan bahasa dengan menekan
+Alt Ctrl Home. Jangan melakukan
+ini saat sedang menginstall.
DrakX akan memilih keyboard yang sesuai untuk bahasa Anda. Jika tidak ada
+yang cocok maka layout keyboard US akan digunakan.
Pastikan yang dipilih benar atau pilih layout keyboard lain. Jika Anda tidak
+mengetahui layout yang dimiliki keyboard Anda, lihat spesifikasi komputer,
+atau tanya pembuat komputer. Mungkin juga ada label pada keyboard Anda yang
+mengidentifikasi layout. Anda juga bisa melihat ini: en.wikipedia.org/wiki/Keyboard_layout
Jika keyboard Anda tidak ada di daftar yang ditampilkan, klik pada
+Lainnya untuk mendapatkan daftar lengkap, lalu pilih
+keyboard Anda di sana.
Awas
Setelah memilih keyboard dari dialog Lainnya, Anda
+akan kembali ke dialog pilihan keyboard pertama dan walaupun sepertinya
+sebuah keyboard pada layar tersebut terpilih. Anda bisa mengabaikannya dan
+melanjutkan instalasi: Keyboar Anda adalah yang dipilih dari yang ada di
+daftar lengkap.
Jika Anda memilih keyboard yang berbasis karakter bukan latin, Anda akan
+melihat layar dialog tambahan yang menanyakan bagaimana Anda akan melakukan
+pergantian layout keyboard di antara Latin dan bukan Latin
diff --git a/installer/4/id/content/selectLanguage.html b/installer/4/id/content/selectLanguage.html
new file mode 100644
index 00000000..f3edb8a3
--- /dev/null
+++ b/installer/4/id/content/selectLanguage.html
@@ -0,0 +1,45 @@
+
+
+
+
+ Silakan pilih bahasa yang akan digunakan
Pilih bahasa yang Anda sukai dengan membentangkan daftar dari benua
+Anda. Mageia akan menggunakan pilihan ini selama
+instalasi dan pada sistem yang sudah terinstall.
Jika sepertinya Anda akan memerlukan beberapa bahasa untuk komputer Anda,
+untuk Anda sendiri atau orang lain, maka gunakanlah tombol Banyak
+bahasa untuk menambahkannya sekarang. Akan sulit untuk
+menambahkan dukungan bahasa tambahan setelah instalasi selesai.
Awas
Bahkan jika Anda akan memilih lebih dari satu bahasa, Anda harus memilih
+salah satu sebagai bahasa yang lebih disukai di layar bahasa pertama. Bahasa
+tersebut juga akan ditandai sudah dipilih di layar banyak bahasa.
Jika bahasa keyboard tidak sama dengan bahasa yang akan dipilih, maka
+disarankan untuk menginstall bahasa dari keyboard yang digunakan juga.
Mageia menggunakan dukungan UTF-8 (Unicode) sebagai bawaan. Ini bisa
+dimatikan di layar "banyak bahasa" jika tidak sesuai dengan bahasa
+Anda. Mematikan UTF-8 akan berpengaruh pada bahasa-bahasa yang diinstall.
Anda bisa mengubah bahasa komputer Anda setelah instalasi selesai di Pusat
+Kendali Mageia -> Sistem -> Kelola lokalisasi untuk sistem Anda.
Jika Anda lebih suka pengaturan bootloader yang berbeda yang akan dipilih
+secara otomatis oleh installer, Anda bisa mengubahnya di sini.
Anda mungkin sudah memiliki sistem operasi lain pada komputer, yang mana
+Anda harus memilih untuk menambahkan Mageia ke bootloader yang sudah ada,
+atau membiarkan Mageia membuatnya.
Tip
Menu grafis Mageia sangat cantik :)
Gunakan bootloader Mageia
Bawaannya, Mageia membuat bootloader GRUB (legacy) baru ke MBR (Master Boot
+Record) dari harddisk pertama. Jika Anda sudah memiliki sistem operasi lain
+yang terinstall, Mageia akan berusaha menambahkannya ke menu boot Mageia
+baru.
Mageia sekarang juga menawarkan GRUB2 sebagai bootloader pilihan sebagai
+tambahan GRUB legacy dan Lilo.
Awas
Sistem Linux yang menggunakan bootloader GRUB2 tidak didukung oleh GRUB
+(legacy) dan tidak akan dikenali jika bootloader GRUB bawaan digunakan.
Solusi terbaik adalah menggunakan bootloader GRUB2 yang tersedia di halaman
+Ringkasan selama instalasi.
Gunakan bootloader yang ada
Jika Anda memutuskan untuk menggunakan bootloader yang sudah ada maka Anda
+harus BERHENTI di halaman ringkasan, lalu klik tombol
+Konfigurasi Bootloader, yang memungkinkan Anda
+mengubah lokasi instalasi bootloader.
Jangan memilih perangkat seperti "sda", atau Anda akan menghapus MBR yang
+sudah ada. Anda harus memilih partisi root yang Anda pilih di bagian
+pemartisian sebelumnya, misalnya sda7.
Supaya jelas, sda adalah perangkat, sda7 adalah partisi pada perangkat
+tersebut.
Tip
Jalankan tty2 dengan Ctrl+Alt+F2 lalu ketik df untuk
+memeriksa di mana partisi / (root) berada. Ctrl+Alt+F7
+akan membawa Anda kembali ke layar installer.
Prosedur yang sebenarnya untuk menambahkan Mageia ke bootloader yang sudah
+ada diluar ruang lingkup bantuan ini, tapi dalam kebanyakan kasus akan harus
+menjalankan program intalasi bootloader yang sesuai yang akan mendeteksi dan
+menambahkan secara otomatis. Lihat pada dokumentasi sistem operasi.
Pilihan lanjutan bootloader
Jika Anda memiliki ruang disk terbatas untuk partisi /
+yang berisi /tmp, klik pada
+Lanjutan lalu centang kotak Bersihkan /tmp
+setiap komputer dijalankan ulang. Ini akan membantu menjaga ruang
+kosong.
Anda bisa menambah atau memodifikasi entri yang Anda pilih, dengan menekan
+tombol yang sesuai di layar Konfigurasi Bootloader dan
+mengedit layar yang muncul di atasnya.
Beberapa hal yang bisa dilakukan tanpa resiko adalah mengubah label entri
+dan memilih kotak untuk membuat entri menjadi bawaan.
Anda bisa menambah nomor versi entri yang tepat, atau mengganti namanya.
Entri bawaan adalah entri yang dipilih sistem untuk dijalankan jika Anda
+tidak memilih saat mulai berjalan.
Awas
Mengedit lainnya bisa membuat komputer Anda tidak berjalan. Jangan lakukan
+apapun yang Anda tidak mengerti.
DrakX biasanya mendeteksi harddisk dengan benar. Dengan kontroler SCSI lama
+mungkin tidak akan bisa menentukan driver yang tepat untuk digunakan dan
+menyebabkan gagal mengenali perangkat.
Jika ini terjadi, Anda harus menentukan secara manual perangkat SCSI mana
+yang Anda miliki pada Drakx.
DrakX lalu akan bisa mengkonfigurasi perangkat yang tepat.
Di layar ini, nama driver yang dipilih oleh insaller untuk perangkat suara
+Anda diberikan, yang akan jadi driver baku jika ada.
+
Driver baku seharusnya bekerja tanpa masalah. Tetapi, jika setelah instalasi
+Anda menemukan masalah, jalankan draksound atau jalankan
+alat ini melalui MCC (Pusat Konfigurasi Mageia), dengan memilih tab
+Hardware lalu mengklik Konfigurasi
+Suara di kanan atas layar.
+
Lalu, pada draksound atau layar alat "Konfigurasi Suara", klik
+Lanjutan lalu Pemecahan
+masalah untuk menemukan saran berguna tentang bagaimana cara
+mengatasi masalah.
+
Lanjutan
Mengklik Lanjutan di layar ini, selama instalasi,
+berguna jika tidak ada driver baku dan ada beberapa driver yang tersedia,
+tapi Anda pikir installer memilih yang salah.
+
Jika seperti itu, Anda bisa memilih driver yang berbeda setelah mengklik
+Biarkan saya memilih driver.
+