Dịch các đường dẫn trong định tuyến.yml


7

Làm thế nào để bạn dịch phần đường dẫn của một mô-đun tuyến đường?

Chẳng hạn, bạn có:

module_name.my_route_name:
  path: '/path/to/content'
  defaults:
    _controller: \Drupal\module_name\Controller\MyController

Làm thế nào để tôi có được / es / ruta-de-acceso / a / contenido để chỉ đến cùng một tên tuyến đường?

Câu trả lời:


7

Theo như tôi biết (bất cứ ai, hãy sửa tôi nếu tôi sai!) Điều này là không thể trong hệ thống định tuyến. Tuy nhiên, bạn có thể thêm bí danh đường dẫn và đặt "/ ruta-de-acceso / a / contenido" thành bí danh trong ngôn ngữ tiếng Tây Ban Nha cho '/ path / to / content'.

Bây giờ vấn đề với bí danh đường dẫn, so với các tuyến đường, chúng được coi là nội dung, không phải là cốt lõi hoặc cấu hình. Kết quả là hiện tại (một lần nữa: AFAIK) hiện không có cách nào để xuất chúng và triển khai chúng đến một máy chủ. Đối với một dự án gần đây, tôi đã giải quyết điều đó bằng một số mã tùy chỉnh trong tệp .install của mô-đun tùy chỉnh. Bạn có thể thấy mã trong ý chính Github này: Drupal 8: Bí danh đường dẫn tùy chỉnh được xuất thành mã .


1
Này anh bạn, cảm ơn vì đã chia sẻ. Tôi thấy chính xác những gì bạn đang nói và chắc chắn tôi sẽ thực hiện nó. Một điều tôi nghĩ đến là thực sự thêm các đường dẫn được dịch vào mục nhập tuyến đường trong tệp cấu hình; đọc các tập tin cấu hình trong giai đoạn cài đặt và sau đó thêm bí danh vào cơ sở dữ liệu. Tôi không biết nếu nó có thể làm việc, nhưng tôi sẽ xem xét nó. Chúc mừng!
IslandDev

Không vấn đề gì! Tôi đồng ý rằng sẽ hợp lý khi gói các đường dẫn được dịch với các định nghĩa tuyến đường của bạn. Nếu bạn có thể làm cho công việc đó, tôi rất muốn xem mã của bạn!
marcvangend

1

Tôi nghĩ đó là cách khác, đó là con đường chỉ đến một con đường. Lý tưởng nhất là bạn có thể có một tuyến đường sẽ được sử dụng cho mọi ngôn ngữ và tôi cho rằng nó hoạt động với nút / {id}. Nhưng khi sử dụng bí danh, cách duy nhất tôi có thể làm việc này là xác định một tuyến đường cho mỗi ngôn ngữ. Không xinh chút nào.

Nhân tiện, sau đó trong Twig tôi đã sử dụng {{ path('module_name.my_route_name.' ~ language) }}. Cũng không xinh chút nào.


Bạn đúng về những gì đang chỉ vào những gì.
IslandDev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.