Übersetzung von Selektionstexten

Benutzeroberflächen in SAP Systemen.

Übersetzung von Selektionstexten

Postby Lily890 » Mon Feb 10, 2003 3:36 pm

Hallo Leute, ich hätt' da gern mal ein Problem.
Ich habe einen Selektionsbildschirm mittels Parameters und Select-Options erstellt und mich dabei immer auf Standard-DDIC-Objekte bezogen. Die Selektionstexte wurden auch aus dem DDIC geholt. Mein Problem ist, das der Report jetzt von englischen Anwendern genutzt werden soll und das genau diese Selektionstexte nicht vom System übersetzt dargestellt werden. Das komische ist aber, meldet man sich mit der Sprache Englisch an und geht in die Bearbeitung der Selektionstexte, dann zeigt er die Übersetzung an. Eine nachträgliche aktivierung oder sichern und aktivieren hatte nichts gebracht. Innerhalb eines Table Controls tritt dieses Problem, z.B. bei den Spaltenüberschriften, nicht auf. Kann mir einer sagen was hier das Problem ist?
Lily890
.
.
 
Posts: 2
Joined: Mon Feb 10, 2003 3:36 pm

Postby Ilja583 » Mon Feb 10, 2003 4:04 pm

Hallo,

dieselbe Situation nervt mich auch schon länger.

Die inzwischen von mir favorisierte Lösung ist folgender Include, den ich in von mir geschriebene Programme zum Zeitpunkt INITIALIZATION inkludiere.


Vielleicht kannst du das ja gebrauchen.


Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *----------------------------------------------------------------------*
  2. *   INCLUDE ZSS_STANDARD_SELTEXT_CREATE                                *
  3. *----------------------------------------------------------------------*
  4.   FIELD-SYMBOLS: <Z__SELTEXT_ON_REPORT>,
  5.                  <Z__VARNAME_IN_REPORT>.
  6.   DATA: Z__SELTEXT_VARNAME&#40;30&#41;,
  7.         Z__SELTEXT_VARNAME2&#40;30&#41;,
  8.         Z__SELTEXT_TABNAME   LIKE DD03L-TABNAME,
  9.         Z__SELTEXT_FIELDNAME LIKE DD03L-FIELDNAME,
  10.         Z__SELTEXT_ROLLNAME  LIKE DD03L-ROLLNAME,
  11.         Z__SELTEXT_LAENGE TYPE I,
  12.         Z__SELTEXT_HELPID&#40;30&#41;.
  13.  
  14.   LOOP AT SCREEN.
  15.     CHECK SCREEN-GROUP3 = 'LOW' OR
  16.           SCREEN-GROUP3 = 'PAR'.
  17.     ASSIGN &#40;SCREEN-NAME&#41; TO <Z__VARNAME_IN_REPORT>.
  18.     IF SCREEN-GROUP3 = 'PAR'.
  19.       Z__SELTEXT_VARNAME = SCREEN-NAME.
  20.       CONCATENATE '%_' SCREEN-NAME '_%_App_%-TEXT'
  21.                   INTO Z__SELTEXT_VARNAME2.
  22.       ASSIGN &#40;Z__SELTEXT_VARNAME2&#41; TO <Z__SELTEXT_ON_REPORT>.
  23.     ELSE.
  24.       Z__SELTEXT_LAENGE = STRLEN&#40; SCREEN-NAME &#41; - 4.
  25.       Z__SELTEXT_VARNAME = SCREEN-NAME&#40;Z__SELTEXT_LAENGE&#41;.
  26.       CONCATENATE '%_' Z__SELTEXT_VARNAME '_%_App_%-TEXT'
  27.                   INTO Z__SELTEXT_VARNAME2.
  28.       ASSIGN &#40;Z__SELTEXT_VARNAME2&#41; TO <Z__SELTEXT_ON_REPORT>.
  29.  
  30.     ENDIF.
  31. * Falls was anderes drin steht hat sich wohl jemand was bei gedacht
  32.    IF <Z__SELTEXT_ON_REPORT> = SPACE.
  33.      <Z__SELTEXT_ON_REPORT> = Z__SELTEXT_VARNAME.
  34.    ELSE.
  35.     CHECK Z__SELTEXT_VARNAME = <Z__SELTEXT_ON_REPORT>.
  36.    ENDIF.
  37. * Variablentext = Variablenname - mal sehen was man so finden kann
  38.     ASSIGN &#40;SCREEN-NAME&#41; TO <Z__VARNAME_IN_REPORT>.
  39.     CHECK SY-SUBRC = 0.
  40.     CLEAR Z__SELTEXT_HELPID.
  41.     DESCRIBE FIELD <Z__VARNAME_IN_REPORT> HELP-ID Z__SELTEXT_HELPID.
  42.     CHECK NOT Z__SELTEXT_HELPID IS INITIAL.
  43.     SPLIT Z__SELTEXT_HELPID AT '-' INTO Z__SELTEXT_TABNAME
  44.                                        Z__SELTEXT_FIELDNAME.
  45. * Datenelement zu dem Feld holen
  46.     SELECT SINGLE ROLLNAME
  47.         INTO Z__SELTEXT_ROLLNAME
  48.         FROM DD03L
  49.         WHERE TABNAME   = Z__SELTEXT_TABNAME
  50.           AND FIELDNAME = Z__SELTEXT_FIELDNAME.
  51. * Und den zugehörigen Text &#40;wenn möglich in Anmeldesprache&#41; besorgen
  52.     SELECT SINGLE SCRTEXT_M
  53.         INTO <Z__SELTEXT_ON_REPORT>
  54.         FROM DD04T
  55.         WHERE ROLLNAME = Z__SELTEXT_ROLLNAME
  56.           AND DDLANGUAGE = SY-LANGU.
  57.     IF SY-SUBRC <> 0.
  58.       SELECT SINGLE SCRTEXT_M
  59.           INTO <Z__SELTEXT_ON_REPORT>
  60.           FROM DD04T
  61.           WHERE ROLLNAME = Z__SELTEXT_ROLLNAME.
  62.     ENDIF.
  63.  
