OS2 World Community Forum

WebSite Information => Article Discussions => Topic started by: Martin Iturbide on June 19, 2018, 03:04:38 pm

Title: Translating ArcaOS to local languages
Post by: Martin Iturbide on June 19, 2018, 03:04:38 pm
Hi

At the Warpstock Europe 2018 live stream I saw an Alex Taylor presentation about translating ArcaOS to local languages. In short Alex said which languages version of OS/2 Arca Noae has and which are missing. Arca Noae also opened the door for the community to help with translation and said that the translation made by the contributors will be part of the open source projects (like XWorkplace).

The video replay is not available yet, and I will like to see if I can translate some parts of ArcaOS to spanish, but I forgot which was the Arca Noae email to contact them and ask for instructions. Do you have it around? I also want to see how Arca Noae has organized the components that requires translation for ArcaOS to see where I should start.

Any other thoughts about translating ArcaOS to your local language?

Regards
Title: Re: Translating ArcaOS to local languages
Post by: Laurenz Sommer on June 19, 2018, 03:40:44 pm
The email adress is dev-info at arcanoae dot com.

I encourage everyone who is interested in an ArcaOS version in his language to volunteer to help translating! From what I can see (I am not speaking for Arca Noae, just a translator myself) the number of translators is quite limited at the moment.

Laurenz
Title: Re: Translating ArcaOS to local languages
Post by: Martin Iturbide on June 20, 2018, 01:53:41 pm
Thanks Laurenz, I just wrote them.

