2016-11-11 91 views
7

我有不同的區域設置多條路線:Zend的翻譯航線

例子:

路線對/日

$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條?

注意不僅僅是路線的改變,還有需求和默認類型的類型。

回答

1

我看到了兩個不同的路線有 通常情況下,國際化是在頁面上,但不是在URL

讓我清楚,你把你的網址,並用URL中的參數,你知道該頁面的語言所以

$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)' 
    ) 
); 

,並根據參數郎您在樹枝或PHTML或HTML

另一種方式顯示正確的消息,這樣做改變網址是:

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

這不能解決URL翻譯。將永遠是「行業」的URL而不是「分支」。 – costa

+0

是否必須更改網址?在這種情況下,你應該做兩條路線。根據我的經驗,您始終將您的網址保存爲一種語言,並根據語言更改內容,但當然每個實際情況都不同並且有不同的需求。如果您需要更改網址,您必須創建兩個路徑或行業|分支是一個參數。我編輯解決方案2的答案 – Emiliano