yii2에서 다국어 패키지를 전환하는 방법

angryTom
풀어 주다: 2020-02-17 12:02:52
원래의
2495명이 탐색했습니다.

yii2에서 다국어 패키지를 전환하는 방법

yii2에서 다중 언어 패키지를 전환하는 방법

1. 구성 요소 구성

'components' => [
        'i18n' => [
            'translations' => [
                '*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    //'basePath' => '/messages',
                    'fileMap' => [
                        'app' => 'app.php',
                    ],
                ],
            ],
        ],
]
로그인 후 복사

2. 메시지 디렉터리 생성

이 디렉터리는 언어 구성을 저장합니다. files

메시지/zh-CN/app.php를 생성합니다. zh-CN은 언어 식별자입니다(Yii::$app->session['언어'] = 'zh-CN', 즉 zh- CN 언어), app.php 언어 구성 배열이 저장됩니다. (app.php 이름은 컴포넌트 구성 시 'app' 옵션에 따라 결정됩니다.)

다음은 app.php 파일의 내용입니다

<?php
return [
    //常用
    &#39;Action&#39; => &#39;操作&#39;,
    &#39;Search&#39; => &#39;搜索&#39;,
    &#39;Reset&#39; => &#39;重置&#39;,
];
로그인 후 복사

3. 언어 전환을 구현하는 방법에는 두 가지가 있습니다.

a) 각 컨트롤러를 초기화해야 합니다(init 함수 작성). init 함수에서는 주로 Yii::$app->에 값을 할당합니다. ;언어. 예: Yii::$app->언어 = 'zh-CN'.

b) web/index.php(입력파일)에서 애플리케이션을 생성하는 코드를 다음 코드

$application = new yii\web\Application($config);
$application->language = isset(\Yii::$app->session[&#39;language&#39;]) ? \Yii::$app->session[&#39;language&#39;] : &#39;en&#39;;
$application->run();
로그인 후 복사

4로 변경합니다. 언어 전환을 구현하는 컨트롤러 메소드를 작성합니다

public function actionLanguage(){       
    $language=  \Yii::$app->request->get(&#39;lang&#39;);  
    if(isset($language)){  
        \Yii::$app->session[&#39;language&#39;]=$language;  
    }  
    //切换完语言哪来的返回到哪里
    $this->goBack(\Yii::$app->request->headers[&#39;Referer&#39;]);  
}
로그인 후 복사
구현하려는 경우 언어를 전환하려면 'lang' 매개변수와 함께 이 메소드를 호출하면 됩니다!
yii 사용에 대한 더 많은 팁과 웹사이트 구축 튜토리얼을 보려면

웹사이트 구축 튜토리얼

에 주목하세요.

위 내용은 yii2에서 다국어 패키지를 전환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