Update: UltraVNC 1.4.3.6 and UltraVNC SC 1.4.3.6: viewtopic.php?t=37885
Important: Please update to latest version before to create a reply, a topic or an issue: viewtopic.php?t=37864

Join us on social networks and share our announcements:
- Website: https://uvnc.com/
- GitHub: https://github.com/ultravnc
- Mastodon: https://mastodon.social/@ultravnc
- Facebook: https://www.facebook.com/ultravnc1
- X/Twitter: https://twitter.com/ultravnc1
- Reddit community: https://www.reddit.com/r/ultravnc
- OpenHub: https://openhub.net/p/ultravnc

TRANSLATIONS

User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6831
Joined: 2004-04-23 10:21
Contact:

TRANSLATIONS

Post by Rudi De Vos »

http://ftp.erm.tu-cottbus.de/ultravnc/TRANSLATIONS/

We first gonna start on the viewer translations.
Code is changed, viewer is split in 2 parts
vncviewer.exe + lang.dll

Status:
English OK
French OK (only review needed)
German: new strings are still in english, need to be replaced by german. (85% done)
other 0%

Howto
+ 1) VC: all translantions are in the vncviewer.rc.
The only thing that need translation is this file. Also check if the buttons are correct sized, German text seems often longer then english. With VC you can create the dll and test it.
+ 2) LocalizeRC (freeware)
This tool export the vncviewer.rc to a txt file. After translation this txt can be back imported and saved as new vncviewer.rc.
No visualization.
+ 3) Resource Hacker (freeware)
Whit this tool you can edit .res
(http://ftp.erm.tu-cottbus.de/ultravnc/T ... viewer.res)
or .dll resources and export them back as .res. We can recreate a .rc file from the .res.
The tool is graphical, show the dalogs.

As final result, we need the vncviewer.rc or .res
Even a non programmer can give some help.

If you start on a translation, please give a replay to this Sticky.
It make no sense that 2 people start on the same translations.
Even when you have done only 20% and find it to time consuming, send us your work, we can add it on the site and perhpas someone else can continue.
CMacao
8
8
Posts: 8
Joined: 2004-11-26 11:18
Location: Portugal

Post by CMacao »

If you start on a translation, please give a replay to this Sticky.
As I said on another post I have both VncViewer and WinVnc translated for Portuguese Standard, so I am going to send it to you.

Carlos Macao
Sergio
40
40
Posts: 103
Joined: 2004-05-22 20:02
Contact:

Post by Sergio »

I am translating it to spanish ... it feels good to be able to help you in some way ... :)
rmoller
40
40
Posts: 93
Joined: 2004-08-20 09:32

Post by rmoller »

I wish to translate to Danish
lizard
Former moderator
Former moderator
Posts: 171
Joined: 2004-05-03 07:43
Contact:

Post by lizard »

it's so nice to see a good application become famous worldwide and get translated.
by the way, i strongly wish you could remember about [topic=539]this thread[/topic], again.
the new translation plan must include well consideration about word order.
unless so, a major amount of people will have to face weird translation of the software.

Ultr@VNC is localhost to connecting...
Ultr@VNC shell32.dll successfully has sent.
imagine there're only those crazy sentences above or language that you totally don't understand, on the software.

thanks.
Lizard
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6831
Joined: 2004-04-23 10:21
Contact:

Post by Rudi De Vos »

When i understand right,
For non western languages there can be a wordorder problem
when a sentence is composed with a %s.

This will only affect composed messages...

But i have no idea how i can fix this kind of problems without making a seperate exe and even then, my language knowledge is to little to put the %s in the correct insertion place.
Sergio
40
40
Posts: 103
Joined: 2004-05-22 20:02
Contact:

Post by Sergio »

TRANSLATED to Spanish (Castellano) 8)

Download it from www.ingeniasoftware.com.ar/vncviewer_sp.res
lizard
Former moderator
Former moderator
Posts: 171
Joined: 2004-05-03 07:43
Contact:

Post by lizard »

in an ordinary multi-language program there would be external language file(s) named like "uvnc_en.US.lng" or whatever, to load text from. the program loads list of text and applies them dynamically.
there might be included english language file as "default language" in the resource file of the EXE, for the case there's no language file found externally. this is good idea when a compact software like VNC, needs to be small and still works itself without any additional file. also that "localized version" which has specific language file as default, can be easily created by replacing appropriate item in the resource file.



well, i don't think there will be word order problems with "%s" expression.
now let's think about generating and translating the sentence below:

Code: Select all

"failed to delete Shell32.dll"
"Shell32.dll couldn't be deleted"
here "Shell32.dll" is a variable.

at this moment Ultr@VNC performs

Code: Select all

"failed to delete " + filename
but this can happen only in languages in which the "object" comes in the last of sentence.
when in a language the filename has to come first, this item can no longer be translated naturally.

the best solution for this is using "%s" expression.

Code: Select all

"failed to delete %s", filename
"%s couldn't be deleted", filename
this is apparently better, because here truly ANYTHING, including language and word order, can be modified except the contents of filename.



