AutorPascal

SGML Filter for SDL Studio 2017 and/or WorldServer 11.1

To create a filter for SGML files can be a difficult and expensive task, if you don’t know how to handle those files. I can tell this from experience. First I made the misinterpretation that SGML files are similar to XML files and tried to build something around an XML filter. I didn’t work! Why? Because the SDL tools are very strict in this matter and since the SGML might have the same structure as a XML file, the header and the doctype declarations are not the same at all. So the tools denied the creation of such a filter.

The next choice was my favorite: The RegEx. With the RegEx capability of Studio and/or WorldServer you can create filters for almost any files. But unfortunately in this case the file was so strange structured with returns in the tags, that this also did not work or just with some strange workarounds which also meant to have only a 99% solution. And when it is about translation handling, 99% is not good enough.

Only when I pointed my problem to the SDL support, they came up with another solution and it worked.

The solution is a HTML5 filter. It can do much more than HTML. When you create a new HTML5 filter in SDL Studio 2017.

You start with creating a [New…] filter and choose HTML.

Give the files a unique name, a unique file type identifier and add the correct file dialog wildcard expression (e.g. *.sgm)

Choose „Define HTML elements based on SGML…“ and point it to a reference file.

 

SDL Studio identifies automatically all elements from the reference file. Here I think SDL did a great job!  Go to the next window. You just need to define which elements are translatable and which ones not. Just click on the values and choose the correct one.

Open the reference file, copy the doctype tag and paste it into the dialog.

Leave it as it is.

I choose that everything stays as it is. So „preserve“ and „Do not change“ are our friends.

I choose that everything stays as it is. So „preserve“ and „Do not change“ are our friends.

Done!

Now the filter is working and SMGL files can be processed.

 

.over-and-out

 

PartsPublisher: Interaktive CD für identische Maschinen schneller erstellen

Mit der Zunahme der Maschinen im Parts-Publisher wird auch der Publikationsprozess viel langsamer. Dies auch wegen einiger konzeptionellen Schwächen des Tools. Trotzdem bringen wir damit täglich mehrere Ersatzteilkataloge erfolgreich heraus.
Nun ist es so, dass wir teilweise mehrere identische Maschinen an einen Kunden liefern. Unterscheiden tun sich diese lediglich durch die Seriennummer der Maschine (Maschinennummer). Damit man nicht jede Stückliste jeder Maschine in den Parts-Publisher einlesen und publizieren muss, habe ich geschaut, wie man dies auch über etwas im publizierten Code zu stochern ändern könnte. Nach etwa 10 Minuten hatte ich die Lösung.

Hier also die Anleitung dazu:

  1. CD Verzeichnis der Erstmaschine kopieren. Danach nur noch in der Kopie arbeiten!
  2. Datei «Etk.dwk» mit dem Texteditor öffnen.
  3. Nach der «alten» Maschinennummer (hier als Beispiel 321045) suchen. Wenn der Treffer bei <KVARI>s312045</KVARI> ist, dann die neue Maschinennummer eintragen (im folgenden Screenshot die 312047).
    Achtung: Das vorgängige Zeichen lassen.
    09-12-_2015_13-46-48
  4. Speichern.
  5. Datei schliessen.
  6. Im Verzeichnis Data die Datei «PPData.h2.db» öffnen.
  7. Dort im Texteditor alle alten Erstmaschinennummern (z.B. 321045) durch die Folgemaschinennummer ersetzen lassen (z.B. 312047).
    09-12-_2015_13-48-11
  8. Speichern.
  9. Datei schliessen.
  10. CD starten und überprüfen.
  11. Fertig und ca. eine Stunde Arbeit gespart.

Atlassian Confluence auf einem Synology NAS installieren

UPDATE: Die Installation von Confluence ging zwar ohne Probleme, jedoch ist bei jedem Neustart des Servers auch die komplette Installation wieder zurückgesetzt worden. Abhilfe gab es erst durch ein anderes Docker-Paket. Die Anleitung wurde entsprechend aktualisiert.

Es gibt zwei Möglichkeiten Confluence auf ein Synology NAS zu bringen: Eine konventionelle Installation mit vielen Herausforderungen oder einfach als Docker-Paket herunterzuladen.

