Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(390)

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/chromevox/messages/msgs.js

Issue 593133002: Refactor: remove a Chromevox abstract class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkcr
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 /** 6 /**
7 * @fileoverview A cvox.AbstractMsgs implementation for Chrome. 7 * @fileoverview Defines methods related to retrieving translated messages.
8 */ 8 */
9 9
10 goog.provide('cvox.ChromeMsgs'); 10 goog.provide('cvox.Msgs');
11 11
12 goog.require('cvox.AbstractMsgs'); 12 /**
13 goog.require('cvox.HostFactory'); 13 * @constructor
14 14 */
15 cvox.Msgs = function() {
16 };
15 17
16 18
17 /** 19 /**
18 * @constructor
19 * @extends {cvox.AbstractMsgs}
20 */
21 cvox.ChromeMsgs = function() {
22 cvox.AbstractMsgs.call(this);
23 };
24 goog.inherits(cvox.ChromeMsgs, cvox.AbstractMsgs);
25
26
27 /**
28 * The namespace for all Chromevox messages. 20 * The namespace for all Chromevox messages.
29 * @type {string} 21 * @type {string}
30 * @const 22 * @const
31 * @private 23 * @private
32 */ 24 */
33 cvox.ChromeMsgs.NAMESPACE_ = 'chromevox_'; 25 cvox.Msgs.NAMESPACE_ = 'chromevox_';
34 26
35 27
36 /** 28 /**
37 * Return the current locale. 29 * Return the current locale.
38 * @return {string} The locale. 30 * @return {string} The locale.
39 */ 31 */
40 cvox.ChromeMsgs.prototype.getLocale = function() { 32 cvox.Msgs.prototype.getLocale = function() {
41 return chrome.i18n.getMessage('locale'); 33 return chrome.i18n.getMessage('locale');
42 }; 34 };
43 35
44 36
45 /** 37 /**
46 * Returns the message with the given message id from the ChromeVox namespace. 38 * Returns the message with the given message id from the ChromeVox namespace.
47 * 39 *
48 * If we can't find a message, throw an exception. This allows us to catch 40 * If we can't find a message, throw an exception. This allows us to catch
49 * typos early. 41 * typos early.
50 * 42 *
51 * @param {string} message_id The id. 43 * @param {string} messageId The id.
52 * @param {Array.<string>=} opt_subs Substitution strings. 44 * @param {Array.<string>=} opt_subs Substitution strings.
53 * @return {string} The message. 45 * @return {string} The message.
54 */ 46 */
55 cvox.ChromeMsgs.prototype.getMsg = function(message_id, opt_subs) { 47 cvox.Msgs.prototype.getMsg = function(messageId, opt_subs) {
56 var message = chrome.i18n.getMessage( 48 var message = chrome.i18n.getMessage(
57 cvox.ChromeMsgs.NAMESPACE_ + message_id, opt_subs); 49 cvox.Msgs.NAMESPACE_ + messageId, opt_subs);
58 if (message == undefined || message == '') { 50 if (message == undefined || message == '') {
59 throw new Error('Invalid ChromeVox message id: ' + message_id); 51 throw new Error('Invalid ChromeVox message id: ' + messageId);
60 } 52 }
61 return message; 53 return message;
62 }; 54 };
63 55
64 56
65 /** 57 /**
66 * Processes an HTML DOM the text of "i18n" elements with translated messages. 58 * Processes an HTML DOM the text of "i18n" elements with translated messages.
67 * This function expects HTML elements with a i18n clean and a msgid attribute. 59 * This function expects HTML elements with a i18n clean and a msgid attribute.
68 * 60 *
69 * @param {Node} root The root node where the translation should be performed. 61 * @param {Node} root The root node where the translation should be performed.
70 */ 62 */
71 cvox.ChromeMsgs.prototype.addTranslatedMessagesToDom = function(root) { 63 cvox.Msgs.prototype.addTranslatedMessagesToDom = function(root) {
72 var elts = root.querySelectorAll('.i18n'); 64 var elts = root.querySelectorAll('.i18n');
73 for (var i = 0; i < elts.length; i++) { 65 for (var i = 0; i < elts.length; i++) {
74 var msgid = elts[i].getAttribute('msgid'); 66 var msgid = elts[i].getAttribute('msgid');
75 if (!msgid) { 67 if (!msgid) {
76 throw new Error('Element has no msgid attribute: ' + elts[i]); 68 throw new Error('Element has no msgid attribute: ' + elts[i]);
77 } 69 }
78 elts[i].textContent = this.getMsg(msgid); 70 elts[i].textContent = this.getMsg(msgid);
79 elts[i].classList.add('i18n-processed'); 71 elts[i].classList.add('i18n-processed');
80 } 72 }
81 }; 73 };
82 74
83 75
84 /** 76 /**
85 * Retuns a number formatted correctly. 77 * Retuns a number formatted correctly.
86 * 78 *
87 * @param {number} num The number. 79 * @param {number} num The number.
88 * @return {string} The number in the correct locale. 80 * @return {string} The number in the correct locale.
89 */ 81 */
90 cvox.ChromeMsgs.prototype.getNumber = function(num) { 82 cvox.Msgs.prototype.getNumber = function(num) {
91 return '' + num; 83 return '' + num;
92 }; 84 };
93
94 cvox.HostFactory.msgsConstructor = cvox.ChromeMsgs;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698