Author Topic: ashlang.trid.xml for Ashampoo products translation  (Read 659 times)

jenderek

  • Sr. Member
  • ****
  • Posts: 375
ashlang.trid.xml for Ashampoo products translation
« on: February 17, 2023, 04:46:53 PM »
Hello trid users,

Some days ago i helped a friend with his computer. I run Pirisoft ccleaner
and it complains about unused 7 byte file name extension ASHLANG. These
samples are part of Ashampoo Burning Studio 24. That is a CD-ROM burning
application.  The inspected samples are found in sub directory lang inside
"c:\Program Files (x86)\Ashampoo\Ashampoo Burning Studio 24" program directory.

Unfortunately this program fails in category "nice shine only". So all
internals are not revealed for users. Unfortunately i found few information
about ASHLANG.  A few information can be found on Ashampoo translation
systems web site on github.  This is expressed by line like:
 <RefURL>
 https://github.com/RealAshampoo/Ashampoo-Translation-Systems/blob/main/README.md
 </RefURL>

You can change the language that is used by program when you press the
little black and white coloured icon with upcased letter A and star symbol.

That is nowadays an evil behaviour. In ancient times when half of the people
have a Hercules graphic card in their personal computer which can only
display two colour this makes sense to me. But nowadays most have graphic
equipment that can display colours with 32 bit depth. So why do not use this
because people are just a few kind of animals that have eyes as sensors for
3 different colour mixtures. On the hand there exist only few or basic
computer peripheral devices for pressure or smell.

Now this icon clicked opens a windows with a table where on the left side
coloured flags of countries are listed. If the goal is that also children in
kindergarten age should use a computer this now makes sense. Even when the
kids could not read they see German flags with black, red and yellow
horizontal stripes and probably know this is something for "german". But if
you choose an icon that is not recognized by the majority of the people then
this makes not sense. Then in some years this will be a mystery or
complicate to understand to our descendants like the Egypt hieroglyphs for
us today.

That this is true and becomes a problem can be seen by the following
example. I have went to school and university for more than ten years to
read, write and understand complex abstract handling instructions like "same
my data in foo format on bar media" or in short "same my data". That is
expressed in many programs by red floppy disc icon. I have used floppy discs
many years ago by myself. So when i see this icon then of course i get
instantly the association that this is related to action save on floppy
storage. But today floppy discs are not used any more by most people. So
today this storage medium is replaced by USB sticks for example. So if you
believe in the pragma of symbols and icons you must replace the floppy disc
icon by an USB stick icon. And maybe you must replace this by an apple watch
symbol in a few years later But people just leaving school or university
have probably never seen or used a floppy disc. So such people must first
learn learn and understand the instruction "save my data on storage". And
additional these must learn that this is visualised by a red square icon. So
for these such symbols make life not easier.

The table contains 3 columns. The first is labelled language. The second
contains the native name and the third contains a comment. So this table
looks like:

English-United Kingdom   Engish-GB   Chris Brooker   
English-United States   -         
Italina-Italy        Italiano-IT   last recision by G Franco Bosio on November 2022

So when you click on Italy then this selected language will become active
the next time the program is started. The translated message text then shown
is taken from sample with suffix ASHLANG. So in the example for Italy and
BurningStudio software this is BurningStudio-it-it.ashLang. Or when you
select German and use the AutorunEditor component the message text is taken
from AutorunEditor-de-de.ashLang. So i mention this observed facts in remark
line.

I have not found a registered mime type for such ASHLANG samples. So i use
generic mime type for binary files.  That is expressed by line like:
   <Mime>application/octet-stream</Mime>

When running TrID on such ASHLANG examples i get an expected output.  All
examples are described generic as "Unknown!". So no sub classification is
done here and so file name extension is wrong (See appended
output/trid-v-old.txt).

For comparison reason i check these examples by file command utility. When
running file command (version 5.44) here most examples are also described
generic as "data" or are misidentified as "DIY-Thermocam raw data" (See
appended output/file-5.44.txt)

For comparison reason i also run the file format identification utility
DROID (See https://sourceforge.net/projects/droid/). This also does not
recognize the ASHLANG samples.

After running tridscan to generate new definition ashlang.trid.xml i look
add pattern, try to understand and began to refine the definition.  First
XML construct looks like:
   <Bytes>5552455346494C45</Bytes>
   <ASCII> U R E S F I L E</ASCII>
   <Pos>0</Pos>

Second XML construct looks like:
   <Bytes>00000000006C616E67</Bytes>
   <ASCII> . . . . . l a n g</ASCII>
   <Pos>11</Pos>

At offset 32 the language id (like de-de en-GB en-us it-it) is stored as
UTF-16 little endian). Together with terminating nil character the length of
this string is always 6. Apparently this length information is stored as 4
byte little endian before at offset 28. So this facts are expressed by XML
constructs like:

   <Bytes>0000000000000006000000</Bytes>
   <Pos>21</Pos>

   <Bytes>0000000000000006000000</Bytes>
   <Pos>21</Pos>

   <Bytes>00</Bytes>
   <Pos>33</Pos>
   
   <Bytes>002D00</Bytes>
   <ASCII> . -</ASCII>
   <Pos>35</Pos>
   
   <Bytes>00</Bytes>
   <Pos>39</Pos>
   
   <Bytes>000000</Bytes>
   <Pos>41</Pos>

Afterwards at offset 44 the length information for next string is stored as
4 byte little endian (here i got "low" values like 0 5 6 7 8 9 10 11 18 20
see appended output/file.txt). That is expressed by XML construct like:
   <Bytes>000000</Bytes>
   <Pos>45</Pos>

Afterward at offset 48 the lang native name is stored as UTF-16 string. This
looks like Deutsch, Italiano, English and son on.

With the new trid definition now all my ASHLANG examples are described (see
appended output/trid-v-new.txt). TrID definitions and output are stored in
archive ashlang_.zip. I hope that my XML file can be used in future version
of triddefs.

With best wishes
Jörg Jenderek

Mark0

  • Administrator
  • Hero Member
  • *****
  • Posts: 2732
    • Mark0's Home Page
Re: ashlang.trid.xml for Ashampoo products translation
« Reply #1 on: February 21, 2023, 08:12:45 PM »
Thanks Jörg!