Natürlich habe ich mich für die einfache Variante entschieden. Hier ist das Vorgehen:

  1. Docker-App installieren. (falls noch nicht installiert)
  2. Docker-Paket herunterladen. Hier MUSS das Paket «derjudge/confluence» gewählt werden. Nachtrag: Ich habe einige Wochen mit den anderen Paketen verloren!
    2015-11-14_00-03-27
  3. Container erstellen. Name vergeben und «Ports automatisch zuordnen» NICHT auswählen. Ports manuell zuweisen. Ich habe als lokalen Port den 32768 und als Container-Port den 8090 gewählt.
    2015-11-14_00-05-29
  4. Confluence starten.
    2015-11-14_00-08-02
  5. Confluence über die öffentliche URL des NAS mit dem «lokalen» Port öffnen. Also http://xxxxxx.xx:32768 aufrufen und fertig installieren. Eventuell eigene Firewall noch bei diesem Port öffnen/auf den Server weiterleiten.
    2015-11-13_23-57-262015-11-13_23-57-26
  6. Das Interessante an dem Docker von «derjudge/confluence» ist, dass auch ein PostgreSQL dabei ist. Somit muss nicht auf die interne Datenbank von Confluence zugegriffen werden. Ist zwar entgegen der Idee der Docker-Container. Vereinfacht die Installation aber ungemein. Einfach bei der Anleitung unter https://hub.docker.com/r/derjudge/confluence/ folgen, dann kommt alles gut!
    2015-12-06_10-35-18
  7. Confluence kann nun betrieben werden.
    2015-11-13_23-58-24

Und jetzt habe ich meine Teststellung, um die Scroll-Erweiterungen von k15t zu testen. Dazu aber später mehr.

.over-and-out

SDL: XML-Filter anlegen

Lange hat die Verwendung eines wirklichen XML-Filters wenig Sinn gemacht. Zu aufwändig war es und das gleiche Resultat hat man mit einem einfachen Textfilter auch hinbekommen.

Jetzt hat sich das Ganze aber geändert. Neu kann Studio auch die maximale Länge eines Strings überwachen. Das bedeutet, dass der Softwareentwickler in seiner Umgebung eingeben kann, wieviel Platz es im Dialog hat und diese Information dem XML mitgeben. Und diese Information wird in Studio nun ausgewertet und überwacht. Deshalb sind die Zeiten vorbei, wo die Erstübersetzung nochmals an den Übersetzer musste, weil diese unmöglich im Dialog oder Menüfenster Platz hatte.

Da ich die Erfahrung gemacht habe, dass SDL keinen Filter von grundauf kostenlos erstellt, sondern dies nur über den überteuerten Professional Service anbietet, biete ich hier die kostenlose Anleitung, wie vorzugehen ist.

Ich zeige die Einstellungen in SDL WorldServer. In SDL Studio ist dies gleich, teilweise sehen die Fenster einfach unterschiedlich aus. Ich habe es nur soweit dokumentiert, wie ich es selbst benötige, um einen weiteren Filter konfigurieren zu können.

Der Aufbau der XML-Datei

worddav8f6e66f8846cc58db3c49d6dae09becf(1) Der obligate Header
(2) Das Rootelement, das der Erkennung der XML-Datei dient und auch gleich den Sprachschlüssel der Quelldatei beinhaltet. Dieser Sprachschlüssel wird von Studio dann in die Zielsprache geändert.
(3) Medaten wie Ident=“ “ oder ContextHint=“ „, welche ausgeblendet werden
(4) maxlength limitiert die Zeichenzahl im Zieltextsegment
(5) Der eigentlich zu übersetzende Text

Filter in WorldServer

Der neue Filter ist vom Typ: Custom XML Studio File Type

worddav09672b060c3d782a3409d47f695969f3

Das Basiselement ist das Element, mit dem ein Parser das XML identifizieren kann. Leider ist diese Funktion bei WorldServer 10.4.2 noch nicht implementiert. In Studio funktioniert es und man kann mehrere MIME-Typen mit *.xml angelegen. Bei WorldServer geht dies nicht und bedeutet, dass pro XML-Typ ein anderes Dateiformat gewählt werden muss.

worddave2bd2b61f789c0e4a26fa5b4b3eb1906

Im Reiter «Parser» stehen alle Regeln, nach denen der zu übersetzende Text und Metadaten gefiltert werden.

worddav02ab8fe9375cae9431052e066c6e7bbf

Die ersten drei geben die Struktur an und die letzten vier Element die Metadaten

worddav7001fe912a2928ad4c8c3384ba1da523worddavfb6751476659f19a78ffd69c944fd30bworddav275b7a70115ebfd6af841290dcbec837

Im Element «Item» ist das Hauptelement mit den Inhalten drin.

worddav2e1c9d2e6f579767ad25d19c08fd987f

(1) Beim Anklicken von [Bearbeiten…] bei Struktur-Info wird der Dialog für die «Eigenschaften der Strukturinformation» angezeigt.

worddav45779a352226896b32534b27163d1330

Diese muss wie folgt angelegt werden.

worddav6e59888a09ed289c7d30e520893698a7

