我已经安装了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>
即使我切换了语言,它也会以英语显示国家和州!
答案 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
如有疑问,请发表评论。