Merge branch 'main' into 303-update-notifications
This commit is contained in:
1702
web/package-lock.json
generated
1702
web/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,6 +9,7 @@ var config = {
|
||||
base_url: window.location.origin, // Change to test against a different server
|
||||
app_root: "/",
|
||||
enable_login: true,
|
||||
require_login: false,
|
||||
enable_signup: true,
|
||||
enable_payments: false,
|
||||
enable_reservations: true,
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"publish_dialog_chip_email_label": "Препращане към ел. поща",
|
||||
"publish_dialog_chip_attach_url_label": "Прикачване на файл от адрес",
|
||||
"publish_dialog_chip_attach_file_label": "Прикачване местен файл",
|
||||
"publish_dialog_chip_delay_label": "Отлагане на изпращането",
|
||||
"publish_dialog_chip_delay_label": "Отложено изпращане",
|
||||
"publish_dialog_chip_topic_label": "Промяна на темата",
|
||||
"publish_dialog_button_cancel_sending": "Отменяне на изпращането",
|
||||
"publish_dialog_button_cancel": "Отказ",
|
||||
@@ -121,7 +121,7 @@
|
||||
"subscribe_dialog_login_button_login": "Вход",
|
||||
"subscribe_dialog_error_user_not_authorized": "Потребителят {{username}} няма достъп",
|
||||
"prefs_appearance_title": "Външен вид",
|
||||
"publish_dialog_delay_placeholder": "Отлагане на изпращането, {{unixTimestamp}}, {{relativeTime}} или „{{naturalLanguage}}“ (на английски)",
|
||||
"publish_dialog_delay_placeholder": "Отложено изпращане, {{unixTimestamp}}, {{relativeTime}} или „{{naturalLanguage}}“ (на английски)",
|
||||
"prefs_notifications_delete_after_one_week": "След една седмица",
|
||||
"prefs_users_title": "Управление на потребители",
|
||||
"prefs_users_table_base_url_header": "Адрес на услугата",
|
||||
@@ -177,7 +177,7 @@
|
||||
"publish_dialog_topic_reset": "Нулиране на тема",
|
||||
"publish_dialog_click_reset": "Премахване на адрес",
|
||||
"publish_dialog_email_reset": "Премахване на препращането към ел. поща",
|
||||
"publish_dialog_delay_reset": "Премахва отлагането на изпращането",
|
||||
"publish_dialog_delay_reset": "Премахва отложеното на изпращане",
|
||||
"publish_dialog_attached_file_remove": "Премахване на прикачения файл",
|
||||
"emoji_picker_search_clear": "Изчистване на търсенето",
|
||||
"subscribe_dialog_subscribe_base_url_label": "Адрес на услугата",
|
||||
@@ -253,7 +253,7 @@
|
||||
"account_delete_dialog_button_cancel": "Отказ",
|
||||
"account_upgrade_dialog_interval_monthly": "Месечно",
|
||||
"account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} резервирани теми",
|
||||
"account_upgrade_dialog_tier_features_no_reservations": "Няма резервирани теми",
|
||||
"account_upgrade_dialog_tier_features_no_reservations": "Без резервирани теми",
|
||||
"account_tokens_dialog_button_cancel": "Отказ",
|
||||
"account_delete_title": "Премахване на профила",
|
||||
"account_upgrade_dialog_title": "Промяна нивото на профила",
|
||||
@@ -403,5 +403,7 @@
|
||||
"prefs_appearance_theme_system": "Системна (подразбирана)",
|
||||
"web_push_subscription_expiring_title": "Известията временно ще бъдат спрени",
|
||||
"web_push_subscription_expiring_body": "За да продължите да получавате известия, отворете ntfy",
|
||||
"action_bar_unmute_notifications": "Включване звука на известията"
|
||||
"action_bar_unmute_notifications": "Включване звука на известията",
|
||||
"account_tokens_table_cannot_delete_or_edit_provisioned_token": "Кодът за защита от външна система не може да бъде променян или премахван",
|
||||
"account_basics_cannot_edit_or_delete_provisioned_user": "Потребител от външна система не може да бъде променян или премахван"
|
||||
}
|
||||
|
||||
@@ -3,5 +3,14 @@
|
||||
"action_bar_profile_title": "Perfil",
|
||||
"action_bar_settings": "Configuració",
|
||||
"action_bar_account": "Compte",
|
||||
"common_add": "Afegir"
|
||||
"common_add": "Afegir",
|
||||
"common_cancel": "Cancel·la",
|
||||
"common_save": "Desa",
|
||||
"common_back": "Enrere",
|
||||
"common_copy_to_clipboard": "Copia al portaretalls",
|
||||
"signup_title": "Crea un compte ntfy",
|
||||
"signup_form_username": "Nom d'usuari",
|
||||
"signup_form_password": "Contrasenya",
|
||||
"signup_form_confirm_password": "Confirma la contrasenya",
|
||||
"signup_form_button_submit": "Dona't d'alta"
|
||||
}
|
||||
|
||||
8
web/public/static/langs/cu.json
Normal file
8
web/public/static/langs/cu.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"common_cancel": "Отмѣнити",
|
||||
"common_save": "Сохрани",
|
||||
"common_add": "Приложити",
|
||||
"common_back": "Назадъ",
|
||||
"login_form_button_submit": "Въниди",
|
||||
"signup_form_password": "Таино слово"
|
||||
}
|
||||
@@ -403,5 +403,7 @@
|
||||
"web_push_subscription_expiring_body": "Öffne ntfy um weiterhin Benachrichtigungen zu erhalten",
|
||||
"web_push_unknown_notification_title": "Unbekannte Benachrichtigung vom Server empfangen",
|
||||
"web_push_unknown_notification_body": "Du musst möglicherweise ntfy aktualisieren, indem du die Web App öffnest",
|
||||
"prefs_notifications_web_push_enabled_description": "Benachrichtigungen werden empfangen, auch wenn die Web App nicht geöffnet ist (via Web Push)"
|
||||
"prefs_notifications_web_push_enabled_description": "Benachrichtigungen werden empfangen, auch wenn die Web App nicht geöffnet ist (via Web Push)",
|
||||
"account_tokens_table_cannot_delete_or_edit_provisioned_token": "Bereitgestelltes Token kann nicht bearbeitet oder gelöscht werden",
|
||||
"account_basics_cannot_edit_or_delete_provisioned_user": "Ein bereitgestellter Benutzer kann nicht bearbeitet oder gelöscht werden"
|
||||
}
|
||||
|
||||
@@ -214,6 +214,7 @@
|
||||
"account_basics_phone_numbers_dialog_check_verification_button": "Confirm code",
|
||||
"account_basics_phone_numbers_dialog_channel_sms": "SMS",
|
||||
"account_basics_phone_numbers_dialog_channel_call": "Call",
|
||||
"account_basics_cannot_edit_or_delete_provisioned_user": "A provisioned user cannot be edited or deleted",
|
||||
"account_usage_title": "Usage",
|
||||
"account_usage_of_limit": "of {{limit}}",
|
||||
"account_usage_unlimited": "Unlimited",
|
||||
@@ -293,6 +294,7 @@
|
||||
"account_tokens_table_current_session": "Current browser session",
|
||||
"account_tokens_table_copied_to_clipboard": "Access token copied",
|
||||
"account_tokens_table_cannot_delete_or_edit": "Cannot edit or delete current session token",
|
||||
"account_tokens_table_cannot_delete_or_edit_provisioned_token": "Cannot edit or delete provisioned token",
|
||||
"account_tokens_table_create_token_button": "Create access token",
|
||||
"account_tokens_table_last_origin_tooltip": "From IP address {{ip}}, click to lookup",
|
||||
"account_tokens_dialog_title_create": "Create access token",
|
||||
|
||||
@@ -1 +1,5 @@
|
||||
{}
|
||||
{
|
||||
"common_cancel": "Nuligi",
|
||||
"common_save": "Konservi",
|
||||
"common_add": "Aldoni"
|
||||
}
|
||||
|
||||
@@ -404,5 +404,7 @@
|
||||
"prefs_appearance_theme_dark": "Oscuro",
|
||||
"web_push_subscription_expiring_body": "Abrir ntfy para seguir recibiendo notificaciones",
|
||||
"web_push_unknown_notification_title": "Notificación desconocida recibida del servidor",
|
||||
"web_push_unknown_notification_body": "Puede que necesites actualizar ntfy abriendo la aplicación web"
|
||||
"web_push_unknown_notification_body": "Puede que necesites actualizar ntfy abriendo la aplicación web",
|
||||
"account_basics_cannot_edit_or_delete_provisioned_user": "Un usuario provisionado no se puede editar o eliminar",
|
||||
"account_tokens_table_cannot_delete_or_edit_provisioned_token": "No se puede editar o eliminar un token provisionado"
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"signup_form_toggle_password_visibility": "Vaheta salasõna nähtavust",
|
||||
"action_bar_account": "Kasutajakonto",
|
||||
"action_bar_sign_in": "Logi sisse",
|
||||
"nav_button_documentation": "Dokumentatsioon",
|
||||
"nav_button_documentation": "Juhendid ja teave",
|
||||
"action_bar_profile_title": "Profiil",
|
||||
"action_bar_profile_settings": "Seadistused",
|
||||
"action_bar_sign_up": "Liitu",
|
||||
@@ -53,8 +53,8 @@
|
||||
"account_tokens_table_token_header": "Tunnusluba",
|
||||
"account_tokens_table_last_origin_tooltip": "IP-aadressilt {{ip}}, klõpsi täpsema teabe nägemiseks",
|
||||
"action_bar_reservation_add": "Reserveeri teema",
|
||||
"action_bar_reservation_edit": "Muuda reserveeringut",
|
||||
"action_bar_reservation_delete": "Eemalda reserveering",
|
||||
"action_bar_reservation_edit": "Muuda reserveerimist",
|
||||
"action_bar_reservation_delete": "Eemalda reserveerimine",
|
||||
"action_bar_reservation_limit_reached": "Ülempiir on käes",
|
||||
"action_bar_send_test_notification": "Saata testteavitus",
|
||||
"action_bar_clear_notifications": "Kustuta kõik teavitused",
|
||||
@@ -126,7 +126,7 @@
|
||||
"account_usage_unlimited": "Piiramatu",
|
||||
"prefs_notifications_delete_after_never": "Mitte kunagi",
|
||||
"account_upgrade_dialog_interval_monthly": "Iga kuu",
|
||||
"account_upgrade_dialog_tier_price_per_month": "kuu",
|
||||
"account_upgrade_dialog_tier_price_per_month": "kuus",
|
||||
"prefs_notifications_web_push_disabled": "Pole kasutusel",
|
||||
"prefs_appearance_title": "Välimus",
|
||||
"prefs_appearance_language_title": "Keel",
|
||||
@@ -139,7 +139,7 @@
|
||||
"display_name_dialog_placeholder": "Kuvatav nimi",
|
||||
"publish_dialog_title_no_topic": "Avalda teavitus",
|
||||
"publish_dialog_progress_uploading": "Laadin üles…",
|
||||
"publish_dialog_message_published": "Teavitus on saadetud",
|
||||
"publish_dialog_message_published": "Teavitus on avaldatud",
|
||||
"publish_dialog_emoji_picker_show": "Vali emoji",
|
||||
"publish_dialog_priority_low": "Vähetähtis",
|
||||
"publish_dialog_priority_default": "Vaikimisi tähtsus",
|
||||
@@ -185,7 +185,7 @@
|
||||
"notifications_loading": "Laadin teavitusi…",
|
||||
"publish_dialog_title_topic": "Avalda teemas {{topic}}",
|
||||
"publish_dialog_progress_uploading_detail": "Üleslaadimisel {{loaded}}/{{total}} ({{percent}}%) …",
|
||||
"publish_dialog_topic_placeholder": "Teema nimi, nt. kati_teavitused",
|
||||
"publish_dialog_topic_placeholder": "Teema nimi, nt. kadri_kiirteated",
|
||||
"publish_dialog_title_placeholder": "Teavituse pealkiri, nt. Andmeruumi teavitus",
|
||||
"publish_dialog_message_placeholder": "Siia sisesta sõnum",
|
||||
"notifications_none_for_any_title": "Sa pole veel saanud ühtegi teavitust.",
|
||||
@@ -270,5 +270,140 @@
|
||||
"account_basics_phone_numbers_dialog_number_label": "Telefoninumber",
|
||||
"prefs_notifications_delete_after_one_week": "Ühe nädala möödumisel",
|
||||
"prefs_notifications_delete_after_one_day": "Ühe päeva möödumisel",
|
||||
"prefs_notifications_delete_after_one_month": "Ühe kuu möödumisel"
|
||||
"prefs_notifications_delete_after_one_month": "Ühe kuu möödumisel",
|
||||
"publish_dialog_attached_file_title": "Manustatud fail:",
|
||||
"publish_dialog_attached_file_filename_placeholder": "Manuse faili nimi",
|
||||
"publish_dialog_attached_file_remove": "Eemalda manustatud fail",
|
||||
"publish_dialog_drop_file_here": "Lohista fail siia",
|
||||
"emoji_picker_search_placeholder": "Otsi emojit",
|
||||
"publish_dialog_checkbox_publish_another": "Avalda veel midagi",
|
||||
"emoji_picker_search_clear": "Tühjenda otsing",
|
||||
"account_usage_reservations_title": "Reserveeritud teemad",
|
||||
"account_usage_reservations_none": "Sellel kasutajakontol pole reserveeritud teemasid",
|
||||
"account_usage_attachment_storage_title": "Manuste andmeruum",
|
||||
"account_usage_calls_none": "Selle kasutajakontoga ei saa helistada",
|
||||
"account_usage_calls_title": "Helistatud kõnesid",
|
||||
"account_usage_messages_title": "Avaldatud sõnumeid",
|
||||
"account_usage_emails_title": "Saadetud e-kirju",
|
||||
"account_basics_tier_manage_billing_button": "Halda arveldust",
|
||||
"account_basics_tier_canceled_subscription": "Sinu teenusetellimus on katkestatud ja muutub tasuta {{date}} kontoks.",
|
||||
"account_basics_tier_paid_until": "Tellimus on tasutud kuni {{date}} ja kuulub automaatselt uuendamisele",
|
||||
"account_basics_tier_upgrade_button": "Hakka kasutama Pro-teenust",
|
||||
"account_basics_tier_payment_overdue": "Sinu arve(d) on tasumata. Palun uuenda oma maksmisviisi või vastasel juhul peame varsti sinu kasutajakonto taseme muutma madalamaks.",
|
||||
"account_upgrade_dialog_tier_features_no_reservations": "Reserveeritud teemasid pole",
|
||||
"account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} reserveeritud teemat",
|
||||
"account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} reserveeritud teema",
|
||||
"prefs_notifications_sound_title": "Teavituse heli",
|
||||
"account_tokens_delete_dialog_submit_button": "Kustuta tunnusluba jäädavalt",
|
||||
"account_tokens_delete_dialog_description": "Enne tunnusloa kustutamist palun kontrolli, et ükski rakendus ei kasutaks seda. <strong>Seda tegevust ei saa tagasi pöörata</strong>.",
|
||||
"account_tokens_delete_dialog_title": "Kustuta ligipääsu tunnusluba",
|
||||
"account_tokens_dialog_expires_never": "Tunnusluba ei aegu iialgi",
|
||||
"account_tokens_dialog_expires_x_days": "Tunnusluba aegub {{days}} päeva pärast",
|
||||
"account_tokens_dialog_expires_x_hours": "Tunnusluba aegub {{hours}} tunni pärast",
|
||||
"account_tokens_dialog_expires_unchanged": "Jäta aegumise kuupäev muutmata",
|
||||
"account_tokens_dialog_expires_label": "Tunnusluba aegub",
|
||||
"account_tokens_dialog_button_update": "Uuenda tunnusluba",
|
||||
"account_tokens_dialog_button_create": "Loo tunnusluba",
|
||||
"prefs_users_title": "Halda kasutajaid",
|
||||
"subscribe_dialog_subscribe_use_another_label": "Kasuta muud serverit",
|
||||
"subscribe_dialog_subscribe_use_another_background_info": "Teavitused muudest serveritest ei toimi, kui veebirakendus pole avatud",
|
||||
"subscribe_dialog_login_description": "See teema on kaitstud salasõnaga. Tellimiseks sisesta palun kasutajanimi ja salasõna.",
|
||||
"subscribe_dialog_error_topic_already_reserved": "Teema on juba reserveeritud",
|
||||
"account_delete_title": "Kustuta kasutajakonto",
|
||||
"account_delete_description": "Kustuta oma kasutajakonto jäädavalt",
|
||||
"account_delete_dialog_description": "Järgnevaga kustutad serverist lõplikult oma kasutajakonto ning kõik temaga seotud andmed. Peale kustutamist pole kasutajanimi saadaval 7 päeva jooksul. Kui sa tõesti soovid kustutamisega jätkata, siis palun sisesta alljärgnevasse kasti oma salasõna.",
|
||||
"web_push_unknown_notification_title": "Serverist saabus tundmatu teavitus",
|
||||
"web_push_subscription_expiring_body": "Kui soovid, et jätkuvalt saabuks teavitused, siis ava ntfy",
|
||||
"web_push_subscription_expiring_title": "Teavitused on ajutiselt peatatud",
|
||||
"error_boundary_unsupported_indexeddb_title": "Veebibrauseri privaatne režiim pole toetatud",
|
||||
"error_boundary_button_reload_ntfy": "Laadi ntfy uuesti",
|
||||
"error_boundary_button_copy_stack_trace": "Kopeeri pinujälg",
|
||||
"error_boundary_stack_trace": "Pinujälg",
|
||||
"error_boundary_gathering_info": "Kogu täiendavat teavet…",
|
||||
"notifications_none_for_any_description": "Teemakohaste teavituste saatmiseks tee PUT või POST meetodiga päring teema võrguaadressile. Siin on üks näide ühe sinu teemaga.",
|
||||
"notifications_no_subscriptions_title": "Tundub, et sul pole veel ühtegi tellimust.",
|
||||
"notifications_no_subscriptions_description": "Olemasoleva teema tellimiseks või uue loomiseks klõpsa „{{linktext}}“. Peale seda saad PUT või POST meetodiga päringuga saata sõnumeid ning neid siin vastu võtta.",
|
||||
"notifications_more_details": "Lisateavet leiad <websiteLink>veebisaidist</websiteLink> või <docsLink>juhendist</docsLink>.",
|
||||
"publish_dialog_details_examples_description": "Näited ja saatmisvõimaluste üksikasjaliku kirjelduse leiad <docsLink>juhendist</docsLink>.",
|
||||
"account_tokens_description": "Selleks, et ei peaks ntfy API abil avaldamise ja tellimuse päringusse lisama kasutajanime ja salasõna, kasuta tunnuslubasid. Lisateavet leiad <Link>juhendist</Link>.",
|
||||
"subscribe_dialog_subscribe_title": "Telli teema",
|
||||
"subscribe_dialog_subscribe_description": "Teemasid ei saa salasõnaga kaitsta, seega vali teema nimi, mida pole väga lihtne ära arvata. Peale tellimuse tegemist võide kohe hakata PUT või POST päringutega sõnumeid saatma.",
|
||||
"subscribe_dialog_subscribe_topic_placeholder": "Teema nimi, näiteks kadri_kiirteated",
|
||||
"subscribe_dialog_error_user_not_authorized": "Kasutajal {{username}} puudub volitus",
|
||||
"account_usage_of_limit": "piirangust {{limit}}",
|
||||
"account_usage_limits_reset_daily": "Kasutuspiirangud lähtestatakse keskööl (UTC järgi)",
|
||||
"account_basics_tier_admin_suffix_with_tier": "(tasemega {{tier}})",
|
||||
"account_basics_tier_admin_suffix_no_tier": "(tase puudub)",
|
||||
"account_upgrade_dialog_title": "Muuda kasutajakonto taset",
|
||||
"account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} faili kohta",
|
||||
"account_upgrade_dialog_tier_features_calls_other": "{{calls}} kõnet päevas",
|
||||
"account_upgrade_dialog_tier_features_calls_one": "{{calls}} kõne päevas",
|
||||
"account_upgrade_dialog_tier_features_no_calls": "Ilma telefonikõnedeta",
|
||||
"account_upgrade_dialog_tier_features_attachment_total_size": "andmeruum kokku {{totalsize}}",
|
||||
"account_upgrade_dialog_tier_price_billed_monthly": "{{price}}aastas. Arveldatuna kord kuus.",
|
||||
"account_upgrade_dialog_tier_price_billed_yearly": "{{price}} arveldatuna kord aastas. Sa säästad {{save}}.",
|
||||
"account_upgrade_dialog_button_pay_now": "Maksa nüüd ja telli",
|
||||
"account_upgrade_dialog_button_cancel_subscription": "Katkesta tellimus",
|
||||
"account_upgrade_dialog_interval_yearly_discount_save": "säästa {{discount}}%",
|
||||
"account_upgrade_dialog_interval_yearly_discount_save_up_to": "säästa kuni {{discount}}%",
|
||||
"account_upgrade_dialog_billing_contact_email": "Küsimuste puhul arvelduste kohta, palun <Link>kontakteeru meiega otse</Link>.",
|
||||
"account_upgrade_dialog_billing_contact_website": "Küsimuste puhul arvelduste kohta, palun <Link>vaata meie veebisaiti</Link>.",
|
||||
"account_delete_dialog_billing_warning": "Sinu kasutajakonto kustutamisel katkeb koheselt ka tellimus. Muu hulgas ei saa sa enam ligi arvelduste haldusvaatele.",
|
||||
"account_upgrade_dialog_button_update_subscription": "Uuenda tellimust",
|
||||
"account_tokens_title": "Tunnusload ligipääsuks",
|
||||
"account_tokens_dialog_label": "Silt, näiteks „Salaradari teavitused“",
|
||||
"account_usage_attachment_storage_description": "{{filesize}} faili kohta, kustutatud peale {{expiry}}",
|
||||
"account_usage_cannot_create_portal_session": "Arvelduste vaate avamine ei õnnestu",
|
||||
"prefs_notifications_min_priority_any": "Kõik prioriteedid",
|
||||
"prefs_notifications_min_priority_low_and_higher": "Vähetähtsad ja kõrgemad",
|
||||
"prefs_notifications_min_priority_default_and_higher": "Vaikimisi tähtsusega ja kõrgemad",
|
||||
"prefs_notifications_min_priority_high_and_higher": "Väga tähtsad ja kõrgemad",
|
||||
"prefs_notifications_min_priority_max_only": "Vaid kõrgeim prioriteet",
|
||||
"prefs_reservations_table_everyone_deny_all": "Vaid mina saan avaldada ja tellida",
|
||||
"prefs_reservations_table_everyone_read_only": "Mina saan avaldada ja tellida, kõik saavad tellida",
|
||||
"prefs_reservations_table_everyone_write_only": "Mina saan avaldada ja tellida, kõik saavad avaldada",
|
||||
"prefs_reservations_table_everyone_read_write": "Kõik saavad avaldada ja tellida",
|
||||
"prefs_reservations_table_not_subscribed": "Pole tellitud",
|
||||
"prefs_reservations_table_click_to_subscribe": "Tellimiseks klõpsi",
|
||||
"prefs_reservations_dialog_title_add": "Reserveeri teema",
|
||||
"prefs_reservations_dialog_title_edit": "Muuda reserveeritud teemat",
|
||||
"prefs_reservations_dialog_title_delete": "Kustuta teema reserveering",
|
||||
"prefs_reservations_dialog_description": "Teema reserveerimisega muutud selle omanikuks ja saad teiste jaoks määrata ligipääsuõigusi teemale.",
|
||||
"reservation_delete_dialog_description": "Teema reserveerimisest loobudes annad teistele võimaluse seda reserveerida ja muutuda selle omanikuks. Sina saad otsustada, kas vanad sõnumid jäävad alles või kustutatakse.",
|
||||
"reservation_delete_dialog_action_keep_title": "Säilita puhverdatud sõnumid ja manused",
|
||||
"reservation_delete_dialog_action_keep_description": "Serveris puhverdatud sõnumid ja manused muutuvad avalikult nähtavaks neile, kes teavad teema nime.",
|
||||
"reservation_delete_dialog_action_delete_title": "Kustuta puhverdatud sõnumid ja manused",
|
||||
"reservation_delete_dialog_action_delete_description": "Puhverdatud sõnumid ja manused kustuvad jäädavalt. Seda tegevust ei saa hiljem tagasi pöörata.",
|
||||
"reservation_delete_dialog_submit_button": "Kustuta reserveerimine",
|
||||
"prefs_reservations_description": "Sa võid teemade nimesid reserveerida isiklikuks kasutuseks. Sellega muutud teema omanikuks ja saad määrata, kes ning mis viisil teemale ligi saab.",
|
||||
"prefs_reservations_limit_reached": "Oled jõudnud reserveeritud teemade arvu ülempiirini.",
|
||||
"prefs_reservations_add_button": "Lisa reserveeritud teema",
|
||||
"prefs_reservations_edit_button": "Muuda ligipääsu teemale",
|
||||
"prefs_reservations_delete_button": "Lähtesta ligipääs teemale",
|
||||
"prefs_reservations_table": "Reserveeritud teemade tabel",
|
||||
"web_push_unknown_notification_body": "Avades veebirakenduse peaksid vist tegema ntfy uuenduse",
|
||||
"prefs_users_description_no_sync": "Kasutajad ja nende salasõnad pole sinu kontoga sünkroonitud.",
|
||||
"error_boundary_title": "Vaat, kus lops - ntfy jooksis kokku",
|
||||
"error_boundary_description": "Ilmselgelt ei peaks niimoodi juhtuma. Vabandust.<br/>Kui sul on mõni hetk aega, siis palun <githubLink>seate sellest GitHubis</githubLink> või kirjuta <discordLink>Discordis</discordLink> või <matrixLink>Matrixis</matrixLink>.",
|
||||
"error_boundary_unsupported_indexeddb_description": "Meie ntfy veebirakendus vajab korralikuks toimimiseks brauseri IndexedDB funktsionaalsust, aga sinu veebibrauser seda privaatses režiimis ei toeta.<br/><br/>See on nüüd õnnetu lugu küll, aga olemuslikult pole ntfy veebirakenduse kasutamisel privaatses režiimis eriti mõtet - kõike hoitakse ju brauseri hallatavas andmekogus. Lisateavet selle kohta leiad <githubLink>GitHubist siit</githubLink>, aga saad ka teema üle meiega arutleda <discordLink>Discordis</discordLink> või <matrixLink>Matrixis</matrixLink>.",
|
||||
"account_usage_basis_ip_description": "Selle kasutajakonto statistika ja kasutuspiirangud põhinevad sinu IP-aadressil ja seega võivad nad olla teistega jagatud. Siin näidatud piirangud on hinnangulised ja põhinevad üldistel päringupiirangutel.",
|
||||
"prefs_notifications_web_push_enabled": "Kasutusel serveris {{server}}",
|
||||
"prefs_notifications_web_push_disabled_description": "Saad teavitusi siis, kui rakendus on töös (WebSocketi abil)",
|
||||
"prefs_notifications_web_push_enabled_description": "Saad teavitusi siis, kui rakendus pole töös (Web Pushi abil)",
|
||||
"prefs_notifications_web_push_title": "Teavitused taustal",
|
||||
"prefs_notifications_min_priority_description_max": "Näita teavitusi siis, kui prioriteet on 5 (maksimaalne)",
|
||||
"prefs_notifications_min_priority_description_x_or_higher": "Näita teavitusi siis, kui prioriteet on {{number}} ({{name}}) või kõrgem",
|
||||
"prefs_notifications_sound_description_none": "Teavitused ei kasuta saabumisel helimärguannet",
|
||||
"prefs_notifications_sound_description_some": "Teavitused kasutavad saabumisel helimärguannet {{sound}}",
|
||||
"prefs_notifications_sound_no_sound": "Helimärguanne puudub",
|
||||
"prefs_notifications_sound_play": "Esita valitud helimärguannet",
|
||||
"prefs_notifications_min_priority_title": "Väikseim prioriteet",
|
||||
"prefs_notifications_min_priority_description_any": "Näitan kõiki teavitusi ja seejuures ei arvesta prioriteetidega",
|
||||
"account_upgrade_dialog_cancel_warning": "Sellega <strong>katkestad oma tellimuse</strong> ja {{date}} muutub sinu kasutajakonto tase madalamaks. Sel kuupäeval teemade reserveeringud tühistuvad ja puhverdatud sõnumid <strong>kustutatakse serverist</strong>.",
|
||||
"account_upgrade_dialog_proration_info": "<strong>Summade jagamine</strong>: Kui muudad teenusepaketti paremaks, siis pead hinnavahe <strong>maksma kohe</strong>. Kui muudad teenusepaketti madalamaks, siis hinnavahe arvelt hüvituvad mõned järgmised maksed.",
|
||||
"account_upgrade_dialog_reservations_warning_one": "Sinu praegune teenusepakett võimaldab senise paketiga võrreldes reserveerida vähem teemasid. Enne paketi muutmist <strong>palun esmalt kustuta vähemalt üks reserveering</strong>. Seda saad <Link>teha siin</Link>.",
|
||||
"account_upgrade_dialog_reservations_warning_other": "Sinu praegune teenusepakett võimaldab senise paketiga võrreldes reserveerida vähem teemasid. Enne paketi muutmist <strong>palun esmalt kustuta vähemalt {{count}} reserveeringut</strong>. Seda saad <Link>teha siin</Link>.",
|
||||
"prefs_users_description": "Oma kaitstud teemade kasutajaid saad lisada ja eemaldada siin. Palun arvesta, et kasutajanimi ja salasõna on salvestatud veebibrauseri kohalikus andmeruumis.",
|
||||
"account_basics_cannot_edit_or_delete_provisioned_user": "Eelsisestatud kasutajat ei saa muuta ega kustutada",
|
||||
"account_tokens_table_cannot_delete_or_edit_provisioned_token": "Eelsisestatud tunnusluba ei saa muuta ega kustutada"
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"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é",
|
||||
"nav_button_publish_message": "Publier la notification",
|
||||
"nav_button_publish_message": "Publier une notification",
|
||||
"notifications_copied_to_clipboard": "Copié dans le presse-papiers",
|
||||
"alert_not_supported_title": "Notifications non prises en charge",
|
||||
"notifications_tags": "Étiquettes",
|
||||
@@ -64,7 +64,7 @@
|
||||
"notifications_actions_not_supported": "Cette action n'est pas supportée dans l'application web",
|
||||
"notifications_actions_http_request_title": "Envoyer une requête HTTP {{method}} à {{url}}",
|
||||
"publish_dialog_attachment_limits_quota_reached": "quota dépassé, {{remainingBytes}} restants",
|
||||
"publish_dialog_tags_placeholder": "Liste séparée par des virgules d'étiquettes, par ex. avertissement,backup-srv1",
|
||||
"publish_dialog_tags_placeholder": "Liste d'étiquettes séparée par des virgules, par ex. avertissement,backup-srv1",
|
||||
"publish_dialog_priority_label": "Priorité",
|
||||
"publish_dialog_click_label": "URL du clic",
|
||||
"publish_dialog_click_placeholder": "URL ouverte lors d'un clic sur la notification",
|
||||
@@ -272,7 +272,7 @@
|
||||
"account_delete_dialog_button_submit": "Supprimer définitivement le compte",
|
||||
"account_delete_dialog_billing_warning": "Supprimer votre compte annule aussi immédiatement votre facturation. Vous n'aurez plus accès à votre tableau de bord de facturation.",
|
||||
"account_upgrade_dialog_title": "Changer le tarif du compte",
|
||||
"account_upgrade_dialog_proration_info": "<strong>Facturation</strong> : Lors d'un changement vers un tiers payant, la différence de prix sera débitée <strong>immédiatement</strong>. En passant d'un tiers payant a gratuit, votre solde sera utilisé pour payer de futur factures.",
|
||||
"account_upgrade_dialog_proration_info": "<strong>Proratisation</strong> : Lors d'un changement vers le haut entre plans payants, la différence de prix sera <strong>facturée immédiatement</strong>. En cas de diminutions vers un plan plus économique, la balance sera utilisée pour le paiement des factures suivantes.",
|
||||
"account_upgrade_dialog_reservations_warning_other": "Le tarif sélectionné autorise moins de sujets réservés que votre tarif actuel. Avant de changer de tarif, <strong>veuillez supprimer au moins {{count}} sujets réservés</strong>. Vous pouvez supprimer des sujets réservés dans les <Link>Paramètres</Link>.",
|
||||
"account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} sujets réservés",
|
||||
"account_upgrade_dialog_tier_features_messages_other": "{{messages}} messages journaliers",
|
||||
@@ -403,5 +403,7 @@
|
||||
"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"
|
||||
"web_push_unknown_notification_body": "Il est possible que vous deviez mettre à jour ntfy en ouvrant l'application web",
|
||||
"account_basics_cannot_edit_or_delete_provisioned_user": "Un utilisateur provisionné ne peut pas être modifié ou supprimé",
|
||||
"account_tokens_table_cannot_delete_or_edit_provisioned_token": "Impossible de modifier ou de supprimer le jeton provisionné"
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"nav_topics_title": "Topik yang dilanggani",
|
||||
"nav_button_subscribe": "Berlangganan ke topik",
|
||||
"alert_notification_permission_required_title": "Notifikasi dinonaktifkan",
|
||||
"alert_notification_permission_required_description": "Berikan izin ke peramban untuk menampilkan notifikasi desktop.",
|
||||
"alert_notification_permission_required_description": "Berikan izin ke peramban web Anda untuk menampilkan notifikasi desktop",
|
||||
"alert_not_supported_description": "Notifikasi tidak didukung dalam peramban Anda",
|
||||
"notifications_attachment_open_title": "Pergi ke {{url}}",
|
||||
"notifications_attachment_open_button": "Buka lampiran",
|
||||
@@ -65,11 +65,11 @@
|
||||
"publish_dialog_attachment_limits_file_reached": "melebihi batasan file {{fileSizeLimit}",
|
||||
"publish_dialog_attachment_limits_file_and_quota_reached": "melebihi batasan file dan kuota {{fileSizeLimit}}, hanya {{remainingBytes}}",
|
||||
"publish_dialog_attachment_limits_quota_reached": "melebihi kuota, hanya {{remainingBytes}}",
|
||||
"publish_dialog_priority_min": "Prioritas min.",
|
||||
"publish_dialog_priority_min": "Prioritas minimal",
|
||||
"publish_dialog_priority_low": "Prioritas rendah",
|
||||
"publish_dialog_priority_default": "Prioritas bawaan",
|
||||
"publish_dialog_priority_high": "Prioritas tinggi",
|
||||
"publish_dialog_priority_max": "Prioritas maks.",
|
||||
"publish_dialog_priority_max": "Prioritas maksimal",
|
||||
"publish_dialog_topic_label": "Nama topik",
|
||||
"publish_dialog_message_placeholder": "Ketik sebuah pesan di sini",
|
||||
"publish_dialog_click_label": "Klik URL",
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
"message_bar_error_publishing": "Errore durante la pubblicazione della notifica",
|
||||
"message_bar_show_dialog": "Mostra la finestra di dialogo di pubblicazione",
|
||||
"message_bar_publish": "Pubblica messaggio",
|
||||
"nav_topics_title": "Topic a cui si è iscritti",
|
||||
"nav_topics_title": "Argomenti a cui si è iscritti",
|
||||
"nav_button_all_notifications": "Tutte le notifiche",
|
||||
"nav_button_settings": "Impostazioni",
|
||||
"nav_button_publish_message": "Pubblica notifica",
|
||||
"nav_button_subscribe": "Iscriviti al topic",
|
||||
"nav_button_subscribe": "Iscriviti all'argomento",
|
||||
"nav_button_muted": "Notifiche disattivate",
|
||||
"nav_button_connecting": "connessione",
|
||||
"alert_notification_permission_required_title": "Le notifiche sono disabilitate",
|
||||
@@ -31,17 +31,17 @@
|
||||
"notifications_attachment_open_title": "Vai a {{url}}",
|
||||
"notifications_attachment_open_button": "Apri allegato",
|
||||
"notifications_attachment_link_expires": "Il collegamento scade il {{date}}",
|
||||
"notifications_attachment_link_expired": "link per il download scaduto",
|
||||
"notifications_attachment_link_expired": "collegamento per il download scaduto",
|
||||
"notifications_attachment_file_image": "file immagine",
|
||||
"notifications_attachment_file_video": "file video",
|
||||
"action_bar_toggle_mute": "Abilita/disabilita le notifiche",
|
||||
"notifications_attachment_file_document": "altro documento",
|
||||
"notifications_click_copy_url_button": "Copia link",
|
||||
"notifications_click_open_button": "Apri link",
|
||||
"notifications_click_copy_url_button": "Copia collegamento",
|
||||
"notifications_click_open_button": "Apri collegamento",
|
||||
"notifications_actions_open_url_title": "Vai a {{url}}",
|
||||
"notifications_actions_not_supported": "Azione non supportata nell'app Web",
|
||||
"notifications_none_for_topic_title": "Non hai ancora ricevuto alcuna notifica per questo topic.",
|
||||
"notifications_none_for_topic_description": "Per inviare notifiche a questo argomento, è sufficiente PUT o POST all'URL del topic.",
|
||||
"notifications_none_for_topic_title": "Non hai ancora ricevuto alcuna notifica per questo argomento.",
|
||||
"notifications_none_for_topic_description": "Per inviare notifiche a questo argomento, è sufficiente PUT o POST all'URL dell'argomento.",
|
||||
"notifications_none_for_any_title": "Non hai ricevuto alcuna notifica.",
|
||||
"notifications_no_subscriptions_title": "Sembra che tu non abbia ancora abbonamenti.",
|
||||
"notifications_example": "Esempio",
|
||||
@@ -63,9 +63,9 @@
|
||||
"publish_dialog_priority_max": "Max. priorità",
|
||||
"publish_dialog_base_url_label": "URL del servizio",
|
||||
"publish_dialog_base_url_placeholder": "URL del servizio, ad es. https://esempio.com",
|
||||
"publish_dialog_topic_label": "Nome topic",
|
||||
"publish_dialog_topic_placeholder": "Nome topic, ad es. avvisi_di_phil",
|
||||
"publish_dialog_topic_reset": "Reset topic",
|
||||
"publish_dialog_topic_label": "Nome argomento",
|
||||
"publish_dialog_topic_placeholder": "Nome argomento, ad es. avvisi_di_phil",
|
||||
"publish_dialog_topic_reset": "Reimposta argomento",
|
||||
"publish_dialog_title_label": "Titolo",
|
||||
"publish_dialog_title_placeholder": "Titolo della notifica, ad es. Avviso di spazio su disco",
|
||||
"publish_dialog_message_label": "Messaggio",
|
||||
@@ -97,13 +97,13 @@
|
||||
"publish_dialog_attached_file_remove": "Rimuovi il file allegato",
|
||||
"publish_dialog_drop_file_here": "Trascina il file qui",
|
||||
"emoji_picker_search_clear": "Cancella ricerca",
|
||||
"subscribe_dialog_subscribe_title": "Iscriviti al topic",
|
||||
"subscribe_dialog_subscribe_title": "Iscriviti all'argomento",
|
||||
"subscribe_dialog_subscribe_topic_placeholder": "Nome dell'argomento, ad es. avvisi_di_phil",
|
||||
"subscribe_dialog_subscribe_base_url_label": "URL del servizio",
|
||||
"subscribe_dialog_subscribe_button_cancel": "Annulla",
|
||||
"subscribe_dialog_login_title": "Accesso richiesto",
|
||||
"subscribe_dialog_login_username_label": "Nome utente, ad es. phil",
|
||||
"subscribe_dialog_login_button_login": "Login",
|
||||
"subscribe_dialog_login_button_login": "Accesso",
|
||||
"subscribe_dialog_error_user_anonymous": "anonimo",
|
||||
"prefs_notifications_sound_title": "Suono di notifica",
|
||||
"prefs_notifications_sound_description_some": "Le notifiche riproducono il suono {{sound}} quando arrivano",
|
||||
@@ -122,7 +122,7 @@
|
||||
"prefs_notifications_delete_after_one_week_description": "Le notifiche vengono eliminate automaticamente dopo una settimana",
|
||||
"prefs_notifications_delete_after_one_month_description": "Le notifiche vengono eliminate automaticamente dopo un mese",
|
||||
"prefs_users_title": "Gestisci gli utenti",
|
||||
"prefs_users_description": "Aggiungi/rimuovi utenti per i tuoi topic protetti qui. Tieni presente che nome utente e password sono memorizzati nella memoria locale del browser.",
|
||||
"prefs_users_description": "Aggiungi/rimuovi utenti per i tuoi argomenti protetti qui. Tieni presente che nome utente e password sono memorizzati nella memoria locale del browser.",
|
||||
"prefs_users_table": "Tabella utenti",
|
||||
"prefs_users_add_button": "Aggiungi utente",
|
||||
"prefs_users_edit_button": "Modifica utente",
|
||||
@@ -158,16 +158,16 @@
|
||||
"alert_notification_permission_required_description": "Concedi al tuo browser l'autorizzazione a visualizzare le notifiche sul desktop",
|
||||
"alert_not_supported_title": "Notifiche non supportate",
|
||||
"notifications_attachment_file_app": "file app Android",
|
||||
"notifications_no_subscriptions_description": "Fai clic sul link \"{{linktext}}\" per creare o iscriverti a un topic. Successivamente, puoi inviare messaggi tramite PUT o POST e riceverai le notifiche qui.",
|
||||
"notifications_no_subscriptions_description": "Fai clic sul collegamento \"{{linktext}}\" per creare o iscriverti a un argomento. Successivamente, puoi inviare messaggi tramite PUT o POST e riceverai le notifiche qui.",
|
||||
"notifications_attachment_file_audio": "file audio",
|
||||
"notifications_none_for_any_description": "Per inviare notifiche a un topic, è sufficiente PUT o POST all'URL del topic. Ecco un esempio utilizzando uno dei tuoi topic.",
|
||||
"notifications_none_for_any_description": "Per inviare notifiche a un argomento, è sufficiente PUT o POST all'URL dell'argomento. Ecco un esempio utilizzando uno dei tuoi argomenti.",
|
||||
"notifications_click_copy_url_title": "Copia l'URL del collegamento negli appunti",
|
||||
"prefs_notifications_sound_description_none": "Le notifiche non emettono alcun suono quando arrivano",
|
||||
"publish_dialog_delay_label": "Ritardo",
|
||||
"publish_dialog_tags_placeholder": "Elenco di tag separato da virgole, ad es. avviso, backup-srv1",
|
||||
"publish_dialog_click_placeholder": "URL che viene aperto quando si fa clic sulla notifica",
|
||||
"publish_dialog_attach_placeholder": "Allega file tramite URL, ad es. https://f-droid.org/F-Droid.apk",
|
||||
"publish_dialog_chip_topic_label": "Cambia topic",
|
||||
"publish_dialog_chip_topic_label": "Cambia argomento",
|
||||
"publish_dialog_details_examples_description": "Per esempi e una descrizione dettagliata di tutte le funzioni di invio, fare riferimento alla <docsLink>documentazione</docsLink>.",
|
||||
"publish_dialog_attached_file_filename_placeholder": "Nome file allegato",
|
||||
"emoji_picker_search_placeholder": "Cerca emoji",
|
||||
@@ -177,7 +177,7 @@
|
||||
"subscribe_dialog_subscribe_button_subscribe": "Iscriviti",
|
||||
"prefs_notifications_sound_play": "Riproduci il suono selezionato",
|
||||
"prefs_notifications_min_priority_title": "Priorità minima",
|
||||
"subscribe_dialog_login_description": "Questo argomento è protetto da password. Per favore inserisci username e password per iscriverti.",
|
||||
"subscribe_dialog_login_description": "Questo argomento è protetto da password. Per favore inserisci nome utente e password per iscriverti.",
|
||||
"common_back": "Indietro",
|
||||
"subscribe_dialog_error_user_not_authorized": "Utente {{username}} non autorizzato",
|
||||
"prefs_notifications_title": "Notifiche",
|
||||
@@ -268,7 +268,7 @@
|
||||
"publish_dialog_chip_call_no_verified_numbers_tooltip": "Nessun numero verificato",
|
||||
"account_basics_phone_numbers_title": "Numeri di telefono",
|
||||
"account_basics_phone_numbers_dialog_description": "Per usare la funzionalità di notifica tramite chiamata telefonica, devi aggiungere e verificare almeno un numero di telefono. La verifica può essere fatta tramite SMS o chiamata telefonica.",
|
||||
"account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} topic riservato",
|
||||
"account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} argomento riservato",
|
||||
"account_upgrade_dialog_billing_contact_email": "Per domande di fatturazione, <Link>contattaci</Link> direttamente.",
|
||||
"account_upgrade_dialog_tier_current_label": "Attuale",
|
||||
"account_basics_phone_numbers_dialog_number_label": "Numero di telefono",
|
||||
@@ -276,13 +276,13 @@
|
||||
"account_basics_phone_numbers_dialog_verify_button_sms": "Invia SMS",
|
||||
"account_basics_phone_numbers_no_phone_numbers_yet": "Ancora nessun numero di telefono",
|
||||
"account_basics_phone_numbers_dialog_title": "Aggiungi un numero di telefono",
|
||||
"account_upgrade_dialog_button_cancel": "Cancella",
|
||||
"account_upgrade_dialog_button_cancel": "Annulla",
|
||||
"account_upgrade_dialog_billing_contact_website": "Per domande di fatturazione, visita per favore in nostro <Link>sito</Link>.",
|
||||
"account_upgrade_dialog_button_cancel_subscription": "Cancella iscrizione",
|
||||
"account_upgrade_dialog_button_cancel_subscription": "Annulla iscrizione",
|
||||
"account_basics_phone_numbers_description": "Per notifiche via chiamata",
|
||||
"account_basics_phone_numbers_copied_to_clipboard": "Numero di telefono copiato negli appunti",
|
||||
"account_basics_phone_numbers_dialog_number_placeholder": "p. e. +391234567890",
|
||||
"account_basics_phone_numbers_dialog_code_placeholder": "p. e. 123456",
|
||||
"account_basics_phone_numbers_dialog_number_placeholder": "es. +391234567890",
|
||||
"account_basics_phone_numbers_dialog_code_placeholder": "es. 123456",
|
||||
"account_tokens_title": "Token d'accesso",
|
||||
"account_upgrade_dialog_tier_price_billed_monthly": "{{price}} all'anno. Addebitato annualmente.",
|
||||
"account_basics_phone_numbers_dialog_channel_call": "Chiama",
|
||||
@@ -296,7 +296,7 @@
|
||||
"account_upgrade_dialog_tier_selected_label": "Selezionato",
|
||||
"account_upgrade_dialog_button_update_subscription": "Aggiorna iscrizione",
|
||||
"account_usage_attachment_storage_title": "Archivio allegati",
|
||||
"account_delete_dialog_description": "Il tuo account sarà permanentemente cancellato assieme a tutti i tuoi dati presenti sul server. Dopo la cancellazione, la tua username non sarà disponibile per 7 giorni. Se desideri davvero procedere, inserisci la tua password nella seguente casella.",
|
||||
"account_delete_dialog_description": "Il tuo account sarà permanentemente eliminato insieme a tutti i tuoi dati presenti sul server. Dopo l'eliminazione, il tuo nome utente non sarà disponibile per 7 giorni. Se desideri davvero procedere, inserisci la tua password nella seguente casella.",
|
||||
"account_delete_dialog_button_cancel": "Annulla",
|
||||
"account_usage_calls_title": "Chiamate effettuate",
|
||||
"account_delete_description": "Elimina permanentemente il tuo account",
|
||||
@@ -326,7 +326,7 @@
|
||||
"account_tokens_dialog_title_edit": "Modifica token di accesso",
|
||||
"account_tokens_dialog_button_create": "Crea token",
|
||||
"account_tokens_dialog_button_update": "Aggiorna token",
|
||||
"account_upgrade_dialog_tier_features_emails_one": "{{emails}} e-mails giornaliere",
|
||||
"account_upgrade_dialog_tier_features_emails_one": "{{emails}} email giornaliere",
|
||||
"account_upgrade_dialog_tier_features_messages_other": "{{messages}} messaggi giornalieri",
|
||||
"account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} per file",
|
||||
"account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} spazio di archiviazione totale",
|
||||
@@ -348,7 +348,7 @@
|
||||
"account_tokens_dialog_title_create": "Crea token di accesso",
|
||||
"account_tokens_dialog_button_cancel": "Annulla",
|
||||
"web_push_unknown_notification_body": "Potrebbe essere necessario aggiornare ntfy aprendo l'app web",
|
||||
"account_upgrade_dialog_proration_info": "<strong>Prorata</strong>: quando si esegue l'upgrade tra piani a pagamento, la differenza di prezzo verrà <strong>addebitata immediatamente</strong>. Quando si esegue il downgrade a un livello inferiore, il saldo verrà utilizzato per pagare i periodi di fatturazione futuri.",
|
||||
"account_upgrade_dialog_proration_info": "<strong>Prorata</strong>: quando si esegue l'aggiornamento tra piani a pagamento, la differenza di prezzo verrà <strong>addebitata immediatamente</strong>. Quando si esegue il ritorna ad un livello inferiore, il saldo verrà utilizzato per pagare i periodi di fatturazione futuri.",
|
||||
"account_tokens_table_last_access_header": "Ultimo accesso",
|
||||
"account_tokens_table_expires_header": "Scade",
|
||||
"account_tokens_table_never_expires": "Non scade mai",
|
||||
|
||||
@@ -403,5 +403,7 @@
|
||||
"prefs_appearance_theme_system": "システム (既定)",
|
||||
"prefs_appearance_theme_dark": "ダークモード",
|
||||
"web_push_unknown_notification_title": "不明な通知を受信しました",
|
||||
"web_push_unknown_notification_body": "ウェブアプリを開いてntfyをアップデートする必要があります"
|
||||
"web_push_unknown_notification_body": "ウェブアプリを開いてntfyをアップデートする必要があります",
|
||||
"account_basics_cannot_edit_or_delete_provisioned_user": "自動作成されたユーザーの編集や削除はできません",
|
||||
"account_tokens_table_cannot_delete_or_edit_provisioned_token": "自動作成されたトークンは編集や削除はできません"
|
||||
}
|
||||
|
||||
@@ -187,5 +187,6 @@
|
||||
"prefs_users_dialog_username_label": "사용자 이름, 예를 들면 phil",
|
||||
"prefs_users_dialog_password_label": "비밀번호",
|
||||
"priority_max": "최상",
|
||||
"error_boundary_description": "이것은 당연히 발생되어서는 안됩니다. 굉장히 죄송합니다.<br/>가능하시다면 <githubLink>이 문제를 깃허브에 제보</githubLink>해 주시거나, <discordLink>디스코드 서버</discordLink>나 <matrixLink>Matrix</matrixLink>를 통해 알려주세요."
|
||||
"error_boundary_description": "이것은 당연히 발생되어서는 안됩니다. 굉장히 죄송합니다.<br/>가능하시다면 <githubLink>이 문제를 깃허브에 제보</githubLink>해 주시거나, <discordLink>디스코드 서버</discordLink>나 <matrixLink>Matrix</matrixLink>를 통해 알려주세요.",
|
||||
"common_copy_to_clipboard": "클립보드에 복사"
|
||||
}
|
||||
|
||||
54
web/public/static/langs/mk.json
Normal file
54
web/public/static/langs/mk.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"common_cancel": "Откажи",
|
||||
"common_save": "Зачувај",
|
||||
"common_add": "Додади",
|
||||
"common_back": "Назад",
|
||||
"common_copy_to_clipboard": "Копирај",
|
||||
"action_bar_profile_logout": "Одјави се",
|
||||
"action_bar_sign_in": "Најави се",
|
||||
"action_bar_sign_up": "Регистрирај се",
|
||||
"message_bar_type_message": "Пишете порака тука",
|
||||
"action_bar_profile_title": "Профил",
|
||||
"action_bar_profile_settings": "Подесувања",
|
||||
"signup_form_username": "Корисничко име",
|
||||
"signup_form_password": "Лозинка",
|
||||
"signup_form_confirm_password": "Повтори лозинка",
|
||||
"login_form_button_submit": "Најави се",
|
||||
"login_link_signup": "Регистрирај се",
|
||||
"signup_form_button_submit": "Регистрирај се",
|
||||
"action_bar_settings": "Подесувања",
|
||||
"signup_title": "Создади ntfy профил",
|
||||
"signup_form_toggle_password_visibility": "Покажи/сокриј лозинка",
|
||||
"signup_already_have_account": "Имате профил? Најавете се!",
|
||||
"signup_disabled": "Регистрирање е исклучено",
|
||||
"signup_error_username_taken": "Корисничкото име {{username}} е веќе земено",
|
||||
"signup_error_creation_limit_reached": "Лимитот на создадени профили е надминат",
|
||||
"login_title": "Најавете се на вашиот ntfy профил",
|
||||
"login_disabled": "Најавувањето е исклучено",
|
||||
"action_bar_show_menu": "Покажи мени",
|
||||
"action_bar_logo_alt": "ntfy лого",
|
||||
"action_bar_account": "Профил",
|
||||
"action_bar_change_display_name": "Промени покажано име",
|
||||
"action_bar_reservation_add": "Резервирај тема",
|
||||
"action_bar_reservation_edit": "Промени резервација",
|
||||
"account_basics_title": "Профил",
|
||||
"account_basics_username_title": "Корисничко име",
|
||||
"nav_button_account": "Профил",
|
||||
"nav_button_settings": "Подесувања",
|
||||
"nav_button_documentation": "Документација",
|
||||
"notifications_attachment_copy_url_button": "Копирај URL",
|
||||
"publish_dialog_message_label": "Порака",
|
||||
"action_bar_reservation_delete": "Отстрани резервација",
|
||||
"action_bar_reservation_limit_reached": "Достигната е границата",
|
||||
"action_bar_send_test_notification": "Испрати тест нотификација",
|
||||
"action_bar_clear_notifications": "Исчисти ги сите нотификации",
|
||||
"action_bar_mute_notifications": "Загуши ги нотификациите",
|
||||
"action_bar_unsubscribe": "Отпиши се",
|
||||
"action_bar_toggle_action_menu": "Отвори/затвори мени за акција",
|
||||
"message_bar_error_publishing": "Грешки при публикација на нотификацијата",
|
||||
"message_bar_show_dialog": "Покажи дијалог за публикација",
|
||||
"nav_topics_title": "Претплатени теми",
|
||||
"nav_button_all_notifications": "Сите нотификации",
|
||||
"nav_button_publish_message": "Објави нотификација",
|
||||
"nav_button_subscribe": "Претплати се на тема"
|
||||
}
|
||||
@@ -309,5 +309,100 @@
|
||||
"account_delete_dialog_button_cancel": "Cancelar",
|
||||
"account_upgrade_dialog_cancel_warning": "Isto irá <strong>cancelar a sua assinatura</strong>, e fazer downgrade da sua conta em {{date}}. Nessa data, tópicos reservados bem como mensagens guardadas no servidor <strong>serão eliminados</strong>.",
|
||||
"account_upgrade_dialog_proration_info": "<strong>Proporção</strong>: Quando atualizar entre planos pagos, a diferença de preço será <strong>debitada imediatamente</strong>. Quando efetuar um downgrade para um escalão inferior, o saldo disponível será usado para futuros períodos de faturação.",
|
||||
"prefs_users_description_no_sync": "Utilizadores e palavras-passe não estão sincronizados com a sua conta."
|
||||
"prefs_users_description_no_sync": "Utilizadores e palavras-passe não estão sincronizados com a sua conta.",
|
||||
"account_upgrade_dialog_reservations_warning_one": "O nível selecionado permite menos tópicos reservados do que o nível atual. Antes de alterar o seu nível, <strong>apague pelo menos uma reserva</strong>. Pode remover reservas nas <Link>Configurações</Link>.",
|
||||
"account_upgrade_dialog_reservations_warning_other": "O nível selecionado permite menos tópicos reservados do que o seu nível atual. Antes de mudar o seu nível, <strong>por favor apague ao menos {{count}} reservas</strong>. Pode remover reservas nas <Link>Configurações</Link>.",
|
||||
"account_upgrade_dialog_tier_features_reservations_one": "{{reservations}} tópico reservado",
|
||||
"account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} tópicos reservados",
|
||||
"account_upgrade_dialog_tier_features_no_reservations": "Sem tópicos reservados",
|
||||
"account_upgrade_dialog_tier_features_messages_one": "{{messages}} mensagen diária",
|
||||
"account_upgrade_dialog_tier_features_messages_other": "{{messages}} mensagens diárias",
|
||||
"account_upgrade_dialog_tier_features_emails_one": "{{emails}} email diário",
|
||||
"account_upgrade_dialog_tier_features_emails_other": "{{emails}} emails diários",
|
||||
"account_upgrade_dialog_tier_features_calls_one": "{{calls}} chamadas diárias",
|
||||
"account_upgrade_dialog_tier_features_calls_other": "{{calls}} chamadas telefônicas diárias",
|
||||
"account_upgrade_dialog_tier_features_no_calls": "Nenhuma chamada",
|
||||
"account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} por ficheiro",
|
||||
"account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} armazenamento total",
|
||||
"account_upgrade_dialog_tier_price_per_month": "mês",
|
||||
"account_upgrade_dialog_tier_price_billed_monthly": "{{price}} por ano. Cobrado mensalmente.",
|
||||
"account_upgrade_dialog_tier_price_billed_yearly": "{{price}} cobrado anualmente. Gravar {{save}}.",
|
||||
"account_upgrade_dialog_tier_selected_label": "Selecionado",
|
||||
"account_upgrade_dialog_tier_current_label": "Atual",
|
||||
"account_upgrade_dialog_billing_contact_email": "Para questões de cobrança, <Link>entre em contacto conosco</Link> diretamente.",
|
||||
"account_upgrade_dialog_billing_contact_website": "Para perguntas sobre o faturamento, consulte o nosso <Link>website</Link>.",
|
||||
"account_upgrade_dialog_button_cancel": "Cancelar",
|
||||
"account_upgrade_dialog_button_redirect_signup": "Cadastre-se agora",
|
||||
"account_upgrade_dialog_button_pay_now": "Pague agora para assinar",
|
||||
"account_upgrade_dialog_button_cancel_subscription": "Cancelar assinatura",
|
||||
"account_upgrade_dialog_button_update_subscription": "Atualizar assinatura",
|
||||
"account_tokens_title": "Tokens de Acesso",
|
||||
"account_tokens_description": "Use tokens de acesso ao publicar e assinar por meio da API ntfy, para que não precise enviar as credenciais da sua conta. Consulte a <Link>documentação</Link> para saber mais.",
|
||||
"account_tokens_table_token_header": "Token",
|
||||
"account_tokens_table_label_header": "Rótulo",
|
||||
"account_tokens_table_last_access_header": "Último acesso",
|
||||
"account_tokens_table_expires_header": "Expira",
|
||||
"account_tokens_table_never_expires": "Nunca expira",
|
||||
"account_tokens_table_current_session": "Sessão atual do navegador",
|
||||
"account_tokens_table_copied_to_clipboard": "Token de acesso copiado",
|
||||
"account_tokens_table_cannot_delete_or_edit": "Não é possível editar ou apagar o token da sessão atual",
|
||||
"account_tokens_table_create_token_button": "Criar token de acesso",
|
||||
"account_tokens_table_last_origin_tooltip": "Do endereço IP {{ip}}, clique para pesquisar",
|
||||
"account_tokens_dialog_title_create": "Criar token de acesso",
|
||||
"account_tokens_dialog_title_edit": "Editar token de acesso",
|
||||
"account_tokens_dialog_title_delete": "Apagar token de acesso",
|
||||
"account_tokens_dialog_label": "Rótulo, por exemplo, notificações de Radarr",
|
||||
"account_tokens_dialog_button_create": "Criar token",
|
||||
"account_tokens_dialog_button_update": "Atualizar token",
|
||||
"account_tokens_dialog_button_cancel": "Cancelar",
|
||||
"account_tokens_dialog_expires_label": "O token de acesso expira em",
|
||||
"account_tokens_dialog_expires_unchanged": "Deixar a data de validade inalterada",
|
||||
"account_tokens_dialog_expires_x_hours": "O token expira em {{hours}} horas",
|
||||
"account_tokens_dialog_expires_x_days": "O token expira em {{days}} dias",
|
||||
"account_tokens_dialog_expires_never": "O token nunca expira",
|
||||
"account_tokens_delete_dialog_title": "Apagar token de acesso",
|
||||
"account_tokens_delete_dialog_description": "Antes de apagar um token de acesso, certifique-se de que nenhuma aplicação ou script esteja usando-lo ativamente. <strong>Esta ação não pode ser desfeita</strong>.",
|
||||
"account_tokens_delete_dialog_submit_button": "Apagar token permanentemente",
|
||||
"prefs_notifications_web_push_title": "Notificações em segundo plano",
|
||||
"prefs_notifications_web_push_enabled_description": "As notificações são recebidas mesmo quando a aplicação Web não está em execução (via Web Push)",
|
||||
"prefs_notifications_web_push_disabled_description": "As notificações são recebidas quando a aplicação Web está em execução (via WebSocket)",
|
||||
"prefs_notifications_web_push_enabled": "Ativado para {{server}}",
|
||||
"prefs_notifications_web_push_disabled": "Desativado",
|
||||
"prefs_users_table_cannot_delete_or_edit": "Não é possível apagar ou editar o utilizador conectado",
|
||||
"prefs_appearance_theme_title": "Tema",
|
||||
"prefs_appearance_theme_system": "Sistema (padrão)",
|
||||
"prefs_appearance_theme_dark": "Modo escuro",
|
||||
"prefs_appearance_theme_light": "Modo claro",
|
||||
"prefs_reservations_title": "Tópicos reservados",
|
||||
"prefs_reservations_description": "Pode reservar nomes de tópicos para uso pessoal aqui. A reserva de um tópico lhe dá propriedade sobre ele e permite que defina permissões de acesso para outros utilizadores sobre o tópico.",
|
||||
"prefs_reservations_limit_reached": "Atingiu o seu limite de tópicos reservados.",
|
||||
"prefs_reservations_add_button": "Adicionar tópico reservado",
|
||||
"prefs_reservations_edit_button": "Editar o acesso ao tópico",
|
||||
"prefs_reservations_delete_button": "Redefinir o acesso ao tópico",
|
||||
"prefs_reservations_table": "Tabela de tópicos reservados",
|
||||
"prefs_reservations_table_topic_header": "Tópico",
|
||||
"prefs_reservations_table_access_header": "Acesso",
|
||||
"prefs_reservations_table_everyone_deny_all": "Somente eu posso publicar e me inscrever",
|
||||
"prefs_reservations_table_everyone_read_only": "Posso publicar e me inscrever, todos podem se inscrever",
|
||||
"prefs_reservations_table_everyone_write_only": "Posso publicar e me inscrever, todos podem publicar",
|
||||
"prefs_reservations_table_everyone_read_write": "Todos podem publicar e se inscreverem",
|
||||
"prefs_reservations_table_not_subscribed": "Não inscrito",
|
||||
"prefs_reservations_table_click_to_subscribe": "Clique para se inscrever",
|
||||
"prefs_reservations_dialog_title_add": "Reservar tópico",
|
||||
"prefs_reservations_dialog_title_edit": "Editar tópico reservado",
|
||||
"prefs_reservations_dialog_title_delete": "Apagar reserva de tópico",
|
||||
"prefs_reservations_dialog_description": "A reserva de um tópico lhe dá propriedade sobre ele e permite definir permissões de acesso para outros utilizadores sobre o tópico.",
|
||||
"prefs_reservations_dialog_topic_label": "Tópico",
|
||||
"prefs_reservations_dialog_access_label": "Acesso",
|
||||
"reservation_delete_dialog_description": "A remoção de uma reserva abre mão da propriedade sobre o tópico e permite que outros o reservem. Pode manter ou apagar as mensagens e os anexos existentes.",
|
||||
"reservation_delete_dialog_action_keep_title": "Manter mensagens e anexos em cache",
|
||||
"reservation_delete_dialog_action_keep_description": "As mensagens e os anexos armazenados em cache no servidor ficarão visíveis publicamente para as pessoas que souberem o nome do tópico.",
|
||||
"reservation_delete_dialog_action_delete_title": "Apagar mensagens e anexos armazenados em cache",
|
||||
"reservation_delete_dialog_action_delete_description": "As mensagens e os anexos armazenados em cache serão apagados permanentemente. Esta ação não pode ser desfeita.",
|
||||
"reservation_delete_dialog_submit_button": "Apagar reserva",
|
||||
"error_boundary_button_reload_ntfy": "Recarregar ntfy",
|
||||
"web_push_subscription_expiring_title": "As notificações serão pausadas",
|
||||
"web_push_subscription_expiring_body": "Abra o ntfy para continuar recebendo notificações",
|
||||
"web_push_unknown_notification_title": "Notificação desconhecida recebida do servidor",
|
||||
"web_push_unknown_notification_body": "Talvez seja necessário atualizar o ntfy abrindo a aplicação da Web"
|
||||
}
|
||||
|
||||
@@ -301,7 +301,7 @@
|
||||
"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_usage_cannot_create_portal_session": "Não é possível abrir o portal de cobrança",
|
||||
"account_delete_description": "Deletar sua conta permanentemente",
|
||||
"account_delete_dialog_button_cancel": "Cancelar",
|
||||
"account_delete_dialog_button_submit": "Deletar conta permanentemente",
|
||||
@@ -342,7 +342,7 @@
|
||||
"account_tokens_table_expires_header": "Expira",
|
||||
"prefs_users_description_no_sync": "Usuários e senhas não estão sincronizados com a sua conta.",
|
||||
"account_tokens_description": "Use tokens de acesso ao publicar e assinar por meio da API ntfy, para que você não precise enviar as credenciais da sua conta. Consulte a <Link>documentação</Link> para saber mais.",
|
||||
"account_tokens_table_cannot_delete_or_edit": "Não é possível editar ou excluir o token da sessão atual",
|
||||
"account_tokens_table_cannot_delete_or_edit": "Não é possível editar ou apagar o token da sessão atual",
|
||||
"account_tokens_dialog_title_edit": "Editar token de acesso",
|
||||
"account_tokens_dialog_title_delete": "Excluir token de acesso",
|
||||
"prefs_reservations_table_everyone_read_write": "Todos podem publicar e se inscrever",
|
||||
@@ -369,7 +369,7 @@
|
||||
"account_tokens_dialog_button_update": "Atualizar token",
|
||||
"prefs_reservations_table": "Tabela de tópicos reservados",
|
||||
"prefs_reservations_table_everyone_deny_all": "Somente eu posso publicar e me inscrever",
|
||||
"account_tokens_delete_dialog_description": "Antes de excluir um token de acesso, certifique-se de que nenhum aplicativo ou script o esteja usando ativamente. <strong>Esta ação não pode ser desfeita</strong>.",
|
||||
"account_tokens_delete_dialog_description": "Antes de apagar um token de acesso, certifique-se de que nenhum aplicativo ou script o esteja usando ativamente. <strong>Esta ação não pode ser desfeita</strong>.",
|
||||
"account_tokens_delete_dialog_submit_button": "Excluir token permanentemente",
|
||||
"account_tokens_dialog_expires_x_hours": "O token expira em {{hours}} horas",
|
||||
"account_tokens_dialog_expires_x_days": "O token expira em {{days}} dias",
|
||||
@@ -383,7 +383,7 @@
|
||||
"prefs_notifications_web_push_enabled": "Ativado para {{server}}",
|
||||
"prefs_notifications_web_push_disabled": "Desativado",
|
||||
"prefs_appearance_theme_title": "Tema",
|
||||
"prefs_users_table_cannot_delete_or_edit": "Não é possível excluir ou editar o usuário conectado",
|
||||
"prefs_users_table_cannot_delete_or_edit": "Não é possível apagar ou editar o usuário conectado",
|
||||
"prefs_appearance_theme_system": "Sistema (padrão)",
|
||||
"prefs_appearance_theme_dark": "Modo escuro",
|
||||
"prefs_appearance_theme_light": "Modo claro",
|
||||
|
||||
@@ -242,5 +242,123 @@
|
||||
"account_usage_attachment_storage_title": "Stocare atașamente",
|
||||
"account_usage_basis_ip_description": "Statistica și limitele de utilizare pentru acest cont se bazează pe adresa ta IP, așadar pot fi partajate cu alți utilizatori. Limitele afișate mai sus sunt aproximative, bazate pe limitele de viteză existente.",
|
||||
"account_usage_reservations_none": "Nu există subiecte rezervate pentru acest cont",
|
||||
"account_basics_tier_canceled_subscription": "Abonamentul tău a fost anulat și va fi retrogradat la un cont gratuit în data de {{date}}."
|
||||
"account_basics_tier_canceled_subscription": "Abonamentul tău a fost anulat și va fi retrogradat la un cont gratuit în data de {{date}}.",
|
||||
"account_delete_dialog_label": "Parolă",
|
||||
"account_delete_dialog_button_cancel": "Anulează",
|
||||
"account_delete_dialog_button_submit": "Șterge permanent contul",
|
||||
"account_delete_dialog_billing_warning": "Ștergerea contului tău anulează imediat și abonamentul de facturare. Nu vei mai avea acces la tabloul de bord pentru facturare.",
|
||||
"account_upgrade_dialog_title": "Schimbă nivelul contului",
|
||||
"account_upgrade_dialog_interval_monthly": "Lunar",
|
||||
"account_upgrade_dialog_interval_yearly": "Anual",
|
||||
"account_upgrade_dialog_interval_yearly_discount_save": "economisești {{discount}}%",
|
||||
"account_upgrade_dialog_interval_yearly_discount_save_up_to": "economisești până la {{discount}}%",
|
||||
"prefs_notifications_title": "Notificări",
|
||||
"prefs_notifications_sound_description_none": "Notificările nu redau niciun sunet atunci când sosesc",
|
||||
"prefs_notifications_sound_description_some": "Notificările redau sunetul {{sound}} atunci când sosesc",
|
||||
"prefs_notifications_min_priority_description_any": "Se afișează toate notificările, indiferent de prioritate",
|
||||
"prefs_notifications_min_priority_description_x_or_higher": "Afișează notificările dacă prioritatea este {{number}} ({{name}}) sau mai mare",
|
||||
"prefs_notifications_min_priority_description_max": "Afișează notificări dacă prioritatea este 5 (maxim)",
|
||||
"prefs_notifications_delete_after_title": "Șterge notificările",
|
||||
"prefs_notifications_delete_after_never_description": "Notificările nu sunt niciodată șterse automat",
|
||||
"prefs_notifications_delete_after_three_hours_description": "Notificările sunt șterse automat după trei ore",
|
||||
"prefs_notifications_delete_after_one_day_description": "Notificările sunt șterse automat după o zi",
|
||||
"prefs_notifications_delete_after_one_week_description": "Notificările sunt șterse automat după o săptămână",
|
||||
"prefs_notifications_delete_after_one_month_description": "Notificările sunt șterse automat după o lună",
|
||||
"prefs_notifications_web_push_title": "Notificări în fundal",
|
||||
"prefs_notifications_web_push_enabled_description": "Notificările sunt primite chiar și atunci când aplicația web nu rulează (prin Web Push)",
|
||||
"web_push_subscription_expiring_title": "Notificările vor fi suspendate",
|
||||
"web_push_subscription_expiring_body": "Deschide ntfy pentru a continua să primești notificări",
|
||||
"account_upgrade_dialog_tier_features_reservations_one": "subiect rezervat {{reservations}}",
|
||||
"account_upgrade_dialog_tier_features_reservations_other": "{{reservations}} subiecte rezervate",
|
||||
"account_upgrade_dialog_tier_features_no_reservations": "Nu există subiecte rezervate",
|
||||
"account_upgrade_dialog_tier_features_messages_one": "{{messages}} mesaj zilnic",
|
||||
"account_upgrade_dialog_tier_features_messages_other": "{{messages}} mesaje zilnice",
|
||||
"account_upgrade_dialog_tier_features_emails_one": "{{emails}} e-mail zilnic",
|
||||
"account_upgrade_dialog_tier_features_emails_other": "{{emails}} e-mailuri zilnice",
|
||||
"account_upgrade_dialog_tier_features_calls_one": "{{calls}} apeluri telefonice zilnice",
|
||||
"account_upgrade_dialog_tier_features_calls_other": "{{calls}} apeluri telefonice zilnice",
|
||||
"account_upgrade_dialog_tier_features_no_calls": "Fără apeluri telefonice",
|
||||
"account_upgrade_dialog_tier_features_attachment_file_size": "{{filesize}} per fișier",
|
||||
"account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} stocare totală",
|
||||
"account_upgrade_dialog_tier_price_per_month": "lună",
|
||||
"account_upgrade_dialog_tier_price_billed_monthly": "{{price}} pe an. Facturat lunar.",
|
||||
"account_upgrade_dialog_tier_selected_label": "Selectat",
|
||||
"account_upgrade_dialog_tier_current_label": "Actual",
|
||||
"account_upgrade_dialog_button_cancel": "Anulează",
|
||||
"account_upgrade_dialog_button_redirect_signup": "Înscrie-te acum",
|
||||
"account_upgrade_dialog_button_pay_now": "Plătește acum și abonează-te",
|
||||
"account_upgrade_dialog_button_cancel_subscription": "Anulează abonamentul",
|
||||
"account_tokens_table_token_header": "Token",
|
||||
"account_tokens_table_label_header": "Etichetă",
|
||||
"account_tokens_table_last_access_header": "Ultimul acces",
|
||||
"account_tokens_table_expires_header": "Expiră",
|
||||
"account_tokens_table_never_expires": "Nu expiră niciodată",
|
||||
"account_tokens_table_current_session": "Sesiunea curentă a browserului",
|
||||
"account_tokens_table_copied_to_clipboard": "Tokenul de acces a fost copiat",
|
||||
"account_tokens_table_last_origin_tooltip": "De la adresa IP {{ip}}, faceți clic pentru a căuta",
|
||||
"account_tokens_dialog_title_create": "Crează un token de acces",
|
||||
"account_tokens_dialog_title_edit": "Modifică tokenul de acces",
|
||||
"account_tokens_dialog_title_delete": "Șterge tokenul de acces",
|
||||
"account_tokens_dialog_label": "Etichetă, de exemplu, notificări Radarr",
|
||||
"account_tokens_dialog_button_create": "Crează un token",
|
||||
"account_tokens_dialog_button_update": "Actualizare token",
|
||||
"account_tokens_dialog_button_cancel": "Anulează",
|
||||
"account_tokens_dialog_expires_label": "Tokenul de acces expiră în",
|
||||
"account_tokens_dialog_expires_never": "Tokenul nu expiră niciodată",
|
||||
"account_tokens_delete_dialog_title": "Șterge tokenul de acces",
|
||||
"account_tokens_delete_dialog_submit_button": "Șterge definitiv tokenul",
|
||||
"prefs_notifications_sound_title": "Sunet de notificare",
|
||||
"prefs_notifications_sound_no_sound": "Niciun sunet",
|
||||
"prefs_notifications_sound_play": "Redă sunetul selectat",
|
||||
"prefs_notifications_min_priority_title": "Prioritate minimă",
|
||||
"prefs_notifications_min_priority_any": "Orice prioritate",
|
||||
"prefs_notifications_min_priority_low_and_higher": "Prioritate scăzută și mai mare",
|
||||
"prefs_notifications_min_priority_default_and_higher": "Prioritate implicită și mai mare",
|
||||
"prefs_notifications_min_priority_high_and_higher": "Prioritate ridicată și mai mare",
|
||||
"prefs_notifications_min_priority_max_only": "Numai prioritate maximă",
|
||||
"prefs_notifications_delete_after_never": "Niciodată",
|
||||
"prefs_notifications_delete_after_three_hours": "După trei ore",
|
||||
"prefs_notifications_delete_after_one_day": "După o zi",
|
||||
"prefs_notifications_delete_after_one_week": "După o săptămână",
|
||||
"prefs_notifications_delete_after_one_month": "După o lună",
|
||||
"prefs_notifications_web_push_disabled_description": "Notificările sunt primite atunci când aplicația web rulează (prin WebSocket)",
|
||||
"prefs_notifications_web_push_enabled": "Activat pentru {{server}}",
|
||||
"prefs_notifications_web_push_disabled": "Dezactivat",
|
||||
"prefs_users_title": "Gestionează utilizatorii",
|
||||
"prefs_users_description_no_sync": "Utilizatorii și parolele nu sunt sincronizate cu contul tău.",
|
||||
"prefs_users_table": "Tabel utilizatori",
|
||||
"prefs_users_add_button": "Adăugă utilizator",
|
||||
"prefs_users_edit_button": "Modifică utilizatorul",
|
||||
"prefs_users_delete_button": "Șterge utilizatorul",
|
||||
"prefs_users_table_cannot_delete_or_edit": "Nu se poate șterge sau modifica utilizatorul conectat",
|
||||
"prefs_users_table_user_header": "Utilizator",
|
||||
"prefs_users_table_base_url_header": "URL-ul serviciului",
|
||||
"prefs_users_dialog_title_add": "Adaugă utilizator",
|
||||
"prefs_users_dialog_title_edit": "Modifică utilizatorul",
|
||||
"prefs_users_dialog_base_url_label": "URL-ul serviciului, de exemplu https://ntfy.sh",
|
||||
"prefs_users_dialog_username_label": "Nume de utilizator, de ex. ionel",
|
||||
"prefs_users_dialog_password_label": "Parolă",
|
||||
"prefs_appearance_title": "Aspect",
|
||||
"prefs_appearance_language_title": "Limbă",
|
||||
"prefs_appearance_theme_title": "Temă",
|
||||
"prefs_appearance_theme_system": "Sistem (implicit)",
|
||||
"prefs_appearance_theme_dark": "Mod întunecat",
|
||||
"prefs_appearance_theme_light": "Mod luminos",
|
||||
"prefs_reservations_title": "Subiecte rezervate",
|
||||
"prefs_reservations_limit_reached": "Ai atins limita de subiecte rezervate.",
|
||||
"prefs_reservations_add_button": "Adaugă un subiect rezervat",
|
||||
"prefs_reservations_delete_button": "Resetează accesul la topic",
|
||||
"prefs_reservations_table_access_header": "Acces",
|
||||
"prefs_reservations_table_everyone_deny_all": "Numai eu pot publica și mă pot abona",
|
||||
"prefs_reservations_table_not_subscribed": "Neabonat",
|
||||
"prefs_reservations_dialog_access_label": "Acces",
|
||||
"reservation_delete_dialog_action_keep_title": "Păstrează mesajele și atașamentele în cache",
|
||||
"prefs_users_description": "Adaugă/elimină utilizatori pentru subiectele protejate aici. Reține că numele de utilizator și parola sunt stocate în memoria locală a browserului.",
|
||||
"reservation_delete_dialog_submit_button": "Șterge rezervarea",
|
||||
"priority_min": "minim",
|
||||
"priority_low": "scăzut",
|
||||
"priority_default": "implicit",
|
||||
"priority_high": "ridicat",
|
||||
"priority_max": "maxim",
|
||||
"error_boundary_button_reload_ntfy": "Reîncarcă ntfy"
|
||||
}
|
||||
|
||||
56
web/public/static/langs/th.json
Normal file
56
web/public/static/langs/th.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"common_cancel": "ยกเลิก",
|
||||
"common_save": "บันทึก",
|
||||
"common_add": "เพิ่ม",
|
||||
"common_back": "กลับ",
|
||||
"common_copy_to_clipboard": "คัดลอกไปยังคลิปบอร์ด",
|
||||
"signup_title": "สร้างบัญชี ntfy",
|
||||
"signup_form_username": "ชื่อผู้ใช้",
|
||||
"signup_form_password": "รหัสผ่าน",
|
||||
"signup_form_confirm_password": "ยืนยันรหัสผ่าน",
|
||||
"signup_form_button_submit": "สมัครสมาชิก",
|
||||
"signup_form_toggle_password_visibility": "สลับการมองเห็นรหัสผ่าน",
|
||||
"signup_already_have_account": "มีบัญชีอยู่แล้วใช่ไหม? เข้าสู่ระบบ!",
|
||||
"signup_disabled": "การลงทะเบียนถูกปิดใช้งาน",
|
||||
"signup_error_username_taken": "ชื่อผู้ใช้ {{username}} ถูกใช้ไปแล้ว",
|
||||
"signup_error_creation_limit_reached": "ถึงขีดจำกัดการสร้างบัญชีแล้ว",
|
||||
"login_title": "ลงชื่อเข้าใช้บัญชี ntfy ของคุณ",
|
||||
"login_form_button_submit": "ลงชื่อเข้าใช้",
|
||||
"login_link_signup": "สมัครสมาชิก",
|
||||
"login_disabled": "การเข้าสู่ระบบถูกปิดใช้งาน",
|
||||
"action_bar_show_menu": "แสดงเมนู",
|
||||
"action_bar_logo_alt": "โลโก้ ntfy",
|
||||
"action_bar_settings": "การตั้งค่า",
|
||||
"action_bar_account": "บัญชี",
|
||||
"action_bar_change_display_name": "เปลี่ยนชื่อที่แสดง",
|
||||
"action_bar_reservation_add": "หัวข้อที่สงวนไว้",
|
||||
"action_bar_reservation_edit": "เปลี่ยนแปลงการจอง",
|
||||
"action_bar_reservation_delete": "ลบการจอง",
|
||||
"action_bar_reservation_limit_reached": "ถึงขีดจำกัดแล้ว",
|
||||
"action_bar_send_test_notification": "ทดสอบการส่งการแจ้งเตือน",
|
||||
"action_bar_clear_notifications": "ล้างการแจ้งเตือนทั้งหมด",
|
||||
"action_bar_mute_notifications": "ปิดเสียงการแจ้งเตือนชั่วคราว",
|
||||
"action_bar_unmute_notifications": "เปิดเสียงการแจ้งเตือน",
|
||||
"action_bar_unsubscribe": "ยกเลิกการสมัครรับ",
|
||||
"action_bar_toggle_mute": "ปิดเสียง/เปิดเสียงการแจ้งเตือน",
|
||||
"action_bar_toggle_action_menu": "เปิด/ปิดเมนูการดำเนินการ",
|
||||
"action_bar_profile_title": "โปรไฟล์",
|
||||
"action_bar_profile_settings": "การตั้งค่า",
|
||||
"action_bar_profile_logout": "ออกจากระบบ",
|
||||
"action_bar_sign_in": "ลงชื่อเข้าใช้",
|
||||
"action_bar_sign_up": "สมัครสมาชิก",
|
||||
"message_bar_type_message": "พิมพ์ข้อความที่นี่",
|
||||
"message_bar_publish": "เผยแพร่ข้อความ",
|
||||
"nav_topics_title": "หัวข้อที่สมัครรับข้อมูล",
|
||||
"nav_button_all_notifications": "การแจ้งเตือนทั้งหมด",
|
||||
"nav_button_account": "บัญชี",
|
||||
"nav_button_settings": "การตั้งค่า",
|
||||
"nav_button_documentation": "เอกสารประกอบ",
|
||||
"nav_button_publish_message": "เผยแพร่การแจ้งเตือน",
|
||||
"message_bar_error_publishing": "เกิดข้อผิดพลาดในการเผยแพร่การแจ้งเตือน",
|
||||
"message_bar_show_dialog": "แสดงกล่องโต้ตอบการเผยแพร่",
|
||||
"nav_button_subscribe": "สมัครรับหัวข้อ",
|
||||
"nav_button_muted": "ปิดการแจ้งเตือน",
|
||||
"nav_button_connecting": "การเชื่อมต่อ",
|
||||
"nav_upgrade_banner_label": "อัพเกรดเป็น ntfy Pro"
|
||||
}
|
||||
@@ -57,7 +57,7 @@
|
||||
"prefs_notifications_delete_after_never": "Hiçbir zaman",
|
||||
"notifications_attachment_copy_url_button": "URL'yi kopyala",
|
||||
"notifications_attachment_open_button": "Eki aç",
|
||||
"nav_button_documentation": "Belgelendirme",
|
||||
"nav_button_documentation": "Dokümantasyon",
|
||||
"nav_button_publish_message": "Bildirim yayınla",
|
||||
"alert_notification_permission_required_title": "Bildirimler devre dışı",
|
||||
"alert_notification_permission_required_description": "Tarayıcınıza masaüstü bildirimlerini görüntüleme izni verin",
|
||||
@@ -75,7 +75,7 @@
|
||||
"notifications_click_open_button": "Bağlantıyı aç",
|
||||
"notifications_no_subscriptions_description": "Bir konu oluşturmak veya bir konuya abone olmak için \"{{linktext}}\" bağlantısına tıklayın. Bundan sonra PUT veya POST yoluyla mesaj gönderebilirsiniz ve buradan bildirimler alırsınız.",
|
||||
"notifications_example": "Örnek",
|
||||
"notifications_more_details": "Daha fazla bilgi için <websiteLink>web sitesine</websiteLink> veya <docsLink>belgelendirmeye</docsLink> bakın.",
|
||||
"notifications_more_details": "Daha fazla bilgi için <websiteLink>web sitesini</websiteLink> veya <docsLink>dokümantasyonu</docsLink> inceleyin.",
|
||||
"publish_dialog_chip_attach_url_label": "URL ile dosya ekle",
|
||||
"prefs_notifications_min_priority_default_and_higher": "Varsayılan öncelik ve üstü",
|
||||
"prefs_notifications_delete_after_three_hours": "Üç saat sonra",
|
||||
@@ -108,7 +108,7 @@
|
||||
"publish_dialog_button_cancel_sending": "Göndermeyi iptal et",
|
||||
"prefs_notifications_delete_after_one_week": "Bir hafta sonra",
|
||||
"prefs_notifications_delete_after_one_month": "Bir ay sonra",
|
||||
"publish_dialog_details_examples_description": "Örnekler ve tüm gönderme özelliklerinin ayrıntılı açıklaması için lütfen <docsLink>belgelendirmeye</docsLink> bakın.",
|
||||
"publish_dialog_details_examples_description": "Tüm gönderme özelliklerinin örnekleri ve ayrıntılı açıklamaları için lütfen <docsLink>dokümantasyona</docsLink> bakın.",
|
||||
"emoji_picker_search_placeholder": "Emoji ara",
|
||||
"prefs_notifications_delete_after_title": "Bildirimleri sil",
|
||||
"prefs_notifications_delete_after_one_day": "Bir gün sonra",
|
||||
|
||||
@@ -79,5 +79,23 @@
|
||||
"notifications_attachment_file_app": "tập tin Android",
|
||||
"notifications_attachment_link_expires": "liên kết đã hết hạn {{date}}",
|
||||
"alert_not_supported_context_description": "Thông báo chỉ được hỗ trợ qua giao thức HTTPS. Đây là hạn chế của <mdnLink>API thông báo</mdnLink>.",
|
||||
"notifications_attachment_open_button": "Mở đính kèm"
|
||||
"notifications_attachment_open_button": "Mở đính kèm",
|
||||
"message_bar_error_publishing": "Lỗi khi gửi thông báo",
|
||||
"message_bar_show_dialog": "Hiện hộp thoại gửi thông báo",
|
||||
"message_bar_publish": "Gửi thông báo",
|
||||
"nav_topics_title": "Các topic đã đăng ký",
|
||||
"nav_button_publish_message": "Gửi thông báo",
|
||||
"nav_button_subscribe": "Đăng ký topic",
|
||||
"nav_button_muted": "Đã tắt thông báo",
|
||||
"nav_upgrade_banner_description": "Đặt trước topic, nhiều thông báo & email hơn, và tệp đính kèm dung lượng lớn hơn",
|
||||
"action_bar_reservation_add": "Đặt trước topic",
|
||||
"action_bar_reservation_edit": "Thay đổi thông tin đặt trước",
|
||||
"action_bar_reservation_delete": "Huỷ đặt trước",
|
||||
"notifications_none_for_topic_title": "Bạn chưa nhận được thông báo nào cho topic này.",
|
||||
"notifications_none_for_topic_description": "Để gửi thông báo đến topic này, chỉ cần dùng PUT hoặc POST đến URL của topic.",
|
||||
"notifications_none_for_any_title": "Bạn chưa nhận được thông báo nào.",
|
||||
"notifications_none_for_any_description": "Để gửi thông báo đến một topic, bạn chỉ cần dùng PUT hoặc POST đến URL của topic. Dưới đây là một ví dụ với một trong các topic của bạn.",
|
||||
"notifications_no_subscriptions_title": "Có vẻ như bạn chưa đăng ký topic nào.",
|
||||
"notifications_no_subscriptions_description": "Bấm vào liên kết \"{{linktext}}\" để tạo hoặc đăng ký một chủ đề. Sau đó, bạn có thể gửi tin nhắn qua PUT hoặc POST và sẽ nhận thông báo tại đây.",
|
||||
"notifications_example": "Ví dụ"
|
||||
}
|
||||
|
||||
@@ -203,17 +203,17 @@
|
||||
"error_boundary_description": "这显然不应该发生。对此非常抱歉。<br/>如果您有时间,请<githubLink>在GitHub</githubLink>上报告,或通过<discordLink>Discord</discordLink>或<matrixLink>Matrix</matrixLink>告诉我们。",
|
||||
"prefs_users_table": "用户表",
|
||||
"prefs_users_edit_button": "编辑用户",
|
||||
"publish_dialog_tags_placeholder": "英文逗号分隔标记列表,例如 warning, srv1-backup",
|
||||
"publish_dialog_tags_placeholder": "英文逗号分隔的标签列表,例如 warning, srv1-backup",
|
||||
"publish_dialog_details_examples_description": "有关所有发送功能的示例和详细说明,请参阅<docsLink>文档</docsLink>。",
|
||||
"subscribe_dialog_subscribe_description": "主题可能不受密码保护,因此请选择一个不容易被猜中的名字。订阅后,您可以使用 PUT/POST 通知。",
|
||||
"publish_dialog_delay_placeholder": "延期投递,例如 {{unixTimestamp}}、{{relativeTime}}或「{{naturalLanguage}}」(仅限英语)",
|
||||
"account_usage_basis_ip_description": "此帐户的使用统计信息和限制基于您的 IP 地址,因此可能会与其他用户共享。上面显示的限制是基于现有速率限制的近似值。",
|
||||
"account_usage_basis_ip_description": "此账户的使用统计信息和限制基于您的 IP 地址,因此可能会与其他用户共享。上面显示的限制是基于现有速率限制的近似值。",
|
||||
"account_usage_cannot_create_portal_session": "无法打开计费门户",
|
||||
"account_delete_title": "删除帐户",
|
||||
"account_delete_description": "永久删除您的帐户",
|
||||
"account_delete_title": "删除账户",
|
||||
"account_delete_description": "永久删除您的账户",
|
||||
"signup_error_username_taken": "用户名 {{username}} 已被占用",
|
||||
"signup_error_creation_limit_reached": "已达到帐户创建限制",
|
||||
"login_title": "请登录你的 ntfy 帐户",
|
||||
"signup_error_creation_limit_reached": "已达到账户创建限制",
|
||||
"login_title": "请登录你的 ntfy 账户",
|
||||
"action_bar_change_display_name": "更改显示名称",
|
||||
"action_bar_reservation_add": "保留主题",
|
||||
"action_bar_reservation_delete": "移除保留",
|
||||
@@ -223,7 +223,7 @@
|
||||
"action_bar_profile_logout": "登出",
|
||||
"action_bar_sign_in": "登录",
|
||||
"action_bar_sign_up": "注册",
|
||||
"nav_button_account": "帐户",
|
||||
"nav_button_account": "账户",
|
||||
"nav_upgrade_banner_label": "升级到 ntfy Pro",
|
||||
"nav_upgrade_banner_description": "保留主题,更多消息和邮件,以及更大的附件",
|
||||
"alert_not_supported_context_description": "通知仅支持 HTTPS。这是 <mdnLink>Notifications API</mdnLink> 的限制。",
|
||||
@@ -233,7 +233,7 @@
|
||||
"reserve_dialog_checkbox_label": "保留主题并配置访问",
|
||||
"subscribe_dialog_subscribe_button_generate_topic_name": "生成名称",
|
||||
"account_basics_username_description": "嘿,那是你 ❤",
|
||||
"account_basics_password_description": "更改您的帐户密码",
|
||||
"account_basics_password_description": "更改您的账户密码",
|
||||
"account_basics_password_dialog_title": "更改密码",
|
||||
"account_basics_password_dialog_current_password_label": "当前密码",
|
||||
"account_basics_password_dialog_new_password_label": "新密码",
|
||||
@@ -244,8 +244,8 @@
|
||||
"account_usage_of_limit": "{{limit}} 的",
|
||||
"account_usage_unlimited": "无限",
|
||||
"account_usage_limits_reset_daily": "使用限制每天午夜 (UTC) 重置",
|
||||
"account_basics_tier_title": "帐户类型",
|
||||
"account_basics_tier_description": "您帐户的权限级别",
|
||||
"account_basics_tier_title": "账户类型",
|
||||
"account_basics_tier_description": "您账户的权限级别",
|
||||
"account_basics_tier_admin": "管理员",
|
||||
"account_basics_tier_admin_suffix_with_tier": "(有 {{tier}} 等级)",
|
||||
"account_basics_tier_admin_suffix_no_tier": "(无等级)",
|
||||
@@ -258,7 +258,7 @@
|
||||
"account_usage_messages_title": "已发布消息",
|
||||
"account_usage_emails_title": "已发送电子邮件",
|
||||
"account_usage_reservations_title": "保留主题",
|
||||
"account_usage_reservations_none": "此帐户没有保留主题",
|
||||
"account_usage_reservations_none": "此账户没有保留主题",
|
||||
"account_usage_attachment_storage_title": "附件存储",
|
||||
"account_usage_attachment_storage_description": "每个文件 {{filesize}},在 {{expiry}} 后删除",
|
||||
"account_upgrade_dialog_button_pay_now": "立即付款并订阅",
|
||||
@@ -276,7 +276,7 @@
|
||||
"account_tokens_delete_dialog_title": "删除访问令牌",
|
||||
"account_tokens_delete_dialog_description": "在删除访问令牌之前,请确保没有应用程序或脚本正在活跃使用它。 <strong>此操作无法撤消</strong>。",
|
||||
"account_tokens_delete_dialog_submit_button": "永久删除令牌",
|
||||
"prefs_users_description_no_sync": "用户和密码不会同步到您的帐户。",
|
||||
"prefs_users_description_no_sync": "用户和密码不会同步到您的账户。",
|
||||
"prefs_users_table_cannot_delete_or_edit": "无法删除或编辑已登录用户",
|
||||
"prefs_reservations_title": "保留主题",
|
||||
"prefs_reservations_description": "您可以在此处保留主题名称供个人使用。保留主题使您拥有该主题的所有权,并允许您为其他用户定义对该主题的访问权限。",
|
||||
@@ -305,13 +305,13 @@
|
||||
"reservation_delete_dialog_action_delete_title": "删除缓存的邮件和附件",
|
||||
"reservation_delete_dialog_action_delete_description": "缓存的邮件和附件将被永久删除。此操作无法撤消。",
|
||||
"reservation_delete_dialog_submit_button": "删除保留",
|
||||
"account_delete_dialog_description": "这将永久删除您的帐户,包括存储在服务器上的所有数据。删除后,您的用户名将在 7 天内不可用。如果您真的想继续,请在下面的框中使用您的密码进行确认。",
|
||||
"account_delete_dialog_description": "这将永久删除您的账户,包括存储在服务器上的所有数据。删除后,您的用户名将在 7 天内不可用。如果您真的想继续,请在下面的框中使用您的密码进行确认。",
|
||||
"account_delete_dialog_label": "密码",
|
||||
"account_delete_dialog_button_cancel": "取消",
|
||||
"account_delete_dialog_button_submit": "永久删除帐户",
|
||||
"account_delete_dialog_billing_warning": "删除您的帐户也会立即取消您的计费订阅。您将无法再访问计费仪表板。",
|
||||
"account_upgrade_dialog_title": "更改帐户等级",
|
||||
"account_upgrade_dialog_cancel_warning": "这将<strong>取消您的订阅</strong>,并在 {{date}} 降级您的帐户。在那一天,主题保留以及缓存在服务器上的消息<strong>将被删除</strong>。",
|
||||
"account_delete_dialog_button_submit": "永久删除账户",
|
||||
"account_delete_dialog_billing_warning": "删除您的账户也会立即取消您的计费订阅。您将无法再访问计费仪表板。",
|
||||
"account_upgrade_dialog_title": "更改账户等级",
|
||||
"account_upgrade_dialog_cancel_warning": "这将<strong>取消您的订阅</strong>,并在 {{date}} 降级您的账户。在那一天,主题保留以及缓存在服务器上的消息<strong>将被删除</strong>。",
|
||||
"account_upgrade_dialog_proration_info": "<strong>按比例分配</strong>:在付费计划之间升级时,差价将被<strong>立刻收取</strong>。在降级到较低级别时,余额将被用于支付未来的账单周期。",
|
||||
"account_upgrade_dialog_reservations_warning_one": "所选等级允许的保留主题少于当前等级。在更改您的等级之前,<strong>请至少删除 1 项保留</strong>。您可以在<Link>设置</Link>中删除保留。",
|
||||
"account_upgrade_dialog_reservations_warning_other": "所选等级允许的保留主题少于当前等级。在更改您的等级之前,<strong>请至少删除 {{count}} 项保留</strong>。您可以在<Link>设置</Link>中删除保留。",
|
||||
@@ -322,30 +322,30 @@
|
||||
"signup_form_confirm_password": "确认密码",
|
||||
"signup_form_button_submit": "注册",
|
||||
"signup_form_toggle_password_visibility": "切换密码可见性",
|
||||
"signup_title": "创建一个 ntfy 帐户",
|
||||
"signup_title": "创建一个 ntfy 账户",
|
||||
"signup_form_username": "用户名",
|
||||
"signup_form_password": "密码",
|
||||
"signup_already_have_account": "已有帐户?登录!",
|
||||
"signup_already_have_account": "已有账户?登录!",
|
||||
"signup_disabled": "注册已禁用",
|
||||
"login_form_button_submit": "登录",
|
||||
"login_link_signup": "注册",
|
||||
"login_disabled": "登录已禁用",
|
||||
"action_bar_account": "帐户",
|
||||
"action_bar_account": "账户",
|
||||
"action_bar_reservation_edit": "更改保留",
|
||||
"subscribe_dialog_error_topic_already_reserved": "主题已保留",
|
||||
"account_basics_title": "帐户",
|
||||
"account_basics_title": "账户",
|
||||
"account_basics_username_title": "用户名",
|
||||
"account_basics_username_admin_tooltip": "你是管理员",
|
||||
"account_basics_password_title": "密码",
|
||||
"account_basics_tier_payment_overdue": "您的付款已逾期。请更新您的付款方式,否则您的帐户将很快被降级。",
|
||||
"account_basics_tier_canceled_subscription": "您的订阅已取消,并将在 {{date}} 降级为免费帐户。",
|
||||
"account_basics_tier_payment_overdue": "您的付款已逾期。请更新您的付款方式,否则您的账户将很快被降级。",
|
||||
"account_basics_tier_canceled_subscription": "您的订阅已取消,并将在 {{date}} 降级为免费账户。",
|
||||
"account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} 总存储空间",
|
||||
"account_upgrade_dialog_tier_selected_label": "已选",
|
||||
"account_upgrade_dialog_tier_current_label": "当前",
|
||||
"account_upgrade_dialog_button_cancel": "取消",
|
||||
"account_upgrade_dialog_button_redirect_signup": "立即注册",
|
||||
"account_tokens_title": "访问令牌",
|
||||
"account_tokens_description": "通过 ntfy API 发布和订阅时使用访问令牌,因此您不必发送您的帐户凭据。查看<Link>文档</Link>以了解更多信息。",
|
||||
"account_tokens_description": "通过 ntfy API 发布和订阅时使用访问令牌,因此您不必发送您的账户凭据。查看<Link>文档</Link>以了解更多信息。",
|
||||
"account_tokens_table_token_header": "令牌",
|
||||
"account_tokens_table_label_header": "标签",
|
||||
"account_tokens_table_last_access_header": "最后访问",
|
||||
@@ -403,5 +403,7 @@
|
||||
"web_push_subscription_expiring_title": "通知将被暂停",
|
||||
"web_push_subscription_expiring_body": "打开ntfy以继续接收通知",
|
||||
"web_push_unknown_notification_title": "接收到未知通知",
|
||||
"web_push_unknown_notification_body": "你可能需要打开网页来更新ntfy"
|
||||
"web_push_unknown_notification_body": "你可能需要打开网页来更新ntfy",
|
||||
"account_basics_cannot_edit_or_delete_provisioned_user": "已设置的用户无法被编辑或删除",
|
||||
"account_tokens_table_cannot_delete_or_edit_provisioned_token": "无法编辑或删除已设置的令牌"
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
"account_upgrade_dialog_reservations_warning_one": "所選等級允許的保留主題少於當前等級。在更改你的等級之前,<strong>請至少刪除 1 項保留</strong>。你可以在<Link>設置</Link>中刪除保留。",
|
||||
"account_upgrade_dialog_reservations_warning_other": "所選等級允許的保留主題少於當前等級。在更改你的等級之前,<strong>請至少刪除 {{count}} 項保留</strong>。你可以在<Link>設置</Link>中刪除保留。",
|
||||
"account_upgrade_dialog_tier_current_label": "當前",
|
||||
"account_upgrade_dialog_tier_features_attachment_file_size": "每個文件 {{filesize}} ",
|
||||
"account_upgrade_dialog_tier_features_attachment_file_size": "每個文件 {{filesize}}",
|
||||
"account_upgrade_dialog_tier_features_attachment_total_size": "{{totalsize}} 總存儲空間",
|
||||
"account_upgrade_dialog_tier_features_calls_one": "每日一通電話",
|
||||
"account_upgrade_dialog_tier_features_calls_other": "每日{{calls}} 通電話",
|
||||
@@ -145,13 +145,13 @@
|
||||
"action_bar_unsubscribe": "取消訂閱",
|
||||
"alert_notification_ios_install_required_description": "要接收通知,請在 iOS 上點擊共享,然後添加到主屏幕",
|
||||
"alert_notification_ios_install_required_title": "需要安裝 iOS 應用程式",
|
||||
"alert_notification_permission_denied_description": "你已禁用通知。要重新啟用通知,請在瀏覽器設置中啟用通知。",
|
||||
"alert_notification_permission_denied_description": "你已禁用通知。要重新啟用通知,請在瀏覽器設置中啟用通知",
|
||||
"alert_notification_permission_denied_title": "已禁用通知",
|
||||
"alert_notification_permission_required_button": "現在授予",
|
||||
"alert_notification_permission_required_description": "授予瀏覽器顯示桌面通知的權限。",
|
||||
"alert_notification_permission_required_description": "授予瀏覽器顯示桌面通知的權限",
|
||||
"alert_notification_permission_required_title": "已禁用通知",
|
||||
"alert_not_supported_context_description": "通知僅支援 HTTPS。這是 <mdnLink>Notifications API</mdnLink> 的限制。",
|
||||
"alert_not_supported_description": "你的瀏覽器不支援通知。",
|
||||
"alert_not_supported_description": "你的瀏覽器不支援通知",
|
||||
"alert_not_supported_title": "不支援通知",
|
||||
"common_add": "新增",
|
||||
"common_back": "返回",
|
||||
@@ -223,7 +223,7 @@
|
||||
"notifications_none_for_topic_description": "要向此主題發送通知,只需使用 PUT 或 POST 到主題連結即可。",
|
||||
"notifications_none_for_topic_title": "你尚未收到有關此主題的任何通知。",
|
||||
"notifications_no_subscriptions_description": "點擊 \"{{linktext}}\" 連結以建立或訂閱主題。之後,你可以使用 PUT 或 POST 發送訊息,你將在這裡收到通知。",
|
||||
"notifications_no_subscriptions_title": "看起來你還未有任何訂閱",
|
||||
"notifications_no_subscriptions_title": "看起來你還未有任何訂閱。",
|
||||
"notifications_priority_x": "優先級 {{priority}}",
|
||||
"notifications_tags": "標記",
|
||||
"prefs_appearance_language_title": "語言",
|
||||
@@ -261,7 +261,7 @@
|
||||
"prefs_notifications_web_push_disabled_description": "當網頁程式在運行時將會收到通知 (透過 WebSocket)",
|
||||
"prefs_notifications_web_push_disabled": "己暫用",
|
||||
"prefs_notifications_web_push_enabled_description": "即使網頁程式未有運街亦會收到通知 (via Web Push)",
|
||||
"prefs_notifications_web_push_enabled": "己為 {{server}} 啟用",
|
||||
"prefs_notifications_web_push_enabled": "己為 {{server}} 啟用",
|
||||
"prefs_notifications_web_push_title": "背景通知",
|
||||
"prefs_reservations_add_button": "新增保留主題",
|
||||
"prefs_reservations_delete_button": "重置主題訪問",
|
||||
@@ -403,5 +403,7 @@
|
||||
"web_push_subscription_expiring_body": "開啟ntfy以繼續接收通知",
|
||||
"web_push_subscription_expiring_title": "通知會被暫停",
|
||||
"web_push_unknown_notification_body": "你可能需要開啟網頁來更新ntfy",
|
||||
"web_push_unknown_notification_title": "接收到不明通知"
|
||||
"web_push_unknown_notification_title": "接收到不明通知",
|
||||
"account_basics_cannot_edit_or_delete_provisioned_user": "已佈建的使用者無法編輯或刪除",
|
||||
"account_tokens_table_cannot_delete_or_edit_provisioned_token": "無法編輯或刪除已佈建的權杖"
|
||||
}
|
||||
|
||||
@@ -77,7 +77,10 @@ export const maybeWithBearerAuth = (headers, token) => {
|
||||
return headers;
|
||||
};
|
||||
|
||||
export const withBasicAuth = (headers, username, password) => ({ ...headers, Authorization: basicAuth(username, password) });
|
||||
export const withBasicAuth = (headers, username, password) => ({
|
||||
...headers,
|
||||
Authorization: basicAuth(username, password),
|
||||
});
|
||||
|
||||
export const maybeWithAuth = (headers, user) => {
|
||||
if (user?.password) {
|
||||
@@ -270,3 +273,21 @@ export const urlB64ToUint8Array = (base64String) => {
|
||||
}
|
||||
return outputArray;
|
||||
};
|
||||
|
||||
export const copyToClipboard = (text) => {
|
||||
if (navigator.clipboard && window.isSecureContext) {
|
||||
return navigator.clipboard.writeText(text);
|
||||
}
|
||||
// Fallback to the older method if clipboard API is not supported (or on HTTP)
|
||||
const textarea = document.createElement("textarea");
|
||||
textarea.value = text;
|
||||
textarea.setAttribute("readonly", ""); // Avoid mobile keyboards from popping up
|
||||
textarea.style.position = "fixed"; // Avoid scroll jump
|
||||
textarea.style.left = "-9999px";
|
||||
document.body.appendChild(textarea);
|
||||
textarea.focus();
|
||||
textarea.select();
|
||||
document.execCommand("copy");
|
||||
document.body.removeChild(textarea);
|
||||
return Promise.resolve();
|
||||
};
|
||||
|
||||
@@ -45,7 +45,7 @@ import CloseIcon from "@mui/icons-material/Close";
|
||||
import { ContentCopy, Public } from "@mui/icons-material";
|
||||
import AddIcon from "@mui/icons-material/Add";
|
||||
import routes from "./routes";
|
||||
import { formatBytes, formatShortDate, formatShortDateTime, openUrl } from "../app/utils";
|
||||
import { copyToClipboard, formatBytes, formatShortDate, formatShortDateTime, openUrl } from "../app/utils";
|
||||
import accountApi, { LimitBasis, Role, SubscriptionInterval, SubscriptionStatus } from "../app/AccountApi";
|
||||
import { Pref, PrefGroup } from "./Pref";
|
||||
import db from "../app/db";
|
||||
@@ -100,15 +100,13 @@ const Username = () => {
|
||||
<Pref labelId={labelId} title={t("account_basics_username_title")} description={t("account_basics_username_description")}>
|
||||
<div aria-labelledby={labelId}>
|
||||
{session.username()}
|
||||
{account?.role === Role.ADMIN ? (
|
||||
{account?.role === Role.ADMIN && (
|
||||
<>
|
||||
{" "}
|
||||
<Tooltip title={t("account_basics_username_admin_tooltip")}>
|
||||
<span style={{ cursor: "default" }}>👑</span>
|
||||
</Tooltip>
|
||||
</>
|
||||
) : (
|
||||
""
|
||||
)}
|
||||
</div>
|
||||
</Pref>
|
||||
@@ -119,6 +117,7 @@ const ChangePassword = () => {
|
||||
const { t } = useTranslation();
|
||||
const [dialogKey, setDialogKey] = useState(0);
|
||||
const [dialogOpen, setDialogOpen] = useState(false);
|
||||
const { account } = useContext(AccountContext);
|
||||
const labelId = "prefChangePassword";
|
||||
|
||||
const handleDialogOpen = () => {
|
||||
@@ -136,9 +135,19 @@ const ChangePassword = () => {
|
||||
<Typography color="gray" sx={{ float: "left", fontSize: "0.7rem", lineHeight: "3.5" }}>
|
||||
⬤⬤⬤⬤⬤⬤⬤⬤⬤⬤
|
||||
</Typography>
|
||||
<IconButton onClick={handleDialogOpen} aria-label={t("account_basics_password_description")}>
|
||||
<EditIcon />
|
||||
</IconButton>
|
||||
{!account?.provisioned ? (
|
||||
<IconButton onClick={handleDialogOpen} aria-label={t("account_basics_password_description")}>
|
||||
<EditIcon />
|
||||
</IconButton>
|
||||
) : (
|
||||
<Tooltip title={t("account_basics_cannot_edit_or_delete_provisioned_user")}>
|
||||
<span>
|
||||
<IconButton disabled>
|
||||
<EditIcon />
|
||||
</IconButton>
|
||||
</span>
|
||||
</Tooltip>
|
||||
)}
|
||||
</div>
|
||||
<ChangePasswordDialog key={`changePasswordDialog${dialogKey}`} open={dialogOpen} onClose={handleDialogClose} />
|
||||
</Pref>
|
||||
@@ -361,7 +370,7 @@ const PhoneNumbers = () => {
|
||||
};
|
||||
|
||||
const handleCopy = (phoneNumber) => {
|
||||
navigator.clipboard.writeText(phoneNumber);
|
||||
copyToClipboard(phoneNumber);
|
||||
setSnackOpen(true);
|
||||
};
|
||||
|
||||
@@ -832,7 +841,7 @@ const TokensTable = (props) => {
|
||||
};
|
||||
|
||||
const handleCopy = async (token) => {
|
||||
await navigator.clipboard.writeText(token);
|
||||
copyToClipboard(token);
|
||||
setSnackOpen(true);
|
||||
};
|
||||
|
||||
@@ -888,7 +897,7 @@ const TokensTable = (props) => {
|
||||
</div>
|
||||
</TableCell>
|
||||
<TableCell align="right" sx={{ whiteSpace: "nowrap" }}>
|
||||
{token.token !== session.token() && (
|
||||
{token.token !== session.token() && !token.provisioned && (
|
||||
<>
|
||||
<IconButton onClick={() => handleEditClick(token)} aria-label={t("account_tokens_dialog_title_edit")}>
|
||||
<EditIcon />
|
||||
@@ -910,6 +919,18 @@ const TokensTable = (props) => {
|
||||
</span>
|
||||
</Tooltip>
|
||||
)}
|
||||
{token.provisioned && (
|
||||
<Tooltip title={t("account_tokens_table_cannot_delete_or_edit_provisioned_token")}>
|
||||
<span>
|
||||
<IconButton disabled>
|
||||
<EditIcon />
|
||||
</IconButton>
|
||||
<IconButton disabled>
|
||||
<CloseIcon />
|
||||
</IconButton>
|
||||
</span>
|
||||
</Tooltip>
|
||||
)}
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
@@ -1048,6 +1069,7 @@ const DeleteAccount = () => {
|
||||
const { t } = useTranslation();
|
||||
const [dialogKey, setDialogKey] = useState(0);
|
||||
const [dialogOpen, setDialogOpen] = useState(false);
|
||||
const { account } = useContext(AccountContext);
|
||||
|
||||
const handleDialogOpen = () => {
|
||||
setDialogKey((prev) => prev + 1);
|
||||
@@ -1061,9 +1083,19 @@ const DeleteAccount = () => {
|
||||
return (
|
||||
<Pref title={t("account_delete_title")} description={t("account_delete_description")}>
|
||||
<div>
|
||||
<Button fullWidth={false} variant="outlined" color="error" startIcon={<DeleteOutlineIcon />} onClick={handleDialogOpen}>
|
||||
{t("account_delete_title")}
|
||||
</Button>
|
||||
{!account?.provisioned ? (
|
||||
<Button fullWidth={false} variant="outlined" color="error" startIcon={<DeleteOutlineIcon />} onClick={handleDialogOpen}>
|
||||
{t("account_delete_title")}
|
||||
</Button>
|
||||
) : (
|
||||
<Tooltip title={t("account_basics_cannot_edit_or_delete_provisioned_user")}>
|
||||
<span>
|
||||
<Button fullWidth={false} variant="outlined" color="error" startIcon={<DeleteOutlineIcon />} disabled>
|
||||
{t("account_delete_title")}
|
||||
</Button>
|
||||
</span>
|
||||
</Tooltip>
|
||||
)}
|
||||
</div>
|
||||
<DeleteAccountDialog key={`deleteAccountDialog${dialogKey}`} open={dialogOpen} onClose={handleDialogClose} />
|
||||
</Pref>
|
||||
|
||||
@@ -23,6 +23,7 @@ import Account from "./Account";
|
||||
import initI18n from "../app/i18n"; // Translations!
|
||||
import prefs, { THEME } from "../app/Prefs";
|
||||
import RTLCacheProvider from "./RTLCacheProvider";
|
||||
import session from "../app/Session";
|
||||
|
||||
initI18n();
|
||||
|
||||
@@ -45,7 +46,6 @@ const darkModeEnabled = (prefersDarkMode, themePreference) => {
|
||||
const App = () => {
|
||||
const { i18n } = useTranslation();
|
||||
const languageDir = i18n.dir();
|
||||
|
||||
const [account, setAccount] = useState(null);
|
||||
const accountMemo = useMemo(() => ({ account, setAccount }), [account, setAccount]);
|
||||
const prefersDarkMode = useMediaQuery("(prefers-color-scheme: dark)");
|
||||
@@ -60,6 +60,12 @@ const App = () => {
|
||||
document.dir = languageDir;
|
||||
}, [i18n.language, languageDir]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!session.exists() && config.require_login && window.location.pathname !== routes.login) {
|
||||
window.location.href = routes.login;
|
||||
}
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<Suspense fallback={<Loader />}>
|
||||
<RTLCacheProvider>
|
||||
|
||||
@@ -2,6 +2,7 @@ import * as React from "react";
|
||||
import StackTrace from "stacktrace-js";
|
||||
import { CircularProgress, Link, Button } from "@mui/material";
|
||||
import { Trans, withTranslation } from "react-i18next";
|
||||
import { copyToClipboard } from "../app/utils";
|
||||
|
||||
class ErrorBoundaryImpl extends React.Component {
|
||||
constructor(props) {
|
||||
@@ -64,7 +65,7 @@ class ErrorBoundaryImpl extends React.Component {
|
||||
stack += `${this.state.niceStack}\n\n`;
|
||||
}
|
||||
stack += `${this.state.originalStack}\n`;
|
||||
navigator.clipboard.writeText(stack);
|
||||
copyToClipboard(stack);
|
||||
}
|
||||
|
||||
renderUnsupportedIndexedDB() {
|
||||
|
||||
@@ -26,7 +26,16 @@ import { Trans, useTranslation } from "react-i18next";
|
||||
import { useOutletContext } from "react-router-dom";
|
||||
import { useRemark } from "react-remark";
|
||||
import styled from "@emotion/styled";
|
||||
import { formatBytes, formatShortDateTime, maybeActionErrors, openUrl, shortUrl, topicShortUrl, unmatchedTags } from "../app/utils";
|
||||
import {
|
||||
copyToClipboard,
|
||||
formatBytes,
|
||||
formatShortDateTime,
|
||||
maybeActionErrors,
|
||||
openUrl,
|
||||
shortUrl,
|
||||
topicShortUrl,
|
||||
unmatchedTags,
|
||||
} from "../app/utils";
|
||||
import { formatMessage, formatTitle, isImage } from "../app/notificationUtils";
|
||||
import { LightboxBackdrop, Paragraph, VerticallyCenteredContainer } from "./styles";
|
||||
import subscriptionManager from "../app/SubscriptionManager";
|
||||
@@ -249,7 +258,7 @@ const NotificationItem = (props) => {
|
||||
});
|
||||
};
|
||||
const handleCopy = (s) => {
|
||||
navigator.clipboard.writeText(s);
|
||||
copyToClipboard(s);
|
||||
props.onShowSnack();
|
||||
};
|
||||
const expired = attachment && attachment.expires && attachment.expires < Date.now() / 1000;
|
||||
|
||||
@@ -17,6 +17,13 @@ const baseThemeOptions = {
|
||||
},
|
||||
},
|
||||
},
|
||||
MuiCardActions: {
|
||||
styleOverrides: {
|
||||
root: {
|
||||
overflowX: "auto",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user