Baru saja mengalami masalah yang sama hari ini dan merisetnya lebih sedikit. Chris di atas memiliki komentar yang baik, tetapi pada akhirnya tidak benar. Anda tidak perlu menggunakan Drupal. Perilaku agar bisa berfungsi.
Seperti dicatat oleh JonMcL sendiri dalam komentar terakhirnya, fungsi _locale_parse_js_file di locale.inc bertanggung jawab atas penguraian pola Drupal.t ("somestring") mulai dari baris 1493 (dalam 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);
Ini hanya fungsi parsing "bodoh" yang tidak peduli dengan semantik dan hanya menemukan semua contoh Drupal.t ("sesuatu") dalam file apa pun yang diterimanya.
Apa yang bisa menjadi gotcha umum adalah bahwa Anda harus memiliki seluruh string dalam kode sumber Anda dalam bentuk Drupal.t ("translateme"), karena (jelas) tidak ada javascript yang dieksekusi ketika file dibuka melalui file_get_contents di php. Itu berarti Anda tidak pernah dapat melakukan Drupal.t (somevariable) dan berharap Drupal akan menangkap semua variabel javascript yang berisi string yang Anda lemparkan ke Drupal.t.
Jika Anda ingin menerjemahkan "wanita" untuk bagan dan memberikan konteks pada string, sintaksinya adalah:
Drupal.t("women", {}, {context: "charts"}
Juga, jika Anda telah menginstal drush, verifikasi file js Anda diuraikan dengan perintah;
drush vget javascript_parsed
Kemudian Anda dapat membersihkan cache dengan
drush cc all
... dan ulangi perintah vget di atas untuk memverifikasi daftar file yang sudah diuraikan kosong. Dengan cara ini file Anda akan mendapatkan reparasi jalankan berikutnya (verifikasi juga).