|
|||
|
.NET, Delphi, ... - Sisulizer Localization Tool Support > Technical Support (You need to be registered at the forum to write) > Bugs and Quirks in Sisulizer > InterBase "cannot transliterate character between character sets" error
|
| Moderated by: Renate.Reinartz, Markus.Kreisel, Jaakko.Salmenius, Ilkka.Salmenius |
|
||||||||||||||||
| InterBase "cannot transliterate character between character sets" error - Bugs and Quirks in Sisulizer - Technical Support (You need to be registered at the forum to write) - .NET, Delphi, ... - Sisulizer Localization Tool Support | |||||||||||||||||
| Author | Post | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
|
akahanek Member
|
Hi, I use Interbase db server to store language translations. I make some translations, then I try to use the "Build item" button and the followin error occurs: "cannot transliterate character between character sets" In our database we use the WIN1250 charset and I suspect, that Sisulizer uses another one, maybe ASCII (or none and ASCII is used as default) and this could be the source of this kind of problems. Is the database suposed to be in UNICODE_FSS charset or what could be the solution? Thank you
____________________ Ales |
||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
|
Jaakko.Salmenius Administrator
|
Hi, Windows code page 1250 is Eastern European code page. It is compatible to Polish, Czech, Slovak, etc. If your application contains Western European languages such as German or French Sisulizer is using Windows code page 1252. You can change this by right clicking the source in the project tree and choosing Properties and selecting Encodings sheet. However code page 1250 can not fully write German and French. What are the languages in your project? Can you send your project fiel (.slp) and the SQL srcipt that you used to create Interbase database to support (at) sisulizer.com What is your Interbase version and dialect it uses? Best regards, Jaakko Last edited on Tue Mar 27th, 2007 02:46 am by Jaakko.Salmenius ____________________ http://www.sisulizer.com - Three simple steps to localize |
||||||||||||||||
| |||||||||||||||||
|
|||||||||||||||||
|
Jaakko.Salmenius Administrator
|
One more thing. Unicode is not needed but if you use code pages you should not limit it to 1250. Jaakko
____________________ http://www.sisulizer.com - Three simple steps to localize |
||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
|
akahanek Member
|
I tried to tweak this and found the following: I have created a new database with some test tables. I did not use any charset specification to the string fields. Then Sisulizer works fine, updates go through smoothly. But .... When I created a table with some string fields with UNICODE_FSS charset, then the connection should be made also with UNICODE_FSS charset to avoid the "cannot transliterate charset ..." error. But obviously Sisulizer does not have any option to specify the charset and the error is raised then. What do you think about it? Did you try to use fields with another than NONE charset? Could you try it? Thanks for help (We are before the decision to buy or not to buy Sisulizer Enterprise and this is very important to us)
____________________ Ales |
||||||||||||||||
| |||||||||||||||||
|
|||||||||||||||||
|
Jaakko.Salmenius Administrator
|
I start testing today. What is your Interbase version? Best regards, Jaakko
____________________ http://www.sisulizer.com - Three simple steps to localize |
||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
|
akahanek Member
|
In fact we use Firebird 1.5.3, but it should not be the problem. Last edited on Mon Aug 7th, 2006 11:10 am by akahanek ____________________ Ales |
||||||||||||||||
| |||||||||||||||||
|
|||||||||||||||||
|
Jaakko.Salmenius Administrator
|
OK. I will start testing characters sets now. I let you know how is procees.
____________________ http://www.sisulizer.com - Three simple steps to localize |
||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
|
akahanek Member
|
Thanks. As for me - now I think, that the localization field shoud not use any charset to work with Sisulizer. I will test this too.
____________________ Ales |
||||||||||||||||
| |||||||||||||||||
|
|||||||||||||||||
|
akahanek Member
|
I did some tests and there is my solution:
This situation could improve with Firebird 2.0 and the new UTF8 charset. The current UNICODE_FSS has several problems and is deprecated.
____________________ Ales |
||||||||||||||||
| |||||||||||||||||
| |||||||||||||||||
|
Jaakko.Salmenius Administrator
|
Hi, This is how database writing and reading works. Internally Sisulizer always stores everyting in Unicode (UTF-16LE). When creating localized files or database fields data needs to be converted. The method is: 1) If a field is an Unicode field (e.g. WIDEVARCHAR), Sisulizer always read and writes values in Unicode. So there is not conversion. 2) If a field is not an Unicode field (e.g. VARCHAR or BLOB), Sisulizer converts the Unicode string to a code page strings. Source property dialog (right click the database name in the project tree and choose Properties) has an encoding sheet that specifies what code pages is used with each language. The default code page is the default Windows code page of that language. For example for German, English and French it is 1252, for Polish it is 1250, for Japanese it is 936, etc. Now this is where the problem arises if you have a table or field having a caracter set restrictions. When writing Interbase checks if the string stream is valid string of that character set. I don't know how the checking is done but there might be a lookup table or something. This is a bit odd because from binary point of view string stream of 1250 and 1252 are identical. There is not 100% sure way to detect it. Anyway somehow Interbase fails to write string having different code page. Anyway I failed to reproduce this. The best way is to have charcter set restriction set to NONE. However if you need to have it 1250 please send me the SQL script of your table and also the string and its translations that fails to write. Best regards, Jaakko
____________________ http://www.sisulizer.com - Three simple steps to localize |
||||||||||||||||
| |||||||||||||||||
| Current time is 07:11 am | |
| .NET, Delphi, ... - Sisulizer Localization Tool Support > Technical Support (You need to be registered at the forum to write) > Bugs and Quirks in Sisulizer > InterBase "cannot transliterate character between character sets" error | |
Sisulizer software localization tool - Three simple steps to localize