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
"Default language" doesn't work in .NET Resource Sources - 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: Thu Dec 3rd, 2015 07:30 am
PM Private Upload Quote Reply
Impact
Member
 

Joined: Wed Jul 11th, 2007
Location: Vienna, Austria
Posts: 91
Status: 
Offline
I have a project with one source: a .Net resource "Resource.resx" (see below)
Languages in Project: de, fr, fr-CA
In the properties of the source I set "Original Language" = English (as the resource file is originally written in English).
I set "Default language" to German (I want German to be the default translation, and English to be the fallback, in case there is no German translation available)

I set "Items that localized resource files contain" to "All".

Status of the translation:
  • String1 is translated in de, fr, fr-CA
  • String2 is translated in de, fr
  • String3 is translated in de
I generate the Output.

Problems:
  • Resource.fr-CA: String2 is taken from Original, should be "fr" because it is translated in the main language "fr"
  • Resource.fr-CA: String3 is taken from Original, should be "de" becaus of the "Default language"
  • Resource.fr: String3 is taken from Original, should be "de" because of the "Default language"
Sisulizer Project:

<?xml version="1.0" encoding="utf-8"?>
<document created="20151202160812" version="4.0.358" date="20151203091246" scan="3" scanned="20151203090419">
  <lang id="de"/>
  <lang id="fr"/>
  <lang id="fr-CA"/>
  <source class="TNetResourceSource" name="Resources.resx" original="en" defaultlanguage="de" date="20151203075438" version="net45" righttoleft="nrlNone" writemethod="nwAll">
    <excludeddatatypes>
      <class>TBinaryData</class>
      <class>TColorData</class>
      <class>TImeData</class>
      <class>TPictureData</class>
      <class>TReadingOrderData</class>
      <class>TFontData</class>
    </excludeddatatypes>
    <mappings>
      <keyword name="Button" class="TVisButton"/>
      <keyword name="CheckBox" class="TVisCheckBox"/>
      <keyword name="ComboBox" class="TVisComboBox"/>
      <keyword name="DataGrid" class="TVisGrid"/>
      <keyword name="GroupBox" class="TVisGroupBox"/>
      <keyword name="Label" class="TVisLabel"/>
      <keyword name="ListBox" class="TVisListBox"/>
      <keyword name="Panel" class="TVisPanel"/>
      <keyword name="RadioButton" class="TVisRadioButton"/>
      <keyword name="TextBox" class="TVisEdit"/>
    </mappings>
    <row id="String1" changed="20151203085438">
      <native>String1 Original</native>
      <lang id="de" date="20151203085452" status="3">String1 de</lang>
      <lang id="fr" date="20151203090348" status="3">String1 fr</lang>
      <lang id="fr-CA" date="20151203090339" status="3">String1 fr-CA</lang>
    </row>
    <row id="String2" changed="20151203085438">
      <native>String2 Original</native>
      <lang id="de" date="20151203085456" status="3">String2 de</lang>
      <lang id="fr" date="20151203090352" status="3">String2 fr</lang>
    </row>
    <row id="String3" state="0" created="20151203085438">
      <native>String3 Original</native>
      <lang id="de" date="20151203090544" status="3">String3 de</lang>
    </row>
  </source>
</document>

Resource.resx (part of the file):
  <data name="String1" xml:space="preserve">
    <value>String1 Original</value>
  </data>
  <data name="String2" xml:space="preserve">
    <value>String2 Original</value>
  </data>
  <data name="String3" xml:space="preserve">
    <value>String3 Original</value>
  </data>
 


Back To Top PM Private Upload Quote Reply

 Posted: Thu Dec 3rd, 2015 12:05 pm
PM Private Upload Quote Reply
Janusz Grzybek
Super Moderator


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


Resource.fr-CA: String2 is taken from Original, should be "fr" because it is translated in the main language "fr"
Because French and French (Canada) are treats by Sisulizer as separated languages, so when French (Canada) contains not translated string, Sisulizer uses default language (de) in output.

Resource.fr-CA: String3 is taken from Original, should be "de" becaus of the "Default language" Resource.fr: String3 is taken from Original, should be "de" because of the "Default language"
I tested it with my example resx fil, and I got correct results, that is Sisulizer always used Default language (in this case de) when not translated cell. Could you upload to us via Private Upload your example slp and resx file?

Janusz



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

 Posted: Thu Dec 3rd, 2015 01:50 pm
PM Private Upload Quote Reply
Impact
Member
 

Joined: Wed Jul 11th, 2007
Location: Vienna, Austria
Posts: 91
Status: 
Offline
Janusz Grzybek wrote: Hello,


Resource.fr-CA: String2 is taken from Original, should be "fr" because it is translated in the main language "fr"
Because French and French (Canada) are treats by Sisulizer as separated languages, so when French (Canada) contains not translated string, Sisulizer uses default language (de) in output.
This is contrary to the documentation (and would be illogical)
from the helpfile:
"For example if the project contains English, German and German (Switzerland) and the build language is German (Switzerland) and the default language is English the search order is German (Switzerland) - German - English - original."