GeSHi ©
Ilja583
.....
.....
 
Posts: 1372
Joined: Wed Jan 08, 2003 3:00 pm

Re: Übersetzung von Selektionstexten

Postby Willy1492 » Mon Feb 10, 2003 4:08 pm

cmakowski hat geschrieben:Hallo Leute, ich hätt' da gern mal ein Problem.

Komisch, die meisten hätten gern ein Problem weniger :)

Ich habe einen Selektionsbildschirm mittels Parameters und Select-Options erstellt und mich dabei immer auf Standard-DDIC-Objekte bezogen. Die Selektionstexte wurden auch aus dem DDIC geholt. Mein Problem ist, das der Report jetzt von englischen Anwendern genutzt werden soll und das genau diese Selektionstexte nicht vom System übersetzt dargestellt werden. Das komische ist aber, meldet man sich mit der Sprache Englisch an und geht in die Bearbeitung der Selektionstexte, dann zeigt er die Übersetzung an. Eine nachträgliche aktivierung oder sichern und aktivieren hatte nichts gebracht.


D.h., die Checkbox "DDIC-Bezug" ist markiert?
Und hast Du nur noch mal die Texte mit Anmeldesprache 'E' aktiviert, oder das Programm neu generiert?
Hilft es, den Report mit Anmeldesprache 'E' noch mal zu generieren? (Obwohl das natürlich nur ein Workaround sein kann, der evtl. auch hilft, die mögliche Ursache wetier einzugrenzen.)

