Zend翻译了路线

时间:2016-11-11 18:21:08

标签: php zend-framework

我有不同语言环境的多条路线:

示例:

/ de

的路线
$routes['industry'] = array(
    'route' => 'branche/:type',
    'defaults' => array(
        'module' => 'default',
        'controller' => 'index',
        'action' => 'branche',
        'type' => 'automobil'
    ),
    'reqs' => array(
        'type' => '(automobil|textil)'
    )
);

路由/ en

$routes['industry'] = array(
    'route' => 'industry/:type',
    'defaults' => array(
        'module' => 'default',
        'controller' => 'index',
        'action' => 'branche',
        'type' => 'car'
    ),
    'reqs' => array(
        'type' => '(car|textile)'
    )
);

在这种情况下,它可能只有一条路线而不是2路线?

注意不仅是更改的路线,还有需求上的类型和默认类型。

2 个答案:

答案 0 :(得分:1)

我在那里看到两条不同的路线 通常国际化在页面上,但不在URL上

让我说清楚,你保留你的网址,并在网址中使用参数,你知道页面的语言,所以

$(function () {
    $('#container').highcharts({
        data: {
            table: 'datatable'
        },
        chart: {
            type: 'column'
        },
        title: {
            text: 'Survey Reports Chart'
        },
        subtitle: {
            text: ''
        },
        yAxis: {
            allowDecimals: true,
            min: 0,
            title: {
            text: 'Amount'
            }
        },
        tooltip: {
            formatter: function() {
                return '<b>'+ this.point.name +'</b>: \u00a3'+Highcharts.numberFormat(this.point.y, 2) + ', Survey: '+ $('td:contains("'+ this.point.name +'")').next().next().text();
            }
        },
        plotOptions: {column: {colorByPoint: true}},
        legend: {
            enabled: false
        },
        credits: {
            enabled: false
        },
    });
});

并根据参数lang在twig或phtml或html上显示正确的消息

另一种更改网址的方法是:

$routes['industry'] = array(
    'route' => 'industry/:lang/:type',
    'defaults' => array(
        'module' => 'default',
        'controller' => 'index',
        'action' => 'branche',
        'type' => 'car',
        'lang' => 'en'
    ),
    'reqs' => array(
        'lang' => '(en|de)',
        'type' => '(car|textile)'
    )
);

答案 1 :(得分:1)