দুর্ভাগ্যক্রমে, আপনার স্ব-উত্তরটি এতটা সর্বজনীন নয়। মাঠের ভাষা এবং নোডের ভাষা একই জিনিস নয়।
আপনি যদি ফিল্ড ট্রান্সলেশন এপিআই ব্যবহার করেন (উদাহরণস্বরূপ সত্তা অনুবাদ ) তবে ক্ষেত্রের ভাষা প্রয়োজন । আপনি যখন এটি ব্যবহার শুরু করেন, কিছু ক্ষেত্র অনুবাদযোগ্য রূপান্তরিত হয়।
অনুবাদযোগ্য ক্ষেত্রগুলির ভাষা কোড রয়েছে, যা সত্যই অর্থবোধ করে। তবে ক্ষেত্রটি অনুবাদযোগ্য না হলে ভাষা কোডটি সর্বদা থাকবে (এবং সমস্ত সামগ্রীর ধরণের জন্য, সত্তা, ইত্যাদি) - LANGUAGE_NONE
(ধ্রুবকটি ব্যবহার করা ভাল LANGUAGE_NONE
এবং স্ট্রিংটি নয় 'und'
)।
সুতরাং আপনার সমাধানের সাহায্যে নোড রাশিয়ান হয়ে গেলে আপনি কোনও পরিস্থিতি পেতে পারেন তবে নোডের একটি ক্ষেত্র ব্যবহার করে LANGUAGE_NONE
।
সুখের সাথে, ক্ষেত্রগুলি '#language'
কী সহ ফর্মের সাথে সংযুক্ত থাকে, যাতে সর্বদা সঠিক ভাষার কোড থাকে।
$lang = $form['FIELDNAME']['#language'];
$form['FIELDNAME'][$lang][0]['value']['#value'] = $value;
আপনার যদি সংযুক্ত ফর্মটিতে অ্যাক্সেস না থাকে তবে ফিল্ড ল্যাঙ্গুয়েজ এপিআই ফাংশন দরকারী হতে পারে।
foreach
লুপ ব্যবহার করে এটি ব্যবহার করার একটি সহজ উপায় । যদি এটি কেবল LANGUAGE_NONE হয় তবে এটি একক রান। ফর্ম_ল্টার অর্থে, ফর্মটি যে ভাষাতেই থাকুক না কেন প্রযুক্তিগতভাবে এটি পরিবর্তন করতে হবে।