Support forum of the software localization tool Sisulizer


.NET, Delphi, ... - Sisulizer Localization Tool Support Home

Get in contact with the makers of Sisulizer.
Our forum is open for all questions around Sisulizer from customers and prospects.
Don't hesitate to register and ask. The Sisulizer team will answer ASAP.

Search     Help Home Sisulizer Website Download
Search by username
Not logged in - Login | Register 

 Moderated by: Sisusupport, Renate.Reinartz, Markus.Kreisel, Ilkka.Salmenius
New Topic Reply Printer Friendly
Resource Strings truncated at ~2048 characters - Bugs and Quirks in Sisulizer - Technical Support (You need to be registered at the forum to write) - .NET, Delphi, ... - Sisulizer Localization Tool Support
AuthorPost
 Posted: Wed Mar 28th, 2018 03:26 pm
PM Private Upload Quote Reply
Bill Auerbach
Member
 

Joined: Wed Jun 3rd, 2015
Location:  
Posts: 27
Status: 
Offline
Hello,

I've run into a limit - STRING TABLE strings are being truncated at about 2048 characters.   This is with EXEs built with Visual Studio 2015 and C++.  Is there an option to raise the string length limit to at least what Visual Studio's limit is (if there even is one)?

One big problem: I don't know when a string is truncated until I build a release to be translated. In one case, I used the built-in translation engine and didn't know the truncation occurred.  The program crashed because of the missing string.

Because I use a lot of pipe delimited lists for message building, those with many entries have overflowed.  I would rather not create new IDs with the truncated text because then the ID and all of the indices used in the source code have to be changed.  Visual Studio doesn't show the string length so detecting this as I add to string lists adds further to the problem of managing this.

Hopefully there is an easy way to increase the limit.

Thank you and Best regards,
Bill

Version: 4.0 (Build 370)

Last edited on Wed Mar 28th, 2018 10:17 pm by Bill Auerbach

Back To Top PM Private Upload Quote Reply

 Posted: Fri Mar 30th, 2018 07:29 am
PM Private Upload Quote Reply
Janusz Grzybek
Super Moderator


Joined: Fri Dec 1st, 2006
Location: Zabrze, Poland
Posts: 3805
Status: 
Offline
Hello Bill,

I asked our CTO about this issue.

Janusz



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Sat Mar 31st, 2018 01:51 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Administrator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2001
Status: 
Offline
Hi Bill,

The maximum length of Windows resource string is 4097 (! yeah odd number).

I tested an EXE (both 32 bit and 64 bit with string length of 4000. It did not truncate.

I think that this is related to the string value itself. Can you zip your EXE and Sisulizer project file (.slp) into a zip file and upload it to us. Click the above Private Upload button.

Ilkka



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed Apr 4th, 2018 12:38 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Administrator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2001
Status: 
Offline
Thank you for the sample. I used Sisulizer to create localized DLLs. Because your .slp did not have translations for the long string Sisulizer used the original string. In all language the string in resource DLL was exactly the same as in the original EXE. So not truncation happened.

Could it be that when you application reads the long resource strings and then used it (e.g. renders) the truncation happends.

Ilkka



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed Apr 4th, 2018 01:00 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Administrator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2001
Status: 
Offline
If you cannot find any problem in the code where you use the resource string check if the resource string is really truncated in the EXE.

1) Open Visual Studio
2) Choose File | Open | File
3) Browse the EXE file
4) VS shows the resources of the EXE
5) Locate the resource string
6) Repeat 2-5 the resource DLL.
7) Compare the two strings to see if they are different.

Ilkka



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed Apr 4th, 2018 01:03 am
PM Private Upload Quote Reply
Bill Auerbach
Member
 

Joined: Wed Jun 3rd, 2015
Location:  
Posts: 27
Status: 
Offline
Thank you Ilkka,

The problem is the English string in Sisu is truncated.  Once translated, so is the translation.  Attached is the screen grab.

If you run the EXE, the string length is reported, and this is longer than the string in SISU.

From res hack, here is the part of the string in the EXE that is missing:



Thank you,
Bill

Attachment: Sisu.png (Downloaded 8 times)

Last edited on Wed Apr 4th, 2018 01:15 am by Bill Auerbach

Back To Top PM Private Upload Quote Reply

 Posted: Wed Apr 4th, 2018 10:14 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Administrator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2001
Status: 
Offline
I still don't see any truncation. Your EXE has two long srings.

10000 is shorter than 10001. it is identical to the later except does not have last 4 lines.

It seems that the last line of the longer string (10001) is truncated because it ends to

"... the flush bottle is ALMOST "

However this is not because of Sisulizer. Your EXE has this value and this is what Sisulizer scans and this is also what Sisulizer writes if there is no translation.

Ilkka



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed Apr 4th, 2018 10:23 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Administrator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2001
Status: 
Offline
I might know what you mean.
When you view a long string in Sisulizer's grid the does not show all the string. So Sisulizer's grid cuts the string. Internally it is still the original. Because of the truncation in the grid translator might enter only partial translation.

This is why it is better to use the edit dialog when translating very long strings. Right click on a translation cell and choose Translation | Edit to open the edit dialog. There you can see the complete string.

Ilkka

Attachment: Untitled.png (Downloaded 6 times)



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Private Upload Quote Reply

 Posted: Wed Apr 4th, 2018 01:00 pm
PM Private Upload Quote Reply
Bill Auerbach
Member
 

Joined: Wed Jun 3rd, 2015
Location:  
Posts: 27
Status: 
Offline
Hi Ilkka,

Yes, it is a grid truncation problem.  The Edit String as you say does show the whole original and translated string.  I've never used it. :)  Then it would be nice if double clicking the original text grid box would open the Edit String dialog.

Note there's a bug in Edit String:  If you move the scrollbars of either text pane and resize the window, it will randomly (sometimes does, sometimes doesn't) disable both scrollbars preventing moving in either pane.  Resizing again seems to enable the scrollbars again.

Thank you,
Bill

Back To Top PM Private Upload Quote Reply

Current time is 12:42 pm  
.NET, Delphi, ... - Sisulizer Localization Tool Support > Technical Support (You need to be registered at the forum to write) > Bugs and Quirks in Sisulizer > Resource Strings truncated at ~2048 characters



WowUltra modified by Sisulizer Copyright © 2007-09 by Jim Hale - Based on WowBB Copyright © 2003-2006 Aycan Gulez

Sisulizer software localization tool - Three simple steps to localize