OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @fileoverview 'settings-languages' provides convenient access to | 6 * @fileoverview 'settings-languages' provides convenient access to |
7 * Chrome's language and input method settings. | 7 * Chrome's language and input method settings. |
8 * | 8 * |
9 * Instances of this element have a 'languages' property, which reflects the | 9 * Instances of this element have a 'languages' property, which reflects the |
10 * current language settings. The 'languages' property is read-only, meaning | 10 * current language settings. The 'languages' property is read-only, meaning |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 * Disables the language. | 340 * Disables the language. |
341 * @param {string} languageCode | 341 * @param {string} languageCode |
342 */ | 342 */ |
343 disableLanguage: function(languageCode) { | 343 disableLanguage: function(languageCode) { |
344 if (!CrSettingsPrefs.isInitialized) | 344 if (!CrSettingsPrefs.isInitialized) |
345 return; | 345 return; |
346 | 346 |
347 assert(this.canDisableLanguage(languageCode)); | 347 assert(this.canDisableLanguage(languageCode)); |
348 | 348 |
349 // Remove the language from spell check. | 349 // Remove the language from spell check. |
350 this.arrayDelete('prefs.spellcheck.dictionaries.value', languageCode); | 350 this.deletePrefListItem('spellcheck.dictionaries', languageCode); |
351 | 351 |
352 // Remove the language from preferred languages. | 352 // Remove the language from preferred languages. |
353 var languageCodes = | 353 var languageCodes = |
354 this.getPref(preferredLanguagesPrefName).value.split(','); | 354 this.getPref(preferredLanguagesPrefName).value.split(','); |
355 var languageIndex = languageCodes.indexOf(languageCode); | 355 var languageIndex = languageCodes.indexOf(languageCode); |
356 if (languageIndex == -1) | 356 if (languageIndex == -1) |
357 return; | 357 return; |
358 languageCodes.splice(languageIndex, 1); | 358 languageCodes.splice(languageIndex, 1); |
359 chrome.languageSettingsPrivate.setLanguageList(languageCodes); | 359 chrome.languageSettingsPrivate.setLanguageList(languageCodes); |
360 this.enableTranslateLanguage(languageCode); | 360 this.enableTranslateLanguage(languageCode); |
(...skipping 17 matching lines...) Expand all Loading... |
378 return true; | 378 return true; |
379 }, | 379 }, |
380 | 380 |
381 /** | 381 /** |
382 * Enables translate for the given language by removing the translate | 382 * Enables translate for the given language by removing the translate |
383 * language from the blocked languages preference. | 383 * language from the blocked languages preference. |
384 * @param {string} languageCode | 384 * @param {string} languageCode |
385 */ | 385 */ |
386 enableTranslateLanguage: function(languageCode) { | 386 enableTranslateLanguage: function(languageCode) { |
387 languageCode = this.convertLanguageCodeForTranslate(languageCode); | 387 languageCode = this.convertLanguageCodeForTranslate(languageCode); |
388 this.arrayDelete('prefs.translate_blocked_languages.value', languageCode); | 388 this.deletePrefListItem('translate_blocked_languages', languageCode); |
389 }, | 389 }, |
390 | 390 |
391 /** | 391 /** |
392 * Disables translate for the given language by adding the translate | 392 * Disables translate for the given language by adding the translate |
393 * language to the blocked languages preference. | 393 * language to the blocked languages preference. |
394 * @param {string} languageCode | 394 * @param {string} languageCode |
395 */ | 395 */ |
396 disableTranslateLanguage: function(languageCode) { | 396 disableTranslateLanguage: function(languageCode) { |
397 languageCode = this.convertLanguageCodeForTranslate(languageCode); | 397 this.appendPrefListItem('translate_blocked_languages', |
398 if (this.getPref('translate_blocked_languages').value | 398 this.convertLanguageCodeForTranslate(languageCode)); |
399 .indexOf(languageCode) == -1) { | |
400 this.push('prefs.translate_blocked_languages.value', languageCode); | |
401 } | |
402 }, | 399 }, |
403 | 400 |
404 /** | 401 /** |
405 * Enables or disables spell check for the given language. | 402 * Enables or disables spell check for the given language. |
406 * @param {string} languageCode | 403 * @param {string} languageCode |
407 * @param {boolean} enable | 404 * @param {boolean} enable |
408 */ | 405 */ |
409 toggleSpellCheck: function(languageCode, enable) { | 406 toggleSpellCheck: function(languageCode, enable) { |
410 if (!this.initialized_) | 407 if (!this.initialized_) |
411 return; | 408 return; |
412 | 409 |
413 if (enable) { | 410 if (enable) { |
414 var spellCheckPref = this.getPref('spellcheck.dictionaries'); | 411 var spellCheckPref = this.getPref('spellcheck.dictionaries'); |
415 if (spellCheckPref.value.indexOf(languageCode) == -1) | 412 this.appendPrefListItem('spellcheck.dictionaries', languageCode); |
416 this.push('prefs.spellcheck.dictionaries.value', languageCode); | |
417 } else { | 413 } else { |
418 this.arrayDelete('prefs.spellcheck.dictionaries.value', languageCode); | 414 this.deletePrefListItem('spellcheck.dictionaries', languageCode); |
419 } | 415 } |
420 }, | 416 }, |
421 | 417 |
422 /** | 418 /** |
423 * Converts the language code for translate. There are some differences | 419 * Converts the language code for translate. There are some differences |
424 * between the language set the Translate server uses and that for | 420 * between the language set the Translate server uses and that for |
425 * Accept-Language. | 421 * Accept-Language. |
426 * @param {string} languageCode | 422 * @param {string} languageCode |
427 * @return {string} The converted language code. | 423 * @return {string} The converted language code. |
428 */ | 424 */ |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
503 * manually sending a change notification for our 'languages' property (since | 499 * manually sending a change notification for our 'languages' property (since |
504 * it's the same object as the singleton's property, but isn't bound by | 500 * it's the same object as the singleton's property, but isn't bound by |
505 * Polymer). | 501 * Polymer). |
506 * @private | 502 * @private |
507 */ | 503 */ |
508 singletonLanguagesChanged_: function(e) { | 504 singletonLanguagesChanged_: function(e) { |
509 // Forward the change notification to the host. | 505 // Forward the change notification to the host. |
510 this.fire(e.type, e.detail, {bubbles: false}); | 506 this.fire(e.type, e.detail, {bubbles: false}); |
511 }, | 507 }, |
512 }); | 508 }); |
OLD | NEW |