2011-08-25 85 views
1

在CakePHP 1.3中构建网站。我的要求是有一个阿拉伯语和英语支持的网站。我希望如果用户使用阿拉伯文输入信息,那么当英文用户看到相同的信息时,应该用英文,反之亦然。Cakephp网站,英文和阿拉伯语支持相同的数据库

就本地化标签我做了使用po文件。它非常直接。 但是对于使用Cakephp内置的Translate Behavior的数据库。但它再次不会翻译任何内容,并使用当前正在使用的语言环境创建另一个数据副本。

请帮我在哪个方向移动。

我想知道这种情况下应该遵循的最佳实践。 可能是翻译数据库值不是最好的解决方案,应该保存这些值,不管他们来自哪种语言。

任何帮助和建议将不胜感激。

+0

你想* automagic翻译任何*用户可能会进入? – deceze

+0

是的,如果我在网站上有阿拉伯语和英语支持。然后,如果用户输入阿拉伯语文本,那么其英文翻译也应该得到保存,反之亦然。 –

+6

这是*方式*超出了Cake TranslateBehavior的功能。首先,您需要寻找一个图书馆,或者更有可能是Google翻译API来进行实际翻译。机器翻译是一个**硬**问题,不会让你的期望值提高。 – deceze

回答

1

实际上CakePHP不能自动转换输入的数据。

Translate Behavior允许您使用多种语言输入相同的内容,然后根据您当前在配置中设置的语言从数据库中检索相应的语言。它实际上并没有为你翻译任何东西。

理论上,您可以在Model :: beforeSave()回调中添加一个函数,该函数将阿拉伯文本提交给Google Translate等服务,然后将阿拉伯文和英文版保存到适当的表中,不一定非常好。正如@deceze在他对你的问题的评论中所说的,机器翻译是一个难题。