Translating texts in Employee Self-Service
When working in a multilingual environment, it is important to know where to translate all the customer-specific texts in all languages in scope. We will give here an overview of all the techniques used for translations in Employee Self-Service (most also apply to other SAP areas).
The first place where customer-specific text is written will be on the home page of ESS, which as of ERP6.05 uses the “Launchpad” framework (LPD_CUST). Translating texts in the launchpad is a tedious task. First, you need to generate a key for your text. This occurs when you put your launchpad in a transport request (Launchpad > Transport in the menu when your launchpad is opened).
When the key is generated, you can look it up by running report APB_LPD_SHOW_TEXT_KEYS. When you have the key of the text you want to translate, go to the main transaction for translations, namely SE63. From there, you can use the shortcut and type TX in the transaction bar. Then, enter the key you have in the “object name” field. Select a source and target language and click on Edit.
In newer version of transaction LPD_CUST you will find a menu entry ‘Launchpad -> Textkey / Translation’. From there you will be lead to SE63 to do the translation.
Smartform and workflow texts
Smartform and workflow texts can be translated most of the time using SE63 too. For smartforms, use shortcut SSF in the transaction bar, while for workflow, you can use TLGS to translate the workitem title and WFLW for the workitem description. The object name will be the smartform name for smartforms, and for workflow, concatenate PDTS, the task ID, the wildcard (*) and 06 to find the object name of the workitem title. For workitem description, replace 06 in the previous concatenation by 120.
Most ESS applications currently run on Web Dynpro ABAP, which uses OTR texts for most small pieces of texts displayed on the screens. If you need to change a standard OTR text into some other text, you can do so in transaction SOTR_EDIT. Enter the OTR alias in the corresponding input field. Then, in the menu, open “Edit > Context > Create” to create a new context for your customer. Select the country and industry. In the next screen, you can type your customer text, which will not affect the standard text as this version is created in your customer context.
Then, you only need to tell SAP to first look at the customer context version of the OTR texts. You can do this by implementing BAdI BTFR_CONTEXT, as explained in SAP note 579365.
When creating your own customer-specific OTR texts (e.g. for a customer-specific development), you will sometimes notice a change in a text will not be reflected directly in your application. This can be due to buffering. To clear the OTR buffer, you can enter /$otr in the transaction bar.
In some applications like in Leave Request for instance, you will need to translate customizing entries like types of leave from table T554S. To do so, just open the maintenance view of the table, select the entries to translate and click ‘Go to > Translation’ in the menu.
As ESS uses often the FPM framework for Web Dynpro ABAP, some texts are defined in the FPM feeder classes, mostly in the GET_DEFINITION method. Sometimes, the text is even derived from the feeder class text elements, like the title of the Personal Profile detail screen (e.g. Edit address) which is written in the text elements of class CL_HRESS_PER_OVERVIEW. Those texts can be translated directly using the menu item ‘Go to > Translation’.
In MSS, many POWLs are used. The text of categories or queries in POWL is defined in the customizing in transaction POWL_COCKPIT. However, changing the text will only be reflected after you delete the queries buffered using report POWL_D01.
When you create translations using transaction SE63, your translations are not put in a transport request. This must be done explicitly, in transaction SLXT. First, select the target language (in most recent versions of this report, you can select several languages or all existing languages). Then, enter a description for your transport request. Finally, filter the translations to be selected using e.g. dates, time spans, object types, users, etc. or a combination of those criteria.
The output of this report is that a transport request is created, containing the translations. An example for translation of smartforms texts can be consulted here.