Automatic Translator not only for strings _ translating is easy with excel by TomBrightblade
Skyrim » Utilities
Added: 02/01/2013 - 10:19PM
Updated: 03/01/2013 - 12:13AM

40 Endorsements

0.9 Latest version

407 Unique D/Ls

544 Total D/Ls

8,438 Total Views

Uploaded by TomBrightblade


Last updated at 0:13, 3 Jan 2013 Uploaded at 22:19, 2 Jan 2013

This excel file is only for demo purposes for now, if I feel there is a need to make it bigger, I will. But it is fully functional and I make my translations with it, any translations, in any language. It speeds up the translation process, especially if there are a lot of texts to be translated. You can use it not only to translate mods for Skyrim, but also any other texts.

It is a tool, but it is also a method. You can have some tool and translate any mod you want. But if you do not have a method, you will not go too far. With currently available tools one can easily translate a mod like "Skyrim Unofficial Patch", a method is not needed for doing this.

If you are translating mods,
you should really give Skyrim String Translator a try
- I think it is the best complete tool.


In Elder Scrolls there is a limited space for names, I mean there are specific weapons, armors, cities, places, people, resources, (eg. Ebony things) - it is all common in many mods out there. Now let's say we make a translation of a small mod which has 100 lines of dialogues, each line is different from those in Skyrim.strings, so you cannot use current tools to make automatic translation. Let's say that in these 100 lines a name of "Winterhold" appears 7 times in different places, and let’s assume we are not sure how this word was translated in our language. I can imagine there are a lot possibilities to translate a word of "Winterhold" even in English into English: Winter Stronghold, Winterkeep? Snowy Stronghold? The Stronghold in a snow? Well, if you do not have a dictionary that you can use to easily and automatically and quickly "search and replace" that kind of words, you will have to manually search for it each time you make a translation, each time you will have to start from the beginning!

Building a good dictionary takes some time and needs some experience. For the beginning: I do not recommend adding to the dictionary words nor sentences that have less than 5 characters. For instance: all - this combination of characters A-L-L is very common, and you do not want to accidentally translate a word "actually" or "halls" by using dictionary with a word "all". But if you want to add it to your dictionary in a statement and a combination with other words, like "This is all for now", then yes, it makes sense.

But, let's take another example: some mod that changes perks. Perks often have a very similar description, for instance: "(these weapons) do 40% more damage to the (someone)" or "(this armor) is more effective when also wearing a (something)", and some of these perks also have 3-5 levels. Why to translate each of that lines manually and separately? You can put a "more damage to the" and "is more effective when also wearing a" to your dictionary and perform automatic translation. You can achieve it by using the spreadsheet and macro that I provide here, or by using a translator which has a similar function or option.

Why it is needed? Because I haven't found any translator that translates using "search and replace" inside translated texts. Why in Excel? Because it works on cells and they are easy to compare, check, format, see what is translated and what is not, apply filters and anything you want. Let me show you what I mean by that. There is a very simple example in the spreadsheet (download from the Download section).

Example plugin: modName
Simple dictionary build only to translate a "Winterhold" (plus inflexion).

Here is how it goes:

1. I use TES5Edit to make strings and string version of a plugin for Skyrim. Do not use the Translate option in TES5Edit.

2. Then I use StringsEdit to convert String files into XML. Open XML - I use Notepad++. Copy everything to excel.
Pic showing real life example (Live Another Life mod by Arthmoor):
but it is not our example for this article. I only wanted to show how it looks.

3. Copy it and paste into first column of "WORK" tab in excel. It has to be in single column A.

4. Then use "Text to columns" option from the Data menu. The basic idea is to separate String IDs from texts to be translated. After a while here is what I have:

5. Then copy the texts to column D.

6. Switch to the "DIC" tab - Dictionary:

This is a very tiny dictionary. Actually I have tons of texts here in English and translated into Polish. You can modify it, paste all texts from Skyrim.strings, it's all up to you what you put here. But the are some rules:
  • translated texts must start from the second row
  • you can expand dictionary down, in columns A and B, but do not leave any empty cells.
  • you can expand dictionary to the right, but between two "English" columns there must be four columns, no more, no less. So English must start in A, then you can use F column (start in 2nd row), then in K... If you look in the file I provided, you should get the idea.

7. In column C there is a function for counting the characters in English texts on the left. After making a dictionary, I count the chars in each cell, then I use "sort Z-A":

By doing this I have the longest texts on the top. The Translation function will "search and replace" from top to the bottom (and then it will go to column F), and it will try to find FIRST exact mach. So if in the DIC the order looks like this:
  • (English - Polish)
  • Winterhold - Zimowa Twierdza
  • College of Winterhold - Akademia w Zimowej Twierdzy

it can lead to a wrong (or unwanted) translation, eg. text to be translated:
  • "College of Winterhold is a great place."

translator will take first that matches, and will do it like this:
  • "College of Zimowa Twierdza is a great place."

which is not correct in Polish and only make additional problems,
the DIC should be like this:
  • (English - Polish)
  • College of Winterhold - Akademia w Zimowej Twierdzy
  • Winterhold - Zimowa Twierdza

and the translation will be correct:
  • "Akademia w Zimowej Twierdzy is a great place."

8. OK, run the "PerformTranslation" macro. In old excel the "macro menu" option is in the Tools menu (sorry, I do not want to add any special buttons here in this spreadsheet to run the macro).

The macro will search in DIC tab and replace in column D of WORK tab, but also it will mark changed cells with blue and bold format.

You can see that only "My flower is beautiful." was not changed.

  • In column E there is a function that will put together "string ID" + "text" + "string end" tag
  • In column F there is a function that will compare C and D columns and give True or False as a result.
  • You can use the READY tab to move there the "translated" rows from the "WORK" tab.

9. Copy from column E and paste back into XML file. Open StringsEdit and convert XML back to a string file, and you are ready to go.

For me it speeds up a process of translation (not only of mods). The only problem is with book texts from mods, they require some more attention to spread the texts and then put it all together at the end.

I hope some tool will allow to use that kind of automatic "search & replace" function, and not only for whole sentences or manually, but also automatic. SkyrimStringTranslator by McGuffin allows to use custom dictionaries, and this is really great for me, but in version 0.13 it is possible to search for a text or phrase in whole dictionaries only manually - and then manually put it as a translated text (ie. you can open edit window and use search field, it will perform searching in loaded dictionaries). But there is also a very good option / method: heuristic translation and validate translation. If you use heurictic, use validate too. Then Perform "Save User Cache" and heuristic translation again - it will use validated translations and more and more texts will be translated correctly. It is a very nice combo.

Please note I am releasing it "as is"
use it at your own risk.