Query returns 0 rows on JQGrid filter due to translated rows
Ok. I've solved this in what I believe is a reasonable way but it won't really scale:

As I build up the data for the table and translate each cell, I store that into an array with the foreign language string as the key and the untranslated string as the value. (This could work either way round).

$strings[t($my_string)] = $my_string;


I save that array after I've done everything with the last snippet. This array is read at the beginning of loading the table data:

$strings = $saved_strings = variable_get('my_translated_strings_' . $language-&gt;language, array());


If the array has changed then I will save it:

if ($strings != $saved_strings) {
  variable_set('my_translated_strings_' . $language-&gt;language, $strings);
}


I can then manipulate the filter rules to filter on the original untranslated strings instead of the user's language.