翻译导致的导入导出问题
-
OpenERP是一套很聪明的系统。几乎所有的字段都可以翻译,对应不同的语言版本显示不同的文本。但是这个功能在导入导出的时候出问题了。
比如,昨晚,我需要把其他系统里的数据导入到OpenERP里来。那么我就新建了一个产品分类,aaa。然后新建了一个测试产品,使用了这个分类。然后又想了一下,觉得aaa不好,就把他改成了“临时分类”。然后导出这个测试产品作为例子。打开看了一下文件,没问题,分类那一栏显示的是“临时产品”。然后照葫芦画瓢,把新的产品资料填进去。分类什么不动,照抄第一行。然后导入,出问题了,说找不到分类“临时产品”。
想了一下,去product.category里看了看,分类name赫然还是“aaa”。然后再去it.translate里看看,最后多了一行“临时产品”。然后再次打开导出的文件,将“临时文件”改为aaa,导入就可以了。罗嗦完了,得出结论如下:
[list][li]OE的基本语言是英语。在任何语言下状态创建一条“新”条记录,则name的内容被作为默认的英语版本储存起来。如果在非英语状态下修改name,则此修改被作为一个此种语言的翻译文本,被储存在ir.translate里面,原始数据所在的表的name字段并无更改。OE会根据目前的语言,选择正确的翻译文本来显示给用户。[/li][li]导出导出时,系统不能正确分辨当前的语言,仍使用英语(Bug),导致了使用了翻译文本的分类无法找到。[/li][li]解决方法一:使用英文进行导出导出。[/li][li]解决方法二:每次修改名称时都切换成英文界面修改。(这个有点玄,因为只要你在非英语界面改过一次,相应的翻译就存在了,无论你在英语界面怎么改,显示出来的还是你在非英语界面改过的那个。所以要这么做必须保证绝对不在非英语界面下修改任何名称,那就不存在任何翻译问题了。)[/li][/list][[i] 本帖最后由 coldfire 于 2010-4-26 12:05 编辑 [/i]]