Acabei de encontrar o mesmo problema hoje e o pesquisei um pouco mais. Chris acima tem um bom comentário, mas está incorreto. Você não precisa usar o Drupal.behaviors para que ele funcione.
Conforme observado pelo próprio JonMcL em seu último comentário, a função _locale_parse_js_file em locale.inc é responsável pela análise dos padrões Drupal.t ("somestring") a partir da linha 1493 (no 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);
É apenas uma função de análise "burra" que não se preocupa com a semântica e simplesmente encontra todas as instâncias do Drupal.t ("alguma coisa") em qualquer arquivo que recebe.
O que poderia ser uma pegadinha comum é que você precisa ter toda a string no seu código-fonte no formato Drupal.t ("translateme"), porque (obviamente) nenhum javascript é executado quando o arquivo é aberto através de file_get_contents no php. Isso significa que você nunca pode executar o Drupal.t (algo variável) e torcer para que o Drupal pegue todas as variáveis javascript contendo strings que você lança no Drupal.t.
Se você deseja traduzir "mulheres" para um gráfico e fornecer um contexto à string, a sintaxe seria:
Drupal.t("women", {}, {context: "charts"}
Além disso, se você tiver o drush instalado, verifique se o arquivo js foi analisado com o comando;
drush vget javascript_parsed
Então você pode limpar seu cache com
drush cc all
... e repita o comando vget acima para verificar se a lista de arquivos já analisados está vazia. Dessa forma, seu arquivo será reparado na próxima execução (verifique isso também).