Janusz Grzybek wrote:
Resource.fr-CA: String3 is taken from Original, should be "de" becaus of the "Default language" Resource.fr: String3 is taken from Original, should be "de" because of the "Default language"
I tested it with my example resx fil, and I got correct results, that is Sisulizer always used Default language (in this case de) when not translated cell. Could you upload to us via Private Upload your example slp and resx file?

done

Back To Top PM Private Upload Quote Reply

 Posted: Fri Dec 4th, 2015 03:56 am
PM Private Upload Quote Reply
Ilkka.Salmenius
Moderator


Joined: Wed Aug 8th, 2007
Location: Tokyo, Japan
Posts: 2012
Status: 
Offline
Thank you for the file.

You are right. There was a bug in Sisulizer. When using .resx, Items that localized files contain is set to All and there was a default language the default language was ignored. I fixed this. The fix will be in the next build (359).

I will also send you a personal message.

Ilkka



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

 Posted: Mon Dec 7th, 2015 08:57 am
PM Private Upload Quote Reply
Impact
Member
 

Joined: Wed Jul 11th, 2007
Location: Vienna, Austria
Posts: 91
Status: 
Offline
Thank you for the quick solution. The beta works fine and solves the problem.

I found an issue with same setup but json files. I will create a new topic for it.

Back To Top PM Private Upload Quote Reply

 Posted: Wed Jun 10th, 2020 07:57 am
PM Private Upload Quote Reply
Mike68
Member
 

Joined: Tue Sep 20th, 2011
Location: Switzerland
Posts: 12
Status: 
Offline
Hi, i am struggling as well with fallback from sub language... I have Version 4 Build 370. My project has original German Switzerland, i added Portuguese (neutral) and Portuguese (Portugal). the neutral is fully translated. In pt-Pt i have some country specific translations, the rest is empty. When i build pt-Pt, i only see those translated in pt-PT and the rest is German (original), where i would expect pt (neutral) text. in the options, default language is original. I can't set this to pt, because i have about 20 other languages in that project.
according your online help fallback is: Exact match -> Partial match -> Default language -> Original language
and according to the example, a build in pt-Pt would take the pt-Pt first, then pt next and then default (original).
So what do i wrong?

Attachment: pt_both.png (Downloaded 23 times)

Back To Top PM Private Upload Quote Reply

 Posted: Fri Jun 19th, 2020 06:30 am
PM Private Upload Quote Reply
Mike68
Member
 

Joined: Tue Sep 20th, 2011
Location: Switzerland
Posts: 12
Status: 
Offline
Hi Sisulizer Team, any chance to help me on that topic?

Back To Top PM Private Upload Quote Reply

 Posted: Mon Jun 22nd, 2020 10:29 am
PM Private Upload Quote Reply
Janusz Grzybek
Super Moderator


Joined: Fri Dec 1st, 2006
Location: Zabrze, Poland
Posts: 3877
Status: 
Offline
Hello,
I tested this with my own .NET sample with Portuguese (neutral) and Portuguese (Portugal) and I've got correct result. That is, Sisulizer used neutral language for empty translations in Portuguese (Portugal) language, without using of default language. So maybe it is related to some specific setiings in your project.
Best regards.Janusz



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

 Posted: Mon Jun 22nd, 2020 11:26 am
PM Private Upload Quote Reply
Mike68
Member
 

Joined: Tue Sep 20th, 2011
Location: Switzerland
Posts: 12
Status: 
Offline
Hi, thanks for coming back on this. Well, this particular part of the application is c++, not .net. Does Sisulizer not support that function in c++ (mfc) projects? If it does, what could be a possible wrong setting in my project? As i understand, no special settings need to be done to have the correct behaviour. Not even the preview does show the neutral text if i select pt-PT as the language to be displayed. If i choose english as default, i get english and pt-PT mixed in the preview, as expected. Would be great to get a hint...

Attachment: Sisulizer_Test2_pt-PT.png (Downloaded 17 times)

Back To Top PM Private Upload Quote Reply

 Posted: Tue Aug 18th, 2020 08:07 am
PM Private Upload Quote Reply
huhSisu
Member
 

Joined: Tue Jun 23rd, 2015
Location:  
Posts: 9
Status: 
Offline
Sadly, we have still a problem with .resx files.
If we configure a default language (it doesn't matter if original, english, or others), the outputted files are always without the default language. (no localized strings aren't even in the file)
Is there any solution for that? (btw. it works for other file types like .dll, .json)
Expected behavior:Get everything localized (if it doesn't exist in the specific language, use the default language instead)

Back To Top PM Private Upload Quote Reply

 Posted: Tue Sep 8th, 2020 08:03 am
PM Private Upload Quote Reply
Mike68
Member
 

Joined: Tue Sep 20th, 2011
Location: Switzerland
Posts: 12
Status: 
Offline
No news or hints on that subject. The sample was an exe c++ file, no .net. Is it not working on c++?

Back To Top PM Private Upload Quote Reply

Current time is 01:05 pm  
.NET, Delphi, ... - Sisulizer Localization Tool Support > Technical Support (You need to be registered at the forum to write) > Bugs and Quirks in Sisulizer > "Default language" doesn't work in .NET Resource Sources



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