Dann gab es da auch noch diverse Probleme mit älteren SAP-Kerneln.
Um welches SAP-Release geht es denn?
Welches Kernel-Release und Kernel-Patchlevel? (SM51, Button "Release-Info)?

Tritt das Problem in anderen Systemen (mit evtl. anderem Kernel-Patchlevel) auch auf?

Frank
Willy1492
....
....
 
Posts: 581
Joined: Tue Dec 03, 2002 4:44 pm

Postby Willy1492 » Mon Feb 10, 2003 4:14 pm

black_adept hat geschrieben:Hallo,

dieselbe Situation nervt mich auch schon länger.

Die inzwischen von mir favorisierte Lösung ist folgender Include, den ich in von mir geschriebene Programme zum Zeitpunkt INITIALIZATION inkludiere.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *----------------------------------------------------------------------*
  2. *   INCLUDE ZSS_STANDARD_SELTEXT_CREATE                                *
  3. *----------------------------------------------------------------------*
  4. ...
  5.  
  6.  
GeSHi ©

Das kann es doch nicht wirklich sein, oder?

Hast Du mal im OSS gesucht und/oder eine Fehlermeldung erfaßt?
(Obwohl es mich auch nicht sehr überraschen würde, wenn die inzwischen von Dir favorisierte Lösung Folge der (ausgebliebenen) SAP-Reaktion auf die Fehlermeldung wäre.)

Frank
Willy1492
....
....
 
Posts: 581
Joined: Tue Dec 03, 2002 4:44 pm

Postby Lily890 » Mon Feb 10, 2003 4:28 pm

Hallo Frank, zu der Sache mit dem Problem... wer in Abap programmiert fragt automatisch nach mehr *g*. Nevermind.
Die Checkbox DDIC-Bezug ist aktiviert.
Die Texte und den Report habe ich nur zur Kontrolle mal in der Anmeldesprache EN neu generiert. (Habe mal gelesen, daß diese Texte in einen sogenannten Textpool geschrieben werden). Gebracht hat es eine Runde gar nichts.
Es geht hier um SAP Release 46c und Kernel Release 46d.
Die normalen Übersetzungstools einzusetzen wäre für mich die letzte aller Möglichkeiten. By the way, kennt jemand zu diesen Tools eine vernünftige Doku? Die Online Hilfe ist an dieser Stelle wahrlich nicht das gelbe vom Ei.
Lily890
.
.
 
Posts: 2
Joined: Mon Feb 10, 2003 3:36 pm

Postby Ilja583 » Mon Feb 10, 2003 5:25 pm

Hi Frank,


Das kann es doch nicht wirklich sein, oder?

Hast Du mal im OSS gesucht und/oder eine Fehlermeldung erfaßt?
(Obwohl es mich auch nicht sehr überraschen würde, wenn die inzwischen von Dir favorisierte Lösung Folge der (ausgebliebenen) SAP-Reaktion auf die Fehlermeldung wäre.)



das OSS habe ich nicht belästigt mit so einer Anfrage - aber auch nur aus folgender Überlegung.

Wenn ich in der Originalsprache das Häkchen setze wird letztlich nur zur Laufzeit der aktuelle Text aus dem DDIC eingesetzt. Nun habe ich natürlich schon beim Setzen gesehen, dass der Text passt aber ich weiß eben nicht mit 100%iger Gewissheit, dass dies auch wirklich für alle anderen Sprachen gilt. ( Das mir diese 100%ige Gewissheit ziemlich egal ist sieht man ja an dem Codeposting was ich weiter oben gemacht habe - aber es geht hier ja um die Theorie :wink: )
Und weil eben auch SAP selber diese Gewissheit nicht für alle Möglichkeiten garantieren kann (denke ich mal) haben sie mit Absicht die automatische Dictionarybezugsübersetzung nicht zugelassen.

Ich hab mal ein wenig im Textpool gespäht für das eine oder andere von mir geschriebene Programm.
Wenn man einen Selektionstext übersetzt wird genau der übersetzte Text in den Textpool geschrieben - aber leider nicht die Texte die Bezug aufs Dictionary nehmen.
Ich hatte früher mal ein Programm, dass man über einen Report laufen lassen konnte und das die fehlenden Textpooleinträge einfach direkt zurückgeschrieben hat in den Report. Das sieht intern zwar ein wenig seltsam aus, weil für z.B. einen englischen Textpool dann ein Eintrag drin ist mit dem deutschen Text aber eben auch dem Häkchen für den DDIC-Bezug, aber das wirkt trotzdem und der englische Text wird dann angezeigt.
Das Problem dabei ist leider, dass man damit zwar genau das hinbekommt was man haben möchte, aber die Texte eben nicht durch irgendwelche Transporte gedeckt sind (weil evtl. direkt auf dem Prodsystem via insert textpool mehrsprachig gemacht) so dass ich mich letztlich für den Include entschieden habe.
Hier kann man wenigstens sehen was passiert und wenn man das Ganze nicht möchte läßt man den Include halt raus.

Naja - und eine gewisse angeborene Faulheit hat einen für mich weiteren Vorteil erspäht. Wenn ich noch in der Designphase eines Programms bin und die Selektionskriterien auf dem Selektionsbild noch häufiger geändert werden brauche ich kaum noch in die Selektionstexte springen und das Häkchen setzen - die korrekten Texte stehen mir ab nun halt immer sofort zur Verfügung :)
Und für die paar Spezialfälle wo das mal nicht gewünscht ist inkludiere ich das Teil halt nicht - aber das trifft kaum jemals zu.
Ilja583
.....
.....
 
