Điểm:0

nhận bản dịch theo chương trình của giá trị trường bằng ngôn ngữ cụ thể

lá cờ ma

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ớinữ 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

apaderno avatar
lá cờ us
Nếu báo cáo được tạo theo chương trình, câu hỏi sẽ hiển thị nhiều mã hơn. Tôi nghi ngờ mã thực sự đang sử dụng `t('male', array(), array('langcode' => 'de')); ` để dịch một giá trị trường.Có nhiều khả năng mã này tương tự như `t($field_value, array(), array('langcode' => 'de')); ` trong đó `$field_value` là giá trị chứa trong trường thực thể.
Rog Boy avatar
lá cờ ma
thực ra tôi chỉ có mã ngôn ngữ được thiết lập trong mô-đun tùy chỉnh của mình, ví dụ de,jp ... nếu là de tôi phải sử dụng bản dịch từ loại nội dung -> quản lý trường -> danh sách (trường) -> dịch -> de - > (ở đây chúng tôi có mặt)
Rog Boy avatar
lá cờ ma
vui lòng kiểm tra câu hỏi được cập nhật

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.