Jump to content
RealModScene
Charlito

Help Translation FSD3

Recommended Posts

Hi, I downloaded the new FSD3 and am working on translating it to Brazilian Portuguese. 90% is functional. Just hangs when it tries to load the new Coverflow mode and will not appear bars and weather information. Could someone help me?

Share this post


Link to post
Share on other sites

Hi. I just did a quick translation some hours ago in spanish (skin & xex file) and everything seems to work. Over 70+ people downloaded the skin and I haven't hear any complaints.

May I ask you how and with what you're translating? Maybe you're translating a function and that causes the hangs.

Share this post


Link to post
Share on other sites

Hi. I just did a quick translation some hours ago in spanish (skin & xex file) and everything seems to work. Over 70+ people downloaded the skin and I haven't hear any complaints.

May I ask you how and with what you're translating? Maybe you're translating a function and that causes the hangs.

me too, translated 90% maybe more but don't know where are some buttons and screens, i've search in all xur items, xml files ecc..

Some screen like the delete screen remain in english (when ask you if you are sure you wanna delete an object in file manager) where i can edit it? the open tray button text, the switch button text and a few more text buttons in favorite mode... the rest is done

and damn where i can edit the skin version that shows in Credits?

Share this post


Link to post
Share on other sites

Some texts are found in the SKIN file default.xzp.

But other texts are HARDCODED in the xex file (default.xex)

If you want to change texts like Open Tray, Delete stuff etc. you will have to hack the default.xex.

I don't know if you're using XUITT. But there is an option to hack default.xex. Depending on the language you're translating it may not work.

UNICODE is not supported for the hack.

Some texts will be still missing though, it was released yesterday and I didn't had any time to look for those and to include them in the database file.

Edit: Here and here you'll find more info about the problem/process.

Share this post


Link to post
Share on other sites

Some texts are found in the SKIN file default.xzp.

But other texts are HARDCODED in the xex file (default.xex)

If you want to change texts like Open Tray, Delete stuff etc. you will have to hack the default.xex.

I don't know if you're using XUITT. But there is an option to hack default.xex. Depending on the language you're translating it may not work.

UNICODE is not supported for the hack.

Some texts will be still missing though, it was released yesterday and I didn't had any time to look for those and to include them in the database file.

Edit: Here and here you'll find more info about the problem/process.

oh man thanks, this is what i need... and one last thing to edit the skin version what file i've to open? in credits shows version 0.0 and in update screen shows there's an update for the skin :(

Share this post


Link to post
Share on other sites

oh man thanks, this is what i need... and one last thing to edit the skin version what file i've to open? in credits shows version 0.0 and in update screen shows there's an update for the skin :(

Don't know exactly what you mean. Why would you want to translate the skin version?

This is how our spanish skin looks like:

Posted Image

Share this post


Link to post
Share on other sites

I don't wanna translate, yours is correct mine not why? I've edited the default skin but renaming the default.xzp to another name shows 0.0 rev 0, if i rename back default.xzp then shows again 3.0 Rev 63 like yours.

Posted Image

and as 0.0 rev 0 shows me a skin update in update tab to upgrade to 3.0 Rev63 (same version of mine)

Posted Image

Share this post


Link to post
Share on other sites

That's strange, 'cause we named the skin F3_ESP_XUITT.xzp and the Skin version is correct.

Have you translated it with XUITT?

Share this post


Link to post
Share on other sites

That's strange, 'cause we named the skin F3_ESP_XUITT.xzp and the Skin version is correct.

Have you translated it with XUITT?

no i've translated screen by screen opening all xur file with SDK, extracting default.xex with xzp tool, modding with SDK, Notepad ecc. and repacking with xzp tool again

Share this post


Link to post
Share on other sites

Then I can only give you a general advice how I would proceed:

Upload your skin unpacked. See if it works.

Then upload each xur or xml file from the default skin to your skin folder. Starting with credits.xur I guess. See if the error is still there.

Once the error is gone you'll know which file produces the 0.0 rev 0 error.

Share this post


Link to post
Share on other sites

I'm using XUITT with text encoding to UTF-8 because of the special characters of my language, but so far I could not find out what went wrong. I've done the translation of versions 2.0 and 2.2, both in the skin as the default version metro and not had these errors. I'll redo and post new results.

Share this post


Link to post
Share on other sites

Some texts are found in the SKIN file default.xzp.

But other texts are HARDCODED in the xex file (default.xex)

If you want to change texts like Open Tray, Delete stuff etc. you will have to hack the default.xex.

I don't know if you're using XUITT. But there is an option to hack default.xex. Depending on the language you're translating it may not work.

UNICODE is not supported for the hack.

Some texts will be still missing though, it was released yesterday and I didn't had any time to look for those and to include them in the database file.

Edit: Here and here you'll find more info about the problem/process.

keyser, happy to track you down here, lol. again i do hope you can make xuitt support unicode.

question: how to capture the strings hard coded in xex? you mentioned there were 100+ strings need to be translated, but acutally i sorted 200+ strings and i know there are more... what i did is just decrypt xex and open it with winhex and do search....

Share this post


Link to post
Share on other sites

Charlito, do an export Database under Database Management to save your database.

Rename your FSA_XUITT.accdr file to OLD_XUITT.accdr and copy this file into %LOCALAPPDATA%\SPIFFY360

This is my accdr database with F3 skin preloaded. Go to Database Management and import your database in your language again.

I've done a spanish and an italian version with those files without freezes. Hopefully it works out for you too.

Robins, thanks for the translation btw. :) I've started the code several months back for unicode before going again to the hospital.

Don't remember very well what went wrong, but I think it was because of not using Arial unicode.

There are a lot of strings, I've done some research with IDA Disassembler but not all texts are shown. Some are for debugging purposes I guess.

So I just write them down once I come across them. Some are in unicode some in ascii other in both formats. Some should not be translated otherwise you'll get a black screen. These have FALSE / FALSE. I've used an additional field (nulls), as it seemed the only way to include some strings that appear more than once but should only get translated once. The script.xsc file used in XUITT is basically a search and replace script for xvi32. It searches for all instances if a start address is not given.

Here is my file (strings) I use for XUITT.

xex_Default.zip

Share this post


Link to post
Share on other sites

Robins, thanks for the translation btw. :) I've started the code several months back for unicode before going again to the hospital.

