2016-10-27 2 views
0

현재 언어 이름을 어떻게 얻을 수 있는지 또는 이와 같은 사항을 알려주십시오.10 월 CMS 현재 로캘 이름을 가져 오는 방법은 무엇입니까?

10 월 CMS를 기반으로 웹 사이트에서 로케일 스위처를 사용자 정의하고 싶습니다.

당신이 {{ activeLocale }}, {{ activeLocaleName }}와 전체 언어 이름과 {{ locales }}에 사용할 수있는 모든 로케일과 배열을 현재 언어에 액세스 할 수 있습니다 나뭇 가지에서

... 
{{ set var = ****.getLocale();}} 
... 
then use it for switch($var){} 
... 

답변

2

같은 것을 recevie 할 greate 것입니다.

{{ dump() }}을 사용하면 페이지에서 사용할 수있는 모든 변수를 볼 수 있습니다. 이것을 시도하면 바로 로케일 변수를 찾을 수 있습니다.

+0

안타깝게도 {{activeLocale}}은 (는) 비워 둡니다. – alexwenzel

+1

@alexwenzel 번역 플러그인을 페이지에 추가 했습니까? – BenjaVR

1

나는 activeLocale으로 시도했지만 locales 배열로 시도했지만 하나는 루프를 멈출 수 없으므로 일부 콘텐츠를 조건부로 렌더링하는 것이 불가능했습니다. 이게 어떻게 해결되는지, 플러그 인의 논리를 읽은 후에 어떻게 작동하는지, 나는 이것을 나의 부분 중 하나에서했다.

== 
use RainLab\Translate\Classes\Translator; 
protected $translator; 

function onStart() 
{ 
    $this->translator = Translator::instance(); 
    $this['SelectedLanguage'] = $this->activeLocale = $this->translator->getLocale(); 
} 
== 
{% set CurrentLanguage = SelectedLanguage %} 

지금 {{CurrentLanguage}} 내가 아마 다른 해결책이있을 수 있습니다이

{% if CurrentLanguage is same as('en') %}{% endif %} 
{% if CurrentLanguage is same as('tr') %}{% endif %} 
{% if CurrentLanguage is same as('gr') %}{% endif %} 

같은 몇 가지 조건 렌더링을 할 수있는 지금 나뭇 가지를 사용하여, 그래서 나에게 현재 언어에 대한 코드를 제공 할 것입니다. 그러나 이것은 매력 같이 일했다.

업데이트 :

, 비록 당신이 RainLab.Translate 플러그인을 사용한다고 가정

Session::get('rainlab.translate.locale') 
1

, 구성 요소의 경우, 또는 다른 하나는 현재 언어이 방법을 검색 할 세션을 사용할 수 있습니까?

는 localePicker 구성 요소를 사용하고 사용자 정의 코드를 사용하는 부분 만들기 :

<div>{{ activeLocale }} - {{ activeLocaleName }}</div> 
{% for code, name in localePicker.locales %} 
    <div>{{ code }} - {{ name }}</div> 
{% endfor %} 

을 그리고 그냥 전화를 당신이 그것을 사용하고자하는 곳에서 부분.

관련 문제