如何在OctoberCMS中查看翻译后的县CMS rainlab.location插件

时间:2018-09-23 03:22:26

标签: octobercms octobercms-plugins

我已经安装了rainlab.location和rainlab.translate插件。我在后端翻译了国家和州,但是我看不到在前端翻译的国家和州。这是我正在使用的代码(来自文档):

 {% set countryId = countryId|default(form_value('country_id')) %}
 {% set stateId = stateId|default(form_value('state_id')) %}

 <div class="form-group">
 <label for="accountCountry">Country</label>
 {{ form_select_country('country_id', countryId, {
    id: 'accountCountry',
    class: 'form-control',
    emptyOption: '',
    'data-request': 'onInit',
    'data-request-update': {
        'country-state': '#partialCountryState'
    }
  }) }}
 </div>

 <div class="form-group">
 <label for="accountState">State</label>
 {{ form_select_state('state_id', countryId, stateId, {
    id: 'accountState',
    class: 'form-control',
    emptyOption: ''
 }) }}
 </div>

即使我切换了语言,它也会以英语显示国家和州!

1 个答案:

答案 0 :(得分:3)

可能是检索记录时出现问题

  

https://github.com/rainlab/location-plugin/blob/master/models/Country.php#L71

当我们直接使用->lists('name', 'id');进行调用时,转换关系未加载。

但是如果您从

更改此行
return self::$nameList = self::isEnabled()
     ->orderBy('is_pinned', 'desc')->lists('name', 'id');

return self::$nameList = self::isEnabled()
     ->orderBy('is_pinned', 'desc')->get()->lists('name', 'id');
                                ----- ^ <- this one
  

它加载翻译关系并正常工作。

现在您可以在本地进行更改,它应该可以工作,将来他们可能会解决它。

  

如果您担心插件更新,则可以提取该功能并实现自己的功能。

只需form_select_country twig function,您就可以添加到自己的具有不同名称的插件中,以使其正常工作,因为您看到的只有很少的代码要复制:)

https://octobercms.com/docs/plugin/registration#extending-twig

如有疑问,请发表评论。