excuse me about such long post.
i know this kind of stuff should rather be discussed after ver1.0, anyway.
Lizard
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6831
Joined: 2004-04-23 10:21
Contact:

Post by Rudi De Vos »

Updated Spanish viewer dll.
.res converted to .rc and project files added

To test, copy spanish.dll as lang.dll in the viewer directory
Sergio
40
40
Posts: 103
Joined: 2004-05-22 20:02
Contact:

Post by Sergio »

Rudi:

I tested the spanish translation. I don't know why, but some words don't get translated ... maybe my fault, sorry.
I corrected the rc file, download it from www.ingeniasoftware.com.ar/vncviewer_sp.rc

There are some phrases that simply doesn't appear inside the rc file: on the menu, "View Only" , on the FT dialog, "Name", "Size", "Modified", "Desktop", "My Documents", "Network Favorites", "Removable", "Local Disk", "Network Mapped Drive", etc. ...

... maybe they are hard coded ?

And just a little detail ... the FT's History dates format is MM/DD/YY ... maybe this should respect the Windows local configuration (in my case DD/MM/YYYY)

HTH
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6831
Joined: 2004-04-23 10:21
Contact:

Post by Rudi De Vos »

The res convertion to rc is done electronic.
The eng and spanish res -> are mapped in a lib file
The lib file is use to translate the eng rc

Could be some translation are lost during the process.

Yep, some new strings are still hardcoded.
We need to check them...

Rdv
ai-soft
Posts: 2
Joined: 2004-11-30 10:10

Post by ai-soft »

I'm translating it to italian, but:
lizard wrote: in an ordinary multi-language program there would be external language file(s) named like "uvnc_en.US.lng" or whatever, to load text from. the program loads list of text and applies them dynamically.
...
lizard
Former moderator
Former moderator
Posts: 171
Joined: 2004-05-03 07:43
Contact:

Post by lizard »

ai-soft wrote:I'm translating it to italian, but:
that was just my personal opinion for post-1.0.
now they already have the existing translation framework, and some translation have been made with it.
you don't have to think about my **** right now, why don't you go ahead for Italian translation :wink:

[mod=494,1127740303]replaced bad word with ****[/mod]
Last edited by lizard on 2005-09-26 13:11, edited 2 times in total.
Lizard
Guest

Post by Guest »

Translations can be done several ways

1) seperate exe
2) seperate resource dlls
3) txt files

1) require no code changes, but hard to maintain
2) Little code changes
3) require a lot changes.

-To use text files, all calls to dialog boxes need to be replaced.
Instead of opening a dialog, you need to open the dialog and initialize the sub elements with the text from the file.
-Text files does not allow the use of specific fonts. Using a resource dll, you can also change the font to a language specific font.
-Resources does not only contain the text, but also the size of
windows and buttons. It is not necessary that a word or sentence have the same size in all languages. Using seperate dll, you can adapt the dialog layout to the string sizes or other fonts.

With LOcalizeRC you always can export the .rc as text file.
Translation comes down to translating this file.
lizard
Former moderator
Former moderator
Posts: 171
Joined: 2004-05-03 07:43
Contact:

Post by lizard »

Anonymous wrote:-To use text files, all calls to dialog boxes need to be replaced.
Instead of opening a dialog, you need to open the dialog and initialize the sub elements with the text from the file.
-Text files does not allow the use of specific fonts. Using a resource dll, you can also change the font to a language specific font.
use unicode, unicode API and unicode font.
use MessageBox*W instead of MessageBox*A.
Anonymous wrote:-Resources does not only contain the text, but also the size of
windows and buttons. It is not necessary that a word or sentence have the same size in all languages. Using seperate dll, you can adapt the dialog layout to the string sizes or other fonts.
yeah... that's the problem.
can dialogs generated from resource file be changed its size from the program dynamically?
Lizard
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6831
Joined: 2004-04-23 10:21
Contact:

Post by Rudi De Vos »

You are correct about a standard Messagebox...

But for a custom dialog box the font is embedded

Code: Select all

---------
IDD_FTCONFIRM_DLG DIALOG DISCARDABLE  0, 0, 178, 86
STYLE DS_SYSMODAL | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "Yes",IDC_YES_B,4,65,39,14
    PUSHBUTTON      "No",IDC_NO_B,92,65,40,14
    LTEXT           "Confirm message here",IDC_FTPCONFIRMCOMMENT,4,8,163,53
    PUSHBUTTON      "Yes for All",IDC_YESALL_B,46,65,40,14
    PUSHBUTTON      "No for all",IDC_NOALL_B,135,65,39,14
END
----------------------
Instead of opening the custom dialog
You need to open it, find the handles to all buttons, static text ....sendmessage new text. Possible this can also be done for fonts and sizes. If you resize, you also need some nice algorithm to auto resize all others.....
1 line of code would become 100...200, depending on the complexity of the custom dialog

It is just a lot easyer to work with language resource dll's.

