[gelöst]Feld-Caption in Extension ändern

4. Dezember 2019 16:55

Hallo allerseits,

mit folgendem Code

Code:
tableextension 50002 ItemExt extends Item
{
    fields
    {
        modify("GTIN")
        {
            Caption = 'EAN';
        }
    }
}

ändere ich die Caption des Feldes "GTIN" nach "EAN". Das funktioniert gut. Auf allen Pages steht jetzt "EAN" drauf.

Aber: wenn ich mit XLIFF-Translation arbeite, dann geht das nicht.

Code:
<trans-unit id="TableExtension 3764468691 - Change 1405402048 - Property 2879900210" size-unit="char" translate="yes" xml:space="preserve" al-object-target="Table 3276313895">
          <source>EAN</source>
          <target>EAN</target>
          <note from="Developer" annotates="general" priority="2"></note>
          <note from="Xliff Generator" annotates="general" priority="3">TableExtension ItemExt - Change GTIN - Property Caption</note>
        </trans-unit>

Auf allen Pages wird jetzt wieder "GTIN" angezeigt. Auch wenn ich "GTIN" in Source hineinschreibe geht es nicht.
Wenn ich die Caption direkt in der Page ändere, dann geht es - ich möchte das aber nicht in allen Pages ändern, sondern zentral einmalig in der Table, so wie ich es gelernt habe :-D .

Mache ich da einen Fehler ? Oder geht es nicht, die Caption eines Table-Fields per Extension zu ändern wenn ich "TranslationFile" benutze?
Zuletzt geändert von elf am 9. Januar 2020 18:33, insgesamt 3-mal geändert.

Re: Feld-Caption in Extension ändern

5. Dezember 2019 10:15

Könnte sich theoretisch um einen AL-Fehler handeln, denn auf GitHub gibt es zu Thema Translation einige davon. Da würde ich bei AL-Problemen sowieso zu allererst suchen, obs ein bekanntes Problem ist und evtl. ein Workaround beschrieben wird.

Falls du dort nichts findest, würde ich folgendes machen:
  1. Die App kompilieren, damit die Datei AppName.g.xlf aktualisiert wird.
  2. Den Abschnitt in deiner Übersetzungsdatei mit dem gleichen Abschnitt in der AppName.g.xlf vergleichen. Er muss absolut identisch sein - bis auf des <target> natürlich.
  3. Möglicher Workaround: Die Caption nicht per AL ändern, sondern nur in allen Übersetzungsdateien (also auch en-US, nicht aber AppName.g.xlf) das <target> ändern.

Re: Feld-Caption in Extension ändern

5. Dezember 2019 10:27

Hi Natalie,

danke für Diene Antwort. Die Punkte 1 und 2 habe ich bereits gemacht, da ist alles ok. Grundsätzlich funzt das ja auch - bis auf die Änderung der Caption der Table.

bei Punkt 3 :
Möglicher Workaround: Die Caption nicht per AL ändern, sondern nur in allen Übersetzungsdateien (also auch en-US, nicht aber AppName.g.xlf) das <target> ändern

weiß ich nicht so recht, wie das vonstatten gehen soll. Ich muss doch Änderungen immer in AL machen. C/Side gibts ja nicht mehr (seit Version 15). Oder gibts da doch noch Möglichkeiten einzugreifen, ohne AL zu benutzen?

Re: Feld-Caption in Extension ändern

5. Dezember 2019 10:39

Hat sich denn durch deine Extension der source-Wert in der AppName.g.xlf überhaupt von GTIN auf EAN geändert?

Aber: wenn ich mit XLIFF-Translation arbeite

Und das hast du auch in der app.json durch
Code:
 "features": ["TranslationFile"],

"scharfgeschaltet"?

Re: Feld-Caption in Extension ändern

5. Dezember 2019 10:54

ja, scharfgeschaltet, und in der g.xlf ist der Wert geändert. Wenn ich im Client die Sprache auf englisch umschalte, dann erscheint auch "EAN" als Caption. Bei deutsch weiterhin "GTIN"- es sei denn, ich ändere die Caption in der Page, dann erscheint auch bei der Sprache "deutsch" der geänderte Wert. Grundsätzlich funktioniert die Übersetzerei also - eben nur nicht bei der Caption eines Feldes in der Table.

Re: Feld-Caption in Extension ändern

5. Dezember 2019 11:31

Du hast zusätzlich zur g.xlf sowohl eine *g_en-US.xlf als auch eine *g_de-DE.xlf (oder eine andere deutsche Sprache)?
Und in beiden Dateien ist <source> wie in der g.xlf (also mittlerweile EAN), und <target> = EAN?

Re: Feld-Caption in Extension ändern

5. Dezember 2019 11:52

Ich habe eine g.xlf (die vom System erzeugt wurde) und eine *de-DE.xlf (die ich selbst angelegt habe). Eine *en-US .xlf habe ich nicht, brauche ich die denn? Das ist doch meines Wissens alles bereits in der g.xlf definiert.

