summaryrefslogtreecommitdiffstats
path: root/chrome/test
diff options
context:
space:
mode:
authorcira@chromium.org <cira@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-28 19:38:49 +0000
committercira@chromium.org <cira@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-28 19:38:49 +0000
commit75e126b937df6fcf5590f607adb460099211fb5a (patch)
treedea2e8c33b6777b36df3435179fd9e6840b77710 /chrome/test
parent99a19b7411d408c7471b3ee2c452f06f4d09259d (diff)
downloadchromium_src-75e126b937df6fcf5590f607adb460099211fb5a.zip
chromium_src-75e126b937df6fcf5590f607adb460099211fb5a.tar.gz
chromium_src-75e126b937df6fcf5590f607adb460099211fb5a.tar.bz2
Implementing chrome.i18n.getMessage call, that loads message from the extension catalog, and if necessary replaces placeholders (up to 9).
I have 3 forms of getMessage call: getMessage("name") for simple messages without placeholders. getMessage("name", "one param") for messages with only one placeholder. getMessage("name", ["one", "two"]) for messages with only one or more placeholders. getMessage returns string. BUG=12131 TEST=Load samples/i18n extension (switch Chrome to sr locale) and observe ext. name, description and toolstrip texts should be in Serbian. Review URL: http://codereview.chromium.org/225009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27393 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test')
-rw-r--r--chrome/test/data/extensions/api_test/i18n/_locales/en_US/messages.json30
-rw-r--r--chrome/test/data/extensions/api_test/i18n/manifest.json3
-rw-r--r--chrome/test/data/extensions/api_test/i18n/test.js17
-rw-r--r--chrome/test/data/extensions/samples/i18n/_locales/en_US/messages.json24
-rw-r--r--chrome/test/data/extensions/samples/i18n/_locales/sr/messages.json24
-rw-r--r--chrome/test/data/extensions/samples/i18n/manifest.json1
-rw-r--r--chrome/test/data/extensions/samples/i18n/toolstrip.html12
7 files changed, 105 insertions, 6 deletions
diff --git a/chrome/test/data/extensions/api_test/i18n/_locales/en_US/messages.json b/chrome/test/data/extensions/api_test/i18n/_locales/en_US/messages.json
new file mode 100644
index 0000000..52b7cbf
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/i18n/_locales/en_US/messages.json
@@ -0,0 +1,30 @@
+{
+ "chrome_extension_name": {
+ "message": "Api test extension"
+ },
+ "simple_message": {
+ "message": "Simple message"
+ },
+ "message_with_one_placeholder": {
+ "message": "Number of errors: $NR_OF_ERRORS$",
+ "placeholders": {
+ "nr_of_errors": {
+ "content": "$1"
+ }
+ }
+ },
+ "message_with_placeholders": {
+ "message": "$Cira$ and $Somebody$ work for $GOOGLE$",
+ "placeholders": {
+ "cira": {
+ "content": "$1"
+ },
+ "somebody": {
+ "content": "$2"
+ },
+ "google": {
+ "content": "Google"
+ }
+ }
+ }
+}
diff --git a/chrome/test/data/extensions/api_test/i18n/manifest.json b/chrome/test/data/extensions/api_test/i18n/manifest.json
index 3653d29..16e65ac 100644
--- a/chrome/test/data/extensions/api_test/i18n/manifest.json
+++ b/chrome/test/data/extensions/api_test/i18n/manifest.json
@@ -2,5 +2,6 @@
"name": "chrome.i18n",
"version": "0.1",
"description": "end-to-end browser test for chrome.i18n API",
- "background_page": "test.html"
+ "background_page": "test.html",
+ "default_locale": "en_US"
}
diff --git a/chrome/test/data/extensions/api_test/i18n/test.js b/chrome/test/data/extensions/api_test/i18n/test.js
index ab12d90..405de5b 100644
--- a/chrome/test/data/extensions/api_test/i18n/test.js
+++ b/chrome/test/data/extensions/api_test/i18n/test.js
@@ -1,5 +1,5 @@
// i18n api test
-// browser_tests.exe --gtest_filter=ExtensionApiTest.I18N
+// browser_tests.exe --gtest_filter=ExtensionApiTest.I18N --lib=browser_tests
var testCallback = chrome.test.testCallback;
@@ -10,5 +10,18 @@ chrome.test.runTests([
chrome.test.assertEq(results[0], "en-US");
chrome.test.assertEq(results[1], "en");
}));
- }
+ },
+ function getMessage() {
+ var message = chrome.i18n.getMessage("simple_message");
+ chrome.test.assertEq(message, "Simple message");
+
+ message = chrome.i18n.getMessage("message_with_placeholders",
+ ["Cira", "John"]);
+ chrome.test.assertEq(message, "Cira and John work for Google");
+
+ message = chrome.i18n.getMessage("message_with_one_placeholder", "19");
+ chrome.test.assertEq(message, "Number of errors: 19");
+
+ chrome.test.succeed();
+ },
]);
diff --git a/chrome/test/data/extensions/samples/i18n/_locales/en_US/messages.json b/chrome/test/data/extensions/samples/i18n/_locales/en_US/messages.json
new file mode 100644
index 0000000..9e86443
--- /dev/null
+++ b/chrome/test/data/extensions/samples/i18n/_locales/en_US/messages.json
@@ -0,0 +1,24 @@
+{
+ "chrome_extension_name": {
+ "message": "AcceptLanguage"
+ },
+ "chrome_extension_description": {
+ "message": "Returns accept languages of the browser"
+ },
+ "click_here": {
+ "message": "Left click to list acceptLanguages."
+ },
+ "chrome_accept_languages": {
+ "message": "$CHROME$ accepts $languages$ languages",
+ "placeholders": {
+ "chrome": {
+ "content": "Chrome",
+ "example": "Chrome"
+ },
+ "languages": {
+ "content": "$1",
+ "example": "en-US,sr,de"
+ }
+ }
+ }
+}
diff --git a/chrome/test/data/extensions/samples/i18n/_locales/sr/messages.json b/chrome/test/data/extensions/samples/i18n/_locales/sr/messages.json
new file mode 100644
index 0000000..30bd958
--- /dev/null
+++ b/chrome/test/data/extensions/samples/i18n/_locales/sr/messages.json
@@ -0,0 +1,24 @@
+{
+ "chrome_extension_name": {
+ "message": "Прихватљиви језици"
+ },
+ "chrome_extension_description": {
+ "message": "Језици које прегледач прихвата"
+ },
+ "click_here": {
+ "message": "Кликните да излистате дозвољене језике."
+ },
+ "chrome_accept_languages": {
+ "message": "$CHROME$ прихвата $languages$ језике.",
+ "placeholders": {
+ "chrome": {
+ "content": "Chrome",
+ "example": "Chrome"
+ },
+ "languages": {
+ "content": "$1",
+ "example": "en-US,sr,de"
+ }
+ }
+ }
+}
diff --git a/chrome/test/data/extensions/samples/i18n/manifest.json b/chrome/test/data/extensions/samples/i18n/manifest.json
index ec642b1..ca7fefd 100644
--- a/chrome/test/data/extensions/samples/i18n/manifest.json
+++ b/chrome/test/data/extensions/samples/i18n/manifest.json
@@ -2,5 +2,6 @@
"name": "AcceptLanguage",
"description": "Returns accept languages of the browser",
"version": "0.1",
+ "default_locale": "en_US",
"toolstrips": ["toolstrip.html"]
}
diff --git a/chrome/test/data/extensions/samples/i18n/toolstrip.html b/chrome/test/data/extensions/samples/i18n/toolstrip.html
index 677535a..970651a 100644
--- a/chrome/test/data/extensions/samples/i18n/toolstrip.html
+++ b/chrome/test/data/extensions/samples/i18n/toolstrip.html
@@ -7,17 +7,23 @@ LICENSE file.
<html>
<head>
<script>
+ function init() {
+ document.getElementById("languageSpan").innerHTML =
+ chrome.i18n.getMessage("click_here");
+ }
+
function getAcceptLanguages() {
chrome.i18n.getAcceptLanguages(function(languageList) {
var languages = languageList.join(",");
- document.getElementById("languageSpan").innerHTML = languages;
+ document.getElementById("languageSpan").innerHTML =
+ chrome.i18n.getMessage("chrome_accept_languages", languages);
})
}
</script>
</head>
- <body>
+ <body onload="init()">
<div class="toolstrip-button" onclick="getAcceptLanguages();">
- <span id="languageSpan">GetAcceptLanguage</span>
+ <span id="languageSpan"></span>
</div>
</body>
</html>