symfony/translation 會自動識別你的語言包是不是帶復(fù)數(shù)的語言
如果同樣一個語言包文件放在en或fr目錄下就能翻譯復(fù)數(shù),如果放在cn目錄下或者你隨便起的名字比如xx、yy、zz等就不能翻譯復(fù)數(shù),所有帶數(shù)字判斷的翻譯統(tǒng)一給翻譯成"|"之前的部分。
英文語言包中
'pipelineCount' => 'Single Pipeline|%count% Pipelines'
如果count是1就能翻譯出Single Pipeline,如果count是2就能翻譯出 2 Pipelines
但是在中文語言包中
'pipelineCount' => '單一渠道|%count% 重渠道'
就無法實現(xiàn)了,無論count是幾翻譯出來的都是單一渠道
如果直接用
'pipelineCount' => '%count% 重渠道'
翻譯大于1的時候沒毛病,2重渠道,3重渠道...
但是1重渠道就別扭了,因為1壓根就沒重
漢語中有很多1有關(guān)的翻譯直接翻譯成 1xx 有時候很別扭的,首個、單一、頭名、頂級、獨自...等等的都無法實現(xiàn),有誰遇到過類似問題嗎,有沒有解決的方案?
我在./vendor/symfony/translation-contracts/TranslatorTrait.php里面的getPluralizationRule函數(shù)里加了個'cn'就把這個問題解決了,可是直接修改vendor下面的文件并不是好的解決辦法,有什么辦法能在配置里屏蔽掉這個獲取復(fù)數(shù)規(guī)則的函數(shù)或者添加自定義規(guī)則嗎?