请问如何获取当前语言名称或类似内容。
我想在基于October CMS的网站上自定义区域设置切换器。
最好能够获得类似以下的内容:
...
{{ set var = ****.getLocale();}}
...
then use it for switch($var){}
...
请问如何获取当前语言名称或类似内容。
我想在基于October CMS的网站上自定义区域设置切换器。
最好能够获得类似以下的内容:
...
{{ set var = ****.getLocale();}}
...
then use it for switch($var){}
...
{{ activeLocale }}
来访问当前语言,使用{{ activeLocaleName }}
来获取完整的语言名称,使用{{ locales }}
来获取所有可用区域设置的数组。{{ dump() }}
来查看页面上所有可用的变量。如果你尝试一下,就会发现区域设置变量也在其中。我尝试使用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}}
将为我提供当前语言的代码,因此现在使用Twig,我可以像这样进行一些条件渲染:
{% 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')
<div>{{ activeLocale }} - {{ activeLocaleName }}</div>
{% for code, name in localePicker.locales %}
<div>{{ code }} - {{ name }}</div>
{% endfor %}
只需要在需要使用它的地方调用该局部即可。