summaryrefslogtreecommitdiff
path: root/modules/locale
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2011-11-14 02:17:32 -0500
committerwebchick <webchick@24967.no-reply.drupal.org>2011-11-14 02:17:32 -0500
commitcfc35a0b3e05245e27516631724c668e11ff955d (patch)
treec6720c52c9cc3af3a5eb44e6e187caa8742f0558 /modules/locale
parentf77015e645feb5e805850f24cb988743077724eb (diff)
downloadbrdo-cfc35a0b3e05245e27516631724c668e11ff955d.tar.gz
brdo-cfc35a0b3e05245e27516631724c668e11ff955d.tar.bz2
Issue #488496 by loganfsmyth, Gábor Hojtsy: Implement missing msgctx context in JS translation for feature parity with t().
Diffstat (limited to 'modules/locale')
-rw-r--r--modules/locale/locale.test68
-rw-r--r--modules/locale/tests/locale_test.js11
2 files changed, 56 insertions, 23 deletions
diff --git a/modules/locale/locale.test b/modules/locale/locale.test
index 5ab0d2887..5eb1cd342 100644
--- a/modules/locale/locale.test
+++ b/modules/locale/locale.test
@@ -204,43 +204,65 @@ class LocaleJavascriptTranslationTest extends DrupalWebTestCase {
// Get all of the source strings that were found.
$source_strings = db_select('locales_source', 's')
- ->fields('s', array('source', 'lid'))
+ ->fields('s', array('source', 'context'))
->condition('s.location', $filename)
->execute()
->fetchAllKeyed();
// List of all strings that should be in the file.
$test_strings = array(
- "Standard Call t",
- "Whitespace Call t",
+ "Standard Call t" => '',
+ "Whitespace Call t" => '',
- "Single Quote t",
- "Single Quote \\'Escaped\\' t",
- "Single Quote Concat strings t",
+ "Single Quote t" => '',
+ "Single Quote \\'Escaped\\' t" => '',
+ "Single Quote Concat strings t" => '',
- "Double Quote t",
- "Double Quote \\\"Escaped\\\" t",
- "Double Quote Concat strings t",
+ "Double Quote t" => '',
+ "Double Quote \\\"Escaped\\\" t" => '',
+ "Double Quote Concat strings t" => '',
- "Standard Call plural",
- "Standard Call @count plural",
- "Whitespace Call plural",
- "Whitespace Call @count plural",
+ "Context !key Args t" => "Context string",
- "Single Quote plural",
- "Single Quote @count plural",
- "Single Quote \\'Escaped\\' plural",
- "Single Quote \\'Escaped\\' @count plural",
+ "Context Unquoted t" => "Context string unquoted",
+ "Context Single Quoted t" => "Context string single quoted",
+ "Context Double Quoted t" => "Context string double quoted",
- "Double Quote plural",
- "Double Quote @count plural",
- "Double Quote \\\"Escaped\\\" plural",
- "Double Quote \\\"Escaped\\\" @count plural",
+ "Standard Call plural" => '',
+ "Standard Call @count plural" => '',
+ "Whitespace Call plural" => '',
+ "Whitespace Call @count plural" => '',
+
+ "Single Quote plural" => '',
+ "Single Quote @count plural" => '',
+ "Single Quote \\'Escaped\\' plural" => '',
+ "Single Quote \\'Escaped\\' @count plural" => '',
+
+ "Double Quote plural" => '',
+ "Double Quote @count plural" => '',
+ "Double Quote \\\"Escaped\\\" plural" => '',
+ "Double Quote \\\"Escaped\\\" @count plural" => '',
+
+ "Context !key Args plural" => "Context string",
+ "Context !key Args @count plural" => "Context string",
+
+ "Context Unquoted plural" => "Context string unquoted",
+ "Context Unquoted @count plural" => "Context string unquoted",
+ "Context Single Quoted plural" => "Context string single quoted",
+ "Context Single Quoted @count plural" => "Context string single quoted",
+ "Context Double Quoted plural" => "Context string double quoted",
+ "Context Double Quoted @count plural" => "Context string double quoted",
);
// Assert that all strings were found properly.
- foreach ($test_strings as $str) {
- $this->assertTrue(isset($source_strings[$str]), t("Found source string: %source", array('%source' => $str)));
+ foreach ($test_strings as $str => $context) {
+ $args = array('%source' => $str, '%context' => $context);
+
+ // Make sure that the string was found in the file.
+ $this->assertTrue(isset($source_strings[$str]), t("Found source string: %source", $args));
+
+ // Make sure that the proper context was matched.
+ $this->assertTrue(isset($source_strings[$str]) && $source_strings[$str] === $context, strlen($context) > 0 ? t("Context for %source is %context", $args) : t("Context for %source is blank", $args));
}
$this->assertEqual(count($source_strings), count($test_strings), t("Found correct number of source strings."));
diff --git a/modules/locale/tests/locale_test.js b/modules/locale/tests/locale_test.js
index 5a9bbec22..0693bcad2 100644
--- a/modules/locale/tests/locale_test.js
+++ b/modules/locale/tests/locale_test.js
@@ -16,6 +16,11 @@ Drupal.t("Double Quote t");
Drupal.t("Double Quote \"Escaped\" t");
Drupal.t("Double Quote " + "Concat " + "strings " + "t");
+Drupal.t("Context Unquoted t", {}, {context: "Context string unquoted"});
+Drupal.t("Context Single Quoted t", {}, {'context': "Context string single quoted"});
+Drupal.t("Context Double Quoted t", {}, {"context": "Context string double quoted"});
+
+Drupal.t("Context !key Args t", {'!key': 'value'}, {context: "Context string"});
Drupal.formatPlural(1, "Standard Call plural", "Standard Call @count plural");
Drupal
@@ -33,3 +38,9 @@ Drupal.formatPlural(1, 'Single Quote \'Escaped\' plural', 'Single Quote \'Escape
Drupal.formatPlural(1, "Double Quote plural", "Double Quote @count plural");
Drupal.formatPlural(1, "Double Quote \"Escaped\" plural", "Double Quote \"Escaped\" @count plural");
+
+Drupal.formatPlural(1, "Context Unquoted plural", "Context Unquoted @count plural", {}, {context: "Context string unquoted"});
+Drupal.formatPlural(1, "Context Single Quoted plural", "Context Single Quoted @count plural", {}, {'context': "Context string single quoted"});
+Drupal.formatPlural(1, "Context Double Quoted plural", "Context Double Quoted @count plural", {}, {"context": "Context string double quoted"});
+
+Drupal.formatPlural(1, "Context !key Args plural", "Context !key Args @count plural", {'!key': 'value'}, {context: "Context string"});