Hoy me encontré con este mismo problema y lo investigué un poco más. Chris arriba tiene un buen comentario, pero en última instancia es incorrecto. No necesita usar Drupal.behaviors para que funcione.
Como señaló el propio JonMcL en su último comentario, la función _locale_parse_js_file en locale.inc es responsable del análisis de los patrones Drupal.t ("somestring") a partir de la fila 1493 (en Drupal 7.22):
preg_match_all('~
[^\w]Drupal\s*\.\s*t\s* # match "Drupal.t" with whitespace
\(\s* # match "(" argument list start
(' . LOCALE_JS_STRING . ')\s* # capture string argument
(?:,\s*' . LOCALE_JS_OBJECT . '\s* # optionally capture str args
(?:,\s*' . LOCALE_JS_OBJECT_CONTEXT . '\s*) # optionally capture context
?)? # close optional args
[,\)] # match ")" or "," to finish
~sx', $file, $t_matches);
Es solo una función de análisis "tonta" que no se preocupa por la semántica y simplemente encuentra todas las instancias de Drupal.t ("algo") en cualquier archivo que recibe.
Lo que podría ser un problema común es que necesita tener toda la cadena en su código fuente en la forma Drupal.t ("translateme"), porque (obviamente) no se ejecuta javascript cuando el archivo se abre a través de file_get_contents en php. Eso significa que nunca puedes hacer Drupal.t (alguna variable) y esperar que Drupal capture todas las variables de JavaScript que contienen cadenas que arrojas a Drupal.t.
Si desea traducir "mujeres" para un gráfico y darle un contexto a la cadena, la sintaxis sería:
Drupal.t("women", {}, {context: "charts"}
Además, si tiene drush instalado, verifique que su archivo js se analice con el comando;
drush vget javascript_parsed
Entonces puedes limpiar tu caché con
drush cc all
... y repita el comando vget anterior para verificar que la lista de archivos ya analizados esté vacía. De esta manera, su archivo se analizará la próxima vez (verifique eso también).