TESVTranslator by McGuffin
Skyrim » Utilities
Added: 30/12/2012 - 09:16PM
Updated: 11/03/2014 - 11:38AM

463 Endorsements

1.3.3 Latest version

29,987 Unique D/Ls

36,952 Total D/Ls

107,184 Total Views

Uploaded by mcguffin


Last updated at 11:38, 11 Mar 2014 Uploaded at 21:16, 30 Dec 2012

TESVTranslator (aka SkyrimStringTranslator) is an advanced editor for translate mod built with automatic translation logic in mind, and allows easy translation updates.

Nexus Link: (Please: ENDORSE and spread the word if you like the tool ^^ )

Features of the tool 1.3.2

-Build dictionaries of strings pairs from existing *.Strings files
-5 edition-modes:
1)*Esp mode* can load esp/esm file and perform direct translation.
2)*Strings modes* can perform translation on strings files that come with localized esp (STRINGS, DLSTRINGS, ILSTRINGS). This mode does not alter esp, and you must create strings file with TesVedit 3.0.29+
3)*Hybrid Mod*: load a localized Esp as a Records/fields layout for editing Strings files. (The esp doesn't have to be in the Skyrim directory, but the Strings files must be in a .\strings folder just next to the esp)
4)*MCM/Translate*: Those files are used by addons that support MCM menu (SkyUI), but also by vanilla skyrim. They contains all UI strings.
5)*PapyrusPex*: can load and decompile a papyrus pex. Internals vars will be locked as non-editable. This feature is EXPERIMENTAL/ALPHA.

-Read localized files directly from the addon.BSA file (as long as it remains in the same folder that the esp/esm).
-EspCompare tool: build string pairs directly between 2 esps with different languages.
-Direct strings Search
-Heuristic strings search
-Diff-viewer, that shows difference between original/updated source-strings
-Support all known encoding for Skyrim
-Alias Tool Check: verify alias integrity between source string and its translation.
-Search and replace tool
-Custom dictionary
-XML import Export
-Inline dictionary, built on the fly with the existing string pairs.
-The UI has been localized and can be easily translated (Ressources can be found in the \res folder, just create a new folder with the desired language. The 'res.ini' file contains all strings used by TESVT. If you are using extended charset, I suggest to save it in utf-8 with BOM, so there will be no codepage issue)

Note about the advanced save for sst dictionaries:

The feature is not activated by default because it needs a little awareness.
To understand the purpose of this option, it's necessary to understand how SST files works.

When an addon is loaded, TesvT tries at first to open the sst dictionary related to this addon, if it exists. This operation is called "applying sst ressource" in the log.
In that way, Tesvt can retrieve automatically all works done on *that* mod in previous translation session, keep track of current flags for each string and apply the correct translation for strings that have more than one match possible.

If that ressource doesnt exists (mainly if the addon is loaded for the first time), TesvT applies a raw translation from all existing dictionaries.

When a sst dictionary is saved, only strings that are currently in the loaded esp/esm/strings are saved into it .
In some case this can be a limitation, because some addons can come with modular installer and can have more that one version of an esp with a given name. This mean that some strings matches can be lost when the sstfile is saved if these esp doesnt share the same records.
When activating the advanced-save mode, tesvT will saved sstfile with an additional checksum, in that way, each esp, even if it has the same name will have it's own sst ressource. (Note: however, the checksum is generated from strings inside the esp/esm/string/mcm, in that way different esps can have the same checksum if they share the exact same strings).

Now, when the advanced save option is enabled, tesvt will tries at first to load the sst ressource that match the same checksum, and if it doesnt exists, tries to open the Generic ressource (esp name without checksum).

For example:
addon name: MySkyrimAddon
generic sst ressource: myskyrimaddon
sst ressource with checksum: myskyrimaddon_b5f6e1c3

Now, let say you have a new version of an esp that have already been translated, and some string inside that esp have been updated, the checkum will be different, so tesvt will only open the generic ressource that match the esp name only (if it exists). But this generic may not contains all last strings, since they probably are in a "checksumed" sstfile..
At this point if you do nothing it's not an issue, TesvT will simply apply the raw translation between all known strings-match.

But you may want to retrieve your previous translation session.
The best, quicker way is to select the old sstfile (myskyrimaddon_b5f6e1c3in te example) then click on the Apply sst ressource button. All string from the old esp will then by applied on the new esp, and the old session will be restaured as a new one: Then you just have to resave sst ressource to generate a new dictionary that matches the new esp

