如何在 OctoberCMS rainlab.location 插件中查看翻译的县
How to view translated county in OctoberCMS rainlab.location plugin
我已经安装了 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>
它以英语显示国家和州,即使我切换了语言!
可能是检索记录有问题
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
It load translation relations and works fine.
现在你可以在本地更改它应该可以工作,将来他们可能会解决它。
if you are concern about plugin update then you can extract that function and implement your own function.
它只是 form_select_country twig function
您可以使用不同的名称添加到您自己的插件中以使其正常工作,正如您所见,只需复制少量代码:)
https://octobercms.com/docs/plugin/registration#extending-twig
如有疑问请评论。
我已经安装了 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>
它以英语显示国家和州,即使我切换了语言!
可能是检索记录有问题
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
It load translation relations and works fine.
现在你可以在本地更改它应该可以工作,将来他们可能会解决它。
if you are concern about plugin update then you can extract that function and implement your own function.
它只是 form_select_country twig function
您可以使用不同的名称添加到您自己的插件中以使其正常工作,正如您所见,只需复制少量代码:)
https://octobercms.com/docs/plugin/registration#extending-twig
如有疑问请评论。