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