Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Tutorial on how to translate Unity games?

Featured Replies

  • Author
  • Localization

DrZulu, posted Sun Jun 19, 2016 9:04 am (14605)


Dear ZenHaxers, is there any tutorial about how to translate Unity games out there?
I found a lot of resources to reverse engineer / unpack Unity files, but no organized step-to-step tutorial to localization or sub translation.
Do you know of something I can study?
I know every game's different, but the approaches, workflow and steps should be more or less the same.
Thanks guys!
  • Author
  • Localization

The_Reaper_CooL, posted Mon Jul 11, 2016 5:47 pm (15194)


In Hungary we have a meeting for translators, and we've just held the 2nd one. Unfortunately I couldn't attend, but I've made a video regarding the matter. I could show you the video, but it's in Hungarian language.

Regardless of that, here's what I've made:

BASIC RULES OF A TRANSLATION:
1. Always make a copy/backup of your files in case you mess something up.
2. Find a very simple part of the game (like the main menu, options, the first text you see...etc) and edit that one to see if you can edit the text or not.
3. Try to change one letter (like "Play" could be changed to "Plai" or anything, maybe "Exit" or "CooL"...etc), and see if you change it then it also changes in the game (and can the game be run at all)
4. Try writing shorter or longer text ("Go" instead of "Play", or "Start", because one is shorter and one is longer), and again, see if the game still works
5. Try out special characters. Because I'm Hungarian, I try out my unicode characters to see which ones work and which ones doesn't (like "ieaououou").

That covers the basics, let's see how I translate these games:
1. Start the game, and look for an easily editable and viewable text (like the one I've mentioned above, the "Play" one)
2. Exit the game, and open ALL .assets files in Notepad (the text could be in resources.assets, sharedassets0.assets or sharedassets3.assets, but I've seen some different results)
3. Now CTRL-F and search your text in all documents. Some documents should pop up and you can see if it contains said text or not. If nothing is shown, then maybe you need to choose a different text and search for that
4. After you've found out where it stores your stuff, then open up that .assets file with UnityEx. By using it, you can extract all files in a folder.
5. Open said folder and open all files in Notepad , and search for your text. It should give out one file, maybe with a weird extension (like -5, -49, -52...etc).
6. Edit said file and save it, then import it back in with UnityEx.
7. Start the game, see if it works.

If by any chance it doesn't work, then maybe the game has pointers assigned to it. Pointers can be edited with HEX Editors (like HEX Workshop), and they determine how long a certain text can be. If you open up a file and look around it's bits and bytes, you should see something like this: "0004000something". Those 0-s divide the text in the file, and that 4 is a value which determines how long the next text segment will be, which is "Play" in our case, and that's 4 character long.

That's all for today, don't know what else you need, but if you have any questions feel free to ask.

Also I know you've posted like a month ago, but I do hope you are reading these forums and that this little tidbit of text will be helpful for you (or for anyone else)
  • Author
  • Localization

Renan Rischiotto, posted Fri Sep 08, 2017 3:31 am (26351)


Hi! I' did exactly was you said, but the games seems like it's ignoring my changes...
  • Author
  • Localization

Bobby Moore, posted Mon Sep 11, 2017 11:10 am (26429)


Renan Rischiotto wrote:
Hi! I' did exactly was you said, but the games seems like it's ignoring my changes...


Same. I guess that means I should try it again.
  • Author
  • Localization

MerlinSVK, posted Mon Sep 11, 2017 1:24 pm (26431)


Renan Rischiotto and Bobby Moore,

You have to be more precise. Like what you did and what game you tried to translate.
  • Author
  • Localization

Rickett, posted Wed Nov 15, 2017 6:33 pm (30070)


The_Reaper_CooL wrote:
6. Edit said file and save it, then import it back in with UnityEx.
7. Start the game, see if it works.


Im lost myself at this point, how im supposed to import it back?
  • Author
  • Localization

MerlinSVK, posted Thu Nov 16, 2017 8:14 pm (30077)


In UnityEX, there is "Import all files" button

Image
  • Author
  • Localization

Rickett, posted Fri Nov 17, 2017 6:45 pm (30108)


The problem is that the bar is always green and pressing import dont do nothing

to be clear i have pressed: view game object-export-modified some text in the file and now i trying to import it back

thank you for the help
  • Author
  • Localization

MerlinSVK, posted Sat Nov 18, 2017 9:58 am (30111)


1) Open assets file
2) Export file you want
3) Edit it
4) Import file back in UnityEX

