summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rothstein <drothstein@gmail.com>2012-07-08 23:40:47 -0400
committerDavid Rothstein <drothstein@gmail.com>2012-07-08 23:40:47 -0400
commitefe6bdfd25b46a3bcb7dda5bf94937baea80ca79 (patch)
tree6af9c8eec3aa949f0accc5f724368be6b50102e3
parent2c7f5090503cb7e7165cee9882b2eb31ba04cd39 (diff)
downloadbrdo-efe6bdfd25b46a3bcb7dda5bf94937baea80ca79.tar.gz
brdo-efe6bdfd25b46a3bcb7dda5bf94937baea80ca79.tar.bz2
Issue #1664528 by Carl Johan: Fixed It's impossible to search for 'Strings not translated to language ...'.
-rw-r--r--includes/locale.inc17
-rw-r--r--modules/locale/locale.test13
2 files changed, 22 insertions, 8 deletions
diff --git a/includes/locale.inc b/includes/locale.inc
index fde19dd55..c168da0a7 100644
--- a/includes/locale.inc
+++ b/includes/locale.inc
@@ -1860,7 +1860,16 @@ function _locale_translate_seek() {
}
$sql_query = db_select('locales_source', 's');
- $sql_query->leftJoin('locales_target', 't', 't.lid = s.lid');
+
+ $limit_language = NULL;
+ if ($query['language'] != 'en' && $query['language'] != 'all') {
+ $sql_query->leftJoin('locales_target', 't', "t.lid = s.lid AND t.language = :langcode", array(':langcode' => $query['language']));
+ $limit_language = $query['language'];
+ }
+ else {
+ $sql_query->leftJoin('locales_target', 't', 't.lid = s.lid');
+ }
+
$sql_query->fields('s', array('source', 'location', 'context', 'lid', 'textgroup'));
$sql_query->fields('t', array('translation', 'language'));
@@ -1889,12 +1898,6 @@ function _locale_translate_seek() {
break;
}
- $limit_language = NULL;
- if ($query['language'] != 'en' && $query['language'] != 'all') {
- $sql_query->condition('language', $query['language']);
- $limit_language = $query['language'];
- }
-
// Add a condition on the text group.
if (!empty($query['group']) && $query['group'] != 'all') {
$sql_query->condition('s.textgroup', $query['group']);
diff --git a/modules/locale/locale.test b/modules/locale/locale.test
index a710ab25d..afad99f89 100644
--- a/modules/locale/locale.test
+++ b/modules/locale/locale.test
@@ -635,7 +635,7 @@ class LocaleTranslationFunctionalTest extends DrupalWebTestCase {
$this->assertText(t('No strings available.'), t("Search didn't find the string."));
// Ensure untranslated string appears if searching on 'only untranslated
- // strings'.
+ // strings' in "all" (hasn't been translated to any language).
$search = array(
'string' => $name,
'language' => 'all',
@@ -645,6 +645,17 @@ class LocaleTranslationFunctionalTest extends DrupalWebTestCase {
$this->drupalPost('admin/config/regional/translate/translate', $search, t('Filter'));
$this->assertNoText(t('No strings available.'), t('Search found the string.'));
+ // Ensure untranslated string appears if searching on 'only untranslated
+ // strings' in the custom language (hasn't been translated to that specific language).
+ $search = array(
+ 'string' => $name,
+ 'language' => $langcode,
+ 'translation' => 'untranslated',
+ 'group' => 'all',
+ );
+ $this->drupalPost('admin/config/regional/translate/translate', $search, t('Filter'));
+ $this->assertNoText(t('No strings available.'), t('Search found the string.'));
+
// Add translation.
// Assume this is the only result, given the random name.
$this->clickLink(t('edit'));