Don't remember very well what went wrong, but I think it was because of not using Arial unicode.

There are a lot of strings, I've done some research with IDA Disassembler but not all texts are shown. Some are for debugging purposes I guess.

So I just write them down once I come across them. Some are in unicode some in ascii other in both formats. Some should not be translated otherwise you'll get a black screen. These have FALSE / FALSE. I've used an additional field (nulls), as it seemed the only way to include some strings that appear more than once but should only get translated once. The script.xsc file used in XUITT is basically a search and replace script for xvi32. It searches for all instances if a start address is not given.

Here is my file (strings) I use for XUITT.

keyser, they are using big endian unicode.

Share this post


Link to post
Share on other sites

Then I can only give you a general advice how I would proceed:

Upload your skin unpacked. See if it works.

Then upload each xur or xml file from the default skin to your skin folder. Starting with credits.xur I guess. See if the error is still there.

Once the error is gone you'll know which file produces the 0.0 rev 0 error.

nothing, i'm sure there's a file that display the skin version related to the xzp name, if you use the default.xzp untouched and rename it display 0.0 rev0.. maybe skin.ver?? In hex mode doesn't display nothing only a caracter, wtf?? Maybe when edit with Xuitt software generate it automatically but using manually XUI Tool i don't know what to change

Share this post


Link to post
Share on other sites

@ robins:

For example 弹出光驱 is big endian unicode _9Q.QI.q or hex 5F3951FA51499A71

I can create 5F3951FA51499A71 but F3 shows always _9Q.QI.q and not 弹出光驱. I thought this is a font problem ?

How did you get it working?

@ SPAM:

XUITT does not generate any skin.ver file. Only skin.xml/menusettings.xml and all xui files are generated. I'm afraid I cannot assist you in this regard. :(

Share this post


Link to post
Share on other sites

@ robins:

For example 弹出光驱 is big endian unicode _9Q.QI.q or hex 5F3951FA51499A71

I can create 5F3951FA51499A71 but F3 shows always _9Q.QI.q and not 弹出光驱. I thought this is a font problem ?

How did you get it working?

keyser, not sure if that's due to the font. rename the font i upload to arial.ttf and put that under media\fonts\

arialuni.rar

let's take Open Tray as an example. hex for Open Tray is 004F00700065006E00200054007200610079 (big endian unicode)

chinese translation is 弹出光驱, hex for which 5F3951FA51499A71(big endian unicode)

replace 004F00700065006E00200054007200610079 with 5F3951FA51499A71 (as you know, add 00 for the shortage).

for those ascii strings, replace them with UTF8.

worked great here, i believe you are almost there.

  • Like 1

Share this post


Link to post
Share on other sites

@keyser

Open Tray is a very good example.

here is the hacked xex i made for you to check. testopentray.rar

you can find what i did to it.

i translated 2 strings for default.xex, one is big endian unicode Open Tray, the other is the ASCII Open Tray. replaced with 5F3951FA51499A71 (hex for big endian unicode 弹出光驱) and E5BCB9E587BAE58589E9A9B1(UTF8 for 弹出光驱) respectively

on my console, if i use the default font for F3, it will display like this post-363-0-16193500-1348747845_thumb.png

if i use the font i uploaded in the previous post, you will see this post-363-0-14085800-1348747905_thumb.png

now it's your turn, i am waiting for the unicode supported xuitt...:)

  • Like 1

Share this post


Link to post
Share on other sites

now it's your turn, i am waiting for the unicode supported xuitt... :)

Perfect robins! Thanks a lot! Yes, it was a font problem then. As long as I can't continue working on GaDaBaMa for FSD3 I'll concentrate on XUITT.

I'll go through the whole code and make the necessary changes to make it UNICODE compatible - I hope to have good news by the end of next week!