For unicode, all need to be reviewed.
No chars...tchars mix, different behaviour on 9.x systems
Perhaps for V2
CMacao
8
8
Posts: 8
Joined: 2004-11-26 11:18
Location: Portugal

Post by CMacao »

As we are on this matter, in addition to the hard coded messages which need to be resourcable, I also advise you to change the size labels for the max it can visually handle. It is a little difficult to translate some English expressions using small labels.

Best regards,
Carlos Macao

PS: I am assuming you've received my files.
lizard
Former moderator
Former moderator
Posts: 171
Joined: 2004-05-03 07:43
Contact:

Post by lizard »

Rudi De Vos wrote:For unicode, all need to be reviewed.
No chars...tchars mix, different behaviour on 9.x systems
Perhaps for V2
sounds so much work!
i'll try to be helping with the code by then.
Lizard
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6831
Joined: 2004-04-23 10:21
Contact:

Post by Rudi De Vos »

CMacao,

The seperate dlls allow resizing from labels and buttons per
language. Only take me a few minutes, all is done via some graphical VC++ interface.
alfei
Posts: 7
Joined: 2004-11-16 07:28
Contact:

I want to translate it to Chinese (Simplified)!

Post by alfei »

I have a project about translating to Chinese!
CMacao
8
8
Posts: 8
Joined: 2004-11-26 11:18
Location: Portugal

Post by CMacao »

Rudi De Vos wrote:CMacao,

The seperate dlls allow resizing from labels and buttons per
language. Only take me a few minutes, all is done via some graphical VC++ interface.
I know but I don't think this is a good approach, because there is no way to synchronize my rc modifications(resources visual info are saved on rc) each time you change the same rc. As opposed to text modifications which are simple to synchronize with LocalizeRC. Am I correct?

Carlos Macao
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6831
Joined: 2004-04-23 10:21
Contact:

Post by Rudi De Vos »

True, but for time being...

rc-> text can be done without loosing info
but if we current use a text file, there is no way to easy add
some other info.

Syncronize with an easy tool as LocalizeRC is NOT easy..
Try, add an extra label in the english rc.
Syncronize with an old french ini, all lines moves one label.

The ini file is to simple, it should save info as
LabelA,"TextA" and not "TextA"
CMacao
8
8
Posts: 8
Joined: 2004-11-26 11:18
Location: Portugal

Post by CMacao »

Rudi De Vos wrote:Synchronize with an easy tool as LocalizeRC is NOT easy..
Try, add an extra label in the english rc.
Synchronize with an old french ini, all lines moves one label.
I don't see any problem. First I download the new rc, then I update my ini file, after that I compare the new and the old Ini file with a tool like http://winmerge.sourceforge.net. Shifted lines are easy to deal this way.
The ini file is to simple, it should save info as LabelA,"TextA" and not "TextA"
I think the current method I've described is simple and works(tried without problems between rc-17 and rc-19), the only precaution I mentioned has to be with the size of the labels, which must be correctly aligned and expanded to the max visual size.

Carlos Macao
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6831
Joined: 2004-04-23 10:21
Contact:

Post by Rudi De Vos »

Viewer is current available in
English
French
German --->about 10 lines still need some translation
Spanish
Portugese


http://ftp.erm.tu-cottbus.de/ultravnc/T ... NS/VIEWER/
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6831
Joined: 2004-04-23 10:21
Contact:

Post by Rudi De Vos »

alfei,

Was it you who has send my the the chinese
traditional and simplified translation for a previous version ?

If not,i placed the previous rc files online, you should be able to
reuse some parts
CMacao
8
8
Posts: 8
Joined: 2004-11-26 11:18
Location: Portugal

Post by CMacao »

Rudi De Vos wrote:Viewer is current available in
English
French
German --->about 10 lines still need some translation
Spanish
Portugese
Good work! A little correction you must not spell "Portugese". Use "Portuguese" instead.

Best regards,
Carlos Macao
goliathz
Posts: 2
Joined: 2004-12-03 02:00

Post by goliathz »

TRANSLATED to Korean

Download it from http://www.hongmart.com/vncviewer_kr.res
goliathz
Posts: 2
Joined: 2004-12-03 02:00

Post by goliathz »

Rudi De Vos,
thanks for add korean.dll file.

I tested RC19.3 on last sunday, but there was an error.

Image

During installation process, title of the korean language seletion box looked like broken!

Please change this title to 'Korean' in english, not a korean word itself. =)


thanks~
[/b]
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6831
Joined: 2004-04-23 10:21
Contact:

Post by Rudi De Vos »

Try to edit the inno setup translation file..
The hardest part will be to find the word that represent
korean :)
cool400

Post by cool400 »

Hi!

Great to see that some tough guys are doing the translation-job :D

Since I'm new to UltraVNC and found it the best free VNC-tool I like to have it completely in German.
Could anybody tell me when a complete German version of RC19.4 may be available?

BTW: if you need some help I could also do parts of the translation - if you tell me how (maybe with ResourceHacker?)...

Thanks for your good work

cool400
Locked