Author Topic: Translating ArcaOS to local languages  (Read 24586 times)

RickCHodgin

  • Guest
Re: Translating ArcaOS to local languages
« Reply #15 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.

Tuure Linden

  • Jr. Member
  • **
  • Posts: 88
  • Karma: +0/-0
    • View Profile
Re: Translating ArcaOS to local languages
« Reply #16 on: October 01, 2018, 12:47:28 pm »
The modified VIEW.EXE sounds quite useful to me. What do the others think?

RickCHodgin

  • Guest
Re: Translating ArcaOS to local languages
« Reply #17 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.
« Last Edit: October 01, 2018, 02:35:52 pm by Rick C. Hodgin »

Lars

  • Hero Member
  • *****
  • Posts: 1361
  • Karma: +70/-0
    • View Profile
Re: Translating ArcaOS to local languages
« Reply #18 on: October 02, 2018, 12:26:27 pm »
Look at "WinSetHook" function.

Mathias

  • Full Member
  • ***
  • Posts: 196
  • Karma: +2/-0
  • using ArcaOS
    • View Profile
    • IRC
Re: Translating ArcaOS to local languages
« Reply #19 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. : )
« Last Edit: October 19, 2018, 07:51:07 am by Mathias »