Posts: 1372
Joined: Wed Jan 08, 2003 3:00 pm

Postby Willy1492 » Mon Feb 10, 2003 5:48 pm

Jetzt, nachdem ich (unter 6.10 auf meinem WAS TestDrive for Linux / SAP DB) versucht habe Dein Vorgehen zu reproduzieren, habe ich erst verstanden, was Du meinst.

Die Texte der Parameter / Select-Options, die in der Originalsprache (TRDIR-RLOAD) aus dem Dictionary gezogen werden, werden in der Alternativsprache nicht auch automatisch aus dem DDIC (Datenelement) vorbelegt.

Wäre eigentlich trivial zu lösen (für mich ca. 2 - 6 Stunden Programmier-Aufwand, je nach gewünschtem Komfort).

Report-Name, Quellsprache, Zielsprache als Parameter oder Select-Option.

Selektieren Report(s) aus TRDIR- Prüfen ob Originalsprache (TRDIR-RLOAD) mit angegebener Quellsprache übereinstimmt, prüfen, ob LIMU REPT (bzw. übergeordnetes TADIR-Objekt) schon in einer offenen Korrektur des Users steckt, sonst nach Korrektur fragen (da gibt es auch SAP-Standard-FBs für), Textpool sperren, READ TEXTPOOL mit Quellsprache und für jede der Zielsprachen,
(je nach Sicherheitsbedürfnis und Release auch noch prüfen, ob es eine inaktive Version gibt.)
In der Quellsprache die Texte für Parameter und Select-Options (ID = 'S') mit Texten aus dem DDIC (die mit ENTRY(8) NE space) daraufhin prüfen, ob es im Textpool der Zeilsprache einen Eintrag gibt, wenn ja, prüfen, ob der aus dem DDIC kommt. ..., wenn nein, DTEL-Kurztext der Zielsprache lesen, wenn gefunden, ENTRY(1) und ENTRY+8(*) füllen, ...
am Ende mit INSERT TEXTPOOL ... LANGUAGE und DB-Commit wegschreiben und vielleicht noch ein nettes Protokoll erzeugen.

Noch einfacher wäre es vermutlich, die SE63 so zu erweitern, daß man einen Button [DDIC-Selektionstexte] einfügt, der die Texte entsprechend füllt.
Berechtigungsprüfung, Sperre, Anbindung an das Transportwesen, ... kann man dann dem Standard überlassen.

Frank
Willy1492
....
....
 
Posts: 581
Joined: Tue Dec 03, 2002 4:44 pm

vielleicht mit hilfe von SE63

Postby Britta199 » Wed Apr 16, 2003 2:51 pm

mit SE63 lassen sich eigentlich alle texte übersetzten, soweit die codepage vorhanden ist.

gruss,
alfred
Britta199
.
.
 
Posts: 1
Joined: Wed Apr 16, 2003 2:51 pm

Re: vielleicht mit hilfe von SE63

Postby Alva1590 » Tue Nov 11, 2003 2:00 pm

alfred hat geschrieben:mit SE63 lassen sich eigentlich alle texte übersetzten, soweit die codepage vorhanden ist.

gruss,
alfred


...und genau das ist auch schon des Rätsels Lösung. Die Übersetzungen stehen hier zwar schon drin (deshalb werden Sie auch angezeigt aber rot), sie müssen aber nochmal durch sichern bestätigt und damit aktiviert werden. Warum das so ist, weiss wohl wiedermal nur SAP.

Gruss,

Dietmar.
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Erich410 » Thu Feb 05, 2004 8:08 pm

Hallo,

ich habe auch schon einige internationale Reports geschrieben und hatte dieses Problem bei der Übersetzung nicht.

Das Übersetzungstool selbst hat so seine Tücken, aber wenn man mal da durch ist, sind die Texte Englisch, Französisch oder Holländisch.

Man muß zuerst alle DDIC-Objekte übersetzen und dann den Report, dann klappts.

Sollte es nicht klappen, ist das keine Lapalie, sondern ein Fall fürs OSS. Es gibt keine Situation, die zu klein oder zu schade fürs OSS ist. Die Leute bei SAP sollen doch wissen, was sie alles verzapft haben, oder ???

mfg.
babap
Erich410
....
....
 
Posts: 680
Joined: Thu Feb 05, 2004 4:22 pm

Next

Return to Dialogprogrammierung

Who is online

Users browsing this forum: No registered users and 6 guests