diff --git a/CHANGELOG b/CHANGELOG index b652897c..9479ab84 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +## 2.4.7 + +- pypy support, thanks Niphlod +- more bug fixes +- ... + ## 2.4.6 - better tests diff --git a/VERSION b/VERSION index 36b39e30..c29b9621 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.4.6-stable+timestamp.2013.04.07.19.55.04 +Version 2.4.6-stable+timestamp.2013.04.08.11.12.25 diff --git a/applications/welcome/languages/id.py b/applications/welcome/languages/id.py new file mode 100755 index 00000000..057a68d3 --- /dev/null +++ b/applications/welcome/languages/id.py @@ -0,0 +1,223 @@ +# coding: utf8 +{ +'!langcode!': 'id', +'!langname!': 'Indonesian', +'%d days ago': '%d hari yang lalu', +'%d hours ago': '%d jam yang lalu', +'%d minutes ago': '%d menit yang lalu', +'%d months ago': '%d bulan yang lalu', +'%d seconds ago': '%d detik yang lalu', +'%d seconds from now': '%d detik dari sekarang', +'%d weeks ago': '%d minggu yang lalu', +'%d years ago': '%d tahun yang lalu', +'%s %%{row} deleted': '%s %%{row} dihapus', +'%s %%{row} updated': '%s %%{row} diperbarui', +'%s selected': '%s dipilih', +'%Y-%m-%d': '%d-%m-%Y', +'%Y-%m-%d %H:%M:%S': '%d-%m-%Y %H:%M:%S', +'1 day ago': '1 hari yang lalu', +'1 hour ago': '1 jam yang lalu', +'1 minute ago': '1 menit yang lalu', +'1 month ago': '1 bulan yang lalu', +'1 second ago': '1 detik yang lalu', +'1 week ago': '1 minggu yang lalu', +'1 year ago': '1 tahun yang lalu', +'< Previous': '< Sebelumnya', +'About': 'Tentang', +'About Us': 'Tentang Kami', +'Activity Type': 'Jenis Kegiatan', +'Add': 'Tambah', +'Address': 'Alamat', +'Ajax Recipes': 'Resep Ajax', +'And': 'Dan', +'An error occured, please %s the page': 'Terjadi kesalahan, silakan %s halaman', +'Answer': 'Jawaban', +'appadmin is disabled because insecure channel': 'AppAdmin dinonaktifkan karena kanal tidak aman', +'Are you sure you want to delete this object?': 'Apakah Anda yakin ingin menghapus ini?', +'Available Databases and Tables': 'Database dan Tabel yang tersedia', +'Back': 'Kembali', +'Book': 'Buku', +'Booking': 'Pemesanan', +'Branch': 'Cabang', +'Brand': 'Merek', +'Buy this book': 'Beli buku ini', +'Cannot be empty': 'Tidak boleh kosong', +'Category': 'Kategori', +'Change password': 'Ubah kata sandi', +'Check to delete': 'Centang untuk menghapus', +'City': 'Kota', +'Clear': 'Hapus', +'Clear CACHE?': 'Hapus CACHE?', +'Clear DISK': 'Hapus DISK', +'Clear RAM': 'Hapus RAM', +'Cloud Computing': 'Komputasi Awan', +'Close': 'Tutup', +'Color': 'Warna', +'Community': 'Komunitas', +'Company': 'Perusahaan', +'Company Name': 'Nama Perusahaan', +'Components and Plugins': 'Komponen dan Plugin', +'Contact': 'Kontak', +'Contact Us': 'Hubungi Kami', +'contains': 'mengandung', +'Contents': 'Isi', +'Copyright': 'Hak Cipta', +'Country': 'Negara', +'Cover': 'Sampul', +'Cover Data': 'Data Sampul', +'Customer': 'Pelanggan', +'CSV (hidden cols)': 'CSV (kolom tersembunyi)', +'data uploaded': 'data diunggah', +'Database %s select': 'Memilih Database %s', +'Delete': 'Hapus', +'Delete:': 'Hapus:', +'Description': 'Keterangan', +'design': 'disain', +'Disk Cleared': 'Disk Dihapus', +'Documentation': 'Dokumentasi', +'done!': 'selesai!', +"Don't know what to do?": "Tidak tahu apa yang harus dilakukan?", +'Download': 'Unduh', +'Duration': 'Durasi', +'Email and SMS': 'Email dan SMS', +'Email sent': 'Email dikirim', +'enter a valid email address': 'masukkan alamat email yang benar', +'enter a valid URL': 'masukkan URL yang benar', +'enter a value': 'masukkan data', +'Errors': 'Kesalahan', +'Established': 'Didirikan', +'Established in 2012': 'Didirikan pada tahun 2012', +'export as csv file': 'ekspor sebagai file csv', +'Export:': 'Ekspor:', +'Fax': 'Faksimil', +'First Name': 'Nama Depan', +'Gender': 'Jenis Kelamin', +'Forgot username?': 'Lupa nama pengguna?', +'Free Applications': 'Aplikasi Gratis', +'Group %(group_id)s created': 'Grup %(group_id)s dibuat', +'Group uniquely assigned to user %(id)s': 'Grup unik yang diberikan kepada pengguna %(id)s', +'Groups': 'Grup', +'Guest': 'Tamu', +'Hello World': 'Halo Dunia', +'Home': 'Halaman Utama', +'How did you get here?': 'Bagaimana kamu bisa di sini?', +'Image': 'Gambar', +'Image Data': 'Data Gambar', +'import': 'impor', +'Import/Export': 'Impor/Ekspor', +'Is Booking': 'Apakah Pemesanan', +'Installation': 'Instalasi', +'Introduction': 'Pengenalan', +'Invalid email': 'Email tidak benar', +'Invoice No.': 'No. Faktur', +'Language': 'Bahasa', +'Last Name': 'Nama Belakang', +'Launch Online Website': 'Meluncurkan Website Online', +'Launch Online Website in 2013': 'Meluncurkan Website Online pada tahun 2013', +'loading...': 'sedang memuat...', +'Logged in': 'Masuk', +'Logged out': 'Keluar', +'Login': 'Masuk', +'Logout': 'Keluar', +'Lost Password': 'Lupa Kata Sandi', +'Lost password?': 'Lupa kata sandi?', +'Maintenance': 'Pemeliharaan', +'Manage': 'Mengelola', +'Manage Cache': 'Mengelola Cache', +'My Sites': 'Situs Saya', +'New': 'Baru', +'News': 'Berita', +'next 100 rows': '100 baris berikutnya', +'Next >': 'Berikutnya >', +'Next Page': 'Halaman Berikutnya', +'New password': 'Kata sandi baru', +'No databases in this application': 'Tidak ada database dalam aplikasi ini', +'not a Zip Code': 'bukan Kode Pos', +'Note': 'Catatan', +'Old password': 'Kata sandi lama', +'Online examples': 'Contoh Online', +'Opinion': 'Opini', +'Or': 'Atau', +'or import from csv file': 'atau impor dari file csv', +'Other Plugins': 'Plugin Lainnya', +'Other Recipes': 'Resep Lainnya', +'Overview': 'Ikhtisar', +'Password': 'Kata sandi', +'Password changed': 'Kata sandi berubah', +"Password fields don't match": "Kata sandi tidak sama", +'Phone': 'Telepon', +'Phone : ': 'Telepon : ', +'please input your password again': 'silahkan masukan kata sandi anda lagi', +'Plugins': 'Plugin', +'Postal Code': 'Kode Pos', +'Powered by': 'Didukung oleh', +'Preface': 'Pendahuluan', +'previous 100 rows': '100 baris sebelumnya', +'Previous Page': 'Halaman Sebelumnya', +'Priority': 'Prioritas', +'Product': 'Produk', +'Product Name': 'Nama Produk', +'Profile': 'Profil', +'Profile updated': 'Profil diperbarui', +'Publication': 'Publikasi', +'Quantity': 'Kuantitas', +'Question': 'Pertanyaan', +'Quick Examples': 'Contoh Cepat', +'Ram Cleared': 'Ram Dihapus', +'Recent Tweets': 'Tweet Baru', +'Recipes': 'Resep', +'Register': 'Daftar', +'Registration successful': 'Pendaftaran berhasil', +'Remember me (for 30 days)': 'Ingat saya (selama 30 hari)', +'Rent': 'Sewa', +'Request reset password': 'Meminta reset kata sandi', +'reload': 'memuat kembali', +'Rows in Table': 'Baris dalam Tabel', +'Rows selected': 'Baris dipilih', +'Save model as...': 'Simpan model sebagai ...', +'Save profile': 'Simpan profil', +'Search': 'Cari', +'Send Email': 'Kirim Email', +'Service': 'Layanan', +'Size of cache:': 'Ukuran cache:', +'Solution': 'Solusi', +'starts with': 'dimulai dengan', +'Statistics': 'Statistik', +'Subject': 'Judul', +'Support': 'Mendukung', +'Table': 'Tabel', +'This App': 'App Ini', +'Time in Cache (h:m:s)': 'Waktu di Cache (h: m: s)', +'Title': 'Judul', +'too short': 'terlalu pendek', +'Total Price': 'Jumlah Harga', +'Unable to download because:': 'Tidak dapat mengunduh karena:', +'unable to parse csv file': 'tidak mampu mengurai file csv', +'Unit Price': 'Harga Satuan', +'Update:': 'Perbarui:', +'Upload': 'Unggah', +'User %(id)s Logged-in': 'Pengguna %(id)s Masuk', +'User %(id)s Logged-out': 'Pengguna %(id)s Keluar', +'User %(id)s Password changed': 'Pengguna %(id)s Kata Sandi berubah', +'User %(id)s Password reset': 'Pengguna %(id)s Kata Sandi telah direset', +'User %(id)s Profile updated': 'Pengguna %(id)s Profil diperbarui', +'User %(id)s Registered': 'Pengguna %(id)s Terdaftar', +'value already in database or empty': 'data sudah ada dalam database atau kosong', +'value not allowed': 'data tidak benar', +'value not in database': 'data tidak ada dalam database', +'Variety': 'Jenis', +'Verify Password': 'Verifikasi Kata Sandi', +'Videos': 'Video', +'View': 'Lihat', +'View Maps': 'Lihat Peta', +'Virtualization': 'Virtualisasi', +'Web Development': 'Pengembangan Web', +'Website': 'Situs Web', +'Welcome': 'Selamat Datang', +'Welcome to web2py!': 'Selamat Datang di web2py!', +'Year of Production': 'Tahun Produksi', +'You are successfully running web2py': 'Anda berhasil menjalankan web2py', +'You can modify this application and adapt it to your needs': 'Anda dapat memodifikasi aplikasi ini dan menyesuaikan dengan kebutuhan Anda', +'You visited the url %s': 'Anda mengunjungi url %s', +'Zip Code': 'Kode Pos', +} diff --git a/applications/welcome/languages/my.py b/applications/welcome/languages/my.py new file mode 100755 index 00000000..e4275e75 --- /dev/null +++ b/applications/welcome/languages/my.py @@ -0,0 +1,213 @@ +# coding: utf8 +{ +'!langcode!': 'my', +'!langname!': 'Malay', +'%d days ago': '%d hari yang lalu', +'%d hours ago': '%d jam yang lalu', +'%d minutes ago': '%d minit yang lalu', +'%d months ago': '%d bulan yang lalu', +'%d seconds ago': '%d saat yang lalu', +'%d seconds from now': '%d saat dari sekarang', +'%d weeks ago': '%d minggu yang lalu', +'%d years ago': '%d tahun yang lalu', +'%s %%{row} deleted': '%s %%{row} dihapuskan', +'%s %%{row} updated': '%s %%{row} dikemas kini', +'%s selected': '%s dipilih', +'%Y-%m-%d': '%d-%m-%Y', +'%Y-%m-%d %H:%M:%S': '%d-%m-%Y %H:%M:%S', +'1 day ago': '1 hari yang lalu', +'1 hour ago': '1 jam yang lalu', +'1 minute ago': '1 minit yang lalu', +'1 month ago': '1 bulan yang lalu', +'1 second ago': '1 saat yang lalu', +'1 week ago': '1 minggu yang lalu', +'1 year ago': '1 tahun yang lalu', +'< Previous': '< Sebelumnya', +'About': 'Mengenai', +'About Us': 'Mengenai Kami', +'Activity Type': 'Jenis Kegiatan', +'Add': 'Tambah', +'Address': 'Alamat', +'Ajax Recipes': 'Ajax Resipi', +'And': 'Dan', +'An error occured, please %s the page': 'Kesilapan telah berlaku, sila %s laman', +'Answer': 'Jawapan', +'Are you sure you want to delete this object?': 'Apakah anda yakin anda mahu memadam ini?', +'Back': 'Kembali', +'Book': 'Buku', +'Booking': 'Tempahan', +'Branch': 'Cabang', +'Buy this book': 'Beli buku ini', +'Cannot be empty': 'Tidak boleh kosong', +'Category': 'Kategori', +'Change password': 'Tukar kata laluan', +'City': 'Bandar', +'Clear': 'Hapus', +'Clear CACHE?': 'Hapus CACHE?', +'Clear DISK': 'Hapus DISK', +'Clear RAM': 'Hapus RAM', +'Cloud Computing': 'Pengkomputeran Awan', +'Close': 'Tutup', +'Color': 'Warna', +'Community': 'Komuniti', +'Company': 'Syarikat', +'Company Name': 'Nama Syarikat', +'Components and Plugins': 'Komponen dan Plugin', +'Contact': 'Hubungi', +'Contact Us': 'Hubungi Kami', +'contains': 'mengandung', +'Contents': 'Isi', +'Copyright': 'Hak Cipta', +'Country': 'Negara', +'Cover': 'Sampul', +'Cover Data': 'Data Sampul', +'Customer': 'Pelanggan', +'data uploaded': 'data diunggah', +'Delete': 'Hapus', +'Delete:': 'Hapus:', +'Description': 'Keterangan', +'design': 'disain', +'Disk Cleared': 'Disk Dihapuskan', +'Documentation': 'Dokumentasi', +'done!': 'selesai!', +"Don't know what to do?": "Tidak tahu apa yang perlu dilakukan?", +'Download': 'Unduh', +'Duration': 'Tempoh', +'Email : ': 'Emel : ', +'Email and SMS': 'Emel dan SMS', +'Email sent': 'Emel dihantar', +'enter a valid email address': 'masukkan alamat emel yang benar', +'enter a valid URL': 'masukkan URL yang benar', +'enter a value': 'masukkan data', +'Errors': 'Kesalahan', +'Established': 'Ditubuhkan', +'Established in 2012': 'Ditubuhkan pada tahun 2012', +'export as csv file': 'eksport sebagai file csv', +'Export:': 'Eksport:', +'Fax': 'Faksimil', +'First Name': 'Nama Depan', +'Gender': 'Jenis Kelamin', +'Forgot username?': 'Lupa nama pengguna?', +'Free Applications': 'Aplikasi Percuma', +'Group %(group_id)s created': 'Kumpulan %(group_id)s dicipta', +'Group uniquely assigned to user %(id)s': 'Kumpulan unik yang diberikan kepada pengguna %(id)s', +'Groups': 'Kumpulan', +'Guest': 'Tetamu', +'Hello World': 'Halo Dunia', +'Home': 'Laman Utama', +'How did you get here?': 'Bagaimana kamu boleh di sini?', +'Image': 'Gambar', +'Image Data': 'Data Gambar', +'import': 'import', +'Import/Export': 'Import/Eksport', +'Is Booking': 'Apakah Tempahan', +'Installation': 'Pemasangan', +'Introduction': 'Pengenalan', +'Invalid email': 'Emel tidak benar', +'Invoice No.': 'No. Invois', +'Language': 'Bahasa', +'Last Name': 'Nama Belakang', +'Launch Online Website': 'Pelancaran Laman Web Online', +'Launch Online Website in 2013': 'Pelancaran Laman Web Online pada tahun 2013', +'loading...': 'sedang memuat...', +'Logged in': 'Masuk', +'Logged out': 'Keluar', +'Login': 'Masuk', +'Logout': 'Keluar', +'Lost Password': 'Lupa Kata Laluan', +'Lost password?': 'Lupa kata laluan?', +'Maintenance': 'Penyelenggaraan', +'Manage': 'Menguruskan', +'Manage Cache': 'Menguruskan Cache', +'My Sites': 'Laman Saya', +'New': 'Baru', +'News': 'Berita', +'next 100 rows': '100 baris seterusnya', +'Next >': 'Seterusnya >', +'Next Page': 'Laman Seterusnya', +'New password': 'Kata laluan baru', +'not a Zip Code': 'bukan Pos', +'Note': 'Catatan', +'Old password': 'Kata laluan lama', +'Online examples': 'Contoh Online', +'Opinion': 'Pendapat', +'Or': 'Atau', +'or import from csv file': 'atau import dari file csv', +'Other Plugins': 'Plugin Lain', +'Other Recipes': 'Resipi Lain', +'Overview': 'Tinjauan', +'Password': 'Kata laluan', +'Password changed': 'Kata laluan berubah', +"Password fields don't match": "Kata laluan tidak sama", +'Phone': 'Telefon', +'Phone : ': 'Telefon : ', +'please input your password again': 'sila masukan kata laluan anda lagi', +'Plugins': 'Plugin', +'Postal Code': 'Pos', +'Powered by': 'Disokong oleh', +'Preface': 'Pendahuluan', +'previous 100 rows': '100 baris sebelumnya', +'Previous Page': 'Laman Sebelumnya', +'Priority': 'Keutamaan', +'Product': 'Produk', +'Product Name': 'Nama Produk', +'Profile': 'Profil', +'Profile updated': 'Profil dikemaskini', +'Publication': 'Penerbitan', +'Quantity': 'Kuantiti', +'Question': 'Soalan', +'Quick Examples': 'Contoh Cepat', +'Ram Cleared': 'Ram Dihapuskan', +'Recent Tweets': 'Tweet Baru', +'Recipes': 'Resipi', +'Register': 'Daftar', +'Registration successful': 'Pendaftaran berjaya', +'Remember me (for 30 days)': 'Ingat saya (selama 30 hari)', +'Rent': 'Sewa', +'Request reset password': 'Meminta reset kata laluan', +'reload': 'memuat kembali', +'Rows selected': 'Baris dipilih', +'Save model as...': 'Simpan model sebagai ...', +'Save profile': 'Simpan profil', +'Search': 'Cari', +'Send Email': 'Kirim Emel', +'Size of cache:': 'Saiz cache:', +'Solution': 'Penyelesaian', +'starts with': 'bermula dengan', +'Statistics': 'Statistik', +'Subject': 'Judul', +'Support': 'Menyokong', +'This App': 'App Ini', +'Time in Cache (h:m:s)': 'Waktu di Cache (h: m: s)', +'Title': 'Judul', +'too short': 'terlalu pendek', +'Total Price': 'Jumlah Harga', +'Unable to download because:': 'Tidak dapat memuat turun kerana:', +'unable to parse csv file': 'tidak mampu mengurai file csv', +'Unit Price': 'Harga Unit', +'Update:': 'Kemas kini:', +'Upgrade': 'Menaik taraf', +'Upload': 'Unggah', +'User %(id)s Logged-in': 'Pengguna %(id)s Masuk', +'User %(id)s Logged-out': 'Pengguna %(id)s Keluar', +'User %(id)s Password changed': 'Pengguna %(id)s Kata Laluan berubah', +'User %(id)s Password reset': 'Pengguna %(id)s Kata Laluan telah direset', +'User %(id)s Profile updated': 'Pengguna %(id)s Profil dikemaskini', +'User %(id)s Registered': 'Pengguna %(id)s Didaftarkan', +'value not allowed': 'data tidak benar', +'Variety': 'Jenis', +'Verify Password': 'Pengesahan Kata Laluan', +'Videos': 'Video', +'View': 'Lihat', +'View Maps': 'Lihat Peta', +'Virtualization': 'Virtualisasi', +'Web Development': 'Pembangunan Web', +'Website': 'Laman Web', +'Welcome': 'Selamat Datang', +'Welcome to web2py!': 'Selamat Datang di web2py!', +'Year of Production': 'Tahun Pengeluaran', +'You are successfully running web2py': 'Anda berjaya menjalankan web2py', +'You can modify this application and adapt it to your needs': 'Anda boleh mengubah suai aplikasi ini dan menyesuaikan dengan keperluan anda', +'You visited the url %s': 'Anda melawat url %s', +'Zip Code': 'Pos', +} diff --git a/gluon/contrib/plural_rules/id.py b/gluon/contrib/plural_rules/id.py new file mode 100755 index 00000000..ff751652 --- /dev/null +++ b/gluon/contrib/plural_rules/id.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python +# -*- coding: utf8 -*- +# Plural-Forms for id (Indonesian) + +nplurals=2 # Indonesian language has 2 forms: + # 1 singular and 1 plural + +# Determine plural_id for number *n* as sequence of positive +# integers: 0,1,... +# NOTE! For singular form ALWAYS return plural_id = 0 +get_plural_id = lambda n: int(n != 1) + +# Construct and return plural form of *word* using +# *plural_id* (which ALWAYS>0). This function will be executed +# for words (or phrases) not found in plural_dict dictionary +# construct_plural_form = lambda word, plural_id: (word + 'suffix') + diff --git a/gluon/contrib/plural_rules/my.py b/gluon/contrib/plural_rules/my.py new file mode 100755 index 00000000..4e186746 --- /dev/null +++ b/gluon/contrib/plural_rules/my.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python +# -*- coding: utf8 -*- +# Plural-Forms for id (Malay) + +nplurals=2 # Malay language has 2 forms: + # 1 singular and 1 plural + +# Determine plural_id for number *n* as sequence of positive +# integers: 0,1,... +# NOTE! For singular form ALWAYS return plural_id = 0 +get_plural_id = lambda n: int(n != 1) + +# Construct and return plural form of *word* using +# *plural_id* (which ALWAYS>0). This function will be executed +# for words (or phrases) not found in plural_dict dictionary +# construct_plural_form = lambda word, plural_id: (word + 'suffix') +