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
Text strings are being repeated after resource build - 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: Tue Jul 17th, 2018 07:58 pm
PM Private Upload Quote Reply
ksutton57
Member
 

Joined: Thu Mar 5th, 2015
Location: Roxboro, North Carolina USA
Posts: 44
Status: 
Offline
v4.0 build 372

After I made a change to the translated text, Save, then do a build in selected language. when I go back into the form I see the string doubled, then tripled, etc.

The new string is saying not translated

Any idea what might be causing this ?

Attachment: 7-17-2018 4-14-31 PM.png (Downloaded 24 times)

Last edited on Tue Jul 17th, 2018 08:15 pm by ksutton57

Back To Top PM Private Upload Quote Reply

 Posted: Tue Jul 17th, 2018 08:59 pm
PM Private Upload Quote Reply
Janusz Grzybek
Super Moderator


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

Probably it happened, because you changed internal structure of code when you updated source file(s). This changed context (look on 6th column on your screenshot) of string and Sisulizer detects it as new string (yellow dot in first column on screenshot), while this same string with old context was marked as Unused (blue dot in the first column on screenshot). Here is article about new, changed and unused items in a Sisulizer project: https://www.the-localization-tool.com/what-do-these-red-blue-and-yellow-dots-in-the-flags-column-mean/
If you would like remove those unnecessary duplicates, open "Project" menu and click "Remove Unused Items".
BTW: Sisulizer always requires unique context for localized strings.

Best regards,
Janusz



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

 Posted: Wed Jul 18th, 2018 12:11 pm
PM Private Upload Quote Reply
ksutton57
Member
 

Joined: Thu Mar 5th, 2015
Location: Roxboro, North Carolina USA
Posts: 44
Status: 
Offline
thanks, some of that I understand, but if you look at index 4 and 7 they are the same thing. all I did was to build in sisulizer then look at the project again and I got another duplicated string. I'll remove the unused strings I just have to be careful not to lose the translated strings.

How do I stop this from happening ?

Back To Top PM Private Upload Quote Reply

 Posted: Wed Jul 18th, 2018 12:25 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3140
Status: 
Offline
For me this looks like you have some control in your project that has an property holding multiple entries under the same context title. Sisulizer tries to organize these entries. But without unique context it just can use only the original order of the entries with the same name. And if you start to change these text it becomes impossible to keep track.

Please check if this is true for your property. Then create a single text resource entry for each of the entries. Now each text has a unique ID. Use these text resources to set the property at runtime. Now Sisulizer has a context and you can switch and change titles as you need it.

Hope this helps
Markus



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

 Posted: Thu Jul 19th, 2018 06:19 pm
PM Private Upload Quote Reply
ksutton57
Member
 

Joined: Thu Mar 5th, 2015
Location: Roxboro, North Carolina USA
Posts: 44
Status: 
Offline
I did some more testing on this and I can't do any builds anymore without it trashing the translations.

I only have Sisulizer open, I checked to make sure I have no unused or duplicates in Sisulizer. I choose "Build in selected language" and as soon as the build is done, I have dups and the new strings are missing the translations. I can send you the slp if that helps

Back To Top PM Private Upload Quote Reply

 Posted: Thu Jul 19th, 2018 06:41 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3140
Status: 
Offline
If you do a build Sisulizer does a Scan for Changes first. Sounds like your context change. Please try this:

A) Create a brand new slp for your project. This will Scan your project.
B) Import your translations from the old slp. Make sure to use import first by context then by value to re-use all translations.

This should bring you a clean new translated project.

Did you also read my previous answer? If you have such entries without unique context the next change in this entries might puzzle them again.

Markus



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

 Posted: Thu Jul 19th, 2018 08:08 pm
PM Private Upload Quote Reply
ksutton57
Member
 

Joined: Thu Mar 5th, 2015
Location: Roxboro, North Carolina USA
Posts: 44
Status: 
Offline
thanks I'll give that a try. and yes I read your answer and if I understand it correctly, you are talking about
resources.ApplyResources(Me.btnOK, "btnOK"). This particular form only has one reference to btnOK that I can see

