Friday, June 28, 2013

Maintaining Translations in SAP

Translations Maintenance is one of the important task after development. Most of the companies which implement SAP might have their operations in various countries, which brings the necessity of maintaining translations for the developed objects, reports or any kind of scenarios of SAP.

In this blog, I will try to explain the process of maintaining translations for various development objects in SAP, starting with our favorite Webdynpro Applications :).

Translations for Webdynpro Applications:

WD translations are slightly different to normal report translations. WD's use OTR concept for maintaining and storing free texts, which are not derived from dictionary objects(Data Elements, Message Class etc). If we do not use OTR concept for free texts, we would not be able to maintain translations for those texts.

For Texts/Labels which are derived from data elements,domains, search helps or message classes etc we don't need to maintain any translations specific to Web-dynpro applications. For these kind of elements translations are derived automatically from those objects.

OTR concept is required only for free texts like messages, field labels(not derived from dictionary objects) and other kind of texts.

To Maintain translations for these OTR texts, we use transaction code SOTR_EDIT. SE63 can also be used to translate OTR texts but SOTR is like a direct transaction.

Webdynpro is a cluster of various types of development objects. It has Classes/Methods(Assistance Class), Data Dictionary objects used, Message Classes, Views, Labels etc. When maintaining translations for a WD application, you have to consider all these.

For maintaining translations for Classes/Methods, Dictionary Objects, Messages you can use either SE63 or you can directly from their respective transactions.

For Example, if you maintaining translations for Assistance Class/methods, process is:

I have created an assistance class YSP_TEST, which has a single method and a message. Now, to maintain its translation, open that class using SE24 and then GOTO-TRANSLATION,


It opens up the pop-up where you have to specify target language and then you will see all the texts in the class, there maintain translation for all the texts.

For headings, descriptions and other you can still use SE63 for maintaining translations even for Class/Methods.

For other dictionary objects too you can use similar method as shown above and also SE63 to maintain translations.

Translations for OTR Texts:

Webdynpro Level: For OTR Texts, you can maintain translations at webdynpro level or complete package level. To Maintain at WD level, you need to have the list of OTR texts used, one is manual method and other method is, there is tool developed by SAP expert, Alessandro Lavazzi and below is the link for the same.

http://wiki.sdn.sap.com/wiki/display/WDABAP/OTR+Text+Translation+Tool+for+Web+Dynpro+ABAP

Manual method is,

  Step 1: Get the OTR Text name of that element from your view as shown below,(When developing a WD application, generally we first create OTR texts but if it is complex application, we might have to create them while coding).











  Step 2: Go to SOTR_EDIT transaction code and specify that OTR name in Alias field.


  Step 3: Click on Change, you will see the text in the OTR and from the top menu Goto Translations menu,



In the next pop-up select appropriate language and maintain its translation.

Once the translations are maintained, next step is to create Transport for the same which can be done using SLXT transaction code.

Translating OTR texts in a Package:

It is easier to Translate all the texts in a package. It can be using SE63 transaction,

In the next screen, specify Package Name under which you have created your OTR texts,

Once you click on Edit, you will see all the texts in that package from where you can maintain your translations. Creating Transport for this is same as we did above.

I will keep updating this blog with how to methods of translating various objects of SAP.


1 comment:

  1. how can we transport messages in message class.
    i tried to include the message class in a task but after the task got moved, only message is getting translated is there any other way to translate all the messages in a message class.?

    ReplyDelete