2010-02-06 73 views
2

Yii不提供en_us语言的翻译消息文件。相反,我们希望依靠核心信息是正确的。没有翻译文件时,如何修改YII核心信息?

如果我成功地找到其中的核心信息都举行,我还是不想与核心文件混乱,因为A.它是不明智的和未来B.修订版本将覆盖我的变化。

我唯一的选择是复制任何其他语言消息文件并手动编辑每条消息,以便翻译后的消息与英语消息相同(使用我的更正)?好像有很多工作一个字的缘故,需要修正

我之所以提起这事是这样的......

如果您导航到一个不存在的页面,他们的错误信息是: “请求的视图“ (名称)”是找不到的。” 我觉得应该说: ‘请求的意见‘(名称)’未找到’

我认为他们在这个陈述中混合了时态('requested'=过去式,'is'=现在式)。

无论对错,我是“不舒服”用他们的语法。

回答

4

Yii是开源的。为什么不提交你的补丁?

消息可以在警予,只读/框架/消息/,你可能想看看警予,只读/框架/消息/ config.php文件也被发现。

此外,您可以使用消息命令的yiic。

至于实际的问题,你可以找到与fgrep一样的任何消息:

fgrep一样-rn “请求查看” *

而结果:

framework/web/actions/CViewAction.php:110:    throw new CHttpException(404,Yii::t('yii','The requested view "{name}" is not found.', 

所以,去那里,检查SVN主干,修改,然后“svn diff”,并提交你的补丁在谷歌代码。

+0

谢谢你非常详尽的答案! – Steve 2010-02-06 15:10:46

+2

感谢答案的最佳方式是接受它,最终得到满意答复。 – Flavius 2010-02-06 21:25:34

4

不需要修补核心文件来得到这个工作。 看看 http://www.yiiframework.com/wiki/18/how-to-customize-yii-core-messages/

如果您尝试设置你的语言main.php到EN_US,希望利用当地yii.php在保护/消息/ EN_US将无法正常工作。 它不会翻译,因为main.php中'en_us'的语言设置与核心语言相同;所以你需要强制一个翻译。

的解决方案是创建一个语言,只覆盖你想改变/修复的消息。 因此,按照以上链接所示的示例,使用en而不是de作为main.php中的语言。 在受保护/消息下创建一个en文件夹而不是de文件夹。

然后在本地en文件夹,创建自定义yii.php文件,你的情况将只包含

return array (
    'The requested view "{name}" is not found.' => 'The requested view "{name}" was not found.', 
); 

这种方式,无需调整核心文件;和, 您的更改将保持跨框架版本升级。

作为一个仅供参考,IF的Yii的:: T( '警予',...)叫你找用grep实际上是对的Yii :: T( '的Zii',...) 那么你需要一个zii.php文件,而不是保护/ messages/en文件夹中的yii.php文件。 它将使用与上面显示的yii.php代码完全相同的格式。

这对于没有搜索结果时返回的消息很有用。