কেবল আজ এই একই ইস্যুতে দৌড়েছে এবং এটি আরও কিছুটা গবেষণা করেছে। ক্রিসের উপরের একটি ভাল মন্তব্য রয়েছে তবে এটি শেষ পর্যন্ত ভুল। এটি কাজ করার জন্য আপনার Drupal.behaviors ব্যবহার করার দরকার নেই।
যেমন জোনএমসিএল তাঁর শেষ মন্তব্যে নিজেই উল্লিখিত হয়েছে, লোকেল.ইন্সে _locale_parse_js_file ফাংশনটি Dropal.t ("সামস্ট্রিং") নিদর্শন 1493 থেকে শুরু করে (দ্রুপাল 7.২২ তে) পার্স করার জন্য দায়ী:
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);
এটি কেবলমাত্র একটি "বোবা" পার্সিং ফাংশন যা শব্দার্থবিজ্ঞানের বিষয়ে চিন্তা করে না এবং এটি প্রাপ্ত কোনও ফাইলের মধ্যে দ্রুপাল.t ("কিছু") এর সমস্ত উদাহরণ খুঁজে পায় finds
একটি সাধারণ গোটচা হতে পারে এটি হ'ল আপনার সোর্স কোডটিতে ড্রপল.টি ("অনুবাদক") আকারে পুরো স্ট্রিং থাকা দরকার, কারণ (স্পষ্টতই) পিএইচপি-তে ফাইল_জেট_কন্টেন্টের মাধ্যমে ফাইল খোলার সময় কোনও জাভাস্ক্রিপ্ট কার্যকর করা হয় না। এর অর্থ আপনি কখনই দ্রুপাল.টি (কিছু পরিবর্তনযোগ্য) করতে পারবেন না এবং আশা করি দ্রুপাল আপনি ড্রুপাল.টি-তে যে স্ট্রিংযুক্ত জাভাস্ক্রিপ্ট ভেরিয়েবলগুলি পেয়েছেন তা ধরবে।
আপনি যদি কোনও চার্টের জন্য "মহিলা" অনুবাদ করতে এবং স্ট্রিংটিকে একটি প্রসঙ্গ দিতে চান তবে বাক্য গঠনটি হ'ল:
Drupal.t("women", {}, {context: "charts"}
এছাড়াও, আপনি যদি ড্রাশ ইনস্টল করে থাকেন তবে আপনার js ফাইলটি কমান্ডের মাধ্যমে পার্স করা হয়েছে তা যাচাই করুন;
drush vget javascript_parsed
তারপরে আপনি নিজের ক্যাশে দিয়ে পরিষ্কার করতে পারেন
drush cc all
... এবং ইতিমধ্যে পার্স করা ফাইলগুলির তালিকা খালি কিনা তা যাচাই করতে উপরের উইগেট কমান্ডটি পুনরাবৃত্তি করুন। এইভাবে আপনার ফাইলটি পরবর্তী সময়ে পুনঃস্থাপন করা হবে (এটিও যাচাই করুন)।