-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)
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.
UIlocalization:
-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.3
-added missing OP code 23 (array.rfind)
-Orange Warnings in espcompare mode are now correctly reset when a string is validated.
-PexDecompiled view has been improved a bit (still a work in progress)
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
----------------------------------------
OldVersions. Developpement stages.
version 0.92
-Slight improvement in espcompare tool when using partial overwrite.
-Added an edit-warning when the string includes one (or more) Carriage return when it should not. (Note: like the string size, it's based on a benchmark done over the official content)
-String Warnings are now caught by the "show: alias error (yellow)" search options, so it's possible to see them in easily in the list. Also, the color tag for Alias/String warning has been redesigned, so it doesnt override the string status.
-The log now shows the complete path of the actual esp/esm/string instead of the addon name only.
version 0.91
-Added a soft Cap warning for string size for a given field type. The left margin of the edit box will turn red if the current string size is above that soft cap.
Note: the soft cap has been set through a benchmark over all the official content, in all languages. Reaching that cap doesnt mean you will break your game, but that means that your string will have a bigger size for the given record than the highest one in the official content. In that case you will probably need to check in game or in the CK if everything is OK.
-The dialogTab in esp+Strings mode now correctly shows dialog EDID if it's available. INFO fields without EDID reference now shows their formID instead
-Few UI improvement + german UIupdate (thx to scharesoft)
version 0.90a
-Fixed an issue with the dialogTab in esp+Strings mode. All topics should now be visible.
version 0.90
-New tooltip system for all list. Lite HTML support. Please note that to avoid constant tooltip popup, the hint activation only happens when the cursor is near the beginning of a given column (~50pixels).
-New DialogTab in edit Windows. When a dialog field is edited, all relevant dialog topics are now stored here. (Obsviouly, this only works in esp or espLayout mode)
-Esp/Esm/STRINGS files can now be opened through commandline. This means that you can set windows to open them directly with dbl-Click, or with the contextmenu Open with.
----->Right click on an esp/esm/strings file and choose Open with.
----->Choose “Select a program from a list of installed programs” from the dialog that appears.
----->Click “Browse...”
----->Browse to and select your TESVT executable. If you check "use by default", then you will be able to open files with dbl-Click, otherwise you will be able to use the Open-With menu again (but TesvT will be now in the toplist)
----->Click “Ok'
-Few internal optimizations.
-Included all latest UILocalizations (note: there is only one new string in 0.90)
version 0.85
-Loading
string with Esp is now less strict: If you clean a mod with Tes5edit
(for example update.esm), some strings may be orphean after that.
TesvT now loads these orphean strings instead of cancelling the loading.
-New
option: DynamicFieldSwitch: In the edit window, validating (complete or
partial) string with F1 or F2 now switches directly to the next
field in range. You also can use F3 (forward) and Ctrl-F3 (Backward) to
navigate through fields without validating them.
-In edit windows, the first line of a text is automatically selected.
-Added Chinese Simplified & Chinese Traditional, thanks to ruinelec, and Spanish, thanks to Fiama.
-Preferences are now saved in utf8 to ensure compatibility.
version 0.84a
-Just a repackaging of the 0.84 with updated German UI localization (thx to Scharesoft)
version 0.84
-Esp/Esm/Strings files can now be opened directly by drag and drop over the main window.
-XML import now only overwrites
untranslated Strings. (Note: String with duplicate translations are
considerered as Untranslated). Additionnally, Ctrl-F4 now resets all
strings, if necessary.
-Added
a textBox next to the searchList (in edit window) to see the complete
content of a result string. The search in text procedure has been
expanded to this text box too. It's also possible to "drag and drop" text from this textBox to the editBox.
-Added few new options: [play sound with dialog], [backup esp], [choose a backup folder].
-In
editWindow, validating a string with F1 set the focus to the
esprecordtList. In that way you can easily change field by doing [F1] -
[navigate through field with arrow], then [press enter] to select a new
field to edit.
-Fixed panel size issues when maximizing-minimizing windows.
version 0.83
-Added XML Import-Export for the current Mod (encoding is UTF-8).
-It's
now possible to edit strings directly by double-clicking on records in
the esp StructTree (esp Mode or espLayout Mode) . Note: In espLayout mode,
only records with editable strings are kept. In simple espMode
not-editable records are grayed.
-UIStrings
now fallback in english if not found in the current language res.ini.
All new strings can be found at the end of the \english\res.ini file.
(there are new strings in 0.83 : Fallback are notified in the Log.)
-Added:
show: Null strings button in search visibility opts. Also,
search procedures now have a little delay, so they not try to refresh
the results at every edit box change.
-Added: open user dictionaries folder in the dictionaries panel.
-Few UI improvements and minor fixes.
-Added Polish UI translation.Thanks to TomBrightBlade.
version 0.82
-Fixed
an issue when the user tries to finalize the same esp twice in the same
session. To check if you had this issue, just try to reload your saved
esp in tesvt, if everything is ok, then your are fine. If you get an
error, simply reload the original esp, then export it again.
-Few UI improvements
-Updated Japanese UI translation.Thanks to Vivanon.
-Added German UI translation. Thanks to Slavovitsh & nnw.
version 0.81
-The
dictionary list is now sortable by drag and drop. Top of the list has
priority, so translation always tries to get the user prefered
translation for txt with the same sources.
-Added language presets, so it's now possible to quickly switch between differents languages source/dest if needed.
-Improved security check for I/O access
-Added Japanese UI translation.Thanks to Vivanon.
version 0.80
-The UI is now completely localized. Language can be changed in the Set Vocab Window. (a restart of TesVt is needed).
-TESVT now checks if an addon is loaded and if its sst ressource is actually enabled.
-Strings
with same source but with different translations in the *same* addon
are now correctly showing a notification on load (small glass-yellow
icon) so the user can adjust the fstring correctly before
finalizing the addon.
-Added a button to search in the Edid field (next to source and dest)
-If
the language source and dest are the same, then the cache is not
generated or loaded, and source strings are directly copied into
dest strings.
-SaveSSTString shortcut is now Ctrl-S. Shortcut removed from export, to avoid confusion
version 0.73
-Added an information log about the cache in the setVocabulary windows.
-Fixed the Alt-Number typo missing in edit window
-Fixed few minor issues in UI (again)
version 0.72
-Localized
files can now be read directly from the addon.BSA file (as long as it
remains in the same folder that the esp/esm). Saved string will be
placed in a strings folder next to the addon. (that folder will be
create if it doesnt exist.)
-Buttons icon have be redesigned for a better understanding..
-Fixed few minor issues in UI
-Few minor optimization.
version 0.71
-The
Alias warning (yellow) is now smarter and occurs only if an alias found
in the Translated string is not present in the Original string.
-Fixed path for saving Strings in esp+strings mode.
-More
UI polishes, added custom load/save buttons in the vocabulary panel,
added ctrl-A shortcuts to add string in custom editmode
-Building cache is now faster, loading cache is now slightly faster.
version 0.70c
-few UI polishes
version 0.70b
- the custom dictionary also saves itself if the procedure is called from the "Save reminder Popup".
- Fixed a font issue in the listView..
version 0.70a
- opening a blank custom dictionary now correctly swicth the edition mode.
version 0.70
-New hybrid Mode:
String + esp Layout: Its now possible to load a localized esp/esm, as a
record/field layout for editing the related Strings file.
(The esp does not have to be in the Skyrim directory, but the Strings
files must be in a .\strings folder just next to the esp).
EspCompare tool is available is this mode. Note: this mode doesnt allow
to Embed String into esp. You have to use Tes5edit, if you want to
perform this task.
-The strings files export improved.
-Added
the support for custom dictionnary. (menu vocabulary->custom
dictionnary) . It's possible to add and edit custom strings pairs
manually (through the list view context menu.
Note: this mode is exclusive, and all esp/string are unloaded before.
-The dictionary list is now dynamic, it's possible to choose which file is loaded, and reload the active list on the fly.
-UI improvements
-The record definition list is now hardcoded to avoid issues
with bad editing.
version 0.65
-EspCompare now correctly uses the Destination Encoding instead of the
Source Encoding.
-Japanese encoding is now set to Utf8 by default.
-messageDialogs language has been fixed.
-Added
an option to force utf8 on export. CAUTION: always use the "force Utf8"
options wisely and if you exactly know what you are doing.
version 0.64
-A lot of optimization and code cleanup. Esp load/save is now
significantly faster.
-Added a manual Panel. Work in progress.
-It's possible to change the font used in Edit window (in context
Menu). However it's limited to Fixed Font.
-size and position of main and edit windows are now saved.
-Added "Export As..." that lets choose the name of the saved strings/esp
-Improved some internal stuffs.
version 0.63a
-SST
now takes care of similar sources in a given mod. When editing a
string, the user can choose to update the translation of all similar
strings directly.
-Cache/userCache loading has been streamlined (however there are no
change in the files themselves).
- When a user save the sststrings for a given mod, the news strings are
automatically added or updated in the global cache.
version 0.62
-Direct
Translation now indicate strings that have the same OriginalSource but
more than one translation possible. These strings are flagged as
"partial trans" and also have a small glass in front of them. Multiple
choice can be easily checked/switched in the autotranslation panel.
These strings are not saved in the cache until the user validate them.
-Improved some menus captions
-Few fixes
version 0.61
-Graphic fix: listview(s) are correctly repainted after performing
Espcompare
-Added some confirmation boxes when exporting esp, and better exception
error feedback on saving files.
Version 0.60
New
tool, espcompare: With this tool you can directly get the string pairs
from an esp to another one. (See more details in description)
-The
cache system has been updated. Instead of using a single user cache, it
now uses a cache per add-on. All caches are loaded as dictionary as
long as they remain in the dictionary folder of SST. Note each cache
can be shared with other users. More controls on this will be added in
the future.
-If you have a user cache from previous version of SST,
just rename the extension (.cache) with '.sst' then drop it in the
dictionary folder.
-Streamlined strings flag shortcuts. F1 =
validate (work also in edition window with the current edited string);
F2: Partial; F4: cancel translation;
-added few shortcuts in the
edition window:F5: Uppercase selection, F6 lowercase Selection, F7
Uppercase the first char of the current word.
-Various improvements and optimizations
version 0.51
-Added some missing Fields.
-Optimization of internal search/building cache routines (building
cache is now really faster)
-Fixes / improvements in UI
version 0.50
-added support for direct Esp/esm translation. Please read the notes in
the description section of this readme.
-When you save an esp, SST will do a backup of the original one.
-ui improved.
-SST
now checks if blank non-Null strings have been replaced by NULL strings
before saving esp/strings. Some blank strings can cause issues during
gameplay.
Version 0.41
-Added support for Chinese (Utf8)
/ Japanese (932). However some advanced features like "quickWord
search" will probably doesn't work in these languages.
-Few internal optimizations.
Version 0.40
-Added some icons for to filter the search in main window.
-The text editor has been improved.
-Full support of ctrl-Z (undo) & maj-Ctrl-Z(redo)
-quickWorldmatch can now be copied in the translated text view with
ctrl-1 to crtl-5
-Special Skyrim Textreplacement strings
(<Alias><Global> etc.) are now highlighted
-Added possibility to shows the special Characters (in text editor
context menu)
-Fixed some UI issues with the quickWordmatch List / AliasMatch list.
Version 0.32
-Clicking on the little Glass in the search field open a menu with some
options.
-Added a new menu in vocabulary list, which allows to directly
add/delete strings pairs.
The
quick word-match mechanism added in version 0.30 will be greatly
improved if the user adds the strings pairs for some very common words
(like "You", "We", "with" "some" "more" "not" etc...)
-In the edit
window, added an Alias Check module. Clicking on an alias will
automatically replace the current selection by that AliasText.
-In
the String list contextMenu, added functionality for to automatically
fix string with 1 alias that doesn't match. Strings modified are set
with the partial translation flag.
-Added some fancy icons.
Version 0.31
-Fixed Unicode Lowercase strings
Version 0.3
-UI improvement. Selected and focused Strings are now more visible.
-Search&Replace can now be found in the main Translation Menu,
or with Ctrl-F
-Added a quick word-match tool in Search & replace / Search
& Edit.
It's not a real direct translation but a simple suggestion system based
on words that often match or are often seen together.
-added multiselection support, all actions can be applied on selection.
-Added
the possibility to ignore Strings that have a fallback in a
menu-Translation text file. These string have a $ in front of them.
(Rarely used, but that can happens)
-Numerous small fixes
Version 0.22c
-Fixed search and replace for "no heuristic result" strings.
Version 0.22b
-Partial translations are now sorted right after heuristic result.
Version 0.22
-Streamlined some features
-Strings flagged with partial (violet), or validated (blue) tag, are no
longer carrying a heuristic result.
-Translate with exactMatch now take care of what has been already
validated, and reset Heuristic result.
Version 0.21a
-Manual Edition now removes the "partial translation" flag.
Version 0.21
-You
can add a "partial translation" flag for strings that are in work in
progress. That flag is saved in the usercache so you can keep track of
it. Flagged strings are colored in violet.
-Added a search and
replace Tool, you can find in the list contextmenu. This is still a
rough tool atm, but better than nothing. There are few options that
should speak for themselves. Dest Strings are automatically flagged
with "partial translation" (see above).
-The cache database as changed. So you will need to rebuild it. If you
have a user cache, it will be automatically converted.
-Various improvements and fixes.
Version 0.17
-Minor update: Streamlined some internal stuff
-The vocabulary cache will also automatically unload itself if STRINGS
from other source languages are loaded.
Version 0.16
-Added a quick search for addonStrings.
-Added
a compare tool in the edit/search windows that shows what has been
changed between an original source string and the updated "heuristic"
source string. (This will work only if a heuristic search has been
performed first). A contextmenu allows switching between
original/updated strings.
-The cache is now only loaded at the program launch (or on demand)
Version 0.15
-Added
the possibility to build strings-pairs from SSLXLTN files (the
"save-translation" files generated by Skyrim string localizer). Check
the vocabulary.txt file for more info.
-Various UI fixes
-Various code optimization and cleanup (again)
Version 0.14
-Added more language by default. Check the codepage.txt file to add new
ones.
-Heuristic search greatly optimized and improved
-Added
yellow color feedback for good heuristic results but where
<Alias> strings don't match exactly. (Next version will
bring
some tools to handle that more efficiently)
-Added a heuristic check in the edit/search window.
-Fixed Scrollbar issues in all lists (due to custom cells size)
-Various code optimization and cleanup
Version 0.13
-Moved commands in the main menu. Added keyboard shortcuts.
-Added
a stricter handling of selected language for the vocabulary cache. The
cache language can now be only set before loading any strings
(otherwise you must close the tool to change the options)
-In the edit/search window, selecting a part of the text in the left
window will automatically launch a search on the selection
-Some optimization
Version 0.12
-UI slightly improved
-Added more check/error handling
-Is now not possible to save the usercache if it's empty
Version 0.11
-Fixed an issue that could prevent to save in the right place.