(2) Unter «Regel bearbeiten» [Erweitert…] anklicken. Dort muss noch das Element für die maximale Länge definiert werden. In diesem Fall ist es @maxlength.
Zusatzinfo: «maxlenght=“0″» läuft ohne Fehlermeldung durch den Parser, aber in Studio wird dann eine Längenbeschränkung von 0 angezeigt. Deshalb sollte in diesem Fall «maxlength» gar nicht angegeben werden.

worddavc0e45f45f378ab5453910d3c93fac1b3

Als letztes sind noch die Attribute zu kennzeichnen, welche nicht übersetzt werden. Leider können diese nicht als Attribut und „Nicht zu übersetzen“ angelegt werden. Es muss ein Umweg über die Erfassung als XPath erfolgen. Ich nehme an, dass dies ein Bug von SDL WorldServer ist, sonst kann ich mir einen solchen Blödsinn nicht erklären.

worddav3e835db6a92d3f0a1561705f0fda271eworddav34cbdf89efec39128c57c0f547cf7a2dworddav09cb946fd0ad884897144982ac1005e2worddav71d17cec155b022b6e2cb4fbe34f759a

Hier die Entitys, welche umgewandelt werden sollen. Dies betrifft aber nur den zu übersetzenden Text.

worddav9a9f9f6c82f5c6a256e2e38938c0d659

Beliebigen Präfix wählen und die URL von w3 eingeben.

worddav9f3dc4575087755828394bd42e116ee7worddavb4b2f4aa78f1559a0723c310d0fdf3d1worddav9df4e20d828e0d9268bd1edb4a01c5c1

Im «Embedded Content» können RegEx-Filter konfiguriert werden, um Platzhalter und sonstige Ausdrücke zu sperren.

worddavd3defc1bdc16eb17270066d47c8984fe

Man unterscheidet zwischen Tag-Paaren. Also alles was zwischen diesen Tag liegt, wird für die Übersetzung gesperrt.

worddav2bd90c1d6b9165a78ab7f2ba945dfb51

Und Platzhaltern, welche einen Teil/eine Stelle im Text definieren. In der Regel sind dies Variablen.

 

Zum Schluss noch etwas…

Auf ein weiteres Problem muss man auch noch achten. Es geht um die Verarbeitung mehrerer XML-Filter. SDL Studio kann anhand des Rootelementes selbst entscheiden, zu welchem Filter eine XML-Datei passt. SDL WorldServer kann dies nicht, obwohl diese Information im Filter definiert werden muss. Nun, wenn diese Information nicht ausgewertet wird, wieso muss man diese dann erfassen?

Das Resultat ist aber, dass SDL WorldServer in der aktuellen Version 10.4.4 nur eine einzige XML-Datei mit der Dateierweiterung .xml verarbeiten kann. Eine weitere XML-Datei muss eine andere Dateierweiterung haben oder zu einer anderen Filtergruppe gehören, mit dem Resultat, das der Benutzer dann den richtigen Filter auswählen müsste… Was mich verärgert, ist der Fakt, dass Studio das Problem nicht hat und mehrere XML-Dateien anhand des Rootelementes unterscheiden kann. Man beachte auch, dass ich Studio ab 99€ bekomme und WorldServer etwa das tausendfache kostet. Ein Lösung für WorldServer 11.0 wurde mir auch nicht zugesichert.

 

.over-and-out

 

 

 

 

 

Confluence Bereich von einer Installation in die andere kopieren

Bereiche von einer Confluence-Installation in eine andere zu kopieren ist simpel. Hier die Anleitung dazu.

Bereich exportieren

  1. Den Bereich öffnen.
  2. Links unten an der Randleiste «Bereich konfigurieren», «Inhalte» auswählen.
    16-11-_2015_08-47-25–> Seite «Bereich konfigurieren» öffnet sich.
  3. «Export» auswählen.
    16-11-_2015_08-47-40–> Seite «Export» öffnet sich.
  4. «XML-Format» auswählen und [Weiter >>] anklicken.
    16-11-_2015_08-47-54
  5. «Vollständiger Export» auswählen und [Exportieren] anklicken.
    16-11-_2015_08-48-10–> Export startet.
  6. Wenn Export abgeschlossen ist, «Download here» zum Herunterladen anklicken.
    16-11-_2015_08-48-47–> Die zip-Datei wird auf dem Rechner gespeichert.

 

Bereich importieren

  1. Confluence-Administration «Allgemeine Konfiguration» auswählen.
    16-11-_2015_09-00-44–> Seite «Administatorzugriff» öffnet sich. Dort das Admin-Passwort eingeben.
  2. Im Seitenbaum und Administration «Sichern und Wiederherstellen» auswählen.
    –> Seite «Sichern und Wiederherstellen» öffnet sich.
  3. Unter «Backup einer Installation/eines Bereiches hochladen und wiederherstellen» die vorher exportierte zip-Datei zuordnen und [Hochladen und Wiederherstellen] anklicken.
    16-11-_2015_09-08-25–> Import startet. Es kann auch sein, dass Warnhinweise kommen, wenn die ID des Bereiches bereits existiert. Dann wird ein bestehender Bereich überschrieben!
  4. Wenn der Import abgeschlossen ist, erscheint «Complete.»
    –> Der importierte Bereich ist nun verfügbar.

