Score:0

แปลรายการเมนูโดยทางโปรแกรมหรือไม่

ธง pk

ฉันพยายามแปลรายการเมนูโดยทางโปรแกรม แต่เมื่อบันทึกแล้ว จะเพิ่มค่าฟิลด์ภาษาอังกฤษให้กับการแปลทั้งหมดของฉัน ด้านล่างนี้เป็นรหัสที่ฉันพยายามดำเนินการ:

 ถ้า ($entity->hasTranslation($language->getId())) {
      //สำหรับการปรับปรุง
      $entity->removeTranslation($language->getId());
    }
    พยายาม {
      $entity->addTranslation($language->getId(), ['title' => 'abcd'])->save();
    } จับ (EntityStorageException $e) {
      \Drupal::logger('เมนูแปล')->ข้อผิดพลาด($e->getMessage());
      \Drupal::messenger()->addError(t('Failed to add translation for ' . $language->getName()));
    }

ฉันกำลังแก้ไขข้อบกพร่องและฉันคิดว่าปัญหาอยู่ในบรรทัด:

$entity->addTranslation($language->getId(), ['title' => 'abcd'])->save();

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม ขอขอบคุณ.

cn flag
เพียงแค่ตรวจสอบสุขภาพจิต - ฟิลด์ "ชื่อลิงก์เมนู" ได้รับการกำหนดค่าให้แปลได้ที่ /admin/config/regional/content-language หรือไม่
blur avatar
bn flag
คุณใช้การแปลเป็นภาษาท้องถิ่นอย่างไร รายการเมนูควรมีลิงก์ 'แปล' (หรือสิ่งที่คล้ายกัน) ใน UI เมนู (โครงสร้าง -> เมนู)
Score:1
ธง de

คุณไม่ได้คำนึงถึงภาษาเริ่มต้น รหัสของคุณจะใช้งานไม่ได้หากคุณเรียกใช้รหัสนี้ในการเรียกกลับในภาษาเริ่มต้น เนื่องจากคุณลบการแปลเริ่มต้นออก และคุณไม่ได้รับอนุญาตให้ทำเช่นนั้น:

$defaultLanguage = \Drupal::languageManager->getDefaultLanguage()->getId();
ถ้า ($entity->hasTranslation($language->getId()) && $language->getId() !== $defaultLanguage) {
  // สำหรับการอัพเดท
  $entity->removeTranslation($language->getId());
}
พยายาม {
  ถ้า ($language->getId() === $defaultLanguage) {
    // เพียงตั้งค่าฟิลด์ไม่ใช่การแปล:
    $entity->set('ชื่อ', 'abcd');
  }
  อื่น {
    $entity->addTranslation($language->getId(), ['title' => 'abcd'])->save();
  }
} จับ (EntityStorageException $e) {
  \Drupal::logger('เมนูแปล')->ข้อผิดพลาด($e->getMessage());
  \Drupal::messenger()->addError(t('Failed to add translation for ' . $language->getName()));
}

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา