Symfony with DataTables 翻译行条目
Symfony with DataTables translate row entry
我在数据库中有一组条目,我将名称保存为占位符以便以后翻译。
Example:
| id | settings_id | settings_name | value |
| 1 | 1 | value.to.translate1 | 1 |
| 2 | 1 | value.to.translate2 | 2 |
我将其作为 json 字符串获取,以便在我尝试执行以下操作的 twig 中与 DataTables 一起使用:
$(document).ready(function () {
$('#settings').dataTable({
data: dataSet,
columns: [
{"data": "id"},
{
"render": function (data, type, row) {
return {{ row.settings_name|trans }}; // <---- THE PROBLEM
}
},
{
"render": function (data, type, row) {
var url = '{{ path('admin_settings_values', {'id': app.request.get('id'), 'id': 'settingsId'}) }}';
url = url.replace("settingsId", row.id);
return '<a href="' + url + '">{{ 'admin.settings.view.values'|trans }}</a>';
}
},
这显然是行不通的。我怎样才能使它在树枝中可翻译?这甚至可能吗?
我不知道这是否是最佳选择,但目前它有效:
在控制器内部我做了以下事情:
$aSettingsList = $this->getRepository(Settings::class)->findAllScalar();
foreach($aSettingsList as $key => $value) {
$value['name'] = $this->trans($value['name']);
$aSettingsList[$key] = $value;
}
query
public function findAllScalar()
{
return $this->createQueryBuilder('s')
->select('s.id', 's.name')
->getQuery()
->getScalarResult();
}
twig
$(document).ready(function () {
$('#settings').dataTable({
data: dataSet,
columns: [
{"data": "id"},
{"data": "name"}, // <--- HERE
{
"render": function (data, type, row) {
var url = '{{ path('admin_settings_edit', {'id': app.request.get('id'), 'id': 'settingsId'}) }}';
url = url.replace("settingsId", row.id);
return '<a href="' + url + '">{{ 'admin.settings.view.values'|trans }}</a>';
}
},
],
如果您有更好的解决方案,请告诉我。
我在数据库中有一组条目,我将名称保存为占位符以便以后翻译。
Example:
| id | settings_id | settings_name | value |
| 1 | 1 | value.to.translate1 | 1 |
| 2 | 1 | value.to.translate2 | 2 |
我将其作为 json 字符串获取,以便在我尝试执行以下操作的 twig 中与 DataTables 一起使用:
$(document).ready(function () {
$('#settings').dataTable({
data: dataSet,
columns: [
{"data": "id"},
{
"render": function (data, type, row) {
return {{ row.settings_name|trans }}; // <---- THE PROBLEM
}
},
{
"render": function (data, type, row) {
var url = '{{ path('admin_settings_values', {'id': app.request.get('id'), 'id': 'settingsId'}) }}';
url = url.replace("settingsId", row.id);
return '<a href="' + url + '">{{ 'admin.settings.view.values'|trans }}</a>';
}
},
这显然是行不通的。我怎样才能使它在树枝中可翻译?这甚至可能吗?
我不知道这是否是最佳选择,但目前它有效:
在控制器内部我做了以下事情:
$aSettingsList = $this->getRepository(Settings::class)->findAllScalar();
foreach($aSettingsList as $key => $value) {
$value['name'] = $this->trans($value['name']);
$aSettingsList[$key] = $value;
}
query
public function findAllScalar()
{
return $this->createQueryBuilder('s')
->select('s.id', 's.name')
->getQuery()
->getScalarResult();
}
twig
$(document).ready(function () {
$('#settings').dataTable({
data: dataSet,
columns: [
{"data": "id"},
{"data": "name"}, // <--- HERE
{
"render": function (data, type, row) {
var url = '{{ path('admin_settings_edit', {'id': app.request.get('id'), 'id': 'settingsId'}) }}';
url = url.replace("settingsId", row.id);
return '<a href="' + url + '">{{ 'admin.settings.view.values'|trans }}</a>';
}
},
],
如果您有更好的解决方案,请告诉我。