If you are editing a lot of versions of a given mod, you will probably end up with a lot of dictionary versions: A quick way to get rid of this, is to merge all those versions into only one (it's recommanded to use the generic for the target dictionary so tesvt will be able to open it automatically.).

If you want to share a dictionary for a given mod it also could be a good idea to generate a merged generic ressource at first.

Important Note:
SkyrimStringTranslator is *not* a tool for to localize/delocalize *.esp/*.esm file.
Please Use Tes5edit if you want to perform this kind of task.

-Japanese by Vivanon
-German by Slavovitsh, nnw & Scharesoft
-Polish by TomBrightblade
-Chinese Simplified & Chinese Traditional by ruinelec
-Spanish by Fiama

Special thanks to:
-Elfaceitoso for helping me with my bad english ^^
-Everyone who supports / endorses the tool, and gives ideas!.


version 1.3.2
-PexMode: the decompiler output view has been greatly improved . The code should be far more understandable for people who know, at least, a bit of papyrus.
-PexMode: clicking the gutter of a jump command actually jumps to the target line.
-PexMode: added a warning (yellow light) for string that are used in a comparison procedure. This kind of procedure is rarely used for notification (but can happen in MCM script).
-The vocabulary context menu doesnt try to load/apply/delele cache file (black). It's intented to work only for sst files.

version 1.3.1
-Added an "expert mode" options that removes some warnings.
-PexMode: The decompiler output view has been improved.
-PexMode: StringVars dynamically assigned in script should now be locked when it's needed.
-PexMode: string called by Debug.trace descendant procedures are not locked automatically anymore

version 1.3.0
-Support of papyrusPex file. TesvT can load/decompile/translate pex script file. All internals vars will be locked. This feature is EXPERIMENTAL/ALPHA. Please report any issue!
-Added a context menu on the vocabulary list, with few wuick/common command. Also added a way to send a dictionary to traschcan (the cache will be reloaded after the operation)

version 1.2.0
-Search & replace now has a "case sensitive" option.
-Added a backup system for sstdictionaries. You can set the number of backups you want in the options panel (0 = disable). SstDictionaries backups can be found in the folder: .\UserDictionary\Backup\
-Added a button to apply the currently selected dictionaries as a session ressource for the mod currently edited
-Added an advanced-save option for sst dic (in the options window). More info in the read me about this.
-Added a button to sort dictionaries in alphabetical order (generic caches will be always at the end)
-It's now possible to directly edit/save sst file.
-It's now possible to merge dictionaries between them.(merged files will go in the backup folder if the option is activated)
-Using F1/F2/F3 in the "edit window" will now only dynamically swap strings between fields that are actually visible in the main window lists. Using F3 also does not auto-trim strings if the trim option is activated..
-Internal Optimizations and minor fixes for MCM edition mode. Sorting MCMstrings by ID should also now work properly.
-Visual issue fix: Current sst dictionary should now be properly set has "loaded" when it should.
-Updated german and chinese UI.

version 1.1.0
-Added support for MCM/Translate Files (it's possible to load either mcm.txt files or BSA. (in that case, TesvT will extract the file with the current source language). When exporting, the file is saved in the interface/translations subfolder, when it has been extracted from BSA.
-Added MCM/Translate Compare Tool. Works pretty much like espCompare, but with MCM/Translate Files. You can load the file from *.Txt file, or from *.bsa. (in that case, TesvT will extract the file with the current Dest language)
-Small internal fixes

Release 1.0.0.
-String warning improved: cumulatives color tags have been added (in the LD column): Yellow =Alias warning, Orange=String Size warning, Red = Carriage return Warning.
-EspCompare warning improved (as a reminder, those warnings are showing the risk of reversed enumerated fields)
------- Light switched off: record with only one enumerated Field: Risk is very null to low.
------- Yellow Light: the record in Source esp has the exact same number of enumerated Fields than in the comparedEsp: Risk is low to medium
------- Orange Light: the record in Source esp has different number of enumerated Fields than in the comparedEsp: Risk is high
-Extra space and carriage return at the beginning/end of an edited string are now trimed. (it's possible to disable this behavior with a new button in the edit window)
-Show null string option is now saved
-UI Polishes