Điểm:1

Liên kết ngôn ngữ động từ menu?

lá cờ in

Tôi đang cố gắng tìm cách để làm như sau:

  • Thêm ngôn ngữ vào Drupal 9 mục menu
  • Dịch nội dung/liên kết menu
  • Cung cấp (từ Điều hướng chính) danh sách ngôn ngữ trang hiện tại được dịch sang

Tôi đã có thể hoàn thành hai mục đầu tiên, nhưng tôi không thể biết cách lấy menu để liệt kê các liên kết đưa ra các tùy chọn ngôn ngữ có sẵn cho thực thể hiện tại. Tôi thấy rằng có một khối Trình chuyển đổi ngôn ngữ từ lõi, nhưng có cách nào để làm cho khối này xuất hiện trong chính menu Drupal không?

nhập mô tả hình ảnh ở đây

lá cờ cn
Tôi không nghĩ vấn đề này đã được giải quyết hoàn toàn trong lõi, có các mô-đun trợ giúp như https://www.drupal.org/project/menu_block_current_lingu, https://www.drupal.org/project/menu_manipulator, https: //www.drupal.org/project/menu_multilingual
Kevin avatar
lá cờ in
Hmmm... phải có một cách để bắt chước điều này. Tôi sẽ xem xét xung quanh
4uk4 avatar
lá cờ cn
Đối với một giải pháp mã, bạn sẽ cần một plugin liên kết menu động chỉ vào nút hiện tại bắt nguồn từ mỗi ngôn ngữ. Giống như ví dụ này cho các tác vụ cục bộ https://drupal.stackexchange.com/questions/292739/how-to-get-links-of-translated-node-edit-page-in-the-secondary-tabs
Kevin avatar
lá cờ in
Tôi hiểu - điều đó sẽ hoạt động ngay cả khi nó không phải là một nhiệm vụ cục bộ? Giống như làm cách nào bạn thêm nó vào "Điều hướng chính"?
Điểm:0
lá cờ cn

Bạn đặt thông tin tĩnh vào *.links.menu.yml, nơi bạn cũng xác định plugin liên kết menu động, cung cấp thông tin mà bạn không thể đặt trong yml tĩnh. Và trình dẫn xuất để tạo plugin cho từng ngôn ngữ. Ví dụ về tác vụ cục bộ chỉ là một ví dụ cho nội dung dịch thuật.

Một ví dụ tĩnh làm việc:

mymodule.links.menu.yml

mymodule.language.top:
  tiêu đề: 'EN'
  menu_name: chính
  route_name: '<none>'
  mở rộng: đúng
  # Lớp plugin để ghi đè tiêu đề động:
  # lớp: Drupal\mymodule\Plugin\Menu\TranslatedNodeTop
mymodule.language.item:
  title: 'Nút 8 tiếng Tây Ban Nha'
  cha mẹ: mymodule.language.top
  route_name: entity.node.canonical
  route_parameters: { node: '8' }
  menu_name: chính
  tùy chọn:
    thuộc tính:
      lớp:
        - foo-lớp
        - hạng thanh
  # dẫn xuất cho các ngôn ngữ đã cài đặt
  công cụ dẫn xuất: Drupal\mymodule\Plugin\Derivative\TranslatedNodeTabDeriver
  # Lớp plugin mở rộng MenuLinkDefault ghi đè các thuộc tính tĩnh một cách linh hoạt,
  # tham số tuyến đường từ đối sánh tuyến đường hiện tại, ngôn ngữ từ trình dẫn xuất
  # tiêu đề từ cả hai và thuộc tính liên kết được thêm cho ngôn ngữ hiện tại:
  # lớp: Drupal\mymodule\Plugin\Menu\TranslatedNodeItem

Bạn cần thêm hai plugin động mở rộng MenuLinkDefault. Tôi đã tái chế TranslatedNodeTabDeriver từ Cách nhận liên kết của trang chỉnh sửa nút đã dịch trong tab phụ.

Đă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.