From fce67483d673ce0fd9d23372b592f6f04d95b610 Mon Sep 17 00:00:00 2001 From: Miguel Ribeiro Date: Sun, 27 Oct 2024 11:49:48 +0100 Subject: [PATCH 1/2] feat: settings to allow to ignore certificates for some notification methods --- .../sendcancellationnotifications.php | 12 ++ endpoints/cronjobs/sendnotifications.php | 18 +++ .../notifications/savegotifynotifications.php | 8 +- .../notifications/saventfynotifications.php | 8 +- .../savewebhooknotifications.php | 8 +- .../notifications/testgotifynotifications.php | 6 + .../notifications/testntfynotifications.php | 6 + .../testwebhooknotifications.php | 6 + includes/i18n/de.php | 1 + includes/i18n/el.php | 1 + includes/i18n/en.php | 1 + includes/i18n/es.php | 1 + includes/i18n/fr.php | 1 + includes/i18n/it.php | 1 + includes/i18n/jp.php | 129 ++++++++--------- includes/i18n/ko.php | 1 + includes/i18n/pl.php | 1 + includes/i18n/pt.php | 1 + includes/i18n/pt_br.php | 1 + includes/i18n/ru.php | 131 +++++++++--------- includes/i18n/sl.php | 131 +++++++++--------- includes/i18n/sr.php | 131 +++++++++--------- includes/i18n/sr_lat.php | 131 +++++++++--------- includes/i18n/tr.php | 1 + includes/i18n/vi.php | 129 ++++++++--------- includes/i18n/zh_cn.php | 1 + includes/i18n/zh_tw.php | 1 + includes/version.php | 2 +- migrations/000030.php | 37 +++++ scripts/notifications.js | 25 +++- settings.php | 21 +++ 31 files changed, 547 insertions(+), 405 deletions(-) create mode 100644 migrations/000030.php diff --git a/endpoints/cronjobs/sendcancellationnotifications.php b/endpoints/cronjobs/sendcancellationnotifications.php index 056e1f6e5..b07cba326 100644 --- a/endpoints/cronjobs/sendcancellationnotifications.php +++ b/endpoints/cronjobs/sendcancellationnotifications.php @@ -70,6 +70,7 @@ $gotifyNotificationsEnabled = $row['enabled']; $gotify['serverUrl'] = $row["url"]; $gotify['appToken'] = $row["token"]; + $gotify['ignore_ssl'] = $row["ignore_ssl"]; } // Check if Telegram notifications are enabled and get the settings @@ -107,6 +108,7 @@ $ntfy['host'] = $row["host"]; $ntfy['topic'] = $row["topic"]; $ntfy['headers'] = $row["headers"]; + $ntfy['ignore_ssl'] = $row["ignore_ssl"]; } $notificationsEnabled = $emailNotificationsEnabled || $gotifyNotificationsEnabled || $telegramNotificationsEnabled || @@ -335,6 +337,11 @@ ) ); + if ($gotify['ignore_ssl']) { + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + } + $result = curl_exec($ch); if ($result === false) { echo "Error sending notifications: " . curl_error($ch) . "
"; @@ -468,6 +475,11 @@ curl_setopt($ch, CURLOPT_HTTPHEADER, $customheaders); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + if ($ntfy['ignore_ssl']) { + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + } + $response = curl_exec($ch); curl_close($ch); diff --git a/endpoints/cronjobs/sendnotifications.php b/endpoints/cronjobs/sendnotifications.php index f76449d5a..f063f6588 100644 --- a/endpoints/cronjobs/sendnotifications.php +++ b/endpoints/cronjobs/sendnotifications.php @@ -88,6 +88,7 @@ $gotifyNotificationsEnabled = $row['enabled']; $gotify['serverUrl'] = $row["url"]; $gotify['appToken'] = $row["token"]; + $gotify['ignore_ssl'] = $row["ignore_ssl"]; } // Check if Telegram notifications are enabled and get the settings @@ -125,6 +126,7 @@ $ntfy['host'] = $row["host"]; $ntfy['topic'] = $row["topic"]; $ntfy['headers'] = $row["headers"]; + $ntfy['ignore_ssl'] = $row["ignore_ssl"]; } // Check if Webhook notifications are enabled and get the settings @@ -147,6 +149,7 @@ $webhook['iterator'] = "{{" . $webhook['iterator'] . "}}"; } } + $webhook['ignore_ssl'] = $row["ignore_ssl"]; } $notificationsEnabled = $emailNotificationsEnabled || $gotifyNotificationsEnabled || $telegramNotificationsEnabled || @@ -387,6 +390,11 @@ ) ); + if ($gotify['ignore_ssl']) { + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + } + $result = curl_exec($ch); if ($result === false) { echo "Error sending notifications: " . curl_error($ch) . "
"; @@ -523,6 +531,11 @@ curl_setopt($ch, CURLOPT_HTTPHEADER, $customheaders); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + if ($ntfy['ignore_ssl']) { + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + } + $response = curl_exec($ch); curl_close($ch); @@ -598,6 +611,11 @@ } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + if ($webhook['ignore_ssl']) { + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + } + $response = curl_exec($ch); curl_close($ch); diff --git a/endpoints/notifications/savegotifynotifications.php b/endpoints/notifications/savegotifynotifications.php index 77a5db23a..3a737d73d 100644 --- a/endpoints/notifications/savegotifynotifications.php +++ b/endpoints/notifications/savegotifynotifications.php @@ -25,6 +25,7 @@ $enabled = $data["enabled"]; $url = $data["gotify_url"]; $token = $data["token"]; + $ignore_ssl = $data["ignore_ssl"]; $query = "SELECT COUNT(*) FROM gotify_notifications WHERE user_id = :userId"; $stmt = $db->prepare($query); @@ -41,11 +42,11 @@ $row = $result->fetchArray(); $count = $row[0]; if ($count == 0) { - $query = "INSERT INTO gotify_notifications (enabled, url, token, user_id) - VALUES (:enabled, :url, :token, :userId)"; + $query = "INSERT INTO gotify_notifications (enabled, url, token, user_id, ignore_ssl) + VALUES (:enabled, :url, :token, :userId, :ignore_ssl)"; } else { $query = "UPDATE gotify_notifications - SET enabled = :enabled, url = :url, token = :token WHERE user_id = :userId"; + SET enabled = :enabled, url = :url, token = :token, ignore_ssl = :ignore_ssl WHERE user_id = :userId"; } $stmt = $db->prepare($query); @@ -53,6 +54,7 @@ $stmt->bindValue(':url', $url, SQLITE3_TEXT); $stmt->bindValue(':token', $token, SQLITE3_TEXT); $stmt->bindValue(':userId', $userId, SQLITE3_INTEGER); + $stmt->bindValue(':ignore_ssl', $ignore_ssl, SQLITE3_INTEGER); if ($stmt->execute()) { $response = [ diff --git a/endpoints/notifications/saventfynotifications.php b/endpoints/notifications/saventfynotifications.php index 0797e04a6..ce160ade9 100644 --- a/endpoints/notifications/saventfynotifications.php +++ b/endpoints/notifications/saventfynotifications.php @@ -27,6 +27,7 @@ $host = $data["host"]; $topic = $data["topic"]; $headers = $data["headers"]; + $ignore_ssl = $data["ignore_ssl"]; $query = "SELECT COUNT(*) FROM ntfy_notifications WHERE user_id = :userId"; $stmt = $db->prepare($query); @@ -43,11 +44,11 @@ $row = $result->fetchArray(); $count = $row[0]; if ($count == 0) { - $query = "INSERT INTO ntfy_notifications (enabled, host, topic, headers, user_id) - VALUES (:enabled, :host, :topic, :headers, :userId)"; + $query = "INSERT INTO ntfy_notifications (enabled, host, topic, headers, user_id, ignore_ssl) + VALUES (:enabled, :host, :topic, :headers, :userId, :ignore_ssl)"; } else { $query = "UPDATE ntfy_notifications - SET enabled = :enabled, host = :host, topic = :topic, headers = :headers WHERE user_id = :userId"; + SET enabled = :enabled, host = :host, topic = :topic, headers = :headers, ignore_ssl = :ignore_ssl WHERE user_id = :userId"; } $stmt = $db->prepare($query); @@ -55,6 +56,7 @@ $stmt->bindValue(':host', $host, SQLITE3_TEXT); $stmt->bindValue(':topic', $topic, SQLITE3_TEXT); $stmt->bindValue(':headers', $headers, SQLITE3_TEXT); + $stmt->bindValue(':ignore_ssl', $ignore_ssl, SQLITE3_INTEGER); $stmt->bindValue(':userId', $userId, SQLITE3_INTEGER); if ($stmt->execute()) { diff --git a/endpoints/notifications/savewebhooknotifications.php b/endpoints/notifications/savewebhooknotifications.php index b4815ee44..e542d8e19 100644 --- a/endpoints/notifications/savewebhooknotifications.php +++ b/endpoints/notifications/savewebhooknotifications.php @@ -27,6 +27,7 @@ $headers = $data["headers"]; $payload = $data["payload"]; $iterator = $data["iterator"]; + $ignore_ssl = $data["ignore_ssl"]; $query = "SELECT COUNT(*) FROM webhook_notifications WHERE user_id = :userId"; $stmt = $db->prepare($query); @@ -43,11 +44,11 @@ $row = $result->fetchArray(); $count = $row[0]; if ($count == 0) { - $query = "INSERT INTO webhook_notifications (enabled, url, headers, payload, iterator, user_id) - VALUES (:enabled, :url, :headers, :payload, :iterator, :userId)"; + $query = "INSERT INTO webhook_notifications (enabled, url, headers, payload, iterator, user_id, ignore_ssl) + VALUES (:enabled, :url, :headers, :payload, :iterator, :userId, :ignore_ssl)"; } else { $query = "UPDATE webhook_notifications - SET enabled = :enabled, url = :url, headers = :headers, payload = :payload, iterator = :iterator WHERE user_id = :userId"; + SET enabled = :enabled, url = :url, headers = :headers, payload = :payload, iterator = :iterator, ignore_ssl = :ignore_ssl WHERE user_id = :userId"; } $stmt = $db->prepare($query); @@ -56,6 +57,7 @@ $stmt->bindValue(':headers', $headers, SQLITE3_TEXT); $stmt->bindValue(':payload', $payload, SQLITE3_TEXT); $stmt->bindValue(':iterator', $iterator, SQLITE3_TEXT); + $stmt->bindValue(':ignore_ssl', $ignore_ssl, SQLITE3_INTEGER); $stmt->bindValue(':userId', $userId, SQLITE3_INTEGER); if ($stmt->execute()) { diff --git a/endpoints/notifications/testgotifynotifications.php b/endpoints/notifications/testgotifynotifications.php index 88e5a5697..16f6d03e8 100644 --- a/endpoints/notifications/testgotifynotifications.php +++ b/endpoints/notifications/testgotifynotifications.php @@ -29,6 +29,7 @@ $url = $data["gotify_url"]; $token = $data["token"]; + $ignore_ssl = $data["ignore_ssl"]; $ch = curl_init(); @@ -42,6 +43,11 @@ ])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + if ($ignore_ssl) { + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + } + // Execute the request $response = curl_exec($ch); diff --git a/endpoints/notifications/testntfynotifications.php b/endpoints/notifications/testntfynotifications.php index 26f0ba0e6..4d5c3cf7a 100644 --- a/endpoints/notifications/testntfynotifications.php +++ b/endpoints/notifications/testntfynotifications.php @@ -34,6 +34,7 @@ }, array_keys($headers), $headers); $url = "$host/$topic"; + $ignore_ssl = $data["ignore_ssl"]; // Set the message parameters $message = translate('test_notification', $i18n); @@ -47,6 +48,11 @@ curl_setopt($ch, CURLOPT_HTTPHEADER, $customheaders); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + if ($ignore_ssl) { + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + } + // Execute the request $response = curl_exec($ch); diff --git a/endpoints/notifications/testwebhooknotifications.php b/endpoints/notifications/testwebhooknotifications.php index 8148f620d..9e8fc24e7 100644 --- a/endpoints/notifications/testwebhooknotifications.php +++ b/endpoints/notifications/testwebhooknotifications.php @@ -28,6 +28,7 @@ $url = $data["url"]; $payload = $data["payload"]; $customheaders = json_decode($data["customheaders"], true); + $ignore_ssl = $data["ignore_ssl"]; $ch = curl_init(); @@ -40,6 +41,11 @@ } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + if ($ignore_ssl) { + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + } + // Execute the request $response = curl_exec($ch); diff --git a/includes/i18n/de.php b/includes/i18n/de.php index 2fe140b8f..3fb1bedbd 100644 --- a/includes/i18n/de.php +++ b/includes/i18n/de.php @@ -178,6 +178,7 @@ "pushover_user_key" => "Pushover User Key", 'host' => "Host", 'topic' => "Topic", + "ignore_ssl_errors" => "SSL Fehler ignorieren", "categories" => "Kategorien", "save_category" => "Kategorie speichern", "delete_category" => "Kategorie löschen", diff --git a/includes/i18n/el.php b/includes/i18n/el.php index de41bd6c7..df946d512 100644 --- a/includes/i18n/el.php +++ b/includes/i18n/el.php @@ -178,6 +178,7 @@ "pushover_user_key" => "Pushover User Key", 'host' => "Host", 'topic' => "Θέμα", + "ignore_ssl_errors" => "Αγνόηση σφαλμάτων SSL", "categories" => "Κατηγορίες", "save_category" => "Αποθήκευση κατηγορίας", "delete_category" => "Διαγραφή κατηγορίας", diff --git a/includes/i18n/en.php b/includes/i18n/en.php index abeb0648b..47ce3a99e 100644 --- a/includes/i18n/en.php +++ b/includes/i18n/en.php @@ -179,6 +179,7 @@ "pushover_user_key" => "Pushover User Key", 'host' => "Host", 'topic' => "Topic", + "ignore_ssl_errors" => "Ignore SSL Errors", "categories" => "Categories", "save_category" => "Save Category", "delete_category" => "Delete Category", diff --git a/includes/i18n/es.php b/includes/i18n/es.php index e79e354f2..b83327d8f 100644 --- a/includes/i18n/es.php +++ b/includes/i18n/es.php @@ -178,6 +178,7 @@ "pushover_user_key" => "Clave de usuario", 'host' => "Host", 'topic' => "Topico", + "ignore_ssl_errors" => "Ignorar errores SSL", "categories" => "Categorías", "save_category" => "Guardar Categoría", "delete_category" => "Eliminar Categoría", diff --git a/includes/i18n/fr.php b/includes/i18n/fr.php index 79a63f252..b298b1f9a 100644 --- a/includes/i18n/fr.php +++ b/includes/i18n/fr.php @@ -178,6 +178,7 @@ "pushover_user_key" => "Clé utilisateur Pushover", 'host' => "Hôte", 'topic' => "Sujet", + "ignore_ssl_errors" => "Ignorer les erreurs SSL", "categories" => "Catégories", "save_category" => "Enregistrer la catégorie", "delete_category" => "Supprimer la catégorie", diff --git a/includes/i18n/it.php b/includes/i18n/it.php index 9f1b685cb..db8724cb5 100644 --- a/includes/i18n/it.php +++ b/includes/i18n/it.php @@ -185,6 +185,7 @@ "pushover_user_key" => "Chiave utente", 'host' => "Host", 'topic' => "Topic", + "ignore_ssl_errors" => "Ignora errori SSL", 'categories' => 'Categorie', 'save_category' => 'Salva categoria', 'delete_category' => 'Elimina categoria', diff --git a/includes/i18n/jp.php b/includes/i18n/jp.php index 7ba8a3741..ac8945453 100644 --- a/includes/i18n/jp.php +++ b/includes/i18n/jp.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "ログインする前にアカウントを作成する必要があります", - 'username' => "ユーザー名", - 'password' => "パスワード", + "username" => "ユーザー名", + "password" => "パスワード", "email" => "メール", "confirm_password" => "パスワードの確認", "main_currency" => "主要通貨", @@ -16,42 +16,42 @@ "register" => "登録する", "restore_database" => "データベースをリストア", // Login Page - 'please_login' => "ログインしてください", - 'stay_logged_in' => "ログインしたままにする (30日)", - 'login' => "ログイン", - 'login_failed' => "ログイン情報が間違っています", - 'registration_successful' => "登録に成功", - 'user_email_waiting_verification' => "Eメールの確認が必要です。メールを確認してください。", + "please_login" => "ログインしてください", + "stay_logged_in" => "ログインしたままにする (30日)", + "login" => "ログイン", + "login_failed" => "ログイン情報が間違っています", + "registration_successful" => "登録に成功", + "user_email_waiting_verification" => "Eメールの確認が必要です。メールを確認してください。", // Password Reset Page - 'forgot_password' => "パスワードを忘れた場合", - 'reset_password' => "パスワードをリセット", - 'reset_sent_check_email' => "パスワードリセットリンクが送信されました。メールを確認してください。", - 'password_reset_successful' => "パスワードリセットに成功", + "forgot_password" => "パスワードを忘れた場合", + "reset_password" => "パスワードをリセット", + "reset_sent_check_email" => "パスワードリセットリンクが送信されました。メールを確認してください。", + "password_reset_successful" => "パスワードリセットに成功", // Header - 'profile' => "プロフィール", - 'subscriptions' => "定期購入", - 'stats' => "統計", - 'settings' => "設定", - 'admin' => "管理者", - 'about' => "About", - 'logout' => "ログアウト", + "profile" => "プロフィール", + "subscriptions" => "定期購入", + "stats" => "統計", + "settings" => "設定", + "admin" => "管理者", + "about" => "About", + "logout" => "ログアウト", // Subscriptions page "subscription" => "定期購入", "no_subscriptions_yet" => "まだ定期購入がありません", "add_first_subscription" => "最初の定期購入を追加する", - 'new_subscription' => "新しい定期購入", - 'search' => "検索", - 'state' => "状態", - 'alphanumeric' => "アルファベット順", - 'sort' => "並べ替え", - 'name' => "名前", - 'last_added' => "最終追加日", - 'price' => "金額", - 'next_payment' => "次回支払い", - 'inactive' => "サブスクリプションを無効にする", - 'member' => "メンバー", - 'category' => "カテゴリ", - 'payment_method' => "支払い方法", + "new_subscription" => "新しい定期購入", + "search" => "検索", + "state" => "状態", + "alphanumeric" => "アルファベット順", + "sort" => "並べ替え", + "name" => "名前", + "last_added" => "最終追加日", + "price" => "金額", + "next_payment" => "次回支払い", + "inactive" => "サブスクリプションを無効にする", + "member" => "メンバー", + "category" => "カテゴリ", + "payment_method" => "支払い方法", "Daily" => "毎日", "Weekly" => "毎週", "Monthly" => "毎月", @@ -91,39 +91,39 @@ "cancel" => "キャンセル", "upload_logo" => "ロゴのアップロード", // Statistics page - 'cant_convert_currency' => "購読に複数の通貨を使用しています。有効で正確な統計を取るには、設定ページでFixer API Keyを設定してください。", - 'general_statistics' => "一般統計", - 'active_subscriptions' => "アクティブな定期購入", - 'inactive_subscriptions' => "非アクティブなサブスクリプション", - 'monthly_cost' => "月間費用", - 'yearly_cost' => "年間費用", - 'average_monthly' => "月額平均費用", - 'most_expensive' => "最も高額な定期購入費用", - 'amount_due' => "今月の支払額", - 'percentage_budget_used' => "予算使用率", - 'budget_remaining' => "予算残高", - 'amount_over_budget' => "予算オーバー", - 'monthly_savings' => "月間節約 (非アクティブな定期購入)", - 'yearly_savings' => "年間節約 (非アクティブな定期購入)", - 'split_views' => "分割表示", - 'category_split' => "カテゴリ別", - 'household_split' => "世帯別", - 'payment_method_split' => "支払い方法別", + "cant_convert_currency" => "購読に複数の通貨を使用しています。有効で正確な統計を取るには、設定ページでFixer API Keyを設定してください。", + "general_statistics" => "一般統計", + "active_subscriptions" => "アクティブな定期購入", + "inactive_subscriptions" => "非アクティブなサブスクリプション", + "monthly_cost" => "月間費用", + "yearly_cost" => "年間費用", + "average_monthly" => "月額平均費用", + "most_expensive" => "最も高額な定期購入費用", + "amount_due" => "今月の支払額", + "percentage_budget_used" => "予算使用率", + "budget_remaining" => "予算残高", + "amount_over_budget" => "予算オーバー", + "monthly_savings" => "月間節約 (非アクティブな定期購入)", + "yearly_savings" => "年間節約 (非アクティブな定期購入)", + "split_views" => "分割表示", + "category_split" => "カテゴリ別", + "household_split" => "世帯別", + "payment_method_split" => "支払い方法別", // About page - 'about_and_credits' => "概要とクレジット", + "about_and_credits" => "概要とクレジット", "credits" => "クレジット", - 'license' => "ライセンス", - 'issues_and_requests' => "問題と要望", - 'the_author' => "著者", - 'icons' => "アイコン", - 'payment_icons' => "支払いアイコン", + "license" => "ライセンス", + "issues_and_requests" => "問題と要望", + "the_author" => "著者", + "icons" => "アイコン", + "payment_icons" => "支払いアイコン", // Profile page - 'upload_avatar' => "アバターをアップロードする", - 'file_type_error' => "ファイルタイプが許可されていません", - 'user_details' => "ユーザー詳細", - 'two_factor_authentication' => "2要素認証", - 'two_factor_info' => "二要素認証は、アカウントに追加のセキュリティレイヤーを追加します。QR コードをスキャンするには、Google Authenticator、Authy、Ente Auth などの認証アプリが必要です。", - 'two_factor_enabled_info' => "お客様のアカウントは二要素認証で保護されています。上のボタンをクリックして無効にすることができます。", + "upload_avatar" => "アバターをアップロードする", + "file_type_error" => "ファイルタイプが許可されていません", + "user_details" => "ユーザー詳細", + "two_factor_authentication" => "2要素認証", + "two_factor_info" => "二要素認証は、アカウントに追加のセキュリティレイヤーを追加します。QR コードをスキャンするには、Google Authenticator、Authy、Ente Auth などの認証アプリが必要です。", + "two_factor_enabled_info" => "お客様のアカウントは二要素認証で保護されています。上のボタンをクリックして無効にすることができます。", "enable_two_factor_authentication" => "二要素認証を有効にする", "2fa_already_enabled" => "2要素認証は既に有効です", "totp_code_incorrect" => "TOTPコードが正しくありません", @@ -176,8 +176,9 @@ "discord_bot_avatar_url" => "DiscordボットアバターURL", "pushover" => "Pushover", "pushover_user_key" => "Pushoverユーザーキー", - 'host' => "ホスト", - 'topic' => "トピック", + "host" => "ホスト", + "topic" => "トピック", + "ignore_ssl_errors" => "SSLエラーを無視", "categories" => "カテゴリ", "save_category" => "カテゴリを保存", "delete_category" => "カテゴリを削除", diff --git a/includes/i18n/ko.php b/includes/i18n/ko.php index 339211976..be5dec8c3 100644 --- a/includes/i18n/ko.php +++ b/includes/i18n/ko.php @@ -179,6 +179,7 @@ ~ 'host' => "호스트", 'topic' => "토픽", + "ignore_ssl_errors" => "SSL 에러 무시", "categories" => "카테고리", "save_category" => "카테고리 저장", "delete_category" => "카테고리 삭제", diff --git a/includes/i18n/pl.php b/includes/i18n/pl.php index 41d9684fb..c918274c3 100644 --- a/includes/i18n/pl.php +++ b/includes/i18n/pl.php @@ -178,6 +178,7 @@ "pushover_user_key" => "Klucz użytkownika", 'host' => "Host", 'topic' => "Temat", + "ignore_ssl_errors" => "Ignoruj błędy SSL", "categories" => "Kategorie", "save_category" => "Zapisz kategorię", "delete_category" => "Usuń kategorię", diff --git a/includes/i18n/pt.php b/includes/i18n/pt.php index eb2050fa1..b53fd38ad 100644 --- a/includes/i18n/pt.php +++ b/includes/i18n/pt.php @@ -178,6 +178,7 @@ "pushover_user_key" => "Chave de Utilizador Pushover", 'host' => "Host", 'topic' => "Tópico", + "ignore_ssl_errors" => "Ignorar erros SSL", "categories" => "Categorias", "save_category" => "Guardar Categoria", "delete_category" => "Apagar Categoria", diff --git a/includes/i18n/pt_br.php b/includes/i18n/pt_br.php index 63f7eac49..cf5e7bee5 100644 --- a/includes/i18n/pt_br.php +++ b/includes/i18n/pt_br.php @@ -178,6 +178,7 @@ "pushover_user_key" => "Chave do Usuário", 'host' => "Host", 'topic' => "Tópico", + "ignore_ssl_errors" => "Ignorar erros SSL", "categories" => "Categorias", "save_category" => "Salvar categoria", "delete_category" => "Excluir categoria", diff --git a/includes/i18n/ru.php b/includes/i18n/ru.php index 7f00ce9cb..3d8827675 100644 --- a/includes/i18n/ru.php +++ b/includes/i18n/ru.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "Вам необходимо создать учетную запись, прежде чем вы сможете войти в систему", - 'username' => "Имя пользователя", - 'password' => "Пароль", + "username" => "Имя пользователя", + "password" => "Пароль", "email" => "E-mail", "confirm_password" => "Подтвердите пароль", "main_currency" => "Основная валюта", @@ -16,42 +16,42 @@ "register" => "Регистрация", "restore_database" => "Восстановить базу данных", // Login Page - 'please_login' => "Пожалуйста, войдите", - 'stay_logged_in' => "Оставаться в системе (30 дней)", - 'login' => "Авторизоваться", - 'login_failed' => "Данные для входа неверны", - 'registration_successful' => "Регистрация прошла успешно", - 'user_email_waiting_verification' => "Ваша электронная почта нуждается в проверке. Пожалуйста, проверьте свою электронную почту", + "please_login" => "Пожалуйста, войдите", + "stay_logged_in" => "Оставаться в системе (30 дней)", + "login" => "Авторизоваться", + "login_failed" => "Данные для входа неверны", + "registration_successful" => "Регистрация прошла успешно", + "user_email_waiting_verification" => "Ваша электронная почта нуждается в проверке. Пожалуйста, проверьте свою электронную почту", // Password Reset Page - 'forgot_password' => "Забыли пароль?", - 'reset_password' => "Сбросить пароль", - 'reset_sent_check_email' => "Ссылка для сброса пароля отправлена на вашу электронную почту", - 'password_reset_successful' => "Пароль успешно сброшен", + "forgot_password" => "Забыли пароль?", + "reset_password" => "Сбросить пароль", + "reset_sent_check_email" => "Ссылка для сброса пароля отправлена на вашу электронную почту", + "password_reset_successful" => "Пароль успешно сброшен", // Header - 'profile' => "Профиль", - 'subscriptions' => "Подписки", - 'stats' => "Статистика", - 'settings' => "Настройки", - 'admin' => "Администратор", - 'about' => "О программе", - 'logout' => "Выйти", + "profile" => "Профиль", + "subscriptions" => "Подписки", + "stats" => "Статистика", + "settings" => "Настройки", + "admin" => "Администратор", + "about" => "О программе", + "logout" => "Выйти", // Subscriptions page "subscription" => "Подписка", "no_subscriptions_yet" => "У вас пока нет подписок", "add_first_subscription" => "Добавить первую подписку", - 'new_subscription' => "Новая подписка", - 'search' => "Поиск", - 'state' => "Состояние", - 'alphanumeric' => "Алфавитный порядок", - 'sort' => "Сортировка", - 'name' => "Имя", - 'last_added' => "Дата создания", - 'price' => "Стоимость", - 'next_payment' => "Следующий платеж", - 'inactive' => "Отключить подписку", - 'member' => "Член семьи", - 'category' => "Категория", - 'payment_method' => "Способ оплаты", + "new_subscription" => "Новая подписка", + "search" => "Поиск", + "state" => "Состояние", + "alphanumeric" => "Алфавитный порядок", + "sort" => "Сортировка", + "name" => "Имя", + "last_added" => "Дата создания", + "price" => "Стоимость", + "next_payment" => "Следующий платеж", + "inactive" => "Отключить подписку", + "member" => "Член семьи", + "category" => "Категория", + "payment_method" => "Способ оплаты", "Daily" => "День", "Weekly" => "Неделя", "Monthly" => "Месяц", @@ -91,39 +91,39 @@ "cancel" => "Отмена", "upload_logo" => "Загрузить логотип", // Statistics page - 'cant_convert_currency' => "Вы используете несколько валют в своих подписках. Для получения достоверной и точной статистики, пожалуйста, установите API-ключ Fixer на странице настроек.", - 'general_statistics' => "Общая статистика", - 'active_subscriptions' => "Активные подписки", - 'inactive_subscriptions' => "Неактивные подписки", - 'monthly_cost' => "Ежемесячная стоимость", - 'yearly_cost' => "Годовая стоимость", - 'average_monthly' => "Средняя ежемесячная стоимость подписки", - 'most_expensive' => "Самая дорогая стоимость подписки", - 'amount_due' => "Сумма к оплате в этом месяце", - 'percentage_budget_used' => "Процент использования бюджета", - 'budget_remaining' => "Оставшийся бюджет", - 'amount_over_budget' => "Сумма превышения бюджета", - 'monthly_savings' => "Ежемесячная экономия (при неактивных подписках)", - 'yearly_savings' => "Годовая экономия (при неактивных подписках)", - 'split_views' => "Подробная статистика", - 'category_split' => "По категориям", - 'household_split' => "По членам семьи", - 'payment_method_split' => "По способам оплаты", + "cant_convert_currency" => "Вы используете несколько валют в своих подписках. Для получения достоверной и точной статистики, пожалуйста, установите API-ключ Fixer на странице настроек.", + "general_statistics" => "Общая статистика", + "active_subscriptions" => "Активные подписки", + "inactive_subscriptions" => "Неактивные подписки", + "monthly_cost" => "Ежемесячная стоимость", + "yearly_cost" => "Годовая стоимость", + "average_monthly" => "Средняя ежемесячная стоимость подписки", + "most_expensive" => "Самая дорогая стоимость подписки", + "amount_due" => "Сумма к оплате в этом месяце", + "percentage_budget_used" => "Процент использования бюджета", + "budget_remaining" => "Оставшийся бюджет", + "amount_over_budget" => "Сумма превышения бюджета", + "monthly_savings" => "Ежемесячная экономия (при неактивных подписках)", + "yearly_savings" => "Годовая экономия (при неактивных подписках)", + "split_views" => "Подробная статистика", + "category_split" => "По категориям", + "household_split" => "По членам семьи", + "payment_method_split" => "По способам оплаты", // About page - 'about_and_credits' => "О компании и авторах", + "about_and_credits" => "О компании и авторах", "credits" => "Благодарности", - 'license' => "Лицензия", - 'issues_and_requests' => "Проблемы и вопросы", - 'the_author' => "Автор", - 'icons' => "Значки", - 'payment_icons' => "Значки способов оплаты", + "license" => "Лицензия", + "issues_and_requests" => "Проблемы и вопросы", + "the_author" => "Автор", + "icons" => "Значки", + "payment_icons" => "Значки способов оплаты", // Profile page - 'upload_avatar' => "Загрузить аватар", - 'file_type_error' => "Указанный тип файла не поддерживается.", - 'user_details' => "Данные пользователя", - 'two_factor_authentication' => "Двухфакторная аутентификация", - 'two_factor_info' => "Двухфакторная аутентификация добавляет дополнительный уровень безопасности к вашей учетной записи.
Для сканирования QR-кода вам понадобится приложение-аутентификатор, например Google Authenticator, Authy или Ente Auth.", - 'two_factor_enabled_info' => "Ваш аккаунт защищен с помощью двухфакторной аутентификации. Вы можете отключить ее, нажав на кнопку выше.", + "upload_avatar" => "Загрузить аватар", + "file_type_error" => "Указанный тип файла не поддерживается.", + "user_details" => "Данные пользователя", + "two_factor_authentication" => "Двухфакторная аутентификация", + "two_factor_info" => "Двухфакторная аутентификация добавляет дополнительный уровень безопасности к вашей учетной записи.
Для сканирования QR-кода вам понадобится приложение-аутентификатор, например Google Authenticator, Authy или Ente Auth.", + "two_factor_enabled_info" => "Ваш аккаунт защищен с помощью двухфакторной аутентификации. Вы можете отключить ее, нажав на кнопку выше.", "enable_two_factor_authentication" => "Включить двухфакторную аутентификацию", "2fa_already_enabled" => "Двухфакторная аутентификация уже включена", "totp_code_incorrect" => "Код TOTP неверен", @@ -144,7 +144,7 @@ "delete_member" => "Удалить члена семьи", "cant_delete_member" => "Не могу удалить основного члена семьи", "cant_delete_member_in_use" => "Невозможно удалить члена семьи, используемого в подписке.", - 'household_info' => "Поле электронной почты позволяет членам семьи получать уведомления об истечении срока действия подписки.", + "household_info" => "Поле электронной почты позволяет членам семьи получать уведомления об истечении срока действия подписки.", "notifications" => "Уведомления", "enable_email_notifications" => "Включить уведомления по электронной почте", "notify_me" => "Уведомить меня за", @@ -176,8 +176,9 @@ "discord_bot_avatar_url" => "URL-адрес аватара бота Discord", "pushover" => "Pushover", "pushover_user_key" => "Ключ пользователя Pushover", - 'host' => "Хост", - 'topic' => "Тема", + "host" => "Хост", + "topic" => "Тема", + "ignore_ssl_errors" => "Игнорировать ошибки SSL", "categories" => "Категории", "save_category" => "Сохранить категорию", "delete_category" => "Удалить категорию", diff --git a/includes/i18n/sl.php b/includes/i18n/sl.php index d4e05ab15..3cda5381a 100644 --- a/includes/i18n/sl.php +++ b/includes/i18n/sl.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "Preden se lahko prijavite, morate ustvariti račun", - 'username' => "Uporabniško ime", - 'password' => "Geslo", + "username" => "Uporabniško ime", + "password" => "Geslo", "email" => "E-pošta", "confirm_password" => "Potrdite geslo", "main_currency" => "Glavna valuta", @@ -16,42 +16,42 @@ "register" => "Registrirajte se", "restore_database" => "Obnovi bazo podatkov", // Login Page - 'please_login' => "Prosim prijavite se", - 'stay_logged_in' => "Ostanite prijavljeni (30 dni)", - 'login' => "Prijava", - 'login_failed' => "Podatki za prijavo so napačni", - 'registration_successful' => "Registracija uspešna", - 'user_email_waiting_verification' => "Vaš e-poštni naslov je treba preveriti. Prosim, preglejte vašo e-pošto.", + "please_login" => "Prosim prijavite se", + "stay_logged_in" => "Ostanite prijavljeni (30 dni)", + "login" => "Prijava", + "login_failed" => "Podatki za prijavo so napačni", + "registration_successful" => "Registracija uspešna", + "user_email_waiting_verification" => "Vaš e-poštni naslov je treba preveriti. Prosim, preglejte vašo e-pošto.", // Password Reset Page - 'forgot_password' => "Ste pozabili geslo", - 'reset_password' => "Ponastavitev gesla", - 'reset_sent_check_email' => "E-pošta ponastavitev gesla je bila poslana. Prosim, preglejte vašo e-pošto.", - 'password_reset_successful' => "Ponastavitev gesla je uspela", + "forgot_password" => "Ste pozabili geslo", + "reset_password" => "Ponastavitev gesla", + "reset_sent_check_email" => "E-pošta ponastavitev gesla je bila poslana. Prosim, preglejte vašo e-pošto.", + "password_reset_successful" => "Ponastavitev gesla je uspela", // Header - 'profile' => "Profil", - 'subscriptions' => "Naročnine", - 'stats' => "Statistika", - 'settings' => "Nastavitve", - 'admin' => "Skrbnik", - 'about' => "O programu", - 'logout' => "Odjava", + "profile" => "Profil", + "subscriptions" => "Naročnine", + "stats" => "Statistika", + "settings" => "Nastavitve", + "admin" => "Skrbnik", + "about" => "O programu", + "logout" => "Odjava", // Subscriptions page "subscription" => "Naročnina", "no_subscriptions_yet" => "Nimate še nobene naročnine", "add_first_subscription" => "Dodaj prvo naročnino", - 'new_subscription' => "Nova naročnina", - 'search' => "Iskanje", - 'state' => "Stanje", - 'alphanumeric' => "Abecedno", - 'sort' => "Razvrsti", - 'name' => "Ime", - 'last_added' => "Zadnje dodano", - 'price' => "Cena", - 'next_payment' => "Naslednje plačilo", - 'inactive' => "Onemogoči naročnino", - 'member' => "Član", - 'category' => "Kategorija", - 'payment_method' => "Način plačila", + "new_subscription" => "Nova naročnina", + "search" => "Iskanje", + "state" => "Stanje", + "alphanumeric" => "Abecedno", + "sort" => "Razvrsti", + "name" => "Ime", + "last_added" => "Zadnje dodano", + "price" => "Cena", + "next_payment" => "Naslednje plačilo", + "inactive" => "Onemogoči naročnino", + "member" => "Član", + "category" => "Kategorija", + "payment_method" => "Način plačila", "Daily" => "Dnevno", "Weekly" => "Tedensko", "Monthly" => "Mesečno", @@ -91,39 +91,39 @@ "cancel" => "Prekliči", "upload_logo" => "Naloži logotip", // Statistics page - 'cant_convert_currency' => "Pri naročninah uporabljate več valut. Če želite imeti veljavne in točne statistične podatke, na strani z nastavitvami nastavite ključ API Fixer.", - 'general_statistics' => "Splošna statistika", - 'active_subscriptions' => "Aktivne naročnine", - 'inactive_subscriptions' => "Neaktivne naročnine", - 'monthly_cost' => "Mesečni stroški", - 'yearly_cost' => "Letni stroški", - 'average_monthly' => "Povprečni mesečni stroški naročnine", - 'most_expensive' => "Najdražja cena naročnine", - 'amount_due' => "Zapadli znesek ta mesec", - 'percentage_budget_used' => "Odstotek porabljenega proračuna", - 'budget_remaining' => "Preostali proračun", - 'amount_over_budget' => "Znesek nad proračunom", - 'monthly_savings' => "Mesečni prihranek (pri neaktivnih naročninah)", - 'yearly_savings' => "Letni prihranki (pri neaktivnih naročninah)", - 'split_views' => "Razdeljeni pogledi", - 'category_split' => "Razdelitev kategorije", - 'household_split' => "Razdelitev gospodinjstva", - 'payment_method_split' => "Razdelitev načina plačila", + "cant_convert_currency" => "Pri naročninah uporabljate več valut. Če želite imeti veljavne in točne statistične podatke, na strani z nastavitvami nastavite ključ API Fixer.", + "general_statistics" => "Splošna statistika", + "active_subscriptions" => "Aktivne naročnine", + "inactive_subscriptions" => "Neaktivne naročnine", + "monthly_cost" => "Mesečni stroški", + "yearly_cost" => "Letni stroški", + "average_monthly" => "Povprečni mesečni stroški naročnine", + "most_expensive" => "Najdražja cena naročnine", + "amount_due" => "Zapadli znesek ta mesec", + "percentage_budget_used" => "Odstotek porabljenega proračuna", + "budget_remaining" => "Preostali proračun", + "amount_over_budget" => "Znesek nad proračunom", + "monthly_savings" => "Mesečni prihranek (pri neaktivnih naročninah)", + "yearly_savings" => "Letni prihranki (pri neaktivnih naročninah)", + "split_views" => "Razdeljeni pogledi", + "category_split" => "Razdelitev kategorije", + "household_split" => "Razdelitev gospodinjstva", + "payment_method_split" => "Razdelitev načina plačila", // About page - 'about_and_credits' => "O programu in zahvale", + "about_and_credits" => "O programu in zahvale", "credits" => "Zahvale", - 'license' => "Licenca", - 'issues_and_requests' => "Težave in zahteve", - 'the_author' => "Avtor", - 'icons' => "Ikone", - 'payment_icons' => "Ikone plačil", + "license" => "Licenca", + "issues_and_requests" => "Težave in zahteve", + "the_author" => "Avtor", + "icons" => "Ikone", + "payment_icons" => "Ikone plačil", // Profile page - 'upload_avatar' => "Naloži avatar", - 'file_type_error' => "Vrsta datoteke ni podprta.", - 'user_details' => "Podrobnosti o uporabniku", - 'two_factor_authentication' => "Dvojna preverba pristnosti", - 'two_factor_info' => "Two Factor Authentication adds an extra layer of security to your account.
Za optično branje kode QR potrebujete aplikacijo za preverjanje pristnosti, kot so Google Authenticator, Authy ali Ente Auth.", - 'two_factor_enabled_info' => "Vaš račun je varen z dvostopenjskim preverjanjem pristnosti. Onemogočite jo lahko tako, da kliknete zgornji gumb.", + "upload_avatar" => "Naloži avatar", + "file_type_error" => "Vrsta datoteke ni podprta.", + "user_details" => "Podrobnosti o uporabniku", + "two_factor_authentication" => "Dvojna preverba pristnosti", + "two_factor_info" => "Two Factor Authentication adds an extra layer of security to your account.
Za optično branje kode QR potrebujete aplikacijo za preverjanje pristnosti, kot so Google Authenticator, Authy ali Ente Auth.", + "two_factor_enabled_info" => "Vaš račun je varen z dvostopenjskim preverjanjem pristnosti. Onemogočite jo lahko tako, da kliknete zgornji gumb.", "enable_two_factor_authentication" => "Omogoči dvostopenjsko preverjanje pristnosti", "2fa_already_enabled" => "Dvostopenjsko preverjanje pristnosti je že omogočeno", "totp_code_incorrect" => "Koda TOTP je napačna", @@ -144,7 +144,7 @@ "delete_member" => "Izbriši člana", "cant_delete_member" => "Ne morem izbrisati glavnega člana", "cant_delete_member_in_use" => "Ne morem izbrisati člana, ki je v uporabi v naročnini", - 'household_info' => "E-poštno polje omogoča članom gospodinjstva, da so obveščeni o naročninah, ki bodo potekle.", + "household_info" => "E-poštno polje omogoča članom gospodinjstva, da so obveščeni o naročninah, ki bodo potekle.", "notifications" => "Obvestila", "enable_email_notifications" => "Omogoči e-poštna obvestila", "notify_me" => "Obvesti me", @@ -176,8 +176,9 @@ "discord_bot_avatar_url" => "URL avatarja Discordovega bota", "pushover" => "Pushover", "pushover_user_key" => "Uporabniški ključ Pushover", - 'host' => "Gostitelj", - 'topic' => "Tema", + "host" => "Gostitelj", + "topic" => "Tema", + "ignore_ssl_errors" => "Prezri napake SSL", "categories" => "Kategorije", "save_category" => "Shrani kategorijo", "delete_category" => "Izbriši kategorijo", diff --git a/includes/i18n/sr.php b/includes/i18n/sr.php index 775c2fa01..fcce5adbc 100644 --- a/includes/i18n/sr.php +++ b/includes/i18n/sr.php @@ -3,8 +3,8 @@ $i18n = [ // Страница за регистрацију "create_account" => "Морате креирати налог пре него што можете пријавити", - 'username' => "Корисничко име", - 'password' => "Лозинка", + "username" => "Корисничко име", + "password" => "Лозинка", "email" => "И-пошта", "confirm_password" => "Потврди лозинку", "main_currency" => "Главна валута", @@ -16,42 +16,42 @@ "register" => "Региструј се", "restore_database" => "Врати базу података", // Страница за пријаву - 'please_login' => "Молимо вас да се пријавите", - 'stay_logged_in' => "Остани пријављен (30 дана)", - 'login' => "Пријави се", - 'login_failed' => "Подаци за пријаву нису исправни", - 'registration_successful' => "Пријава успешна", - 'user_email_waiting_verification' => "Ваша е-пошта треба да буде верификована. Молимо прегледајте Е-пошту", + "please_login" => "Молимо вас да се пријавите", + "stay_logged_in" => "Остани пријављен (30 дана)", + "login" => "Пријави се", + "login_failed" => "Подаци за пријаву нису исправни", + "registration_successful" => "Пријава успешна", + "user_email_waiting_verification" => "Ваша е-пошта треба да буде верификована. Молимо прегледајте Е-пошту", // Password Reset Page - 'forgot_password' => "Заборављена лозинка", - 'reset_password' => "Ресетуј лозинку", - 'reset_sent_check_email' => "Ресетовање лозинке је послато на вашу е-пошту", - 'password_reset_successful' => "Ресетовање лозинке је успешно", + "forgot_password" => "Заборављена лозинка", + "reset_password" => "Ресетуј лозинку", + "reset_sent_check_email" => "Ресетовање лозинке је послато на вашу е-пошту", + "password_reset_successful" => "Ресетовање лозинке је успешно", // Header - 'profile' => "Профил", - 'subscriptions' => "Претплате", - 'stats' => "Статистике", - 'settings' => "Подешавања", - 'admin' => "Админ", - 'about' => "О апликацији", - 'logout' => "Одјава", + "profile" => "Профил", + "subscriptions" => "Претплате", + "stats" => "Статистике", + "settings" => "Подешавања", + "admin" => "Админ", + "about" => "О апликацији", + "logout" => "Одјава", // Страница са претплатама "subscription" => "Претплата", "no_subscriptions_yet" => "Још увек немате ниједну претплату", "add_first_subscription" => "Додајте прву претплату", - 'new_subscription' => "Нова претплата", - 'search' => "Претрага", - 'state' => "Статус", - 'alphanumeric' => "Алфанумерички", - 'sort' => "Сортирај", - 'name' => "Назив", - 'last_added' => "Последње додато", - 'price' => "Цена", - 'next_payment' => "Следећа уплата", - 'inactive' => "Онемогући претплату", - 'member' => "Члан", - 'category' => "Категорија", - 'payment_method' => "Начин плаћања", + "new_subscription" => "Нова претплата", + "search" => "Претрага", + "state" => "Статус", + "alphanumeric" => "Алфанумерички", + "sort" => "Сортирај", + "name" => "Назив", + "last_added" => "Последње додато", + "price" => "Цена", + "next_payment" => "Следећа уплата", + "inactive" => "Онемогући претплату", + "member" => "Члан", + "category" => "Категорија", + "payment_method" => "Начин плаћања", "Daily" => "Дневно", "Weekly" => "Недељно", "Monthly" => "Месечно", @@ -91,39 +91,39 @@ "cancel" => "Откажи", "upload_logo" => "Постави логотип", // Страница са статистикама - 'cant_convert_currency' => "На својим претплатама користите више валута. Да бисте имали валидну и тачну статистику, поставите Фикер АПИ кључ на страници подешавања.", - 'general_statistics' => "Опште статистике", - 'active_subscriptions' => "Активне претплате", - 'inactive_subscriptions' => "Неактивне претплате", - 'monthly_cost' => "Месечни трошак", - 'yearly_cost' => "Годишњи трошак", - 'average_monthly' => "Просечни месечни трошак претплате", - 'most_expensive' => "Најскупља претплата", - 'amount_due' => "Износ за уплату овог месеца", - 'percentage_budget_used' => "Проценат искоришћеног буџета", - 'budget_remaining' => "Преостали буџет", - 'amount_over_budget' => "Износ преко буџета", - 'monthly_savings' => "Месечне уштеде (на неактивним претплатама)", - 'yearly_savings' => "Годишње уштеде (на неактивним претплатама)", - 'split_views' => "Подељени прикази", - 'category_split' => "Подела по категоријама", - 'household_split' => "Подела по домаћинству", - 'payment_method_split' => "Подела по начинима плаћања", + "cant_convert_currency" => "На својим претплатама користите више валута. Да бисте имали валидну и тачну статистику, поставите Фикер АПИ кључ на страници подешавања.", + "general_statistics" => "Опште статистике", + "active_subscriptions" => "Активне претплате", + "inactive_subscriptions" => "Неактивне претплате", + "monthly_cost" => "Месечни трошак", + "yearly_cost" => "Годишњи трошак", + "average_monthly" => "Просечни месечни трошак претплате", + "most_expensive" => "Најскупља претплата", + "amount_due" => "Износ за уплату овог месеца", + "percentage_budget_used" => "Проценат искоришћеног буџета", + "budget_remaining" => "Преостали буџет", + "amount_over_budget" => "Износ преко буџета", + "monthly_savings" => "Месечне уштеде (на неактивним претплатама)", + "yearly_savings" => "Годишње уштеде (на неактивним претплатама)", + "split_views" => "Подељени прикази", + "category_split" => "Подела по категоријама", + "household_split" => "Подела по домаћинству", + "payment_method_split" => "Подела по начинима плаћања", // Страница о апликацији - 'about_and_credits' => "О апликацији и заслугама", + "about_and_credits" => "О апликацији и заслугама", "credits" => "Заслуге", - 'license' => "Лиценца", - 'issues_and_requests' => "Проблеми и захтеви", - 'the_author' => "Аутор", - 'icons' => "Иконе", - 'payment_icons' => "Иконе плаћања", + "license" => "Лиценца", + "issues_and_requests" => "Проблеми и захтеви", + "the_author" => "Аутор", + "icons" => "Иконе", + "payment_icons" => "Иконе плаћања", // Profile page - 'upload_avatar' => "Постави аватар", - 'file_type_error' => "Датотека није у подржаном формату.", - 'user_details' => "Кориснички детаљи", - 'two_factor_authentication' => "Двофакторска аутентикација", - 'two_factor_info' => "Двофакторска аутентификација додаје додатни ниво сигурности вашем налогу. <бр>Биће вам потребна апликација за аутентификацију као што је Гоогле Аутхентицатор, Аутхи или Енте Аутх да бисте скенирали КР код.", - 'two_factor_enabled_info' => "Ваш налог је сигуран са двофакторском аутентификацијом. Можете га онемогућити кликом на дугме изнад.", + "upload_avatar" => "Постави аватар", + "file_type_error" => "Датотека није у подржаном формату.", + "user_details" => "Кориснички детаљи", + "two_factor_authentication" => "Двофакторска аутентикација", + "two_factor_info" => "Двофакторска аутентификација додаје додатни ниво сигурности вашем налогу. <бр>Биће вам потребна апликација за аутентификацију као што је Гоогле Аутхентицатор, Аутхи или Енте Аутх да бисте скенирали КР код.", + "two_factor_enabled_info" => "Ваш налог је сигуран са двофакторском аутентификацијом. Можете га онемогућити кликом на дугме изнад.", "enable_two_factor_authentication" => "Омогући двофакторску аутентикацију", "2fa_already_enabled" => "Двофакторска аутентикација је већ омогућена", "totp_code_incorrect" => "ТОТП код није исправан", @@ -144,7 +144,7 @@ "delete_member" => "Обриши члана", "cant_delete_member" => "Главни члан не може бити обрисан", "cant_delete_member_in_use" => "Члана који се користи у претплати не може бити обрисан", - 'household_info' => "Поље за е-пошту омогућава члановима домаћинства да буду обавештени о претплатама које ће ускоро истећи.", + "household_info" => "Поље за е-пошту омогућава члановима домаћинства да буду обавештени о претплатама које ће ускоро истећи.", "notifications" => "Обавештења", "enable_email_notifications" => "Омогући обавештења е-поштом", "notify_me" => "Обавести ме", @@ -176,8 +176,9 @@ "discord_bot_avatar_url" => "Дискорд бот URL аватара", "pushover" => "Пушовер", "pushover_user_key" => "Пушовер кориснички кључ", - 'host' => "Домаћин", - 'topic' => "Тема", + "host" => "Домаћин", + "topic" => "Тема", + "ignore_ssl_errors" => "Игнориши SSL грешке", "categories" => "Категорије", "save_category" => "Сачувај категорију", "delete_category" => "Избриши категорију", diff --git a/includes/i18n/sr_lat.php b/includes/i18n/sr_lat.php index 45ed458fd..0e8a2bec7 100644 --- a/includes/i18n/sr_lat.php +++ b/includes/i18n/sr_lat.php @@ -3,8 +3,8 @@ $i18n = [ // Stranica za registraciju "create_account" => "Morate kreirati nalog pre nego što se možete prijaviti", - 'username' => "Korisničko ime", - 'password' => "Lozinka", + "username" => "Korisničko ime", + "password" => "Lozinka", "email" => "E-pošta", "confirm_password" => "Potvrdi lozinku", "main_currency" => "Glavna valuta", @@ -16,42 +16,42 @@ "register" => "Registruj se", "restore_database" => "Vrati bazu podataka", // Stranica za prijavu - 'please_login' => "Molimo vas da se prijavite", - 'stay_logged_in' => "Ostani prijavljen (30 dana)", - 'login' => "Prijavi se", - 'login_failed' => "Podaci za prijavu nisu ispravni", - 'registration_successful' => "Registracija uspešna", - 'user_email_waiting_verification' => "Vaša e-pošta treba da bude verifikovana. Molimo pregledajte E-poštu", + "please_login" => "Molimo vas da se prijavite", + "stay_logged_in" => "Ostani prijavljen (30 dana)", + "login" => "Prijavi se", + "login_failed" => "Podaci za prijavu nisu ispravni", + "registration_successful" => "Registracija uspešna", + "user_email_waiting_verification" => "Vaša e-pošta treba da bude verifikovana. Molimo pregledajte E-poštu", // Password Reset Page - 'forgot_password' => "Zaboravili ste lozinku?", - 'reset_password' => "Resetuj lozinku", - 'reset_sent_check_email' => "Poslali smo vam e-poštu sa uputstvima za resetovanje lozinke", - 'password_reset_successful' => "Lozinka uspešno resetovana", + "forgot_password" => "Zaboravili ste lozinku?", + "reset_password" => "Resetuj lozinku", + "reset_sent_check_email" => "Poslali smo vam e-poštu sa uputstvima za resetovanje lozinke", + "password_reset_successful" => "Lozinka uspešno resetovana", // Header - 'profile' => "Profil", - 'subscriptions' => "Pretplate", - 'stats' => "Statistike", - 'settings' => "Podešavanja", - 'admin' => "Admin", - 'about' => "O aplikaciji", - 'logout' => "Odjava", + "profile" => "Profil", + "subscriptions" => "Pretplate", + "stats" => "Statistike", + "settings" => "Podešavanja", + "admin" => "Admin", + "about" => "O aplikaciji", + "logout" => "Odjava", // Stranica sa pretplatama "subscription" => "Pretplata", "no_subscriptions_yet" => "Još uvek nemate nijednu pretplatu", "add_first_subscription" => "Dodajte prvu pretplatu", - 'new_subscription' => "Nova pretplata", - 'search' => "Pretraga", - 'state' => "Stanje", - 'alphanumeric' => "Alfanumerički", - 'sort' => "Sortiraj", - 'name' => "Naziv", - 'last_added' => "Poslednje dodato", - 'price' => "Cena", - 'next_payment' => "Sledeća uplata", - 'inactive' => "Onemogući pretplatu", - 'member' => "Član", - 'category' => "Kategorija", - 'payment_method' => "Način plaćanja", + "new_subscription" => "Nova pretplata", + "search" => "Pretraga", + "state" => "Stanje", + "alphanumeric" => "Alfanumerički", + "sort" => "Sortiraj", + "name" => "Naziv", + "last_added" => "Poslednje dodato", + "price" => "Cena", + "next_payment" => "Sledeća uplata", + "inactive" => "Onemogući pretplatu", + "member" => "Član", + "category" => "Kategorija", + "payment_method" => "Način plaćanja", "Daily" => "Dnevno", "Weekly" => "Nedeljno", "Monthly" => "Mesečno", @@ -91,39 +91,39 @@ "cancel" => "Otkaži", "upload_logo" => "Učitaj logo", // Stranica sa statistikama - 'cant_convert_currency' => "Na svojim pretplatama koristite više valuta. Da biste imali validnu i tačnu statistiku, postavite Fiker API ključ na stranici podešavanja.", - 'general_statistics' => "Opšte statistike", - 'active_subscriptions' => "Aktivne pretplate", - 'inactive_subscriptions' => "Neaktivne pretplate", - 'monthly_cost' => "Mesečni trošak", - 'yearly_cost' => "Godišnji trošak", - 'average_monthly' => "Prosečni mesečni trošak pretplate", - 'most_expensive' => "Najskuplja pretplata", - 'amount_due' => "Iznos za plaćanje ovog meseca", - 'percentage_budget_used' => "Procenat budžeta iskorišćen", - 'budget_remaining' => "Preostali budžet", - 'amount_over_budget' => "Iznos preko budžeta", - 'monthly_savings' => "Mesečne uštede (na neaktivnim pretplatama)", - 'yearly_savings' => "Godišnje uštede (na neaktivnim pretplatama)", - 'split_views' => "Podeljene statistike", - 'category_split' => "Podela po kategorijama", - 'household_split' => "Podela po domaćinstvima", - 'payment_method_split' => "Podela po načinu plaćanja", + "cant_convert_currency" => "Na svojim pretplatama koristite više valuta. Da biste imali validnu i tačnu statistiku, postavite Fiker API ključ na stranici podešavanja.", + "general_statistics" => "Opšte statistike", + "active_subscriptions" => "Aktivne pretplate", + "inactive_subscriptions" => "Neaktivne pretplate", + "monthly_cost" => "Mesečni trošak", + "yearly_cost" => "Godišnji trošak", + "average_monthly" => "Prosečni mesečni trošak pretplate", + "most_expensive" => "Najskuplja pretplata", + "amount_due" => "Iznos za plaćanje ovog meseca", + "percentage_budget_used" => "Procenat budžeta iskorišćen", + "budget_remaining" => "Preostali budžet", + "amount_over_budget" => "Iznos preko budžeta", + "monthly_savings" => "Mesečne uštede (na neaktivnim pretplatama)", + "yearly_savings" => "Godišnje uštede (na neaktivnim pretplatama)", + "split_views" => "Podeljene statistike", + "category_split" => "Podela po kategorijama", + "household_split" => "Podela po domaćinstvima", + "payment_method_split" => "Podela po načinu plaćanja", // Stranica O aplikaciji - 'about_and_credits' => "O aplikaciji i zasluge", + "about_and_credits" => "O aplikaciji i zasluge", "credits" => "Zasluge", - 'license' => "Licenca", - 'issues_and_requests' => "Problemi i zahtevi", - 'the_author' => "Autor", - 'icons' => "Ikone", - 'payment_icons' => "Ikone za plaćanje", + "license" => "Licenca", + "issues_and_requests" => "Problemi i zahtevi", + "the_author" => "Autor", + "icons" => "Ikone", + "payment_icons" => "Ikone za plaćanje", // Stranica sa profilom - 'upload_avatar' => "Učitaj avatar", - 'file_type_error' => "Tip datoteke koji ste priložili nije podržan.", - 'user_details' => "Detalji korisnika", - 'two_factor_authentication' => "Dvostruka autentifikacija", - 'two_factor_info' => "Dvofaktorska autentifikacija dodaje dodatni nivo sigurnosti vašem nalogu.
Biće vam potrebna aplikacija za autentifikaciju kao što je Google Authenticator, Authi ili Ente Auth da biste skenirali KR kod.", - 'two_factor_enabled_info' => "Vaš nalog je siguran sa dvofaktorskom autentifikacijom. Možete ga onemogućiti klikom na dugme iznad.", + "upload_avatar" => "Učitaj avatar", + "file_type_error" => "Tip datoteke koji ste priložili nije podržan.", + "user_details" => "Detalji korisnika", + "two_factor_authentication" => "Dvostruka autentifikacija", + "two_factor_info" => "Dvofaktorska autentifikacija dodaje dodatni nivo sigurnosti vašem nalogu.
Biće vam potrebna aplikacija za autentifikaciju kao što je Google Authenticator, Authi ili Ente Auth da biste skenirali KR kod.", + "two_factor_enabled_info" => "Vaš nalog je siguran sa dvofaktorskom autentifikacijom. Možete ga onemogućiti klikom na dugme iznad.", "enable_two_factor_authentication" => "Omogući dvofaktorsku autentifikaciju", "2fa_already_enabled" => "Dvofaktorska autentifikacija je već omogućena", "totp_code_incorrect" => "Kod za dvofaktorsku autentifikaciju nije tačan", @@ -144,7 +144,7 @@ "delete_member" => "Izbriši člana", "cant_delete_member" => "Nemoguće brisanje glavnog člana", "cant_delete_member_in_use" => "Nemoguće brisanje člana koji je u upotrebi u pretplati", - 'household_info' => "Polje za e-poštu omogućava članovima domaćinstva da budu obavešteni o pretplatama koje će uskoro isteći.", + "household_info" => "Polje za e-poštu omogućava članovima domaćinstva da budu obavešteni o pretplatama koje će uskoro isteći.", "notifications" => "Obaveštenja", "enable_email_notifications" => "Omogući obaveštenja e-poštom", "notify_me" => "Obavesti me", @@ -176,8 +176,9 @@ "discord_bot_avatar_url" => "Discord bot URL avatara", "pushover" => "Pushover", "pushover_user_key" => "Pushover korisnički ključ", - 'host' => "Host", - 'topic' => "Tema", + "host" => "Host", + "topic" => "Tema", + "ignore_ssl_errors" => "Ignoriši SSL greške", "categories" => "Kategorije", "save_category" => "Sačuvaj kategoriju", "delete_category" => "Izbriši kategoriju", diff --git a/includes/i18n/tr.php b/includes/i18n/tr.php index 85facc83d..10b68e1a3 100644 --- a/includes/i18n/tr.php +++ b/includes/i18n/tr.php @@ -178,6 +178,7 @@ "pushover_user_key" => "Pushover Kullanıcı Anahtarı", 'host' => "Host", 'topic' => "Konu", + "ignore_ssl_errors" => "SSL Hatalarını Yoksay", "categories" => "Kategoriler", "save_category" => "Kategoriyi Kaydet", "delete_category" => "Kategoriyi Sil", diff --git a/includes/i18n/vi.php b/includes/i18n/vi.php index c5643edcc..fdd72ce50 100644 --- a/includes/i18n/vi.php +++ b/includes/i18n/vi.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "Bạn cần tạo tài khoản trước khi có thể đăng nhập", - 'username' => "Tên người dùng", - 'password' => "Mật khẩu", + "username" => "Tên người dùng", + "password" => "Mật khẩu", "email" => "Email", "confirm_password" => "Xác nhận mật khẩu", "main_currency" => "Tiền tệ chính", @@ -16,42 +16,42 @@ "register" => "Đăng ký", "restore_database" => "Khôi phục cơ sở dữ liệu", // Login Page - 'please_login' => "Vui lòng đăng nhập", - 'stay_logged_in' => "Giữ đăng nhập (30 ngày)", - 'login' => "Đăng nhập", - 'login_failed' => "Thông tin đăng nhập không chính xác", - 'registration_successful' => "Đăng ký thành công", - 'user_email_waiting_verification' => "Email của bạn cần được xác minh. Vui lòng kiểm tra email.", + "please_login" => "Vui lòng đăng nhập", + "stay_logged_in" => "Giữ đăng nhập (30 ngày)", + "login" => "Đăng nhập", + "login_failed" => "Thông tin đăng nhập không chính xác", + "registration_successful" => "Đăng ký thành công", + "user_email_waiting_verification" => "Email của bạn cần được xác minh. Vui lòng kiểm tra email.", // Password Reset Page - 'forgot_password' => "Quên mật khẩu", - 'reset_password' => "Đặt lại mật khẩu", - 'reset_sent_check_email' => "Email đặt lại đã được gửi. Vui lòng kiểm tra email.", - 'password_reset_successful' => "Đặt lại mật khẩu thành công", + "forgot_password" => "Quên mật khẩu", + "reset_password" => "Đặt lại mật khẩu", + "reset_sent_check_email" => "Email đặt lại đã được gửi. Vui lòng kiểm tra email.", + "password_reset_successful" => "Đặt lại mật khẩu thành công", // Header - 'profile' => "Hồ sơ", - 'subscriptions' => "Đăng ký", - 'stats' => "Thống kê", - 'settings' => "Cài đặt", - 'admin' => "Quản trị viên", - 'about' => "Giới thiệu", - 'logout' => "Đăng xuất", + "profile" => "Hồ sơ", + "subscriptions" => "Đăng ký", + "stats" => "Thống kê", + "settings" => "Cài đặt", + "admin" => "Quản trị viên", + "about" => "Giới thiệu", + "logout" => "Đăng xuất", // Subscriptions page "subscription" => "Đăng ký", "no_subscriptions_yet" => "Bạn chưa có đăng ký nào", "add_first_subscription" => "Thêm đăng ký đầu tiên", - 'new_subscription' => "Đăng ký mới", - 'search' => "Tìm kiếm", - 'state' => "Trạng thái", - 'alphanumeric' => "Chữ và số", - 'sort' => "Sắp xếp", - 'name' => "Tên", - 'last_added' => "Thêm gần đây", - 'price' => "Giá", - 'next_payment' => "Thanh toán tiếp theo", - 'inactive' => "Vô hiệu hóa đăng ký", - 'member' => "Thành viên", - 'category' => "Danh mục", - 'payment_method' => "Phương thức thanh toán", + "new_subscription" => "Đăng ký mới", + "search" => "Tìm kiếm", + "state" => "Trạng thái", + "alphanumeric" => "Chữ và số", + "sort" => "Sắp xếp", + "name" => "Tên", + "last_added" => "Thêm gần đây", + "price" => "Giá", + "next_payment" => "Thanh toán tiếp theo", + "inactive" => "Vô hiệu hóa đăng ký", + "member" => "Thành viên", + "category" => "Danh mục", + "payment_method" => "Phương thức thanh toán", "Daily" => "Hàng ngày", "Weekly" => "Hàng tuần", "Monthly" => "Hàng tháng", @@ -91,38 +91,38 @@ "cancel" => "Hủy", "upload_logo" => "Tải logo", // Statistics page - 'cant_convert_currency' => "Bạn đang sử dụng nhiều loại tiền tệ trên các đăng ký của mình. Để có thống kê hợp lệ và chính xác, vui lòng đặt một API Key Fixer trên trang cài đặt.", - 'general_statistics' => "Thống kê chung", - 'active_subscriptions' => "Đăng ký hoạt động", - 'inactive_subscriptions' => "Đăng ký không hoạt động", - 'monthly_cost' => "Chi phí hàng tháng", - 'yearly_cost' => "Chi phí hàng năm", - 'average_monthly' => "Chi phí đăng ký trung bình hàng tháng", - 'most_expensive' => "Chi phí đăng ký đắt nhất", - 'amount_due' => "Số tiền phải trả tháng này", - 'percentage_budget_used' => "Phần trăm ngân sách đã sử dụng", - 'budget_remaining' => "Ngân sách còn lại", - 'amount_over_budget' => "Số tiền vượt ngân sách", - 'monthly_savings' => "Tiết kiệm hàng tháng (trên các đăng ký không hoạt động)", - 'yearly_savings' => "Tiết kiệm hàng năm (trên các đăng ký không hoạt động)", - 'split_views' => "Chia tách lượt xem", - 'category_split' => "Phân chia theo danh mục", - 'household_split' => "Phân chia theo hộ gia đình", - 'payment_method_split' => "Phân chia theo phương thức thanh toán", + "cant_convert_currency" => "Bạn đang sử dụng nhiều loại tiền tệ trên các đăng ký của mình. Để có thống kê hợp lệ và chính xác, vui lòng đặt một API Key Fixer trên trang cài đặt.", + "general_statistics" => "Thống kê chung", + "active_subscriptions" => "Đăng ký hoạt động", + "inactive_subscriptions" => "Đăng ký không hoạt động", + "monthly_cost" => "Chi phí hàng tháng", + "yearly_cost" => "Chi phí hàng năm", + "average_monthly" => "Chi phí đăng ký trung bình hàng tháng", + "most_expensive" => "Chi phí đăng ký đắt nhất", + "amount_due" => "Số tiền phải trả tháng này", + "percentage_budget_used" => "Phần trăm ngân sách đã sử dụng", + "budget_remaining" => "Ngân sách còn lại", + "amount_over_budget" => "Số tiền vượt ngân sách", + "monthly_savings" => "Tiết kiệm hàng tháng (trên các đăng ký không hoạt động)", + "yearly_savings" => "Tiết kiệm hàng năm (trên các đăng ký không hoạt động)", + "split_views" => "Chia tách lượt xem", + "category_split" => "Phân chia theo danh mục", + "household_split" => "Phân chia theo hộ gia đình", + "payment_method_split" => "Phân chia theo phương thức thanh toán", // About page - 'about_and_credits' => "Giới thiệu và cảm ơn", + "about_and_credits" => "Giới thiệu và cảm ơn", "credits" => "Cảm ơn", - 'license' => "Giấy phép", - 'issues_and_requests' => "Vấn đề và yêu cầu", - 'the_author' => "Tác giả", - 'icons' => "Biểu tượng", - 'payment_icons' => "Biểu tượng thanh toán", + "license" => "Giấy phép", + "issues_and_requests" => "Vấn đề và yêu cầu", + "the_author" => "Tác giả", + "icons" => "Biểu tượng", + "payment_icons" => "Biểu tượng thanh toán", //Profile page - 'upload_avatar' => "Tải ảnh đại diện", - 'file_type_error' => "Loại tệp không được hỗ trợ.", - 'user_details' => "Chi tiết người dùng", - 'two_factor_authentication' => "Xác thực hai yếu tố", - 'two_factor_info' => "Xác thực hai yếu tố thêm một lớp bảo mật cho tài khoản của bạn.
Bạn sẽ cần một ứng dụng xác thực như Google Authenticator, Authy hoặc Ente Auth để quét mã QR.", + "upload_avatar" => "Tải ảnh đại diện", + "file_type_error" => "Loại tệp không được hỗ trợ.", + "user_details" => "Chi tiết người dùng", + "two_factor_authentication" => "Xác thực hai yếu tố", + "two_factor_info" => "Xác thực hai yếu tố thêm một lớp bảo mật cho tài khoản của bạn.
Bạn sẽ cần một ứng dụng xác thực như Google Authenticator, Authy hoặc Ente Auth để quét mã QR.", "two_factor_enabled_info" => "Tài khoản của bạn được bảo vệ với xác thực hai yếu tố. Bạn có thể vô hiệu hóa bằng cách nhấp vào nút phía trên.", "enable_two_factor_authentication" => "Bật xác thực hai yếu tố", "2fa_already_enabled" => "Xác thực hai yếu tố đã được bật", @@ -144,7 +144,7 @@ "delete_member" => "Xóa thành viên", "cant_delete_member" => "Không thể xóa thành viên chính", "cant_delete_member_in_use" => "Không thể xóa thành viên đang được sử dụng trong đăng ký", - 'household_info' => "Trường Email cho phép thành viên trong hộ gia đình được thông báo về các đăng ký sắp hết hạn.", + "household_info" => "Trường Email cho phép thành viên trong hộ gia đình được thông báo về các đăng ký sắp hết hạn.", "notifications" => "Thông báo", "enable_email_notifications" => "Bật thông báo qua email", "notify_me" => "Thông báo cho tôi", @@ -177,8 +177,9 @@ "discord_bot_avatar_url" => "URL ảnh đại diện Bot Discord", "pushover" => "Pushover", "pushover_user_key" => "Khóa người dùng Pushover", - 'host' => "Host", - 'topic' => "Chủ đề", + "host" => "Host", + "topic" => "Chủ đề", + "ignore_ssl_errors" => "Bỏ qua lỗi SSL", "categories" => "Danh mục", "save_category" => "Lưu danh mục", "delete_category" => "Xóa danh mục", diff --git a/includes/i18n/zh_cn.php b/includes/i18n/zh_cn.php index 08e1d6025..b240cbc6b 100644 --- a/includes/i18n/zh_cn.php +++ b/includes/i18n/zh_cn.php @@ -186,6 +186,7 @@ "pushover_user_key" => "Pushover 用户密钥", 'host' => "主机", 'topic' => "主题", + "ignore_ssl_errors" => "忽略 SSL 错误", "categories" => "分类", "save_category" => "保存分类", "delete_category" => "删除分类", diff --git a/includes/i18n/zh_tw.php b/includes/i18n/zh_tw.php index 54cc72b63..35cc1beb3 100644 --- a/includes/i18n/zh_tw.php +++ b/includes/i18n/zh_tw.php @@ -178,6 +178,7 @@ "pushover_user_key" => "Pushover 使用者金鑰", 'host' => "主機", 'topic' => "主題", + "ignore_ssl_errors" => "忽略 SSL 錯誤", "categories" => "分類", "save_category" => "儲存分類", "delete_category" => "刪除分類", diff --git a/includes/version.php b/includes/version.php index b4985c08b..9f22fc4f0 100644 --- a/includes/version.php +++ b/includes/version.php @@ -1,3 +1,3 @@ \ No newline at end of file diff --git a/migrations/000030.php b/migrations/000030.php new file mode 100644 index 000000000..9f9fa0104 --- /dev/null +++ b/migrations/000030.php @@ -0,0 +1,37 @@ +query("SELECT * FROM pragma_table_info('webhook_notifications') where name='ignore_ssl'"); +$columnRequired = $columnQuery->fetchArray(SQLITE3_ASSOC) === false; + +if ($columnRequired) { + $db->exec('ALTER TABLE webhook_notifications ADD COLUMN ignore_ssl INTEGER DEFAULT 0'); +} + +// Add the ignore_ssl column to the ntfy_notifications table + +/** @noinspection PhpUndefinedVariableInspection */ +$columnQuery = $db->query("SELECT * FROM pragma_table_info('ntfy_notifications') where name='ignore_ssl'"); +$columnRequired = $columnQuery->fetchArray(SQLITE3_ASSOC) === false; + +if ($columnRequired) { + $db->exec('ALTER TABLE ntfy_notifications ADD COLUMN ignore_ssl INTEGER DEFAULT 0'); +} + +// Add the ignore_ssl column to the gotify_notifications table + +/** @noinspection PhpUndefinedVariableInspection */ +$columnQuery = $db->query("SELECT * FROM pragma_table_info('gotify_notifications') where name='ignore_ssl'"); +$columnRequired = $columnQuery->fetchArray(SQLITE3_ASSOC) === false; + +if ($columnRequired) { + $db->exec('ALTER TABLE gotify_notifications ADD COLUMN ignore_ssl INTEGER DEFAULT 0'); +} + + + diff --git a/scripts/notifications.js b/scripts/notifications.js index 217c87fd8..ae9ca5d53 100644 --- a/scripts/notifications.js +++ b/scripts/notifications.js @@ -113,13 +113,15 @@ function saveNotificationsWebhookButton() { const headers = document.getElementById("webhookcustomheaders").value; const payload = document.getElementById("webhookpayload").value; const iterator = document.getElementById("webhookiteratorkey").value; + const ignore_ssl = document.getElementById("webhookignoressl").checked ? 1 : 0; const data = { enabled: enabled, webhook_url: webhook_url, headers: headers, payload: payload, - iterator: iterator + iterator: iterator, + ignore_ssl: ignore_ssl }; makeFetchCall('endpoints/notifications/savewebhooknotifications.php', data, button); @@ -135,6 +137,7 @@ function testNotificationsWebhookButton() { const customheaders = document.getElementById("webhookcustomheaders").value; const payload = document.getElementById("webhookpayload").value; const iterator = document.getElementById("webhookiteratorkey").value; + const ignore_ssl = document.getElementById("webhookignoressl").checked ? 1 : 0; const data = { enabled: enabled, @@ -142,7 +145,8 @@ function testNotificationsWebhookButton() { url: url, customheaders: customheaders, payload: payload, - iterator: iterator + iterator: iterator, + ignore_ssl: ignore_ssl }; makeFetchCall('endpoints/notifications/testwebhooknotifications.php', data, button); @@ -189,11 +193,13 @@ function saveNotificationsGotifyButton() { const enabled = document.getElementById("gotifyenabled").checked ? 1 : 0; const gotify_url = document.getElementById("gotifyurl").value; const token = document.getElementById("gotifytoken").value; + const ignore_ssl = document.getElementById("gotifyignoressl").checked ? 1 : 0; const data = { enabled: enabled, gotify_url: gotify_url, - token: token + token: token, + ignore_ssl: ignore_ssl }; makeFetchCall('endpoints/notifications/savegotifynotifications.php', data, button); @@ -206,11 +212,13 @@ function testNotificationsGotifyButton() { const enabled = document.getElementById("gotifyenabled").checked ? 1 : 0; const gotify_url = document.getElementById("gotifyurl").value; const token = document.getElementById("gotifytoken").value; + const ignore_ssl = document.getElementById("gotifyignoressl").checked ? 1 : 0; const data = { enabled: enabled, gotify_url: gotify_url, - token: token + token: token, + ignore_ssl: ignore_ssl }; makeFetchCall('endpoints/notifications/testgotifynotifications.php', data, button); @@ -295,12 +303,13 @@ function testNotificationsNtfyButton() { const host = document.getElementById("ntfyhost").value; const topic = document.getElementById("ntfytopic").value; const headers = document.getElementById("ntfyheaders").value; + const ignore_ssl = document.getElementById("ntfyignoressl").checked ? 1 : 0; - const data = { host: host, topic: topic, - headers: headers + headers: headers, + ignore_ssl: ignore_ssl }; makeFetchCall('endpoints/notifications/testntfynotifications.php', data, button); @@ -314,12 +323,14 @@ function saveNotificationsNtfyButton() { const host = document.getElementById("ntfyhost").value; const topic = document.getElementById("ntfytopic").value; const headers = document.getElementById("ntfyheaders").value; + const ignore_ssl = document.getElementById("ntfyignoressl").checked ? 1 : 0; const data = { enabled: enabled, host: host, topic: topic, - headers: headers + headers: headers, + ignore_ssl: ignore_ssl }; makeFetchCall('endpoints/notifications/saventfynotifications.php', data, button); diff --git a/settings.php b/settings.php index b4f2e8e0f..46fe7e01f 100644 --- a/settings.php +++ b/settings.php @@ -233,6 +233,7 @@ class="thin mobile-grow" /> $notificationsNtfy['host'] = $row['host']; $notificationsNtfy['topic'] = $row['topic']; $notificationsNtfy['headers'] = $row['headers']; + $notificationsNtfy['ignore_ssl'] = $row['ignore_ssl']; $rowCount++; } @@ -241,6 +242,7 @@ class="thin mobile-grow" /> $notificationsNtfy['host'] = ""; $notificationsNtfy['topic'] = ""; $notificationsNtfy['headers'] = ""; + $notificationsNtfy['ignore_ssl'] = 0; } // Webhook notifications @@ -256,6 +258,7 @@ class="thin mobile-grow" /> $notificationsWebhook['headers'] = $row['headers']; $notificationsWebhook['payload'] = $row['payload']; $notificationsWebhook['iterator'] = $row['iterator']; + $notificationsWebhook['ignore_ssl'] = $row['ignore_ssl']; $rowCount++; } @@ -283,6 +286,7 @@ class="thin mobile-grow" /> ] }'; + $notificationsWebhook['ignore_ssl'] = 0; } // Gotify notifications @@ -296,6 +300,7 @@ class="thin mobile-grow" /> $notificationsGotify['enabled'] = $row['enabled']; $notificationsGotify['url'] = $row['url']; $notificationsGotify['token'] = $row['token']; + $notificationsGotify['ignore_ssl'] = $row['ignore_ssl']; $rowCount++; } @@ -303,6 +308,7 @@ class="thin mobile-grow" /> $notificationsGotify['enabled'] = 0; $notificationsGotify['url'] = ""; $notificationsGotify['token'] = ""; + $notificationsGotify['ignore_ssl'] = 0; } ?> @@ -460,6 +466,11 @@ class="one-third" value="" /> placeholder="" value="" /> +
+ > + +
+
+ > + +
: placeholder="" value="" />
+
+ > + +
Date: Sun, 27 Oct 2024 11:54:28 +0100 Subject: [PATCH 2/2] add unsaved files --- .../notifications/savegotifynotifications.php | 2 +- includes/i18n/de.php | 128 +++---- includes/i18n/el.php | 126 +++--- includes/i18n/en.php | 128 +++---- includes/i18n/es.php | 128 +++---- includes/i18n/fr.php | 128 +++---- includes/i18n/it.php | 362 +++++++++--------- includes/i18n/ko.php | 131 ++++--- includes/i18n/pl.php | 130 +++---- includes/i18n/pt.php | 128 +++---- includes/i18n/pt_br.php | 130 +++---- includes/i18n/tr.php | 128 +++---- includes/i18n/zh_cn.php | 128 +++---- includes/i18n/zh_tw.php | 128 +++---- 14 files changed, 952 insertions(+), 953 deletions(-) diff --git a/endpoints/notifications/savegotifynotifications.php b/endpoints/notifications/savegotifynotifications.php index 3a737d73d..bad828591 100644 --- a/endpoints/notifications/savegotifynotifications.php +++ b/endpoints/notifications/savegotifynotifications.php @@ -53,8 +53,8 @@ $stmt->bindValue(':enabled', $enabled, SQLITE3_INTEGER); $stmt->bindValue(':url', $url, SQLITE3_TEXT); $stmt->bindValue(':token', $token, SQLITE3_TEXT); - $stmt->bindValue(':userId', $userId, SQLITE3_INTEGER); $stmt->bindValue(':ignore_ssl', $ignore_ssl, SQLITE3_INTEGER); + $stmt->bindValue(':userId', $userId, SQLITE3_INTEGER); if ($stmt->execute()) { $response = [ diff --git a/includes/i18n/de.php b/includes/i18n/de.php index 3fb1bedbd..a874e6a43 100644 --- a/includes/i18n/de.php +++ b/includes/i18n/de.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "Bitte erstelle zunächst einen Account, um dich einloggen zu können", - 'username' => "Benutzername", - 'password' => "Passwort", + "username" => "Benutzername", + "password" => "Passwort", "email" => "E-Mail", "confirm_password" => "Passwort bestätigen", "main_currency" => "Hauptwährung", @@ -16,42 +16,42 @@ "register" => "Registrieren", "restore_database" => "Datenbank wiederherstellen", // Login Page - 'please_login' => "Bitte einloggen", - 'stay_logged_in' => "Angemeldet bleiben (30 Tage)", - 'login' => "Login", - 'login_failed' => "Loginangaben sind nicht korrekt", - 'registration_successful' => "Registrierung erfolgreich", - 'user_email_waiting_verification' => "Ihre E-Mail muss noch verifiziert werden. Bitte überprüfen Sie Ihre E-Mail.", + "please_login" => "Bitte einloggen", + "stay_logged_in" => "Angemeldet bleiben (30 Tage)", + "login" => "Login", + "login_failed" => "Loginangaben sind nicht korrekt", + "registration_successful" => "Registrierung erfolgreich", + "user_email_waiting_verification" => "Ihre E-Mail muss noch verifiziert werden. Bitte überprüfen Sie Ihre E-Mail.", // Password Reset Page - 'forgot_password' => "Passwort vergessen?", - 'reset_password' => "Passwort zurücksetzen", - 'reset_sent_check_email' => "Passwort zurücksetzen E-Mail wurde gesendet. Bitte überprüfen Sie Ihr Postfach.", - 'password_reset_successful' => "Passwort erfolgreich zurückgesetzt", + "forgot_password" => "Passwort vergessen?", + "reset_password" => "Passwort zurücksetzen", + "reset_sent_check_email" => "Passwort zurücksetzen E-Mail wurde gesendet. Bitte überprüfen Sie Ihr Postfach.", + "password_reset_successful" => "Passwort erfolgreich zurückgesetzt", // Header - 'profile' => "Profil", - 'subscriptions' => "Abonnements", - 'stats' => "Statistiken", - 'settings' => "Einstellungen", - 'admin' => "Admin", - 'about' => "Über", - 'logout' => "Logout", + "profile" => "Profil", + "subscriptions" => "Abonnements", + "stats" => "Statistiken", + "settings" => "Einstellungen", + "admin" => "Admin", + "about" => "Über", + "logout" => "Logout", // Subscriptions page "subscription" => "Abonnement", "no_subscriptions_yet" => "Keine Abonnements hinzugefügt", "add_first_subscription" => "Erstes Abonnement hinzufügen", - 'new_subscription' => "Neues Abonnement", - 'search' => "Suche", - 'state' => "Status", - 'alphanumeric' => "Alphanumerisch", - 'sort' => "Sortieren", - 'name' => "Bezeichnung", - 'last_added' => "Zuletzt hinzugefügt", - 'price' => "Preis", - 'next_payment' => "Nächste Zahlung", - 'inactive' => "Abonnement deaktivieren", - 'member' => "Mitglied", - 'category' => "Kategorie", - 'payment_method' => "Zahlungsmethode", + "new_subscription" => "Neues Abonnement", + "search" => "Suche", + "state" => "Status", + "alphanumeric" => "Alphanumerisch", + "sort" => "Sortieren", + "name" => "Bezeichnung", + "last_added" => "Zuletzt hinzugefügt", + "price" => "Preis", + "next_payment" => "Nächste Zahlung", + "inactive" => "Abonnement deaktivieren", + "member" => "Mitglied", + "category" => "Kategorie", + "payment_method" => "Zahlungsmethode", "Daily" => "Täglich", "Weekly" => "Wöchentlich", "Monthly" => "Monatlich", @@ -91,38 +91,38 @@ "cancel" => "Abbrechen", "upload_logo" => "Logo hochladen", // Statistics page - 'cant_convert_currency' => "Sie verwenden mehrere Währungen für Ihre Abonnements. Um gültige und genaue Statistiken zu erhalten, legen Sie bitte einen Fixer-API-Schlüssel auf der Einstellungsseite fest.", - 'general_statistics' => "Allgemeine Statistiken", - 'active_subscriptions' => "Aktive Abonnements", - 'inactive_subscriptions' => "Inaktive Abonnements", - 'monthly_cost' => "Monatliche Kosten", - 'yearly_cost' => "Jährliche Kosten", - 'average_monthly' => "Durchschnittliche monatliche Kosten", - 'most_expensive' => "Kosten des teuersten Abonnements", - 'amount_due' => "Diesen Monat fällige Summe", - 'percentage_budget_used' => "Prozentualer Anteil des Budgets genutzt", - 'budget_remaining' => "Verbleibendes Budget", - 'amount_over_budget' => "Überzogenes Budget", - 'monthly_savings' => "Monatliche Ersparnisse (bei inaktiven Abonnements)", - 'yearly_savings' => "Jährliche Ersparnisse (bei inaktiven Abonnements)", - 'split_views' => "Aufgeteilte Ansichten", - 'category_split' => "Kategorien", - 'household_split' => "Haushalt", - 'payment_method_split' => "Zahlungsmethode", + "cant_convert_currency" => "Sie verwenden mehrere Währungen für Ihre Abonnements. Um gültige und genaue Statistiken zu erhalten, legen Sie bitte einen Fixer-API-Schlüssel auf der Einstellungsseite fest.", + "general_statistics" => "Allgemeine Statistiken", + "active_subscriptions" => "Aktive Abonnements", + "inactive_subscriptions" => "Inaktive Abonnements", + "monthly_cost" => "Monatliche Kosten", + "yearly_cost" => "Jährliche Kosten", + "average_monthly" => "Durchschnittliche monatliche Kosten", + "most_expensive" => "Kosten des teuersten Abonnements", + "amount_due" => "Diesen Monat fällige Summe", + "percentage_budget_used" => "Prozentualer Anteil des Budgets genutzt", + "budget_remaining" => "Verbleibendes Budget", + "amount_over_budget" => "Überzogenes Budget", + "monthly_savings" => "Monatliche Ersparnisse (bei inaktiven Abonnements)", + "yearly_savings" => "Jährliche Ersparnisse (bei inaktiven Abonnements)", + "split_views" => "Aufgeteilte Ansichten", + "category_split" => "Kategorien", + "household_split" => "Haushalt", + "payment_method_split" => "Zahlungsmethode", // About page - 'about_and_credits' => "Informationen und Danksagungen", + "about_and_credits" => "Informationen und Danksagungen", "credits" => "Danksagungen", - 'license' => "Lizenz", - 'issues_and_requests' => "Issues und Anfragen", - 'the_author' => "Der Autor", - 'icons' => "Icons", - 'payment_icons' => "Zahlungsweisen Icons", + "license" => "Lizenz", + "issues_and_requests" => "Issues und Anfragen", + "the_author" => "Der Autor", + "icons" => "Icons", + "payment_icons" => "Zahlungsweisen Icons", // Profile page - 'upload_avatar' => "Avatar hochladen", - 'file_type_error' => "Dateityp nicht unterstützt", - 'user_details' => "Benutzerdetails", - 'two_factor_authentication' => "Zwei-Faktor-Authentifizierung", - 'two_factor_info' => "Die Zwei-Faktor-Authentifizierung fügt Ihrem Konto eine zusätzliche Sicherheitsebene hinzu.
Sie benötigen eine Authentifizierungs-App wie Google Authenticator, Authy oder Ente Auth, um den QR-Code zu scannen.", + "upload_avatar" => "Avatar hochladen", + "file_type_error" => "Dateityp nicht unterstützt", + "user_details" => "Benutzerdetails", + "two_factor_authentication" => "Zwei-Faktor-Authentifizierung", + "two_factor_info" => "Die Zwei-Faktor-Authentifizierung fügt Ihrem Konto eine zusätzliche Sicherheitsebene hinzu.
Sie benötigen eine Authentifizierungs-App wie Google Authenticator, Authy oder Ente Auth, um den QR-Code zu scannen.", "two_factor_enabled_info" => "Ihr Konto ist mit der Zwei-Faktor-Authentifizierung gesichert. Sie können sie deaktivieren, indem Sie auf die Schaltfläche oben klicken.", "enable_two_factor_authentication" => "Zwei-Faktor-Authentifizierung aktivieren", "2fa_already_enabled" => "Zwei-Faktor-Authentifizierung ist bereits aktiviert", @@ -144,7 +144,7 @@ "delete_member" => "Mitglied löschen", "cant_delete_member" => "Hauptmitglied kann nicht gelöscht werden", "cant_delete_member_in_use" => "Mitglied mit Abonnement kann nicht gelöscht werden", - 'household_info' => "Über das E-Mail-Feld können die Haushaltsmitglieder über auslaufende Abonnements benachrichtigt werden.", + "household_info" => "Über das E-Mail-Feld können die Haushaltsmitglieder über auslaufende Abonnements benachrichtigt werden.", "notifications" => "Benachrichtigungen", "enable_email_notifications" => "E-Mail Benachrichtigung aktivieren", "notify_me" => "Benachrichtige mich", @@ -176,8 +176,8 @@ "discord_bot_avatar_url" => "Bot Avatar URL", "pushover" => "Pushover", "pushover_user_key" => "Pushover User Key", - 'host' => "Host", - 'topic' => "Topic", + "host" => "Host", + "topic" => "Topic", "ignore_ssl_errors" => "SSL Fehler ignorieren", "categories" => "Kategorien", "save_category" => "Kategorie speichern", diff --git a/includes/i18n/el.php b/includes/i18n/el.php index df946d512..87605d94d 100644 --- a/includes/i18n/el.php +++ b/includes/i18n/el.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "Πρέπει να δημιουργήσεις έναν λογαριασμό για να μπορέσεις να συνδεθείς.", - 'username' => "Όνομα χρήστη", - 'password' => "Κωδικός", + "username" => "Όνομα χρήστη", + "password" => "Κωδικός", "email" => "Email", "confirm_password" => "Επιβεβαίωση κωδικού", "main_currency" => "Κύριο νόμισμα", @@ -16,42 +16,42 @@ "register" => "Εγγραφή", "restore_database" => "Επαναφορά βάσης δεδομένων", // Login Page - 'please_login' => "Παρακαλώ συνδέσου", - 'stay_logged_in' => "Μείνε συνδεδεμένος (30 ημέρες)", - 'login' => "Σύνδεση", - 'login_failed' => "Τα στοιχεία σύνδεσης είναι λανθασμένα", - 'registration_successful' => "Επιτυχής Εγγραφή", - 'user_email_waiting_verification' => "Το email σας πρέπει να επαληθευτεί. Παρακαλούμε ελέγξτε το email σας", + "please_login" => "Παρακαλώ συνδέσου", + "stay_logged_in" => "Μείνε συνδεδεμένος (30 ημέρες)", + "login" => "Σύνδεση", + "login_failed" => "Τα στοιχεία σύνδεσης είναι λανθασμένα", + "registration_successful" => "Επιτυχής Εγγραφή", + "user_email_waiting_verification" => "Το email σας πρέπει να επαληθευτεί. Παρακαλούμε ελέγξτε το email σας", // Password Reset Page - 'forgot_password' => "Ξέχασες τον κωδικό σου; Κάνε κλικ", - 'reset_password' => "Επαναφορά κωδικού πρόσβασης", - 'reset_sent_check_email' => "Ένα email με οδηγίες για την επαναφορά του κωδικού πρόσβασης σας έχει σταλεί. Παρακαλώ ελέγξτε το email σας.", - 'password_reset_successful' => "Επιτυχής επαναφορά κωδικού πρόσβασης", + "forgot_password" => "Ξέχασες τον κωδικό σου; Κάνε κλικ", + "reset_password" => "Επαναφορά κωδικού πρόσβασης", + "reset_sent_check_email" => "Ένα email με οδηγίες για την επαναφορά του κωδικού πρόσβασης σας έχει σταλεί. Παρακαλώ ελέγξτε το email σας.", + "password_reset_successful" => "Επιτυχής επαναφορά κωδικού πρόσβασης", // Header - 'profile' => "Προφίλ", - 'subscriptions' => "Συνδρομές", - 'stats' => "Στατιστικές", - 'settings' => "Ρυθμίσεις", - 'admin' => "Διαχείριση", - 'about' => "Για εμάς", - 'logout' => "Αποσύνδεση", + "profile" => "Προφίλ", + "subscriptions" => "Συνδρομές", + "stats" => "Στατιστικές", + "settings" => "Ρυθμίσεις", + "admin" => "Διαχείριση", + "about" => "Για εμάς", + "logout" => "Αποσύνδεση", // Subscriptions page "subscription" => "Συνδρομή", "no_subscriptions_yet" => "Δεν υπάρχουν καταχωρημένες συνδρομές", "add_first_subscription" => "Προσθήκη πρώτης συνδρομής", - 'new_subscription' => "Νέα συνδρομή", - 'search' => "Αναζήτηση", - 'state' => "Κατάσταση", - 'alphanumeric' => "Αλφαριθμητική", - 'sort' => "Ταξινόμηση", - 'name' => "Όνομα", - 'last_added' => "Τελευταία προσθήκη", - 'price' => "Τιμή", - 'next_payment' => "Επόμενη πληρωμή", - 'inactive' => "Απενεργοποίηση συνδρομής", - 'member' => "Χρήστης", - 'category' => "Κατηγορία", - 'payment_method' => "Τρόπος πληρωμής", + "new_subscription" => "Νέα συνδρομή", + "search" => "Αναζήτηση", + "state" => "Κατάσταση", + "alphanumeric" => "Αλφαριθμητική", + "sort" => "Ταξινόμηση", + "name" => "Όνομα", + "last_added" => "Τελευταία προσθήκη", + "price" => "Τιμή", + "next_payment" => "Επόμενη πληρωμή", + "inactive" => "Απενεργοποίηση συνδρομής", + "member" => "Χρήστης", + "category" => "Κατηγορία", + "payment_method" => "Τρόπος πληρωμής", "Daily" => "Καθημερινή", "Weekly" => "Εβδομαδιαία", "Monthly" => "Μηνιαία", @@ -91,37 +91,37 @@ "cancel" => "Ακύρωση", "upload_logo" => "Φόρτωση λογότυπου", // Statistics page - 'cant_convert_currency' => "Χρησιμοποιείτε πολλαπλά νομίσματα στις συνδρομές σας. Για να έχετε έγκυρα και ακριβή στατιστικά στοιχεία, παρακαλούμε ορίστε ένα κλειδί API Fixer στη σελίδα ρυθμίσεων.", - 'general_statistics' => "Γενικές στατιστικές", - 'active_subscriptions' => "Ενεργές συνδρομές", - 'inactive_subscriptions' => "Ανενεργές συνδρομές", - 'monthly_cost' => "Μηνιαίο κόστος", - 'yearly_cost' => "Ετήσιο κόστος", - 'average_monthly' => "Μέσο μηνιαίο κόστος συνδρομής", - 'most_expensive' => "Πιο ακριβό κόστος συνδρομής", - 'amount_due' => "Ποσό που οφείλεται αυτόν τον μήνα", - 'percentage_budget_used' => "Ποσοστό προϋπολογισμού που χρησιμοποιείται", - 'budget_remaining' => "Υπόλοιπο προϋπολογισμού", - 'amount_over_budget' => "Ποσό πάνω από τον προϋπολογισμό", - 'monthly_savings' => "Μηνιαίες εξοικονομήσεις (σε ανενεργές συνδρομές)", - 'yearly_savings' => "Ετήσιες εξοικονομήσεις (σε ανενεργές συνδρομές)", - 'split_views' => "Διαχωρισμένες προβολές", - 'category_split' => "Διαχωρισμός κατηγορίας", - 'household_split' => "Διαχωρισμός νοικοκυριού", - 'payment_method_split' => "Διαχωρισμός τρόπου πληρωμής", + "cant_convert_currency" => "Χρησιμοποιείτε πολλαπλά νομίσματα στις συνδρομές σας. Για να έχετε έγκυρα και ακριβή στατιστικά στοιχεία, παρακαλούμε ορίστε ένα κλειδί API Fixer στη σελίδα ρυθμίσεων.", + "general_statistics" => "Γενικές στατιστικές", + "active_subscriptions" => "Ενεργές συνδρομές", + "inactive_subscriptions" => "Ανενεργές συνδρομές", + "monthly_cost" => "Μηνιαίο κόστος", + "yearly_cost" => "Ετήσιο κόστος", + "average_monthly" => "Μέσο μηνιαίο κόστος συνδρομής", + "most_expensive" => "Πιο ακριβό κόστος συνδρομής", + "amount_due" => "Ποσό που οφείλεται αυτόν τον μήνα", + "percentage_budget_used" => "Ποσοστό προϋπολογισμού που χρησιμοποιείται", + "budget_remaining" => "Υπόλοιπο προϋπολογισμού", + "amount_over_budget" => "Ποσό πάνω από τον προϋπολογισμό", + "monthly_savings" => "Μηνιαίες εξοικονομήσεις (σε ανενεργές συνδρομές)", + "yearly_savings" => "Ετήσιες εξοικονομήσεις (σε ανενεργές συνδρομές)", + "split_views" => "Διαχωρισμένες προβολές", + "category_split" => "Διαχωρισμός κατηγορίας", + "household_split" => "Διαχωρισμός νοικοκυριού", + "payment_method_split" => "Διαχωρισμός τρόπου πληρωμής", // About page - 'about_and_credits' => "Σχετικά και Credits", + "about_and_credits" => "Σχετικά και Credits", "credits" => "Credits", - 'license' => "License", - 'issues_and_requests' => "Προβλήματα και αιτήσεις", - 'the_author' => "Προγραμματιστής", - 'icons' => "Εικονίδια", - 'payment_icons' => "Εικονίδια Payment", + "license" => "License", + "issues_and_requests" => "Προβλήματα και αιτήσεις", + "the_author" => "Προγραμματιστής", + "icons" => "Εικονίδια", + "payment_icons" => "Εικονίδια Payment", // Profile page - 'upload_avatar' => "μεταφόρτωση άβαταρ", - 'file_type_error' => "Το αρχείο πρέπει να είναι τύπου jpg, jpeg, png, webp ή gif", - 'user_details' => "Λεπτομέρειες χρήστη", - 'two_factor_authentication' => "Διπλής πιστοποίησης", + "upload_avatar" => "μεταφόρτωση άβαταρ", + "file_type_error" => "Το αρχείο πρέπει να είναι τύπου jpg, jpeg, png, webp ή gif", + "user_details" => "Λεπτομέρειες χρήστη", + "two_factor_authentication" => "Διπλής πιστοποίησης", "two_factor_info" => "Ο έλεγχος ταυτότητας δύο παραγόντων προσθέτει ένα επιπλέον επίπεδο ασφάλειας στο λογαριασμό σας.
Θα χρειαστείτε μια εφαρμογή ελέγχου ταυτότητας όπως το Google Authenticator, το Authy ή το Ente Auth για να σαρώσετε τον κωδικό QR.", "two_factor_enabled_info" => "Ο λογαριασμός σας είναι ασφαλής με τον έλεγχο ταυτότητας δύο παραγόντων. Μπορείτε να τον απενεργοποιήσετε κάνοντας κλικ στο κουμπί παραπάνω.", "enable_two_factor_authentication" => "Ενεργοποίηση διπλής πιστοποίησης", @@ -144,7 +144,7 @@ "delete_member" => "Διαγραφή μέλους", "cant_delete_member" => "Δεν ειναι δυνατή η διαγραφή του βασικού μέλους", "cant_delete_member_in_use" => "Δεν ειναι δυνατή η διαγραφή μέλους που χρησιμοποιείται", - 'household_info' => "Το πεδίο ηλεκτρονικού ταχυδρομείου επιτρέπει στα μέλη του νοικοκυριού να ειδοποιούνται για συνδρομές που πρόκειται να λήξουν.", + "household_info" => "Το πεδίο ηλεκτρονικού ταχυδρομείου επιτρέπει στα μέλη του νοικοκυριού να ειδοποιούνται για συνδρομές που πρόκειται να λήξουν.", "notifications" => "Ειδοποιήσεις", "enable_email_notifications" => "Ενεργοποίηση ειδοποιήσεων με email", "notify_me" => "Ειδοποίησε με", @@ -176,8 +176,8 @@ "discord_bot_avatar_url" => "Discord Bot Avatar URL", "pushover" => "Pushover", "pushover_user_key" => "Pushover User Key", - 'host' => "Host", - 'topic' => "Θέμα", + "host" => "Host", + "topic" => "Θέμα", "ignore_ssl_errors" => "Αγνόηση σφαλμάτων SSL", "categories" => "Κατηγορίες", "save_category" => "Αποθήκευση κατηγορίας", diff --git a/includes/i18n/en.php b/includes/i18n/en.php index 47ce3a99e..bc09569dc 100644 --- a/includes/i18n/en.php +++ b/includes/i18n/en.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "You need to create an account before you're able to login", - 'username' => "Username", - 'password' => "Password", + "username" => "Username", + "password" => "Password", "email" => "Email", "confirm_password" => "Confirm Password", "main_currency" => "Main Currency", @@ -16,42 +16,42 @@ "register" => "Register", "restore_database" => "Restore Database", // Login Page - 'please_login' => "Please login", - 'stay_logged_in' => "Stay logged in (30 days)", - 'login' => "Login", - 'login_failed' => "Login details are incorrect", - 'registration_successful' => "Registration successful", - 'user_email_waiting_verification' => "Your email needs to be verified. Please check your email.", + "please_login" => "Please login", + "stay_logged_in" => "Stay logged in (30 days)", + "login" => "Login", + "login_failed" => "Login details are incorrect", + "registration_successful" => "Registration successful", + "user_email_waiting_verification" => "Your email needs to be verified. Please check your email.", // Password Reset Page - 'forgot_password' => "Forgot Password", - 'reset_password' => "Reset Password", - 'reset_sent_check_email' => "Reset email sent. Please check your email.", - 'password_reset_successful' => "Password reset successful", + "forgot_password" => "Forgot Password", + "reset_password" => "Reset Password", + "reset_sent_check_email" => "Reset email sent. Please check your email.", + "password_reset_successful" => "Password reset successful", // Header - 'profile' => "Profile", - 'subscriptions' => "Subscriptions", - 'stats' => "Statistics", - 'settings' => "Settings", - 'admin' => "Admin", - 'about' => "About", - 'logout' => "Logout", + "profile" => "Profile", + "subscriptions" => "Subscriptions", + "stats" => "Statistics", + "settings" => "Settings", + "admin" => "Admin", + "about" => "About", + "logout" => "Logout", // Subscriptions page "subscription" => "Subscription", "no_subscriptions_yet" => "You don't have any subscriptions yet", "add_first_subscription" => "Add first subscription", - 'new_subscription' => "New Subscription", - 'search' => "Search", - 'state' => "State", - 'alphanumeric' => "Alphanumeric", - 'sort' => "Sort", - 'name' => "Name", - 'last_added' => "Last Added", - 'price' => "Price", - 'next_payment' => "Next Payment", - 'inactive' => "Disable Subscription", - 'member' => "Member", - 'category' => "Category", - 'payment_method' => "Payment Method", + "new_subscription" => "New Subscription", + "search" => "Search", + "state" => "State", + "alphanumeric" => "Alphanumeric", + "sort" => "Sort", + "name" => "Name", + "last_added" => "Last Added", + "price" => "Price", + "next_payment" => "Next Payment", + "inactive" => "Disable Subscription", + "member" => "Member", + "category" => "Category", + "payment_method" => "Payment Method", "Daily" => "Daily", "Weekly" => "Weekly", "Monthly" => "Monthly", @@ -91,38 +91,38 @@ "cancel" => "Cancel", "upload_logo" => "Upload Logo", // Statistics page - 'cant_convert_currency' => "You are using multiple currencies on your subscriptions. To have valid and accurate statistics, please set a Fixer API Key on the settings page.", - 'general_statistics' => "General Statistics", - 'active_subscriptions' => "Active Subscriptions", - 'inactive_subscriptions' => "Inactive Subscriptions", - 'monthly_cost' => "Monthly Cost", - 'yearly_cost' => "Yearly Cost", - 'average_monthly' => "Average Monthly Subscription Cost", - 'most_expensive' => "Most Expensive Subscription Cost", - 'amount_due' => "Amount due this month", - 'percentage_budget_used' => "Percentage of budget used", - 'budget_remaining' => "Budget Remaining", - 'amount_over_budget' => "Amount over budget", - 'monthly_savings' => "Monthly Savings (on inactive subscriptions)", - 'yearly_savings' => "Yearly Savings (on inactive subscriptions)", - 'split_views' => "Split Views", - 'category_split' => "Category Split", - 'household_split' => "Household Split", - 'payment_method_split' => "Payment Method Split", + "cant_convert_currency" => "You are using multiple currencies on your subscriptions. To have valid and accurate statistics, please set a Fixer API Key on the settings page.", + "general_statistics" => "General Statistics", + "active_subscriptions" => "Active Subscriptions", + "inactive_subscriptions" => "Inactive Subscriptions", + "monthly_cost" => "Monthly Cost", + "yearly_cost" => "Yearly Cost", + "average_monthly" => "Average Monthly Subscription Cost", + "most_expensive" => "Most Expensive Subscription Cost", + "amount_due" => "Amount due this month", + "percentage_budget_used" => "Percentage of budget used", + "budget_remaining" => "Budget Remaining", + "amount_over_budget" => "Amount over budget", + "monthly_savings" => "Monthly Savings (on inactive subscriptions)", + "yearly_savings" => "Yearly Savings (on inactive subscriptions)", + "split_views" => "Split Views", + "category_split" => "Category Split", + "household_split" => "Household Split", + "payment_method_split" => "Payment Method Split", // About page - 'about_and_credits' => "About and Credits", + "about_and_credits" => "About and Credits", "credits" => "Credits", - 'license' => "License", - 'issues_and_requests' => "Issues and Requests", - 'the_author' => "The author", - 'icons' => "Icons", - 'payment_icons' => "Payment Icons", + "license" => "License", + "issues_and_requests" => "Issues and Requests", + "the_author" => "The author", + "icons" => "Icons", + "payment_icons" => "Payment Icons", // Profile page - 'upload_avatar' => "Upload Avatar", - 'file_type_error' => "The file type supplied is not supported.", - 'user_details' => "User Details", - 'two_factor_authentication' => "Two Factor Authentication", - 'two_factor_info' => "Two Factor Authentication adds an extra layer of security to your account.
You will need an authenticator app like Google Authenticator, Authy or Ente Auth to scan the QR code.", + "upload_avatar" => "Upload Avatar", + "file_type_error" => "The file type supplied is not supported.", + "user_details" => "User Details", + "two_factor_authentication" => "Two Factor Authentication", + "two_factor_info" => "Two Factor Authentication adds an extra layer of security to your account.
You will need an authenticator app like Google Authenticator, Authy or Ente Auth to scan the QR code.", "two_factor_enabled_info" => "Your account is secure with Two Factor Authentication. You can disable it by clicking the button above.", "enable_two_factor_authentication" => "Enable Two Factor Authentication", "2fa_already_enabled" => "Two Factor Authentication is already enabled", @@ -144,7 +144,7 @@ "delete_member" => "Delete Member", "cant_delete_member" => "Can't delete main member", "cant_delete_member_in_use" => "Can't delete member in use in subscription", - 'household_info' => "Email field allows for household members to be notified of subscriptions about to expire.", + "household_info" => "Email field allows for household members to be notified of subscriptions about to expire.", "notifications" => "Notifications", "enable_email_notifications" => "Enable email notifications", "notify_me" => "Notify me", @@ -177,8 +177,8 @@ "discord_bot_avatar_url" => "Discord Bot Avatar URL", "pushover" => "Pushover", "pushover_user_key" => "Pushover User Key", - 'host' => "Host", - 'topic' => "Topic", + "host" => "Host", + "topic" => "Topic", "ignore_ssl_errors" => "Ignore SSL Errors", "categories" => "Categories", "save_category" => "Save Category", diff --git a/includes/i18n/es.php b/includes/i18n/es.php index b83327d8f..ac25df4bd 100644 --- a/includes/i18n/es.php +++ b/includes/i18n/es.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "Necesitas crear una cuenta antes de poder iniciar sesión", - 'username' => "Nombre de Usuario", - 'password' => "Contraseña", + "username" => "Nombre de Usuario", + "password" => "Contraseña", "email" => "Correo Electrónico", "confirm_password" => "Confirmar Contraseña", "main_currency" => "Moneda Principal", @@ -16,42 +16,42 @@ "register" => "Registrar", "restore_database" => "Restaurar Base de Datos", // Login Page - 'please_login' => "Por favor, inicia sesión", - 'stay_logged_in' => "Mantener sesión iniciada (30 días)", - 'login' => "Iniciar Sesión", - 'login_failed' => "Los detalles de inicio de sesión son incorrectos", - 'registration_successful' => "Registro efectuado con éxito", - 'user_email_waiting_verification' => "Tu correo electrónico necesita ser verificado. Por favor, compruebe su correo electrónico", + "please_login" => "Por favor, inicia sesión", + "stay_logged_in" => "Mantener sesión iniciada (30 días)", + "login" => "Iniciar Sesión", + "login_failed" => "Los detalles de inicio de sesión son incorrectos", + "registration_successful" => "Registro efectuado con éxito", + "user_email_waiting_verification" => "Tu correo electrónico necesita ser verificado. Por favor, compruebe su correo electrónico", // Password Reset Page - 'forgot_password' => "¿Olvidaste tu contraseña?", - 'reset_password' => "Restablecer Contraseña", - 'reset_sent_check_email' => "Se ha enviado un correo electrónico con instrucciones para restablecer la contraseña. Por favor, compruebe su correo electrónico.", - 'password_reset_successful' => "Contraseña restablecida con éxito", + "forgot_password" => "¿Olvidaste tu contraseña?", + "reset_password" => "Restablecer Contraseña", + "reset_sent_check_email" => "Se ha enviado un correo electrónico con instrucciones para restablecer la contraseña. Por favor, compruebe su correo electrónico.", + "password_reset_successful" => "Contraseña restablecida con éxito", // Header - 'profile' => "Perfil", - 'subscriptions' => "Suscripciones", - 'stats' => "Estadísticas", - 'settings' => "Configuración", - 'admin' => "Admin", - 'about' => "Acerca de", - 'logout' => "Cerrar Sesión", + "profile" => "Perfil", + "subscriptions" => "Suscripciones", + "stats" => "Estadísticas", + "settings" => "Configuración", + "admin" => "Admin", + "about" => "Acerca de", + "logout" => "Cerrar Sesión", // Subscriptions page "subscription" => "Suscripción", "no_subscriptions_yet" => "Aún no tienes ninguna suscripción", "add_first_subscription" => "Añadir primera suscripción", - 'new_subscription' => "Nueva Suscripción", - 'search' => "Buscar", - 'state' => "Estado", - 'alphanumeric' => "Alfanumérico", - 'sort' => "Ordenar", - 'name' => "Nombre", - 'last_added' => "Última Añadida", - 'price' => "Precio", - 'next_payment' => "Próximo Pago", - 'inactive' => "Desactivar Suscripción", - 'member' => "Miembro", - 'category' => "Categoría", - 'payment_method' => "Método de Pago", + "new_subscription" => "Nueva Suscripción", + "search" => "Buscar", + "state" => "Estado", + "alphanumeric" => "Alfanumérico", + "sort" => "Ordenar", + "name" => "Nombre", + "last_added" => "Última Añadida", + "price" => "Precio", + "next_payment" => "Próximo Pago", + "inactive" => "Desactivar Suscripción", + "member" => "Miembro", + "category" => "Categoría", + "payment_method" => "Método de Pago", "Daily" => "Diario", "Weekly" => "Semanal", "Monthly" => "Mensual", @@ -91,39 +91,39 @@ "cancel" => "Cancelar", "upload_logo" => "Cargar Logotipo", // Statistics page - 'cant_convert_currency' => "Estás utilizando varias monedas en tus suscripciones. Para disponer de estadísticas válidas y precisas, establece una clave API Fixer en la página de configuración.", - 'general_statistics' => "Estadísticas Generales", - 'active_subscriptions' => "Suscripciones Activas", - 'inactive_subscriptions' => "Suscripciones inactivas", - 'monthly_cost' => "Costo Mensual", - 'yearly_cost' => "Costo Anual", - 'average_monthly' => "Costo Promedio Mensual de Suscripción", - 'most_expensive' => "Costo de Suscripción Más Caro", - 'amount_due' => "Monto a pagar este mes", - 'percentage_budget_used' => "Porcentaje del presupuesto utilizado", - 'budget_remaining' => "Presupuesto Restante", - 'amount_over_budget' => "Monto sobre el presupuesto", - 'monthly_savings' => "Ahorro Mensual (en suscripciones inactivas)", - 'yearly_savings' => "Ahorro Anual (en suscripciones inactivas)", - 'split_views' => "Vistas Divididas", - 'category_split' => "División por Categoría", - 'household_split' => "División por Hogar", - 'payment_method_split' => "División por Método de Pago", + "cant_convert_currency" => "Estás utilizando varias monedas en tus suscripciones. Para disponer de estadísticas válidas y precisas, establece una clave API Fixer en la página de configuración.", + "general_statistics" => "Estadísticas Generales", + "active_subscriptions" => "Suscripciones Activas", + "inactive_subscriptions" => "Suscripciones inactivas", + "monthly_cost" => "Costo Mensual", + "yearly_cost" => "Costo Anual", + "average_monthly" => "Costo Promedio Mensual de Suscripción", + "most_expensive" => "Costo de Suscripción Más Caro", + "amount_due" => "Monto a pagar este mes", + "percentage_budget_used" => "Porcentaje del presupuesto utilizado", + "budget_remaining" => "Presupuesto Restante", + "amount_over_budget" => "Monto sobre el presupuesto", + "monthly_savings" => "Ahorro Mensual (en suscripciones inactivas)", + "yearly_savings" => "Ahorro Anual (en suscripciones inactivas)", + "split_views" => "Vistas Divididas", + "category_split" => "División por Categoría", + "household_split" => "División por Hogar", + "payment_method_split" => "División por Método de Pago", // About page - 'about_and_credits' => "Acerca de y Créditos", + "about_and_credits" => "Acerca de y Créditos", "credits" => "Créditos", - 'license' => "Licencia", - 'issues_and_requests' => "Problemas y Solicitudes", - 'the_author' => "El autor", - 'icons' => "Iconos", - 'payment_icons' => "Iconos de Pago", + "license" => "Licencia", + "issues_and_requests" => "Problemas y Solicitudes", + "the_author" => "El autor", + "icons" => "Iconos", + "payment_icons" => "Iconos de Pago", // Profile page - 'upload_avatar' => "Subir avatar", - 'file_type_error' => "El archivo debe ser una imagen en formato PNG, JPG, WEBP o SVG", - 'user_details' => "Detalles del Usuario", - 'two_factor_authentication' => "Autenticación de Dos Factores", - 'two_factor_info' => "La autenticación de dos factores añade una capa adicional de seguridad a tu cuenta.
Necesitarás una aplicación de autenticación como Google Authenticator, Authy o Ente Auth para escanear el código QR.", - 'two_factor_enabled_info' => "Tu cuenta está segura con la autenticación de dos factores. Puedes desactivarla haciendo clic en el botón de arriba.", + "upload_avatar" => "Subir avatar", + "file_type_error" => "El archivo debe ser una imagen en formato PNG, JPG, WEBP o SVG", + "user_details" => "Detalles del Usuario", + "two_factor_authentication" => "Autenticación de Dos Factores", + "two_factor_info" => "La autenticación de dos factores añade una capa adicional de seguridad a tu cuenta.
Necesitarás una aplicación de autenticación como Google Authenticator, Authy o Ente Auth para escanear el código QR.", + "two_factor_enabled_info" => "Tu cuenta está segura con la autenticación de dos factores. Puedes desactivarla haciendo clic en el botón de arriba.", "enable_two_factor_authentication" => "Habilitar Autenticación de Dos Factores", "2fa_already_enabled" => "La autenticación de dos factores ya está habilitada", "totp_code_incorrect" => "El código TOTP es incorrecto", @@ -176,8 +176,8 @@ "discord_bot_avatar_url" => "URL del avatar del bot", "pushover" => "Pushover", "pushover_user_key" => "Clave de usuario", - 'host' => "Host", - 'topic' => "Topico", + "host" => "Host", + "topic" => "Topico", "ignore_ssl_errors" => "Ignorar errores SSL", "categories" => "Categorías", "save_category" => "Guardar Categoría", diff --git a/includes/i18n/fr.php b/includes/i18n/fr.php index b298b1f9a..10b4b5fbd 100644 --- a/includes/i18n/fr.php +++ b/includes/i18n/fr.php @@ -3,8 +3,8 @@ $i18n = [ // Page d'inscription "create_account" => "Vous devez créer un compte avant de pouvoir vous connecter", - 'username' => "Nom d'utilisateur", - 'password' => "Mot de passe", + "username" => "Nom d'utilisateur", + "password" => "Mot de passe", "email" => "Courriel", "confirm_password" => "Confirmer le mot de passe", "main_currency" => "Devise principale", @@ -16,42 +16,42 @@ "register" => "S'inscrire", "restore_database" => "Restaurer la base de données", // Page de connexion - 'please_login' => "Veuillez vous connecter", - 'stay_logged_in' => "Rester connecté (30 jours)", - 'login' => "Se connecter", - 'login_failed' => "Les détails de connexion sont incorrects", - 'registration_successful' => "Inscription réussie", - 'user_email_waiting_verification' => "Votre email doit être vérifié. Veuillez vérifier votre email", + "please_login" => "Veuillez vous connecter", + "stay_logged_in" => "Rester connecté (30 jours)", + "login" => "Se connecter", + "login_failed" => "Les détails de connexion sont incorrects", + "registration_successful" => "Inscription réussie", + "user_email_waiting_verification" => "Votre email doit être vérifié. Veuillez vérifier votre email", // Password Reset Page - 'forgot_password' => "Mot de passe oublié", - 'reset_password' => "Réinitialiser le mot de passe", - 'reset_sent_check_email' => "Un courriel a été envoyé à l'adresse fournie. Vérifiez votre boîte de réception.", - 'password_reset_successful' => "Réinitialisation du mot de passe réussie", + "forgot_password" => "Mot de passe oublié", + "reset_password" => "Réinitialiser le mot de passe", + "reset_sent_check_email" => "Un courriel a été envoyé à l'adresse fournie. Vérifiez votre boîte de réception.", + "password_reset_successful" => "Réinitialisation du mot de passe réussie", // En-tête - 'profile' => "Profil", - 'subscriptions' => "Abonnements", - 'stats' => "Statistiques", - 'settings' => "Paramètres", - 'admin' => "Admin", - 'about' => "À propos", - 'logout' => "Déconnexion", + "profile" => "Profil", + "subscriptions" => "Abonnements", + "stats" => "Statistiques", + "settings" => "Paramètres", + "admin" => "Admin", + "about" => "À propos", + "logout" => "Déconnexion", // Page d'abonnements "subscription" => "Abonnement", "no_subscriptions_yet" => "Vous n'avez pas encore d'abonnement", "add_first_subscription" => "Ajoutez le premier abonnement", - 'new_subscription' => "Nouvel abonnement", - 'search' => "Rechercher", - 'state' => "État", - 'alphanumeric' => "Alphanumérique", - 'sort' => "Trier", - 'name' => "Nom", - 'last_added' => "Dernier ajouté", - 'price' => "Prix", - 'next_payment' => "Prochain paiement", - 'inactive' => "Désactiver l'abonnement", - 'member' => "Membre", - 'category' => "Catégorie", - 'payment_method' => "Méthode de paiement", + "new_subscription" => "Nouvel abonnement", + "search" => "Rechercher", + "state" => "État", + "alphanumeric" => "Alphanumérique", + "sort" => "Trier", + "name" => "Nom", + "last_added" => "Dernier ajouté", + "price" => "Prix", + "next_payment" => "Prochain paiement", + "inactive" => "Désactiver l'abonnement", + "member" => "Membre", + "category" => "Catégorie", + "payment_method" => "Méthode de paiement", "Daily" => "Quotidien", "Weekly" => "Hebdomadaire", "Monthly" => "Mensuel", @@ -91,39 +91,39 @@ "cancel" => "Annuler", "upload_logo" => "Télécharger le logo", // Page de statistiques - 'cant_convert_currency' => "Vous utilisez plusieurs devises dans vos abonnements. Pour obtenir des statistiques valides et précises, veuillez définir une clé API Fixer sur la page des paramètres.", - 'general_statistics' => "Statistiques générales", - 'active_subscriptions' => "Abonnements actifs", - 'inactive_subscriptions' => "Abonnements inactifs", - 'monthly_cost' => "Coût mensuel", - 'yearly_cost' => "Coût annuel", - 'average_monthly' => "Coût moyen mensuel de l'abonnement", - 'most_expensive' => "Coût d'abonnement le plus élevé", - 'amount_due' => "Montant dû ce mois-ci", - 'percentage_budget_used' => "Pourcentage du budget utilisé", - 'budget_remaining' => "Budget restant", - 'amount_over_budget' => "Montant dépassant le budget", - 'monthly_savings' => "Économies mensuelles (sur les abonnements inactifs)", - 'yearly_savings' => "Économies annuelles (sur les abonnements inactifs)", - 'split_views' => "Vues partagées", - 'category_split' => "Répartition par catégorie", - 'household_split' => "Répartition du ménage", - 'payment_method_split' => "Répartition par méthode de paiement", + "cant_convert_currency" => "Vous utilisez plusieurs devises dans vos abonnements. Pour obtenir des statistiques valides et précises, veuillez définir une clé API Fixer sur la page des paramètres.", + "general_statistics" => "Statistiques générales", + "active_subscriptions" => "Abonnements actifs", + "inactive_subscriptions" => "Abonnements inactifs", + "monthly_cost" => "Coût mensuel", + "yearly_cost" => "Coût annuel", + "average_monthly" => "Coût moyen mensuel de l'abonnement", + "most_expensive" => "Coût d'abonnement le plus élevé", + "amount_due" => "Montant dû ce mois-ci", + "percentage_budget_used" => "Pourcentage du budget utilisé", + "budget_remaining" => "Budget restant", + "amount_over_budget" => "Montant dépassant le budget", + "monthly_savings" => "Économies mensuelles (sur les abonnements inactifs)", + "yearly_savings" => "Économies annuelles (sur les abonnements inactifs)", + "split_views" => "Vues partagées", + "category_split" => "Répartition par catégorie", + "household_split" => "Répartition du ménage", + "payment_method_split" => "Répartition par méthode de paiement", // Page À propos - 'about_and_credits' => "À propos et crédits", + "about_and_credits" => "À propos et crédits", "credits" => "Crédits", - 'license' => "Licence", - 'issues_and_requests' => "Problèmes et demandes", - 'the_author' => "L'auteur", - 'icons' => "Icônes", - 'payment_icons' => "Icônes de paiement", + "license" => "Licence", + "issues_and_requests" => "Problèmes et demandes", + "the_author" => "L'auteur", + "icons" => "Icônes", + "payment_icons" => "Icônes de paiement", // Page de profil - 'upload_avatar' => "Télécharger un Avatar", - 'file_type_error' => "Le type de fichier n'est pas pris en charge", - 'user_details' => "Détails de l'utilisateur", - 'two_factor_authentication' => "Authentification à deux facteurs", - 'two_factor_info' => "L'authentification à deux facteurs ajoute une couche supplémentaire de sécurité à votre compte.
Vous aurez besoin d'une application d'authentification comme Google Authenticator, Authy ou Ente Auth pour scanner le code QR.", - 'two_factor_enabled_info' => "Votre compte est sécurisé grâce à l'authentification à deux facteurs. Vous pouvez la désactiver en cliquant sur le bouton ci-dessus.", + "upload_avatar" => "Télécharger un Avatar", + "file_type_error" => "Le type de fichier n'est pas pris en charge", + "user_details" => "Détails de l'utilisateur", + "two_factor_authentication" => "Authentification à deux facteurs", + "two_factor_info" => "L'authentification à deux facteurs ajoute une couche supplémentaire de sécurité à votre compte.
Vous aurez besoin d'une application d'authentification comme Google Authenticator, Authy ou Ente Auth pour scanner le code QR.", + "two_factor_enabled_info" => "Votre compte est sécurisé grâce à l'authentification à deux facteurs. Vous pouvez la désactiver en cliquant sur le bouton ci-dessus.", "enable_two_factor_authentication" => "Activer l'authentification à deux facteurs", "2fa_already_enabled" => "L'authentification à deux facteurs est déjà activée", "totp_code_incorrect" => "Le code TOTP est incorrect", @@ -176,8 +176,8 @@ "discord_bot_avatar_url" => "URL de l'avatar du bot Discord", "pushover" => "Pushover", "pushover_user_key" => "Clé utilisateur Pushover", - 'host' => "Hôte", - 'topic' => "Sujet", + "host" => "Hôte", + "topic" => "Sujet", "ignore_ssl_errors" => "Ignorer les erreurs SSL", "categories" => "Catégories", "save_category" => "Enregistrer la catégorie", diff --git a/includes/i18n/it.php b/includes/i18n/it.php index db8724cb5..199bd4066 100644 --- a/includes/i18n/it.php +++ b/includes/i18n/it.php @@ -2,136 +2,136 @@ $i18n = [ // Registration - 'create_account' => 'Devi creare un account prima di poter accedere', - 'username' => 'Nome utente', - 'password' => 'Password', - 'email' => 'Email', - 'confirm_password' => 'Conferma password', - 'main_currency' => 'Valuta principale', - 'language' => 'Lingua', - 'passwords_dont_match' => 'Le password non corrispondono', - 'username_exists' => 'Il nome utente esiste già', - 'email_exists' => 'L\'indirizzo email esiste già', - 'registration_failed' => 'Registrazione fallita, riprova.', - 'register' => 'Registrati', + "create_account" => 'Devi creare un account prima di poter accedere', + "username" => 'Nome utente', + "password" => 'Password', + "email" => 'Email', + "confirm_password" => 'Conferma password', + "main_currency" => 'Valuta principale', + "language" => 'Lingua', + "passwords_dont_match" => 'Le password non corrispondono', + "username_exists" => 'Il nome utente esiste già', + "email_exists" => 'L\'indirizzo email esiste già', + "registration_failed" => 'Registrazione fallita, riprova.', + "register" => 'Registrati', "restore_database" => 'Ripristina database', // Login - 'please_login' => 'Per favore, accedi', - 'stay_logged_in' => 'Rimani connesso (30 giorni)', - 'login' => 'Accedi', - 'login_failed' => 'Le credenziali non sono corrette', - 'registration_successful' => "L'account è stato creato con successo", - 'user_email_waiting_verification' => "L'e-mail deve essere verificata. Controlla la tua email", + "please_login" => 'Per favore, accedi', + "stay_logged_in" => 'Rimani connesso (30 giorni)', + "login" => 'Accedi', + "login_failed" => 'Le credenziali non sono corrette', + "registration_successful" => "L'account è stato creato con successo", + "user_email_waiting_verification" => "L'e-mail deve essere verificata. Controlla la tua email", // Password Reset Page - 'forgot_password' => "Hai dimenticato la password?", - 'reset_password' => "Reimposta password", - 'reset_sent_check_email' => "Un'email è stata inviata. Controlla la tua casella di posta", - 'password_reset_successful' => "La password è stata reimpostata con successo", + "forgot_password" => "Hai dimenticato la password?", + "reset_password" => "Reimposta password", + "reset_sent_check_email" => "Un'email è stata inviata. Controlla la tua casella di posta", + "password_reset_successful" => "La password è stata reimpostata con successo", // Header - 'profile' => 'Profilo', - 'subscriptions' => 'Abbonamenti', - 'stats' => 'Statistiche', - 'settings' => 'Impostazioni', - 'admin' => 'Amministrazione', - 'about' => 'Informazioni', - 'logout' => 'Esci', + "profile" => 'Profilo', + "subscriptions" => 'Abbonamenti', + "stats" => 'Statistiche', + "settings" => 'Impostazioni', + "admin" => 'Amministrazione', + "about" => 'Informazioni', + "logout" => 'Esci', // Subscriptions - 'subscription' => 'Abbonamento', - 'no_subscriptions_yet' => 'Non hai ancora nessun abbonamento', - 'add_first_subscription' => 'Aggiungo il tuo primo abbonamento', - 'new_subscription' => 'Nuovo abbonamento', - 'search' => 'Cerca', - 'state' => "Stato", - 'alphanumeric' => 'Alfanumerico', - 'sort' => 'Ordina', - 'name' => 'Nome', - 'last_added' => 'Ultimo aggiunto', - 'price' => 'Prezzo', - 'next_payment' => 'Prossimo pagamento', - 'inactive' => 'Disattiva abbonamento', - 'member' => 'Membro', - 'category' => 'Categoria', - 'payment_method' => 'Metodo di pagamento', - 'Daily' => 'Quotidiano', - 'Weekly' => 'Settimanale', - 'Monthly' => 'Mensile', - 'Yearly' => 'Annuale', - 'daily' => 'Giorno/i', - 'weekly' => 'Settimana/e', - 'monthly' => 'Mese/i', - 'yearly' => 'Anno/i', - 'days' => 'giorni', - 'weeks' => 'settimane', - 'months' => 'mesi', - 'years' => 'anni', - 'external_url' => 'Apri URL esterno', - 'empty_page' => 'Pagina vuota', - 'clear_filters' => 'Pulisci filtri', - 'no_matching_subscriptions' => 'Nessun abbonamento corrispondente', + "subscription" => 'Abbonamento', + "no_subscriptions_yet" => 'Non hai ancora nessun abbonamento', + "add_first_subscription" => 'Aggiungo il tuo primo abbonamento', + "new_subscription" => 'Nuovo abbonamento', + "search" => 'Cerca', + "state" => "Stato", + "alphanumeric" => 'Alfanumerico', + "sort" => 'Ordina', + "name" => 'Nome', + "last_added" => 'Ultimo aggiunto', + "price" => 'Prezzo', + "next_payment" => 'Prossimo pagamento', + "inactive" => 'Disattiva abbonamento', + "member" => 'Membro', + "category" => 'Categoria', + "payment_method" => 'Metodo di pagamento', + "Daily" => 'Quotidiano', + "Weekly" => 'Settimanale', + "Monthly" => 'Mensile', + "Yearly" => 'Annuale', + "daily" => 'Giorno/i', + "weekly" => 'Settimana/e', + "monthly" => 'Mese/i', + "yearly" => 'Anno/i', + "days" => 'giorni', + "weeks" => 'settimane', + "months" => 'mesi', + "years" => 'anni', + "external_url" => 'Apri URL esterno', + "empty_page" => 'Pagina vuota', + "clear_filters" => 'Pulisci filtri', + "no_matching_subscriptions" => 'Nessun abbonamento corrispondente', "clone" => "Clona", // Add/Edit Subscription - 'add_subscription' => 'Aggiungi abbonamento', - 'edit_subscription' => 'Modifica abbonamento', - 'subscription_name' => 'Nome abbonamento', - 'logo_preview' => 'Anteprima del logo', - 'search_logo' => 'Cerca il logo sul web', - 'web_search' => 'Ricerca web', - 'currency' => 'Valuta', - 'payment_every' => 'Pagamento ogni', - 'frequency' => 'Frequenza', - 'cycle' => 'Ciclo', - 'no_category' => 'Nessuna categoria', - 'paid_by' => 'Pagato da', - 'url' => 'URL', - 'notes' => 'Note', - 'enable_notifications' => 'Abilita notifiche per questo abbonamento', - 'default_value_from_settings' => 'Valore predefinito dalle impostazioni', + "add_subscription" => 'Aggiungi abbonamento', + "edit_subscription" => 'Modifica abbonamento', + "subscription_name" => 'Nome abbonamento', + "logo_preview" => 'Anteprima del logo', + "search_logo" => 'Cerca il logo sul web', + "web_search" => 'Ricerca web', + "currency" => 'Valuta', + "payment_every" => 'Pagamento ogni', + "frequency" => 'Frequenza', + "cycle" => 'Ciclo', + "no_category" => 'Nessuna categoria', + "paid_by" => 'Pagato da', + "url" => 'URL', + "notes" => 'Note', + "enable_notifications" => 'Abilita notifiche per questo abbonamento', + "default_value_from_settings" => 'Valore predefinito dalle impostazioni', "cancellation_notification" => "Notifica di cancellazione", - 'delete' => 'Cancella', - 'cancel' => 'Annulla', - 'upload_logo' => 'Carica logo', + "delete" => 'Cancella', + "cancel" => 'Annulla', + "upload_logo" => 'Carica logo', // Statistics - 'cant_convert_currency' => "Si stanno utilizzando più valute per gli abbonamenti. Per avere statistiche valide e precise, impostare una chiave API Fixer nella pagina delle impostazioni.", - 'general_statistics' => 'Statistiche generali', - 'active_subscriptions' => 'Abbonamenti attivi', - 'inactive_subscriptions' => 'Abbonamenti inattivi', - 'monthly_cost' => 'Costo mensile', - 'yearly_cost' => 'Costo annuale', - 'average_monthly' => "Costo medio mensile dell'abbonamento", - 'most_expensive' => "Costo dell'abbonamento più elevato", - 'amount_due' => 'Importo dovuto questo mese', - 'percentage_budget_used' => 'Percentuale del budget utilizzata', - 'budget_remaining' => 'Budget rimanente', - 'amount_over_budget' => 'Importo oltre il budget', - 'monthly_savings' => 'Risparmi mensili (su abbonamenti inattivi)', - 'yearly_savings' => 'Risparmi annuali (su abbonamenti inattivi)', - 'split_views' => 'Visualizzazioni con grafici', - 'category_split' => 'Suddivisione per categoria', - 'household_split' => 'Suddivisione per nucleo familiare', - 'payment_method_split' => 'Suddivisione per metodo di pagamento', + "cant_convert_currency" => "Si stanno utilizzando più valute per gli abbonamenti. Per avere statistiche valide e precise, impostare una chiave API Fixer nella pagina delle impostazioni.", + "general_statistics" => 'Statistiche generali', + "active_subscriptions" => 'Abbonamenti attivi', + "inactive_subscriptions" => 'Abbonamenti inattivi', + "monthly_cost" => 'Costo mensile', + "yearly_cost" => 'Costo annuale', + "average_monthly" => "Costo medio mensile dell'abbonamento", + "most_expensive" => "Costo dell'abbonamento più elevato", + "amount_due" => 'Importo dovuto questo mese', + "percentage_budget_used" => 'Percentuale del budget utilizzata', + "budget_remaining" => 'Budget rimanente', + "amount_over_budget" => 'Importo oltre il budget', + "monthly_savings" => 'Risparmi mensili (su abbonamenti inattivi)', + "yearly_savings" => 'Risparmi annuali (su abbonamenti inattivi)', + "split_views" => 'Visualizzazioni con grafici', + "category_split" => 'Suddivisione per categoria', + "household_split" => 'Suddivisione per nucleo familiare', + "payment_method_split" => 'Suddivisione per metodo di pagamento', // About - 'about_and_credits' => 'Informazioni e crediti', + "about_and_credits" => 'Informazioni e crediti', "credits" => "Crediti", - 'license' => 'Licenza', - 'issues_and_requests' => 'Problemi e richieste', - 'the_author' => "L'autore", - 'icons' => 'Icone', - 'payment_icons' => 'Icone di pagamento', + "license" => 'Licenza', + "issues_and_requests" => 'Problemi e richieste', + "the_author" => "L'autore", + "icons" => 'Icone', + "payment_icons" => 'Icone di pagamento', // Profile - 'upload_avatar' => 'Carica avatar', - 'file_type_error' => 'Il tipo di file fornito non è supportato.', - 'user_details' => 'Dettagli utente', - 'two_factor_authentication' => 'Autenticazione a due fattori', - 'two_factor_info' => "L'Autenticazione a due fattori aggiunge un ulteriore livello di sicurezza al vostro account.
Per scansionare il codice QR è necessaria un'app di autenticazione come Google Authenticator, Authy o Ente Auth.", - 'two_factor_enabled_info' => "Il vostro account è sicuro con l'Autenticazione a due fattori. È possibile disattivarla facendo clic sul pulsante in alto.", + "upload_avatar" => 'Carica avatar', + "file_type_error" => 'Il tipo di file fornito non è supportato.', + "user_details" => 'Dettagli utente', + "two_factor_authentication" => 'Autenticazione a due fattori', + "two_factor_info" => "L'Autenticazione a due fattori aggiunge un ulteriore livello di sicurezza al vostro account.
Per scansionare il codice QR è necessaria un'app di autenticazione come Google Authenticator, Authy o Ente Auth.", + "two_factor_enabled_info" => "Il vostro account è sicuro con l'Autenticazione a due fattori. È possibile disattivarla facendo clic sul pulsante in alto.", "enable_two_factor_authentication" => "Abilita l'autenticazione a due fattori", "2fa_already_enabled" => "L'autenticazione a due fattori è già abilitata", "totp_code_incorrect" => "Il codice TOTP è incorretto", @@ -147,25 +147,25 @@ // Settings "monthly_budget" => "Budget mensile", "budget_info" => "Il budget mensile viene utilizzato per calcolare le statistiche. Se non si desidera utilizzare questa funzionalità, impostare il budget su 0.", - 'household' => 'Nucleo familiare', - 'save_member' => 'Salva membro', - 'delete_member' => 'Elimina membro', - 'cant_delete_member' => 'Non è possibile eliminare il membro principale', - 'cant_delete_member_in_use' => 'Non è possibile eliminare un membro che utilizza almeno un abbonamento', - 'household_info' => 'Il campo e-mail consente ai membri del nucleo familiare di essere avvisati degli abbonamenti in procinto di scadere.', - 'notifications' => 'Notifiche', - 'enable_email_notifications' => 'Abilita le notifiche via e-mail', - 'notify_me' => 'Avvisami', - 'day_before' => 'giorno prima', - 'days_before' => 'giorni prima', - 'smtp_address' => 'Indirizzo SMTP', - 'port' => 'Porta', - 'tls' => 'TLS', - 'ssl' => 'SSL', - 'smtp_username' => 'Nome utente SMTP', - 'smtp_password' => 'Password SMTP', - 'from_email' => 'Da quale e-mail (Opzionale)', - 'smtp_info' => 'La password SMTP viene memorizzata e trasmessa in chiaro. Per motivi di sicurezza, si prega di creare un account da utilizzare solo per questo.', + "household" => 'Nucleo familiare', + "save_member" => 'Salva membro', + "delete_member" => 'Elimina membro', + "cant_delete_member" => 'Non è possibile eliminare il membro principale', + "cant_delete_member_in_use" => 'Non è possibile eliminare un membro che utilizza almeno un abbonamento', + "household_info" => 'Il campo e-mail consente ai membri del nucleo familiare di essere avvisati degli abbonamenti in procinto di scadere.', + "notifications" => 'Notifiche', + "enable_email_notifications" => 'Abilita le notifiche via e-mail', + "notify_me" => 'Avvisami', + "day_before" => 'giorno prima', + "days_before" => 'giorni prima', + "smtp_address" => 'Indirizzo SMTP', + "port" => 'Porta', + "tls" => 'TLS', + "ssl" => 'SSL', + "smtp_username" => 'Nome utente SMTP', + "smtp_password" => 'Password SMTP', + "from_email" => 'Da quale e-mail (Opzionale)', + "smtp_info" => 'La password SMTP viene memorizzata e trasmessa in chiaro. Per motivi di sicurezza, si prega di creare un account da utilizzare solo per questo.', "telegram" => "Telegram", "telegram_bot_token" => "Telegram Bot Token", "telegram_chat_id" => "Telegram Chat ID", @@ -183,28 +183,28 @@ "discord_bot_avatar_url" => "URL dell'avatar del bot", "pushover" => "Pushover", "pushover_user_key" => "Chiave utente", - 'host' => "Host", - 'topic' => "Topic", + "host" => "Host", + "topic" => "Topic", "ignore_ssl_errors" => "Ignora errori SSL", - 'categories' => 'Categorie', - 'save_category' => 'Salva categoria', - 'delete_category' => 'Elimina categoria', - 'cant_delete_category_in_use' => 'Non è possibile eliminare una categoria in uso da almeno un abbonamento', - 'currencies' => 'Valute', - 'save_currency' => 'Salva valuta', - 'delete_currency' => 'Elimina valuta', - 'cant_delete_main_currency' => 'Impossibile eliminare la valuta principale', - 'cant_delete_currency_in_use' => 'Non è possibile eliminare la valuta in uso da almeno un abbonamento', - 'exchange_update' => "Tassi di cambio aggiornati l'ultima volta il", - 'currency_info' => 'Trova le valute supportate e i codici valuta corretti su', - 'currency_performance' => 'Per garantire prestazioni migliori, tieni solo le valute che utilizzi.', - 'fixer_api_key' => 'Chiave API di Fixer', - 'provider' => 'Fornitore', - 'fixer_info' => 'Se utilizzi più valute e desideri visualizzare statistiche e ordinamenti accurati sugli abbonamenti, è necessaria una chiave API (Gratuita) da Fixer.', - 'get_key' => 'Ottieni la tua chiave su', - 'get_free_fixer_api_key' => 'Ottieni gratuitamente la chiave API di Fixer', - 'get_key_alternative' => 'In alternativa, puoi ottenere gratuitamente una chiave API di Fixer da', - 'display_settings' => 'Impostazioni di visualizzazione', + "categories" => 'Categorie', + "save_category" => 'Salva categoria', + "delete_category" => 'Elimina categoria', + "cant_delete_category_in_use" => 'Non è possibile eliminare una categoria in uso da almeno un abbonamento', + "currencies" => 'Valute', + "save_currency" => 'Salva valuta', + "delete_currency" => 'Elimina valuta', + "cant_delete_main_currency" => 'Impossibile eliminare la valuta principale', + "cant_delete_currency_in_use" => 'Non è possibile eliminare la valuta in uso da almeno un abbonamento', + "exchange_update" => "Tassi di cambio aggiornati l'ultima volta il", + "currency_info" => 'Trova le valute supportate e i codici valuta corretti su', + "currency_performance" => 'Per garantire prestazioni migliori, tieni solo le valute che utilizzi.', + "fixer_api_key" => 'Chiave API di Fixer', + "provider" => 'Fornitore', + "fixer_info" => 'Se utilizzi più valute e desideri visualizzare statistiche e ordinamenti accurati sugli abbonamenti, è necessaria una chiave API (Gratuita) da Fixer.', + "get_key" => 'Ottieni la tua chiave su', + "get_free_fixer_api_key" => 'Ottieni gratuitamente la chiave API di Fixer', + "get_key_alternative" => 'In alternativa, puoi ottenere gratuitamente una chiave API di Fixer da', + "display_settings" => 'Impostazioni di visualizzazione', "theme_settings" => 'Impostazioni del tema', "colors" => 'Colori', "custom_colors" => 'Colori personalizzati', @@ -219,32 +219,32 @@ "reset_custom_colors" => "Ripristina colori personalizzati", "custom_css" => "CSS personalizzato", "save_custom_css" => "Salva CSS personalizzato", - 'calculate_monthly_price' => 'Calcola e mostra il prezzo mensile per tutti gli abbonamenti', - 'convert_prices' => 'Converti sempre e mostra i prezzi nella mia valuta principale (più lento)', + "calculate_monthly_price" => 'Calcola e mostra il prezzo mensile per tutti gli abbonamenti', + "convert_prices" => 'Converti sempre e mostra i prezzi nella mia valuta principale (più lento)', "show_original_price" => "Mostra anche il prezzo originale quando vengono effettuate conversioni o calcoli", "disabled_subscriptions" => 'Abbonamenti disattivati', "hide_disabled_subscriptions" => 'Nascondi gli abbonamenti disattivati', "show_disabled_subscriptions_at_the_bottom" => 'Mostra gli abbonamenti disattivati in fondo', - 'experimental_settings' => 'Impostazioni sperimentali', - 'remove_background' => 'Prova a rimuovere lo sfondo dei loghi dalla ricerca delle immagini', + "experimental_settings" => 'Impostazioni sperimentali', + "remove_background" => 'Prova a rimuovere lo sfondo dei loghi dalla ricerca delle immagini', "use_mobile_navigation_bar" => "Utilizza la barra di navigazione mobile", - 'experimental_info' => 'Le impostazioni sperimentali potrebbero non funzioneranno perfettamente.', - 'payment_methods' => 'Metodi di pagamento', - 'payment_methods_info' => 'Fai clic su un metodo di pagamento per abilitarlo/disabilitarlo.', - 'rename_payment_methods_info' => 'Fai clic sul nome di un metodo di pagamento per rinominarlo.', - 'cant_delete_payment_method_in_use' => 'Non è possibile disabilitare un metodo di pagamento in uso', - 'add_custom_payment' => 'Aggiungi metodo di pagamento personalizzato', - 'payment_method_name' => 'Nome del metodo di pagamento', - 'payment_method_added_successfuly' => 'Metodo di pagamento aggiunto con successo', - 'payment_method_removed' => 'Metodo di pagamento rimosso', - 'disable' => 'Disabilita', - 'enable' => 'Abilita', - 'rename_payment_method' => 'Rinomina metodo di pagamento', - 'payment_renamed' => 'Metodo di pagamento rinominato', - 'payment_not_renamed' => 'Metodo di pagamento non rinominato', - 'test' => 'Test', - 'add' => 'Aggiungi', - 'save' => 'Salva', + "experimental_info" => 'Le impostazioni sperimentali potrebbero non funzioneranno perfettamente.', + "payment_methods" => 'Metodi di pagamento', + "payment_methods_info" => 'Fai clic su un metodo di pagamento per abilitarlo/disabilitarlo.', + "rename_payment_methods_info" => 'Fai clic sul nome di un metodo di pagamento per rinominarlo.', + "cant_delete_payment_method_in_use" => 'Non è possibile disabilitare un metodo di pagamento in uso', + "add_custom_payment" => 'Aggiungi metodo di pagamento personalizzato', + "payment_method_name" => 'Nome del metodo di pagamento', + "payment_method_added_successfuly" => 'Metodo di pagamento aggiunto con successo', + "payment_method_removed" => 'Metodo di pagamento rimosso', + "disable" => 'Disabilita', + "enable" => 'Abilita', + "rename_payment_method" => 'Rinomina metodo di pagamento', + "payment_renamed" => 'Metodo di pagamento rinominato', + "payment_not_renamed" => 'Metodo di pagamento non rinominato', + "test" => 'Test', + "add" => 'Aggiungi', + "save" => 'Salva', "reset" => 'Ripristina', "main_accent_color_error" => 'Il colore principale e il colore di accento non possono essere uguali', "backup_and_restore" => 'Backup e ripristino', @@ -260,22 +260,22 @@ "delete_account_info" => "L'eliminazione del vostro account cancellerà anche tutte le vostre sottoscrizioni e impostazioni.", // Filters - 'filter' => 'Filtra', - 'clear' => 'Pulisci', + "filter" => 'Filtra', + "clear" => 'Pulisci', // Toast - 'success' => 'Successo', + "success" => 'Successo', // Endpoint responses - 'session_expired' => 'La tua sessione è scaduta. Effettua nuovamente il login', - 'fields_missing' => 'Mancano alcuni campi', - 'fill_all_fields' => 'Si prega di compilare tutti i campi', - 'fill_mandatory_fields' => 'Si prega di compilare tutti i campi obbligatori', - 'error' => 'Errore', + "session_expired" => 'La tua sessione è scaduta. Effettua nuovamente il login', + "fields_missing" => 'Mancano alcuni campi', + "fill_all_fields" => 'Si prega di compilare tutti i campi', + "fill_mandatory_fields" => 'Si prega di compilare tutti i campi obbligatori', + "error" => 'Errore', // Category - 'failed_add_category' => 'Impossibile aggiungere la categoria', - 'failed_edit_category' => 'Impossibile modificare la categoria', + "failed_add_category" => 'Impossibile aggiungere la categoria', + "failed_edit_category" => 'Impossibile modificare la categoria', "category_in_use" => "La categoria è attualmente in uso da almeno un abbonamento", "failed_remove_category" => "Impossibile rimuovere la categoria", "category_saved" => "Categoria salvata", diff --git a/includes/i18n/ko.php b/includes/i18n/ko.php index be5dec8c3..4cfc1176f 100644 --- a/includes/i18n/ko.php +++ b/includes/i18n/ko.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "로그인 하기 전에 회원가입을 진행해야 합니다.", - 'username' => "유저명", - 'password' => "비밀번호", + "username" => "유저명", + "password" => "비밀번호", "email" => "이메일", "confirm_password" => "비밀번호 확인", "main_currency" => "기본 통화", @@ -16,42 +16,42 @@ "register" => "회원가입", "restore_database" => "데이터베이스 복구", // Login Page - 'please_login' => "로그인 해 주세요.", - 'stay_logged_in' => "로그인 유지 (30일)", - 'login' => "로그인", - 'login_failed' => "로그인 정보가 부정확합니다.", - 'registration_successful' => "등록 성공", - 'user_email_waiting_verification' => "이메일을 인증해야 합니다. 이메일을 확인해 주세요.", + "please_login" => "로그인 해 주세요.", + "stay_logged_in" => "로그인 유지 (30일)", + "login" => "로그인", + "login_failed" => "로그인 정보가 부정확합니다.", + "registration_successful" => "등록 성공", + "user_email_waiting_verification" => "이메일을 인증해야 합니다. 이메일을 확인해 주세요.", // Password Reset Page - 'forgot_password' => "비밀번호를 잊으셨나요?", - 'reset_password' => "비밀번호 재설정", - 'reset_sent_check_email' => "비밀번호 재설정 이메일이 전송되었습니다. 이메일을 확인해 주세요.", - 'password_reset_successful' => "비밀번호 재설정 성공", + "forgot_password" => "비밀번호를 잊으셨나요?", + "reset_password" => "비밀번호 재설정", + "reset_sent_check_email" => "비밀번호 재설정 이메일이 전송되었습니다. 이메일을 확인해 주세요.", + "password_reset_successful" => "비밀번호 재설정 성공", // Header - 'profile' => "프로필", - 'subscriptions' => "구독", - 'stats' => "통계", - 'settings' => "설정", - 'admin' => "관리자", - 'about' => "정보", - 'logout' => "로그아웃", + "profile" => "프로필", + "subscriptions" => "구독", + "stats" => "통계", + "settings" => "설정", + "admin" => "관리자", + "about" => "정보", + "logout" => "로그아웃", // Subscriptions page "subscription" => "구독", "no_subscriptions_yet" => "아직 구독을 등록하지 않았습니다.", "add_first_subscription" => "첫번째 구독을 추가하세요.", - 'new_subscription' => "새 구독", - 'search' => "검색", - 'state' => "상태", - 'alphanumeric' => "알파벳순", - 'sort' => "정렬", - 'name' => "이름", - 'last_added' => "최근 등록", - 'price' => "가격", - 'next_payment' => "다음 결제일", - 'inactive' => "구독 비활성화", - 'member' => "구성원", - 'category' => "카테고리", - 'payment_method' => "지불 수단", + "new_subscription" => "새 구독", + "search" => "검색", + "state" => "상태", + "alphanumeric" => "알파벳순", + "sort" => "정렬", + "name" => "이름", + "last_added" => "최근 등록", + "price" => "가격", + "next_payment" => "다음 결제일", + "inactive" => "구독 비활성화", + "member" => "구성원", + "category" => "카테고리", + "payment_method" => "지불 수단", "Daily" => "일간 결제", "Weekly" => "주간 결제", "Monthly" => "월간 결제", @@ -91,39 +91,39 @@ "cancel" => "취소", "upload_logo" => "로고 업로드", // Statistics page - 'cant_convert_currency' => "구독에서 여러 통화를 사용하고 있습니다. 유효하고 정확한 통계를 얻으려면 설정 페이지에서 Fixer API 키를 설정하세요.", - 'general_statistics' => "일반 통계", - 'active_subscriptions' => "활성 구독", - 'inactive_subscriptions' => "비활성 구독", - 'monthly_cost' => "월간 지출", - 'yearly_cost' => "연간 지출", - 'average_monthly' => "월별 평균 구독 비용", - 'most_expensive' => "최고가 구독 비용", - 'amount_due' => "이달의 결제 비용", - 'percentage_budget_used' => "예산 사용률", - 'budget_remaining' => "남은 예산", - 'amount_over_budget' => "예산 초과", - 'monthly_savings' => "월간 절약 (비활성 구독)", - 'yearly_savings' => "연간 절약 (비활성 구독)", - 'split_views' => "분할 표시", - 'category_split' => "카테고리별", - 'household_split' => "가구별", - 'payment_method_split' => "지불방법별", + "cant_convert_currency" => "구독에서 여러 통화를 사용하고 있습니다. 유효하고 정확한 통계를 얻으려면 설정 페이지에서 Fixer API 키를 설정하세요.", + "general_statistics" => "일반 통계", + "active_subscriptions" => "활성 구독", + "inactive_subscriptions" => "비활성 구독", + "monthly_cost" => "월간 지출", + "yearly_cost" => "연간 지출", + "average_monthly" => "월별 평균 구독 비용", + "most_expensive" => "최고가 구독 비용", + "amount_due" => "이달의 결제 비용", + "percentage_budget_used" => "예산 사용률", + "budget_remaining" => "남은 예산", + "amount_over_budget" => "예산 초과", + "monthly_savings" => "월간 절약 (비활성 구독)", + "yearly_savings" => "연간 절약 (비활성 구독)", + "split_views" => "분할 표시", + "category_split" => "카테고리별", + "household_split" => "가구별", + "payment_method_split" => "지불방법별", // About page - 'about_and_credits' => "개요 및 크레딧", + "about_and_credits" => "개요 및 크레딧", "credits" => "크레딧", - 'license' => "라이선스", - 'issues_and_requests' => "이슈 및 요청", - 'the_author' => "제작자", - 'icons' => "아이콘", - 'payment_icons' => "지불 방식 아이콘", + "license" => "라이선스", + "issues_and_requests" => "이슈 및 요청", + "the_author" => "제작자", + "icons" => "아이콘", + "payment_icons" => "지불 방식 아이콘", // Profile page - 'upload_avatar' => "아바타 업로드", - 'file_type_error' => "제공된 파일이 지원하지 않는 타입입니다.", - 'user_details' => "유저 상세", - 'two_factor_authentication' => "이중 인증", - 'two_factor_info' => "2단계 인증은 계정에 보안을 한층 더 강화합니다. QR 코드를 스캔하려면 Google Authenticator, Authy 또는 Ente Auth와 같은 인증 앱이 필요합니다.", - 'two_factor_enabled_info' => "계정은 2단계 인증으로 안전하게 보호됩니다. 위의 버튼을 클릭하여 비활성화할 수 있습니다.", + "upload_avatar" => "아바타 업로드", + "file_type_error" => "제공된 파일이 지원하지 않는 타입입니다.", + "user_details" => "유저 상세", + "two_factor_authentication" => "이중 인증", + "two_factor_info" => "2단계 인증은 계정에 보안을 한층 더 강화합니다. QR 코드를 스캔하려면 Google Authenticator, Authy 또는 Ente Auth와 같은 인증 앱이 필요합니다.", + "two_factor_enabled_info" => "계정은 2단계 인증으로 안전하게 보호됩니다. 위의 버튼을 클릭하여 비활성화할 수 있습니다.", "enable_two_factor_authentication" => "2단계 인증 활성화", "2fa_already_enabled" => "2단계 인증이 이미 활성화되어 있습니다.", "totp_code_incorrect" => "TOTP 코드가 올바르지 않습니다.", @@ -144,7 +144,7 @@ "delete_member" => "구성원 삭제", "cant_delete_member" => "메인 구성원은 삭제할 수 없습니다", "cant_delete_member_in_use" => "구독에서 사용 중인 구성원은 삭제할 수 없습니다", - 'household_info' => "이메일 항목은 가구 구성원이 구독 만료에 대한 안내를 받기 위해 필요합니다.", + "household_info" => "이메일 항목은 가구 구성원이 구독 만료에 대한 안내를 받기 위해 필요합니다.", "notifications" => "알림", "enable_email_notifications" => "이메일 알림 활성화", "notify_me" => "알림 받기", @@ -176,9 +176,8 @@ "discord_bot_avatar_url" => "디스코드 봇 아바타 URL", "pushover" => "Pushover", "pushover_user_key" => "Pushover User Key", - ~ - 'host' => "호스트", - 'topic' => "토픽", + "host" => "호스트", + "topic" => "토픽", "ignore_ssl_errors" => "SSL 에러 무시", "categories" => "카테고리", "save_category" => "카테고리 저장", diff --git a/includes/i18n/pl.php b/includes/i18n/pl.php index c918274c3..3855e23e2 100644 --- a/includes/i18n/pl.php +++ b/includes/i18n/pl.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "Musisz utworzyć konto, zanim będziesz mógł się zalogować", - 'username' => "Nazwa użytkownika", - 'password' => "Hasło", + "username" => "Nazwa użytkownika", + "password" => "Hasło", "email" => "E-mail", "confirm_password" => "Potwierdź hasło", "main_currency" => "Główna waluta", @@ -16,42 +16,42 @@ "register" => "Rejestracja", "restore_database" => "Przywróć bazę danych", // Login Page - 'please_login' => "Proszę się zalogować", - 'stay_logged_in' => "Pozostań zalogowany (30 dni)", - 'login' => "Zaloguj się", - 'login_failed' => "Dane logowania są nieprawidłowe", - 'registration_successful' => "Pomyślnie zarejestrowano", - 'user_email_waiting_verification' => "Twój adres e-mail musi zostać zweryfikowany. Sprawdź swój adres e-mail", + "please_login" => "Proszę się zalogować", + "stay_logged_in" => "Pozostań zalogowany (30 dni)", + "login" => "Zaloguj się", + "login_failed" => "Dane logowania są nieprawidłowe", + "registration_successful" => "Pomyślnie zarejestrowano", + "user_email_waiting_verification" => "Twój adres e-mail musi zostać zweryfikowany. Sprawdź swój adres e-mail", // Password Reset Page - 'forgot_password' => "Zapomniałeś hasła? Kliknij tutaj", - 'reset_password' => "Zresetuj hasło", - 'reset_sent_check_email' => "Link do zresetowania hasła został wysłany na Twój adres e-mail", - 'password_reset_successful' => "Hasło zostało zresetowane pomyślnie", + "forgot_password" => "Zapomniałeś hasła? Kliknij tutaj", + "reset_password" => "Zresetuj hasło", + "reset_sent_check_email" => "Link do zresetowania hasła został wysłany na Twój adres e-mail", + "password_reset_successful" => "Hasło zostało zresetowane pomyślnie", // Header - 'profile' => "Profil", - 'subscriptions' => "Subskrypcje", - 'stats' => "Statystyki", - 'settings' => "Ustawienia", - 'admin' => "Admin", - 'about' => "O aplikacji", - 'logout' => "Wyloguj się", + "profile" => "Profil", + "subscriptions" => "Subskrypcje", + "stats" => "Statystyki", + "settings" => "Ustawienia", + "admin" => "Admin", + "about" => "O aplikacji", + "logout" => "Wyloguj się", // Subscriptions page "subscription" => "Subskrypcja", "no_subscriptions_yet" => "Nie masz jeszcze żadnych subskrypcji", "add_first_subscription" => "Dodaj pierwszą subskrypcję", - 'new_subscription' => "Nowa subskrypcja", - 'search' => "Szukaj", - 'state' => "Stan", - 'alphanumeric' => "Alfanumeryczny", - 'sort' => "Sortuj", - 'name' => "Nazwa", - 'last_added' => "Ostatnio dodane", - 'price' => "Cena", - 'next_payment' => "Następna płatność", - 'inactive' => "Wyłącz subskrypcję", - 'member' => "Użytkownik", - 'category' => "Kategoria", - 'payment_method' => "Metoda płatności", + "new_subscription" => "Nowa subskrypcja", + "search" => "Szukaj", + "state" => "Stan", + "alphanumeric" => "Alfanumeryczny", + "sort" => "Sortuj", + "name" => "Nazwa", + "last_added" => "Ostatnio dodane", + "price" => "Cena", + "next_payment" => "Następna płatność", + "inactive" => "Wyłącz subskrypcję", + "member" => "Użytkownik", + "category" => "Kategoria", + "payment_method" => "Metoda płatności", "Daily" => "Codziennie", "Weekly" => "Co tydzień", "Monthly" => "Miesięcznie", @@ -91,39 +91,39 @@ "cancel" => "Anuluj", "upload_logo" => "Prześlij logo", // Statistics page - 'cant_convert_currency' => "Używasz wielu walut w swoich subskrypcjach. Aby uzyskać prawidłowe i dokładne statystyki, należy ustawić klucz API Fixer na stronie ustawień.", - 'general_statistics' => "Statystyki ogólne", - 'active_subscriptions' => "Aktywne subskrypcje", - 'inactive_subscriptions' => "Nieaktywne subskrypcje", - 'monthly_cost' => "Koszt miesięczny", - 'yearly_cost' => "Koszt roczny", - 'average_monthly' => "Średni miesięczny koszt subskrypcji", - 'most_expensive' => "Najdroższy koszt subskrypcji", - 'amount_due' => "Kwota należna w tym miesiącu", - 'percentage_budget_used' => "Procent wykorzystania budżetu", - 'budget_remaining' => "Pozostały budżet", - 'amount_over_budget' => "Kwota przekraczająca budżet", - 'monthly_savings' => "Miesięczne oszczędności (w przypadku nieaktywnych subskrypcji)", - 'yearly_savings' => "Roczne oszczędności (w przypadku nieaktywnych subskrypcji)", - 'split_views' => "Podziel widoki", - 'category_split' => "Podział kategorii", - 'household_split' => "Podział gospodarstwa domowego", - 'payment_method_split' => "Podział metod płatności", + "cant_convert_currency" => "Używasz wielu walut w swoich subskrypcjach. Aby uzyskać prawidłowe i dokładne statystyki, należy ustawić klucz API Fixer na stronie ustawień.", + "general_statistics" => "Statystyki ogólne", + "active_subscriptions" => "Aktywne subskrypcje", + "inactive_subscriptions" => "Nieaktywne subskrypcje", + "monthly_cost" => "Koszt miesięczny", + "yearly_cost" => "Koszt roczny", + "average_monthly" => "Średni miesięczny koszt subskrypcji", + "most_expensive" => "Najdroższy koszt subskrypcji", + "amount_due" => "Kwota należna w tym miesiącu", + "percentage_budget_used" => "Procent wykorzystania budżetu", + "budget_remaining" => "Pozostały budżet", + "amount_over_budget" => "Kwota przekraczająca budżet", + "monthly_savings" => "Miesięczne oszczędności (w przypadku nieaktywnych subskrypcji)", + "yearly_savings" => "Roczne oszczędności (w przypadku nieaktywnych subskrypcji)", + "split_views" => "Podziel widoki", + "category_split" => "Podział kategorii", + "household_split" => "Podział gospodarstwa domowego", + "payment_method_split" => "Podział metod płatności", // About page - 'about_and_credits' => "Informacje i podziękowania", + "about_and_credits" => "Informacje i podziękowania", "credits" => "Podziękowania", - 'license' => "Licencja", - 'issues_and_requests' => "Problemy i prośby", - 'the_author' => "Autor", - 'icons' => "Ikony", - 'payment_icons' => "Ikony płatności", + "license" => "Licencja", + "issues_and_requests" => "Problemy i prośby", + "the_author" => "Autor", + "icons" => "Ikony", + "payment_icons" => "Ikony płatności", // Profile page - 'upload_avatar' => "Prześlij awatar", - 'file_type_error' => "Podany typ pliku nie jest obsługiwany.", - 'user_details' => "Szczegóły użytkownika", - 'two_factor_authentication' => "Uwierzytelnianie dwuskładnikowe", - 'two_factor_info' => "Uwierzytelnianie dwuskładnikowe dodaje dodatkową warstwę zabezpieczeń do konta.
Do zeskanowania kodu QR potrzebna będzie aplikacja uwierzytelniająca, taka jak Google Authenticator, Authy lub Ente Auth.", - 'two_factor_enabled_info' => "Twoje konto jest bezpieczne dzięki uwierzytelnianiu dwuetapowemu. Możesz ją wyłączyć, klikając przycisk powyżej.", + "upload_avatar" => "Prześlij awatar", + "file_type_error" => "Podany typ pliku nie jest obsługiwany.", + "user_details" => "Szczegóły użytkownika", + "two_factor_authentication" => "Uwierzytelnianie dwuskładnikowe", + "two_factor_info" => "Uwierzytelnianie dwuskładnikowe dodaje dodatkową warstwę zabezpieczeń do konta.
Do zeskanowania kodu QR potrzebna będzie aplikacja uwierzytelniająca, taka jak Google Authenticator, Authy lub Ente Auth.", + "two_factor_enabled_info" => "Twoje konto jest bezpieczne dzięki uwierzytelnianiu dwuetapowemu. Możesz ją wyłączyć, klikając przycisk powyżej.", "enable_two_factor_authentication" => "Włącz uwierzytelnianie dwuskładnikowe", "2fa_already_enabled" => "Uwierzytelnianie dwuskładnikowe jest już włączone", "totp_code_incorrect" => "Kod TOTP jest nieprawidłowy", @@ -144,7 +144,7 @@ "delete_member" => "Usuń użytkownika", "cant_delete_member" => "Nie można usunąć głównego użytkownika", "cant_delete_member_in_use" => "Nie można usunąć tego użytkownika w ramach subskrypcji", - 'household_info' => "Pole e-mail umożliwia powiadamianie domowników o zbliżającym się wygaśnięciu subskrypcji.", + "household_info" => "Pole e-mail umożliwia powiadamianie domowników o zbliżającym się wygaśnięciu subskrypcji.", "notifications" => "Powiadomienia", "enable_email_notifications" => "Włącz powiadomienia e-mail", "notify_me" => "Powiadom mnie", @@ -176,8 +176,8 @@ "discord_bot_avatar_url" => "URL awatara bota", "pushover" => "Pushover", "pushover_user_key" => "Klucz użytkownika", - 'host' => "Host", - 'topic' => "Temat", + "host" => "Host", + "topic" => "Temat", "ignore_ssl_errors" => "Ignoruj błędy SSL", "categories" => "Kategorie", "save_category" => "Zapisz kategorię", diff --git a/includes/i18n/pt.php b/includes/i18n/pt.php index b53fd38ad..c219960c6 100644 --- a/includes/i18n/pt.php +++ b/includes/i18n/pt.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "Tem que criar uma conta antes de poder iniciar sessão", - 'username' => "Nome de utilizador", - 'password' => "Password", + "username" => "Nome de utilizador", + "password" => "Password", "email" => "Email", "confirm_password" => "Confirmar Password", "main_currency" => "Moeda Principal", @@ -16,42 +16,42 @@ "register" => "Registar", "restore_database" => "Restaurar base de dados", // Login Page - 'please_login' => "Por favor inicie sessão", - 'stay_logged_in' => "Manter sessão (30 dias)", - 'login' => "Iniciar Sessão", - 'login_failed' => "Dados de autenticação incorrectos", - 'registration_successful' => "Registo efectuado com sucesso.", - 'user_email_waiting_verification' => "O seu e-mail precisa de ser validado. Verifique o seu correio eletrónico", + "please_login" => "Por favor inicie sessão", + "stay_logged_in" => "Manter sessão (30 dias)", + "login" => "Iniciar Sessão", + "login_failed" => "Dados de autenticação incorrectos", + "registration_successful" => "Registo efectuado com sucesso.", + "user_email_waiting_verification" => "O seu e-mail precisa de ser validado. Verifique o seu correio eletrónico", // Password Reset Page - 'forgot_password' => "Esqueceu-se da password?", - 'reset_password' => "Repor Password", - 'reset_sent_check_email' => "Pedido de reposição de password enviado. Verifique o seu email.", - 'password_reset_successful' => "Password reposta com sucesso", + "forgot_password" => "Esqueceu-se da password?", + "reset_password" => "Repor Password", + "reset_sent_check_email" => "Pedido de reposição de password enviado. Verifique o seu email.", + "password_reset_successful" => "Password reposta com sucesso", // Header - 'profile' => "Perfil", - 'subscriptions' => "Subscrições", - 'stats' => "Estatísticas", - 'settings' => "Definições", - 'admin' => "Administração", - 'about' => "Sobre", - 'logout' => "Terminar Sessão", + "profile" => "Perfil", + "subscriptions" => "Subscrições", + "stats" => "Estatísticas", + "settings" => "Definições", + "admin" => "Administração", + "about" => "Sobre", + "logout" => "Terminar Sessão", // Subscriptions page "subscription" => "Subscrição", "no_subscriptions_yet" => "Ainda não tem subscrições", "add_first_subscription" => "Adicionar primeira subscrição", - 'new_subscription' => "Nova Subscrição", - 'search' => "Pesquisar", - 'state' => "Estado", - 'alphanumeric' => "Alfanumérico", - 'sort' => "Ordenar", - 'name' => "Nome", - 'last_added' => "Última Adicionada", - 'price' => "Preço", - 'next_payment' => "Próximo Pagamento", - 'inactive' => "Desactivar Subscrição", - 'member' => "Membro", - 'category' => "Categoria", - 'payment_method' => "Metodo de Pagamento", + "new_subscription" => "Nova Subscrição", + "search" => "Pesquisar", + "state" => "Estado", + "alphanumeric" => "Alfanumérico", + "sort" => "Ordenar", + "name" => "Nome", + "last_added" => "Última Adicionada", + "price" => "Preço", + "next_payment" => "Próximo Pagamento", + "inactive" => "Desactivar Subscrição", + "member" => "Membro", + "category" => "Categoria", + "payment_method" => "Metodo de Pagamento", "Daily" => "Diario", "Weekly" => "Semanal", "Monthly" => "Mensal", @@ -91,39 +91,39 @@ "cancel" => "Cancelar", "upload_logo" => "Enviar Logo", // Statistics page - 'cant_convert_currency' => "Está a utilizar várias moedas nas suas subscrições. Para obter estatísticas válidas e exactas, defina uma chave API do Fixer na página de definições.", - 'general_statistics' => "Estatísticas Gerais", - 'active_subscriptions' => "Subscrições Activas", - 'inactive_subscriptions' => "Subscrições inactivas", - 'monthly_cost' => "Custo Mensal", - 'yearly_cost' => "Custo Anual", - 'average_monthly' => "Custo Mensal Médio das Subscrições", - 'most_expensive' => "Custo da Subscrição Mais Cara", - 'amount_due' => "Quantia em dívida este mês", - 'percentage_budget_used' => "Percentagem do orçamento usada", - 'budget_remaining' => "Orçamento Restante", - 'amount_over_budget' => "Quantia acima do orçamento", - 'monthly_savings' => "Poupança Mensal (em subscrições inactivas)", - 'yearly_savings' => "Poupança Anual (em subscrições inactivas)", - 'split_views' => "Vistas Divididas", - 'category_split' => "Por Categoria", - 'household_split' => "Por Membro", - 'payment_method_split' => "Por Método de Pagamento", + "cant_convert_currency" => "Está a utilizar várias moedas nas suas subscrições. Para obter estatísticas válidas e exactas, defina uma chave API do Fixer na página de definições.", + "general_statistics" => "Estatísticas Gerais", + "active_subscriptions" => "Subscrições Activas", + "inactive_subscriptions" => "Subscrições inactivas", + "monthly_cost" => "Custo Mensal", + "yearly_cost" => "Custo Anual", + "average_monthly" => "Custo Mensal Médio das Subscrições", + "most_expensive" => "Custo da Subscrição Mais Cara", + "amount_due" => "Quantia em dívida este mês", + "percentage_budget_used" => "Percentagem do orçamento usada", + "budget_remaining" => "Orçamento Restante", + "amount_over_budget" => "Quantia acima do orçamento", + "monthly_savings" => "Poupança Mensal (em subscrições inactivas)", + "yearly_savings" => "Poupança Anual (em subscrições inactivas)", + "split_views" => "Vistas Divididas", + "category_split" => "Por Categoria", + "household_split" => "Por Membro", + "payment_method_split" => "Por Método de Pagamento", // About page - 'about_and_credits' => "Sobre e Créditos", + "about_and_credits" => "Sobre e Créditos", "credits" => "Créditos", - 'license' => "Licença", - 'issues_and_requests' => "Problemas e Pedidos", - 'the_author' => "O Autor", - 'icons' => "Ícones", - 'payment_icons' => "Ícones de Pagamentos", + "license" => "Licença", + "issues_and_requests" => "Problemas e Pedidos", + "the_author" => "O Autor", + "icons" => "Ícones", + "payment_icons" => "Ícones de Pagamentos", // Profile page - 'upload_avatar' => "Enviar avatar", - 'file_type_error' => "Tipo de ficheiro não permitido", - 'user_details' => "Detalhes do utilizador", - 'two_factor_authentication' => "Autenticação de dois fatores", - 'two_factor_info' => "A autenticação de dois factores acrescenta uma camada extra de segurança à sua conta.
Necessitará de uma aplicação de autenticação como o Google Authenticator, Authy ou Ente Auth para ler o código QR.", - 'two_factor_enabled_info' => "A sua conta está segura com a autenticação de dois factores. Pode desactivá-la clicando no botão acima.", + "upload_avatar" => "Enviar avatar", + "file_type_error" => "Tipo de ficheiro não permitido", + "user_details" => "Detalhes do utilizador", + "two_factor_authentication" => "Autenticação de dois fatores", + "two_factor_info" => "A autenticação de dois factores acrescenta uma camada extra de segurança à sua conta.
Necessitará de uma aplicação de autenticação como o Google Authenticator, Authy ou Ente Auth para ler o código QR.", + "two_factor_enabled_info" => "A sua conta está segura com a autenticação de dois factores. Pode desactivá-la clicando no botão acima.", "enable_two_factor_authentication" => "Activar autenticação de dois factores", "2fa_already_enabled" => "A autenticação de dois factores já está activada", "totp_code_incorrect" => "Código TOTP incorrecto", @@ -176,8 +176,8 @@ "discord_bot_avatar_url" => "URL do Avatar do Bot", "pushover" => "Pushover", "pushover_user_key" => "Chave de Utilizador Pushover", - 'host' => "Host", - 'topic' => "Tópico", + "host" => "Host", + "topic" => "Tópico", "ignore_ssl_errors" => "Ignorar erros SSL", "categories" => "Categorias", "save_category" => "Guardar Categoria", diff --git a/includes/i18n/pt_br.php b/includes/i18n/pt_br.php index cf5e7bee5..05ff1369d 100644 --- a/includes/i18n/pt_br.php +++ b/includes/i18n/pt_br.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "É necessário criar uma conta antes de poder se logar", - 'username' => "Usuário", - 'password' => "Senha", + "username" => "Usuário", + "password" => "Senha", "email" => "Email", "confirm_password" => "Confirmar Senha", "main_currency" => "Moeda principal", @@ -16,42 +16,42 @@ "register" => "Registrar", "restore_database" => "Restaurar banco de dados", // Login Page - 'please_login' => "Por favor, faça o login", - 'stay_logged_in' => "Me manter logado (30 dias)", - 'login' => "Login", - 'login_failed' => "As informações de login estão incorretas", - 'registration_successful' => "Registro bem-sucedido", - 'user_email_waiting_verification' => "Seu e-mail precisa ser validado. Por favor, verifique seu e-mail", + "please_login" => "Por favor, faça o login", + "stay_logged_in" => "Me manter logado (30 dias)", + "login" => "Login", + "login_failed" => "As informações de login estão incorretas", + "registration_successful" => "Registro bem-sucedido", + "user_email_waiting_verification" => "Seu e-mail precisa ser validado. Por favor, verifique seu e-mail", // Password Reset Page - 'forgot_password' => "Esqueceu a senha?", - 'reset_password' => "Redefinir senha", - 'reset_sent_check_email' => "Redefinição de senha enviada. Por favor, verifique seu email", - 'password_reset_successful' => "Senha redefinida com sucesso", + "forgot_password" => "Esqueceu a senha?", + "reset_password" => "Redefinir senha", + "reset_sent_check_email" => "Redefinição de senha enviada. Por favor, verifique seu email", + "password_reset_successful" => "Senha redefinida com sucesso", // Header - 'profile' => "Perfil", - 'subscriptions' => "Assinaturas", - 'stats' => "Estatísticas", - 'settings' => "Configurações", - 'admin' => "Admin", - 'about' => "Sobre", - 'logout' => "Sair", + "profile" => "Perfil", + "subscriptions" => "Assinaturas", + "stats" => "Estatísticas", + "settings" => "Configurações", + "admin" => "Admin", + "about" => "Sobre", + "logout" => "Sair", // Subscriptions page "subscription" => "Assinatura", "no_subscriptions_yet" => "Você ainda não tem nenhuma assinatura", "add_first_subscription" => "Adicionar a primeira assinatura", - 'new_subscription' => "Nova assinatura", - 'search' => "Pesquisar", - 'state' => "Estado", - 'alphanumeric' => "Alfanumérico", - 'sort' => "Ordenar", - 'name' => "Nome", - 'last_added' => "Última adicionada", - 'price' => "Preço", - 'next_payment' => "Próximo pagamento", - 'inactive' => "Assinatura inativa", - 'member' => "Membro", - 'category' => "Categoria", - 'payment_method' => "Método de Pagamento", + "new_subscription" => "Nova assinatura", + "search" => "Pesquisar", + "state" => "Estado", + "alphanumeric" => "Alfanumérico", + "sort" => "Ordenar", + "name" => "Nome", + "last_added" => "Última adicionada", + "price" => "Preço", + "next_payment" => "Próximo pagamento", + "inactive" => "Assinatura inativa", + "member" => "Membro", + "category" => "Categoria", + "payment_method" => "Método de Pagamento", "Daily" => "Diário", "Weekly" => "Semanal", "Monthly" => "Mensal", @@ -91,39 +91,39 @@ "cancel" => "Cancelar", "upload_logo" => "Enviar Logo", // Statistics page - 'cant_convert_currency' => "Você está usando várias moedas em suas assinaturas. Para obter estatísticas válidas e precisas, defina uma chave de API do Fixer na página de configurações.", - 'general_statistics' => "Estatísticas gerais", - 'active_subscriptions' => "Assinaturas ativas", - 'inactive_subscriptions' => "Assinaturas inativas", - 'monthly_cost' => "Custo mensal", - 'yearly_cost' => "Custo anual", - 'average_monthly' => "Custom médio mensal", - 'most_expensive' => "Assinatura mais cara", - 'amount_due' => "Valor devido nesse mês", - 'percentage_budget_used' => "Porcentagem do orçamento utilizado", - 'budget_remaining' => "Orçamento restante", - 'amount_over_budget' => "Valor acima do orçamento", - 'monthly_savings' => "Economia mensal (em assinaturas inativas)", - 'yearly_savings' => "Economia anual (em assinaturas inativas)", - 'split_views' => "Visualizações", - 'category_split' => "Por categoria", - 'household_split' => "Por membro", - 'payment_method_split' => "Por método de pagamento", + "cant_convert_currency" => "Você está usando várias moedas em suas assinaturas. Para obter estatísticas válidas e precisas, defina uma chave de API do Fixer na página de configurações.", + "general_statistics" => "Estatísticas gerais", + "active_subscriptions" => "Assinaturas ativas", + "inactive_subscriptions" => "Assinaturas inativas", + "monthly_cost" => "Custo mensal", + "yearly_cost" => "Custo anual", + "average_monthly" => "Custom médio mensal", + "most_expensive" => "Assinatura mais cara", + "amount_due" => "Valor devido nesse mês", + "percentage_budget_used" => "Porcentagem do orçamento utilizado", + "budget_remaining" => "Orçamento restante", + "amount_over_budget" => "Valor acima do orçamento", + "monthly_savings" => "Economia mensal (em assinaturas inativas)", + "yearly_savings" => "Economia anual (em assinaturas inativas)", + "split_views" => "Visualizações", + "category_split" => "Por categoria", + "household_split" => "Por membro", + "payment_method_split" => "Por método de pagamento", // About page - 'about_and_credits' => "Sobre e Créditos", + "about_and_credits" => "Sobre e Créditos", "credits" => "Créditos", - 'license' => "Licença", - 'issues_and_requests' => "Problemas e Pedidos", - 'the_author' => "O autor", - 'icons' => "Ícones", - 'payment_icons' => "Ícones de pagamento", + "license" => "Licença", + "issues_and_requests" => "Problemas e Pedidos", + "the_author" => "O autor", + "icons" => "Ícones", + "payment_icons" => "Ícones de pagamento", // Profile page - 'upload_avatar' => "Carregar avatar", - 'file_type_error' => "Tipo de arquivo não permitido", - 'user_details' => "Informações do Usuário", - 'two_factor_authentication' => "Autenticação de dois fatores", - 'two_factor_info' => "A autenticação de dois fatores adiciona uma camada extra de segurança à sua conta.
Você precisará de um aplicativo autenticador, como o Google Authenticator, Authy ou Ente Auth, para ler o código QR.", - 'two_factor_enabled_info' => "Sua conta está segura com a autenticação de dois fatores. Você pode desativá-la clicando no botão acima.", + "upload_avatar" => "Carregar avatar", + "file_type_error" => "Tipo de arquivo não permitido", + "user_details" => "Informações do Usuário", + "two_factor_authentication" => "Autenticação de dois fatores", + "two_factor_info" => "A autenticação de dois fatores adiciona uma camada extra de segurança à sua conta.
Você precisará de um aplicativo autenticador, como o Google Authenticator, Authy ou Ente Auth, para ler o código QR.", + "two_factor_enabled_info" => "Sua conta está segura com a autenticação de dois fatores. Você pode desativá-la clicando no botão acima.", "enable_two_factor_authentication" => "Ativar autenticação de dois fatores", "2fa_already_enabled" => "A autenticação de dois fatores já está ativada", "totp_code_incorrect" => "Código TOTP incorreto", @@ -144,7 +144,7 @@ "delete_member" => "Excluir membro", "cant_delete_member" => "Não é possível excluir o membro principal", "cant_delete_member_in_use" => "Não é possível excluir um membro em uso em uma assinatura", - 'household_info' => "O email permite que os membros sejam notificados quando uma assinatura estiver para expirar.", + "household_info" => "O email permite que os membros sejam notificados quando uma assinatura estiver para expirar.", "notifications" => "Notificações", "enable_email_notifications" => "Ativar notificações por email", "notify_me" => "Me notificar", @@ -176,8 +176,8 @@ "discord_bot_avatar_url" => "URL do Avatar", "pushover" => "Pushover", "pushover_user_key" => "Chave do Usuário", - 'host' => "Host", - 'topic' => "Tópico", + "host" => "Host", + "topic" => "Tópico", "ignore_ssl_errors" => "Ignorar erros SSL", "categories" => "Categorias", "save_category" => "Salvar categoria", diff --git a/includes/i18n/tr.php b/includes/i18n/tr.php index 10b68e1a3..e9c67b713 100644 --- a/includes/i18n/tr.php +++ b/includes/i18n/tr.php @@ -3,8 +3,8 @@ $i18n = [ // Registration page "create_account" => "Giriş yapabilmeniz için önce bir hesap oluşturmanız gerekiyor", - 'username' => "Kullanıcı Adı", - 'password' => "Şifre", + "username" => "Kullanıcı Adı", + "password" => "Şifre", "email" => "E-posta", "confirm_password" => "Şifreyi Onayla", "main_currency" => "Ana Para Birimi", @@ -16,42 +16,42 @@ "register" => "Kayıt Ol", "restore_database" => "Veritabanını geri yükle", // Login Page - 'please_login' => "Lütfen giriş yapın", - 'stay_logged_in' => "Oturumu açık tut (30 gün)", - 'login' => "Giriş Yap", - 'login_failed' => "Giriş bilgileri hatalı", - 'registration_successful' => "Kayıt başarılı", - 'user_email_waiting_verification' => "E-postanızın doğrulanması gerekiyor. Lütfen e-postanızı kontrol edin", + "please_login" => "Lütfen giriş yapın", + "stay_logged_in" => "Oturumu açık tut (30 gün)", + "login" => "Giriş Yap", + "login_failed" => "Giriş bilgileri hatalı", + "registration_successful" => "Kayıt başarılı", + "user_email_waiting_verification" => "E-postanızın doğrulanması gerekiyor. Lütfen e-postanızı kontrol edin", // Password Reset Page - 'forgot_password' => "Şifremi Unuttum", - 'reset_password' => "Şifreyi Sıfırla", - 'reset_sent_check_email' => "Şifre sıfırlama bağlantısı e-posta adresinize gönderildi. Lütfen e-postanızı kontrol edin.", - 'password_reset_successful' => "Şifre sıfırlama başarılı", + "forgot_password" => "Şifremi Unuttum", + "reset_password" => "Şifreyi Sıfırla", + "reset_sent_check_email" => "Şifre sıfırlama bağlantısı e-posta adresinize gönderildi. Lütfen e-postanızı kontrol edin.", + "password_reset_successful" => "Şifre sıfırlama başarılı", // Header - 'profile' => "Profil", - 'subscriptions' => "Abonelikler", - 'stats' => "İstatistikler", - 'settings' => "Ayarlar", - 'admin' => "Yönetici", - 'about' => "Hakkında", - 'logout' => "Çıkış Yap", + "profile" => "Profil", + "subscriptions" => "Abonelikler", + "stats" => "İstatistikler", + "settings" => "Ayarlar", + "admin" => "Yönetici", + "about" => "Hakkında", + "logout" => "Çıkış Yap", // Subscriptions page "subscription" => "Abonelik", "no_subscriptions_yet" => "Henüz herhangi bir aboneliğiniz yok", "add_first_subscription" => "İlk aboneliği ekle", - 'new_subscription' => "Yeni Abonelik", - 'search' => "Ara", - 'state' => "Durum", - 'alphanumeric' => "Alfanümerik", - 'sort' => "Sırala", - 'name' => "İsim", - 'last_added' => "Son Eklenen", - 'price' => "Fiyat", - 'next_payment' => "Sonraki Ödeme", - 'inactive' => "Aboneliği Devre Dışı Bırak", - 'member' => "Üye", - 'category' => "Kategori", - 'payment_method' => "Ödeme Yöntemi", + "new_subscription" => "Yeni Abonelik", + "search" => "Ara", + "state" => "Durum", + "alphanumeric" => "Alfanümerik", + "sort" => "Sırala", + "name" => "İsim", + "last_added" => "Son Eklenen", + "price" => "Fiyat", + "next_payment" => "Sonraki Ödeme", + "inactive" => "Aboneliği Devre Dışı Bırak", + "member" => "Üye", + "category" => "Kategori", + "payment_method" => "Ödeme Yöntemi", "Daily" => "Günlük", "Weekly" => "Haftalık", "Monthly" => "Aylık", @@ -91,39 +91,39 @@ "cancel" => "İptal", "upload_logo" => "Logo Yükle", // Statistics page - 'cant_convert_currency' => "Aboneliklerinizde birden fazla para birimi kullanıyorsunuz. Geçerli ve doğru istatistiklere sahip olmak için lütfen ayarlar sayfasında bir Fixer API Anahtarı ayarlayın.", - 'general_statistics' => "Genel İstatistikler", - 'active_subscriptions' => "Aktif Abonelikler", - 'inactive_subscriptions' => "Aktif Olmayan Abonelikler", - 'monthly_cost' => "Aylık Maliyet", - 'yearly_cost' => "Yıllık Maliyet", - 'average_monthly' => "Ortalama Aylık Abonelik Maliyeti", - 'most_expensive' => "En Pahalı Abonelik Maliyeti", - 'amount_due' => "Bu ay ödenecek miktar", - 'percentage_budget_used' => "Bütçe Kullanımı", - 'budget_remaining' => "Kalan Bütçe", - 'amount_over_budget' => "Bütçe Aşımı", - 'monthly_savings' => "Aylık Tasarruf (aktif olmayan aboneliklerde)", - 'yearly_savings' => "Yıllık Tasarruf (aktif olmayan aboneliklerde)", - 'split_views' => "Bölünmüş Görünümler", - 'category_split' => "Kategori Bölümü", - 'household_split' => "Hane Bölümü", - 'payment_method_split' => "Ödeme Yöntemi Bölümü", + "cant_convert_currency" => "Aboneliklerinizde birden fazla para birimi kullanıyorsunuz. Geçerli ve doğru istatistiklere sahip olmak için lütfen ayarlar sayfasında bir Fixer API Anahtarı ayarlayın.", + "general_statistics" => "Genel İstatistikler", + "active_subscriptions" => "Aktif Abonelikler", + "inactive_subscriptions" => "Aktif Olmayan Abonelikler", + "monthly_cost" => "Aylık Maliyet", + "yearly_cost" => "Yıllık Maliyet", + "average_monthly" => "Ortalama Aylık Abonelik Maliyeti", + "most_expensive" => "En Pahalı Abonelik Maliyeti", + "amount_due" => "Bu ay ödenecek miktar", + "percentage_budget_used" => "Bütçe Kullanımı", + "budget_remaining" => "Kalan Bütçe", + "amount_over_budget" => "Bütçe Aşımı", + "monthly_savings" => "Aylık Tasarruf (aktif olmayan aboneliklerde)", + "yearly_savings" => "Yıllık Tasarruf (aktif olmayan aboneliklerde)", + "split_views" => "Bölünmüş Görünümler", + "category_split" => "Kategori Bölümü", + "household_split" => "Hane Bölümü", + "payment_method_split" => "Ödeme Yöntemi Bölümü", // About page - 'about_and_credits' => "Hakkında ve Teşekkürler", + "about_and_credits" => "Hakkında ve Teşekkürler", "credits" => "Teşekkürler", - 'license' => "Lisans", - 'issues_and_requests' => "Sorunlar ve İstekler", - 'the_author' => "Yazar", - 'icons' => "İkonlar", - 'payment_icons' => "Ödeme İkonları", + "license" => "Lisans", + "issues_and_requests" => "Sorunlar ve İstekler", + "the_author" => "Yazar", + "icons" => "İkonlar", + "payment_icons" => "Ödeme İkonları", // Profile page - 'upload_avatar' => "Avatarı yükle", - 'file_type_error' => "Dosya türü izin verilmiyor", - 'user_details' => "Kullanıcı Detayları", - 'two_factor_authentication' => "İki Faktörlü Kimlik Doğrulama", - 'two_factor_info' => "İki Faktörlü Kimlik Doğrulama, hesabınıza ekstra bir güvenlik katmanı ekler.
Karekodu taramak için Google Authenticator, Authy veya Ente Auth gibi bir kimlik doğrulayıcı uygulamasına ihtiyacınız olacaktır.", - 'two_factor_enabled_info' => "Hesabınız İki Faktörlü Kimlik Doğrulama ile güvendedir. Yukarıdaki düğmeye tıklayarak devre dışı bırakabilirsiniz.", + "upload_avatar" => "Avatarı yükle", + "file_type_error" => "Dosya türü izin verilmiyor", + "user_details" => "Kullanıcı Detayları", + "two_factor_authentication" => "İki Faktörlü Kimlik Doğrulama", + "two_factor_info" => "İki Faktörlü Kimlik Doğrulama, hesabınıza ekstra bir güvenlik katmanı ekler.
Karekodu taramak için Google Authenticator, Authy veya Ente Auth gibi bir kimlik doğrulayıcı uygulamasına ihtiyacınız olacaktır.", + "two_factor_enabled_info" => "Hesabınız İki Faktörlü Kimlik Doğrulama ile güvendedir. Yukarıdaki düğmeye tıklayarak devre dışı bırakabilirsiniz.", "enable_two_factor_authentication" => "İki Faktörlü Kimlik Doğrulamayı Etkinleştir", "2fa_already_enabled" => "İki Faktörlü Kimlik Doğrulama zaten etkinleştirildi", "totp_code_incorrect" => "TOTP kodu yanlış", @@ -176,8 +176,8 @@ "discord_bot_avatar_url" => "Discord Bot Avatar URL", "pushover" => "Pushover", "pushover_user_key" => "Pushover Kullanıcı Anahtarı", - 'host' => "Host", - 'topic' => "Konu", + "host" => "Host", + "topic" => "Konu", "ignore_ssl_errors" => "SSL Hatalarını Yoksay", "categories" => "Kategoriler", "save_category" => "Kategoriyi Kaydet", diff --git a/includes/i18n/zh_cn.php b/includes/i18n/zh_cn.php index b240cbc6b..927a15caf 100644 --- a/includes/i18n/zh_cn.php +++ b/includes/i18n/zh_cn.php @@ -3,8 +3,8 @@ $i18n = [ // 注册页面 "create_account" => "请创建帐号后登录", - 'username' => "用户名", - 'password' => "密码", + "username" => "用户名", + "password" => "密码", "email" => "电子邮箱", "confirm_password" => "确认密码", "main_currency" => "主要货币", @@ -17,45 +17,45 @@ "restore_database" => "恢复数据库", // 登录页面 - 'please_login' => "请登录", - 'stay_logged_in' => "30 天内免登录", - 'login' => "登录", - 'login_failed' => "登录信息错误", - 'registration_successful' => "注册成功", - 'user_email_waiting_verification' => "您的电子邮件需要验证。请检查您的电子邮件", + "please_login" => "请登录", + "stay_logged_in" => "30 天内免登录", + "login" => "登录", + "login_failed" => "登录信息错误", + "registration_successful" => "注册成功", + "user_email_waiting_verification" => "您的电子邮件需要验证。请检查您的电子邮件", // Password Reset Page - 'forgot_password' => "忘记密码", - 'reset_password' => "重置密码", - 'reset_sent_check_email' => "重置密码链接已发送到您的电子邮箱", - 'password_reset_successful' => "密码重置成功", + "forgot_password" => "忘记密码", + "reset_password" => "重置密码", + "reset_sent_check_email" => "重置密码链接已发送到您的电子邮箱", + "password_reset_successful" => "密码重置成功", // 页眉 - 'profile' => "个人资料", - 'subscriptions' => "订阅", - 'stats' => "统计", - 'settings' => "设置", - 'admin' => "管理员", - 'about' => "关于", - 'logout' => "登出", + "profile" => "个人资料", + "subscriptions" => "订阅", + "stats" => "统计", + "settings" => "设置", + "admin" => "管理员", + "about" => "关于", + "logout" => "登出", // 订阅页面 "subscription" => "订阅", "no_subscriptions_yet" => "您还没有任何订阅", "add_first_subscription" => "添加首个订阅", - 'new_subscription' => "新订阅", - 'search' => "搜索", - 'state' => "状态", - 'alphanumeric' => "名称", - 'sort' => "排序", - 'name' => "名称", - 'last_added' => "创建时间", - 'price' => "价格", - 'next_payment' => "下次支付时间", - 'inactive' => "停用订阅", - 'member' => "成员", - 'category' => "分类", - 'payment_method' => "支付方式", + "new_subscription" => "新订阅", + "search" => "搜索", + "state" => "状态", + "alphanumeric" => "名称", + "sort" => "排序", + "name" => "名称", + "last_added" => "创建时间", + "price" => "价格", + "next_payment" => "下次支付时间", + "inactive" => "停用订阅", + "member" => "成员", + "category" => "分类", + "payment_method" => "支付方式", "Daily" => "每日", "Weekly" => "每周", "Monthly" => "每月", @@ -97,41 +97,41 @@ "upload_logo" => "上传 Logo", // 统计页面 - 'cant_convert_currency' => "您在订阅中使用了多种货币。要获得有效、准确的统计数据,请在设置页面设置 Fixer API 密钥。", - 'general_statistics' => "总体统计", - 'active_subscriptions' => "活跃订阅", - 'inactive_subscriptions' => "非活动订阅", - 'monthly_cost' => "月费用", - 'yearly_cost' => "年费用", - 'average_monthly' => "平均每月订阅费用", - 'most_expensive' => "最昂贵订阅费用", - 'amount_due' => "本月应付金额", - 'percentage_budget_used' => "预算使用百分比", - 'budget_remaining' => "剩余预算", - 'amount_over_budget' => "超出预算", - 'monthly_savings' => "每月节省", - 'yearly_savings' => "每年节省", - 'split_views' => "拆分视图", - 'category_split' => "分类视图", - 'household_split' => "家庭视图", - 'payment_method_split' => "支付方式视图", + "cant_convert_currency" => "您在订阅中使用了多种货币。要获得有效、准确的统计数据,请在设置页面设置 Fixer API 密钥。", + "general_statistics" => "总体统计", + "active_subscriptions" => "活跃订阅", + "inactive_subscriptions" => "非活动订阅", + "monthly_cost" => "月费用", + "yearly_cost" => "年费用", + "average_monthly" => "平均每月订阅费用", + "most_expensive" => "最昂贵订阅费用", + "amount_due" => "本月应付金额", + "percentage_budget_used" => "预算使用百分比", + "budget_remaining" => "剩余预算", + "amount_over_budget" => "超出预算", + "monthly_savings" => "每月节省", + "yearly_savings" => "每年节省", + "split_views" => "拆分视图", + "category_split" => "分类视图", + "household_split" => "家庭视图", + "payment_method_split" => "支付方式视图", // 关于页面 - 'about_and_credits' => "关于和鸣谢", + "about_and_credits" => "关于和鸣谢", "credits" => "鸣谢", - 'license' => "许可证", - 'issues_and_requests' => "问题反馈与功能请求", - 'the_author' => "作者", - 'icons' => "图标", - 'payment_icons' => "支付图标", + "license" => "许可证", + "issues_and_requests" => "问题反馈与功能请求", + "the_author" => "作者", + "icons" => "图标", + "payment_icons" => "支付图标", // Profile Page - 'upload_avatar' => "上传头像", - 'file_type_error' => "文件类型不允许", - 'user_details' => "用户详情", - 'two_factor_authentication' => "双因素认证", - 'two_factor_info' => "双因素身份验证为您的账户增加了一层额外的安全保护。您需要使用 Google Authenticator、Authy 或 Ente Auth 等认证程序来扫描二维码。", - 'two_factor_enabled_info' => "双因素身份验证确保您的账户安全。您可以单击上面的按钮禁用它。", + "upload_avatar" => "上传头像", + "file_type_error" => "文件类型不允许", + "user_details" => "用户详情", + "two_factor_authentication" => "双因素认证", + "two_factor_info" => "双因素身份验证为您的账户增加了一层额外的安全保护。您需要使用 Google Authenticator、Authy 或 Ente Auth 等认证程序来扫描二维码。", + "two_factor_enabled_info" => "双因素身份验证确保您的账户安全。您可以单击上面的按钮禁用它。", "enable_two_factor_authentication" => "启用双因素身份验证", "2fa_already_enabled" => "双因素身份验证已启用", "totp_code_incorrect" => "TOTP 代码不正确", @@ -184,8 +184,8 @@ "discord_bot_avatar_url" => "Discord 机器人头像 URL", "pushover" => "Pushover", "pushover_user_key" => "Pushover 用户密钥", - 'host' => "主机", - 'topic' => "主题", + "host" => "主机", + "topic" => "主题", "ignore_ssl_errors" => "忽略 SSL 错误", "categories" => "分类", "save_category" => "保存分类", diff --git a/includes/i18n/zh_tw.php b/includes/i18n/zh_tw.php index 35cc1beb3..d57037b57 100644 --- a/includes/i18n/zh_tw.php +++ b/includes/i18n/zh_tw.php @@ -3,8 +3,8 @@ $i18n = [ // 註冊頁面 "create_account" => "請先建立帳號再登入", - 'username' => "使用者名稱", - 'password' => "密碼", + "username" => "使用者名稱", + "password" => "密碼", "email" => "電子信箱", "confirm_password" => "確認密碼", "main_currency" => "主要貨幣單位", @@ -16,42 +16,42 @@ "register" => "註冊", "restore_database" => "還原資料庫", // 登入頁面 - 'please_login' => "請先登入", - 'stay_logged_in' => "保持登入 30 天", - 'login' => "登入", - 'login_failed' => "登入資訊錯誤", - 'registration_successful' => "註冊成功", - 'user_email_waiting_verification' => "您的電子郵件需要驗證。 請查看你的信箱", + "please_login" => "請先登入", + "stay_logged_in" => "保持登入 30 天", + "login" => "登入", + "login_failed" => "登入資訊錯誤", + "registration_successful" => "註冊成功", + "user_email_waiting_verification" => "您的電子郵件需要驗證。 請查看你的信箱", // Password Reset Page - 'forgot_password' => "忘記密碼", - 'reset_password' => "重設密碼", - 'reset_sent_check_email' => "重設密碼的電子郵件已發送,請檢查您的電子郵件", - 'password_reset_successful' => "密碼重設成功", + "forgot_password" => "忘記密碼", + "reset_password" => "重設密碼", + "reset_sent_check_email" => "重設密碼的電子郵件已發送,請檢查您的電子郵件", + "password_reset_successful" => "密碼重設成功", // 頁首 - 'profile' => "個人資料", - 'subscriptions' => "訂閱", - 'stats' => "統計", - 'settings' => "設定", - 'admin' => "管理員", - 'about' => "關於", - 'logout' => "登出", + "profile" => "個人資料", + "subscriptions" => "訂閱", + "stats" => "統計", + "settings" => "設定", + "admin" => "管理員", + "about" => "關於", + "logout" => "登出", // 訂閱頁面 "subscription" => "訂閱", "no_subscriptions_yet" => "目前還沒有任何訂閱", "add_first_subscription" => "新增第一個訂閱", - 'new_subscription' => "新訂閱", - 'search' => "搜尋", - 'state' => "狀態", - 'alphanumeric' => "字母數字", - 'sort' => "排序", - 'name' => "名稱", - 'last_added' => "建立時間", - 'price' => "價格", - 'next_payment' => "下次付款時間", - 'inactive' => "停用訂閱", - 'member' => "成員", - 'category' => "分類", - 'payment_method' => "付款方式", + "new_subscription" => "新訂閱", + "search" => "搜尋", + "state" => "狀態", + "alphanumeric" => "字母數字", + "sort" => "排序", + "name" => "名稱", + "last_added" => "建立時間", + "price" => "價格", + "next_payment" => "下次付款時間", + "inactive" => "停用訂閱", + "member" => "成員", + "category" => "分類", + "payment_method" => "付款方式", "Daily" => "每日", "Weekly" => "每週", "Monthly" => "每月", @@ -91,39 +91,39 @@ "cancel" => "取消", "upload_logo" => "上傳圖示", // 統計頁面 - 'cant_convert_currency' => "您的訂閱使用多種貨幣。為了獲得有效且準確的統計數據,請在設定頁面設定 Fixer API Key。", - 'general_statistics' => "整體統計", - 'active_subscriptions' => "訂閱中", - 'inactive_subscriptions' => "停用訂閱", - 'monthly_cost' => "每月費用", - 'yearly_cost' => "每年費用", - 'average_monthly' => "平均每月訂閱費用", - 'most_expensive' => "最高的訂閱費用", - 'amount_due' => "本月應付金額", - 'percentage_budget_used' => "預算使用率", - 'budget_remaining' => "剩餘預算", - 'amount_over_budget' => "預算超支", - 'monthly_savings' => "每月節省", - 'yearly_savings' => "每年節省", - 'split_views' => "分割檢視", - 'category_split' => "類別分割", - 'household_split' => "家庭分割", - 'payment_method_split' => "付款方式分割", + "cant_convert_currency" => "您的訂閱使用多種貨幣。為了獲得有效且準確的統計數據,請在設定頁面設定 Fixer API Key。", + "general_statistics" => "整體統計", + "active_subscriptions" => "訂閱中", + "inactive_subscriptions" => "停用訂閱", + "monthly_cost" => "每月費用", + "yearly_cost" => "每年費用", + "average_monthly" => "平均每月訂閱費用", + "most_expensive" => "最高的訂閱費用", + "amount_due" => "本月應付金額", + "percentage_budget_used" => "預算使用率", + "budget_remaining" => "剩餘預算", + "amount_over_budget" => "預算超支", + "monthly_savings" => "每月節省", + "yearly_savings" => "每年節省", + "split_views" => "分割檢視", + "category_split" => "類別分割", + "household_split" => "家庭分割", + "payment_method_split" => "付款方式分割", // 關於頁面 - 'about_and_credits' => "關於和致謝", + "about_and_credits" => "關於和致謝", "credits" => "致謝", - 'license' => "授權許可", - 'issues_and_requests' => "問題回饋與功能請求", - 'the_author' => "作者", - 'icons' => "圖示", - 'payment_icons' => "付款圖示", + "license" => "授權許可", + "issues_and_requests" => "問題回饋與功能請求", + "the_author" => "作者", + "icons" => "圖示", + "payment_icons" => "付款圖示", // Profile page - 'upload_avatar' => "上传头像", - 'file_type_error' => "文件类型不允许", - 'user_details' => "使用者詳細資訊", - 'two_factor_authentication' => "雙因素驗證", - 'two_factor_info' => "雙因素驗證為您的帳戶增加了一層額外的安全性。您需要使用 Google Authenticator、Authy 或 Ente Auth 等驗證器應用程式來掃描 QR 代碼。", - 'two_factor_enabled_info' => "您的帳戶有雙重認證,十分安全。您可以按一下上面的按鈕停用它。", + "upload_avatar" => "上传头像", + "file_type_error" => "文件类型不允许", + "user_details" => "使用者詳細資訊", + "two_factor_authentication" => "雙因素驗證", + "two_factor_info" => "雙因素驗證為您的帳戶增加了一層額外的安全性。您需要使用 Google Authenticator、Authy 或 Ente Auth 等驗證器應用程式來掃描 QR 代碼。", + "two_factor_enabled_info" => "您的帳戶有雙重認證,十分安全。您可以按一下上面的按鈕停用它。", "enable_two_factor_authentication" => "啟用雙因素驗證", "2fa_already_enabled" => "雙因素驗證已經啟用", "totp_code_incorrect" => "TOTP 驗證碼不正確", @@ -176,8 +176,8 @@ "discord_bot_avatar_url" => "Discord 機器人頭像 URL", "pushover" => "Pushover", "pushover_user_key" => "Pushover 使用者金鑰", - 'host' => "主機", - 'topic' => "主題", + "host" => "主機", + "topic" => "主題", "ignore_ssl_errors" => "忽略 SSL 錯誤", "categories" => "分類", "save_category" => "儲存分類",