From ca1764f49226f490ba15b2b0dfc3b5553f30e2b3 Mon Sep 17 00:00:00 2001 From: Amrul Izwan <58427636+amrulizwan@users.noreply.github.com> Date: Thu, 13 Oct 2022 21:50:26 +0800 Subject: Add id-🇮🇩 Translation (#4706) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add id-🇮🇩 Translation * Update id Translation for admin.php * make fix-all * Bahasa Indonesia * Fix typos config * Update user.php * make fix-all * Typographic quotes * make fix-all Co-authored-by: Alexandre Alapetite --- app/i18n/cz/gen.php | 1 + app/i18n/de/gen.php | 1 + app/i18n/el/gen.php | 39 +++---- app/i18n/en-us/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/es/gen.php | 1 + app/i18n/fr/gen.php | 1 + app/i18n/he/gen.php | 1 + app/i18n/id/admin.php | 216 ++++++++++++++++++++++++++++++++++++ app/i18n/id/conf.php | 283 +++++++++++++++++++++++++++++++++++++++++++++++ app/i18n/id/feedback.php | 144 ++++++++++++++++++++++++ app/i18n/id/gen.php | 237 +++++++++++++++++++++++++++++++++++++++ app/i18n/id/index.php | 75 +++++++++++++ app/i18n/id/install.php | 133 ++++++++++++++++++++++ app/i18n/id/sub.php | 213 +++++++++++++++++++++++++++++++++++ app/i18n/id/user.php | 54 +++++++++ app/i18n/it/gen.php | 1 + app/i18n/ja/gen.php | 1 + app/i18n/ko/gen.php | 1 + app/i18n/nl/gen.php | 1 + app/i18n/oc/gen.php | 1 + app/i18n/pl/gen.php | 1 + app/i18n/pt-br/gen.php | 1 + app/i18n/ru/gen.php | 1 + app/i18n/sk/gen.php | 1 + app/i18n/tr/gen.php | 1 + app/i18n/zh-cn/gen.php | 1 + app/i18n/zh-tw/gen.php | 1 + 28 files changed, 1394 insertions(+), 19 deletions(-) create mode 100644 app/i18n/id/admin.php create mode 100644 app/i18n/id/conf.php create mode 100644 app/i18n/id/feedback.php create mode 100644 app/i18n/id/gen.php create mode 100644 app/i18n/id/index.php create mode 100644 app/i18n/id/install.php create mode 100644 app/i18n/id/sub.php create mode 100644 app/i18n/id/user.php (limited to 'app/i18n') diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index dcea66020..1db55bff7 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index a22d3d466..f4b885ca6 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/el/gen.php b/app/i18n/el/gen.php index 576d01bb8..aed28cae7 100644 --- a/app/i18n/el/gen.php +++ b/app/i18n/el/gen.php @@ -138,25 +138,26 @@ return array( 'should_be_activated' => 'JavaScript must be enabled', // TODO ), 'lang' => array( - 'cz' => 'Čeština', // TODO - 'de' => 'Deutsch', // TODO - 'en' => 'English', // TODO - 'en-us' => 'English (United States)', // TODO - 'es' => 'Español', // TODO - 'fr' => 'Français', // TODO - 'he' => 'עברית', // TODO - 'it' => 'Italiano', // TODO - 'ja' => '日本語', // TODO - 'ko' => '한국어', // TODO - 'nl' => 'Nederlands', // TODO - 'oc' => 'Occitan', // TODO - 'pl' => 'Polski', // TODO - 'pt-br' => 'Português (Brasil)', // TODO - 'ru' => 'Русский', // TODO - 'sk' => 'Slovenčina', // TODO - 'tr' => 'Türkçe', // TODO - 'zh-cn' => '简体中文', // TODO - 'zh-tw' => '正體中文', // TODO + 'cz' => 'Čeština', // IGNORE + 'de' => 'Deutsch', // IGNORE + 'en' => 'English', // IGNORE + 'en-us' => 'English (United States)', // IGNORE + 'es' => 'Español', // IGNORE + 'fr' => 'Français', // IGNORE + 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE + 'it' => 'Italiano', // IGNORE + 'ja' => '日本語', // IGNORE + 'ko' => '한국어', // IGNORE + 'nl' => 'Nederlands', // IGNORE + 'oc' => 'Occitan', // IGNORE + 'pl' => 'Polski', // IGNORE + 'pt-br' => 'Português (Brasil)', // IGNORE + 'ru' => 'Русский', // IGNORE + 'sk' => 'Slovenčina', // IGNORE + 'tr' => 'Türkçe', // IGNORE + 'zh-cn' => '简体中文', // IGNORE + 'zh-tw' => '正體中文', // IGNORE ), 'menu' => array( 'about' => 'About', // TODO diff --git a/app/i18n/en-us/gen.php b/app/i18n/en-us/gen.php index a818fa670..bc7f96157 100644 --- a/app/i18n/en-us/gen.php +++ b/app/i18n/en-us/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index c052f17fd..7d044959b 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', 'fr' => 'Français', 'he' => 'עברית', + 'id' => 'Bahasa Indonesia', 'it' => 'Italiano', 'ja' => '日本語', 'ko' => '한국어', diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php index 92e1331e5..6de0b5343 100755 --- a/app/i18n/es/gen.php +++ b/app/i18n/es/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 9fbd73642..b2157fa69 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/he/gen.php b/app/i18n/he/gen.php index c50f0fef7..ab1996326 100644 --- a/app/i18n/he/gen.php +++ b/app/i18n/he/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/id/admin.php b/app/i18n/id/admin.php new file mode 100644 index 000000000..eba48647b --- /dev/null +++ b/app/i18n/id/admin.php @@ -0,0 +1,216 @@ + array( + 'allow_anonymous' => 'Izinkan pembacaan anonim artikel pengguna default (%s)', + 'allow_anonymous_refresh' => 'Izinkan refresh artikel anonim', + 'api_enabled' => 'Izinkan API akses (Diperlukan untuk aplikasi seluler)', // DIRTY + 'form' => 'Web form (traditional, membutuhkan JavaScript)', + 'http' => 'HTTP (untuk pengguna tingkat lanjut HTTPS)', + 'none' => 'None (dangerous)', // TODO + 'title' => 'Authentication', // TODO + 'token' => 'Authentication token', // TODO + 'token_help' => 'Memungkinkan akses ke output RSS dari pengguna default tanpa otentikasi:', + 'type' => 'Authentication method', // TODO + 'unsafe_autologin' => 'Izinkan login otomatis yang tidak aman menggunakan format: ', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => 'Periksa izin ./data/cache direktori. HTTP server harus memiliki izin menulis.', + 'ok' => 'Izin pada direktori cache bagus.', // DIRTY + ), + 'categories' => array( + 'nok' => 'Tabel kategori dikonfigurasi secara tidak tepat.', + 'ok' => 'Tabel kategori baik-baik saja.', + ), + 'connection' => array( + 'nok' => 'Koneksi ke database tidak dapat dibuat.', + 'ok' => 'Koneksi ke database berhasil.', + ), + 'ctype' => array( + 'nok' => 'Tidak dapat menemukan library yang diperlukan untuk pemeriksaan jenis karakter (php-ctype).', + 'ok' => 'Anda memiliki library yang dibutuhkan untuk pemeriksaan jenis karakter (ctype).', + ), + 'curl' => array( + 'nok' => 'Tidak dapat menemukan cURL library (php-curl package).', + 'ok' => 'Kamu punya cURL library.', + ), + 'data' => array( + 'nok' => 'Periksa izin ./data direktori. HTTP server harus memiliki izin tulis.', + 'ok' => 'Izin pada direktori data bagus.', + ), + 'database' => 'Database installation', // TODO + 'dom' => array( + 'nok' => 'Tidak dapat menemukan library yang diperlukan untuk menelusuri DOM (php-xml package).', + 'ok' => 'Anda memiliki library yang diperlukan untuk menelusuri DOM.', + ), + 'entries' => array( + 'nok' => 'Tabel entri dikonfigurasi secara tidak benar.', + 'ok' => 'Tabel entri baik-baik saja.', + ), + 'favicons' => array( + 'nok' => 'Periksa izin on ./data/favicons direktori. HTTP server harus memiliki izin tulis.', + 'ok' => 'Izin di Direktori Favicons bagus.', + ), + 'feeds' => array( + 'nok' => 'Tabel feed dikonfigurasi secara tidak benar.', + 'ok' => 'Feed table is okay.', // TODO + ), + 'fileinfo' => array( + 'nok' => 'Tidak dapat menemukan PHP fileinfo library (fileinfo package).', + 'ok' => 'You have the fileinfo library.', // TODO + ), + 'files' => 'File installation', // TODO + 'json' => array( + 'nok' => 'Tidak dapat menemukan JSON (php-json package).', + 'ok' => 'You have the JSON extension.', // TODO + ), + 'mbstring' => array( + 'nok' => 'Tidak dapat menemukan mbstring library untuk Unicode.', + 'ok' => 'Anda memiliki mbstring library untuk Unicode.', + ), + 'pcre' => array( + 'nok' => 'Tidak dapat menemukan library untuk regular expressions (php-pcre).', + 'ok' => 'Anda memiliki library untuk regular expressions (PCRE).', + ), + 'pdo' => array( + 'nok' => 'Tidak dapat menemukan PDO salah satu drivers yang didukung (pdo_mysql, pdo_sqlite, pdo_pgsql).', + 'ok' => 'Anda memiliki PDO dan setidaknya salah satu drivers yang didukung (pdo_mysql, pdo_sqlite, pdo_pgsql).', + ), + 'php' => array( + '_' => 'PHP installation', // TODO + 'nok' => 'Your PHP version is %s but FreshRSS requires at least version %s.', // TODO + 'ok' => 'Your PHP version (%s) is compatible with FreshRSS.', // TODO + ), + 'tables' => array( + 'nok' => 'Ada satu atau lebih tabel yang hilang dalam database.', + 'ok' => 'Tabel yang sesuai ada dalam database.', + ), + 'title' => 'Installation check', // TODO + 'tokens' => array( + 'nok' => 'Periksa izin pada ./data/tokens direktori. HTTP server harus memiliki izin menulis', + 'ok' => 'Izin pada direktori token bagus.', + ), + 'users' => array( + 'nok' => 'Periksa izin ./data/users direktori. HTTP server harus memiliki izin menulis', + 'ok' => 'Izin pada direktori pengguna bagus.', + ), + 'zip' => array( + 'nok' => 'Tidak dapat menemukan ekstensi zip (php-zip package).', + 'ok' => 'Anda memiliki ekstensi zip.', + ), + ), + 'extensions' => array( + 'author' => 'Pengarang', + 'community' => 'Ekstensi komunitas yang tersedia', + 'description' => 'Keterangan', + 'disabled' => 'Disabled', // TODO + 'empty_list' => 'Tidak ada ekstensi terpasang', + 'enabled' => 'Enabled', // TODO + 'latest' => 'Installed', // TODO + 'name' => 'Name', // TODO + 'no_configure_view' => 'Ekstensi ini tidak dapat dikonfigurasi.', + 'system' => array( + '_' => 'System extensions', // TODO + 'no_rights' => 'System extension (Anda tidak memiliki izin yang diperlukan)', + ), + 'title' => 'Extensions', // TODO + 'update' => 'Pembaruan tersedia', + 'user' => 'User extensions', // TODO + 'version' => 'Version', // TODO + ), + 'stats' => array( + '_' => 'Statistik', + 'all_feeds' => 'Semua feed', + 'category' => 'Kategori', + 'entry_count' => 'Entri masuk', + 'entry_per_category' => 'Entri per kategori', + 'entry_per_day' => 'Entri per hari (30 hari terakhir)', + 'entry_per_day_of_week' => 'Per hari dalam seminggu (rata-rata: %.2f pesan)', + 'entry_per_hour' => 'Per jam (rata-rata %.2f pesan)', + 'entry_per_month' => 'Per bulan (rata -rata: %.2f pesan)', + 'entry_repartition' => 'Mengembalikan entri', + 'feed' => 'Feed', // TODO + 'feed_per_category' => 'Feed per kategori', + 'idle' => 'Feed idle', + 'main' => 'Statistik utama', + 'main_stream' => 'Aliran utama', + 'no_idle' => 'Tidak ada idle feed!', + 'number_entries' => '%d artikel', + 'percent_of_total' => '%% dari total', + 'repartition' => 'Mengembalikan artikel', + 'status_favorites' => 'Favorites', + 'status_read' => 'Read', // TODO + 'status_total' => 'Total', // TODO + 'status_unread' => 'Unread', // TODO + 'title' => 'Statistik', + 'top_feed' => 'Sepuluh feed teratas', + ), + 'system' => array( + '_' => 'Sistem konfigurasi', + 'auto-update-url' => 'Auto-update server URL', // TODO + 'cookie-duration' => array( + 'help' => 'dalam hitungan detik', + 'number' => 'Durasi untuk terus masuk', + ), + 'force_email_validation' => 'Validasi alamat email paksa', + 'instance-name' => 'Nama instansi', + 'max-categories' => 'Jumlah kategori maksimal per pengguna', + 'max-feeds' => 'Maksimal Jumlah Feed Per Pengguna', + 'registration' => array( + 'number' => 'Jumlah Akun Maks', + 'select' => array( + 'label' => 'Formulir pendaftaran', + 'option' => array( + 'noform' => 'Disabled: Tidak ada formulir pendaftaran', + 'nolimit' => 'Enabled: Tidak ada batasan akun', + 'setaccountsnumber' => 'Setel Max. jumlah akun', + ), + ), + 'status' => array( + 'disabled' => 'Form disabled', // TODO + 'enabled' => 'Form enabled', // TODO + ), + 'title' => 'Formulir Pendaftaran Pengguna', + ), + ), + 'update' => array( + '_' => 'Update system', // TODO + 'apply' => 'Apply', // TODO + 'check' => 'Periksa pembaruan baru', + 'current_version' => 'Versi FreshRSS saat ini adalah %s.', + 'last' => 'Verifikasi terakhir: %s', + 'none' => 'Tidak ada pembaruan untuk diterapkan', + 'title' => 'Perbarui Sistem', + ), + 'user' => array( + 'admin' => 'Administrator', // TODO + 'article_count' => 'Artikel', + 'back_to_manage' => '← Kembali ke Daftar Pengguna', + 'create' => 'Buat pengguna baru', + 'database_size' => 'Ukuran database', + 'email' => 'Alamat email', + 'enabled' => 'Enabled', // TODO + 'feed_count' => 'Feeds', // TODO + 'is_admin' => 'Is admin', // TODO + 'language' => 'Bahasa', + 'last_user_activity' => 'Aktivitas pengguna terakhir', + 'list' => 'Daftar pengguna', + 'number' => 'Ada %d akun telah dibuat', + 'numbers' => 'Ada %d akun dibuat', + 'password_form' => 'Password
(Untuk metode login bentuk web)', + 'password_format' => 'Setidaknya 7 karakter', + 'title' => 'Kelola pengguna', + 'username' => 'Username', // TODO + ), +); diff --git a/app/i18n/id/conf.php b/app/i18n/id/conf.php new file mode 100644 index 000000000..5e3a313db --- /dev/null +++ b/app/i18n/id/conf.php @@ -0,0 +1,283 @@ + array( + '_' => 'Archiving', // TODO + 'exception' => 'Purge exception', // TODO + 'help' => 'More options are available in the individual feed’s settings', // TODO + 'keep_favourites' => 'Never delete favorites', + 'keep_labels' => 'Never delete labels', // TODO + 'keep_max' => 'Maximum number of articles to keep', // TODO + 'keep_min_by_feed' => 'Minimum number of articles to keep per feed', // TODO + 'keep_period' => 'Maximum age of articles to keep', // TODO + 'keep_unreads' => 'Never delete unread articles', // TODO + 'maintenance' => 'Maintenance', // TODO + 'optimize' => 'Optimize database', // TODO + 'optimize_help' => 'Run occasionally to reduce the size of the database', // TODO + 'policy' => 'Purge policy', // TODO + 'policy_warning' => 'If no purge policy is selected, every article will be kept.', // TODO + 'purge_now' => 'Purge now', // TODO + 'title' => 'Archiving', // TODO + 'ttl' => 'Do not automatically refresh more often than', // TODO + ), + 'display' => array( + '_' => 'Display', // TODO + 'icon' => array( + 'bottom_line' => 'Bottom line', // TODO + 'display_authors' => 'Authors', // TODO + 'entry' => 'Article icons', // TODO + 'publication_date' => 'Date of publication', // TODO + 'related_tags' => 'Article tags', // TODO + 'sharing' => 'Sharing', // TODO + 'summary' => 'Summary', // TODO + 'top_line' => 'Top line', // TODO + ), + 'language' => 'Language', // TODO + 'notif_html5' => array( + 'seconds' => 'seconds (0 means no timeout)', // TODO + 'timeout' => 'HTML5 notification timeout', // TODO + ), + 'show_nav_buttons' => 'Show the navigation buttons', // TODO + 'theme' => 'Theme', // TODO + 'theme_not_available' => 'The “%s” theme is not available anymore. Please choose another theme.', // TODO + 'thumbnail' => array( + 'label' => 'Thumbnail', // TODO + 'landscape' => 'Landscape', // TODO + 'none' => 'None', // TODO + 'portrait' => 'Portrait', // TODO + 'square' => 'Square', // TODO + ), + 'title' => 'Display', // TODO + 'width' => array( + 'content' => 'Content width', // TODO + 'large' => 'Wide', // TODO + 'medium' => 'Medium', // TODO + 'no_limit' => 'Full Width', // TODO + 'thin' => 'Narrow', // TODO + ), + ), + 'logs' => array( + 'loglist' => array( + 'level' => 'Log Level', // TODO + 'message' => 'Log Message', // TODO + 'timestamp' => 'Timestamp', // TODO + ), + 'pagination' => array( + 'first' => 'First', // TODO + 'last' => 'Last', // TODO + 'next' => 'Next', // TODO + 'previous' => 'Previous', // TODO + ), + ), + 'profile' => array( + '_' => 'Profile management', // TODO + 'api' => 'API management', // TODO + 'delete' => array( + '_' => 'Account deletion', // TODO + 'warn' => 'Your account and all related data will be deleted.', // TODO + ), + 'email' => 'Email address', // TODO + 'password_api' => 'API password
(e.g., for mobile apps)', // TODO + 'password_form' => 'Password
(for the Web-form login method)', // TODO + 'password_format' => 'At least 7 characters', // TODO + 'title' => 'Profile', // TODO + ), + 'query' => array( + '_' => 'User queries', // TODO + 'deprecated' => 'This query is no longer valid. The referenced category or feed has been deleted.', // TODO + 'filter' => array( + '_' => 'Filter applied:', // TODO + 'categories' => 'Display by category', // TODO + 'feeds' => 'Display by feed', // TODO + 'order' => 'Sort by date', // TODO + 'search' => 'Expression', // TODO + 'state' => 'State', // TODO + 'tags' => 'Display by tag', // TODO + 'type' => 'Type', // TODO + ), + 'get_all' => 'Display all articles', // TODO + 'get_category' => 'Display “%s” category', // TODO + 'get_favorite' => 'Display favorite articles', + 'get_feed' => 'Display “%s” feed', // TODO + 'name' => 'Name', // TODO + 'no_filter' => 'No filter', // TODO + 'number' => 'Query n°%d', // TODO + 'order_asc' => 'Display oldest articles first', // TODO + 'order_desc' => 'Display newest articles first', // TODO + 'search' => 'Search for “%s”', // TODO + 'state_0' => 'Display all articles', // TODO + 'state_1' => 'Display read articles', // TODO + 'state_2' => 'Display unread articles', // TODO + 'state_3' => 'Display all articles', // TODO + 'state_4' => 'Display favorite articles', + 'state_5' => 'Display read favorite articles', + 'state_6' => 'Display unread favorite articles', + 'state_7' => 'Display favorite articles', + 'state_8' => 'Display not favorite articles', + 'state_9' => 'Display read not favorite articles', + 'state_10' => 'Display unread not favorite articles', + 'state_11' => 'Display not favorite articles', + 'state_12' => 'Display all articles', // TODO + 'state_13' => 'Display read articles', // TODO + 'state_14' => 'Display unread articles', // TODO + 'state_15' => 'Display all articles', // TODO + 'title' => 'User queries', // TODO + ), + 'reading' => array( + '_' => 'Reading', // TODO + 'after_onread' => 'After “mark all as read”,', // TODO + 'always_show_favorites' => 'Show all articles in favorites by default', + 'article' => array( + 'authors_date' => array( + '_' => 'Authors and date', // TODO + 'both' => 'In header and footer', // TODO + 'footer' => 'In footer', // TODO + 'header' => 'In header', // TODO + 'none' => 'None', // TODO + ), + 'feed_name' => array( + 'above_title' => 'Above title/tags', // TODO + 'none' => 'None', // TODO + 'with_authors' => 'In authors and date row', // TODO + ), + 'feed_title' => 'Feed title', // TODO + 'tags' => array( + '_' => 'Tags', // TODO + 'both' => 'In header and footer', // TODO + 'footer' => 'In footer', // TODO + 'header' => 'In header', // TODO + 'none' => 'None', // TODO + ), + 'tags_max' => array( + '_' => 'Max number of tags shown', // TODO + 'help' => '0 means: show all tags and do not collapse them', // TODO + ), + ), + 'articles_per_page' => 'Number of articles per page', // TODO + 'auto_load_more' => 'Load more articles at the bottom of the page', // TODO + 'auto_remove_article' => 'Hide articles after reading', // TODO + 'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions', // TODO + 'display_articles_unfolded' => 'Show articles unfolded by default', // TODO + 'display_categories_unfolded' => 'Categories to unfold', // TODO + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'articles_header_footer' => 'Articles: header/footer', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), + 'hide_read_feeds' => 'Hide categories & feeds with no unread articles (does not work with “Show all articles” configuration)', // TODO + 'img_with_lazyload' => 'Use “lazy load” mode to load pictures', // DIRTY + 'jump_next' => 'jump to next unread sibling (feed or category)', // TODO + 'mark_updated_article_unread' => 'Mark updated articles as unread', // TODO + 'number_divided_when_reader' => 'Divide by 2 in the reading view.', // TODO + 'read' => array( + 'article_open_on_website' => 'when the article is opened on its original website', // TODO + 'article_viewed' => 'when the article is viewed', // TODO + 'keep_max_n_unread' => 'Max number of articles to keep unread', // TODO + 'scroll' => 'while scrolling', // TODO + 'upon_gone' => 'when it is no longer in the upstream news feed', // TODO + 'upon_reception' => 'upon receiving the article', // TODO + 'when' => 'Mark an article as read…', // TODO + 'when_same_title' => 'if an identical title already exists in the top n newest articles', // TODO + ), + 'show' => array( + '_' => 'Articles to display', // TODO + 'active_category' => 'Active category', // TODO + 'adaptive' => 'Adjust showing', // TODO + 'all_articles' => 'Show all articles', // TODO + 'all_categories' => 'All categories', // TODO + 'no_category' => 'No category', // TODO + 'remember_categories' => 'Remember open categories', // TODO + 'unread' => 'Show only unread', // TODO + ), + 'show_fav_unread_help' => 'Applies also on labels', // TODO + 'sides_close_article' => 'Clicking outside of article text area closes the article', // TODO + 'sort' => array( + '_' => 'Sort order', // TODO + 'newer_first' => 'Newest first', // TODO + 'older_first' => 'Oldest first', // TODO + ), + 'sticky_post' => 'Stick the article to the top when opened', // TODO + 'title' => 'Reading', // TODO + 'view' => array( + 'default' => 'Default view', // TODO + 'global' => 'Global view', // TODO + 'normal' => 'Normal view', // TODO + 'reader' => 'Reading view', // TODO + ), + ), + 'sharing' => array( + '_' => 'Sharing', // TODO + 'add' => 'Add a sharing method', // TODO + 'blogotext' => 'Blogotext', // TODO + 'deprecated' => 'This service is deprecated and will be removed from FreshRSS in a future release.', // TODO + 'diaspora' => 'Diaspora*', // TODO + 'email' => 'Email', // TODO + 'facebook' => 'Facebook', // TODO + 'more_information' => 'More information', // TODO + 'print' => 'Print', // TODO + 'raindrop' => 'Raindrop.io', // TODO + 'remove' => 'Remove sharing method', // TODO + 'shaarli' => 'Shaarli', // TODO + 'share_name' => 'Share name to display', // TODO + 'share_url' => 'Share URL to use', // TODO + 'title' => 'Sharing', // TODO + 'twitter' => 'Twitter', // TODO + 'wallabag' => 'wallabag', // TODO + ), + 'shortcut' => array( + '_' => 'Shortcuts', // TODO + 'article_action' => 'Article actions', // TODO + 'auto_share' => 'Share', // TODO + 'auto_share_help' => 'If there is only one sharing mode, it is used. Otherwise, modes are accessible by their number.', // TODO + 'close_dropdown' => 'Close menus', // TODO + 'collapse_article' => 'Collapse', // TODO + 'first_article' => 'Open the first article', // TODO + 'focus_search' => 'Access search box', // TODO + 'global_view' => 'Switch to global view', // TODO + 'help' => 'Display documentation', // TODO + 'javascript' => 'JavaScript must be enabled in order to use shortcuts', // TODO + 'last_article' => 'Open the last article', // TODO + 'load_more' => 'Load more articles', // TODO + 'mark_favorite' => 'Toggle favorite', + 'mark_read' => 'Toggle read', // TODO + 'navigation' => 'Navigation', // TODO + 'navigation_help' => 'With the ⇧ Shift modifier, navigation shortcuts apply on feeds.
With the Alt ⎇ modifier, navigation shortcuts apply on categories.', // TODO + 'navigation_no_mod_help' => 'The following navigation shortcuts do not support modifiers.', // TODO + 'next_article' => 'Open the next article', // TODO + 'next_unread_article' => 'Open the next unread article', // TODO + 'non_standard' => 'Some keys (%s) may not work as shortcuts.', // TODO + 'normal_view' => 'Switch to normal view', // TODO + 'other_action' => 'Other actions', // TODO + 'previous_article' => 'Open the previous article', // TODO + 'reading_view' => 'Switch to reading view', // TODO + 'rss_view' => 'Open as RSS feed', // TODO + 'see_on_website' => 'See on original website', // TODO + 'shift_for_all_read' => '+ Alt ⎇ to mark previous articles as read
+ ⇧ Shift to mark all articles as read', // TODO + 'skip_next_article' => 'Focus next without opening', // TODO + 'skip_previous_article' => 'Focus previous without opening', // TODO + 'title' => 'Shortcuts', // TODO + 'toggle_media' => 'Play/pause media', // TODO + 'user_filter' => 'Access user queries', // TODO + 'user_filter_help' => 'If there is only one user query, it is used. Otherwise, queries are accessible by their number.', // TODO + 'views' => 'Views', // TODO + ), + 'user' => array( + 'articles_and_size' => '%s articles (%s)', // TODO + 'current' => 'Current user', // TODO + 'is_admin' => 'is administrator', // TODO + 'users' => 'Users', // TODO + ), +); diff --git a/app/i18n/id/feedback.php b/app/i18n/id/feedback.php new file mode 100644 index 000000000..44ccab23d --- /dev/null +++ b/app/i18n/id/feedback.php @@ -0,0 +1,144 @@ + 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 + ), + 'admin' => array( + 'optimization_complete' => 'Optimization complete', // TODO + ), + 'api' => array( + 'password' => array( + 'failed' => 'Your password cannot be modified', // TODO + 'updated' => 'Your password has been modified', // TODO + ), + ), + 'auth' => array( + 'login' => array( + 'invalid' => 'Login is invalid', // TODO + 'success' => 'You are connected', // TODO + ), + 'logout' => array( + 'success' => 'You are disconnected', // TODO + ), + ), + '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 + ), + 'extensions' => array( + 'already_enabled' => '%s is already enabled', // TODO + 'cannot_remove' => '%s cannot be removed', // TODO + 'disable' => array( + 'ko' => '%s cannot be disabled. Check FreshRSS logs for details.', // TODO + 'ok' => '%s is now disabled', // TODO + ), + 'enable' => array( + 'ko' => '%s cannot be enabled. Check FreshRSS logs for details.', // TODO + 'ok' => '%s is now enabled', // 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 + ), + '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 and will now be updated', // TODO + 'feeds_imported_with_errors' => 'Your feeds have been imported, but some errors occurred', // 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 import.', // TODO + ), + 'profile' => array( + 'error' => 'Your profile cannot be modified', // TODO + 'updated' => 'Your profile has been modified', // TODO + ), + 'sub' => array( + 'actualize' => 'Updating', // TODO + 'articles' => array( + 'marked_read' => 'The selected articles have been marked as read.', // TODO + 'marked_unread' => 'The articles have been marked as unread.', // TODO + ), + '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 + '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 + ), + 'feed' => array( + 'actualized' => '%s has been updated', // TODO + 'actualizeds' => 'RSS feeds have been updated', // TODO + 'added' => 'RSS feed %s has been added', // TODO + 'already_subscribed' => 'You have already subscribed to %s', // TODO + 'cache_cleared' => '%s cache has been cleared', // TODO + 'deleted' => 'Feed has been deleted', // TODO + 'error' => 'Feed cannot be updated', // TODO + 'internal_problem' => 'The newsfeed could not be added. Check FreshRSS logs for details. You can try force adding by appending #force_feed to the URL.', // TODO + 'invalid_url' => 'URL %s 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' => '%s could not be added', // TODO + 'not_found' => 'Feed cannot be found', // TODO + 'over_max' => 'You have reached your limit of feeds (%d)', // TODO + 'reloaded' => '%s has been reloaded', // TODO + '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 + ), + 'updated' => 'Feed has been updated', // TODO + ), + 'purge_completed' => 'Purge completed (%d articles deleted)', // TODO + ), + 'tag' => array( + 'created' => 'Tag “%s”has been created.', // DIRTY + 'name_exists' => 'Tag name already exists.', // TODO + 'renamed' => 'Tag “%s”has been renamed to “%s”.', // DIRTY + ), + 'update' => array( + 'can_apply' => 'FreshRSS will now be updated to the version %s.', // TODO + 'error' => 'The update process has encountered an error: %s', // TODO + 'file_is_nok' => 'New version %s available, but check permissions on %s directory. HTTP server must have have write permission', // TODO + 'finished' => 'Update complete!', // TODO + 'none' => 'No update to apply', // TODO + 'server_not_found' => 'Update server cannot be found. [%s]', // TODO + ), + 'user' => array( + 'created' => array( + '_' => 'User %s has been created', // TODO + 'error' => 'User %s cannot be created', // TODO + ), + 'deleted' => array( + '_' => 'User %s has been deleted', // TODO + 'error' => 'User %s cannot be deleted', // TODO + ), + 'updated' => array( + '_' => 'User %s has been updated', // TODO + 'error' => 'User %s has not been updated', // TODO + ), + ), +); diff --git a/app/i18n/id/gen.php b/app/i18n/id/gen.php new file mode 100644 index 000000000..c1a1b9424 --- /dev/null +++ b/app/i18n/id/gen.php @@ -0,0 +1,237 @@ + array( + 'actualize' => 'Update feeds', // TODO + 'add' => 'Add', // TODO + 'back' => '← Go back', // TODO + 'back_to_rss_feeds' => '← Go back to your RSS feeds', // TODO + 'cancel' => 'Cancel', // TODO + 'create' => 'Create', // TODO + 'delete_muted_feeds' => 'Delete muted feeds', // TODO + 'demote' => 'Demote', // TODO + 'disable' => 'Disable', // TODO + 'empty' => 'Empty', // TODO + 'enable' => 'Enable', // TODO + 'export' => 'Export', // TODO + 'filter' => 'Filter', // TODO + 'import' => 'Import', // TODO + 'load_default_shortcuts' => 'Load default shortcuts', // TODO + 'manage' => 'Manage', // TODO + 'mark_read' => 'Mark as read', // TODO + '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 + ), + 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO + 'email' => 'Email address', // TODO + 'keep_logged_in' => 'Keep me logged in (%s days)', // DIRTY + 'login' => 'Login', // TODO + 'logout' => 'Logout', // TODO + 'password' => array( + '_' => 'Password', // TODO + 'format' => 'At least 7 characters', // TODO + ), + 'registration' => array( + '_' => 'New account', // TODO + 'ask' => 'Create an account?', // TODO + 'title' => 'Account creation', // TODO + ), + 'username' => array( + '_' => 'Username', // TODO + 'format' => 'Maximum 16 alphanumeric characters', // TODO + ), + ), + '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 + 'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r', // TODO + 'Oct' => '\\O\\c\\t\\o\\b\\e\\r', // TODO + '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 + '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 + 'november' => 'November', // TODO + 'oct' => 'Oct.', // TODO + 'october' => 'October', // TODO + 'sat' => 'Sat', // TODO + 'sep' => 'Sept.', // TODO + 'september' => 'September', // TODO + 'sun' => 'Sun', // TODO + 'thu' => 'Thu', // TODO + 'today' => 'Today', // TODO + 'tue' => 'Tue', // TODO + 'wed' => 'Wed', // TODO + 'yesterday' => 'Yesterday', // TODO + ), + 'dir' => 'ltr', // TODO + 'freshrss' => array( + '_' => 'FreshRSS', // TODO + 'about' => 'About FreshRSS', // TODO + ), + '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!', + '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 + ), + 'new_article' => 'There are new articles available, click to refresh the page.', // TODO + 'should_be_activated' => 'JavaScript must be enabled', // TODO + ), + 'lang' => array( + 'cz' => 'Čeština', // IGNORE + 'de' => 'Deutsch', // IGNORE + 'en' => 'English', // IGNORE + 'en-us' => 'English (United States)', // IGNORE + 'es' => 'Español', // IGNORE + 'fr' => 'Français', // IGNORE + 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE + 'it' => 'Italiano', // IGNORE + 'ja' => '日本語', // IGNORE + 'ko' => '한국어', // IGNORE + 'nl' => 'Nederlands', // IGNORE + 'oc' => 'Occitan', // IGNORE + 'pl' => 'Polski', // IGNORE + 'pt-br' => 'Português (Brasil)', // IGNORE + 'ru' => 'Русский', // IGNORE + 'sk' => 'Slovenčina', // IGNORE + 'tr' => 'Türkçe', // IGNORE + 'zh-cn' => '简体中文', // IGNORE + '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 + 'queries' => 'User queries', // TODO + 'reading' => 'Reading', // TODO + 'search' => 'Search words or #tags', // 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 + ), + 'period' => array( + 'days' => 'days', // TODO + 'hours' => 'hours', // TODO + 'months' => 'months', // TODO + 'weeks' => 'weeks', // TODO + 'years' => 'years', // TODO + ), + 'share' => array( + 'Known' => 'Known based sites', // TODO + 'archivePH' => 'archive.ph', // TODO + 'blogotext' => 'Blogotext', // TODO + 'clipboard' => 'Clipboard', // TODO + 'diaspora' => 'Diaspora*', // TODO + 'email' => 'Email', // TODO + 'facebook' => 'Facebook', // TODO + 'gnusocial' => 'GNU social', // TODO + 'jdh' => 'Journal du hacker', // TODO + 'lemmy' => 'Lemmy', // TODO + 'linkedin' => 'LinkedIn', // TODO + 'mastodon' => 'Mastodon', // TODO + 'movim' => 'Movim', // TODO + 'pinboard' => 'Pinboard', // TODO + 'pinterest' => 'Pinterest', // TODO + 'pocket' => 'Pocket', // TODO + 'print' => 'Print', // TODO + 'raindrop' => 'Raindrop.io', // TODO + 'reddit' => 'Reddit', // TODO + 'shaarli' => 'Shaarli', // TODO + 'twitter' => 'Twitter', // TODO + 'wallabag' => 'wallabag v1', // TODO + 'wallabagv2' => 'wallabag v2', // TODO + 'web-sharing-api' => 'System sharing', // TODO + 'whatsapp' => 'Whatsapp', // TODO + 'xing' => 'Xing', // TODO + ), + '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 + ), + '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 + ), +); diff --git a/app/i18n/id/index.php b/app/i18n/id/index.php new file mode 100644 index 000000000..757c469a0 --- /dev/null +++ b/app/i18n/id/index.php @@ -0,0 +1,75 @@ + array( + '_' => 'About', // TODO + 'agpl3' => 'AGPL 3', // TODO + 'bugs_reports' => 'Bug reports', // TODO + 'credits' => 'Credits', // TODO + 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from the GNOME project. Open Sans font police has been created by Steve Matteson. FreshRSS is based on Minz, a PHP framework.', // TODO + 'freshrss_description' => 'FreshRSS is a self-hostable RSS aggregator and reader. It allows you to read and follow several news websites at a glance without the need to browse from one website to another. FreshRSS is lightweight, configurable, and easy to use.', // TODO + 'github' => 'on Github', // TODO + 'license' => 'License', // TODO + 'project_website' => 'Project website', // TODO + 'title' => 'About', // TODO + 'version' => 'Version', // TODO + ), + 'feed' => array( + 'add' => 'Please add some feeds.', // TODO + 'empty' => 'There are no articles to show.', // TODO + 'rss_of' => 'RSS feed of %s', // TODO + 'title' => 'Main stream', // TODO + 'title_fav' => 'Favorites', + 'title_global' => 'Global view', // TODO + ), + 'log' => array( + '_' => 'Logs', // TODO + 'clear' => 'Clear the logs', // TODO + 'empty' => 'Log file is empty', // TODO + 'title' => 'Logs', // TODO + ), + 'menu' => array( + 'about' => 'About FreshRSS', // TODO + 'before_one_day' => 'Older than one day', // TODO + 'before_one_week' => 'Older than one week', // TODO + 'bookmark_query' => 'Bookmark current query', // TODO + 'favorites' => 'Favorites (%s)', + 'global_view' => 'Global view', // TODO + 'main_stream' => 'Main stream', // TODO + 'mark_all_read' => 'Mark all as read', // TODO + 'mark_cat_read' => 'Mark category as read', // TODO + 'mark_feed_read' => 'Mark feed as read', // TODO + 'mark_selection_unread' => 'Mark selection as unread', // TODO + 'newer_first' => 'Newer first', // TODO + 'non-starred' => 'Show non-favorites', + 'normal_view' => 'Normal view', // TODO + 'older_first' => 'Oldest first', // TODO + 'queries' => 'User queries', // TODO + 'read' => 'Show read', // TODO + 'reader_view' => 'Reading view', // TODO + 'rss_view' => 'RSS feed', // TODO + 'search_short' => 'Search', // TODO + 'starred' => 'Show favorites', + 'stats' => 'Statistics', // TODO + 'subscription' => 'Subscription management', // TODO + 'tags' => 'My labels', // TODO + 'unread' => 'Show unread', // TODO + ), + 'share' => 'Share', // TODO + 'tag' => array( + 'related' => 'Article tags', // TODO + ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO + ), +); diff --git a/app/i18n/id/install.php b/app/i18n/id/install.php new file mode 100644 index 000000000..d64384cfc --- /dev/null +++ b/app/i18n/id/install.php @@ -0,0 +1,133 @@ + array( + 'finish' => 'Complete installation', // TODO + 'fix_errors_before' => 'Please all fix errors before continuing to the next step.', // TODO + 'keep_install' => 'Keep previous configuration', // TODO + 'next_step' => 'Go to the next step', // TODO + 'reinstall' => 'Reinstall FreshRSS', // TODO + ), + 'auth' => array( + 'form' => 'Web form (traditional, requires JavaScript)', // TODO + 'http' => 'HTTP (for advanced users with HTTPS)', // TODO + 'none' => 'None (dangerous)', // TODO + 'password_form' => 'Password
(for the Web-form login method)', // TODO + 'password_format' => 'At least 7 characters', // TODO + 'type' => 'Authentication method', // TODO + ), + 'bdd' => array( + '_' => 'Database', // TODO + 'conf' => array( + '_' => 'Database configuration', // TODO + 'ko' => 'Verify your database configuration.', // TODO + 'ok' => 'Database configuration has been saved.', // TODO + ), + 'host' => 'Host', // TODO + 'password' => 'Database password', // TODO + 'prefix' => 'Table prefix', // TODO + 'type' => 'Type of database', // TODO + 'username' => 'Database username', // TODO + ), + 'check' => array( + '_' => 'Checks', // TODO + 'already_installed' => 'We have detected that FreshRSS is already installed!', // TODO + 'cache' => array( + 'nok' => 'Check permissions on the %1$s directory for %2$s user. The HTTP server must have write permissions.', + 'ok' => 'Permissions on the cache directory are good.', // TODO + ), + 'ctype' => array( + 'nok' => 'Cannot find the required library for character type checking (php-ctype).', // TODO + 'ok' => 'You have the required library for character type checking (ctype).', // TODO + ), + 'curl' => array( + 'nok' => 'Cannot find the cURL library (php-curl package).', // TODO + 'ok' => 'You have the cURL library.', // TODO + ), + 'data' => array( + 'nok' => 'Check permissions on the %1$s directory for %2$s user. The HTTP server must have write permissions.', + 'ok' => 'Permissions on the data directory are good.', // TODO + ), + 'dom' => array( + 'nok' => 'Cannot find the required library to browse the DOM.', // TODO + 'ok' => 'You have the required library to browse the DOM.', // TODO + ), + 'favicons' => array( + 'nok' => 'Check permissions on the %1$s directory for %2$s user. The HTTP server must have write permissions.', + 'ok' => 'Permissions on the favicons directory are good.', // TODO + ), + 'fileinfo' => array( + 'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).', // TODO + 'ok' => 'You have the fileinfo library.', // TODO + ), + 'json' => array( + 'nok' => 'Cannot find the recommended library to parse JSON.', // TODO + 'ok' => 'You have the recommended library to parse JSON.', // TODO + ), + 'mbstring' => array( + 'nok' => 'Cannot find the recommended library mbstring for Unicode.', // TODO + 'ok' => 'You have the recommended library mbstring for Unicode.', // TODO + ), + 'pcre' => array( + 'nok' => 'Cannot find the required library for regular expressions (php-pcre).', // TODO + 'ok' => 'You have the required library for regular expressions (PCRE).', // TODO + ), + 'pdo' => array( + 'nok' => 'Cannot find PDO or one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', // TODO + 'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', // TODO + ), + 'php' => array( + 'nok' => 'Your PHP version is %s, but FreshRSS requires at least version %s.', // TODO + 'ok' => 'Your PHP version, %s, is compatible with FreshRSS.', // TODO + ), + 'reload' => 'Check again', // TODO + 'tmp' => array( + 'nok' => 'Check permissions on the %1$s directory for %2$s user. The HTTP server must have write permissions.', // TODO + 'ok' => 'Permissions on the temp directory are good.', // TODO + ), + 'unknown_process_username' => 'unknown', // TODO + 'users' => array( + 'nok' => 'Check permissions on the %1$s directory for %2$s user. The HTTP server must have write permissions.', // TODO + 'ok' => 'Permissions on the users directory are good.', // TODO + ), + 'xml' => array( + 'nok' => 'Cannot find the required library to parse XML.', // TODO + 'ok' => 'You have the required library to parse XML.', // TODO + ), + ), + 'conf' => array( + '_' => 'General configuration', // TODO + 'ok' => 'General configuration has been saved.', // TODO + ), + 'congratulations' => 'Congratulations!', // TODO + 'default_user' => 'Username of the default user (maximum 16 alphanumeric characters)', // TODO + 'fix_errors_before' => 'Please fix errors before continuing to the next step.', // TODO + 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled', // TODO + 'js' => array( + 'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?', // TODO + ), + 'language' => array( + '_' => 'Language', // TODO + 'choose' => 'Choose a language for FreshRSS', // TODO + 'defined' => 'Language has been defined.', // TODO + ), + 'missing_applied_migrations' => 'Something went wrong; you should create an empty file %s manually.', // TODO + 'ok' => 'The installation process was successful.', // TODO + 'session' => array( + 'nok' => 'The web server seems to be incorrectly configured for cookies required for PHP sessions!', // TODO + ), + 'step' => 'step %d', // TODO + 'steps' => 'Steps', // TODO + 'this_is_the_end' => 'This is the end', // TODO + 'title' => 'Installation · FreshRSS', // TODO +); diff --git a/app/i18n/id/sub.php b/app/i18n/id/sub.php new file mode 100644 index 000000000..7fdf5c024 --- /dev/null +++ b/app/i18n/id/sub.php @@ -0,0 +1,213 @@ + array( + 'documentation' => 'Copy the following URL to use it within an external tool.', // TODO + 'title' => 'API', // TODO + ), + 'bookmarklet' => array( + 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose “Bookmark This Link”. Then click the “Subscribe” button in any page you want to subscribe to.', // TODO + 'label' => 'Subscribe', // TODO + 'title' => 'Bookmarklet', // TODO + ), + 'category' => array( + '_' => 'Category', // TODO + 'add' => 'Add a category', // TODO + 'archiving' => 'Archiving', // TODO + 'dynamic_opml' => array( + '_' => 'Dynamic OPML', // TODO + 'help' => 'Provide the URL to an OPML file to dynamically populate this category with feeds', // TODO + ), + 'empty' => 'Empty category', // TODO + 'information' => 'Information', // TODO + 'opml_url' => 'OPML URL', // TODO + 'position' => 'Display position', // TODO + 'position_help' => 'To control category sort order', // TODO + 'title' => 'Title', // TODO + ), + 'feed' => array( + 'accept_cookies' => 'Accept cookies', // TODO + 'accept_cookies_help' => 'Allow the feed server to set cookies (stored in memory for the duration of the request only)', // TODO + 'add' => 'Add an RSS feed', // TODO + 'advanced' => 'Advanced', // TODO + 'archiving' => 'Archiving', // TODO + 'auth' => array( + 'configuration' => 'Login', // TODO + 'help' => 'Allows access to HTTP protected RSS feeds', // TODO + 'http' => 'HTTP Authentication', // TODO + 'password' => 'HTTP password', // TODO + 'username' => 'HTTP username', // TODO + ), + 'clear_cache' => 'Always clear cache', // TODO + 'content_action' => array( + '_' => 'Content action when fetching the article content', // TODO + 'append' => 'Add after existing content', // TODO + 'prepend' => 'Add before existing content', // TODO + 'replace' => 'Replace existing content', // TODO + ), + 'css_cookie' => 'Use Cookies when fetching the article content', // TODO + 'css_cookie_help' => 'Example: foo=bar; gdpr_consent=true; cookie=value', // TODO + 'css_help' => 'Retrieves truncated RSS feeds (caution, requires more time!)', // TODO + 'css_path' => 'Article CSS selector on original website', // TODO + 'css_path_filter' => array( + '_' => 'CSS selector of the elements to remove', // TODO + 'help' => 'A CSS selector may be a list such as: .footer, .aside', // TODO + ), + 'description' => 'Description', // TODO + 'empty' => 'This feed is empty. Please verify that it is still maintained.', // TODO + 'error' => 'This feed has encountered a problem. Please verify that it is always reachable then update it.', // TODO + 'filteractions' => array( + '_' => 'Filter actions', // TODO + 'help' => 'Write one search filter per line.', // TODO + ), + 'information' => 'Information', // TODO + 'keep_min' => 'Minimum number of articles to keep', // TODO + 'kind' => array( + '_' => 'Type of feed source', // TODO + 'html_xpath' => array( + '_' => 'HTML + XPath (Web scraping)', // TODO + 'feed_title' => array( + '_' => 'feed title', // TODO + 'help' => 'Example: //title or a static string: "My custom feed"', // TODO + ), + 'help' => 'XPath 1.0 is a standard query language for advanced users, and which FreshRSS supports to enable Web scraping.', // TODO + 'item' => array( + '_' => 'finding news items
(most important)', // TODO + 'help' => 'Example: //div[@class="news-item"]', // TODO + ), + 'item_author' => array( + '_' => 'item author', // TODO + 'help' => 'Can also be a static string. Example: "Anonymous"', // TODO + ), + 'item_categories' => 'item tags', // TODO + 'item_content' => array( + '_' => 'item content', // TODO + 'help' => 'Example to take the full item: .', // TODO + ), + 'item_thumbnail' => array( + '_' => 'item thumbnail', // TODO + 'help' => 'Example: descendant::img/@src', // TODO + ), + 'item_timeFormat' => array( + '_' => 'Custom date/time format', // TODO + 'help' => 'Optional. A format supported by DateTime::createFromFormat() such as d-m-Y H:i:s', // TODO + ), + 'item_timestamp' => array( + '_' => 'item date', // TODO + 'help' => 'The result will be parsed by strtotime()', // TODO + ), + 'item_title' => array( + '_' => 'item title', // TODO + 'help' => 'Use in particular the XPath axis descendant:: like descendant::h2', // TODO + ), + 'item_uid' => array( + '_' => 'item unique ID', // TODO + 'help' => 'Optional. Example: descendant::div/@data-uri', // TODO + ), + 'item_uri' => array( + '_' => 'item link (URL)', // TODO + 'help' => 'Example: descendant::a/@href', // TODO + ), + 'relative' => 'XPath (relative to item) for:', // TODO + 'xpath' => 'XPath for:', // TODO + ), + 'rss' => 'RSS / Atom (default)', // TODO + ), + 'maintenance' => array( + 'clear_cache' => 'Clear cache', // TODO + 'clear_cache_help' => 'Clear the cache for this feed.', // TODO + 'reload_articles' => 'Reload articles', // TODO + 'reload_articles_help' => 'Reload that many articles and fetch complete content if a selector is defined.', // TODO + 'title' => 'Maintenance', // TODO + ), + 'max_http_redir' => 'Max HTTP redirects', // TODO + 'max_http_redir_help' => 'Set to 0 or leave blank to disable, -1 for unlimited redirects', // TODO + 'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under %s.', // TODO + 'mute' => 'mute', // TODO + 'no_selected' => 'No feed selected.', // TODO + 'number_entries' => '%d articles', // TODO + 'priority' => array( + '_' => 'Visibility', // TODO + 'archived' => 'Do not show (archived)', // TODO + 'main_stream' => 'Show in main stream', // TODO + 'normal' => 'Show in its category', // TODO + ), + 'proxy' => 'Set a proxy for fetching this feed', // TODO + 'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: 127.0.0.1:1080)', // TODO + 'selector_preview' => array( + 'show_raw' => 'Show source code', // TODO + 'show_rendered' => 'Show content', // TODO + ), + 'show' => array( + 'all' => 'Show all feeds', // TODO + 'error' => 'Show only feeds with errors', // TODO + ), + 'showing' => array( + 'error' => 'Showing only feeds with errors', // TODO + ), + 'ssl_verify' => 'Verify SSL security', // TODO + 'stats' => 'Statistics', // TODO + 'think_to_add' => 'You may add some feeds.', // TODO + 'timeout' => 'Timeout in seconds', // TODO + 'title' => 'Title', // TODO + 'title_add' => 'Add an RSS feed', // TODO + 'ttl' => 'Do not automatically refresh more often than', // TODO + 'url' => 'Feed URL', // TODO + 'useragent' => 'Set the user agent for fetching this feed', // TODO + 'useragent_help' => 'Example: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0)', // TODO + 'validator' => 'Check the validity of the feed', // TODO + 'website' => 'Website URL', // TODO + 'websub' => 'Instant notification with WebSub', // TODO + ), + 'import_export' => array( + 'export' => 'Export', // TODO + 'export_labelled' => 'Export your labeled articles', + 'export_opml' => 'Export list of feeds (OPML)', // TODO + 'export_starred' => 'Export your favorites', + 'feed_list' => 'List of %s articles', // TODO + 'file_to_import' => 'File to import
(OPML, JSON or ZIP)', // TODO + 'file_to_import_no_zip' => 'File to import
(OPML or JSON)', // TODO + 'import' => 'Import', // TODO + 'starred_list' => 'List of favorite articles', + 'title' => 'Import / export', // TODO + ), + 'menu' => array( + 'add' => 'Add a feed or category', // TODO + 'import_export' => 'Import / export', // TODO + 'label_management' => 'Label management', // TODO + 'stats' => array( + 'idle' => 'Idle feeds', // TODO + 'main' => 'Main statistics', // TODO + 'repartition' => 'Articles repartition', // TODO + ), + 'subscription_management' => 'Subscription management', // TODO + 'subscription_tools' => 'Subscription tools', // TODO + ), + 'tag' => array( + 'name' => 'Name', // TODO + 'new_name' => 'New name', // TODO + 'old_name' => 'Old name', // TODO + ), + 'title' => array( + '_' => 'Subscription management', // TODO + 'add' => 'Add a feed or category', // TODO + 'add_category' => 'Add a category', // TODO + 'add_dynamic_opml' => 'Add dynamic OPML', // TODO + 'add_feed' => 'Add a feed', // TODO + 'add_label' => 'Add a label', // TODO + 'delete_label' => 'Delete a label', // TODO + 'feed_management' => 'RSS feeds management', // TODO + 'rename_label' => 'Rename a label', // TODO + 'subscription_tools' => 'Subscription tools', // TODO + ), +); diff --git a/app/i18n/id/user.php b/app/i18n/id/user.php new file mode 100644 index 000000000..31d210e51 --- /dev/null +++ b/app/i18n/id/user.php @@ -0,0 +1,54 @@ + array( + 'feedback' => array( + 'invalid' => 'Alamat email ini tidak valid.', + 'required' => 'Diperlukan alamat email.', + ), + 'validation' => array( + 'change_email' => 'Anda dapat mengubah alamat email Anda di halaman profil.', + 'email_sent_to' => 'Kami mengirimi Anda email di %s. Harap ikuti instruksinya untuk memvalidasi alamat Anda.', + 'feedback' => array( + 'email_failed' => 'Kami tidak dapat mengirimi Anda email karena kesalahan konfigurasi server. ', + 'email_sent' => 'Email telah dikirim ke alamat Anda.', + 'error' => 'Validasi alamat email gagal.', + 'ok' => 'Alamat email ini telah divalidasi.', + 'unnecessary' => 'Alamat email ini sudah divalidasi.', + 'wrong_token' => 'Alamat email ini gagal divalidasi karena token yang salah.', + ), + 'need_to' => 'Anda perlu memvalidasi alamat email Anda sebelum dapat menggunakan %s.', + 'resend_email' => 'Kirim ulang email', + 'title' => 'Validasi Alamat Email', + ), + ), + 'mailer' => array( + 'email_need_validation' => array( + 'body' => 'Anda baru saja mendaftar %s,Tetapi Anda masih perlu memvalidasi alamat email Anda.Untuk itu, ikuti saja tautannya:', + 'title' => 'Anda perlu memvalidasi akun Anda', + 'welcome' => 'Welcome %s,', // IGNORE + ), + ), + 'password' => array( + 'invalid' => 'Kata sandi tidak valid.', + ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'Anda harus menerima ketentuan layanan untuk dapat mendaftar.', + ), + ), + 'username' => array( + 'invalid' => 'Nama pengguna ini tidak valid.', + 'taken' => 'Nama pengguna ini, %s, telah diambil.', + ), +); diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index 8a95ca510..e3cc8a236 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/ja/gen.php b/app/i18n/ja/gen.php index 45001836b..19ec66471 100644 --- a/app/i18n/ja/gen.php +++ b/app/i18n/ja/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/ko/gen.php b/app/i18n/ko/gen.php index 24d95d2ff..ead513b2d 100644 --- a/app/i18n/ko/gen.php +++ b/app/i18n/ko/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index f09cf5467..0db2066d6 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/oc/gen.php b/app/i18n/oc/gen.php index c8244026f..e32018214 100644 --- a/app/i18n/oc/gen.php +++ b/app/i18n/oc/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/pl/gen.php b/app/i18n/pl/gen.php index 619567ac1..810e29e32 100644 --- a/app/i18n/pl/gen.php +++ b/app/i18n/pl/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/pt-br/gen.php b/app/i18n/pt-br/gen.php index c1962e80a..882b03be8 100644 --- a/app/i18n/pt-br/gen.php +++ b/app/i18n/pt-br/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index 22390efde..6ca27be03 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/sk/gen.php b/app/i18n/sk/gen.php index b730f17a8..492c5d677 100644 --- a/app/i18n/sk/gen.php +++ b/app/i18n/sk/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index a43426990..c8bad9ed2 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index 1157ba73c..80e94257e 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE diff --git a/app/i18n/zh-tw/gen.php b/app/i18n/zh-tw/gen.php index 7437dc231..77386a61a 100644 --- a/app/i18n/zh-tw/gen.php +++ b/app/i18n/zh-tw/gen.php @@ -145,6 +145,7 @@ return array( 'es' => 'Español', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE 'it' => 'Italiano', // IGNORE 'ja' => '日本語', // IGNORE 'ko' => '한국어', // IGNORE -- cgit v1.2.3