Thẻ tiêu đề trong bố cục không được dịch


7

Tôi không biết nếu đây là một lỗi, nhưng thẻ tiêu đề trong bố cục không được dịch.

Ví dụ,

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <title>Forgot Your Password</title>
    </head>
    <body>....</body>
</page>

Bạn có thể xác nhận nếu đây là một lỗi hay không?

Câu trả lời:


4

Dường như vẫn không thể đặt tiêu đề trong phần đầu và dịch nó, nhưng bạn có thể tạo một tùy chỉnh customer_account_forgotpassword.xmlđể khắc phục sự cố với mã này

<referenceBlock name="page.main.title">
    <arguments>
        <argument name="title" xsi:type="string" translate="true">Forgot Your Password</argument>
    </arguments>            
</referenceBlock>

Từ Devdocs :

Các <action>hướng dẫn không được chấp nhận. Nếu việc triển khai phương thức cho phép, hãy sử dụng <argument>cho <block>hoặc <referenceBlock>để truy cập API công khai khối.


2

hiện tại dường như vẫn chưa thể đặt tiêu đề trong phần đầu và dịch nó. Vẫn còn một vấn đề mở cho lỗi này: https://github.com/magento/magento2/issues/2951

bạn thực sự có thể thực thi phương thức setTitle thông qua Bố cục hoặc trong mã để đặt tiêu đề được dịch (như được đề cập trong vấn đề):

trong Bố cục:

<referenceBlock name="page.main.title">
    <action method="setPageTitle">
        <argument translate="true" name="title" xsi:type="string">My Dashboard</argument>
    </action>
</referenceBlock>

trong mã:

$this->pageConfig->getTitle()->set(__('Create New Customer Account'));

1
The <action> instruction is deprecated. If the method implementation allows, use the <argument> for <block> or <referenceBlock> to access block public API.
Paul

1

Bạn cũng có thể sử dụng lớp Factory

/**
 * @var PageFactory
 */
protected $resultPageFactory;

/**
 * @param Context $context
 * @param PageFactory $resultPageFactory
 */
public function __construct(
    Context $context,
    PageFactory $resultPageFactory
) {
    $this->resultPageFactory = $resultPageFactory;
    parent::__construct($context);
}

public function execute()
{
    /** @var \Magento\Framework\View\Result\Page $resultPage */
    $resultPage = $this->resultPageFactory->create();
    $resultPage->getConfig()->getTitle()->set(__('My Title'));
    return $resultPage;
}


0

Cần thêm dịch vào tập tin ngôn ngữ chủ đề của bạn trong i18n .

Thấy lỗi là trong tệp dịch chính, nơi được thêm vào -

"Liên hệ với chúng tôi", "Kontaktieren Sie uns", mô-đun, Magento_Contact

vì vậy, sẽ được dịch trong mô-đun Magento_Contact .

Nhưng tiêu đề có tiêu đề - là mô-đun Magento_Theme : D

Dễ dàng sửa chữa - trong chủ đề của bạn tạo thư mục i18n, tệp de_DE.csv và đặt "Liên hệ với chúng tôi", "Kontaktieren Sie uns"

sau khi chạy php bin / magento setup: nâng cấp AND php bin / magento cache: flush


Điều này đã không hoạt động
@Alex

-1

Trong trường hợp của tôi, nó hoạt động như vậy.

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd" layout="1column">
<head>
    <title>Shared products</title>
</head>
<body>
    ...

dịch tập tin csv:

"Shared products","Translated title"

Xóa bộ nhớ cache và tiêu đề dịch xuất hiện ngay lập tức. Đã thử nghiệm trên Magento 2.2.0 trong chế độ phát triển.


1
KHÔNG, điều này là sai, đồng ý, xem câu trả lời của tôi magento.stackexchange.com/a/134903/23344
LucScu
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.