>  기사  >  PHP 프레임워크  >  yii2에서 언어 전환을 설정하는 방법

yii2에서 언어 전환을 설정하는 방법

藏色散人
藏色散人원래의
2020-07-20 10:15:392684검색

yii2 언어 전환 방법을 설정합니다. 먼저 구성 요소를 구성한 다음 웹의 동일한 수준 디렉터리에 메시지 디렉터리를 만듭니다. 이 디렉터리에는 언어 구성 파일이 저장됩니다. 그런 다음 마지막으로 각 컨트롤러를 초기화하여 언어를 구현합니다. 스위칭.

yii2에서 언어 전환을 설정하는 방법


Yii2.0은 다중 언어 전환을 구현합니다

권장: "yii 튜토리얼"

1 구성 요소 구성

'components' => [
        'i18n' => [
            'translations' => [
                '*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    //'basePath' => '/messages',
                    'fileMap' => [
                        'app' => 'app.php',
                    ],
                ],
            ],
        ],
]

2.

와 유사 web 디렉토리 아래에 메시지 디렉토리를 생성합니다. 이 디렉토리는 언어 구성 파일을 저장합니다.

생성 메시지/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 함수 작성). 함수에서는 주로 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' 매개변수를 사용하여 이 메소드를 호출하세요!

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.