Der Import funktioniert problemlos. Nur Referenzen auf Benutzer, welche im neuen System nicht angelegt sind, werden nicht gefunden, aber damit kann man umgehen.

 

Bei der Confluence Hilfe kann man unter den folgenden Themen auch dazu nachlesen:

  • Exporting Confluence Pages and Spaces to XML
  • Restoring a Space

 

.over-and-out

WLAN-Router sollen unsere Handys aufladen

Davon rede ich doch schon seit Jahren. Schön, dass die Forschung nun auch diese Idee hatte. Ich erinnere mich noch an die Gewerbeschule vor 30 Jahren. Schon da hatte mir der Lehrer für Elektrotechnik erzählt, dass die Bauern in der Nähe des Landessenders Beromünster die Neonröhren nur einmal zünden mussten und diese dann durch die Radiowellen weiterleuchteten… Und wenn wir schon die Umwelt mit dem Elektrosmog vollpumpen, wieso können wir dann diese Energie nicht auch fürs Laden/Betreiben von Geräten brauchen?

Erste Tests mit dem neuen Stromversorgungs-System sind bereits erfolgreich verlaufen. So ist es den Forschern gelungen, Handys in einer Modem-Entfernung von bis zu 8,5 Metern aufzuladen.

Das wäre vielleicht auch die Lösung, um die Apple Watch dann wirklich länger als 16 Stunden betreiben zu können.

Jedenfalls ist das dann sicher ein Grund für mich mal wieder auf neue Endgeräte umzusteigen.

 

Quelle: 20 Minuten – WLAN-Router sollen unsere Handys aufladen – News

.over-ende-und-out

Joey Kelly – America for Sale

Das Buch hört sich vom Konzept her ja schon mal interessant an: Einmal quer durch die USA von West nach Ost, ohne Geld in der Tasche. Alles Geld zum Leben muss erarbeitet werden und geschlafen wird nur „auf der Strasse“.

Somit gehe ich mit einigen Erwartungen in das erste Kapitel hinein und werde umgehend enttäuscht. Joey nimmt dank seiner Bekanntheit am ersten Tag beinahe die komplette Reisekasse als „Almosen“ rein. Schön für Joey, aber ein Nobody hätte hier keine Chance gehabt. Die zweite Enttäuschung ist die eigentliche Reise. Nicht dass diese interessant wäre, jedoch wird zu 2/3 im Buch über Joey’s Extremwettkämpfe oder die Geschichte der Kelly Family erzählt. Eigentlich müsste das Buch wie folgt heissen: Zurück in die USA, um nochmals die Geschichte der Kelly Family zu erzählen…“. Nur dass bei diesem Titel niemand das Buch lesen möchte.

Nun aber das Interessante über das Buch. Obwohl ich kein Fan der Kelly Family war oder jemals werde, hat mir das Buch gefallen, da ich unbelastet etwas über deren Geschichte erfahren habe. Die unbelastete Art hat es geschafft eine gewisse Sympathie für diese langhaarigen schlechtgekleideten Iren zu spüren. Joey kenne ich nur von seinen Auftritten aus den verschiedenen TV-Total-Ablegern, wo er eher als etwas eingebildet erscheint. Wobei ich jetzt mehr das Gefühl habe, dass er einfach der knallharte Wettkämpfer ist, der den unbedingten Willen zum Siegen hat und deshalb ein wenig schief rüberkommt.

Eine weitere Kritik am Buch: Alles wird bis ins Detail erklärt, so dass es auch jeder noch so ungebildete Geschichtsignorant versteht. Vielleicht hat man sich dabei auch die Zielgruppe der TV-Total-Zuschauer als Messlatte genommen… Ist zwar nett für die Doofen, aber für mich war eine Erklärung zum Grund von Ground Zero oder 9/11 total überflüssig. Wie auch was die NRA ist und dass man in den USA alles mit dem Auto erledigt uvm.

Fazit: Leichte Lesekost, angenehm aber ohne literarische Höhepunkte geschrieben. Ideal als Lesestoff für den Urlaub oder auf lange Reisen. Und macht Lust Joey persönlich kennen zu lernen. Scheint mir doch ein netter Kerl zu sein, der trotz seiner Geschichte auf dem Boden geblieben ist.

2

© 2024 hacker.li

Theme von Anders Norén↑ ↑