I have interest to know the procedure or how the translation process is organized. I think if it will be public it will be easier for people to collaborate (maybe it is on the public Arca Noae wiki and I haven't found it yet).

I know it is not our case and it may be hard to get it, but I envy how Ubuntu organizes their translations collaboration on their Launchpad.  (https://translations.launchpad.net/ubuntu-rtm/15.04/+lang/es)

Regards

Title: Re: Translating ArcaOS to local languages
Post by: Martin Iturbide on June 21, 2018, 06:51:44 pm
Hi

I registered to the AN Translation team. Lewis just game the access to the mailing list and welcome the new guys.

I can say that they have created an interesting organization system to follow the translations with their Mantis tickets. I initially think I kind of understand how things are organized, but I will like to coordinate first with other spanish translator to do some trial and error and see if I'm translating some files in a correct way.

For example I need to validate if I'm saving the txt files in a correct way for the special characters and  what kind of expressions should be use (third person, formal or informal spanish).

Regards
Title: Re: Translating ArcaOS to local languages
Post by: Martin Iturbide on July 12, 2018, 10:57:54 pm
Hi

If someone has a copy of OS/2 Warp 4.52 (MCP2) in Italian or Traditional Chinese please let me know !!

Regards
Title: Re: Translating ArcaOS to local languages
Post by: Andreas Schnellbacher on July 13, 2018, 12:15:52 am
For example I need to validate if I'm saving the txt files in a correct way for the special characters
If I understand you correctly, that might depend on your text editor. A newer Notepad would probably be the worst one for translating OS/2 files, because of its UTF-16 LE encoding. ;-)

E.g., MED and EPM/NEPMD work well. But also AE.exe works (available as E.exe replacement). Just use the correct system codepage. That might be 850 in the case of Spanish. The used font should have all the special chars. I prefer System VIO 16x8. That works well with Western European languages. (For other codepages and other fonts, the Java editor Jedit might be a better choice.)

and  what kind of expressions should be use (third person, formal or informal spanish).
For German, I've used the following sources (for eCS):
Title: Re: Translating ArcaOS to local languages
Post by: André Heldoorn on July 13, 2018, 10:43:58 am
Quote
  • An old OS/2 version which is in your language.
  • Word lists, as being used bei IBM's Translation Manager/2. I would contact Jacques van Leeuwen for that. He's on the translation list.
  • Standard: IBM's Common User Access 91 (also part of TM/2, as I can remember)
  • Standard: Spanish spelling
  • Already translated texts, esp. by other people

And in that order, preferably. Using e.g. HELP to find a typical IBM-word hardly slows you down. If you were using OS/2 in the past, then you'll still be able to recognize or miss those alternative words without having to actually install an old version.
Title: Re: Translating ArcaOS to local languages
Post by: Martin Iturbide on July 13, 2018, 04:52:26 pm
Hi.

About the Spanish translation of ArcaOS, Alfred is doing a great job and he has more experience using OS/2 in Spanish. I'm just trying to assist him while I also learn the process.

From my side I need to practice a little bit how to create the .inf files so I can review the .ipf translation on the help file.

There are things that I dislike about the translation, but that is because of the age of the platform and that some components has different ways to get translated than others.

One thing is the code page. I'm using 850 for Spanish and I know it works fine, but it is old. I know the modern standard is Unicode but I don't know all the effort it can be to support Unicode on the OS/2 platform for translations. Maybe someone with more experience can explain me that or give their personal opinion.

The other thing is that each component has a different way to be translated, which is logical because some components were made by different developers and maybe with different standards. I would like to hear opinions and maybe see some samples of which is a program that made a good standard for translations. Which do you think is a good reference app that supports translations ?

Regards

 
Title: Re: Translating ArcaOS to local languages
Post by: Andreas Schnellbacher on July 13, 2018, 08:10:09 pm
From my side I need to practice a little bit how to create the .inf files so I can review the .ipf translation on the help file.
The IPF compiler ipfc.exe plus its files have to be installed. Therefore install any toolkit (best is the last). The IPF language is described in book\ipfref.inf.

I don't like editing IPF directly, as Alex does it. I always use a preprocessor that eases the work for me extremely. Others might have other opinions. As the co-author of HyperText/2 and the author of the compiler back from IPF to HTEXT, I always use that tool for .INF or .HLP file creation.

There are things that I dislike about the translation, but that is because of the age of the platform and that some components has different ways to get translated than others.
BTW: I don't like that the installer has repeated text strings, that have to be maintained separately, also for translation. Joachim finally had reduced that enormously in the last eCS, but now the same error was made again.

One thing is the code page. I'm using 850 for Spanish and I know it works fine, but it is old. I know the modern standard is Unicode but I don't know all the effort it can be to support Unicode on the OS/2 platform for translations. Maybe someone with more experience can explain me that or give their personal opinion.
Most OS/2 apps, especially system apps, can't handle Unicode. Newer OS/2 versions have functions for that, but OS/2 will never work with Unicode without a major rewrite of its tools (without having the sources).

The other thing is that each component has a different way to be translated, which is logical because some components were made by different developers and maybe with different standards. I would like to hear opinions and maybe see some samples of which is a program that made a good standard for translations. Which do you think is a good reference app that supports translations ?
That may be interesting for discussion, but most sources are not available. We can be lucky, that .MSG files can be exchanged and resources of the binaries can be replaced later to manipulate a lot (and that the toolkit provides tools for that, together with the external resource decompiler and the external lxlite tool).

There exist numerous tools to ease the translation. Some let one change the language on-the-fly, some use text files, some load parts of it in memory, some use EAs. All these are quite young and as above, can't affect the system tools. The diversity will remain.

My favorite is .TMF (Text Message File), invented by Christian, rewritten by Ulrich. The source remains plain text and to speed searching up, an index is built. Ulrich's variant is good for the system extensions, like XWP, because it's being loaded into memory. For other apps, that memory should better be saved, until it will be used. But I don't like the markup syntax in .TMF files. It's sometimes hard for the human eye to find a string.

For me, the index is a must, to get reasonable performance. The Pascal apps like NewView use also text files, but without an index, at least not a permanent one. There exists also a tool from Russia that uses zipped text files, probably using a similar method.
Title: Re: Translating ArcaOS to local languages
Post by: RickCHodgin on September 30, 2018, 06:05:00 am
From my side I need to practice a little bit how to create the .inf files so I can review the .ipf translation on the help file.
The IPF compiler ipfc.exe plus its files have to be installed. Therefore install any toolkit (best is the last). The IPF language is described in book\ipfref.inf.

I don't like editing IPF directly, as Alex does it. I always use a preprocessor that eases the work for me extremely. Others might have other opinions. As the co-author of HyperText/2 and the author of the compiler back from IPF to HTEXT, I always use that tool for .INF or .HLP file creation.

Has anyone created an open source C/C++ app to convert INF/HLP to something else in a source code form?

I found HyperText/2 (https://ecsoft2.org/hypertext2), but it's a .cmd file.  I found the article Inside INF (http://www.edm2.com/0308/inf.html) which describes the structure.
Title: Re: Translating ArcaOS to local languages
Post by: Dave Yeo on September 30, 2018, 07:28:59 pm
Well there's http://www.mgroeber.de/ipf2txt2.zip (http://www.mgroeber.de/ipf2txt2.zip) which converts to text. Also from the included readme,
Quote
I'm still thinking about a true IPFC decompiler which would create source code
suitable for re-compilation by IPFC. This has turned out to be more diffcult
than I thought because the translation process of IPFC actually looses
information from the original source file (especially with table formatting,
itemized lists etc.) which can only be "guessed" by some kind of
pattern-detection routines. Anybody interested in such a thing?

The author also has some other info on his page, http://www.mgroeber.de/os2.htm (http://www.mgroeber.de/os2.htm)
Title: Re: Translating ArcaOS to local languages
Post by: Andreas Schnellbacher on September 30, 2018, 09:59:22 pm
BTW: The only useful conversion of an INF or HLP file to anything is that of NewView. It converts to IPF, but still has some linebreak and spacing issues. All other tools are useless, regarding what I've tested.

For IPF to TXT, the best would be to convert it with HyperText/2 to HTEXT and to rework the output to strip all HTEXT commands.
Title: Re: Translating ArcaOS to local languages
Post by: Gregg Young on September 30, 2018, 10:31:02 pm
BTW: The only useful conversion of an INF or HLP file to anything is that of NewView. It converts to IPF, but still has some linebreak and spacing issues. All other tools are useless, regarding what I've tested.

My experience is the same for INF and HLP.

Viperhelp does a pretty good job of converting iIPF to several other formats  Supported output file types are: TXT, IPF, HTM, HTML, HHP, HPJ, RTF, H, VYD, and VYT.  VYD is a VyperHelp document.  VYT is VyperHelp diagnostic trace output.  H is a C language header file.  Use "HTM" is single file HTML and "HTML" for multi-file (frame) output.

http://www.edm2.com/index.php/VyperHelp

Source code is included in the package on this site.
Title: Re: Translating ArcaOS to local languages
Post by: RickCHodgin on September 30, 2018, 10:33:28 pm
BTW: The only useful conversion of an INF or HLP file to anything is that of NewView. It converts to IPF, but still has some linebreak and spacing issues. All other tools are useless, regarding what I've tested.

For IPF to TXT, the best would be to convert it with HyperText/2 to HTEXT and to rework the output to strip all HTEXT commands.

I have a system I've created for my CAlive compiler for its help system called SourceLight.  SourceLight has a graphical presentation system that is similar to the VIEW.EXE presentation in OS/2, except with a more hyperlinked PDF-style presentation.

My goals here is to scrape the os2.h and related files, and then some Borland C++ for OS/2 documentation related to those functions on OS/2 Programming, for personal use in development.  I will make the tools available once I get them completed and working in OS/2.
Title: Re: Translating ArcaOS to local languages
Post by: Tuure Linden on September 30, 2018, 11:00:29 pm
As I have written before, I've been volunteering to translate ArcaOS into German, Swedish and Finnish. I became a member of the ArcaOS translation team some while ago and have translated a few lines into Finnish, German and Swedish. I've been quite busy lately with a variety of projects and my work so I haven't had the time for translating OS/2. The main focus of the translation team has been on German which is the most difficult of the languages I know. So, I haven't done much for the project lately. It takes a lot of time to check and double-check that there's no mistakes in grammar etc in my German translations. I'm very sorry for my absence and I'll do my best to help out when I just could find the time...

Finnish is my native language and Swedish is the the other official language here in Finland and that's why those two are the easiest ones for me. I like the German language a lot and I used to be quite fluent with it 10-15 years ago but at the moment my German is a bit a bit rusted and that's why it takes a lot of time for me to translate into it. I've only used OS/2 Warp Finnish and English language versions and the German OS/2 jargon is also not so familiar and that brings also it's own challenge. But I like challenges and as I promised, I'll get back on the translating as soon as I'll have the time. It really would be great to have a finished German translation when ArcaOS 5.1 comes out.
Title: Re: Translating ArcaOS to local languages
Post by: RickCHodgin on September 30, 2018, 11:16:11 pm
As I have written before, I've been volunteering to translate ArcaOS into German, Swedish and Finnish. I became a member of the ArcaOS translation team some while ago and have translated a few lines into Finnish, German and Swedish. I've been quite busy lately with a variety of projects and my work so I haven't had the time for translating OS/2. The main focus of the translation team has been on German which is the most difficult of the languages I know. So, I haven't done much for the project lately. It takes a lot of time to check and double-check that there's no mistakes in grammar etc in my German translations. I'm very sorry for my absence and I'll do my best to help out when I just could find the time...

Finnish is my native language and Swedish is the the other official language here in Finland and that's why those two are the easiest ones for me. I like the German language a lot and I used to be quite fluent with it 10-15 years ago but at the moment my German is a bit a bit rusted and that's why it takes a lot of time for me to translate into it. I've only used OS/2 Warp Finnish and English language versions and the German OS/2 jargon is also not so familiar and that brings also it's own challenge. But I like challenges and as I promised, I'll get back on the translating as soon as I'll have the time. It really would be great to have a finished German translation when ArcaOS 5.1 comes out.

We could create a modified VIEW.EXE program that uses a localization dictionary to do real-time conversion on words or phrases, allowing the original English version to be sent out, and then using that content as a key string which looks into the localization file for the translation.

A parsing tool could create the entire range of text for any target strings, and then they could be translated externally allowing the localization files to be plug-ins to VIEW.EXE to allow instant translations without having to reload any other versions.  It would also allow the dictionary of words to be used in other help files that do not have an explicit translation provided for.  It wouldn't be 100% accurate in those versions, but it might be better than nothing for un-translated files.

This would work for the help files.
Title: Re: Translating ArcaOS to local languages
Post by: Tuure Linden on October 01, 2018, 12:47:28 pm
The modified VIEW.EXE sounds quite useful to me. What do the others think?
Title: Re: Translating ArcaOS to local languages
Post by: RickCHodgin on October 01, 2018, 02:33:44 pm
We could create a modified VIEW.EXE program that uses a localization dictionary to do real-time conversion on words or phrases, allowing the original English version to be sent out, and then using that content as a key string which looks into the localization file for the translation.

A parsing tool could create the entire range of text for any target strings, and then they could be translated externally allowing the localization files to be plug-ins to VIEW.EXE to allow instant translations without having to reload any other versions.  It would also allow the dictionary of words to be used in other help files that do not have an explicit translation provided for.  It wouldn't be 100% accurate in those versions, but it might be better than nothing for un-translated files.

This would work for the help files.

It occurred to me on the way in to work today ... the way the Warp 4 voice / speech recognition system works, by hooking into windows and allowing input where possible, maybe using functions like WinBeginEnumWindow(), WinEndEnumWindow(), and WinQueryWindowProcess(), we could even create a translation matrix that sits on top of all existing windows, allowing a window to be created which has language controls off to the side, allowing for translation of text by pressing a button.

A window like this:

Code: [Select]
Standard Window:
+--+-----------------+--+--+--+
|  | Window Title    |  |  |  |
+--+-----------------+--+--+--+
|                             |
|  Hello, world!              |
|                             |
|      +--------------+       |
|      |    Close     |       |
|      +--------------+       |
+-----------------------------+

Is augmented with a plugin that presents a window near it for translation controls:
Code: [Select]
+--+-----------------+--+--+--+
|  | Window Title    |  |  |  |
+--+-----------------+--+--+--+
|                             |---+
|  Hello, world!              | X |
|                             | L |
|      +--------------+       | A |
|      |    Close     |       | T |
|      +--------------+       |---+
+-----------------------------+

And after the translation controls are clicked, it overlays each bit of English text with any translation it can find, and allows the text to be translated right there on-the-fly by an edit screen available in the translation control interface:
Code: [Select]
+--++--------------------+-+--+
|  ||Título de escaparate| |  |
+--++--------------------+-+--+
| +------------+              |---+
| |¡Hola Mundo!|              | X |
| +------------+              | L |
|      +---+------+---+       | A |
|      |   |Cerrar|   |       | T |
|      +---+------+---+       |---+
+-----------------------------+

This would work for the presentation manager.  And for console windows, we could either scrape the screens looking for words/phrases that are there and translating them, or if there's an API to intercept the Vio*() functions, we could capture them that way by hooking into the DLL's target address with a plugin, so it calls our function, which we then call the real DLL function, allowing us to intercept all reads/writes/operations.

But for the Presentation Manager, each of the overlay portions of text can be clicked on to see the full translation.  A plugin web-based service can be installed to allow auto-translations to other languages based on the phrase or words at each point.

The only issue would be some words are longer and some are shorter, so we'd need to have them be overlays, with the ability to possibly change font, compress the width, center the text, etc., to make the new text in the other language fit in the space allocated for it by the original language.

We might also be able to use WinSetWindowULong() or WinSetWindowPtr() to point to a sub-classed function, so that we can intercept all drawing operations and maybe even do real-time augments by intercepting the WinDrawText() and related functions, to actually make something a permanent addition to the screen through the plugin augment.

It would allow the user to not only change the text, but define overrides for the font, size, color, etc.  It would be like a combination translation + facelift for the window.

In my Visual FreePro project, I called these mashes, as you could effectively take the skin of a form as it exists and is rendered by the window, then grab the bitmaps from that rendering and tweak them to a new display, or pipe the content into other controls, which tie back to the originals, leaving the original functionality there as per the original program design, but then allowing the overrides desired to change the thing when the source code was not available.

It doesn't change the actual operation of the program, but only puts a new skin over the top so that clicking here or dragging there on the skin translates to its real positions on the real form.

I have so many ideas I'd like to bring forth for people to use.
Title: Re: Translating ArcaOS to local languages
Post by: Lars on October 02, 2018, 12:26:27 pm
Look at "WinSetHook" function.
Title: Re: Translating ArcaOS to local languages
Post by: Mathias on October 17, 2018, 05:16:09 pm
As asked on the ArcaNoae tracker, Alfredo told me he recommends the use of either eFTE/2 or QE.

With these two I have steady progress translating the files, one by one. I am using QE for files that require a special codepage. eFTE/2 is not code-page aware and therefore "stays" in the codepage, that the document came with originally. - I like the way eFTE/2 looks and feels, also its features. - Also it's got syntax hilighting, which is especially helpful to translate IPF files and such.

Organisation wise, I can say that the ArcaNoae tracker that is used for reporting bugs, also is THE place download to-be-translated and upload the translated files.
Personally I quite like the way the tracker handles and the atmosphere in the translation team. - Thumbs up. Everybody that has thought about investing free time for such a nice operating system should give it a try! Be sure though, it will consume quite some time, requires reading and staying up2date with development. As for myself, I do invest around 2 - 3 hours per day for translations. I have never recieved any e-mails saying that I should speed up or so. - Don't assume it's stressful. The opposite is the case. : )