*g.xlf:
Code:
<trans-unit id="TableExtension 3764468691 - Change 1405402048 - Property 2879900210" size-unit="char" translate="yes" xml:space="preserve" al-object-target="Table 3276313895">
          <source>EAN</source>
          <note from="Developer" annotates="general" priority="2"></note>
          <note from="Xliff Generator" annotates="general" priority="3">TableExtension bero_ItemExt - Change GTIN - Property Caption</note>
        </trans-unit>


*de-DE.xlf:
Code:
<trans-unit id="TableExtension 3764468691 - Change 1405402048 - Property 2879900210" size-unit="char" translate="yes" xml:space="preserve" al-object-target="Table 3276313895">
          <source>EAN</source>
          <target>EAN</target>
          <note from="Developer" annotates="general" priority="2"></note>
          <note from="Xliff Generator" annotates="general" priority="3">TableExtension bero_ItemExt - Change GTIN - Property Caption</note>
        </trans-unit>


Wenn ich als Sprache "English" einstelle, dann erscheint "EAN" auf der Page - das funktioniert.
Stelle ich als Sprache aber "Deutsch" ein, dann erscheint wieder "GTIN" auf der Page.

Re: Feld-Caption in Extension ändern

5. Dezember 2019 13:40

elf hat geschrieben:Ich habe [...] eine *de-DE.xlf (die ich selbst angelegt habe).

Hast du daran gedacht, ganz oben (ok, 3. Zeile) in der Datei target-language="de-DE" zu setzen?

Eine *en-US .xlf habe ich nicht, brauche ich die denn? Das ist doch meines Wissens alles bereits in der g.xlf definiert.

Wahrscheinlich nicht, wir machen das bei uns trotzdem (macht eh ein Tool unserer Übersetzer, von daher ist das kein Zusatzaufwand). Man *kann* eine en-US zusätzlich anlegen, wenn man Captions abweichend von der Definition im Objekt verwenden will. Auf die g-Datei wird vermutlich immer dann zurückgegriffen, wenn für die aktuell gewählte Clientsprache keine passende Translation-Datei gefunden wurde.

Re: Feld-Caption in Extension ändern

5. Dezember 2019 14:10

ja, de-DE steht akls Target-Language drin:
Code:
<file datatype="xml" source-language="en-US" target-language="de-DE" original="Test">


Testweise habe ich jetzt mal eine *en-US.xlf angelegt. Da ändert sich nix. Der Fehler bleibt wie beschrieben.

Re: Feld-Caption in Extension ändern

5. Dezember 2019 14:18

elf hat geschrieben:eben nur nicht bei der Caption eines Feldes in der Table.

Es funktioniert auch nicht (mehr) mit der Übersetzung der TableCaption in BC 15 :roll: , das ist ein bestätigter Bug, Korrektur soll bald kommen. In BC 14 ging das noch.
Falls Zugriff auf Yammer besteht: https://www.yammer.com/dynamicsnavdev/t ... 0844491776
Ich würde es bei GitHub melden.

Re: Feld-Caption in Extension ändern

5. Dezember 2019 14:51

Es funktioniert auch nicht (mehr) mit der Übersetzung der TableCaption in BC 15 :roll: , das ist ein bestätigter Bug, Korrektur soll bald kommen. In BC 14 ging das noch.

Danke.

Na dann warte ich mal auf das nächste Update...

Re: Feld-Caption in Extension ändern

8. Januar 2020 14:51

das geht jetzt (wieder) in 15.2

Re: Feld-Caption in Extension ändern

9. Januar 2020 15:47

Zu früh gefreut :-(

jetzt geht das nicht mehr mit Labels (textkonstanten). Das ist jetzt das gleiche Verhalten wie zuvor bei Table-Field Captions. Der Text wird nicht übersetzt, obwohl die Übersetzung in der xlf-Datei drin ist.

Code:
action(Test2Action1)
                {
                    ApplicationArea = All;
                    image = New;
                    Caption = 'Label test';
                    trigger OnAction()
                    var
                        ConstTest: Label 'This is a test';
                    begin
                        Message(ConstTest)
                    end;
                }

xlf:
Code:
<trans-unit id="Page 3560262020 - Action 500837773 - Method 1377591017 - NamedType 498840317" size-unit="char" translate="yes" xml:space="preserve">
          <source>This is a test</source>
          <target>Das ist ein Test (hat funktionert!)</target>
          <note from="Developer" annotates="general" priority="2"></note>
          <note from="Xliff Generator" annotates="general" priority="3">Page bero_ELFTestCard - Action Test2Action1 - Method OnAction - NamedType ConstTest</note>
        </trans-unit>


in der MessageBox wird "This is a test" angezeigt!

Re: Feld-Caption in Extension ändern

9. Januar 2020 18:32

jetzt doch gelöst.

in meiner de.xlf stand das folgend drin:
Code:
<file datatype="xml" source-language="en-US" target-language="de" original="berolina">
Als Target-Language : de. Das hat so bisher funktioniert.

Ich habe jetzt als target-Language de-DE eingetragen:
Code:
<file datatype="xml" source-language="en-US" target-language="de-DE" original="berolina">
jetzt funktioniert es auch für Labels.

Das Problem trat nur bei Labels auf. Alle anderen Texte (Captions etc.) wurden korrekt übersetzt. Warum das so ist, erschließt sich mir nicht - muss ich ja auch nicht mehr wissen, funzt ja :-)