diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json new file mode 100644 index 00000000..fd3a9341 --- /dev/null +++ b/src/_locales/en/messages.json @@ -0,0 +1,196 @@ +{ + // manifest.json + "ext_extension_name": { "message": "The Great Suspender" }, + "ext_extension_description": { "message": "Automatically suspends unused tabs to free up system resources" }, + "ext_default_title": { "message": "The Great Suspender" }, + "ext_cmd_suspend_tab_description": { "message": "Suspend active tab" }, + "ext_cmd_unsuspend_tab_description": { "message": "Unsuspend active tab" }, + "ext_cmd_suspend_active_window_description": { "message": "Suspend all tabs in active window" }, + "ext_cmd_unsuspend_active_window_description": { "message": "Unsuspend all tabs in active window" }, + "ext_cmd_suspend_all_windows_description": { "message": "Suspend all tabs in all windows" }, + "ext_cmd_unsuspend_all_windows_description": { "message": "Unsuspend all tabs in all windows" }, + + // About page + "html_about_title": { "message": "Support" }, + "html_about_email_feedback_to": { "message": "Email your feedback to" }, + "html_about_report_issues_to": { "message": "Please report issues to" }, + "html_about_the_github_project": { "message": "the github project" }, + "html_about_html2canvas_prefix": { "message": "This extension uses the" }, + "html_about_html2canvas_suffix": { "message": "library written by Niklas von Hertzen." }, + "html_about_indexedDb_prefix": { "message": "It also uses the indexedDb wrapper" }, + "html_about_indexedDb_suffix": { "message": "written by Aaron Powell." }, + "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": "If you like The Great Suspender & you're feeling generous..." }, + "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?" }, + + // Session management page + "html_history_title": { "message": "Session management" }, + "html_history_current_session": { "message": "Current session" }, + "html_history_recent_sessions": { "message": "Recent sessions" }, + "html_history_saved_sessions": { "message": "Saved sessions" }, + "html_history_clear_tab_history": { "message": "Clear tab history" }, + "html_history_enter_name_for_session": { "message": "Enter a name for this session" }, + "html_history_cancel": { "message": "Cancel" }, + "html_history_ok": { "message": "OK" }, + + // Important notice page + "html_notice_title": { "message": "Notice" }, + "html_notice_important_notice": { "message": "Important notice from The Great Suspender" }, + + // General settings page + "html_options_title": { "message": "Settings" }, + "html_options_suspend_title": { "message": "Suspend tab settings" }, + "html_options_suspend_automatically_after": { "message": "Automatically suspend tabs after" }, + "html_options_suspend_never": { "message": "Never" }, + "html_options_suspend_seconds": { "message": "seconds" }, + "html_options_suspend_minute": { "message": "min" }, + "html_options_suspend_minutes": { "message": "mins" }, + "html_options_suspend_hour": { "message": "hour" }, + "html_options_suspend_hours": { "message": "hours" }, + "html_options_suspend_day": { "message": "day" }, + "html_options_suspend_days": { "message": "days" }, + "html_options_suspend_no_pinned": { "message": "Do not suspend pinned tabs" }, + "html_options_suspend_no_forms": { "message": "Do not suspend tabs that contain unsaved form inputs" }, + "html_options_suspend_no_audio": { "message": "Do not suspend tabs that are playing audio" }, + "html_options_suspend_only_connected": { "message": "Only auto-suspend if connected to the internet" }, + "html_options_suspend_only_on_battery": { "message": "Only auto-suspend if running on battery" }, + "html_options_suspend_automatically_unsuspend": { "message": "Automatically unsuspend tab when it is viewed" }, + "html_options_suspend_enable_context_menu": { "message": "Add The Great Suspender to right-click context menu" }, + "html_options_suspend_theme": { "message": "Theme" }, + "html_options_suspend_theme_light": { "message": "Light" }, + "html_options_suspend_theme_dark": { "message": "Dark" }, + "html_options_suspend_screen_capturing": { "message": "Screen capturing" }, + "html_options_suspend_screen_capturing_disabled": { "message": "Disabled" }, + "html_options_suspend_screen_capturing_screen_only": { "message": "Capture visible screen only" }, + "html_options_suspend_screen_capturing_entire_page": { "message": "Capture entire page" }, + "html_options_suspend_preview_note_line1": { "message": "The screen capturing feature is experimental and can cause significant CPU usage." }, + "html_options_suspend_preview_note_line2": { "message": "If you notice strange behaviour such as tabs taking a long time to suspend, or chrome crashing unexpectedly, try turning this feature off." }, + "html_options_whitelist_title": { "message": "Whitelist" }, + "html_options_whitelist_helptext1": { "message": "Add the URL of each page you want to whitelist on a new line. For example:" }, + "html_options_whitelist_helptext2": { "message": "You can specify part of the url instead to whitelist multiple sites in one go" }, + "html_options_whitelist_helptext3": { "message": "You can also specify regular expressions by enclosing the text in forward slashes" }, + "html_options_cancel": { "message": "Cancel" }, + "html_options_save_settings": { "message": "Save settings" }, + + // Dropdown menu from button in the address bar + "html_popup_normal": { "message": "Tab will be suspended" }, + "html_popup_suspend_tab": { "message": "Suspend this tab" }, + "html_popup_dont_suspend_now": { "message": "Don't suspend for now" }, + "html_popup_never_suspend_site": { "message": "Never suspend this site" }, + "html_popup_suspend_other_tabs": { "message": "Suspend other tabs" }, + "html_popup_unsuspend_all_tabs": { "message": "Unsuspend all tabs" }, + "html_popup_suspend_selected_tabs": { "message": "Suspend selected tabs" }, + "html_popup_unsuspend_selected_tabs": { "message": "Unsuspend selected tabs" }, + "html_popup_settings": { "message": "Settings" }, + + // Profiler page + "html_profiler_title": { "message": "Profiler" }, + "html_profiler_reload": { "message": "reload" }, + "html_profiler_table_title": { "message": "Title" }, + "html_profiler_table_time_to_suspend": { "message": "Time to suspend" }, + "html_profiler_table_status": { "message": "Status" }, + + // Recovery page (to recover from a crashed session) + "html_recovery_title": { "message": "Recovery" }, + "html_recovery_ruh_roh": { "message": "Ruh roh!" }, + "html_recovery_description_line1": { "message": "Looks like you're recovering from an extension crash." }, + "html_recovery_description_line2": { "message": "Your suspended tabs may have crashed or disappeared." }, + "html_recovery_restore_tabs_automatically": { "message": "Restore tabs automatically" }, + "html_recovery_go_to_session_manager": { "message": "Go to session manager" }, + "html_recovery_important": { "message": "Important!" }, + "html_recovery_important_message": { "message": "You currently have screen capturing turned on. If this extension is repeatedly crashing it is recommended you disable this option." }, + "html_recovery_disable_screen_capturing": { "message": "Turn off screen capturing" }, + "html_recovery_tabs_to_restore": { "message": "Tabs to restore" }, + + // Keyboard shortcuts page + "html_shortcuts_title": { "message": "Keyboard shortcuts" }, + "html_shortcuts_keyboard_shortcuts": { "message": "Keyboard shortcuts" }, + "html_shortcuts_remap_keys": { "message": "Remap keys" }, + + // Sidebar from the configuration section (common to all settings) + "html_sidebar_general_settings": { "message": "General settings" }, + "html_sidebar_session_management": { "message": "Session management" }, + "html_sidebar_shortcuts": { "message": "Keyboard shortcuts" }, + "html_sidebar_support": { "message": "Support" }, + + // Success page (after recovering from a crashed session) + "html_success_title": { "message": "Recovery" }, + "html_success_great_success": { "message": "Great success!" }, + "html_success_all_tabs_restored": { "message": "All your tabs have been restored." }, + "html_success_goto_advanced_prefix": { "message": "For advanced session management, visit the" }, + "html_success_goto_advanced_link_name": { "message": "session management" }, + "html_success_goto_advanced_suffix": { "message": "page" }, + + // Suspended page + "html_suspended_title": { "message": "Suspended Tab" }, + "html_suspended_tab_suspended": { "message": "Tab suspended" }, + "html_suspended_click_to_reload": { "message": "Click to reload" }, + "html_suspended_donation_question": { "message": "Does this extension make you happy?" }, + + // Updated page + "html_update_title": { "message": "Update" }, + "html_update_great_suspender_updated": { "message": "The Great Suspender has been updated" }, + "html_update_bugs_squashed_title": { "message": "Bugs squashed" }, + "html_update_bugs_squashed_line1": { "message": "This new version fixes the bug caused by the new chrome release that caused tabs to change the the wrong url when they were suspended. Sorry for such a terrible bug and that the fix was a long time coming." }, + "html_update_bugs_squashed_line2": { "message": "The 'suspend other tabs' option will now NOT suspend the currently active tab." }, + "html_update_bugs_squashed_line3": { "message": "Browsing in incognito mode will no longer bring up the welcome tab every time." }, + "html_update_whats_new_title": { "message": "What's new?" }, + "html_update_whats_new_line1": { "message": "This version includes light and dark themes. Try switching to the dark theme when using chrome at night to go easy on your eyes." }, + "html_update_whats_new_line2": { "message": "The extension now supports actions on multiple selected tabs. If you select multiple tabs in chrome, you will have some new options appear in the pop-up menu to allow you to suspend / unsuspend all selected tabs" }, + "html_update_whats_new_line3": { "message": "The new improved whitelist now supports regular expressions. For the programming-minded only!" }, + "html_update_whats_new_line4_prefix": { "message": "You can check it all out in the" }, + "html_update_whats_new_line4_linkname": { "message": "settings" }, + "html_update_whats_new_line4_suffix": { "message": "page." }, + "html_update_problems_title": { "message": "Problems with the update?" }, + "html_update_problems_line1": { "message": "If you are experiencing a loss of tabs due to this update, try going to the session management page. You will find a list of all your recently suspended tabs and should be able to recover them from here." }, + "html_update_problems_line2": { "message": "If losing your tabs has made you extremely upset and you want to uninstall this extension: fair enough - but before you do, please go through the session recovery process first and make sure all your tabs are recovered and unsuspended before you uninstall." }, + "html_update_problems_line3": { "message": "Thanks for using" }, + + // Welcome page + "html_welcome_title": { "message": "Welcome" }, + "html_welcome_text_line1": { "message": "Thanks for trying" }, + "html_welcome_text_line2": { "message": "Hopefully it will make you a happier and more productive human." }, + "html_welcome_get_started_prefix": { "message": "Get started by checking out the" }, + "html_welcome_get_started_linkname": { "message": "settings" }, + "html_welcome_get_started_suffix": { "message": "page." }, + + // Contextual menu (Javascript code) + "js_background_open_link_in_suspended_tab": { "message": "Open link in new suspended tab" }, + "js_background_suspend_tab": { "message": "Suspend Tab" }, + "js_background_dont_suspend_now": { "message": "Don't suspend for now" }, + "js_background_never_suspend_site": { "message": "Never suspend this site" }, + "js_background_suspend_all_tabs": { "message": "Suspend All Tabs" }, + "js_background_unsuspend_all_tabs": { "message": "Unsuspend All Tabs" }, + "js_background_settings": { "message": "Settings" }, + + // Dropdown menu from button in the address bar (Javascript code) + "js_popup_normal": { "message": "Tab will be suspended automatically." }, + "js_popup_special": { "message": "Tab cannot be suspended." }, + "js_popup_suspended": { "message": "Tab suspended." }, + "js_popup_suspended_unsuspended": { "message": "Unsuspend" }, + "js_popup_whitelisted": { "message": "Site whitelisted." }, + "js_popup_whitelisted_remove": { "message": "Remove from whitelist" }, + "js_popup_audible": { "message": "Tab is playing audio." }, + "js_popup_form_input": { "message": "Tab is receiving form input." }, + "js_popup_form_input_unpause": { "message": "Unpause" }, + "js_popup_pinned": { "message": "Tab has been pinned." }, + "js_popup_temp_whitelist": { "message": "Tab suspension paused.Unpause" }, + "js_popup_temp_whitelist_unpause": { "message": "Unpause" }, + "js_popup_never": { "message": "Automatic tab suspension disabled." }, + "js_popup_no_connectivity": { "message": "No network connection." }, + "js_popup_charging": { "message": "Connected to power source." }, + + // Session management page (Javascript code) + "js_sessionUtils_delete": { "message": "resuspend" }, + "js_sessionUtils_export": { "message": "export" }, + "js_sessionUtils_reload": { "message": "reload" }, + "js_sessionUtils_resuspend": { "message": "resuspend" }, + "js_sessionUtils_save": { "message": "save" }, + + // Suspended page (Javascript code) + "js_suspended_add_URL_to": { "message": "Add $url$ to whitelist", "placeholders": { "url": { "content": "$1" } } + } +} diff --git a/src/about.html b/src/about.html index da859544..21ce4719 100644 --- a/src/about.html +++ b/src/about.html @@ -2,7 +2,7 @@ - The Great Suspender - Support + __MSG_ext_extension_name__ - __MSG_html_about_title__ @@ -10,41 +10,41 @@
-

The Great Suspender

+

__MSG_ext_extension_name__

-

The Great Suspender

+

__MSG_ext_extension_name__

-

Email your feedback to greatsuspender@gmail.com.
- Please report issues to the github project.

+

__MSG_html_about_email_feedback_to__ greatsuspender@gmail.com.
+ __MSG_html_about_report_issues_to__ __MSG_html_about_the_github_project__.


-

This extension uses the html2canvas library written by Niklas von Hertzen.
- It also uses the indexedDb wrapper db.js written by Aaron Powell.
- Thank you also to browserstack for providing free chrome testing tools.

+

__MSG_html_about_html2canvas_prefix__ html2canvas __MSG_html_about_html2canvas_suffix__
+ __MSG_html_about_indexedDb_prefix__ db.js __MSG_html_about_indexedDb_suffix__
+ __MSG_html_about_browserstack_prefix__ browserstack __MSG_html_about_browserstack_suffix__


-

If you like The Great Suspender & you're feeling generous...

+

__MSG_html_about_feeling_generous__

- Already donated? + __MSG_html_about_already_donated__
@@ -61,4 +61,5 @@

The Great Suspender

+ diff --git a/src/history.html b/src/history.html index 135d5e37..45309c17 100644 --- a/src/history.html +++ b/src/history.html @@ -1,7 +1,7 @@ - The Great Suspender - Session management + __MSG_ext_extension_name__ - __MSG_html_history_title__ @@ -11,42 +11,43 @@
-

The Great Suspender

+

__MSG_ext_extension_name__

-

Current session:

+

__MSG_html_history_current_session__:

-

Recent sessions:

+

__MSG_html_history_recent_sessions__:

-

Saved sessions:

+

__MSG_html_history_saved_sessions__:



- Clear tab history + __MSG_html_history_clear_tab_history__
- \ No newline at end of file + + diff --git a/src/js/background.js b/src/js/background.js index 125fc8af..d4d421bf 100644 --- a/src/js/background.js +++ b/src/js/background.js @@ -817,7 +817,7 @@ var tgs = (function () { //Open tab suspended contextMenuItems.push(chrome.contextMenus.create({ - title: "Open link in new suspended tab", + title: chrome.i18n.getMessage('js_background_open_link_in_suspended_tab'), contexts:["link"], onclick: function (info, tab) { openLinkInSuspendedTab(tab, info.linkUrl); @@ -833,42 +833,42 @@ var tgs = (function () { //Suspend present tab contextMenuItems.push(chrome.contextMenus.create({ - title: "Suspend Tab", + title: chrome.i18n.getMessage('js_background_suspend_tab'), contexts: allContexts, onclick: suspendHighlightedTab })); //Add present tab to temporary whitelist contextMenuItems.push(chrome.contextMenus.create({ - title: "Don't suspend for now", + title: chrome.i18n.getMessage('js_background_dont_suspend_now'), contexts: allContexts, onclick: temporarilyWhitelistHighlightedTab })); //Add present tab to permenant whitelist contextMenuItems.push(chrome.contextMenus.create({ - title: "Never suspend this site", + title: chrome.i18n.getMessage('js_background_never_suspend_site'), contexts: allContexts, onclick: whitelistHighlightedTab })); //Suspend all the tabs contextMenuItems.push(chrome.contextMenus.create({ - title: "Suspend All Tabs", + title: chrome.i18n.getMessage('js_background_suspend_all_tabs'), contexts: allContexts, onclick: suspendAllTabs })); //Unsuspend all the tabs contextMenuItems.push(chrome.contextMenus.create({ - title: "Unsuspend All Tabs", + title: chrome.i18n.getMessage('js_background_unsuspend_all_tabs'), contexts: allContexts, onclick: unsuspendAllTabs })); //Open settings page contextMenuItems.push(chrome.contextMenus.create({ - title: "Settings", + title: chrome.i18n.getMessage('js_background_settings'), contexts: allContexts, onclick: function(e) { chrome.tabs.create({ diff --git a/src/js/chrome-i18n.js b/src/js/chrome-i18n.js new file mode 100644 index 00000000..430a4346 --- /dev/null +++ b/src/js/chrome-i18n.js @@ -0,0 +1,21 @@ +// Code taken from http://stackoverflow.com/posts/25612056/revisions + +(function (document) { + //Localize by replacing __MSG_***__ meta tags + var objects = document.getElementsByTagName('html'); + for (var j = 0; j < objects.length; j++) + { + var obj = objects[j]; + + var valStrH = obj.innerHTML.toString(); + var valNewH = valStrH.replace(/__MSG_(\w+)__/g, function(match, v1) + { + return v1 ? chrome.i18n.getMessage(v1) : ""; + }); + + if(valNewH != valStrH) + { + obj.innerHTML = valNewH; + } + } +}(document)); diff --git a/src/js/popup.js b/src/js/popup.js index 5af5466c..90dd58f9 100644 --- a/src/js/popup.js +++ b/src/js/popup.js @@ -10,51 +10,55 @@ message; if (status === 'normal') { - statusDetail = 'Tab will be suspended automatically.'; + statusDetail = chrome.i18n.getMessage('js_popup_normal'); statusIconClass = 'fa fa-clock-o'; } else if (status === 'special') { - statusDetail = 'Tab cannot be suspended.'; + statusDetail = chrome.i18n.getMessage('js_popup_special'); statusIconClass = 'fa fa-remove'; } else if (status === 'suspended') { - statusDetail = 'Tab suspended. Unsuspend'; + statusDetail = chrome.i18n.getMessage('js_popup_suspended') + + " " + chrome.i18n.getMessage('js_popup_suspended_unsuspend') + ""; statusIconClass = 'fa fa-pause'; message = 'unsuspendOne'; } else if (status === 'whitelisted') { - statusDetail = 'Site whitelisted. Remove from whitelist'; + statusDetail = chrome.i18n.getMessage('js_popup_whitelisted') + + " " + chrome.i18n.getMessage('js_popup_whitelisted_remove') + ""; statusIconClass = 'fa fa-check'; message = 'removeWhitelist'; } else if (status === 'audible') { - statusDetail = 'Tab is playing audio.'; + statusDetail = chrome.i18n.getMessage('js_popup_audible'); statusIconClass = 'fa fa-volume-up'; } else if (status === 'formInput') { - statusDetail = 'Tab is receiving form input. Unpause'; + statusDetail = chrome.i18n.getMessage('js_popup_form_input') + + " " + chrome.i18n.getMessage('js_popup_form_input_unpause') + ""; statusIconClass = 'fa fa-edit'; message = 'undoTempWhitelist'; } else if (status === 'pinned') { - statusDetail = 'Tab has been pinned.'; + statusDetail = chrome.i18n.getMessage('js_popup_pinned'); statusIconClass = 'fa fa-thumb-tack'; } else if (status === 'tempWhitelist') { - statusDetail = 'Tab suspension paused. Unpause'; + statusDetail = chrome.i18n.getMessage('js_popup_temp_whitelist') + + " " + chrome.i18n.getMessage('js_popup_temp_whitelist_unpause') + ""; statusIconClass = 'fa fa-pause'; message = 'undoTempWhitelist'; } else if (status === 'never') { - statusDetail = 'Automatic tab suspension disabled.'; + statusDetail = chrome.i18n.getMessage('js_popup_never'); statusIconClass = 'fa fa-ban'; } else if (status === 'noConnectivity') { - statusDetail = 'No network connection.'; + statusDetail = chrome.i18n.getMessage('js_popup_no_connectivity'); statusIconClass = 'fa fa-pause'; } else if (status === 'charging') { - statusDetail = 'Connected to power source.'; + statusDetail = chrome.i18n.getMessage('js_popup_charging'); statusIconClass = 'fa fa-pause'; } diff --git a/src/js/sessionUtils.js b/src/js/sessionUtils.js index 70d023f0..572188b5 100644 --- a/src/js/sessionUtils.js +++ b/src/js/sessionUtils.js @@ -203,7 +203,7 @@ var sessionUtils = (function () { sessionSave = createEl('a', { 'class': 'groupLink', 'href': '#' - }, 'save'); + }, chrome.i18n.getMessage('js_sessionUtils_save')); sessionSave.onclick = function () { saveSession(session.sessionId); }; @@ -213,7 +213,7 @@ var sessionUtils = (function () { sessionDelete = createEl('a', { 'class': 'groupLink', 'href': '#' - }, 'delete'); + }, chrome.i18n.getMessage('js_sessionUtils_delete')); sessionDelete.onclick = function () { deleteSession(session.sessionId); }; @@ -222,7 +222,7 @@ var sessionUtils = (function () { sessionExport = createEl('a', { 'class': 'groupLink', 'href': '#' - }, 'export'); + }, chrome.i18n.getMessage('js_sessionUtils_export')); sessionExport.onclick = function () { exportSession(session.sessionId); }; @@ -230,13 +230,13 @@ var sessionUtils = (function () { windowResuspend = createEl('a', { 'class': 'groupLink', 'href': '#' - }, 'resuspend'); + }, chrome.i18n.getMessage('js_sessionUtils_resuspend')); windowResuspend.onclick = reloadTabs(sessionDiv, true); windowReload = createEl('a', { 'class': 'groupLink', 'href': '#' - }, 'reload'); + }, chrome.i18n.getMessage('js_sessionUtils_reload')); windowReload.onclick = reloadTabs(sessionDiv, false); sessionContainer = createEl('div'); @@ -269,13 +269,13 @@ var sessionUtils = (function () { groupUnsuspendCurrent = createEl('a', { 'class': 'groupLink', 'href': '#' - }, 'resuspend'); + }, chrome.i18n.getMessage('js_sessionUtils_resuspend')); groupUnsuspendCurrent.onclick = reloadTabs(groupHeading, true); groupUnsuspendNew = createEl('a', { 'class': 'groupLink', 'href': '#' - }, 'reload'); + }, chrome.i18n.getMessage('js_sessionUtils_reload')); groupUnsuspendNew.onclick = reloadTabs(groupHeading, false); groupHeading.appendChild(windowHeading); diff --git a/src/js/suspended.js b/src/js/suspended.js index 1bf2036d..5120ae55 100644 --- a/src/js/suspended.js +++ b/src/js/suspended.js @@ -108,7 +108,7 @@ chrome.tabs.getCurrent(function(tab) { whitelistEl.style.display = 'none'; } else { - whitelistEl.innerText = 'Add ' + rootUrlStr + ' to whitelist'; + whitelistEl.innerText = chrome.i18n.getMessage('js_suspended_add_URL_to', rootUrlStr); whitelistEl.setAttribute('data-text', rootUrlStr); } }); diff --git a/src/manifest.json b/src/manifest.json index 0d92aad8..d8fa88f3 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,7 +1,8 @@ { - "name": "The Great Suspender", - "description": "Automatically suspends unused tabs to free up system resources", + "name": "__MSG_ext_extension_name__", + "description": "__MSG_ext_extension_description__", "version": "6.30", + "default_locale": "en", "permissions": [ "tabs", "storage", @@ -24,7 +25,7 @@ } ], "browser_action": { - "default_title": "The Great Suspender", + "default_title": "__MSG_ext_default_title__", "default_icon": "img/icon19.png", "default_popup": "popup.html" }, @@ -42,24 +43,24 @@ "commands": { "1-suspend-tab": { - "description": "Suspend active tab", + "description": "__MSG_ext_cmd_suspend_tab_description__", "suggested_key": { "default": "Ctrl+Shift+S" } }, "2-unsuspend-tab": { - "description": "Unsuspend active tab", + "description": "__MSG_ext_cmd_unsuspend_tab_description__", "suggested_key": { "default": "Ctrl+Shift+U" } }, "3-suspend-active-window": { - "description": "Suspend all tabs in active window" + "description": "__MSG_ext_cmd_suspend_active_window_description__" }, "4-unsuspend-active-window": { - "description": "Unsuspend all tabs in active window" + "description": "__MSG_ext_cmd_unsuspend_active_window_description__" }, "5-suspend-all-windows": { - "description": "Suspend all tabs in all windows" + "description": "__MSG_ext_cmd_suspend_all_windows_description__" }, "6-unsuspend-all-windows": { - "description": "Unsuspend all tabs in all windows" + "description": "__MSG_ext_cmd_unsuspend_all_windows_description__" } } } diff --git a/src/notice.html b/src/notice.html index b93d5014..d227ad2f 100644 --- a/src/notice.html +++ b/src/notice.html @@ -1,7 +1,7 @@ - The Great Suspender - Notice + __MSG_ext_extension_name__ - __MSG_html_notice_title___ @@ -14,13 +14,13 @@
-

Important notice from The Great Suspender

+

__MSG_html_notice_important_notice__



- + diff --git a/src/options.html b/src/options.html index c6293eb9..a7020ece 100644 --- a/src/options.html +++ b/src/options.html @@ -3,7 +3,7 @@ - The Great Suspender - Settings + __MSG_ext_extension_name__ - __MSG_html_options_title__ @@ -11,108 +11,108 @@
-

The Great Suspender

+

__MSG_ext_extension_name__

-

Suspend tab settings

+

__MSG_html_options_suspend_title__

- +
- +
- +
- +
You must have chrome version 45 or higher to use this feature.
- +
- +
- +
- +
- +
- +
-
The screen capturing feature is experimental and can cause significant CPU usage. -
If you notice strange behaviour such as tabs taking a long time to suspend, or chrome crashing unexpectedly, try turning this feature off.
+
__MSG_html_options_suspend_preview_note_line1__ +
__MSG_html_options_suspend_preview_note_line2__
-

Whitelist  +

__MSG_html_options_whitelist_title__  @@ -122,12 +122,13 @@

Whitelist 
- Cancel - Save settings + __MSG_html_options_cancel__ + __MSG_html_options_save_settings__

+ diff --git a/src/popup.html b/src/popup.html index a1dab605..715821b3 100644 --- a/src/popup.html +++ b/src/popup.html @@ -9,43 +9,44 @@
- \ No newline at end of file + + diff --git a/src/profiler.html b/src/profiler.html index 8e2cc69c..383430de 100644 --- a/src/profiler.html +++ b/src/profiler.html @@ -1,7 +1,7 @@ -The Great Suspender :: Profiler +__MSG_ext_extension_name__ - __MSG_html_profiler_title__ @@ -11,19 +11,20 @@ - reload + __MSG_html_profiler_reload__ - - - + + +
WinId TabIdTitleTime to suspendStatus__MSG_html_profiler_table_title____MSG_html_profiler_table_time_to_suspend____MSG_html_profiler_table_status__
- \ No newline at end of file + + diff --git a/src/recovery.html b/src/recovery.html index b189f225..1d600b28 100644 --- a/src/recovery.html +++ b/src/recovery.html @@ -1,7 +1,7 @@ - The Great Suspender - Recovery + __MSG_ext_extension_name__ - __MSG_html_recovery_title__ @@ -15,28 +15,28 @@ -

Ruh roh!

-

Looks like you're recovering from an extension crash.
- Your suspended tabs may have crashed or disappeared.

+

__MSG_html_recovery_ruh_roh__

+

__MSG_html_recovery_description_line1__
+ __MSG_html_recovery_description_line2__

- +    - +
- Important! -

You currently have screen capturing turned on. If this extension is repeatedly crashing it is recommended you disable this option.

- Turn off screen capturing + __MSG_html_recovery_important__ +

__MSG_html_recovery_important_message__

+ __MSG_html_recovery_disable_screen_capturing__

-

Tabs to restore:

+

__MSG_html_recovery_tabs_to_restore__:

- + diff --git a/src/shortcuts.html b/src/shortcuts.html index 0c22709c..03cb2171 100644 --- a/src/shortcuts.html +++ b/src/shortcuts.html @@ -2,7 +2,7 @@ - The Great Suspender - Keyboard shortcuts + __MSG_ext_extension_name__ - __MSG_html_shortcuts_title__ @@ -10,24 +10,24 @@
-

The Great Suspender

+

__MSG_ext_extension_name__

-

Keyboard shortcuts

+

__MSG_html_shortcuts_keyboard_shortcuts__


- Remap keys + __MSG_html_shortcuts_remap_keys__
@@ -35,4 +35,5 @@

Keyboard shortcuts

+ diff --git a/src/success.html b/src/success.html index 6d42fb53..6e70b86c 100644 --- a/src/success.html +++ b/src/success.html @@ -1,7 +1,7 @@ - The Great Suspender - Recovery + __MSG_ext_extension_name__ - __MSG_html_success_title__ @@ -13,14 +13,14 @@ -

Great success!

+

__MSG_html_success_great_success__


-

All your tabs have been restored.

-

For advanced session management, visit the session management page

+

__MSG_html_success_all_tabs_restored__

+

__MSG_html_success_goto_advanced_prefix__ __MSG_html_success_goto_advanced_link_name__ __MSG_html_success_goto_advanced_suffix__


- + diff --git a/src/suspended.html b/src/suspended.html index 7e572980..28ebf166 100644 --- a/src/suspended.html +++ b/src/suspended.html @@ -1,7 +1,7 @@ - Suspended Tab + __MSG_ext_extension_name__ - __MSG_html_suspended_title__ @@ -17,8 +17,8 @@
-

Tab suspended

-

Click to reload

+

__MSG_html_suspended_tab_suspended__

+

__MSG_html_suspended_click_to_reload__

@@ -31,10 +31,11 @@

Click to reload

- \ No newline at end of file + + diff --git a/src/update.html b/src/update.html index e0a12ad3..b84379b1 100644 --- a/src/update.html +++ b/src/update.html @@ -1,7 +1,7 @@ - The Great Suspender - Update + __MSG_ext_extension_name__ - __MSG_html_update_title__ @@ -13,32 +13,30 @@ -

The Great Suspender has been updated

+

__MSG_html_update_great_suspender_updated__


-

Bugs squashed

-

This new version fixes the bug caused by the new chrome release that caused tabs to change the the wrong url when they were suspended. - Sorry for such a terrible bug and that the fix was a long time coming.

-

The 'suspend other tabs' option will now NOT suspend the currently active tab.

-

Browsing in incognito mode will no longer bring up the welcome tab every time.

+

__MSG_html_update_bugs_squashed_title__

+

__MSG_html_update_bugs_squashed_line1__

+

__MSG_html_update_bugs_squashed_line2__

+

__MSG_html_update_bugs_squashed_line3__

-

What's new?

-

This version includes light and dark themes. Try switching to the dark theme when using chrome at night to go easy on your eyes.

-

The extension now supports actions on multiple selected tabs. If you select multiple tabs in chrome, you will have some new options appear - in the pop-up menu to allow you to suspend / unsuspend all selected tabs

-

The new improved whitelist now supports regular expressions. For the programming-minded only!

-

You can check it all out in the settings page.

+

__MSG_html_update_whats_new_title__

+

__MSG_html_update_whats_new_line1__

+

__MSG_html_update_whats_new_line2__

+

__MSG_html_update_whats_new_line3__

+

__MSG_html_update_whats_new_line4_prefix__ __MSG_html_update_whats_new_line4_linkname__ __MSG_html_update_whats_new_line4_suffix__

-

Problems with the update?

-

If you are experiencing a loss of tabs due to this update, try going to the session management page. You will find a list of all your recently suspended tabs and should be able to recover them from here.

+

__MSG_html_update_problems_title__

+

__MSG_html_update_problems_line1__

-

If losing your tabs has made you extremely upset and you want to uninstall this extension: fair enough - but before you do, please go through the session recovery process first and make sure all your tabs are recovered and unsuspended before you uninstall.

+

__MSG_html_update_problems_line2__

-

Thanks for using The Great Suspender!

+

__MSG_html_update_problems_line3__ __MSG_ext_extension_name__!

- + diff --git a/src/welcome.html b/src/welcome.html index 3f4e5ccb..7cb3447c 100644 --- a/src/welcome.html +++ b/src/welcome.html @@ -1,7 +1,7 @@ - The Great Suspender - Welcome + __MSG_ext_extension_name__ - __MSG_html_welcome_title__ @@ -13,13 +13,13 @@ -

Thanks for trying
The Great Suspender

-

Hopefully it will make you a happier and more productive human.

+

__MSG_html_welcome_text_line1__
__MSG_ext_extension_name__

+

__MSG_html_welcome_text_line2__


-

Get started by checking out the settings page.

+

__MSG_html_welcome_get_started_prefix__ __MSG_html_welcome_get_started_linkname__ __MSG_html_welcome_get_started_suffix__


- +