Tôi đã tạo một loại nội dung (pdf_form) mà tôi đã thêm một field_gender_languagetest với hai lựa chọn, Nam giới và nữ giới. Tôi đã dịch cả hai tùy chọn bằng tiếng Đức bằng tab dịch.
Bây giờ tôi đang tạo báo cáo về dữ liệu do người dùng điền bằng loại nội dung đó.
Có cách nào để lập trình bản dịch đó không?
Tôi đang thử mã này, nhưng nó không hoạt động.
t('nam', array(), array('langcode' => 'de'));
giải pháp làm việc của tôi
$ lang = "de";
if ($lang != "en") {
$langs = language_list();
$lang = $langs[$lang];
foreach ($val['#base']['#node'] as $k => $v) {
if (isset($v['#type']) && $v['#type'] == 'list_text') {
foreach ($val['#base']['#node'][$k]['#value'] as $k_sub => $v_sub) {
$trns_str = pdf_trans($v_sub, $lang, 'field');
$val['#base']['#node'][$k]['#value'][$k_sub] = $trns_str['trans'];
}
}
}
}
Chức năng
function pdf_trans( $string, $lang = NULL,$group = 'default') {
$result = db_query("CHỌN s.lid, s.source, s.context, s.location, t.translation, t.plid, t.plural TỪ {locales_source} s THAM GIA TRÁI {locales_target} t BẬT s.lid = t.lid VÀ t.language = :language WHERE s.textgroup = :textgroup và s.source = :string_value ĐẶT HÀNG THEO t.plid, t.plural", mảng(':language' => $lang->language, ' :textgroup' => $group, ':string_value'=>$string));
$str= mảng();
nếu($result){
foreach ($kết quả là $child) {
$str= mảng(
'trans' => isset($child->trans) ? $child->trans : '',
'trans_availabe' => '1',
);
}
}
if(count($str)==0)
{
$str= mảng(
'trans' => $string,
'trans_availabe' => '0',
);
}
trả về $str;
}
Đây không phải là cách đúng đắn vì drupal phải có chức năng này làm cốt lõi