Score:0

เคลือบเงาและบล็อกแบบกำหนดเอง

ธง eg

ฉันต้องการกำหนดค่าการเคลือบเงาบนเว็บไซต์หลายภาษา drupal 8 ของฉัน และฉันมีบล็อกที่ปรากฏบนหน้าเว็บที่มีเส้นทางเป็น /my-test ดังนั้นในภาษาฝรั่งเศส url จะเป็นดังนี้: /fr/my-test ในขณะที่ภาษาอังกฤษ /my-test ในบล็อกนี้ ฉันแค่ใช้:

$lang = \Drupal::languageManager()->getCurrentLanguage()->getId(); เพื่อตรวจหาภาษาแล้วแสดงข่าวขึ้นอยู่กับภาษานี้ ดังนั้นเมื่อ url เป็น /my-test > ภาษาเป็นภาษาอังกฤษ (default)> บล็อกจะแสดงข่าวที่เกี่ยวข้องกับโลก เมื่อ url คือ /fr/my-test > ภาษาเป็นภาษาฝรั่งเศส > บล็อกจะแสดงข่าวที่เกี่ยวข้องกับฝรั่งเศส

คำถามของฉันคือถ้าใช้วานิชและหน้าอย่าง /my-test ถูกแคชไว้ หากเป็นที่แรก ผู้ใช้เข้าสู่ /my-test และบล็อกแสดงข่าวสารเกี่ยวกับโลก หลังจากนั้น ผู้ใช้รายอื่นจะเข้าชม /my-test/fr บล็อกจะแสดงข่าวเกี่ยวกับโลก (เพราะเพจถูกแคชไว้) แม้ว่าจะมี /fr ใน url หรือไม่ หรือจะแสดงเนื้อหาที่ถูกต้อง (ข่าวเกี่ยวกับฝรั่งเศส)? ฉันคิดว่า $lang ตรวจหาภาษาจากคำนำหน้า URL ไม่ใช่จากเบราว์เซอร์ของผู้ใช้

cn flag
โดยทั่วไปวานิชได้รับการกำหนดค่าให้แคชตาม URL URL ที่แตกต่างกัน, รายการแคชที่แตกต่างกัน
Jaypan avatar
de flag
คุณต้องการดูบริบทแคช (https://www.drupal.org/docs/drupal-apis/cache-api/cache-contexts) ฉันเชื่อว่า Drupal ส่งสิ่งเหล่านี้ไปยัง Varnish ในส่วนหัวของหน้า เพื่อให้ Varnish เปลี่ยนแปลงแคชตามนั้น
Mira chalak avatar
eg flag
@Jaypan ดังนั้นฉันคิดว่าบล็อกจะแสดงกิจกรรมเนื้อหาที่ถูกต้อง แม้ว่าในลิงก์ที่คุณส่งจะกล่าวถึง LanguageInterface แทน languageManager ..
Mira chalak avatar
eg flag
@Clive ฉันใช้ `$active_id = \Drupal::service('domain.negotiator')->getActiveId();` ในรหัสบล็อกเดียวกันนี้ และฉันก็มีข้อสงสัยเหมือนกันเกี่ยวกับนิพจน์นี้ ดังนั้นขอบคุณสำหรับคำตอบของคุณ โปรดทราบว่า $active_id จะไม่เหมือนกันสำหรับผู้ใช้ทั้งสองเนื่องจาก URL นั้นแตกต่างกัน :)
4uk4 avatar
cn flag
@ความคิดเห็น Clive ถูกต้อง วานิชไม่สามารถแคช `/my-test` หากคุณเปิดใช้งานการตรวจจับเบราว์เซอร์ดังนั้น คุณต้องเพิ่มคำนำหน้าเส้นทางสำหรับภาษาเริ่มต้นด้วย จากนั้นจึงเปลี่ยนเส้นทางไปยังภาษานั้น ในหน้าที่เปลี่ยนเส้นทางคุณสามารถใช้สารเคลือบเงาได้
4uk4 avatar
cn flag
ฉันถือว่าคุณได้โพสต์คำถามนี้โดยไม่ได้ลงทะเบียน https://drupal.stackexchange.com/questions/307459/varnish-in-multilingual-site
Mira chalak avatar
eg flag
ขอบคุณมากครับ @4k4 คุณหมายถึงอะไรโดย "ถ้าคุณเปิดใช้งานการตรวจจับเบราว์เซอร์" ฉันจะเปิดใช้งานได้อย่างไร ฉันยังคิดไม่ออกว่าวิธีการตรวจหาภาษาคืออะไร ฉันไม่คิดว่าฉันเปิดใช้งานการตรวจจับเบราว์เซอร์ เพราะเมื่อคุณเข้าสู่เว็บไซต์ของฉัน ระบบจะขอให้คุณเลือกภาษา จากนั้นเราจะเปลี่ยนเส้นทางคุณไปยังคำนำหน้าภาษานี้
4uk4 avatar
cn flag
/admin/config/regional/language/detection
Mira chalak avatar
eg flag
@4k4 ฉันเปิดใช้งานสิ่งเหล่านี้แล้ว: Country Path Language Handler URL, URL (คำนำหน้าเส้นทาง), ภาษาที่เลือก เบราว์เซอร์ถูกปิดใช้งาน ดังนั้นฉันคิดว่ามันดี

โพสต์คำตอบ

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