Commit e82b77d0 authored by John Lee's avatar John Lee Committed by Commit Bot

Settings WebUI: Add text explaining why spell check may be disabled

https://i.imgur.com/cmvUEgk.png

Bug: 961387
Change-Id: Id82ad7e7411d6ac147984d9db87109873cc2f08f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1602449
Commit-Queue: John Lee <johntlee@chromium.org>
Reviewed-by: default avatarHector Carmona <hcarmona@chromium.org>
Cr-Commit-Position: refs/heads/master@{#658701}
parent ec7bf451
...@@ -2557,6 +2557,9 @@ ...@@ -2557,6 +2557,9 @@
Uses the same spell checker that’s used in Google search. Text you type in the browser is sent to Google. Uses the same spell checker that’s used in Google search. Text you type in the browser is sent to Google.
</message> </message>
<if expr="not is_macosx"> <if expr="not is_macosx">
<message name="IDS_SETTING_LANGUAGES_SPELL_CHECK_DISABLED_REASON" desc="Text that indicates to the user that spell check options are disabled because none of the languages they have added have spell check support.">
Spell check isn’t supported for the languages you selected
</message>
<message name="IDS_SETTINGS_LANGUAGES_SPELL_CHECK_LANGUAGES_LIST_TITLE" desc="Title for the list of languages that support spell check, from which users can enable or disable spell check for."> <message name="IDS_SETTINGS_LANGUAGES_SPELL_CHECK_LANGUAGES_LIST_TITLE" desc="Title for the list of languages that support spell check, from which users can enable or disable spell check for.">
Use spell check for Use spell check for
</message> </message>
......
...@@ -38,6 +38,7 @@ js_library("languages") { ...@@ -38,6 +38,7 @@ js_library("languages") {
"../prefs:prefs_types", "../prefs:prefs_types",
"//ui/webui/resources/js:assert", "//ui/webui/resources/js:assert",
"//ui/webui/resources/js:cr", "//ui/webui/resources/js:cr",
"//ui/webui/resources/js:i18n_behavior",
"//ui/webui/resources/js:promise_resolver", "//ui/webui/resources/js:promise_resolver",
] ]
externs_list = [ externs_list = [
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
<link rel="import" href="chrome://resources/html/assert.html"> <link rel="import" href="chrome://resources/html/assert.html">
<link rel="import" href="chrome://resources/html/cr.html"> <link rel="import" href="chrome://resources/html/cr.html">
<link rel="import" href="chrome://resources/html/cr/ui/focus_without_ink.html"> <link rel="import" href="chrome://resources/html/cr/ui/focus_without_ink.html">
<link rel="import" href="chrome://resources/html/i18n_behavior.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-collapse/iron-collapse.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-collapse/iron-collapse.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html"> <link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
<link rel="import" href="chrome://resources/cr_elements/cr_action_menu/cr_action_menu.html"> <link rel="import" href="chrome://resources/cr_elements/cr_action_menu/cr_action_menu.html">
...@@ -293,6 +294,7 @@ ...@@ -293,6 +294,7 @@
<settings-toggle-button <settings-toggle-button
id="enableSpellcheckingToggle" id="enableSpellcheckingToggle"
label="$i18n{spellCheckTitle}" label="$i18n{spellCheckTitle}"
sub-label="[[getSpellCheckSubLabel_(spellCheckLanguages_)]]"
pref="{{prefs.browser.enable_spellchecking}}" pref="{{prefs.browser.enable_spellchecking}}"
disabled="[[!spellCheckLanguages_.length]]"> disabled="[[!spellCheckLanguages_.length]]">
</settings-toggle-button> </settings-toggle-button>
......
...@@ -27,6 +27,7 @@ Polymer({ ...@@ -27,6 +27,7 @@ Polymer({
is: 'settings-languages-page', is: 'settings-languages-page',
behaviors: [ behaviors: [
I18nBehavior,
PrefsBehavior, PrefsBehavior,
], ],
...@@ -692,6 +693,20 @@ Polymer({ ...@@ -692,6 +693,20 @@ Polymer({
return ''; return '';
}, },
/**
* @return {string|undefined}
* @private
*/
getSpellCheckSubLabel_: function() {
// <if expr="not is_macosx">
if (this.spellCheckLanguages_.length === 0) {
return this.i18n('spellCheckDisabledReason');
}
// </if>
return undefined;
},
// <if expr="chromeos"> // <if expr="chromeos">
/** /**
* @param {string} id The input method ID. * @param {string} id The input method ID.
......
...@@ -1418,6 +1418,8 @@ void AddLanguagesStrings(content::WebUIDataSource* html_source) { ...@@ -1418,6 +1418,8 @@ void AddLanguagesStrings(content::WebUIDataSource* html_source) {
{"spellCheckEnhancedDescription", {"spellCheckEnhancedDescription",
IDS_SETTINGS_LANGUAGES_SPELL_CHECK_ENHANCED_DESCRIPTION}, IDS_SETTINGS_LANGUAGES_SPELL_CHECK_ENHANCED_DESCRIPTION},
#if !defined(OS_MACOSX) #if !defined(OS_MACOSX)
{"spellCheckDisabledReason",
IDS_SETTING_LANGUAGES_SPELL_CHECK_DISABLED_REASON},
{"spellCheckLanguagesListTitle", {"spellCheckLanguagesListTitle",
IDS_SETTINGS_LANGUAGES_SPELL_CHECK_LANGUAGES_LIST_TITLE}, IDS_SETTINGS_LANGUAGES_SPELL_CHECK_LANGUAGES_LIST_TITLE},
{"manageSpellCheck", IDS_SETTINGS_LANGUAGES_SPELL_CHECK_MANAGE}, {"manageSpellCheck", IDS_SETTINGS_LANGUAGES_SPELL_CHECK_MANAGE},
......
...@@ -659,9 +659,15 @@ cr.define('languages_page_tests', function() { ...@@ -659,9 +659,15 @@ cr.define('languages_page_tests', function() {
return; return;
} }
loadTimeData.overrideValues({
spellCheckDisabledReason: 'no languages!',
});
assertFalse(languagesPage.$.enableSpellcheckingToggle.disabled); assertFalse(languagesPage.$.enableSpellcheckingToggle.disabled);
assertTrue( assertTrue(
languageHelper.getPref('browser.enable_spellchecking').value); languageHelper.getPref('browser.enable_spellchecking').value);
assertEquals(
languagesPage.$.enableSpellcheckingToggle.subLabel, undefined);
// Empty out supported languages // Empty out supported languages
languageHelper.setPrefValue('intl.accept_languages', ''); languageHelper.setPrefValue('intl.accept_languages', '');
...@@ -672,6 +678,9 @@ cr.define('languages_page_tests', function() { ...@@ -672,6 +678,9 @@ cr.define('languages_page_tests', function() {
assertTrue(languagesPage.$.enableSpellcheckingToggle.disabled); assertTrue(languagesPage.$.enableSpellcheckingToggle.disabled);
assertFalse( assertFalse(
languageHelper.getPref('browser.enable_spellchecking').value); languageHelper.getPref('browser.enable_spellchecking').value);
assertEquals(
languagesPage.$.enableSpellcheckingToggle.subLabel,
'no languages!');
}); });
test('error handling', function() { test('error handling', function() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment