2016-10-27 42 views

回答

2

在樹枝可以用{{ activeLocale }},滿語名字與{{ activeLocaleName }}與可用{{ locales }}所有語言環境的數組訪問當前語言。

您可以使用{{ dump() }}來查看頁面上可用的所有變量。如果你嘗試它,你也會在那裏找到locale變量。

+0

不幸{{activeLocale}}對我來說是空的。 – alexwenzel

+1

@alexwenzel是否將翻譯插件添加到頁面? – BenjaVR

1

我試着用activeLocalelocales數組,但不能停止循環,因此我不可能有條件地渲染一些內容。這是我如何解決它,在閱讀插件的邏輯,它是如何工作的,我在我的一個部分做了這個。

== 
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 %} 

也許有可能是另一種解決方案。但是這個人像魅力一樣工作。

更新:

雖然,在組件的情況下或在其他地方可以使用會話獲取當前的語言這樣,

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

假設你使用RainLab.Translate插件?

創建一個部分,它使用localePicker組件,然後使用您的自定義代碼:

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

並調用從那裏你想用它的部分。

相關問題