Đa ngôn ngữ

Tổng quan

Mặc dù nó được hiển thị bằng tiếng Nhật theo mặc định, một cơ chế hiển thị bằng tiếng Anh và các ngôn ngữ khác được tích hợp sẵn. Ngôn ngữ hiển thị được chuyển đổi bằng cách chỉ định ngôn ngữ với biến môi trường và tiếng Nhật hoặc tiếng Anh có thể được sử dụng tại thời điểm hiện tại.

Chuyển đổi ngôn ngữ

Bạn có thể thay đổi hiển thị ngôn ngữ bằng cách chỉ định ngôn ngữ theo biến môi trường.

Thiết lập .envtệp trực tiếp trong thư mục gốc EC – CUBE ECCUBE_LOCALE. Ở trạng thái ban đầu, nó được nhận xét. Nếu không có gì được đặt trong tệp .env, tiếng Nhật sẽ được sử dụng.

//.env

#ECCUBE_LOCALE=ja
ECCUBE_LOCALE=en

Sau khi thiết lập các biến môi trường, tải lại màn hình sẽ thay đổi ngôn ngữ hiển thị. Không cần thiết phải xóa bộ nhớ cache.

Đặc tả ngôn ngữ trong khi cài đặt

Để ngôn ngữ quy định tại thời điểm cài đặt, trực thuộc thư mục gốc của EC-CUBE .env.installhai ECCUBE_LOCALEbộ. Nếu không có gì được chỉ định, nó sẽ được cài đặt bằng tiếng Nhật. /src/Eccube/Resource/doctrine/import_csvNếu có dữ liệu ban đầu của ngôn ngữ đích dưới sự kiểm soát, dữ liệu đó sẽ được sử dụng và dữ liệu chủ, v.v. sẽ được cài đặt theo ngôn ngữ đã chỉ định.

//.env.install

ECCUBE_LOCALE=en

Hiện tại, tiếng Nhật được chỉ định là cài đặt ngôn ngữ ngay sau khi cài đặt. Trực thuộc thư mục gốc của EC-CUBE sau khi cài đặt .env.installcủa ECCUBE_LOCALEbộ để ngôn ngữ mà bạn muốn sử dụng giá trị của.

* Tại thời điểm này, dữ liệu được giữ trong cơ sở dữ liệu không được dịch. ※ Các ngôn ngữ hiển thị được chuyển đổi cho cả màn hình cửa hàng và màn hình quản lý.

Tệp tin nhắn (tệp dịch)

Các tập tin tin nhắn được src/Eccube/Resouce/localelưu dưới đây. ECCUBE_LOCALEPhù hợp với giá trị của

  • tin nhắn.xxx.yaml
  • trình xác nhận.xxx.yaml

Các tập tin sẽ được tải.

Tệp tin nhắn là tệp yaml của hàm băm. Khóa của hàm băm đại diện cho ID của tin nhắn và giá trị đại diện cho chuỗi dịch.

#====================================================================================
# 共通
#====================================================================================

common.select: 選択してください
common.select__pref: 都道府県を選択
common.select__unspecified: 指定なし
common.select__all_products: 全ての商品
...

Chức năng trans và bộ lọc trans

Bằng cách sử dụng các chức năng xuyên và lọc xuyên, bạn có thể hiển thị các chuỗi dịch. Chức năng xuyên nếu bạn muốn dịch trong php, Nếu bạn muốn dịch trong cành lá sẽ sử dụng bộ lọc xuyên.

Chức năng chuyển đổi

Bằng cách chỉ định ID thông báo trong hàm trans, bạn có thể truy xuất chuỗi ký tự được dịch. Cách sử dụng cơ bản như sau.

<?php

// 'common.label.add' => '新規作成',

$message = trans('common.label.edit');
var_dump($message);

// 編集

Nếu thông báo được xác định với các tham số, sử dụng nó như sau.

<?php

// 'admin.order.index.paginator_total_count' => '検索結果:%count%件が該当しました',

$message = trans('admin.order.index.paginator_total_count', ['%count%' => 10]);
var_dump($message);

// 検索結果:10件が該当しました

※ cho nhãn FormType và thông báo lỗi được dịch tự động, bạn không cần phải xuyên trong FormType.

class TemplateType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder

            ...

            ->add('file', FileType::class, array(
                'mapped' => false,
                'required' => true,
                'constraints' => array(
                    // メッセージIDのみ指定する
                    new Assert\NotBlank(array('message' => 'template.text.message.select_file')),
                    new Assert\File(array(
                        'mimeTypes' => array('application/zip', 'application/x-tar', 'application/x-gzip'),
                        'mimeTypesMessage' => 'template.text.message.upload_files',
                    )),
                ),
            ));
    }

Bộ lọc trans

Để dịch trong twig, sử dụng bộ lọc trans. Cách sử dụng cơ bản như sau.

{{ 'common.label.add'|trans }}

{# 編集 #}

Nếu thông báo được xác định với các tham số, sử dụng nó như sau.

{{ 'admin.order.index.paginator_total_count'|trans({
    '%count%' : 10
}) }}

{# 検索結果:10件が該当しました #}

Tham khảo

Cơ chế dịch thuật của EC – CUBE sử dụng thành phần Dịch thuật của Symfony. Để biết thêm thông tin, xin vui lòng tham khảo tài liệu chính thức của Symfony.

Bản dịch http://symfony.com/doc/cản/translation.html

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *