Compare commits

...

17 Commits

Author SHA1 Message Date
binwiederhier ffd7645c0b Releases 2024-05-07 21:24:39 -04:00
Philipp C. Heckel 043738a475
Merge pull request #1098 from wunter8/patch-6
don't cache config.js
2024-05-07 21:21:39 -04:00
binwiederhier fb52ad6fdb Thank you @arnbrhm for your donation 2024-05-07 21:20:58 -04:00
binwiederhier 29318f9d61 Merge branch 'main' of https://hosted.weblate.org/git/ntfy/web 2024-05-07 21:18:14 -04:00
binwiederhier 030f7266f7 Do not set rate visitor for non-eligible topics 2024-05-07 21:17:51 -04:00
ButterflyOfFire 9692de1469
Translated using Weblate (Arabic)
Currently translated at 88.1% (357 of 405 strings)

Translation: ntfy/Web app
Translate-URL: https://hosted.weblate.org/projects/ntfy/web/ar/
2024-05-05 21:08:13 +02:00
Mohammad Habib eab90a0275
Translated using Weblate (Arabic)
Currently translated at 85.9% (348 of 405 strings)

Translation: ntfy/Web app
Translate-URL: https://hosted.weblate.org/projects/ntfy/web/ar/
2024-05-03 19:07:20 +02:00
Isaac Alves e6f70f8e41
Translated using Weblate (Portuguese (Brazil))
Currently translated at 76.2% (309 of 405 strings)

Translation: ntfy/Web app
Translate-URL: https://hosted.weblate.org/projects/ntfy/web/pt_BR/
2024-04-26 21:07:29 +02:00
wunter8 499b0dd839
don't cache config.js 2024-04-25 16:09:27 -06:00
Jeroen Bulters f68ad6acdf
Translated using Weblate (Dutch)
Currently translated at 100.0% (405 of 405 strings)

Translation: ntfy/Web app
Translate-URL: https://hosted.weblate.org/projects/ntfy/web/nl/
2024-04-12 11:02:04 +02:00
Alexey Smirnov a533bf9efb
Translated using Weblate (Russian)
Currently translated at 100.0% (405 of 405 strings)

Translation: ntfy/Web app
Translate-URL: https://hosted.weblate.org/projects/ntfy/web/ru/
2024-04-12 11:02:04 +02:00
Mohammad Parvin 66ea805cde
Translated using Weblate (Persian)
Currently translated at 8.3% (34 of 405 strings)

Translation: ntfy/Web app
Translate-URL: https://hosted.weblate.org/projects/ntfy/web/fa/
2024-04-10 11:01:49 +02:00
Mohammad Parvin 7c3b6e4521
Added translation using Weblate (Persian) 2024-04-09 10:33:06 +02:00
Alexander Chekalin 9cb3d056fe
Translated using Weblate (Russian)
Currently translated at 97.0% (393 of 405 strings)

Translation: ntfy/Web app
Translate-URL: https://hosted.weblate.org/projects/ntfy/web/ru/
2024-04-08 12:02:14 +02:00
Fredrik 69d6e0f890
Translated using Weblate (Swedish)
Currently translated at 96.0% (389 of 405 strings)

Translation: ntfy/Web app
Translate-URL: https://hosted.weblate.org/projects/ntfy/web/sv/
2024-04-01 03:02:02 +02:00
grinningmosfet ecab7fbf65
Translated using Weblate (French)
Currently translated at 100.0% (405 of 405 strings)

Translation: ntfy/Web app
Translate-URL: https://hosted.weblate.org/projects/ntfy/web/fr/
2024-04-01 03:02:01 +02:00
Error504TimeOut 75887e4a62
Translated using Weblate (German)
Currently translated at 94.5% (383 of 405 strings)

Translation: ntfy/Web app
Translate-URL: https://hosted.weblate.org/projects/ntfy/web/de/
2024-04-01 03:02:00 +02:00
12 changed files with 220 additions and 27 deletions

View File

