diff --git a/Gruntfile.js b/Gruntfile.js index 98c887e2..6f2c194f 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -70,20 +70,6 @@ module.exports = function(grunt) { ], }, }, - noticeTgut: { - files: { - '<%= config.tempDir %>src/js/': - '<%= config.tempDir %>src/js/background.js', - }, - options: { - replacements: [ - { - pattern: /greatsuspender\.github\.io\/notice\.json/, - replacement: 'greatsuspender.github.io/notice-tgut.json', - }, - ], - }, - }, }, crx: { public: { @@ -124,7 +110,6 @@ module.exports = function(grunt) { 'copy', 'string-replace:debugon', 'string-replace:localesTgut', - 'string-replace:noticeTgut', 'crx:public', 'crx:private', 'clean', diff --git a/README.md b/README.md index a3167615..a1071194 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ "The Great Suspender" is a free and open-source Google Chrome extension for people who find that chrome is consuming too much system resource or suffer from frequent chrome crashing. Once installed and enabled, this extension will automatically *suspend* tabs that have not been used for a while, freeing up memory and cpu that the tab was consuming. -If you have suggestions or problems using the extension, please [submit a bug or a feature request](https://github.com/deanoemcke/thegreatsuspender/issues/). For other enquiries you can email me at greatsuspender@gmail.com. +If you have suggestions or problems using the extension, please [submit a bug or a feature request](https://github.com/greatsuspender/thegreatsuspender/issues/). For other enquiries you can email me at greatsuspender@gmail.com. **If you have lost tabs from your browser:** I have written a guide for how to recover your lost tabs [here](https://github.com/deanoemcke/thegreatsuspender/issues/526 ). @@ -13,13 +13,13 @@ If you have suggestions or problems using the extension, please [submit a bug or The Great Suspender is [available via the official Chrome Web Store](https://chrome.google.com/webstore/detail/the-great-suspender/klbibkeccnjlkjkiokjodocebajanakg). -Please note that the webstore version may be behind the latest version here. That is because I try to keep webstore updates down to a minimum due to their [disruptive effect](https://github.com/deanoemcke/thegreatsuspender/issues/526). +Please note that the webstore version may be behind the latest version here. That is because I try to keep webstore updates down to a minimum due to their [disruptive effect](https://github.com/greatsuspender/thegreatsuspender/issues/526). -For more information on the permissions required for the extension, please refer to this gitHub issue: (https://github.com/deanoemcke/thegreatsuspender/issues/213) +For more information on the permissions required for the extension, please refer to this gitHub issue: (https://github.com/greatsuspender/thegreatsuspender/issues/213) ### Install as an extension from source -1. Download the **[latest available version](https://github.com/deanoemcke/thegreatsuspender/releases)** and unarchive to your preferred location (whichever suits you). +1. Download the **[latest available version](https://github.com/greatsuspender/thegreatsuspender/releases)** and unarchive to your preferred location (whichever suits you). 2. Using **Google Chrome** browser, navigate to chrome://extensions/ and enable "Developer mode" in the upper right corner. 3. Click on the Load unpacked extension... button. 4. Browse to the src directory of the unarchived folder and confirm. @@ -48,7 +48,7 @@ The extension in crx format will be inside the build/crx/ directory. You can dra ### Integrating with another Chrome extension or app -This extension has a small external api to allow other extensions to request the suspension of a tab. See [this issue](https://github.com/deanoemcke/thegreatsuspender/issues/276) for more information. And please let me know about it so that I can try it out! +This extension has a small external api to allow other extensions to request the suspension of a tab. See [this issue](https://github.com/greatsuspender/thegreatsuspender/issues/276) for more information. And please let me know about it so that I can try it out! ### Contributing to this extension diff --git a/package.json b/package.json index 7b756147..2434dbad 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }, "repository": { "type": "git", - "url": "git://github.com/deanoemcke/thegreatsuspender.git" + "url": "git://github.com/greatsuspender/thegreatsuspender.git" }, "keywords": [ "chrome", @@ -24,7 +24,7 @@ "author": "deanoemcke", "license": "GPLv2", "bugs": { - "url": "https://github.com/deanoemcke/thegreatsuspender/issues" + "url": "https://github.com/greatsuspender/thegreatsuspender/issues" }, "devDependencies": { "eslint": "^4.19.1", diff --git a/src/_locales/de/messages.json b/src/_locales/de/messages.json index 1a0f5cf5..a1071ecf 100644 --- a/src/_locales/de/messages.json +++ b/src/_locales/de/messages.json @@ -42,10 +42,6 @@ "html_about_browserstack": { "message": "browserstack" }, "html_about_browserstack_prefix": { "message": "Ein weiterer Dank an" }, "html_about_browserstack_suffix": { "message": "für die kostenlosen Chrome Testwerkzeuge." }, - "html_about_feeling_generous": { "message": "Du kannst The Great Suspender mit einer Spende unterstützen:" }, - "html_about_already_donated": { "message": "Bereits gespendet?" }, - "html_about_thanks_for_your_donation": { "message": "Vielen Dank für deine Spende. You've made thank you cat happy." }, - "html_about_want_to_donate_again": { "message": "Willst du erneut spenden?" }, "html_history_title": { "message": "Sitzungsverwaltung" }, "html_history_current_session": { "message": "Aktuelle Sitzung" }, "html_history_recent_sessions": { "message": "Kürzliche Sitzungen" }, @@ -168,7 +164,6 @@ "html_suspended_click_to_reload": { "message": "Aktualisieren oder Klicken zum Neuladen" }, "html_suspended_toast_not_connected": { "message": "Du bist nicht mit dem Internet verbunden." }, "html_suspended_toast_reload_disabled": { "message": "Automatische Tab Aktualisierung ist temporär deaktiviert." }, - "html_suspended_donation_question": { "message": "Bist du zufrieden mit dieser Erweiterung?
Dann unterstütze das Projekt durch eine Spende:" }, "html_permissions_title": { "message": "Berechtigungen" }, "html_permissions_heading": { "message": "Bitte erlaube Zugriff auf lokale (Datei-) URLs" }, "html_permissions_info": { "message": "Diese Erweiterung darf derzeit keine URLs aussetzen, die beginnen mit: \"file\".\nUm das zu ändern, aktiviere \"Zugriff auf lokale (Datei-) URLs\" in den Einstellungen der Erweiterung." }, @@ -199,9 +194,6 @@ "html_thanks_title": { "message": "Danke" }, "html_thanks_header": { "message": "Danke für deine Unterstützung!" }, "html_thanks_sub_header": { "message": "Mögen dir großartige Dinge geschehen." }, - "js_donate_paypal": { "message": "PayPal" }, - "js_donate_bitcoin": { "message": "Crypto" }, - "js_donate_patreon": { "message": "Patreon" }, "js_popup_normal": { "message": "Tab wird automatisch ausgesetzt." }, "js_popup_normal_pause": { "message": "Nicht jetzt" }, "js_popup_special": { "message": "Tab kann nicht ausgesetzt werden" }, diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index 1570ef7b..6ddfeb7c 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -42,10 +42,6 @@ "html_about_browserstack": { "message": "browserstack" }, "html_about_browserstack_prefix": { "message": "Thank you also to" }, "html_about_browserstack_suffix": { "message": "for providing free chrome testing tools." }, - "html_about_feeling_generous": { "message": "You can support The Great Suspender by donating:" }, - "html_about_already_donated": { "message": "Already donated?" }, - "html_about_thanks_for_your_donation": { "message": "Thanks a lot for your donation. You've made thank you cat happy." }, - "html_about_want_to_donate_again": { "message": "Want to donate again?" }, "html_history_title": { "message": "Session management" }, "html_history_current_session": { "message": "Current session" }, "html_history_recent_sessions": { "message": "Recent sessions" }, @@ -168,7 +164,6 @@ "html_suspended_click_to_reload": { "message": "Refresh or click to reload" }, "html_suspended_toast_not_connected": { "message": "You are not connected to the internet" }, "html_suspended_toast_reload_disabled": { "message": "Automatic tab reloading is temporarily disabled." }, - "html_suspended_donation_question": { "message": "Does this extension make you happy?\nShow your support by donating." }, "html_permissions_title": { "message": "Permissions" }, "html_permissions_heading": { "message": "Please give me access to local file URLs" }, "html_permissions_info": { "message": "This extension is not currently permitted to suspend URLs beginning with the word \"file\".\nTo change this, please turn on \"Allow access to file URLs\" from the extension settings page." }, @@ -196,12 +191,6 @@ "html_welcome_text_line1": { "message": "Thanks for trying" }, "html_welcome_text_line2": { "message": "I make your computer run smoothly by suspending the tabs you aren't using." }, "html_welcome_text_line3": { "message": "You can fine-tune the settings below." }, - "html_thanks_title": { "message": "Thanks" }, - "html_thanks_header": { "message": "Thanks for the support!" }, - "html_thanks_sub_header": { "message": "May great things come your way today." }, - "js_donate_paypal": { "message": "PayPal" }, - "js_donate_bitcoin": { "message": "Crypto" }, - "js_donate_patreon": { "message": "Patreon" }, "js_popup_normal": { "message": "Tab will suspend automatically." }, "js_popup_normal_pause": { "message": "Not now" }, "js_popup_special": { "message": "Tab cannot be suspended" }, diff --git a/src/_locales/pt_BR/messages.json b/src/_locales/pt_BR/messages.json index c857a3be..73eda089 100644 --- a/src/_locales/pt_BR/messages.json +++ b/src/_locales/pt_BR/messages.json @@ -42,10 +42,6 @@ "html_about_browserstack": { "message": "browserstack" }, "html_about_browserstack_prefix": { "message": "Obrigado também por" }, "html_about_browserstack_suffix": { "message": "disponibilizar ferramentas gratuitas de teste do Chrome." }, - "html_about_feeling_generous": { "message": "Você pode apoiar The Great Suspender doando:" }, - "html_about_already_donated": { "message": "Já doou?" }, - "html_about_thanks_for_your_donation": { "message": "Muito obrigado por sua doação. Você fez o gato da gratidão feliz." }, - "html_about_want_to_donate_again": { "message": "Quer doar de novo?" }, "html_history_title": { "message": "Gerenciamento de sessão" }, "html_history_current_session": { "message": "Sessão atual" }, "html_history_recent_sessions": { "message": "Sessões recentes" }, @@ -168,7 +164,6 @@ "html_suspended_click_to_reload": { "message": "Atualize ou clique para recarregar" }, "html_suspended_toast_not_connected": { "message": "Você não está conectado à Internet" }, "html_suspended_toast_reload_disabled": { "message": "O recarregamento automático de guias está temporariamente desativado." }, - "html_suspended_donation_question": { "message": "Esta extensão te faz feliz?\nMostre seu apoio doando." }, "html_permissions_title": { "message": "Permissões" }, "html_permissions_heading": { "message": "Por favor, me dê acesso a URLs de arquivos locais" }, "html_permissions_info": { "message": "No momento, esta extensão não está permitida a suspender as URLs que começam com a palavra \"file\".\nPara mudar isso, ative \"Permitir acesso a URLs de arquivo\" na página de configurações da extensão." }, @@ -196,12 +191,6 @@ "html_welcome_text_line1": { "message": "Obrigado por experimentar" }, "html_welcome_text_line2": { "message": "Eu deixo seu computador funcionar sem problemas suspendendo as guias que você não está usando." }, "html_welcome_text_line3": { "message": "Você pode ajustar bem as configurações abaixo." }, - "html_thanks_title": { "message": "Obrigado" }, - "html_thanks_header": { "message": "Obrigado pelo apoio!" }, - "html_thanks_sub_header": { "message": "Que grandes coisas cheguem a você hoje." }, - "js_donate_paypal": { "message": "PayPal" }, - "js_donate_bitcoin": { "message": "Crypto" }, - "js_donate_patreon": { "message": "Patreon" }, "js_popup_normal": { "message": "A guia será suspensa automaticamente." }, "js_popup_normal_pause": { "message": "Agora não" }, "js_popup_special": { "message": "A guia não pôde ser suspensa" }, diff --git a/src/_locales/pt_PT/messages.json b/src/_locales/pt_PT/messages.json index 6d41b98a..857e8eef 100644 --- a/src/_locales/pt_PT/messages.json +++ b/src/_locales/pt_PT/messages.json @@ -42,10 +42,6 @@ "html_about_browserstack": { "message": "browserstack" }, "html_about_browserstack_prefix": { "message": "Obrigado também por" }, "html_about_browserstack_suffix": { "message": "disponibilizar ferramentas gratuitas de teste do Chrome." }, - "html_about_feeling_generous": { "message": "Você pode apoiar The Great Suspender doando:" }, - "html_about_already_donated": { "message": "Já doou?" }, - "html_about_thanks_for_your_donation": { "message": "Muito obrigado por sua doação. Você fez o gato da gratidão feliz." }, - "html_about_want_to_donate_again": { "message": "Quer doar de novo?" }, "html_history_title": { "message": "Gerenciamento de sessão" }, "html_history_current_session": { "message": "Sessão atual" }, "html_history_recent_sessions": { "message": "Sessões recentes" }, @@ -168,7 +164,6 @@ "html_suspended_click_to_reload": { "message": "Atualize ou clique para recarregar" }, "html_suspended_toast_not_connected": { "message": "Você não está conectado à Internet" }, "html_suspended_toast_reload_disabled": { "message": "O recarregamento automático de guias está temporariamente desativado." }, - "html_suspended_donation_question": { "message": "Esta extensão te faz feliz?\nMostre seu apoio doando." }, "html_permissions_title": { "message": "Permissões" }, "html_permissions_heading": { "message": "Por favor, me dê acesso a URLs de arquivos locais" }, "html_permissions_info": { "message": "No momento, esta extensão não está permitida a suspender as URLs que começam com a palavra \"file\".\nPara mudar isso, ative \"Permitir acesso a URLs de arquivo\" na página de configurações da extensão." }, @@ -196,12 +191,6 @@ "html_welcome_text_line1": { "message": "Obrigado por experimentar" }, "html_welcome_text_line2": { "message": "Eu deixo seu computador funcionar sem problemas suspendendo as guias que você não está usando." }, "html_welcome_text_line3": { "message": "Você pode ajustar bem as configurações abaixo." }, - "html_thanks_title": { "message": "Obrigado" }, - "html_thanks_header": { "message": "Obrigado pelo apoio!" }, - "html_thanks_sub_header": { "message": "Que grandes coisas cheguem a você hoje." }, - "js_donate_paypal": { "message": "PayPal" }, - "js_donate_bitcoin": { "message": "Crypto" }, - "js_donate_patreon": { "message": "Patreon" }, "js_popup_normal": { "message": "A guia será suspensa automaticamente." }, "js_popup_normal_pause": { "message": "Agora não" }, "js_popup_special": { "message": "A guia não pôde ser suspensa" }, diff --git a/src/_locales/ru/messages.json b/src/_locales/ru/messages.json index c678090c..fc7d6e93 100644 --- a/src/_locales/ru/messages.json +++ b/src/_locales/ru/messages.json @@ -42,10 +42,6 @@ "html_about_browserstack": { "message": "browserstack" }, "html_about_browserstack_prefix": { "message": "Отдельное спасибо" }, "html_about_browserstack_suffix": { "message": "за бесплатные средства отладки Chrome." }, - "html_about_feeling_generous": { "message": "Вы можете поддержать The Great Suspender, отправив пожертвование:" }, - "html_about_already_donated": { "message": "Уже пожертвовали?" }, - "html_about_thanks_for_your_donation": { "message": "Большое спасибо за пожертвование. Наш кот теперь доволен." }, - "html_about_want_to_donate_again": { "message": "Хотите пожертвовать ещё?" }, "html_history_title": { "message": "Управление сессиями" }, "html_history_current_session": { "message": "Текущая сессия" }, "html_history_recent_sessions": { "message": "Предыдущие сессии" }, @@ -168,7 +164,6 @@ "html_suspended_click_to_reload": { "message": "Обновите или нажмите для обновления" }, "html_suspended_toast_not_connected": { "message": "Нет подключения к интернету" }, "html_suspended_toast_reload_disabled": { "message": "Автоматическое обновление вкладок временно отключено." }, - "html_suspended_donation_question": { "message": "Вам понравилось это расширение?\nОтправьте пожертвование." }, "html_permissions_title": { "message": "Разрешения" }, "html_permissions_heading": { "message": "Пожалуйста, разрешите доступ к локальным файлам" }, "html_permissions_info": { "message": "У расширения в данный момент нет разрешения приостанавливать вкладки с URL-адресами, начинающимися со слова \"file\".\nЧтобы это изменить, включите \"Разрешить открывать локальные файлы по ссылкам\" со страницы настроек расширения." }, @@ -196,12 +191,6 @@ "html_welcome_text_line1": { "message": "Спасибо за использование" }, "html_welcome_text_line2": { "message": "Я ускорю Ваш компьютер, приостанавливая неиспользуемые вкладки." }, "html_welcome_text_line3": { "message": "Вы можете настроить параметры ниже." }, - "html_thanks_title": { "message": "Спасибо" }, - "html_thanks_header": { "message": "Спасибо за поддержку!" }, - "html_thanks_sub_header": { "message": "Пусть сегодня Вам сопутствует удача." }, - "js_donate_paypal": { "message": "PayPal" }, - "js_donate_bitcoin": { "message": "Crypto" }, - "js_donate_patreon": { "message": "Patreon" }, "js_popup_normal": { "message": "Вкладка будет приостановлена автоматически." }, "js_popup_normal_pause": { "message": "Не сейчас" }, "js_popup_special": { "message": "Вкладка не может быть приостановлена" }, diff --git a/src/_locales/tr/messages.json b/src/_locales/tr/messages.json new file mode 100644 index 00000000..a9c55c48 --- /dev/null +++ b/src/_locales/tr/messages.json @@ -0,0 +1,242 @@ +{ + "ext_cmd_force_suspend_active_window_description": { "message": "Aktif pencere dışında tüm sekmeleri zorla askıya al" }, + "ext_cmd_force_suspend_all_windows_description": { "message": "Tüm penceredeki tüm sekmeleri zorla askıya al" }, + "ext_cmd_soft_suspend_active_window_description": { "message": "Aktif pencere dışında tüm sekmeleri askıya al" }, + "ext_cmd_soft_suspend_all_windows_description": { "message": "Tüm pencerelerde tüm sekmeleri askıya al" }, + "ext_cmd_suspend_selected_tabs_description": { "message": "Seçilen sekmeyi askıya al" }, + "ext_cmd_toggle_tab_pause_description": { "message": "Aktif sekmenin askı durumunu Duraklat/Devam Et" }, + "ext_cmd_toggle_tab_suspension_description": { "message": "Askıya Al/Askıyı Kaldır active tab" }, + "ext_cmd_unsuspend_active_window_description": { "message": "Aktif penceredeki tüm sekmelerin askıya almasını kaldır" }, + "ext_cmd_unsuspend_all_windows_description": { "message": "Tüm pencerelerde tüm sekmelerin askıya almasını kaldır" }, + "ext_cmd_unsuspend_selected_tabs_description": { "message": "Seçilen sekmenin askısını kaldır" }, + "ext_default_title": { "message": "The Great Suspender" }, + "ext_extension_description": { "message": "Kullanmadığınız sekmeleri askıya alarak bilgisayarınızın sorunsuz çalışmasını sağlayın" }, + "ext_extension_name": { "message": "The Great Suspender" }, + "html_about_browserstack": { "message": "browserstack" }, + "html_about_browserstack_prefix": { "message": "Ayrıca teşekkürler" }, + "html_about_browserstack_suffix": { "message": "ücretsiz Chrome test araçları sağladığı için." }, + "html_about_debugging_prefix": { "message": "Hata ayıklama ve günlük (log) kayıtlarının kontrolü için " }, + "html_about_debugging_suffix": { "message": "hata ayıklama sayfası." }, + "html_about_github_title": { "message": "GitHub" }, + "html_about_html2canvas": { "message": "html2canvas" }, + "html_about_html2canvas_prefix": { "message": "Bu eklentinin kullandığı" }, + "html_about_html2canvas_suffix": { "message": "kütüphane programcısı Niklas von Hertzen." }, + "html_about_indexedDb": { "message": "db.js" }, + "html_about_indexedDb_prefix": { "message": "indexedDb de kullanılır" }, + "html_about_indexedDb_suffix": { "message": "programcı Aaron Powell." }, + "html_about_report_issues_prefix": { "message": "Geri bildiriminiz varsa veya bir sorunu bildirmek istiyorsanız" }, + "html_about_report_issues_suffix": { "message": ". Lütfen yeni bir tane oluşturmadan önce fikrinizin veya sorununun mevcut olup olmaduğını kontrol ediniz. Teşekkürler!" }, + "html_about_the_github_issues_page": { "message": "GitHub sorunlar sayfası" }, + "html_about_title": { "message": "Hakkında" }, + "html_about_twitter_title": { "message": "Twitter" }, + "html_history_current_session": { "message": "Şuanki oturum" }, + "html_history_import_session": { "message": "Oturum Al" }, + "html_history_recent_sessions": { "message": "Son oturumlar" }, + "html_history_saved_sessions": { "message": "Kayıtlı oturumlar" }, + "html_history_title": { "message": "Oturum yönetimi" }, + "html_notice_important_notice": { "message": "Great Suspender'dan önemli uyarı" }, + "html_notice_title": { "message": "Not" }, + "html_options_other_enable_context_menu": { "message": "Sağ tuş menüye Great Suspender için menü ekle" }, + "html_options_other_enable_context_menu_tooltip_line1": { "message": "Web sayfasının sağ tıklama menüsüne bu uzantı için kontrol ekle." }, + "html_options_other_enable_context_menu_tooltip_line2": { "message": "Gelişmiş askıya alma işlemlerine" }, + "html_options_other_enable_context_menu_tooltip_line3": { "message": "buradan erişmenizi sağlayacaktır." }, + "html_options_other_enable_sync": { "message": "Ayarları Chrome profilinizle senkronize yap" }, + "html_options_other_enable_sync_tooltip_line1a": { "message": "Yaptığınız uzantı ayarları, aynı profil ile giriş yaptığınız tarayıcı" }, + "html_options_other_enable_sync_tooltip_line1b": { "message": "arasında senkronize edilir." }, + "html_options_other_enable_sync_tooltip_line2": { "message": "Bu aynı zamanda ayarları gizli modda senkronize edecektir." }, + "html_options_other_enable_sync_warning": { "message": "Bunu açtığınızda, aynı Chrome profilinde oturum açan tarayıcıların ayarlarının üzerine yazılacak" }, + "html_options_other_title": { "message": "Diğer" }, + "html_options_suspend_automatically_after": { "message": "Otomatik sekmeyi askıya al" }, + "html_options_suspend_automatically_unsuspend": { "message": "Sekme görüntülendiğinde askısını kaldır" }, + "html_options_suspend_day": { "message": "gün" }, + "html_options_suspend_days": { "message": "gün" }, + "html_options_suspend_discard_after_suspend": { "message": "Askıya alırken Chrome'un dahili hafıza tasarrufunu uygula" }, + "html_options_suspend_discard_after_suspend_tooltip_line1a": { "message": "Askıya alınmış bir sekmenin bellek kullanımını daha da azaltarak" }, + "html_options_suspend_discard_after_suspend_tooltip_line1b": { "message": "Chrome'un yerleşil 'sekme atma' özelliği. Bu sonuçlabilir" }, + "html_options_suspend_discard_after_suspend_tooltip_line1c": { "message": "çok sayıda sekmeler ile çalışırken %500'e varan bellek tasarrufu." }, + "html_options_suspend_discard_after_suspend_tooltip_line2a": { "message": "Ancak, seçildiğinde askıya alınmış sekmede." }, + "html_options_suspend_discard_after_suspend_tooltip_line2b": { "message": "işlem işlemede gecikmeye sebep olur." }, + "html_options_suspend_discard_after_suspend_tooltip_line3a": { "message": "Bilgi için Chrome'un referans bilgisi:" }, + "html_options_suspend_discard_after_suspend_tooltip_line3b": { "message": "https://developers.google.com/web/updates/2015/09/tab-discarding" }, + "html_options_suspend_force_screen_capture": { "message": "Yüksek kaliteli ekran görüntüsü yakalamayı etkinleştir" }, + "html_options_suspend_force_screen_capture_tooltip_line1": { "message": "Devre dışı olduğunda, ekran görüntü yakalaması performansa yardımcı olmak için aşağıdaki sınırlamalara sahiptir:" }, + "html_options_suspend_force_screen_capture_tooltip_line2": { "message": "- Düşük kalite ekran görüntüsü yakalama" }, + "html_options_suspend_force_screen_capture_tooltip_line4": { "message": "- Ekran yakalama görüntüsü oluşturması 1 dakikadan uzun sürerse görüntü yakalanamaz" }, + "html_options_suspend_force_screen_capture_tooltip_line5": { "message": "- Ekran görüntüsü yakalamanın maksimum yüksekliği 5000px" }, + "html_options_suspend_force_screen_capture_tooltip_line6": { "message": "Yüksek kaliteli ekran görüntüsü yakalama modu etkinleştirildiğinde işlemci (CPU) yükünü önemli şekilde yükseltebilir" }, + "html_options_suspend_force_screen_capture_tooltip_line7": { "message": "ve bellek kullanımı." }, + "html_options_suspend_hour": { "message": "saat" }, + "html_options_suspend_hours": { "message": "saat" }, + "html_options_suspend_minute": { "message": "dakika" }, + "html_options_suspend_minutes": { "message": "saniye" }, + "html_options_suspend_never": { "message": "Hiç" }, + "html_options_suspend_no_active_tabs": { "message": "Asla aktif penceredeki sekmeye askıya al yapma" }, + "html_options_suspend_no_audio": { "message": "Asla ses çalan sekmelere askıya al yapma" }, + "html_options_suspend_no_forms": { "message": "Asla kaydedilmemiş form girişleri içeren sekmeleri askıya al yapma" }, + "html_options_suspend_no_pinned": { "message": "Sabitlenmiş sekmeleri asla askıya al yapma" }, + "html_options_suspend_on_low_memory": { "message": "Sistem belleği çok azaldığında anında askıya al" }, + "html_options_suspend_on_low_memory_tooltip_discarding_link": { "message": "https://developers.google.com/web/updates/2015/09/tab-discarding" }, + "html_options_suspend_on_low_memory_tooltip_line1": { "message": "Bu seçenek, Chrome'un otomatik sekme atma özelliğini geçersiz kılar." }, + "html_options_suspend_on_low_memory_tooltip_line2": { "message": "Etkinleştirilirse, Chrome tarafından atılmak yerine sekmeyi askıya almaya zorlar." }, + "html_options_suspend_on_low_memory_tooltip_line3": { "message": "Genellikle, Chrome yalnızca sistem belleği çok azaldığında sekmeleri atar." }, + "html_options_suspend_on_low_memory_tooltip_line4": { "message": "Lütfen dikkat: Bu, sekmelerin sahip olduğunuz süreden daha erken askıya alınmasına sebep olabilir." }, + "html_options_suspend_on_low_memory_tooltip_line5": { "message": "otomatik sekme askıya alma seçeneklerinde belirtilen." }, + "html_options_suspend_on_low_memory_tooltip_line6": { "message": "Daha fazla bilgi için Chrome'un referansına bakınız:" }, + "html_options_suspend_only_connected": { "message": "Çevrimdışı olduğunda askıya al yapma" }, + "html_options_suspend_only_on_battery": { "message": "Güç kaynağına bağlı iken sekmeleri askıya al yapma" }, + "html_options_suspend_screen_capturing": { "message": "Ekran görüntüsü yakalama" }, + "html_options_suspend_screen_capturing_disabled": { "message": "Devre dışı" }, + "html_options_suspend_screen_capturing_entire_page": { "message": "Tüm sayfayı yakala" }, + "html_options_suspend_screen_capturing_screen_only": { "message": "Sadece ekranın üst kısmını yakala" }, + "html_options_suspend_screen_capturing_tooltip_line1a": { "message": "Askıya alınmış bir sekmede, uzantı sekmenin ne olduğuna ilişkin resim önizlemesi görüntüleyebilir" }, + "html_options_suspend_screen_capturing_tooltip_line1b": { "message": "askıya alınmamış hali gibi." }, + "html_options_suspend_screen_capturing_tooltip_line2a": { "message": "Ekran görüntüsü yakalama özelliği önemli miktarda işlemci (cpu) kullanımına sebep olabilir" }, + "html_options_suspend_screen_capturing_tooltip_line2b": { "message": "ve az miktarda bellek kullanımına." }, + "html_options_suspend_screen_capturing_tooltip_line3a": { "message": "Sekmelerin askıya alınması uzun zaman alıyorsa veya chrome uygulamasında " }, + "html_options_suspend_screen_capturing_tooltip_line3b": { "message": "beklenmedik çekilde çökme vb. olursa, bu özelliği kapatmayı deneyin." }, + "html_options_suspend_seconds": { "message": "saniye" }, + "html_options_suspend_theme": { "message": "Tema" }, + "html_options_suspend_theme_dark": { "message": "Koyu" }, + "html_options_suspend_theme_light": { "message": "Açık" }, + "html_options_suspend_title": { "message": "Otomatik sekme askıya alma" }, + "html_options_suspend_week": { "message": "hafta" }, + "html_options_suspend_weeks": { "message": "hafta" }, + "html_options_suspended_title": { "message": "Askıya alınmış sekmeler" }, + "html_options_title": { "message": "Ayarlar" }, + "html_options_whitelist_test": { "message": "Beyaz liste test" }, + "html_options_whitelist_title": { "message": "Aşağıdaki listede bulunan URL adreslerine askıya al yapma:" }, + "html_options_whitelist_tooltip_line1": { "message": "Beyaz listeye eklemek istediğiniz her sayfanın URL'sini yeni bir satıra ekleyin. Örneğin:" }, + "html_options_whitelist_tooltip_line2": { "message": "Tek bir satırda birden fazla siteyi beyaz listeye almak için URL’nin bir bölümünü belirleyebilirsiniz:" }, + "html_options_whitelist_tooltip_line3": { "message": "Ayrıca, slash vb. ekleyerek de düzenli ifadeler belirleyebilirsiniz:" }, + "html_permissions_backup": { "message": "Lütfen dikkat: Bu seçeneğin değiştirilmesi, askıya alınan tüm sekmelerinizin kısa bir süre kaybolmasına neden olur.\nBu durumda şuanki oturumunu kaydetmeniz iyi bir seçenek olabilir." }, + "html_permissions_heading": { "message": "Yerel dosyalar için lütfen yetki veriniz" }, + "html_permissions_info": { "message": "Bu uzantı, \"file\" kelimesi ile başlayan URL’leri askıya almasına izin veremiyor.\nBunu değiştirmek için uzantı ayarları sayfasından ayrıntılarına girip \"Dosya URL'lerine erişime izin ver\" seçeneğini açınız." }, + "html_permissions_title": { "message": "Yetkiler" }, + "html_popup_dont_suspend_now": { "message": "Şimdilik askıya almasını kaldır" }, + "html_popup_never_suspend_domain": { "message": "Bu alanadını hiçbir zaman askıya alma" }, + "html_popup_never_suspend_page": { "message": "Bu URL adresini hiçbir zaman askıya alma" }, + "html_popup_settings": { "message": "Ayarlar" }, + "html_popup_suspend_other_tabs": { "message": "Diğer seklemeri askıya al" }, + "html_popup_suspend_selected_tabs": { "message": "Seçilen sekmeyi askıya al" }, + "html_popup_suspend_tab": { "message": "Bu sekmeyi askıya al" }, + "html_popup_unsuspend_all_tabs": { "message": "Tüm sekmelerin askısını kaldır" }, + "html_popup_unsuspend_selected_tabs": { "message": "Seçilen sekmenin askısını kaldır" }, + "html_popup_unsuspend_tab": { "message": "Bu sekmenin askısını kaldır" }, + "html_recovery_description_line1": { "message": "Uzantının çökmesinden kurtuldunuz gibi görünüyor." }, + "html_recovery_description_line2": { "message": "Askıya alınan sekmeleriniz çökmüş veya kaybolmuş olabilir." }, + "html_recovery_disable_screen_capturing": { "message": "Ekran görüntüsü yakalama devre dışı" }, + "html_recovery_go_to_session_manager": { "message": "Oturum yöneticisine git" }, + "html_recovery_important_message": { "message": "Şu anda ekran görüntüsü yakalamayı açtınız. Bu uzantı art arda çöküyorsa, bu seçeneği devre dışı bırakmanız önerilir." }, + "html_recovery_restore_tabs_automatically": { "message": "Sekmeleri otomatik geri yükle" }, + "html_recovery_ruh_roh": { "message": "Ruh roh!" }, + "html_recovery_tabs_to_restore": { "message": "Sekmeleri geri yükle" }, + "html_recovery_title": { "message": "Kurtarma" }, + "html_restoring_detail": { "message": "Bu pencereyi geri yüklerken lütfen bekleyin..." }, + "html_restoring_heading": { "message": "Sekmeler geri yükleniyor" }, + "html_restoring_title": { "message": "Pencere geri yükleniyor" }, + "html_session_manager": { "message": "oturum yöneticisi" }, + "html_shortcuts_context_menu_note": { "message": "Not: Bu işlemlere mouse sağ tuş menü üzerinden de erişilebilir." }, + "html_shortcuts_keyboard_shortcuts": { "message": "Klavye kısayolları" }, + "html_shortcuts_remap_keys": { "message": "Klavye kısayol değiştir" }, + "html_shortcuts_title": { "message": "Klavye kısayolları" }, + "html_sidebar_general_settings": { "message": "Ayarlar" }, + "html_sidebar_session_management": { "message": "Oturum yöneticisi" }, + "html_sidebar_shortcuts": { "message": "Klavye kısayolları" }, + "html_sidebar_support": { "message": "Hakkında" }, + "html_success_all_tabs_restored": { "message": "Tüm sekmeleriniz geri yüklendi." }, + "html_success_goto_advanced_prefix": { "message": "Gelişmiş oturum yöneticisi için, ziyaret edin" }, + "html_success_goto_advanced_suffix": { "message": "sayfa" }, + "html_success_great_success": { "message": "Başarılı!" }, + "html_suspended_click_to_reload": { "message": "Sayfa askıya alındı.\n\nSayfayı geri yüklemek için tıklayın veya sayfayı yenileyin." }, + "html_suspended_tab_reload": { "message": "Sekmeyi Yeniden Yükle" }, + "html_suspended_tab_suspended": { "message": "Sekme askıya alındı" }, + "html_suspended_tab_whitelist_prefix": { "message": "Askıya Alma Yapma" }, + "html_suspended_tab_whitelist_suffix": { "message": "..." }, + "html_suspended_title": { "message": "Askıya Alınmış Sekme" }, + "html_suspended_toast_not_connected": { "message": "Internete bağlı değilsiniz" }, + "html_suspended_toast_reload_disabled": { "message": "Otomatik geri yükleme geçici olarak devre dışı." }, + "html_update_heading2": { "message": "daha büyük olma üzere" }, + "html_update_info": { "message": "The Great Suspender yeni bir sürümü kurulmaya hazır.\nLütfen dikkat: Güncelleme sırasında askıya alınmış sekmeleriniz kısa bir süre kaybolacaktır." }, + "html_update_info_nobackup_prefix": { "message": "Şu anki oturumunuzun buradan kopyasını dışarı aktarma yapmanızı öneririz " }, + "html_update_info_nobackup_suffix": { "message": " güncellemeye devam etmeden önce." }, + "html_update_info_withbackup": { "message": "Şu anki sekmenin oturum yedeğini almak için uygun zaman olabilir." }, + "html_update_title": { "message": "Güncelle" }, + "html_updated_bug_fixes_header": { "message": "Yamalar:" }, + "html_updated_detail_header_prefix": { "message": "Yenilikler " }, + "html_updated_detail_header_suffix": { "message": "?" }, + "html_updated_great_suspender_updated": { "message": "güncellendi" }, + "html_updated_info_line1": { "message": "Güncelleme öncesinde sekmeleriniz otomatik olarak yedeklenir." }, + "html_updated_info_line2_prefix": { "message": "Güncelleme sırasında herhangi bir sorunla karşılaştıysanız, kaybolan sekmeleri geri yüklebilirsiniz " }, + "html_updated_info_line2_suffix": { "message": " sayfa." }, + "html_updated_new_features_header": { "message": "Yeni özellikler:" }, + "html_updated_patch_message": { "message": "Özür dileriz. Sadece biraz bakım yapmamız gerekiyor." }, + "html_updated_release_notes": { "message": "Tüm sürüm notları için GitHub'ı ziyaret edin: " }, + "html_updated_title": { "message": "Güncellendi" }, + "html_updating_heading": { "message": "günceleniyor" }, + "html_updating_message": { "message": "Askıya alınmış sekmeleriniz geri yüklenirken lütfen bekleyiniz..." }, + "html_welcome_text_line1": { "message": "Tekrar için deneniyor teşekkürler" }, + "html_welcome_text_line2": { "message": "Kullanmadığınız sekmeleri askıya alarak bilgisayarınızın sorunsuz çalışmasını sağlayabilirsiniz." }, + "html_welcome_text_line3": { "message": "Aşağıdaki ayarları hassas şekilde yapabilirsiniz." }, + "html_welcome_title": { "message": "Hoşgeldiniz" }, + "js_context_force_suspend_all_tabs": { "message": "Tüm penceredeki tüm sekmeleri zorla askıya al" }, + "js_context_force_suspend_other_tabs_in_window": { "message": "Bu pencere dışındaki tüm sekmeleri zorla askıya al" }, + "js_context_never_suspend_domain": { "message": "Bu alanadını hiçbir zaman askıya alma" }, + "js_context_never_suspend_page": { "message": "Bu URL adresini hiçbir zaman askıya alma" }, + "js_context_open_link_in_suspended_tab": { "message": "Askıya Alınmış Sekmede Adresi Aç" }, + "js_context_soft_suspend_all_tabs": { "message": "Tüm penceredeki tüm sekmeleri askıya al" }, + "js_context_soft_suspend_other_tabs_in_window": { "message": "Bu pencere dışındaki tüm sekmeleri askıya al" }, + "js_context_suspend_selected_tabs": { "message": "Seçilen sekmeyi askıya al" }, + "js_context_toggle_pause_suspension": { "message": "Bu sekmenin askı durumunu Duraklat/Devam Et" }, + "js_context_toggle_suspend_state": { "message": "Bu sekmeyi Askıya Al/Askısını Kaldır" }, + "js_context_unsuspend_all_tabs": { "message": "Tüm penceredeki tüm sekmelerin askısını kaldır" }, + "js_context_unsuspend_all_tabs_in_window": { "message": "Bu penceredeki tüm sekmelerin askısını kaldır" }, + "js_context_unsuspend_selected_tabs": { "message": "Seçilen sekmenin askısını kaldır" }, + "js_history_confirm_delete": { "message": "Bu oturumu silmek istediğinizden emin misiniz??" }, + "js_history_confirm_session_overwrite": { "message": "Bu oturum bu isim ile zaten kaydedilmiş. Üzerine kayıt yapılsın mı?" }, + "js_history_delete": { "message": "Sil" }, + "js_history_enter_name_for_session": { "message": "Bu oturum için bir isim girin" }, + "js_history_export": { "message": "Dışa aktar" }, + "js_history_import_fail": { "message": "Dosya yükleme başarısız. Dosyanın düz metin olduğundan ve satır başına tek bir URL içerdiğinden emin olunuz." }, + "js_history_plural": { "message": "s" }, + "js_history_reload": { "message": "Aç ve yükle" }, + "js_history_resuspend": { "message": "Aç ve askıya al" }, + "js_history_save": { "message": "Kaydet" }, + "js_history_tab": { "message": "Sekme" }, + "js_history_window": { "message": "Pencere" }, + "js_options_incognito_warning": { "message": "Gizli moddasınız. Bazı özellikler kullanılamayacak." }, + "js_options_whitelist_matches_heading": { "message": "Sekme beyaz listesi:" }, + "js_options_whitelist_matches_overflow_prefix": { "message": "ve" }, + "js_options_whitelist_matches_overflow_suffix": { "message": "dahası." }, + "js_options_whitelist_no_matches": { "message": "Mevcut beyaz listeyle eşleşen açık sekme yok." }, + "js_permissions_button_export": { "message": "Yedeği kaydet" }, + "js_permissions_button_set": { "message": "Uzantı ayarlarını aç" }, + "js_popup_audible": { "message": "Sekme ses çalıyor." }, + "js_popup_blockedFile": { "message": "Yerel dosyalar askıya alınamaz." }, + "js_popup_blockedFile_enable": { "message": "Açık" }, + "js_popup_charging": { "message": "Güç kaynağına bağlandı" }, + "js_popup_error": { "message": "Bu sekme için otomatik askıya alma kullanılamıyor" }, + "js_popup_form_input": { "message": "Sekme form girişi yapıyor." }, + "js_popup_form_input_unpause": { "message": "Devam Et" }, + "js_popup_initialising": { "message": "Uzantının başlatılması bekleniyor..." }, + "js_popup_never": { "message": "Otomatik sekme askıya alma devre dışı." }, + "js_popup_no_connectivity": { "message": "Ağ bağlantısı yok" }, + "js_popup_normal": { "message": "Otomatik sekmeyi askıya al." }, + "js_popup_normal_pause": { "message": "Şimdi değil" }, + "js_popup_pinned": { "message": "Sekme sabit" }, + "js_popup_special": { "message": "Askıya alınmadı" }, + "js_popup_suspended": { "message": "Sekme askıya alındı" }, + "js_popup_suspended_pause": { "message": "Askı Duraklatıldı" }, + "js_popup_temp_whitelist": { "message": "Sekme askı durumu duraklatıldı." }, + "js_popup_temp_whitelist_unpause": { "message": "Devam Et" }, + "js_popup_unknown": { "message": "Geri yükleme için sekme bekleniyor..." }, + "js_popup_whitelisted": { "message": "Site beyaz listede." }, + "js_popup_whitelisted_remove": { "message": "Beyaz listeden kaldır" }, + "js_session_save_point": { "message": "v için otomatik kaydetme noktası" }, + "js_shortcuts_not_set": { "message": "tanımsız" }, + "js_suspended_hotkey_to_reload": { "message": "Klavye kısayolları" }, + "js_suspended_low_memory": { "message": "Düşük sistem belleği nedeni ile sekme askıya alındı" }, + "js_suspended_remove_from_whitelist": { "message": "Bu web sitesini beyaz listeden kaldır" }, + "js_update_button_export": { "message": "Yedeği sakla" }, + "js_update_button_reload": { "message": "Uzantı güncelle" }, + "js_update_confirm": { "message": "Henüz bir yedekleme yapmadınız. Uzantıyı yine de güncellensin mi?" } +} diff --git a/src/_locales/zh_CN/messages.json b/src/_locales/zh_CN/messages.json index 0db82b92..1eec5a20 100644 --- a/src/_locales/zh_CN/messages.json +++ b/src/_locales/zh_CN/messages.json @@ -42,10 +42,6 @@ "html_about_browserstack": { "message": "browserstack" }, "html_about_browserstack_prefix": { "message": "同时也感谢" }, "html_about_browserstack_suffix": { "message": "提供免费的 Chrome 测试工具" }, - "html_about_feeling_generous": { "message": "如果你喜欢 The Great Suspender,也许可以..." }, - "html_about_already_donated": { "message": "已经捐赠过了?" }, - "html_about_thanks_for_your_donation": { "message": "非常感谢你的捐赠支持" }, - "html_about_want_to_donate_again": { "message": "想要再次捐赠?" }, "html_history_title": { "message": "会话管理" }, "html_history_current_session": { "message": "当前会话" }, "html_history_recent_sessions": { "message": "最近会话" }, @@ -168,7 +164,6 @@ "html_suspended_click_to_reload": { "message": "刷新页面或点击此处重新加载" }, "html_suspended_toast_not_connected": { "message": "您未连接网络" }, "html_suspended_toast_reload_disabled": { "message": "暂时禁用标签页自动重新加载。" }, - "html_suspended_donation_question": { "message": "你喜欢这个扩展吗?\n通过捐赠来表达你的支持。" }, "html_permissions_title": { "message": "许可权限" }, "html_permissions_heading": { "message": "请授予允许访问本地文件 URL 的权限" }, "html_permissions_info": { "message": "这个扩展目前不允许冻结那些以 \"file\" 开头的 URL 链接。\n要想改变这个设置, 可以在扩展设置页面打开允许访问文件 URL 的设置。" }, @@ -196,12 +191,6 @@ "html_welcome_text_line1": { "message": "感谢你安装" }, "html_welcome_text_line2": { "message": "我能把你暂时不用的标签页冻结起来,希望这会让你的电脑运行地更流畅一些。" }, "html_welcome_text_line3": { "message": "您可以在下面更改设置" }, - "html_thanks_title": { "message": "感谢" }, - "html_thanks_header": { "message": "感谢您的捐赠!" }, - "html_thanks_sub_header": { "message": "好人一生平安。" }, - "js_donate_paypal": { "message": "PayPal" }, - "js_donate_bitcoin": { "message": "比特币" }, - "js_donate_patreon": { "message": "Patreon" }, "js_popup_normal": { "message": "标签页将会自动被冻结。" }, "js_popup_normal_pause": { "message": "暂时不要冻结" }, "js_popup_special": { "message": "标签页无法被冻结" }, diff --git a/src/_locales/zh_TW/messages.json b/src/_locales/zh_TW/messages.json index aac1bb3f..3c5d67e2 100644 --- a/src/_locales/zh_TW/messages.json +++ b/src/_locales/zh_TW/messages.json @@ -42,10 +42,6 @@ "html_about_browserstack": { "message": "browserstack" }, "html_about_browserstack_prefix": { "message": "同時也謝謝" }, "html_about_browserstack_suffix": { "message": "提供免費的 Chrome 測試工具" }, - "html_about_feeling_generous": { "message": "如果你喜歡 The Great Suspender,也許可以..." }, - "html_about_already_donated": { "message": "準備捐款?" }, - "html_about_thanks_for_your_donation": { "message": "非常謝謝你的捐款支持" }, - "html_about_want_to_donate_again": { "message": "想要再次捐款" }, "html_history_title": { "message": "記錄管理" }, "html_history_current_session": { "message": "目前記錄" }, "html_history_recent_sessions": { "message": "最近記錄" }, @@ -168,7 +164,6 @@ "html_suspended_click_to_reload": { "message": "點擊此處重新載入" }, "html_suspended_toast_not_connected": { "message": "您沒有連接到網絡" }, "html_suspended_toast_reload_disabled": { "message": "禁用自動重新載入。" }, - "html_suspended_donation_question": { "message": "你喜歡這個擴充功能嗎?\n可以通過捐贈表達你的支持。" }, "html_permissions_title": { "message": "許可權限" }, "html_permissions_heading": { "message": "請提供允許存取本機檔案 URL 的權限" }, "html_permissions_info": { "message": "這個擴充功能目前不允許暫停那些以 file(檔案)開頭的 URL 連結。\n想要改變這個設定, 可以在擴充功能設定分頁打開允許存取檔案URL的設定。" }, @@ -196,12 +191,6 @@ "html_welcome_text_line1": { "message": "謝謝你安裝" }, "html_welcome_text_line2": { "message": "通過暫停不使用的分頁,可以讓您的電腦減少記憶體的使用。" }, "html_welcome_text_line3": { "message": "您可以在下面更改設定" }, - "html_thanks_title": { "message": "謝謝" }, - "html_thanks_header": { "message": "感謝您的捐贈!" }, - "html_thanks_sub_header": { "message": "你是一個很棒的人!" }, - "js_donate_paypal": { "message": "PayPal" }, - "js_donate_bitcoin": { "message": "比特幣" }, - "js_donate_patreon": { "message": "Patreon" }, "js_popup_normal": { "message": "分頁將會自動被凍結。" }, "js_popup_normal_pause": { "message": "暫時不要凍結" }, "js_popup_special": { "message": "分頁無法被凍結" }, diff --git a/src/about.html b/src/about.html index bb1aa2a1..a9d6eb89 100644 --- a/src/about.html +++ b/src/about.html @@ -3,7 +3,6 @@ - @@ -40,7 +39,7 @@

- github.com/deanoemcke/thegreatsuspender + github.com/greatsuspender/thegreatsuspender
@greatsuspender @@ -50,7 +49,7 @@

- +

@@ -74,27 +73,6 @@

-
- - -
-

-
-

- -

-
-
-

-
-  |\      _,,,--,,_
-  /,`.-'`'   ._  \-;;,_
- |,4-  ) )_   .;.(  `'-'
-'---''(_/._)-'(_\_)
-            
- - -
diff --git a/src/broken.html b/src/broken.html index 662f87b9..274d5721 100644 --- a/src/broken.html +++ b/src/broken.html @@ -17,7 +17,7 @@

Ruh Roh!

The Great Suspender failed to start. Perhaps you are using an incompatible version of chrome?

-

Try to restart the extension. If the problem persists, ask for help on the GitHub project page.

+

Try to restart the extension. If the problem persists, ask for help on the GitHub project page.

You can recover lost tabs from the session management page.


diff --git a/src/css/donate.css b/src/css/donate.css deleted file mode 100644 index 4fb39061..00000000 --- a/src/css/donate.css +++ /dev/null @@ -1,107 +0,0 @@ -.btn { - background: #3477db; - color: #fff; - border-radius: 3px; - height: 40px; - line-height: 40px; - padding: 0 20px; - display: inline-block; - border: 0; - font-size: 14px; - font-weight: 500; - cursor: pointer; - - min-width: 80px; - text-align: center; -} -.btn:hover { - background: #5c9dfe; - text-decoration: none; -} -.donateButtons { - overflow: hidden; -} -.donateButtons > * { - font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', - Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', - 'Segoe UI Symbol'; - margin: 0 7px 0 0; - float: left; -} -.donateButtons > *:last-child { - margin: 0; -} - -.donationToggle { - margin-top: 15px; -} - -#dudePopup { - display: none; - position: fixed; - width: 90px; - left: 30px; - bottom: -240px; - cursor: default; -} -#dudePopup.poppedup { - display: block !important; - animation-name: slideToTop; - animation-duration: 1s; - animation-timing-function: ease; - animation-iteration-count: 1; - animation-direction: normal; - animation-delay: 0.5s; - animation-play-state: running; - animation-fill-mode: forwards; -} - -.donateBubble { - display: none; - width: 365px; - padding: 15px 10px; - background: #fff; - border-radius: 4px; - bottom: 35px; - left: 133px; - position: fixed; - text-align: center; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); - opacity: 0; - cursor: default; -} -.donateBubble:before { - content: ''; - position: absolute; - top: 19px; - left: -14px; - border-style: solid; - border-width: 15px 15px 15px 0; - border-color: transparent #fff; - display: block; - width: 0; - filter: drop-shadow(-2px 0px 0 rgba(0, 0, 0, 0.1)); -} -.donateBubble .donateButtons { - display: flex; - justify-content: center; - margin-bottom: 10px; -} -.donateBubble.fadeIn { - display: block !important; - animation: fadein 0.7s; - animation-fill-mode: forwards; - animation-delay: 1.5s; -} -@keyframes slideToTop { - 0% { - bottom: -240px; - } - 100% { - bottom: 10px; - z-index: 1000000; - } -} -#donatedSection { - display:none; -} \ No newline at end of file diff --git a/src/js/about.js b/src/js/about.js index 80e7036f..82f3d2bb 100644 --- a/src/js/about.js +++ b/src/js/about.js @@ -9,56 +9,10 @@ return; } - function toggleNag(hideNag) { - gsStorage.setOptionAndSync(gsStorage.NO_NAG, hideNag); - gsAnalytics.reportEvent('Donations', 'HidePopupManual', hideNag); - } - - function loadDonateButtons(responseText) { - document.getElementById('donateButtons').innerHTML = responseText; - - var bitcoinBtn = document.getElementById('bitcoinBtn'); - var patreonBtn = document.getElementById('patreonBtn'); - var paypalBtn = document.getElementById('paypalBtn'); - - bitcoinBtn.innerHTML = chrome.i18n.getMessage('js_donate_bitcoin'); - patreonBtn.innerHTML = chrome.i18n.getMessage('js_donate_patreon'); - paypalBtn.setAttribute('value', chrome.i18n.getMessage('js_donate_paypal')); - - bitcoinBtn.onclick = function() { - gsAnalytics.reportEvent('Donations', 'Click', 'coinbase'); - }; - patreonBtn.onclick = function() { - gsAnalytics.reportEvent('Donations', 'Click', 'patreon'); - }; - paypalBtn.onclick = function() { - gsAnalytics.reportEvent('Donations', 'Click', 'paypal'); - }; - - document.getElementById('alreadyDonatedToggle').onclick = function() { - toggleNag(true); - window.location.reload(); - }; - document.getElementById('donateAgainToggle').onclick = function() { - toggleNag(false); - window.location.reload(); - }; - } - gsUtils.documentReadyAndLocalisedAsPromsied(document).then(function() { var versionEl = document.getElementById('aboutVersion'); versionEl.innerHTML = 'v' + chrome.runtime.getManifest().version; - if (gsStorage.getOption(gsStorage.NO_NAG)) { - document.getElementById('donateSection').style.display = 'none'; - document.getElementById('donatedSection').style.display = 'block'; - } - - var request = new XMLHttpRequest(); - request.onload = () => loadDonateButtons(request.responseText); - request.open('GET', 'support.html', true); - request.send(); - //hide incompatible sidebar items if in incognito mode if (chrome.extension.inIncognitoContext) { Array.prototype.forEach.call( diff --git a/src/js/background.js b/src/js/background.js index 08a789fa..5e28eaaa 100644 --- a/src/js/background.js +++ b/src/js/background.js @@ -3,7 +3,7 @@ * The Great Suspender * Copyright (C) 2017 Dean Oemcke * Available under GNU GENERAL PUBLIC LICENSE v2 - * http://github.com/deanoemcke/thegreatsuspender + * http://github.com/greatsuspender/thegreatsuspender * ༼ つ ◕_◕ ༽つ */ var tgs = (function() { @@ -29,7 +29,6 @@ var tgs = (function() { const STATE_UNLOADED_URL = 'unloadedUrl'; const STATE_HISTORY_URL_TO_REMOVE = 'historyUrlToRemove'; const STATE_SET_AUTODISCARDABLE = 'setAutodiscardable'; - const STATE_SHOW_NAG = 'showNag'; const STATE_SUSPEND_REASON = 'suspendReason'; // 1=auto-suspend, 2=manual-suspend, 3=discarded const STATE_SCROLL_POS = 'scrollPos'; @@ -652,16 +651,8 @@ var tgs = (function() { } function checkForTriggerUrls(tab, url) { - // test for special case of a successful donation - if (url.indexOf('greatsuspender.github.io/thanks.html') > 0) { - gsStorage.setOptionAndSync(gsStorage.NO_NAG, true); - gsAnalytics.reportEvent('Donations', 'HidePopupAuto', true); - chrome.tabs.update(tab.id, { - url: chrome.extension.getURL('thanks.html'), - }); - - // test for a save of keyboard shortcuts (chrome://extensions/shortcuts) - } else if (url === 'chrome://extensions/shortcuts') { + // test for a save of keyboard shortcuts (chrome://extensions/shortcuts) + if (url === 'chrome://extensions/shortcuts') { _triggerHotkeyUpdate = true; } } @@ -880,7 +871,6 @@ var tgs = (function() { tab.id, STATE_DISABLE_UNSUSPEND_ON_RELOAD ); - let showNag = tgs.getTabStatePropForTabId(tab.id, tgs.STATE_SHOW_NAG); clearTabStateForTabId(tab.id); if (isCurrentFocusedTab(tab)) { @@ -898,7 +888,7 @@ var tgs = (function() { const quickInit = gsStorage.getOption(gsStorage.DISCARD_AFTER_SUSPEND) && !tab.active; gsSuspendedTab - .initTab(tab, tabView, { quickInit, showNag }) + .initTab(tab, tabView, { quickInit }) .catch(error => { gsUtils.warning(tab.id, error); }) @@ -1853,7 +1843,6 @@ var tgs = (function() { STATE_SET_AUTODISCARDABLE, STATE_SUSPEND_REASON, STATE_SCROLL_POS, - STATE_SHOW_NAG, getTabStatePropForTabId, setTabStatePropForTabId, diff --git a/src/js/contentscript.js b/src/js/contentscript.js index eee6bba7..e02e29a4 100644 --- a/src/js/contentscript.js +++ b/src/js/contentscript.js @@ -3,7 +3,7 @@ * The Great Suspender * Copyright (C) 2017 Dean Oemcke * Available under GNU GENERAL PUBLIC LICENSE v2 - * http://github.com/deanoemcke/thegreatsuspender + * http://github.com/greatsuspender/thegreatsuspender * ლ(ಠ益ಠლ) */ (function() { diff --git a/src/js/gsAnalytics.js b/src/js/gsAnalytics.js index c338e09e..1615526c 100644 --- a/src/js/gsAnalytics.js +++ b/src/js/gsAnalytics.js @@ -17,7 +17,7 @@ var gsAnalytics = (function() { function initAsPromised() { return new Promise(function(resolve) { try { - ga('create', 'UA-52338347-2', 'auto'); + ga('create', 'UA-167314577-2', 'auto'); ga('set', 'checkProtocolTask', function() {}); ga('require', 'displayfeatures'); } catch (e) { diff --git a/src/js/gsStorage.js b/src/js/gsStorage.js index 14adfa98..1fb7bb0a 100755 --- a/src/js/gsStorage.js +++ b/src/js/gsStorage.js @@ -107,7 +107,7 @@ var gsStorage = { } continue; } - // If donations are disabled locally, then ensure we disable them on synced profile + // If nags are disabled locally, then ensure we disable them on synced profile if ( key === gsStorage.NO_NAG && shouldSyncSettings && @@ -179,7 +179,7 @@ var gsStorage = { Object.keys(remoteSettings).forEach(function(key) { var remoteSetting = remoteSettings[key]; - // If donations are disabled locally, then ensure we disable them on synced profile + // If nags are disabled locally, then ensure we disable them on synced profile if (key === gsStorage.NO_NAG) { if (remoteSetting.newValue === false) { return false; // don't process this key diff --git a/src/js/gsSuspendedTab.js b/src/js/gsSuspendedTab.js index b2c5000c..095a69a5 100644 --- a/src/js/gsSuspendedTab.js +++ b/src/js/gsSuspendedTab.js @@ -3,7 +3,7 @@ var gsSuspendedTab = (function() { 'use strict'; - async function initTab(tab, tabView, { showNag, quickInit }) { + async function initTab(tab, tabView, { quickInit }) { if (!tabView) { gsUtils.warning( tab.id, @@ -55,20 +55,6 @@ var gsSuspendedTab = (function() { const isLowContrastFavicon = faviconMeta.isDark; setTheme(tabView.document, theme, isLowContrastFavicon); - // Set showNag - if ( - !options[gsStorage.NO_NAG] && - (showNag === undefined || showNag === null) - ) { - //show dude and donate link (randomly 1 of 20 times) - showNag = Math.random() > 0.95; - } - tgs.setTabStatePropForTabId(tab.id, tgs.STATE_SHOW_NAG, showNag); - - if (showNag) { - queueDonationPopup(tabView.window, tabView.document, tab.active, tab.id); - } - // Set command const suspensionToggleHotkey = await tgs.getSuspensionToggleHotkey(); setCommand(tabView.document, suspensionToggleHotkey); @@ -206,37 +192,6 @@ var gsSuspendedTab = (function() { reasonMsgEl.innerHTML = reason; } - function queueDonationPopup(_window, _document, tabActive, tabId) { - const donationPopupFocusListener = function(e) { - if (e && e.target && e.target.visibilityState === 'hidden') { - return; - } - const options = gsStorage.getSettings(); - const showNag = - tgs.getTabStatePropForTabId(tabId, tgs.STATE_SHOW_NAG) && - !options[gsStorage.NO_NAG]; - const dudeEl = _document.getElementById('dudePopup'); - const showingNag = - dudeEl !== null && dudeEl.classList.contains('poppedup'); - - if (showNag && !showingNag) { - loadDonationPopupTemplate(_document); - } else if (!showNag && showingNag) { - hideDonationPopup(_document); - } - }; - - _window.addEventListener('visibilitychange', donationPopupFocusListener); - if (tabActive) { - donationPopupFocusListener(); - } - } - - function hideDonationPopup(_document) { - _document.getElementById('dudePopup').classList.remove('poppedup'); - _document.getElementById('donateBubble').classList.remove('fadeIn'); - } - async function getPreviewUri(suspendedUrl) { const originalUrl = gsUtils.getOriginalUrl(suspendedUrl); const preview = await gsIndexedDb.fetchPreviewImage(originalUrl); @@ -395,62 +350,6 @@ var gsSuspendedTab = (function() { _document.getElementsByTagName('body')[0].appendChild(toastEl); } - function loadDonationPopupTemplate(_document) { - const popupEl = _document.createElement('div'); - popupEl.innerHTML = _document.getElementById('donateTemplate').innerHTML; - - const cssEl = popupEl.querySelector('#donateCss'); - const imgEl = popupEl.querySelector('#dudePopup'); - const bubbleEl = popupEl.querySelector('#donateBubble'); - // set display to 'none' to prevent TFOUC - imgEl.style.display = 'none'; - bubbleEl.style.display = 'none'; - gsUtils.localiseHtml(bubbleEl); - - const headEl = _document.getElementsByTagName('head')[0]; - const bodyEl = _document.getElementsByTagName('body')[0]; - headEl.appendChild(cssEl); - bodyEl.appendChild(imgEl); - bodyEl.appendChild(bubbleEl); - - const request = new XMLHttpRequest(); - request.onload = () => { - loadDonateButtonsHtml(_document, request.responseText); - }; - request.open('GET', 'support.html', true); - request.send(); - - _document.getElementById('dudePopup').classList.add('poppedup'); - _document.getElementById('donateBubble').classList.add('fadeIn'); - } - - function loadDonateButtonsHtml(_document, responseText) { - _document.getElementById('donateButtons').innerHTML = responseText; - _document.getElementById('bitcoinBtn').innerHTML = chrome.i18n.getMessage( - 'js_donate_bitcoin' - ); - _document.getElementById('patreonBtn').innerHTML = chrome.i18n.getMessage( - 'js_donate_patreon' - ); - _document - .getElementById('paypalBtn') - .setAttribute('value', chrome.i18n.getMessage('js_donate_paypal')); - try { - const gsAnalytics = chrome.extension.getBackgroundPage().gsAnalytics; - _document.getElementById('bitcoinBtn').onclick = function() { - gsAnalytics.reportEvent('Donations', 'Click', 'coinbase'); - }; - _document.getElementById('patreonBtn').onclick = function() { - gsAnalytics.reportEvent('Donations', 'Click', 'patreon'); - }; - _document.getElementById('paypalBtn').onclick = function() { - gsAnalytics.reportEvent('Donations', 'Click', 'paypal'); - }; - } catch (error) { - gsUtils.warning(error); - } - } - function cleanUrl(urlStr) { // remove scheme if (urlStr.indexOf('//') > 0) { diff --git a/src/js/gsTabCheckManager.js b/src/js/gsTabCheckManager.js index bb00a9fd..8ac98490 100644 --- a/src/js/gsTabCheckManager.js +++ b/src/js/gsTabCheckManager.js @@ -278,10 +278,11 @@ var gsTabCheckManager = (function() { // If tab is a file:// tab and file is blocked then unsuspend tab if (!gsSession.isFileUrlsAccessAllowed()) { - const originalUrl = gsUtils.getOriginalUrl(tab.url); + const url = tab.url || tab.pendingUrl; + const originalUrl = gsUtils.getOriginalUrl(url); if (originalUrl && originalUrl.indexOf('file') === 0) { gsUtils.log(tab.id, QUEUE_ID, 'Unsuspending blocked local file tab.'); - await unsuspendSuspendedTab(tab); + await gsChrome.tabsUpdate(tab.id, { url: originalUrl }); requeue(DEFAULT_TAB_CHECK_REQUEUE_DELAY, { refetchTab: true }); return; } @@ -351,11 +352,6 @@ var gsTabCheckManager = (function() { return reloadOk; } - async function unsuspendSuspendedTab(tab) { - const originalUrl = gsUtils.getOriginalUrl(tab.url); - await gsChrome.tabsUpdate(tab.id, { url: originalUrl }); - } - function ensureSuspendedTabVisible(tabView) { if (!tabView) { return false; diff --git a/src/js/gsUtils.js b/src/js/gsUtils.js index 6b32e216..3b025b3a 100644 --- a/src/js/gsUtils.js +++ b/src/js/gsUtils.js @@ -131,9 +131,8 @@ var gsUtils = { //tests for non-standard web pages. does not check for suspended pages! isSpecialTab: function(tab) { - var url = tab.url; - - if (gsUtils.isSuspendedUrl(url, true)) { + const url = tab.url || tab.pendingUrl; + if (gsUtils.isSuspendedTab(tab, true)) { return false; } // Careful, suspended urls start with "chrome-extension://" @@ -150,7 +149,8 @@ var gsUtils = { }, isFileTab: function(tab) { - if (tab.url.indexOf('file') === 0) { + const url = tab.url || tab.pendingUrl; + if (url.indexOf('file') === 0) { return true; } return false; @@ -167,9 +167,10 @@ var gsUtils = { //does not include suspended pages! isInternalTab: function(tab) { + const url = tab.url || tab.pendingUrl; var isLocalExtensionPage = - tab.url.indexOf('chrome-extension://' + chrome.runtime.id) === 0; - return isLocalExtensionPage && !gsUtils.isSuspendedUrl(tab.url); + url.indexOf('chrome-extension://' + chrome.runtime.id) === 0; + return isLocalExtensionPage && !gsUtils.isSuspendedTab(tab); }, isProtectedPinnedTab: function(tab) { @@ -202,11 +203,14 @@ var gsUtils = { }, isSuspendedTab: function(tab, looseMatching) { - return gsUtils.isSuspendedUrl(tab.url, looseMatching); + const url = tab.url || tab.pendingUrl; + return gsUtils.isSuspendedUrl(url, looseMatching); }, isSuspendedUrl: function(url, looseMatching) { - if (looseMatching) { + if (!url) { + return false; + } else if (looseMatching) { return url.indexOf('suspended.html') > 0; } else { return url.indexOf(chrome.extension.getURL('suspended.html')) === 0; diff --git a/src/js/recovery.js b/src/js/recovery.js index f373c50f..887ebad6 100644 --- a/src/js/recovery.js +++ b/src/js/recovery.js @@ -41,12 +41,13 @@ for (var i = 0; i < childLinks.length; i++) { const element = childLinks[i]; - const url = gsUtils.isSuspendedTab(tabToRemove) - ? gsUtils.getOriginalUrl(tabToRemove.url) - : tabToRemove.url; + const url = tabToRemove.url || tabToRemove.pendingUrl; + const originalUrl = gsUtils.isSuspendedUrl(url) + ? gsUtils.getOriginalUrl(url) + : url; if ( - element.getAttribute('data-url') === url || + element.getAttribute('data-url') === originalUrl || element.getAttribute('data-tabId') == tabToRemove.id ) { // eslint-disable-line eqeqeq diff --git a/src/js/thanks.js b/src/js/thanks.js deleted file mode 100644 index 9bae74b2..00000000 --- a/src/js/thanks.js +++ /dev/null @@ -1,16 +0,0 @@ -/*global chrome, gsAnalytics, gsUtils */ -(function(global) { - 'use strict'; - - try { - chrome.extension.getBackgroundPage().tgs.setViewGlobals(global); - } catch (e) { - window.setTimeout(() => window.location.reload(), 1000); - return; - } - - gsUtils.documentReadyAndLocalisedAsPromsied(document).then(function() { - //do nothing - }); - gsAnalytics.reportPageView('thanks.html'); -})(this); diff --git a/src/js/updated.js b/src/js/updated.js index 6e7b279f..e4eef7fc 100644 --- a/src/js/updated.js +++ b/src/js/updated.js @@ -15,8 +15,8 @@ } gsUtils.documentReadyAndLocalisedAsPromsied(document).then(function() { - var versionEl = document.getElementById('updatedVersion'); - versionEl.innerHTML = 'v' + chrome.runtime.getManifest().version; + // var versionEl = document.getElementById('updatedVersion'); + // versionEl.innerHTML = 'v' + chrome.runtime.getManifest().version; document.getElementById('sessionManagerLink').onclick = function(e) { e.preventDefault(); diff --git a/src/manifest.json b/src/manifest.json index 612e3748..4b476be0 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,7 +1,7 @@ { "name": "__MSG_ext_extension_name__", "description": "__MSG_ext_extension_description__", - "version": "7.1.4", + "version": "7.1.6", "default_locale": "en", "permissions": [ "tabs", diff --git a/src/support.html b/src/support.html deleted file mode 100644 index 495e0363..00000000 --- a/src/support.html +++ /dev/null @@ -1,11 +0,0 @@ -Patreon - -
- - - - - -
- -Crypto \ No newline at end of file diff --git a/src/suspended.html b/src/suspended.html index d6fb9685..15830aa1 100644 --- a/src/suspended.html +++ b/src/suspended.html @@ -18,15 +18,6 @@ - - - - - - - -
- - - -
-

-

- -
- -
- -
- - - - \ No newline at end of file diff --git a/src/updated.html b/src/updated.html index 8047f499..c55f914d 100644 --- a/src/updated.html +++ b/src/updated.html @@ -37,63 +37,33 @@


-

+
-
    -
  • - New option to enable Chrome's built-in memory-saving for suspended tabs.
    - Can boost memory savings by up to 5x! -
  • -
  • New right-click context menu options and keyboard shortcuts.
  • -
  • Ability to suspend local file urls.
  • -
  • Improved session saving, export and recovery.
  • -
  • Fixed issues with chrome stealing focus when a tab suspends in the background.
  • -
  • Many other minor bug fixes and performance improvements.
  • -
+
-
+
-
+