Nothing complicated
  • Author
  • Localization

Rickett, posted Mon Nov 20, 2017 5:58 pm (30150)


Image

Image
  • Author
  • Localization

Rickett, posted Tue Nov 21, 2017 6:42 pm (30176)


Image
  • Author
  • Localization

Rickett, posted Tue Nov 28, 2017 5:29 pm (30376)


UP
  • Author
  • Localization

Rickett, posted Thu Nov 30, 2017 6:47 pm (30417)


I managed to make it works exporting the single file and not the gameobjects BUT if i change the number of letters translating the game crashes..
  • Author
  • Localization

bottazzi1900, posted Fri Mar 19, 2021 5:18 pm (62936)


Hello. I'm trying to translate a Unity game but I'm having some troubles. I used AssetsBundleExtractor_2.2stabled_64bit to extract one text file to do a test. Then wit Notepad I edited the text and again with ABE I re-import the edited text. Then I saved all obtaining a new file .assets that I have substitute to the original. To be sure that the importing was done correctly I re-extracted the text again and it was confirmed like edited!
Though if I try to play the game, my editings don't appear. Do you know why?
Thks
  • Author
  • Localization

happydance, posted Wed Mar 24, 2021 3:54 pm (63008)


probably the text appears in multiple instances in the game or you are editing a base game not the update? if on colsoles
  • Author
  • Localization

bottazzi1900, posted Wed Mar 24, 2021 5:48 pm (63011)


happydance wrote:
probably the text appears in multiple instances in the game or you are editing a base game not the update? if on colsoles


I'm translating a base-game (not update or dlc) on pc. What do you suggest to do?
  • Author
  • Localization

tomba, posted Wed Aug 04, 2021 9:55 am (65499)


The_Reaper_CooL wrote:
In Hungary we have a meeting for translators, and we've just held the 2nd one. Unfortunately I couldn't attend, but I've made a video regarding the matter. I could show you the video, but it's in Hungarian language.


szia. en magyar vagyok, szal tok jo lenne az a video, ha meg megvan. nagyon megkoszonnem, ha elkuldened a linkjet.
  • Author
  • Localization

Saipan, posted Sun Aug 08, 2021 2:14 am (65588)


cih99 wrote:
https://www.adslgate.com/dsl/showthread.php?t=2301430


If changing the language with the program but the replaced language does not work, can it depend on some particular factor?
  • Author
  • Localization

Chandrian, posted Sun Jun 26, 2022 10:50 am (72301)


The_Reaper_CooL wrote:
In Hungary we have a meeting for translators, and we've just held the 2nd one. Unfortunately I couldn't attend, but I've made a video regarding the matter. I could show you the video, but it's in Hungarian language.

Regardless of that, here's what I've made:

BASIC RULES OF A TRANSLATION:
1. Always make a copy/backup of your files in case you mess something up.
2. Find a very simple part of the game (like the main menu, options, the first text you see...etc) and edit that one to see if you can edit the text or not.
3. Try to change one letter (like "Play" could be changed to "Plai" or anything, maybe "Exit" or "CooL"...etc), and see if you change it then it also changes in the game (and can the game be run at all)
4. Try writing shorter or longer text ("Go" instead of "Play", or "Start", because one is shorter and one is longer), and again, see if the game still works
5. Try out special characters. Because I'm Hungarian, I try out my unicode characters to see which ones work and which ones doesn't (like "ieaououou").

