SAP-ABAP-多语系自动翻译功能

公司发展,要在越南和印度开设厂房,SAP程序需要全部扩展成多语系支持,每个程序判断当前环境语言,而且需要先收集需要翻译的文字,然后交给翻译,然后从清单找到对应的翻译,修改显示。这种做法工作量太大。所以想出一个方案,创建ABAP程序抓出所有需要翻译的汉语存在自建表里,以ALV方式展示,让公司翻译人员进程序翻译。

有这个思路之后,翻译工作分为两块
1.将需要翻译的写入翻译表

1.1  ALV显示写入翻译表

1.2  消息提示写入翻译表

1.3  选择屏幕写入翻译表   

1.4 smartform写入翻译表

2.当语言代码不是1时,程序取翻译表中对应语言的翻译 。

扫描二维码关注公众号,回复: 12412833 查看本文章

关键代码1如下

 READ TEXTPOOL p_prog INTO lit_text LANGUAGE '1' . "该语句可以获得程序 p_prog 中语言为1的内文清单。

INSERT TEXTPOOL p_prog FROM lit_text LANGUAGE    'E' .  "该语句可以将语言为E的内文清单传入程序p_prog 。

"lit_text的对应为  DATA: lit_text  TYPE SORTED TABLE OF textpool WITH UNIQUE KEY id key .

我们可以用上述的read语句读到的内容存到自建表,让用户维护对应的外语描述,然后使用insert语句将外语描述存进去,这样就能将选择屏幕翻译过来了。

同样,对于消息提示和ALV展示,我们也可以用同样的方法修改代码将写死的部分改为写入内文清单,用同样的方法翻译

这部分翻译完基本就将翻译工作的70%完成了,剩下的还有一些报表参照的是自定义的数据结构展示ALV的,这种是以数据元素的描述来显示ALV的,这里微妙需要翻译数据元素

可以使用function   DDIF_DTEL_PUT 修改数据元素 和 function    DDIF_DTEL_ACTIVA激活数据元素。

此处千万注意!!!!!!!!!!!!!!!!!!!!!!!!!!!!数据元素长度也能被该function修改,千万不要实收修改到了原有的数据元素的域和长度,只修改外语描述即可!!!!!!!!!!!!!!!!!!!!! 

 源码非我一人所有,此处就不放源码了,思路提供给大家,欢迎留言讨论

猜你喜欢

转载自blog.csdn.net/Qunending/article/details/111930174