2016-10-27 163 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 %} 

并调用从那里你想用它的部分。

相关问题