@ -195,6 +195,7 @@ account costs. Even small donations are very much appreciated. A big fat **Thank
<a href="https://github.com/IMarkoMC"><img src="https://github.com/IMarkoMC.png" width="40px" /></a>
<a href="https://github.com/rubund"><img src="https://github.com/rubund.png" width="40px" /></a>
<a href="https://github.com/Riolku"><img src="https://github.com/Riolku.png" width="40px" /></a>
<a href="https://github.com/arnbrhm"><img src="https://github.com/arnbrhm.png" width="40px" /></a>
I'd also like to thank JetBrains for their awesome [IntelliJ IDEA](https://www.jetbrains.com/idea/),
and [DigitalOcean](https://m.do.co/c/442b929528db) (*referral link*) for supporting the project:

View File

@ -1374,8 +1374,10 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release
* Swedish (thanks to [@hellbown](https://hosted.weblate.org/user/hellbown/))
### ntfy server v2.11.0
### ntfy server v2.11.0 (UNRELEASED)
**Bug fixes + maintenance:**
* Re-add database index `idx_topic` to the `messages` table to fix performance issues on ntfy.sh (no ticket, big thanks to [@tcaputi](https://github.com/tcaputi) for finding this issue)
* Do not set rate visitor for non-eligible topics (no ticket)
* Do not cache `config.js` ([#1098](https://github.com/binwiederhier/ntfy/pull/1098), thanks to [@wunter8](https://github.com/wunter8))

View File

@ -593,6 +593,7 @@ func (s *Server) handleWebConfig(w http.ResponseWriter, _ *http.Request, _ *visi
return err
}
w.Header().Set("Content-Type", "text/javascript")
w.Header().Set("Cache-Control", "no-cache")
_, err = io.WriteString(w, fmt.Sprintf("// Generated server configuration\nvar config = %s;\n", string(b)))
return err
}
@ -1499,6 +1500,9 @@ func (s *Server) maybeSetRateVisitors(r *http.Request, v *visitor, topics []*top
// - topic is not reserved, and v.user has write access
writableRateTopics := make([]*topic, 0)
for _, t := range topics {
if !util.Contains(eligibleRateTopics, t) {
continue
}
ownerUserID, err := s.userManager.ReservationOwner(t.ID)
if err != nil {
return err

View File

@ -2306,6 +2306,22 @@ func TestServer_SubscriberRateLimiting_Success(t *testing.T) {
require.Equal(t, 429, rr.Code)
}
func TestServer_SubscriberRateLimiting_NotWrongTopic(t *testing.T) {
c := newTestConfigWithAuthFile(t)
c.VisitorSubscriberRateLimiting = true
s := newTestServer(t, c)
subscriberFn := func(r *http.Request) {
r.RemoteAddr = "1.2.3.4"
}
rr := request(t, s, "GET", "/alerts,upAAAAAAAAAAAA,upBBBBBBBBBBBB/json?poll=1", "", nil, subscriberFn)
require.Equal(t, 200, rr.Code)
require.Equal(t, "", rr.Body.String())
require.Nil(t, s.topics["alerts"].rateVisitor)
require.Equal(t, "1.2.3.4", s.topics["upAAAAAAAAAAAA"].rateVisitor.ip.String())
require.Equal(t, "1.2.3.4", s.topics["upBBBBBBBBBBBB"].rateVisitor.ip.String())
}
func TestServer_SubscriberRateLimiting_NotEnabled_Failed(t *testing.T) {
c := newTestConfigWithAuthFile(t)
c.VisitorRequestLimitBurst = 3

View File

@ -330,5 +330,34 @@
"account_basics_tier_paid_until": "تم دفع مبلغ الاشتراك إلى غاية {{date}}، وسيتم تجديده تِلْقائيًا",
"account_basics_tier_canceled_subscription": "تم إلغاء اشتراكك وسيتم إعادته إلى مستوى حساب مجاني بداية مِن {{date}}.",
"account_delete_dialog_billing_warning": "إلغاء حسابك أيضاً يلغي اشتراكك في الفوترة فوراً ولن تتمكن من الوصول إلى لوح الفوترة بعد الآن.",
"nav_upgrade_banner_description": "حجز المواضيع والمزيد من الرسائل ورسائل البريد الإلكتروني والمرفقات الأكبر حجمًا"
"nav_upgrade_banner_description": "حجز المواضيع والمزيد من الرسائل ورسائل البريد الإلكتروني والمرفقات الأكبر حجمًا",
"prefs_appearance_theme_dark": "الوضع الليلي",
"prefs_appearance_theme_light": "الوضع النهاري",
"publish_dialog_checkbox_markdown": "تنسيق على هيئة ماركداون",
"alert_not_supported_context_description": "الإشعارات مسموحة فقط على بروتوكول HTTPS المأمن, هذه القيود <mdnLink>خصائص الإشعارات</mdnLink>",
"publish_dialog_call_reset": "حذف اتصال بالهاتف",
"publish_dialog_call_label": "اتصال هاتفي",
"publish_dialog_chip_call_label": "اتصال هاتفي",
"publish_dialog_delay_placeholder": "تأخير التوصيل, مثال {{unixTimestamp}}, {{relativeTime}}, او \"{{naturalLanguage}}\" (اللغة الإنجليزية فقط)",
"publish_dialog_attachment_limits_file_and_quota_reached": "تجاوز حجم {{fileSizeLimit}} الملف, {{remainingBytes}} متبقي",
"prefs_reservations_dialog_title_delete": "حذف حجز موضوع",
"publish_dialog_call_item": "اتصل برقم الهاتف {{number}}",
"publish_dialog_chip_call_no_verified_numbers_tooltip": "لا يوجد ارقام هواتف معرفة",
"action_bar_mute_notifications": "كتم الإشعارات",
"action_bar_unmute_notifications": "إلغاء كتم الإشعارات",
"alert_notification_ios_install_required_description": "اضغط على زر المشاركة ثم إضافة إلى الصفحة الرئيسية لتستقبل الإشعارات على أجهزة أبل",
"alert_notification_ios_install_required_title": "يجب تثبيت الصفحة",
"alert_notification_permission_denied_description": "الرجاء اعادة منح الصلاحيات في المتصفح",
"alert_notification_permission_denied_title": "الإشعارات مغلقة",
"notifications_actions_failed_notification": "حدث غير منفذ",
"prefs_notifications_web_push_disabled": "ملغي",
"account_basics_phone_numbers_dialog_channel_call": "اتصل",
"account_basics_phone_numbers_title": "أرقام الهواتف",
"account_basics_phone_numbers_dialog_channel_sms": "رسالة نصية قصيرة",
"account_basics_phone_numbers_dialog_check_verification_button": "رمز التأكيد",
"account_basics_phone_numbers_dialog_number_label": "رقم الهاتف",
"account_basics_phone_numbers_dialog_verify_button_call": "اتصل بي",
"account_basics_phone_numbers_dialog_code_label": "رمز التحقّق",
"account_upgrade_dialog_tier_price_per_month": "شهر",
"prefs_appearance_theme_title": "الحُلّة"
}

View File

@ -380,5 +380,8 @@
"account_basics_phone_numbers_dialog_check_verification_button": "Code bestätigen",
"account_usage_calls_title": "Getätigte Anrufe",
"account_usage_calls_none": "Noch keine Anrufe mit diesem Account getätigt",
"account_upgrade_dialog_tier_features_calls_one": "{{calls}} Telefonanrufe pro Tag"
"account_upgrade_dialog_tier_features_calls_one": "{{calls}} Telefonanrufe pro Tag",
"action_bar_mute_notifications": "Benachrichtigungen stummschalten",
"action_bar_unmute_notifications": "Benachrichtigungen lautschalten",
"alert_notification_permission_denied_title": "Benachrichtigungen sind blockiert"
}

View File

@ -0,0 +1,36 @@
{
"signup_title": "ایجاد اکانت ntfy",
"signup_form_button_submit": "ثبت نام",
"signup_already_have_account": "قبلا اکانت دارید؟ وارد بشود",
"signup_disabled": "ثبت نام غیرفعال است",
"login_title": "ورود به اکانت ntfy",
"login_link_signup": "ثبت نام",
"login_disabled": "ورود غیرفعال است",
"action_bar_show_menu": "نمایش منو",
"action_bar_account": "اکانت",
"action_bar_reservation_limit_reached": "دسترسی محدود",
"action_bar_send_test_notification": "ارسال تستی اعلان",
"action_bar_unmute_notifications": "لغو ساکت کردن اعلان ها",
"action_bar_unsubscribe": "لغو اشتراک",
"action_bar_toggle_mute": "بی صدا/لغو اعلان ها",
"common_cancel": "لغو",
"common_save": "ذخیره",
"common_add": "اضافه کردن",
"common_back": "عقب",
"common_copy_to_clipboard": "کپی به کلیپ بورد",
"signup_form_username": "نام کاربری",
"signup_form_password": "کلمه عبور",
"signup_form_confirm_password": "تایید پسورد",
"signup_form_toggle_password_visibility": "تغییر وضعیت نمایش کلمه عبور",
"signup_error_username_taken": "نام کاربری {{username}} قبلا استفاده شده است",
"signup_error_creation_limit_reached": "به حد مجاز ایجاد حساب رسیده است",
"login_form_button_submit": "ورود",
"action_bar_logo_alt": "لوگوی ntfy",
"action_bar_settings": "تنظیمات",
"action_bar_change_display_name": "تغییر نام نمایشی",
"action_bar_reservation_add": "رزرو موضوع",
"action_bar_reservation_edit": "تغییر رزرو",
"action_bar_reservation_delete": "حذف رزرو",
"action_bar_mute_notifications": "ساکت کردن اعلان ها",
"action_bar_clear_notifications": "پاک کردن تمام اعلان ها"
}

View File

@ -11,7 +11,7 @@
"nav_button_all_notifications": "Toutes les notifications",
"nav_button_settings": "Paramètres",
"nav_button_documentation": "Documentation",
"alert_not_supported_description": "Les notifications ne sont pas prises en charge par votre navigateur.",
"alert_not_supported_description": "Les notifications ne sont pas prises en charge par votre navigateur",
"notifications_attachment_copy_url_title": "Copier l'URL de la pièce jointe dans le presse-papiers",
"notifications_attachment_open_title": "Aller à {{url}}",
"notifications_attachment_link_expired": "lien de téléchargement expiré",
@ -51,7 +51,7 @@
"nav_button_subscribe": "S'abonner au sujet",
"notifications_no_subscriptions_description": "Cliquez sur le lien « {{linktext}} » pour créer ou vous abonner à un sujet. Après cela, vous pouvez envoyer des messages via PUT ou POST et vous recevrez des notifications ici.",
"alert_notification_permission_required_title": "Les notifications sont désactivées",
"alert_notification_permission_required_description": "Autorisez votre navigateur à afficher les notifications du bureau.",
"alert_notification_permission_required_description": "Autorisez votre navigateur à afficher les notifications du bureau",
"alert_notification_permission_required_button": "Accorder maintenant",
"notifications_none_for_any_title": "Vous n'avez reçu aucune notification.",
"publish_dialog_title_topic": "Publier vers {{topic}}",
@ -98,7 +98,7 @@
"subscribe_dialog_subscribe_button_subscribe": "S'abonner",
"subscribe_dialog_login_description": "Ce sujet est protégé par un mot de passe. Veuillez entrer le nom d'utilisateur et le mot de passe pour vous abonner.",
"subscribe_dialog_login_username_label": "Nom d'utilisateur, par ex. phil",
"subscribe_dialog_login_button_login": "Connexion",
"subscribe_dialog_login_button_login": "Se connecter",
"prefs_notifications_sound_title": "Son de notification",
"prefs_notifications_delete_after_never": "Jamais",
"prefs_users_table_base_url_header": "URL de service",
@ -194,13 +194,13 @@
"signup_error_username_taken": "L'identifiant {{username}} est déjà utilisé",
"signup_error_creation_limit_reached": "Limite de création de comptes atteinte",
"login_title": "Se connecter à son compte Ntfy",
"login_form_button_submit": "Connexion",
"login_form_button_submit": "Se connecter",
"login_link_signup": "S'inscrire",
"login_disabled": "La connection est désactivée",
"action_bar_account": "Compte",
"action_bar_profile_title": "Profil",
"action_bar_profile_settings": "Paramètres",
"action_bar_sign_in": "Connexion",
"action_bar_sign_in": "Se connecter",
"action_bar_sign_up": "Inscription",
"nav_button_account": "Compte",
"signup_title": "Créer un compte Ntfy",
@ -380,5 +380,28 @@
"publish_dialog_chip_call_no_verified_numbers_tooltip": "Aucun numéro de téléphone vérifié",
"account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} sujet réservé",
"account_upgrade_dialog_tier_features_calls_one": "{{calls}} appels journaliers",
"account_usage_calls_title": "Appels téléphoniques passés"
"account_usage_calls_title": "Appels téléphoniques passés",
"action_bar_mute_notifications": "Désactiver les notifications",
"action_bar_unmute_notifications": "Réactiver les notifications",
"alert_notification_permission_denied_title": "Les notifications sont bloquées",
"alert_notification_permission_denied_description": "Veuillez les réactiver dans votre navigateur",
"alert_notification_ios_install_required_description": "Cliquez sur l'icône Partager, puis Sur l'écran d'accueil pour activer les notifications sur iOS",
"alert_notification_ios_install_required_title": "Installation iOS nécessaire",
"notifications_actions_failed_notification": "Échec de l'action",
"publish_dialog_checkbox_markdown": "Formater en Markdown",
"subscribe_dialog_subscribe_use_another_background_info": "Les notifications provenant d'autres serveurs ne seront pas reçues tant que l'application web n'est pas ouverte",
"prefs_notifications_web_push_title": "Notifications en arrière-plan",
"prefs_notifications_web_push_enabled_description": "Les notifications sont reçues même quand l'application web n'est pas en cours d'exécution (via Web Push)",
"prefs_notifications_web_push_disabled_description": "Les notifications sont reçues quand l'application web est en cours d'exécution (via WebSocket)",
"prefs_notifications_web_push_enabled": "Activé pour {{server}}",
"prefs_notifications_web_push_disabled": "Désactivé",
"prefs_appearance_theme_title": "Thème",
"prefs_appearance_theme_system": "Système (défaut)",
"prefs_appearance_theme_dark": "Mode sombre",
"prefs_appearance_theme_light": "Mode clair",
"error_boundary_button_reload_ntfy": "Recharger ntfy",
"web_push_subscription_expiring_title": "Les notifications seront suspendues",
"web_push_subscription_expiring_body": "Ouvrez ntfy pour continuer à recevoir les notifications",
"web_push_unknown_notification_title": "Notification inconnue reçue du serveur",
"web_push_unknown_notification_body": "Il est possible que vous deviez mettre à jour ntfy en ouvrant l'application web"
}

View File

@ -5,9 +5,9 @@
"message_bar_type_message": "Typ hier een bericht",
"action_bar_unsubscribe": "Afmelden",
"message_bar_error_publishing": "Fout bij publiceren notificatie",
"nav_topics_title": "Geabonneerde onderwerpen",
"nav_topics_title": "Geabonneerde topics",
"nav_button_settings": "Instellingen",
"alert_not_supported_description": "Notificaties worden niet ondersteund door je browser.",
"alert_not_supported_description": "Notificaties worden niet ondersteund door je browser",
"notifications_none_for_any_title": "Je hebt nog geen notificaties ontvangen.",
"publish_dialog_tags_label": "Tags",
"publish_dialog_chip_attach_file_label": "Lokaal bestand bijvoegen",
@ -36,7 +36,7 @@
"nav_button_muted": "Notificaties gedempt",
"nav_button_connecting": "verbinden",
"alert_notification_permission_required_title": "Notificaties zijn uitgeschakeld",
"alert_notification_permission_required_description": "Verleen je browser toestemming voor het weergeven van notificaties.",
"alert_notification_permission_required_description": "Verleen je browser toestemming voor het weergeven van notificaties op desktop",
"alert_notification_permission_required_button": "Nu toestaan",
"alert_not_supported_title": "Notificaties zijn niet ondersteund",
"notifications_list": "Notificatielijst",
@ -195,14 +195,14 @@
"signup_disabled": "Registreren is uitgeschakeld",
"signup_error_username_taken": "Gebruikersnaam {{username}} is al bezet",
"signup_error_creation_limit_reached": "Limiet voor aanmaken account bereikt",
"login_title": "Aanmelden bij uw ntfy account",
"login_title": "Inloggen met uw ntfy account",
"login_form_button_submit": "Inloggen",
"login_link_signup": "Registreer",
"login_link_signup": "Registreren",
"login_disabled": "Inloggen is uitgeschakeld",
"action_bar_account": "Account",
"action_bar_reservation_add": "Onderwerp reserveren",
"action_bar_reservation_edit": "Reservatie wijzigen",
"action_bar_reservation_delete": "Verwijder reservatie",
"action_bar_reservation_add": "Topic reserveren",
"action_bar_reservation_edit": "Reservering wijzigen",
"action_bar_reservation_delete": "Verwijder reservering",
"action_bar_reservation_limit_reached": "Limiet bereikt",
"action_bar_profile_title": "Profiel",
"nav_upgrade_banner_label": "Upgrade naar ntfy Pro",
@ -380,5 +380,28 @@
"account_basics_phone_numbers_dialog_verify_button_sms": "Stuur SMS",
"account_basics_phone_numbers_dialog_code_label": "Verificatiecode",
"account_usage_calls_title": "Aantal telefoontjes",
"account_usage_calls_none": "Met dit account kan niet worden gebeld"
"account_usage_calls_none": "Met dit account kan niet worden gebeld",
"action_bar_mute_notifications": "Notificaties dempen",
"prefs_notifications_web_push_disabled_description": "Notificaties worden ontvangen als de webapplicatie geopend is (via WebSocket)",
"web_push_unknown_notification_body": "Het is mogelijk dat je ntfy moet updaten door de webapplicatie opnieuw te openen",
"action_bar_unmute_notifications": "Dempen notificaties opheffen",
"alert_notification_permission_denied_title": "Notificaties zijn geblokkeerd",
"alert_notification_permission_denied_description": "Activeer ze in de browser",
"alert_notification_ios_install_required_title": "iOS installatie vereist",
"alert_notification_ios_install_required_description": "Klik op het Deel icoon, daarna op \"Add to Home Screen\" om notificaties op iOS toe te staan",
"notifications_actions_failed_notification": "Actie onsuccesvol",
"publish_dialog_checkbox_markdown": "Opmaken met Markdown",
"subscribe_dialog_subscribe_use_another_background_info": "Notificaties van andere servers worden niet ontvangen als de webapplicatie niet geopend is",
"prefs_notifications_web_push_title": "Achtergrond notificaties",
"prefs_notifications_web_push_enabled": "Aan voor {{server}}",
"prefs_notifications_web_push_disabled": "Uitgezet",
"prefs_notifications_web_push_enabled_description": "Notificaties worden ontvangen, ook als de webapplicatie niet geopend is (via Web Push)",
"prefs_appearance_theme_title": "Thema",
"prefs_appearance_theme_system": "Systeem (standaard)",
"prefs_appearance_theme_dark": "Donkere modus",
"prefs_appearance_theme_light": "Lichte modus",
"error_boundary_button_reload_ntfy": "Herlaad ntfy",
"web_push_subscription_expiring_title": "Notificaties worden gepauzeerd",
"web_push_subscription_expiring_body": "Open ntfy om weer notificaties te ontvangen",
"web_push_unknown_notification_title": "Onbekende notificatie ontvangen van de server"
}

View File

@ -283,5 +283,31 @@
"account_basics_phone_numbers_dialog_verify_button_call": "Ligar pra mim",
"publish_dialog_call_item": "Ligue para o número de telefone {{number}}",
"account_usage_emails_title": "Emails enviados",
"account_basics_phone_numbers_dialog_channel_sms": "SMS"
"account_basics_phone_numbers_dialog_channel_sms": "SMS",
"account_delete_title": "Deletar conta",
"account_delete_dialog_label": "Senha",
"account_upgrade_dialog_interval_yearly": "Anual",
"account_upgrade_dialog_title": "Alterar nível da conta",
"alert_notification_ios_install_required_description": "Clique no ícone Compartilhar e adicione a tela inicial para ativar notificações no iOS",
"account_delete_dialog_billing_warning": "Excluir sua conta também cancela imediatamente sua assinatura de cobrança. Você não terá mais acesso ao painel de faturamento.",
"account_delete_dialog_description": "Isso excluirá permanentemente sua conta, incluindo todos os dados armazenados no servidor. Após a exclusão, seu nome de usuário ficará indisponível por 7 dias. Se você realmente deseja prosseguir, confirme sua senha na caixa abaixo.",
"account_upgrade_dialog_proration_info": "<strong>Prorrogação</strong>: Ao atualizar entre planos pagos, a diferença de preço será <strong>cobrada imediatamente</strong>. Ao fazer downgrade para um nível inferior, o saldo será usado para pagar futuras cobranças.",
"action_bar_mute_notifications": "Mutar notificações",
"action_bar_unmute_notifications": "Desmutar notificações",
"alert_notification_permission_denied_title": "Notificações estão bloqueadas",
"alert_notification_permission_denied_description": "Por favor, reative elas no seu navegador",
"alert_notification_ios_install_required_title": "Requer instalação no iOS",
"notifications_actions_failed_notification": "Ação mal sucedida",
"publish_dialog_checkbox_markdown": "Formatar como Markdown",
"subscribe_dialog_subscribe_use_another_background_info": "Notificações de outros servidores não serão recebidas quando o web app não estiver aberto",
"account_usage_basis_ip_description": "As estatísticas e limites de uso desta conta são baseados no seu endereço IP, portanto, podem ser compartilhados com outros usuários. Os limites mostrados acima são aproximados com base nos limites de taxa existentes.",
"account_usage_cannot_create_portal_session": "Não foi possível abrir o portal de cobrança",
"account_delete_description": "Deletar conta permanentemente",
"account_delete_dialog_button_cancel": "Cancelar",
"account_delete_dialog_button_submit": "Deletar conta permanentemente",
"account_upgrade_dialog_interval_monthly": "Mensal",
"account_upgrade_dialog_interval_yearly_discount_save": "desconto de {{discount}}%",
"account_upgrade_dialog_interval_yearly_discount_save_up_to": "desconto de até {{discount}}%",
"account_upgrade_dialog_cancel_warning": "Isso <strong>cancelará sua assinatura</strong> e fará downgrade de sua conta em {{date}}. Nessa data, as reservas de tópicos, bem como as mensagens armazenadas em cache no servidor <strong>serão excluídas</strong>.",
"account_upgrade_dialog_reservations_warning_one": "O nível selecionada permite menos tópicos reservados do que a camada atual. Antes de alterar seu nível, <strong>exclua pelo menos uma reserva</strong>. Você pode remover reservas nas <Link>Configurações</Link>"
}

View File

@ -8,7 +8,7 @@
"notifications_none_for_topic_description": "Чтобы отправить уведомление на данную тему, просто сделаете PUT или POST-запрос на URL-адрес этой темы.",
"notifications_none_for_any_description": "Чтобы отправить уведомление на тему, просто сделаете PUT или POST-запрос на её URL-адрес. Вот пример с использованием одной из ваших тем.",
"notifications_no_subscriptions_title": "Похоже, что у вас ещё нет подписок.",
"alert_notification_permission_required_description": "Разрешите браузеру показывать уведомления.",
"alert_notification_permission_required_description": "Предоставьте браузеру разрешение на отображение уведомлений на рабочем столе",
"notifications_no_subscriptions_description": "Нажмите на ссылку \"{{linktext}}\", чтобы создать или подписаться на тему. После этого Вы сможете отправлять сообщения используя PUT или POST-запросы и получать уведомления здесь.",
"notifications_example": "Пример",
"notifications_more_details": "Для более подробной информации, посетите <websiteLink>наш сайт</websiteLink> или <docsLink>документацию</docsLink>.",
@ -41,7 +41,7 @@
"publish_dialog_email_label": "Электронная почта",
"message_bar_error_publishing": "Ошибка публикации уведомления",
"alert_not_supported_title": "Уведомления не поддерживаются",
"alert_not_supported_description": "Уведомления не поддерживаются вашим браузером.",
"alert_not_supported_description": "Уведомления не поддерживаются в вашем браузере",
"notifications_copied_to_clipboard": "Скопировано в буфер обмена",
"notifications_attachment_open_button": "Открыть вложение",
"notifications_none_for_topic_title": "Вы ещё не получали уведомления для этой темы.",
@ -254,17 +254,17 @@
"action_bar_reservation_limit_reached": "Лимит исчерпан",
"action_bar_toggle_mute": "Заглушить/разрешить уведомления",
"nav_button_account": "Учетная запись",
"nav_upgrade_banner_label": "Подпишитесь на ntfy Pro",
"nav_upgrade_banner_label": "Купить подписку ntfy Pro",
"message_bar_show_dialog": "Открыть диалог публикации",
"notifications_list": "Список уведомлений",
"notifications_list_item": "Уведомление",
"notifications_mark_read": "Пометить как прочтенное",
"notifications_mark_read": "Пометить как прочитанное",
"notifications_priority_x": "Приоритет {{priority}}",
"notifications_attachment_image": "Приложенное изображение",
"notifications_attachment_file_audio": "звуковой файл",
"notifications_attachment_file_video": "видео файл",
"notifications_attachment_file_image": "графический файл",
"notifications_attachment_file_app": "исполняемый файл Android",
"notifications_attachment_file_app": "Исполняемый файл Android",
"notifications_attachment_file_document": "другой тип файла",
"notifications_actions_not_supported": "Действие не поддерживается в веб-приложении",
"display_name_dialog_title": "Изменить псевдоним",
@ -334,7 +334,7 @@
"alert_not_supported_context_description": "Уведомления поддерживаются только по протоколу HTTPS. Это ограничение <mdnLink>Notifications API</mdnLink>.",
"notifications_delete": "Удалить",
"notifications_new_indicator": "Новое уведомление",
"notifications_actions_http_request_title": "Сделать HTTP {{method}}-запрос на {{url}}",
"notifications_actions_http_request_title": "Отправить HTTP {{method}}-запрос на {{url}}",
"display_name_dialog_placeholder": "Псевдоним",
"account_basics_password_dialog_new_password_label": "Новый пароль",
"account_basics_password_dialog_confirm_password_label": "Подтвердите пароль",
@ -380,5 +380,28 @@
"account_basics_phone_numbers_dialog_code_label": "Проверочный код",
"account_basics_phone_numbers_dialog_verify_button_call": "Позвонить мне",
"publish_dialog_call_item": "Вызов телефонного номера {{number}}",
"account_basics_phone_numbers_dialog_channel_sms": "SMS"
"account_basics_phone_numbers_dialog_channel_sms": "SMS",
"action_bar_mute_notifications": "Заглушить уведомления",
"action_bar_unmute_notifications": "Разрешить уведомления",
"alert_notification_permission_denied_title": "Уведомления заблокированы",
"alert_notification_permission_denied_description": "Пожалуйста, разрешите их в своём браузере",
"alert_notification_ios_install_required_title": "iOS требует установку",
"alert_notification_ios_install_required_description": "Нажмите на значок \"Поделиться\" и \"Добавить на главный экран\", чтобы включить уведомления на iOS",
"error_boundary_button_reload_ntfy": "Перезагрузить ntfy",
"web_push_subscription_expiring_title": "Уведомления будут приостановлены",
"web_push_subscription_expiring_body": "Откройте ntfy, чтобы продолжать получать уведомления",
"web_push_unknown_notification_title": "Получено неизвестное уведомление от сервера",
"web_push_unknown_notification_body": "Вам может потребоваться обновить ntfy, для этого откройте веб-приложение",
"prefs_notifications_web_push_title": "Фоновые уведомления",
"prefs_notifications_web_push_enabled_description": "Уведомления приходят даже когда веб-приложение не запущено (через Web Push)",
"prefs_notifications_web_push_disabled_description": "Уведомления приходят, когда веб-приложение запущено (через WebSocket)",
"prefs_appearance_theme_title": "Тема",
"prefs_notifications_web_push_enabled": "Включено для {{server}}",
"prefs_notifications_web_push_disabled": "Выключено",
"notifications_actions_failed_notification": "Неудачное действие",
"publish_dialog_checkbox_markdown": "Форматировать как Markdown",
"subscribe_dialog_subscribe_use_another_background_info": "Уведомления с других серверов не будут получены, когда веб-приложение не открыто",
"prefs_appearance_theme_system": "Системный (по умолчанию)",
"prefs_appearance_theme_dark": "Ночной режим",
"prefs_appearance_theme_light": "Дневной режим"
}

View File

@ -380,5 +380,12 @@
"account_basics_phone_numbers_dialog_channel_sms": "SMS",
"account_upgrade_dialog_tier_features_calls_other": "{{calls}} dagliga telefonsamtal",
"account_upgrade_dialog_tier_features_no_calls": "Inga telefonsamtal",
"account_upgrade_dialog_tier_features_calls_one": "{{calls}} dagliga telefonsamtal"
"account_upgrade_dialog_tier_features_calls_one": "{{calls}} dagliga telefonsamtal",
"action_bar_mute_notifications": "Stäng av aviseringar",
"action_bar_unmute_notifications": "Slå på aviseringar",
"alert_notification_permission_denied_description": "Vänligen aktivera dem i din weblsäare",
"alert_notification_ios_install_required_title": "iOS installation krävs",
"notifications_actions_failed_notification": "Misslyckad åtgärd",
"alert_notification_permission_denied_title": "Notifieringar är blockerade",
"alert_notification_ios_install_required_description": "Klicka på delaikonen och Lägg till på hemskärmen för att aktivera notifieringarna i iOS"
}