根據用戶角色,我需要在我的Zend項目中顯示不同的文本。Zend翻譯自定義語言
- 對於普通用戶,我使用的是「en」語言。
- 對於新用戶,我想要「en_new」之類的東西。
但是,語言「en_new」總是回覆爲「en」。
我正在使用locale_directory掃描系統來自動檢測語言。
根據用戶角色,我需要在我的Zend項目中顯示不同的文本。Zend翻譯自定義語言
但是,語言「en_new」總是回覆爲「en」。
我正在使用locale_directory掃描系統來自動檢測語言。
翻譯適配器在addTranslation()
(至少在ZF 1.1x)內部調用Zend_Locale::findLocale()
。這又會檢查語言環境是否在白名單上。你的顯然不是。我沒有深入瞭解代碼,但很可能下一步是從en_xxx
恢復到en
,這就是您的情況。
見來源:
library/Zend/Translate/Adapter.php
- addTranslation
方法library/Zend/Locale.php
- findLocale
方法我目前正在評估類似的東西,對一些用戶來說我想要一些文本,以不同的方式轉換。我也遇到了問題,無法創建自定義區域設置值。 堅持我在我的測試中發現似乎解決/解決這個問題。
也見這裏:Combining multiple translation sources
我在做什麼是隻添加自定義轉換到我的默認的。
$translateDef = new Zend_Translate(
array(
'adapter' => 'gettext',
'content' => 'locale/default/',
'locale' => 'auto',
'scan' => Zend_Translate::LOCALE_DIRECTORY
)
);
$translateCust = new Zend_Translate(
array(
'adapter' => 'gettext',
'content' => 'locale/custom/',
'locale' => 'auto',
'scan' => Zend_Translate::LOCALE_DIRECTORY
)
);
$translateDef->addTranslation(array(
'content' => $translateCust
)
);
的文件夾結構如下:
locale/
default/
de
en
custom/
de
en
這樣做似乎overvwrites已有的,所以對於你的新用戶,可以使用適當的翻譯添加自定義文件夾中的addTranslation
時。 對於我的測試這個工作到目前爲止,但尚未深入評估它。
您是否試圖在另一個縮寫中更改en_new? –