'btnOK
'
Me.btnOK.BackColor = System.Drawing.Color.FromArgb(CType(CType(253, Byte), Integer), CType(CType(253, Byte), Integer), CType(CType(253, Byte), Integer))
Me.btnOK.BorderColor = System.Drawing.Color.FromArgb(CType(CType(253, Byte), Integer), CType(CType(253, Byte), Integer), CType(CType(253, Byte), Integer))
resources.ApplyResources(Me.btnOK, "btnOK")
Me.btnOK.ForeColor = System.Drawing.Color.FromArgb(CType(CType(81, Byte), Integer), CType(CType(81, Byte), Integer), CType(CType(81, Byte), Integer))
Me.btnOK.ImagePadding = New System.Drawing.Size(0, 0)
Me.btnOK.Name = "btnOK"
Me.btnOK.Tag = ""

Back To Top PM Private Upload Quote Reply

 Posted: Thu Jul 19th, 2018 08:49 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3140
Status: 
Offline
I meant these grdOpenTabs from your screenshot which have all the same context.

Markus



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

 Posted: Fri Jul 20th, 2018 12:32 pm
PM Private Upload Quote Reply
ksutton57
Member
 

Joined: Thu Mar 5th, 2015
Location: Roxboro, North Carolina USA
Posts: 44
Status: 
Offline
so creating a new slp and importing one of my projects seemed to fix the issue. any idea why my original slp would be acting this way ? Also this original slp file had about 90 projects in it, if that matters

Back To Top PM Private Upload Quote Reply

 Posted: Fri Jul 20th, 2018 12:36 pm
PM Private Upload Quote Reply
ksutton57
Member
 

Joined: Thu Mar 5th, 2015
Location: Roxboro, North Carolina USA
Posts: 44
Status: 
Offline
also I'm not sure what you mean by "Make sure to use import first by context then by value to re-use all translations."

I just said new then choose a project and it said do you want to import, I did not check the box to "Import also those strings that equal to the original strings", then just choose next to import

Back To Top PM Private Upload Quote Reply

 Posted: Fri Jul 20th, 2018 01:42 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3140
Status: 
Offline
My guess is that context plus original value changed at the same time. So if you change the names of objects never change the titles at the same time.
The context also contains the path of your sources to be unique. So renaming happens more often than expected. If you do a rename make a Scan for Changes. Then change titels - if needed - and do another Scan for Changes. So one Sisulizer has the value and once it has the context to keep track.

Btw. If you delete entries marked unused (blue dot) Sisulizer will store them in its translation memory.

Hope this helps

Markus



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

 Posted: Fri Jul 20th, 2018 02:53 pm
PM Private Upload Quote Reply
ksutton57
Member
 

Joined: Thu Mar 5th, 2015
Location: Roxboro, North Carolina USA
Posts: 44
Status: 
Offline
thanks, one last item. you said "B) Import your translations from the old slp. Make sure to use import first by context then by value to re-use all translations."

it looks like if I just add a new source to my project it does all this and I don't have to use Import by context > Import by value. Or do I have to still does this once the project is added

All my projects have the language xml and resx files so do you think it's just safer to just create a new slp rather than trying to import from the old slp ?

Back To Top PM Private Upload Quote Reply

 Posted: Fri Jul 20th, 2018 04:47 pm
PM Private Upload Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Monschau, Germany
Posts: 3140
Status: 
Offline
Basically a .slp is a also a sort of a translation memory. It uses unique context IDs (if possible, only very few exceptions like text lines etc.) to identify language pairs. This is a big advantage.

A traditional translation memory doesn't have a context. It always works on the value of the entry. This is a less strong connection between original and translation.
Sisulizer also can use by value as well.

The option By context and then by value is a combination of both. The good part is, that it makes full use of the context whenever possible. If the context was changed it gives the value a try.
This option is used while importing. If set in the import it does not later behaviour. Next import - new change to choose.
Some customer have very strict direction and will use by context only. That means the context can't be changed to keep language pair.

Hope this helps
Markus



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

Current time is 11:47 am  
.NET, Delphi, ... - Sisulizer Localization Tool Support > Technical Support (You need to be registered at the forum to write) > Bugs and Quirks in Sisulizer > Text strings are being repeated after resource build



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

Impress - Privacy statement

Sisulizer software localization tool - Three simple steps to localize