Quellcode durchsuchen

i18n:ID (#7721)

* id translation

* make fix-all

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
the7thNightmare vor 9 Monaten
Ursprung
Commit
8385eadf49
5 geänderte Dateien mit 408 neuen und 408 gelöschten Zeilen
  1. 133 133
      app/i18n/id/conf.php
  2. 86 86
      app/i18n/id/feedback.php
  3. 175 175
      app/i18n/id/gen.php
  4. 1 1
      app/i18n/id/index.php
  5. 13 13
      app/i18n/id/sub.php

+ 133 - 133
app/i18n/id/conf.php

@@ -14,39 +14,39 @@ return array(
 	'archiving' => array(
 		'_' => 'Pengarsipan',
 		'exception' => 'Pengecualian Pembersihan',
-		'help' => 'Lebih banyak opsi tersedia di pengaturan umpan individu',
+		'help' => 'Lebih banyak pilihan tersedia di pengaturan umpan individu',
 		'keep_favourites' => 'Jangan pernah hapus favorit',
-		'keep_labels' => 'Never delete labels',	// TODO
-		'keep_max' => 'Jumlah maksimum artikel yang disimpan per umpan',
-		'keep_min_by_feed' => 'Jumlah minimum artikel yang harus disimpan per feed',
-		'keep_period' => 'Maksimal umur artikel yang harus disimpan',
+		'keep_labels' => 'Jangan pernah hapus label',
+		'keep_max' => 'Maksimum artikel yang harus disimpan per umpan',
+		'keep_min_by_feed' => 'Minimum artikel yang harus disimpan per umpan',
+		'keep_period' => 'Maksimum umur artikel yang harus disimpan',
 		'keep_unreads' => 'Jangan hapus artikel yang belum dibaca',
 		'maintenance' => 'Pemeliharaan',
 		'optimize' => 'Optimalkan basis data',
 		'optimize_help' => 'Jalankan sesekali untuk mengurangi ukuran basis data',
 		'policy' => 'Kebijakan pembersihan',
 		'policy_warning' => 'Jika tidak ada kebijakan pembersihan yang dipilih, setiap artikel akan disimpan.',
-		'purge_now' => 'Pembersihan sekarang',
-		'title' => 'Arsip',
-		'ttl' => 'Jangan perbarui otomatis lebih sering dari',
+		'purge_now' => 'Bersihkan sekarang',
+		'title' => 'Pengarsipan',
+		'ttl' => 'Jangan segarkan otomatis lebih sering dari',
 	),
 	'display' => array(
 		'_' => 'Tampilan',
 		'darkMode' => array(
 			'_' => 'Mode gelap otomatis',
 			'auto' => 'Otomatis',
-			'help' => 'For compatible themes only',	// TODO
+			'help' => 'Hanya untuk tema yang kompatibel',
 			'no' => 'Tidak',
 		),
 		'icon' => array(
-			'bottom_line' => 'Garis bawah',
+			'bottom_line' => 'Baris bawah',
 			'display_authors' => 'Penulis',
 			'entry' => 'Ikon artikel',
 			'publication_date' => 'Tanggal publikasi',
-			'related_tags' => 'Tag artikel',
+			'related_tags' => 'Label artikel',
 			'sharing' => 'Berbagi',
 			'summary' => 'Ringkasan',
-			'top_line' => 'Garis atas',
+			'top_line' => 'Baris atas',
 		),
 		'language' => 'Bahasa',
 		'notif_html5' => array(
@@ -63,9 +63,9 @@ return array(
 		),
 		'theme_not_available' => 'Tema "%s" tidak lagi tersedia. Silakan pilih tema lain.',
 		'thumbnail' => array(
-			'label' => 'Thumbnail',	// TODO
+			'label' => 'Keluku',
 			'landscape' => 'Lanskap',
-			'none' => 'Tidak ada',
+			'none' => 'Tidak ditampilkan',
 			'portrait' => 'Potret',
 			'square' => 'Persegi',
 		),
@@ -76,7 +76,7 @@ return array(
 			'icon' => 'Hanya ikon',
 			'label' => 'Situs web',
 			'name' => 'Hanya nama',
-			'none' => 'Tidak ada',
+			'none' => 'Tidak ditampilkan',
 		),
 		'width' => array(
 			'content' => 'Lebar konten',
@@ -90,7 +90,7 @@ return array(
 		'loglist' => array(
 			'level' => 'Level Log',
 			'message' => 'Pesan Log',
-			'timestamp' => 'Timestamp',	// TODO
+			'timestamp' => 'Waktu',
 		),
 		'pagination' => array(
 			'first' => 'Pertama',
@@ -100,226 +100,226 @@ return array(
 		),
 	),
 	'mark_read_button' => array(
-		'_' => '“tandai semua sebagai telah dibaca” button',	// DIRTY
-		'big' => 'Big',	// TODO
-		'none' => 'None',	// TODO
-		'small' => 'Small',	// TODO
+		'_' => 'tombol “tandai semua sebagai sudah dibaca”',
+		'big' => 'Besar',
+		'none' => 'Tidak ditampilkan',
+		'small' => 'Kecil',
 	),
 	'privacy' => array(
-		'_' => 'Privacy',	// TODO
-		'retrieve_extension_list' => 'Retrieve extension list',	// TODO
+		'_' => 'Privasi',
+		'retrieve_extension_list' => 'Ambil daftar ekstensi',
 	),
 	'profile' => array(
-		'_' => 'Manajemen Profil',
+		'_' => 'Pengelolaan Profil',
 		'api' => array(
-			'_' => 'Manajemen API',
-			'api_not_set' => 'API password not set',	// TODO
-			'api_set' => 'API password set',	// TODO
-			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
-			'disabled' => 'The API access is disabled.',	// TODO
-			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
+			'_' => 'Pengelolaan API',
+			'api_not_set' => 'Sandi API belum dibuat',
+			'api_set' => 'Buat Sandi API',
+			'check_link' => 'Periksa status API melalui: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
+			'disabled' => 'Akses API dinonaktifkan.',
+			'documentation_link' => 'Lihat <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">dokumentasi dan daftar aplikasi yang diketahui</a>',
+			'help' => 'Lihat <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>dokumentasi</a>',
 		),
 		'delete' => array(
-			'_' => 'Hapus Akun',
+			'_' => 'Hapus akun',
 			'warn' => 'Akun Anda dan semua data terkait akan dihapus.',
 		),
-		'email' => 'Alamat Email',
-		'password_api' => 'Password API<br /><small>(contoh: untuk aplikasi mobile)</small>',
-		'password_form' => 'Password<br /><small>(untuk metode login formulir web)</small>',
+		'email' => 'Alamat surel',
+		'password_api' => 'Sandi API<br /><small>(contoh: untuk aplikasi ponsel)</small>',
+		'password_form' => 'Kata sandi<br /><small>(untuk metode masuk formulir web)</small>',
 		'password_format' => 'Minimal 7 karakter',
 		'title' => 'Profil',
 	),
 	'query' => array(
-		'_' => 'Permintaan Pengguna',
-		'deprecated' => 'Permintaan ini tidak valid lagi. Kategori atau feed yang dirujuk telah dihapus.',
-		'description' => 'Description',	// TODO
+		'_' => 'Pencarian Pengguna',
+		'deprecated' => 'Pencarian ini tidak valid lagi. Kategori atau umpan yang dirujuk telah dihapus.',
+		'description' => 'Deskripsi',
 		'filter' => array(
 			'_' => 'Filter yang diterapkan:',
 			'categories' => 'Tampilkan berdasarkan kategori',
-			'feeds' => 'Tampilkan berdasarkan feed',
+			'feeds' => 'Tampilkan berdasarkan umpan',
 			'order' => 'Urutkan berdasarkan tanggal',
 			'search' => 'Ekspresi Pencarian',
-			'shareOpml' => 'Aktifkan berbagi melalui OPML dari kategori dan feed yang sesuai',
+			'shareOpml' => 'Aktifkan berbagi melalui OPML dari kategori dan umpan terkait',
 			'shareRss' => 'Aktifkan berbagi melalui HTML &amp; RSS',
 			'state' => 'Status',
 			'tags' => 'Tampilkan berdasarkan label',
 			'type' => 'Tipe',
 		),
-		'get_A' => 'Show all feeds, also those shown in their category',	// TODO
-		'get_Z' => 'Show all feeds, also archived ones',	// TODO
+		'get_A' => 'Tampilkan semua umpan, juga yang ditampilkan di kategori mereka saja',
+		'get_Z' => 'Tampilkan semua umpan, juga yang diarsipkan',
 		'get_all' => 'Tampilkan semua artikel',
-		'get_all_labels' => 'Tampilkan artikel dengan setiap label',
+		'get_all_labels' => 'Tampilkan artikel dengan label apapun',
 		'get_category' => 'Tampilkan kategori "%s"',
 		'get_favorite' => 'Tampilkan artikel favorit',
-		'get_feed' => 'Tampilkan feed "%s"',
-		'get_important' => 'Tampilkan artikel dari feed penting',
+		'get_feed' => 'Tampilkan umpan "%s"',
+		'get_important' => 'Tampilkan artikel dari umpan penting',
 		'get_label' => 'Tampilkan artikel dengan label "%s"',
-		'help' => 'Lihat <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">dokumentasi untuk permintaan pengguna dan berbagi ulang melalui HTML / RSS / OPML</a>.',
-		'image_url' => 'Image URL',	// TODO
+		'help' => 'Lihat <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">dokumentasi untuk pencarian pengguna dan berbagi ulang melalui HTML / RSS / OPML</a>.',
+		'image_url' => 'URL gambar',
 		'name' => 'Nama',
 		'no_filter' => 'Tanpa filter',
 		'no_queries' => array(
-			'_' => 'No user queries are saved yet.',	// TODO
-			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation</a>',	// TODO
+			'_' => 'Belum ada pencarian pengguna yang disimpan.',
+			'help' => 'Lihat <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">dokumentasi</a>',
 		),
-		'number' => 'Permintaan n°%d',
+		'number' => 'Pencarian n°%d',
 		'order_asc' => 'Tampilkan artikel tertua dahulu',
 		'order_desc' => 'Tampilkan artikel terbaru dahulu',
 		'search' => 'Cari untuk "%s"',
 		'share' => array(
 			'_' => 'Bagikan permintaan ini melalui tautan',
 			'disabled' => array(
-				'_' => 'disabled',	// TODO
-				'title' => 'Sharing',	// TODO
+				'_' => 'dinonaktifkan',
+				'title' => 'Bagikan',
 			),
-			'greader' => 'Shareable link to the GReader JSON',	// TODO
-			'help' => 'Berikan tautan ini jika Anda ingin berbagi permintaan ini dengan siapa pun',
+			'greader' => 'Tautan dapat dibagikan ke JSON GReader',
+			'help' => 'Berikan tautan ini jika Anda ingin berbagi pencarian ini dengan siapa pun',
 			'html' => 'Tautan dapat dibagikan ke halaman HTML',
-			'opml' => 'Tautan dapat dibagikan ke daftar OPML dari feed',
-			'rss' => 'Tautan dapat dibagikan ke feed RSS',
+			'opml' => 'Tautan dapat dibagikan ke daftar OPML dari umpan',
+			'rss' => 'Tautan dapat dibagikan ke umpan RSS',
 		),
 		'state_0' => 'Tampilkan semua artikel',
-		'state_1' => 'Tampilkan artikel yang telah dibaca',
+		'state_1' => 'Tampilkan artikel yang sudah dibaca',
 		'state_2' => 'Tampilkan artikel yang belum dibaca',
 		'state_3' => 'Tampilkan semua artikel',
 		'state_4' => 'Tampilkan artikel favorit',
-		'state_5' => 'Tampilkan artikel favorit yang telah dibaca',
+		'state_5' => 'Tampilkan artikel favorit yang sudah dibaca',
 		'state_6' => 'Tampilkan artikel favorit yang belum dibaca',
 		'state_7' => 'Tampilkan artikel favorit',
-		'state_8' => 'Tampilkan artikel non-favorit',
-		'state_9' => 'Tampilkan artikel non-favorit yang telah dibaca',
-		'state_10' => 'Tampilkan artikel non-favorit yang belum dibaca',
-		'state_11' => 'Tampilkan artikel non-favorit',
+		'state_8' => 'Tampilkan artikel tidak favorit',
+		'state_9' => 'Tampilkan artikel tidak favorit yang sudah dibaca',
+		'state_10' => 'Tampilkan artikel tidak favorit yang belum dibaca',
+		'state_11' => 'Tampilkan artikel tidak favorit',
 		'state_12' => 'Tampilkan semua artikel',
-		'state_13' => 'Tampilkan artikel yang telah dibaca',
+		'state_13' => 'Tampilkan artikel yang sudah dibaca',
 		'state_14' => 'Tampilkan artikel yang belum dibaca',
 		'state_15' => 'Tampilkan semua artikel',
-		'title' => 'Permintaan Pengguna',
+		'title' => 'Pencarian pengguna',
 	),
 	'reading' => array(
 		'_' => 'Membaca',
-		'after_onread' => 'Setelah “tandai semua sebagai telah dibaca”',
-		'always_show_favorites' => 'Selalu tampilkan semua artikel favorit secara default',
-		'apply_to_individual_feed' => 'Applies to feeds individually',	// TODO
+		'after_onread' => 'Setelah “tandai semua sebagai sudah dibaca”',
+		'always_show_favorites' => 'Tampilkan semua artikel favorit secara baku',
+		'apply_to_individual_feed' => 'Berlaku per umpan individu',
 		'article' => array(
 			'authors_date' => array(
 				'_' => 'Penulis dan tanggal',
-				'both' => 'Di header dan footer',
-				'footer' => 'Di footer',
-				'header' => 'Di header',
-				'none' => 'Tidak ada',
+				'both' => 'Di baris atas dan bawah',
+				'footer' => 'Di baris bawah',
+				'header' => 'Di baris atas',
+				'none' => 'Tidak ditampilkan',
 			),
 			'feed_name' => array(
-				'above_title' => 'Di atas judul/tag',
-				'none' => 'Tidak ada',
+				'above_title' => 'Di atas judul/lebel',
+				'none' => 'Tidak ditampilkan',
 				'with_authors' => 'Di baris penulis dan tanggal',
 			),
-			'feed_title' => 'Judul feed',
+			'feed_title' => 'Judul umpan',
 			'icons' => array(
-				'_' => 'Article icons position<br /><small>(Reading view only)</small>',	// TODO
-				'above_title' => 'Above title',	// TODO
-				'with_authors' => 'In authors and date row',	// TODO
+				'_' => 'Posisi ikon artikel <br /><small>(Tampilan membaca saja)</small>',
+				'above_title' => 'Di atas judul',
+				'with_authors' => 'Di baris penulis dan tanggal',
 			),
 			'tags' => array(
-				'_' => 'Tag',
-				'both' => 'Di header dan footer',
-				'footer' => 'Di footer',
-				'header' => 'Di header',
-				'none' => 'Tidak ada',
+				'_' => 'Label',
+				'both' => 'Di baris atas dan bawah',
+				'footer' => 'Di baris bawah',
+				'header' => 'Di baris atas',
+				'none' => 'Tidak ditampilkan',
 			),
 			'tags_max' => array(
-				'_' => 'Jumlah maksimum tag yang ditampilkan',
-				'help' => '0 berarti: tampilkan semua tag dan jangan lipat',
+				'_' => 'Maksimum label yang ditampilkan',
+				'help' => '0 berarti: tampilkan semua label dan jangan sembunyikan',
 			),
 		),
 		'articles_per_page' => 'Jumlah artikel per halaman',
-		'auto_load_more' => 'Muat lebih banyak artikel di bagian bawah halaman',
+		'auto_load_more' => 'Muat lebih banyak artikel setelah bagian bawah halaman',
 		'auto_remove_article' => 'Sembunyikan artikel setelah dibaca',
-		'confirm_enabled' => 'Tampilkan dialog konfirmasi pada tindakan “tandai semua sebagai telah dibaca”',
-		'display_articles_unfolded' => 'Tampilkan artikel terbuka secara default',
-		'display_categories_unfolded' => 'Kategori untuk dibuka',
+		'confirm_enabled' => 'Tampilkan layar konfirmasi pada tindakan “tandai semua sebagai sudah dibaca”',
+		'display_articles_unfolded' => 'Buat artikel terbuka secara baku',
+		'display_categories_unfolded' => 'Kategori yang dibuka',
 		'headline' => array(
 			'articles' => 'Artikel: Buka/Tutup',
-			'articles_header_footer' => 'Artikel: header/footer',
+			'articles_header_footer' => 'Artikel: Baris Atas/Bawah',
 			'categories' => 'Navigasi kiri: Kategori',
-			'mark_as_read' => 'Tandai artikel sebagai telah dibaca',
+			'mark_as_read' => 'Tandai artikel sebagai sudah dibaca',
 			'misc' => 'Lain-lain',
 			'view' => 'Tampilan',
 		),
-		'hide_read_feeds' => 'Sembunyikan kategori & feed yang tidak memiliki artikel belum dibaca (tidak berlaku untuk konfigurasi “Tampilkan semua artikel”)',
-		'img_with_lazyload' => 'Gunakan mode “lazy load” untuk memuat gambar',
-		'jump_next' => 'loncat ke saudara yang belum dibaca berikutnya',
+		'hide_read_feeds' => 'Sembunyikan kategori dan umpan yang tidak memiliki artikel belum dibaca (tidak berlaku jika pilihan "Tampilkan semua artikel" dipilih)',
+		'img_with_lazyload' => 'Gunakan mode <em>muat lambat</em> untuk memuat gambar',
+		'jump_next' => 'loncat ke yang belum dibaca berikutnya',
 		'mark_updated_article_unread' => 'Tandai artikel yang diperbarui sebagai belum dibaca',
-		'number_divided_when_reader' => 'Bagi dua dalam tampilan baca.',
+		'number_divided_when_reader' => 'Bagi dua bagian dalam tampilan membaca.',
 		'read' => array(
-			'article_open_on_website' => 'ketika artikel dibuka di situs web aslinya',
-			'article_viewed' => 'ketika artikel dilihat',
-			'focus' => 'saat difokuskan (kecuali untuk feed penting)',
-			'keep_max_n_unread' => 'Jumlah maksimum artikel yang tetap belum dibaca',
-			'scroll' => 'saat menggulir (kecuali untuk feed penting)',
-			'upon_gone' => 'saat tidak lagi ada di feed berita atas',
+			'article_open_on_website' => 'saat artikel dibuka di situs web aslinya',
+			'article_viewed' => 'saat artikel dilihat',
+			'focus' => 'saat difokuskan (kecuali untuk umpan penting)',
+			'keep_max_n_unread' => 'Maksimal artikel yang dibiarkan belum dibaca',
+			'scroll' => 'saat digulir (kecuali untuk umpan penting)',
+			'upon_gone' => 'saat artikel hilang dari umpan situs aslinya',
 			'upon_reception' => 'saat menerima artikel',
-			'when' => 'Tandai artikel sebagai telah dibaca…',
-			'when_same_title_in_category' => 'if an identical title already exists in the top <i>n</i> newest articles of the category',	// TODO
-			'when_same_title_in_feed' => 'jika judul identik sudah ada di <i>n</i> artikel terbaru (of the feed)',	// DIRTY
+			'when' => 'Tandai artikel sebagai sudah dibaca…',
+			'when_same_title_in_category' => 'jika judul yang identik sudah ada di <i>n</i> artikel terbaru dalam kategori',
+			'when_same_title_in_feed' => 'jika judul yang identik sudah ada di <i>n</i> artikel terbaru dari umpan',
 		),
 		'show' => array(
-			'_' => 'Artikel untuk ditampilkan',
+			'_' => 'Artikel yang ditampilkan',
 			'active_category' => 'Kategori aktif',
-			'adaptive' => 'Show unreads if any, all articles otherwise',	// TODO
+			'adaptive' => 'Tampilkan yang belum dibaca, jika tidak ada tampilkan semua artikel',
 			'all_articles' => 'Tampilkan semua artikel',
 			'all_categories' => 'Semua kategori',
-			'no_category' => 'Tidak ada kategori',
-			'remember_categories' => 'Ingat kategori yang terbuka',
-			'unread' => 'Hanya tampilkan yang belum dibaca',
-			'unread_or_favorite' => 'Show unreads and favourites',	// TODO
+			'no_category' => 'Tidak ada yang dibuka',
+			'remember_categories' => 'Ingat kategori yang dibuka',
+			'unread' => 'Tampilkan yang belum dibaca',
+			'unread_or_favorite' => 'Tampilkan yang belum dibaca dan favorit',
 		),
 		'show_fav_unread_help' => 'Berlaku juga pada label',
 		'sides_close_article' => 'Klik di luar area teks artikel untuk menutup artikel',
 		'sort' => array(
-			'_' => 'Urutan penyortiran',
+			'_' => 'Kriteria pengurutan',
 			'newer_first' => 'Terbaru dulu',
 			'older_first' => 'Terlama dulu',
 		),
 		'star' => array(
-			'when' => 'Mark an article as favourite…',	// TODO
+			'when' => 'Tandai artikel sebagai favorit…',
 		),
-		'sticky_post' => 'Tempelkan artikel di bagian atas saat dibuka',
+		'sticky_post' => 'Sematkan artikel ke bagian atas saat dibuka',
 		'title' => 'Membaca',
 		'view' => array(
-			'default' => 'Tampilan default',
+			'default' => 'Tampilan baku',
 			'global' => 'Tampilan global',
 			'normal' => 'Tampilan normal',
 			'reader' => 'Tampilan membaca',
 		),
 	),
 	'sharing' => array(
-		'_' => 'Sharing',	// TODO
-		'add' => 'Add a sharing method',	// TODO
-		'bluesky' => 'Bluesky',	// TODO
-		'deprecated' => 'This service is deprecated and will be removed from FreshRSS in a <a href="https://freshrss.github.io/FreshRSS/en/users/08_sharing_services.html" title="Open documentation for more information" target="_blank">future release</a>.',	// TODO
+		'_' => 'Berbagi',
+		'add' => 'Tambahkan layanan berbagi',
+		'bluesky' => 'Bluesky',	// IGNORE
+		'deprecated' => 'Layanan ini tidak didukung lagi dan akan dihapus dari FreshRSS dalam <a href="https://freshrss.github.io/FreshRSS/en/users/08_sharing_services.html" title="Open documentation for more information" target="_blank">rilis mendatang</a>.',
 		'diaspora' => 'Diaspora*',	// IGNORE
-		'email' => 'Email',	// TODO
+		'email' => 'Surel',
 		'facebook' => 'Facebook',	// IGNORE
-		'more_information' => 'More information',	// TODO
-		'print' => 'Print',	// TODO
+		'more_information' => 'Informasi lebih lanjut',
+		'print' => 'Cetak',
 		'raindrop' => 'Raindrop.io',	// IGNORE
-		'remove' => 'Remove sharing method',	// TODO
+		'remove' => 'Hapus layanan berbagi',
 		'shaarli' => 'Shaarli',	// IGNORE
-		'share_name' => 'Share name to display',	// TODO
-		'share_url' => 'Share URL to use',	// TODO
-		'title' => 'Sharing',	// TODO
+		'share_name' => 'Nama layanan untuk ditampilkan',
+		'share_url' => 'URL berbagi yang digunakan',
+		'title' => 'Berbagi',
 		'twitter' => 'Twitter',	// IGNORE
 		'wallabag' => 'wallabag',	// IGNORE
 	),
 	'shortcut' => array(
 		'_' => 'Pintasan',
 		'article_action' => 'Tindakan artikel',
-		'auto_share' => 'Bagikan',
-		'auto_share_help' => 'Jika hanya ada satu mode berbagi, itu akan digunakan. Jika tidak, mode dapat diakses dengan nomornya.',
+		'auto_share' => 'Berbagi',
+		'auto_share_help' => 'Jika hanya ada satu layanan berbagi, maka itu akan digunakan. Jika tidak, mode dapat diakses dengan nomornya.',
 		'close_dropdown' => 'Tutup menu',
-		'collapse_article' => 'Ciutkan',
+		'collapse_article' => 'Tutup',
 		'first_article' => 'Buka artikel pertama',
 		'focus_search' => 'Akses kotak pencarian',
 		'global_view' => 'Beralih ke tampilan global',
@@ -327,11 +327,11 @@ return array(
 		'javascript' => 'JavaScript harus diaktifkan untuk menggunakan pintasan',
 		'last_article' => 'Buka artikel terakhir',
 		'load_more' => 'Muat lebih banyak artikel',
-		'mark_favorite' => 'Toggle favorit',
-		'mark_read' => 'Toggle baca',
+		'mark_favorite' => 'Tandai favorit',
+		'mark_read' => 'Tandai sudah baca',
 		'navigation' => 'Navigasi',
-		'navigation_help' => 'Dengan modifikasi <kbd>⇧ Shift</kbd>, pintasan navigasi berlaku pada feed.<br/>Dengan modifikasi <kbd>Alt ⎇</kbd>, pintasan navigasi berlaku pada kategori.',
-		'navigation_no_mod_help' => 'Pintasan navigasi berikut tidak mendukung modifikasi.',
+		'navigation_help' => 'Dengan tombol <kbd>⇧ Shift</kbd>, pintasan navigasi akan berlaku pada umpan.<br/>Dengan tombol <kbd>Alt ⎇</kbd>, pintasan navigasi berlaku pada kategori.',
+		'navigation_no_mod_help' => 'Pintasan berikut tidak terpengaruh penekanan tombol modifikasi.',
 		'next_article' => 'Buka artikel berikutnya',
 		'next_unread_article' => 'Buka artikel berikutnya yang belum dibaca',
 		'non_standard' => 'Beberapa tombol (<kbd>%s</kbd>) mungkin tidak berfungsi sebagai pintasan.',
@@ -341,13 +341,13 @@ return array(
 		'reading_view' => 'Beralih ke tampilan membaca',
 		'rss_view' => 'Buka sebagai umpan RSS',
 		'see_on_website' => 'Lihat di situs web asli',
-		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> untuk menandai artikel sebelumnya sebagai telah dibaca<br />+ <kbd>⇧ Shift</kbd> untuk menandai semua artikel sebagai telah dibaca',
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> untuk menandai artikel sebelumnya sebagai sudah dibaca<br />+ <kbd>⇧ Shift</kbd> untuk menandai semua artikel sebagai sudah dibaca',
 		'skip_next_article' => 'Fokus berikutnya tanpa membuka',
 		'skip_previous_article' => 'Fokus sebelumnya tanpa membuka',
 		'title' => 'Pintasan',
 		'toggle_media' => 'Putar/jeda media',
-		'user_filter' => 'Akses kueri pengguna',
-		'user_filter_help' => 'Jika hanya ada satu kueri pengguna, itu akan digunakan. Jika tidak, kueri dapat diakses dengan nomornya.',
+		'user_filter' => 'Akses pencarian pengguna',
+		'user_filter_help' => 'Jika hanya ada satu pencarian pengguna, maka itu akan digunakan. Jika tidak, pencarian dapat diakses dengan nomornya',
 		'views' => 'Tampilan',
 	),
 	'user' => array(

+ 86 - 86
app/i18n/id/feedback.php

@@ -12,140 +12,140 @@
 
 return array(
 	'access' => array(
-		'denied' => 'You don’t have permission to access this page',	// TODO
-		'not_found' => 'You are looking for a page that doesn’t exist',	// TODO
+		'denied' => 'Anda tidak memiliki izin untuk mengakses halaman ini',
+		'not_found' => 'Halaman ini tidak ada',
 	),
 	'admin' => array(
-		'optimization_complete' => 'Optimization complete',	// TODO
+		'optimization_complete' => 'Optimalisasi selesai',
 	),
 	'api' => array(
 		'password' => array(
-			'failed' => 'Your password cannot be modified',	// TODO
-			'updated' => 'Your password has been modified',	// TODO
+			'failed' => 'Kata sandi Anda tidak dapat diubah',
+			'updated' => 'Kata sandi Anda telah diubah',
 		),
 	),
 	'auth' => array(
 		'login' => array(
-			'invalid' => 'Login is invalid',	// TODO
-			'success' => 'You are connected',	// TODO
+			'invalid' => 'Tidak valid',
+			'success' => 'Sudah terhubung',
 		),
 		'logout' => array(
-			'success' => 'You are disconnected',	// TODO
+			'success' => 'Terputus',
 		),
 	),
 	'conf' => array(
-		'error' => 'An error occurred while saving configuration',	// TODO
-		'query_created' => 'Query “%s” has been created.',	// TODO
-		'shortcuts_updated' => 'Shortcuts have been updated',	// TODO
-		'updated' => 'Configuration has been updated',	// TODO
+		'error' => 'Galat terjadi ketika menyimpan konfigurasi',
+		'query_created' => 'Kueri “%s” telah dibuat.',
+		'shortcuts_updated' => 'Pintasan telah diperbarui',
+		'updated' => 'Konfigurasi telah diperbarui',
 	),
 	'extensions' => array(
-		'already_enabled' => '%s is already enabled',	// TODO
-		'cannot_remove' => '%s cannot be removed',	// TODO
+		'already_enabled' => '%s telah diaktifkan',
+		'cannot_remove' => '%s tidak dapat dihapus',
 		'disable' => array(
-			'ko' => '%s cannot be disabled. <a href="%s">Check FreshRSS logs</a> for details.',	// TODO
-			'ok' => '%s is now disabled',	// TODO
+			'ko' => '%s tidak dapat dinonaktifkan. <a href="%s">Periksa log FreshRSS</a> untuk informasi lebih lanjut.',
+			'ok' => '%s telah dinonaktifkan',
 		),
 		'enable' => array(
-			'ko' => '%s cannot be enabled. <a href="%s">Check FreshRSS logs</a> for details.',	// TODO
-			'ok' => '%s is now enabled',	// TODO
+			'ko' => '%s tidak dapat diaktifkan. <a href="%s">Periksa log FreshRSS</a> untuk informasi lebih lanjut.',
+			'ok' => '%s telah diaktifkan',
 		),
-		'invalid_view_mode' => 'Invalid view mode “%s”! Fall back to “Normal view”.',	// TODO
-		'no_access' => 'You have no access on %s',	// TODO
-		'not_enabled' => '%s is not enabled',	// TODO
-		'not_found' => '%s does not exist',	// TODO
-		'removed' => '%s removed',	// TODO
+		'invalid_view_mode' => 'Mode tampilan tidak valid “%s”! Balik ke “Tampilan normal”.',
+		'no_access' => 'Anda tidak memiliki akses ke %s',
+		'not_enabled' => '%s tidak diaktifkan',
+		'not_found' => '%s tidak ada',
+		'removed' => '%s dihapus',
 	),
 	'import_export' => array(
-		'export_no_zip_extension' => 'The ZIP extension is not present on your server. Please try to export files one by one.',	// TODO
-		'feeds_imported' => 'Your feeds have been imported. If you are done importing, you can now click the <i>Update feeds</i> button.',	// TODO
-		'feeds_imported_with_errors' => 'Your feeds have been imported, but some errors occurred. If you are done importing, you can now click the <i>Update feeds</i> button.',	// TODO
-		'file_cannot_be_uploaded' => 'File cannot be uploaded!',	// TODO
-		'no_zip_extension' => 'The ZIP extension is not present on your server.',	// TODO
-		'zip_error' => 'An error occurred during ZIP processing.',	// TODO
+		'export_no_zip_extension' => 'Ekstensi ZIP tidak tersedia di peladen Anda. Coba untuk mengekspor berkasnya satu per satu.',
+		'feeds_imported' => 'Umpan Anda telah diimpor. Jika Anda sudah selesai mengimpor, Anda bisa mengklik tombol <i>Perbarui umpan</i>.',
+		'feeds_imported_with_errors' => 'Umpan Anda telah diimpor, tapi ada beberapa galat. Jika Anda sudah selesai mengimpor, Anda bisa mengklik tombol <i>Perbarui umpan</i>.',
+		'file_cannot_be_uploaded' => 'Berkas tidak dapt diunggah!',
+		'no_zip_extension' => 'Ekstensi ZIP tidak tersedia di peladen Anda.',
+		'zip_error' => 'Galat terjadi ketika pemrosesan ZIP.',
 	),
 	'profile' => array(
-		'error' => 'Your profile cannot be modified',	// TODO
-		'updated' => 'Your profile has been modified',	// TODO
+		'error' => 'Profil Anda tidak dapat diubah',
+		'updated' => 'Profil Anda telah diubah',
 	),
 	'sub' => array(
-		'actualize' => 'Updating',	// TODO
+		'actualize' => 'Memperbarui',
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	// TODO
-			'marked_unread' => 'The articles have been marked as unread.',	// TODO
+			'marked_read' => 'Artikel yang dipilih telah ditandai sebagai sudah dibaca',
+			'marked_unread' => 'Artikel telah ditandai sebagai belum dibaca',
 		),
 		'category' => array(
-			'created' => 'Category %s has been created.',	// TODO
-			'deleted' => 'Category has been deleted.',	// TODO
-			'emptied' => 'Category has been emptied',	// TODO
-			'error' => 'Category cannot be updated',	// TODO
-			'name_exists' => 'Category name already exists.',	// TODO
+			'created' => 'Kategori %s telah dibuat.',
+			'deleted' => 'Kategori telah dihapus.',
+			'emptied' => 'Kategori telah dikosongkan',
+			'error' => 'Kategori tidak dapat diperbarui',
+			'name_exists' => 'Nama kategori sudah ada.',
 			'no_id' => 'You must specify the id of the category.',	// TODO
-			'no_name' => 'Category name cannot be empty.',	// TODO
-			'not_delete_default' => 'You cannot delete the default category!',	// TODO
-			'not_exist' => 'The category does not exist!',	// TODO
-			'over_max' => 'You have reached your limit of categories (%d)',	// TODO
-			'updated' => 'Category has been updated.',	// TODO
+			'no_name' => 'Nama kategori tidak boleh kosong.',
+			'not_delete_default' => 'Tidak dapat menghapus kategori baku!',
+			'not_exist' => 'Kategori ini tidak ada!',
+			'over_max' => 'Batas kategori Anda sudah tercapai (%d)',
+			'updated' => 'Kategori ini telah diperbarui.',
 		),
 		'feed' => array(
-			'actualized' => '<em>%s</em> has been updated',	// TODO
-			'actualizeds' => 'RSS feeds have been updated',	// TODO
-			'added' => 'RSS feed <em>%s</em> has been added',	// TODO
-			'already_subscribed' => 'You have already subscribed to <em>%s</em>',	// TODO
-			'cache_cleared' => '<em>%s</em> cache has been cleared',	// TODO
-			'deleted' => 'Feed has been deleted',	// TODO
-			'error' => 'Feed cannot be updated',	// TODO
+			'actualized' => '<em>%s</em> telah diperbarui',
+			'actualizeds' => 'Umpan RSS telah diperbarui',
+			'added' => 'Umpan RSS <em>%s</em> telah ditambahkan',
+			'already_subscribed' => 'Anda telah berlangganan ke <em>%s</em>',
+			'cache_cleared' => 'Tembolok <em>%s</em> telah dikosongkan',
+			'deleted' => 'Umpan telah dihapus',
+			'error' => 'Umpan tidak dapat diperbarui',
 			'favicon' => array(
-				'too_large' => 'Uploaded icon is too large. The maximum file size is <em>%s</em>.',	// TODO
-				'unsupported_format' => 'Unsupported image file format!',	// TODO
+				'too_large' => 'Ikon yang diunggah terlalu besar. Ukuran maksimal berkas adalah <em>%s</em>.',
+				'unsupported_format' => 'Format gambar tidak didukung!',
 			),
-			'internal_problem' => 'The newsfeed could not be added. <a href="%s">Check FreshRSS logs</a> for details. You can try force adding by appending <code>#force_feed</code> to the URL.',	// TODO
-			'invalid_url' => 'URL <em>%s</em> is invalid',	// TODO
-			'n_actualized' => '%d feeds have been updated',	// TODO
-			'n_entries_deleted' => '%d articles have been deleted',	// TODO
-			'no_refresh' => 'There are no feeds to refresh',	// TODO
-			'not_added' => '<em>%s</em> could not be added',	// TODO
-			'not_found' => 'Feed cannot be found',	// TODO
-			'over_max' => 'You have reached your limit of feeds (%d)',	// TODO
-			'reloaded' => '<em>%s</em> has been reloaded',	// TODO
+			'internal_problem' => 'Umpan tidak dapat ditambahkan. <a href="%s">Periksa log FreshRSS</a> untuk informasi lebih lanjut. Anda bisa memaksa penambahan dengan menambahkan <code>#force_feed</code> ke URL.',
+			'invalid_url' => 'URL <em>%s</em> tidak valid',
+			'n_actualized' => '%d umpan telah diperbarui',
+			'n_entries_deleted' => '%d artikel telah dihapus',
+			'no_refresh' => 'Tidak ada umpan untuk disegarkan',
+			'not_added' => '<em>%s</em> tidak dapat ditambahkan',
+			'not_found' => 'Umpan tidak dapat ditemukan',
+			'over_max' => 'Anda telah mencapai batas umpan Anda (%d)',
+			'reloaded' => '<em>%s</em> telah dimuat ulang',
 			'selector_preview' => array(
-				'http_error' => 'Failed to load website content.',	// TODO
-				'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.',	// TODO
-				'no_feed' => 'Internal error (feed cannot be found).',	// TODO
-				'no_result' => 'The selector didn’t match anything. As a fallback the original feed text will be displayed instead.',	// TODO
-				'selector_empty' => 'The selector is empty. You need to define one to create a preview.',	// TODO
+				'http_error' => 'Tidak dapat memuat konten situs.',
+				'no_entries' => 'Tidak ada artikel di umpan ini. Anda harus paling tidak memiliki satu artikel untuk membuat tinjauan.',
+				'no_feed' => 'Galat internal (umpan tidak dapat ditemukan).',
+				'no_result' => 'Pemilihan tidak cocok dengan apapun. Sebagai ganti, teks umpan aslinya akan ditampilkan di sini.',
+				'selector_empty' => 'Pemilihan kosong. Anda harus paling tidak memasukkan satu untuk membuat tinjauan.',
 			),
-			'updated' => 'Feed has been updated',	// TODO
+			'updated' => 'Umpan telah diperbarui',
 		),
-		'purge_completed' => 'Purge completed (%d articles deleted)',	// TODO
+		'purge_completed' => 'Selesai penghapusan (%d artikel dihapus)',
 	),
 	'tag' => array(
-		'created' => 'Label “%s”has been created.',	// DIRTY
-		'error' => 'Label could not be updated!',	// TODO
-		'name_exists' => 'Label name already exists.',	// TODO
-		'renamed' => 'Label “%s”has been renamed to “%s”.',	// DIRTY
-		'updated' => 'Label has been updated.',	// TODO
+		'created' => 'Label “%s” telah dibuat.',
+		'error' => 'Label tidak dapat diperbarui!',
+		'name_exists' => 'Label telah ada.',
+		'renamed' => 'Label “%s” telah dinamai ulang ke “%s”.',
+		'updated' => 'Label telah diperbarui.',
 	),
 	'update' => array(
-		'can_apply' => 'An update of FreshRSS is available: <strong>Version %s</strong>.',	// TODO
-		'error' => 'The update process has encountered an error: %s',	// TODO
-		'file_is_nok' => 'An update of FreshRSS is available (<strong>Version %s</strong>), but check permissions on <em>%s</em> directory. HTTP server must have have write permission',	// TODO
-		'finished' => 'Update complete!',	// TODO
-		'none' => 'No update available',	// TODO
-		'server_not_found' => 'Update server cannot be found. [%s]',	// TODO
+		'can_apply' => 'Pembaruan FreshRSS tersedia: <strong>Versi %s</strong>.',
+		'error' => 'Galat terjadi dalam proses pembaruan: %s',
+		'file_is_nok' => 'Pembaruan FreshRSS tersedia (<strong>Versi %s</strong>), but check permissions on <em>%s</em> directory. HTTP server must have have write permission , dan periksa izin di direktori <em>%s</em>. Peladen HTTP harus memiliki izin menulis di direktori tersebut',
+		'finished' => 'Pembaruan selesai!',
+		'none' => 'Tidak ada pembaruan yang tersedia',
+		'server_not_found' => 'Peladen pembaruan tidak dapat ditemukan. [%s]',
 	),
 	'user' => array(
 		'created' => array(
-			'_' => 'User %s has been created',	// TODO
-			'error' => 'User %s cannot be created',	// TODO
+			'_' => 'Pengguna %s telah dibuat',
+			'error' => 'Pengguna %s tidak dapat dibuat',
 		),
 		'deleted' => array(
-			'_' => 'User %s has been deleted',	// TODO
-			'error' => 'User %s cannot be deleted',	// TODO
+			'_' => 'Pengguna %s telah dihapus',
+			'error' => 'Pengguna %s tidak dapat dihapus',
 		),
 		'updated' => array(
-			'_' => 'User %s has been updated',	// TODO
-			'error' => 'User %s has not been updated',	// TODO
+			'_' => 'Pengguna %s telah diperbarui',
+			'error' => 'Pengguna %s tidak dapat diperbarui',
 		),
 	),
 );

+ 175 - 175
app/i18n/id/gen.php

@@ -12,142 +12,142 @@
 
 return array(
 	'action' => array(
-		'actualize' => 'Update feeds',	// TODO
-		'add' => 'Add',	// TODO
-		'back_to_rss_feeds' => '← Go back to your RSS feeds',	// TODO
-		'cancel' => 'Cancel',	// TODO
-		'close' => 'Close',	// TODO
-		'create' => 'Create',	// TODO
-		'delete_all_feeds' => 'Delete all feeds',	// TODO
-		'delete_errored_feeds' => 'Delete feeds with errors',	// TODO
-		'delete_muted_feeds' => 'Delete muted feeds',	// TODO
-		'demote' => 'Demote',	// TODO
-		'disable' => 'Disable',	// TODO
-		'download' => 'Download',	// TODO
-		'empty' => 'Empty',	// TODO
-		'enable' => 'Enable',	// TODO
-		'export' => 'Export',	// TODO
+		'actualize' => 'Perbarui umpan',
+		'add' => 'Tambah',
+		'back_to_rss_feeds' => '← Kembali ke umpan RSS Anda',
+		'cancel' => 'Batal',
+		'close' => 'Tutup',
+		'create' => 'Buat',
+		'delete_all_feeds' => 'Hapus semua umpan',
+		'delete_errored_feeds' => 'Hapus umpan dengan galat',
+		'delete_muted_feeds' => 'Hapus umpan yang dibisukan',
+		'demote' => 'Demosi',
+		'disable' => 'Nonaktifkan',
+		'download' => 'Unduh',
+		'empty' => 'Kosongkan',
+		'enable' => 'Aktifkan',
+		'export' => 'Ekspor',
 		'filter' => 'Filter',	// TODO
-		'import' => 'Import',	// TODO
-		'load_default_shortcuts' => 'Load default shortcuts',	// TODO
-		'manage' => 'Manage',	// TODO
-		'mark_read' => 'Mark as read',	// TODO
+		'import' => 'Impor',
+		'load_default_shortcuts' => 'Muat pintasan baku',
+		'manage' => 'Kelola',
+		'mark_read' => 'Tandai sebagai sudah dibaca',
 		'menu' => array(
-			'open' => 'Open menu',	// TODO
+			'open' => 'Buka menu',
 		),
 		'nav_buttons' => array(
-			'next' => 'Next article',	// TODO
-			'prev' => 'Previous article',	// TODO
-			'up' => 'Go up',	// TODO
+			'next' => 'Artikel selanjutnya',
+			'prev' => 'Artikel sebelumnya',
+			'up' => 'Ke atas',
 		),
-		'open_url' => 'Open URL',	// TODO
-		'promote' => 'Promote',	// TODO
-		'purge' => 'Purge',	// TODO
-		'refresh_opml' => 'Refresh OPML',	// TODO
-		'remove' => 'Remove',	// TODO
-		'rename' => 'Rename',	// TODO
-		'see_website' => 'See website',	// TODO
-		'submit' => 'Submit',	// TODO
-		'truncate' => 'Delete all articles',	// TODO
-		'update' => 'Update',	// TODO
+		'open_url' => 'Buka URL',
+		'promote' => 'Promosi',
+		'purge' => 'Hapus',
+		'refresh_opml' => 'Segarkan OPML',
+		'remove' => 'Hapus',
+		'rename' => 'Ubah nama',
+		'see_website' => 'Lihat situs',
+		'submit' => 'Kirim',
+		'truncate' => 'Hapus semua artikel',
+		'update' => 'Perbarui',
 	),
 	'auth' => array(
-		'accept_tos' => 'I accept the <a href="%s">Terms of Service</a>.',	// TODO
-		'email' => 'Email address',	// TODO
-		'keep_logged_in' => 'Keep me logged in <small>(%s days)</small>',	// DIRTY
-		'login' => 'Login',	// TODO
-		'logout' => 'Logout',	// TODO
+		'accept_tos' => 'Saya menyetujui <a href="%s">Kebijakan Layanan</a>.',
+		'email' => 'Alamat surel',
+		'keep_logged_in' => 'Biarkan saya masuk <small>(%s hari)</small>',
+		'login' => 'Masuk',
+		'logout' => 'Keluar',
 		'password' => array(
-			'_' => 'Password',	// TODO
-			'format' => '<small>At least 7 characters</small>',	// TODO
+			'_' => 'Kata sandi',
+			'format' => '<small>Paling tidak 7 karakter</small>',
 		),
 		'registration' => array(
-			'_' => 'New account',	// TODO
-			'ask' => 'Create an account?',	// TODO
-			'title' => 'Account creation',	// TODO
+			'_' => 'Akun baru',
+			'ask' => 'Buat akun?',
+			'title' => 'Pembuatan akun',
 		),
 		'username' => array(
-			'_' => 'Username',	// TODO
-			'format' => '<small>Maximum 16 alphanumeric characters</small>',	// TODO
+			'_' => 'Nama pengguna',
+			'format' => '<small>Maksimum 16 alfanumerik karakter</small>',
 		),
 	),
 	'date' => array(
 		'Apr' => '\\A\\p\\r\\i\\l',	// TODO
-		'Aug' => '\\A\\u\\g\\u\\s\\t',	// TODO
-		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',	// TODO
-		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',	// TODO
-		'Jan' => '\\J\\a\\n\\u\\a\\r\\y',	// TODO
-		'Jul' => '\\J\\u\\l\\y',	// TODO
-		'Jun' => '\\J\\u\\n\\e',	// TODO
-		'Mar' => '\\M\\a\\r\\c\\h',	// TODO
-		'May' => '\\M\\a\\y',	// TODO
+		'Aug' => '\\A\\g\\u\\s\\t\\u\\s',
+		'Dec' => '\\D\\e\\s\\e\\m\\b\\e\\r',
+		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\i',
+		'Jan' => '\\J\\a\\n\\u\\a\\r\\i',
+		'Jul' => '\\J\\u\\l\\i',
+		'Jun' => '\\J\\u\\n\\i',
+		'Mar' => '\\M\\a\\r\\e\\t',
+		'May' => '\\M\\e\\i',
 		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',	// TODO
-		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',	// TODO
+		'Oct' => '\\O\\k\\t\\o\\b\\e\\r',
 		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',	// TODO
 		'apr' => 'Apr.',	// TODO
 		'april' => 'April',	// TODO
-		'aug' => 'Aug.',	// TODO
-		'august' => 'August',	// TODO
-		'before_yesterday' => 'Before yesterday',	// TODO
-		'dec' => 'Dec.',	// TODO
-		'december' => 'December',	// TODO
-		'feb' => 'Feb.',	// TODO
-		'february' => 'February',	// TODO
+		'aug' => 'Agu.',
+		'august' => 'Agustus',
+		'before_yesterday' => 'Sebelum kemarin',
+		'dec' => 'Des.',
+		'december' => 'Desember',
+		'feb' => 'Feb.',	// IGNORE
+		'february' => 'Februari',
 		'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y',
 		'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t g\\:i a',
-		'fri' => 'Fri',	// TODO
-		'jan' => 'Jan.',	// TODO
-		'january' => 'January',	// TODO
-		'jul' => 'July',	// TODO
-		'july' => 'July',	// TODO
-		'jun' => 'June',	// TODO
-		'june' => 'June',	// TODO
-		'last_2_year' => 'Last two years',	// TODO
-		'last_3_month' => 'Last three months',	// TODO
-		'last_3_year' => 'Last three years',	// TODO
-		'last_5_year' => 'Last five years',	// TODO
-		'last_6_month' => 'Last six months',	// TODO
-		'last_month' => 'Last month',	// TODO
-		'last_week' => 'Last week',	// TODO
-		'last_year' => 'Last year',	// TODO
-		'mar' => 'Mar.',	// TODO
-		'march' => 'March',	// TODO
-		'may' => 'May',	// TODO
-		'may_' => 'May',	// TODO
-		'mon' => 'Mon',	// TODO
-		'month' => 'months',	// TODO
-		'nov' => 'Nov.',	// TODO
+		'fri' => 'Jum',
+		'jan' => 'Jan.',	// IGNORE
+		'january' => 'Januari',
+		'jul' => 'Juli',
+		'july' => 'Juli',
+		'jun' => 'Juni',
+		'june' => 'Juni',
+		'last_2_year' => 'Dua tahun terakhir',
+		'last_3_month' => 'Tiga bulan terakhir',
+		'last_3_year' => 'Tiga tahun terakhir',
+		'last_5_year' => 'Lima tahun terakhir',
+		'last_6_month' => 'Enam bulan terakhir',
+		'last_month' => 'Satu bulan terakhir',
+		'last_week' => 'Satu pekan terakhir',
+		'last_year' => 'Satu tahun terakhir',
+		'mar' => 'Mar.',	// IGNORE
+		'march' => 'Maret',
+		'may' => 'Mei',
+		'may_' => 'Mei',
+		'mon' => 'Bln',
+		'month' => 'bulan',
+		'nov' => 'Nov.',	// IGNORE
 		'november' => 'November',	// TODO
-		'oct' => 'Oct.',	// TODO
-		'october' => 'October',	// TODO
-		'sat' => 'Sat',	// TODO
-		'sep' => 'Sept.',	// TODO
+		'oct' => 'Okt.',
+		'october' => 'Oktober',
+		'sat' => 'Sbt',
+		'sep' => 'Sept.',	// IGNORE
 		'september' => 'September',	// TODO
-		'sun' => 'Sun',	// TODO
-		'thu' => 'Thu',	// TODO
-		'today' => 'Today',	// TODO
-		'tue' => 'Tue',	// TODO
-		'wed' => 'Wed',	// TODO
-		'yesterday' => 'Yesterday',	// TODO
+		'sun' => 'Mng',
+		'thu' => 'Kms',
+		'today' => 'Hari ini',
+		'tue' => 'Sel',
+		'wed' => 'Rab',
+		'yesterday' => 'Kemarin',
 	),
-	'dir' => 'ltr',	// TODO
+	'dir' => 'ltr',	// IGNORE
 	'freshrss' => array(
-		'_' => 'FreshRSS',	// TODO
-		'about' => 'About FreshRSS',	// TODO
+		'_' => 'FreshRSS',	// IGNORE
+		'about' => 'Tentang FreshRSS',
 	),
 	'js' => array(
-		'category_empty' => 'Empty category',	// TODO
-		'confirm_action' => 'Are you sure you want to perform this action? It cannot be canceled!',
-		'confirm_action_feed_cat' => 'Are you sure you want to perform this action? You will lose related favorites and user queries. It cannot be canceled!',
+		'category_empty' => 'Kategori kosong',
+		'confirm_action' => 'Apakah Anda yakin ingin melakukan ini? Ini tidak dapat dibatalkan!',
+		'confirm_action_feed_cat' => 'Apakah Anda yakin ingin melakukan ini? Anda akan kehilangan favorit dan pencarian pengguna terkait. Ini tidak dapat dibatalkan.',
 		'feedback' => array(
-			'body_new_articles' => 'There are %%d new articles to read on FreshRSS.',	// TODO
-			'body_unread_articles' => '(unread: %%d)',	// TODO
-			'request_failed' => 'A request has failed, it may have been caused by internet connection problems.',	// TODO
-			'title_new_articles' => 'FreshRSS: new articles!',	// TODO
+			'body_new_articles' => 'Ada %%d artikel baru untuk dibaca di FreshRSS.',
+			'body_unread_articles' => '(belum dibaca: %%d)',
+			'request_failed' => 'Permintaan gagal, mungkin dikarenakan masalah koneksi internet.',
+			'title_new_articles' => 'FreshRSS: artikel baru!',
 		),
-		'labels_empty' => 'No labels',	// TODO
-		'new_article' => 'There are new articles available, click to refresh the page.',	// TODO
-		'should_be_activated' => 'JavaScript must be enabled',	// TODO
+		'labels_empty' => 'Tidak ada label',
+		'new_article' => 'Tidak ada artikel baru yang tersedia, klik untuk menyegarkan halaman.',
+		'should_be_activated' => 'JavaScript harus diaktifkan',
 	),
 	'lang' => array(
 		'cs' => 'Čeština',	// IGNORE
@@ -178,87 +178,87 @@ return array(
 		'zh-tw' => '正體中文',	// IGNORE
 	),
 	'menu' => array(
-		'about' => 'About',	// TODO
-		'account' => 'Account',	// TODO
-		'admin' => 'Administration',	// TODO
-		'archiving' => 'Archiving',	// TODO
-		'authentication' => 'Authentication',	// TODO
-		'check_install' => 'Installation check',	// TODO
-		'configuration' => 'Configuration',	// TODO
-		'display' => 'Display',	// TODO
-		'extensions' => 'Extensions',	// TODO
-		'logs' => 'Logs',	// TODO
-		'privacy' => 'Privacy',	// TODO
-		'queries' => 'User queries',	// TODO
-		'reading' => 'Reading',	// TODO
-		'search' => 'Search words or #tags',	// TODO
-		'search_help' => 'See documentation for advanced <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">search parameters</a>',	// TODO
-		'sharing' => 'Sharing',	// TODO
-		'shortcuts' => 'Shortcuts',	// TODO
-		'stats' => 'Statistics',	// TODO
-		'system' => 'System configuration',	// TODO
-		'update' => 'Update',	// TODO
-		'user_management' => 'Manage users',	// TODO
-		'user_profile' => 'Profile',	// TODO
+		'about' => 'Tentang',
+		'account' => 'Akun',
+		'admin' => 'Administrasi',
+		'archiving' => 'Pengarsipan',
+		'authentication' => 'Autentikasi',
+		'check_install' => 'Pemeriksaan pemasangan',
+		'configuration' => 'Konfigurasi',
+		'display' => 'Tampilan',
+		'extensions' => 'Ekstensi',
+		'logs' => 'Log',
+		'privacy' => 'Privasi',
+		'queries' => 'Pencarian pengguna',
+		'reading' => 'Membaca',
+		'search' => 'Cari kata atau #label',
+		'search_help' => 'Lihat dokumentasi unuk <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">parameter pencarian</a> lebih lanjut',
+		'sharing' => 'Berbagi',
+		'shortcuts' => 'Pintasan',
+		'stats' => 'Statistik',
+		'system' => 'Konfigurasi sistem',
+		'update' => 'Pembaruan',
+		'user_management' => 'Kelola pengguna',
+		'user_profile' => 'Profil',
 	),
 	'period' => array(
-		'days' => 'days',	// TODO
-		'hours' => 'hours',	// TODO
-		'months' => 'months',	// TODO
-		'weeks' => 'weeks',	// TODO
-		'years' => 'years',	// TODO
+		'days' => 'hari',
+		'hours' => 'jam',
+		'months' => 'bulan',
+		'weeks' => 'minggu',
+		'years' => 'tahun',
 	),
 	'share' => array(
-		'Known' => 'Known based sites',	// TODO
+		'Known' => 'Situs berbasis Known',
 		'archiveIS' => 'archive.is',	// IGNORE
 		'archiveORG' => 'archive.org',	// IGNORE
-		'archivePH' => 'archive.ph',	// TODO
-		'bluesky' => 'Bluesky',	// TODO
+		'archivePH' => 'archive.ph',	// IGNORE
+		'bluesky' => 'Bluesky',	// IGNORE
 		'buffer' => 'Buffer',	// IGNORE
-		'clipboard' => 'Clipboard',	// TODO
-		'diaspora' => 'Diaspora*',	// TODO
-		'email' => 'Email',	// TODO
-		'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)',	// TODO
-		'facebook' => 'Facebook',	// TODO
-		'gnusocial' => 'GNU social',	// TODO
-		'jdh' => 'Journal du hacker',	// TODO
-		'lemmy' => 'Lemmy',	// TODO
-		'linkding' => 'Linkding',	// TODO
-		'linkedin' => 'LinkedIn',	// TODO
-		'mastodon' => 'Mastodon',	// TODO
-		'movim' => 'Movim',	// TODO
+		'clipboard' => 'Papan Klip',
+		'diaspora' => 'Diaspora*',	// IGNORE
+		'email' => 'Surel',
+		'email-webmail-firefox-fix' => 'Surel (klien web - perbaikan untuk Firefox)',
+		'facebook' => 'Facebook',	// IGNORE
+		'gnusocial' => 'GNU social',	// IGNORE
+		'jdh' => 'Journal du hacker',	// IGNORE
+		'lemmy' => 'Lemmy',	// IGNORE
+		'linkding' => 'Linkding',	// IGNORE
+		'linkedin' => 'LinkedIn',	// IGNORE
+		'mastodon' => 'Mastodon',	// IGNORE
+		'movim' => 'Movim',	// IGNORE
 		'omnivore' => 'Omnivore',	// IGNORE
-		'pinboard' => 'Pinboard',	// TODO
-		'pinterest' => 'Pinterest',	// TODO
-		'pocket' => 'Pocket',	// TODO
-		'print' => 'Print',	// TODO
-		'raindrop' => 'Raindrop.io',	// TODO
-		'reddit' => 'Reddit',	// TODO
-		'shaarli' => 'Shaarli',	// TODO
+		'pinboard' => 'Pinboard',	// IGNORE
+		'pinterest' => 'Pinterest',	// IGNORE
+		'pocket' => 'Pocket',	// IGNORE
+		'print' => 'Cetak',
+		'raindrop' => 'Raindrop.io',	// IGNORE
+		'reddit' => 'Reddit',	// IGNORE
+		'shaarli' => 'Shaarli',	// IGNORE
 		'telegram' => 'Telegram',	// IGNORE
-		'twitter' => 'Twitter',	// TODO
-		'wallabag' => 'wallabag v1',	// TODO
-		'wallabagv2' => 'wallabag v2',	// TODO
-		'web-sharing-api' => 'System sharing',	// TODO
-		'whatsapp' => 'Whatsapp',	// TODO
-		'xing' => 'Xing',	// TODO
+		'twitter' => 'Twitter',	// IGNORE
+		'wallabag' => 'wallabag v1',	// IGNORE
+		'wallabagv2' => 'wallabag v2',	// IGNORE
+		'web-sharing-api' => 'Bagikan sistem',
+		'whatsapp' => 'Whatsapp',	// IGNORE
+		'xing' => 'Xing',	// IGNORE
 	),
 	'short' => array(
-		'attention' => 'Warning!',	// TODO
-		'blank_to_disable' => 'Leave blank to disable',	// TODO
-		'by_author' => 'By:',	// TODO
-		'by_default' => 'By default',	// TODO
-		'damn' => 'Blast!',	// TODO
-		'default_category' => 'Uncategorized',	// TODO
-		'no' => 'No',	// TODO
-		'not_applicable' => 'Not available',	// TODO
-		'ok' => 'Okay!',	// TODO
-		'or' => 'or',	// TODO
-		'yes' => 'Yes',	// TODO
+		'attention' => 'Peringatan!',
+		'blank_to_disable' => 'Biarkan kosong untuk menonaktifkan',
+		'by_author' => 'Oleh:',
+		'by_default' => 'Secara baku',
+		'damn' => 'Sial!',
+		'default_category' => 'Tidak ada kategori',
+		'no' => 'Tidak',
+		'not_applicable' => 'Tidak tersedia',
+		'ok' => 'Oke!',
+		'or' => 'atau',
+		'yes' => 'Ya',
 	),
 	'stream' => array(
-		'load_more' => 'Load more articles',	// TODO
-		'mark_all_read' => 'Mark all as read',	// TODO
-		'nothing_to_load' => 'There are no more articles',	// TODO
+		'load_more' => 'Muat lebih banyak artikel',
+		'mark_all_read' => 'Tandai semua sebagai sudah dibaca',
+		'nothing_to_load' => 'Tidak ada artikel lagi',
 	),
 );

+ 1 - 1
app/i18n/id/index.php

@@ -59,7 +59,7 @@ return array(
 		'bookmark_query' => 'Markah pencarian saat ini',
 		'favorites' => 'Favorit (%s)',
 		'global_view' => 'Tampilan Global',
-		'important' => 'Umpan penting',
+		'important' => 'Umpan Penting',
 		'main_stream' => 'Bagian Utama',
 		'mark_all_read' => 'Tandai semua sebagai sudah dibaca',
 		'mark_cat_read' => 'Tandai kategori sebagai sudah dibaca',

+ 13 - 13
app/i18n/id/sub.php

@@ -50,7 +50,7 @@ return array(
 			'password' => 'Kata sandi HTTP',
 			'username' => 'Nama pengguna HTTP',
 		),
-		'change_favicon' => 'Change…',	// TODO
+		'change_favicon' => 'Ubah…',
 		'clear_cache' => 'Selalu bersihkan tembolok',
 		'content_action' => array(
 			'_' => 'Yang dilakukan ketika mengambil konten artikel',
@@ -62,10 +62,10 @@ return array(
 		'css_cookie' => 'Gunakan kuki ketika mengambil konten artikel',
 		'css_cookie_help' => 'Contoh: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
 		'css_help' => 'Mengambil bagian artikel sesuai CSS yang dimasukkan (awas, memerlukan lebih banyak waktu!)',
-		'css_path' => 'Selektor CSS artikel di situs aslinya',
+		'css_path' => 'Pemilihan CSS artikel di situs aslinya',
 		'css_path_filter' => array(
-			'_' => 'Selektor CSS artikel untuk konten yang akan dihapus',
-			'help' => 'Selektor CSS bisa juga berupa daftar seperti: <kbd>footer, aside, p[data-sanitized-class~="menu"]</kbd>',
+			'_' => 'Pemilihan CSS artikel untuk konten yang akan dihapus',
+			'help' => 'Pemilihan CSS bisa juga berupa daftar seperti: <kbd>footer, aside, p[data-sanitized-class~="menu"]</kbd>',
 		),
 		'description' => 'Deskripsi',
 		'empty' => 'Umpan ini kosong. Periksa apakah umpan ini masih ada',
@@ -75,15 +75,15 @@ return array(
 			'help' => 'Berkas XML (subset data. <a href="https://freshrss.github.io/FreshRSS/en/developers/OPML.html" target="_blank">Lihat dokumentasi</a>)',
 			'label' => 'Unduh dalam bentuk OPML',
 		),
-		'ext_favicon' => 'Set automatically',	// TODO
-		'favicon_changed_by_ext' => 'The icon has been set by the <b>%s</b> extension.',	// TODO
+		'ext_favicon' => 'Atur secara otomatis',
+		'favicon_changed_by_ext' => 'Ikon telah diatur oleh ekstensi <b>%s</b>.',
 		'filteractions' => array(
 			'_' => 'Tindakan penyaringan',
 			'help' => 'Tulis satu penyaringan pencarian per baris. Operator <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">lihat dokumentasi</a>.',
 		),
 		'http_headers' => 'Tajuk HTTP',
 		'http_headers_help' => 'Tajuk dipisahkan dengan baris baru dan nama dan nilai dari tajuk dipisahkan dengan titik dua (contoh: <kbd><code>Accept: application/atom+xml<br />Authorization: Bearer some-token</code></kbd>).',
-		'icon' => 'Icon',	// TODO
+		'icon' => 'Ikon',
 		'information' => 'Informasi',
 		'keep_min' => 'Jumlah minimum artikel yang harus disimpan',
 		'kind' => array(
@@ -96,12 +96,12 @@ return array(
 				),
 			),
 			'html_xpath' => array(
-				'_' => 'HTML + XPath (Web scraping)',	// IGNORE
+				'_' => 'HTML + XPath (Pengorekan web)',
 				'feed_title' => array(
 					'_' => 'judul umpan',
 					'help' => 'Contoh: <code>//title</code> atau kata statis: <code>"Umpan Saya"</code>',
 				),
-				'help' => '<dfn><a href="https://www.w3.org/TR/xpath-10/" target="_blank">XPath 1.0</a></dfn> adalah bahasa kueri standar untuk pengguna tingkat lanjut dan yang mana FreshRSS dukung untuk web scraping.',
+				'help' => '<dfn><a href="https://www.w3.org/TR/xpath-10/" target="_blank">XPath 1.0</a></dfn> adalah bahasa kueri standar untuk pengguna tingkat lanjut dan yang mana FreshRSS dukung untuk dikorek.',
 				'item' => array(
 					'_' => 'mencari <strong>item</strong> artikel<br /><small>(paling penting)</small>',
 					'help' => 'Contoh: <code>//div[@class="news-item"]</code>',
@@ -148,7 +148,7 @@ return array(
 					'_' => 'judul umpan',
 					'help' => 'Contoh: <code>meta.title</code> atau kata statis: <code>"Umpan Saya"</code>',
 				),
-				'help' => 'Notasi dot JSON menggunakan dot (titik) antara objek dan kurung untuk array, contoh <code>data.items[0].title</code>',
+				'help' => 'Notasi dot JSON menggunakan dot (titik) antara objek dan kurung untuk array. Contoh <code>data.items[0].title</code>',
 				'item' => array(
 					'_' => 'mencari <strong>item</strong> artikel<br /><small>(paling penting)</small>',
 					'help' => 'Jalur JSON ke array yang mengandung item tersebut, contoh: <code>$</code> atau <code>newsItems</code>',
@@ -188,7 +188,7 @@ return array(
 			'clear_cache' => 'Bersihkan tembolok',
 			'clear_cache_help' => 'Bersihkan tembolok untuk umpan ini.',
 			'reload_articles' => 'Muat ulang artikel',
-			'reload_articles_help' => 'Muat ulang artikel sesuai angka yang dimasukkan dan ambil konten lengkap jika selektor diberikan.',
+			'reload_articles_help' => 'Muat ulang artikel sesuai angka yang dimasukkan dan ambil konten lengkap jika pemilihan diberikan.',
 			'title' => 'Pemeliharaan',
 		),
 		'max_http_redir' => 'Maksimum pengalihan HTTP',
@@ -216,7 +216,7 @@ return array(
 		),
 		'proxy' => 'Atur proksi untuk mengambil umpan ini',
 		'proxy_help' => 'Pilih protokol (contoh: SOCKS5) dan masukkan alamat proksi (contoh: <kbd>127.0.0.1:1080</kbd> atau <kbd>username:password@127.0.0.1:1080</kbd>)',
-		'reset_favicon' => 'Reset to default',	// TODO
+		'reset_favicon' => 'Atur ulang ke yang baku',
 		'selector_preview' => array(
 			'show_raw' => 'Tampilkan kode sumber',
 			'show_rendered' => 'Tampilkan konten',
@@ -236,7 +236,7 @@ return array(
 		'title_add' => 'Tambah umpan RSS',
 		'ttl' => 'Jangan perbarui secara otomatis lebih banyak daripada',
 		'unicityCriteria' => array(
-			'_' => 'Kriteria Keunikan Artikel',
+			'_' => 'Kriteria keunikan artikel',
 			'forced' => '<span title="Blokir kriteria keunikan meski umpan memiliki artikel duplikat">paksa</span>',
 			'help' => 'Relevan untuk umpan yang tidak valid.<br />⚠️ Mengubah ini akan membuat artikel duplikat.',
 			'id' => 'ID standar (baku)',