Share this post


Link to post
Share on other sites

Perfect robins! Thanks a lot! Yes, it was a font problem then. As long as I can't continue working on GaDaBaMa for FSD3 I'll concentrate on XUITT.

I'll go through the whole code and make the necessary changes to make it UNICODE compatible - I hope to have good news by the end of next week!

Keyser, great great!

I already made a Chinese xex but don't know if all the strings were translated. Hope the new xuitt will make it easy, can't wait:) maybe I should release a beta to public for testing...

Share this post


Link to post
Share on other sites

Thanks for contributing. A spanish translation of the default skin was already made by bocasecaman.

If you would like to improve/change the translation I would start with his database.

Share this post


Link to post
Share on other sites

keyser, not sure if that's due to the font. rename the font i upload to arial.ttf and put that under media\fonts\

let's take Open Tray as an example. hex for Open Tray is 004F00700065006E00200054007200610079 (big endian unicode)

chinese translation is 弹出光驱, hex for which 5F3951FA51499A71(big endian unicode)

replace 004F00700065006E00200054007200610079 with 5F3951FA51499A71 (as you know, add 00 for the shortage).

for those ascii strings, replace them with UTF8.

Alright robins, I think we are almost there.

Posted Image

The file contains all my work until now. I've translated all strings with google translator just to have some chinese strings.

The Hex(Original UNICODE) to HEX(translated UNICODE) function does the following

ADR 0

REPLACEALL 4F 00 70 00 65 00 6E 00 20 00 54 00 72 00 61 00 79 00 00 BY 5F 39 51 FA 51 49 9A 71 00 00 00 00 00 00 00 00 00 00 00

The Hex(Original ASCII) to HEX(UTF-8(translated UNICODE)) function does the following

ADR 0

REPLACEALL 4F 70 65 6E 20 54 72 61 79 00 00 00 00 BY E5 BC B9 E5 87 BA E5 85 89 E9 A9 B1 00

In my screenshot it is still wrong. I don't know why. I just find it curious that copying arial.ttf without letting F3 know to use that instead of the xpr file should work. Maybe you are luckier. Let me know if the xex file is correct.

The GUI must still be finished but once this is done you'll be able to test it yourself :)

CHINESE.zip

Share this post


Link to post
Share on other sites

The Hex(Original UNICODE) to HEX(translated UNICODE) function does the following

ADR 0

REPLACEALL 4F 00 70 00 65 00 6E 00 20 00 54 00 72 00 61 00 79 00 00 BY 5F 39 51 FA 51 49 9A 71 00 00 00 00 00 00 00 00 00 00 00

The Hex(Original ASCII) to HEX(UTF-8(translated UNICODE)) function does the following

ADR 0

REPLACEALL 4F 70 65 6E 20 54 72 61 79 00 00 00 00 BY E5 BC B9 E5 87 BA E5 85 89 E9 A9 B1 00

In my screenshot it is still wrong. I don't know why. I just find it curious that copying arial.ttf without letting F3 know to use that instead of the xpr file should work. Maybe you are luckier. Let me know if the xex file is correct.

The GUI must still be finished but once this is done you'll be able to test it yourself :)

keyser,

1. unicode to unicode, original hex should start from 00, so REPLACEALL 00 4F 00 70 00 65 00 6E 00 20 00 54 00 72 00 61 00 79 00 00 BY 5F 39 51 FA 51 49 9A 71 00 00 00 00 00 00 00 00 00 00 00 00

2. utf8 to utf8 is correct, but there is a little problem for UTF8 Open Tray, if you use 4 Chinese charactors to replace the original string, there will be no separator(00) between the last code B1 and the successor code, then on the console you will see 弹出光驱+unreadable characters instead of 弹出光驱. my solution is use 3 chinese charactor for this specific Open Tray

  • Like 1

Share this post


Link to post
Share on other sites

Thanks robins.

1) has been done and now it is correct I guess.

For 2) That's a bit more tricky. Open Tray for example appears just once and although there is one for unicode and one for ascii, I think using 4 chars for one and 3 for the other is just too complicated. Thats against XUITT logic. I tried different settings but if you want to use 4 chars you'll have to correct the file manually.

Posted Image

To prevent any 00 (separator) errors I limited the available translation space:

From

REPLACEALL 4F 70 65 6E 20 54 72 61 79 00 00 00 BY E5 BC B9 E5 87 BA E5 85 89 E9 A9 B1

to

REPLACEALL 4F 70 65 6E 20 54 72 61 79 00 00 BY E5 BC B9 E5 87 BA E5 85 89 E9 A9

This way each string has at least 00 at the end. I'm afraid this will have to do it.

Using Unicode is much complicated as UTF-8 because the char count in the translation form has no effect on the actual hex length. With UTF-8 it is easy to determine if you are using too much space or not. Realtime hex conversion while typing is out of reach. That would take too long.

I've seen that other languages that used special chars should also be compatible now. For example hungarian:

Posted Image

I'll clean up the database and send you the file for more tests. You'll be faster to find any errors than me learning chinese :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...