That covers the basics, let's see how I translate these games:
1. Start the game, and look for an easily editable and viewable text (like the one I've mentioned above, the "Play" one)
2. Exit the game, and open ALL .assets files in Notepad (the text could be in resources.assets, sharedassets0.assets or sharedassets3.assets, but I've seen some different results)
3. Now CTRL-F and search your text in all documents. Some documents should pop up and you can see if it contains said text or not. If nothing is shown, then maybe you need to choose a different text and search for that
4. After you've found out where it stores your stuff, then open up that .assets file with UnityEx. By using it, you can extract all files in a folder.
5. Open said folder and open all files in Notepad , and search for your text. It should give out one file, maybe with a weird extension (like -5, -49, -52...etc).
6. Edit said file and save it, then import it back in with UnityEx.
7. Start the game, see if it works.

If by any chance it doesn't work, then maybe the game has pointers assigned to it. Pointers can be edited with HEX Editors (like HEX Workshop), and they determine how long a certain text can be. If you open up a file and look around it's bits and bytes, you should see something like this: "0004000something". Those 0-s divide the text in the file, and that 4 is a value which determines how long the next text segment will be, which is "Play" in our case, and that's 4 character long.

That's all for today, don't know what else you need, but if you have any questions feel free to ask.

Also I know you've posted like a month ago, but I do hope you are reading these forums and that this little tidbit of text will be helpful for you (or for anyone else)


Hi, everyone. I followed this guide and I managed to do everything until step number 7. If the text is longer than the original, the game will not launch. If the text has the same length as the original, it launches fine with my changes. Ignore the Hex Workshop part. Here's what you need to do to edit it properly so the game can launch with your changes EVEN if the text is longer:

(do everything until step 4)
5. Don't need to extract all files. UnityEx has a "search text" function that can find the exact file where your localization is. Type the text example, hit "search" and it will show you the file that contains this text. In my case I tried with "mixture", which I saw in-game.
Image
6. Right click this file in UnityEx and select "Export with convert or Raw". It will export this file to a subfolder where the archive that you're inspecting is.
7. Download a tool called UnityText: viewtopic.php?t=15438#p65869 this tool will allow you to make changes easily without having to worry about pointers or string length.
8. Adjust the settings so it can read all the strings or it will give you a warning similar to #FileIsEmpty or something like that. In my case, these are the ones that work well:
Image
9. The path to search for files should only contain the archive that you'll be editing because even a 50 MB file can take a pretty long time to be read even on SSD. Once the file is read, to edit a string, right click each line under "file" section and choose "edit". In my case the file has 6 localization languages inside it, so I right-click each line that I see in English:
Image
Image
10. An editing field will open down below. Once you're done translating this string, press "Apply" and you can go to the next one.
Image
11. When you're done with everything or want to check the changes in-game, click the "Pack" button bottom to the right. I do this from time to time because I don't know if this program has an auto-save or backup feature:
Image
12. Clicking "Pack" will create a new file (it doesn't overwrite the one that you have open) inside the directory where your (for example) resources.assets file is under something like (in my case) "Unity_Asset_Files_new".
13. You need to copy this file and paste it in the folder where UnityEx would normally have extracted the original file, in my case it was the Unity_Asset_Files\Resources folder (because the original file was inside resources.assets).
14. Now you need to open the original resources.assets file again with UnityEx, repeat step 5 of my guide and leave the line highlighted. Then press "import files" (which can be done with the free version of UnityEx) and you'll see that the green bar is moving and once it's done, the size and the Hex address offset should have changed by themselves:
Image
15. Now you can launch the game and check your changes. In a lot of cases the text can be too long and not fit, this is trial and error by checking in-game. A good length reference can be checking the other 5 languages inside your file and seeing which one is the longest, as that will be the limit.
16. (optional) you can click "Export" inside UnityText to extract the strings to a .csv file and run it with Word to look for typos in order to proofread your work.
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.