The Strings Editor lets you view and edit String files for Petroglyph's games.
To run, just unzip the archive to a location of your choice and start StringEditor.exe.
Thanks to Fynbos from Ultimate Empire at War for suggestions and beta-testing.
The Empire at War String Editor came to be because of a demand for a more powerful editor than Dante's relatively simple DAT editor.
The String Editor is more than just an editor for Empire at War's DAT files. It's main features are:
The String Editor is not meant for people simply looking to change one or two strings in existing DAT files, although that is possible. The String Editor is meant for big mods that have the need for powerful string comparison, translation and management.
The editor works on files called Versioned DAT Files (VDF). This is an custom, extended DAT format, which includes the extended options of the editor such as versioning and multiple languages. Conceptually, you should think of these files as follows:
It is important to realize that no matter what language is currently shown in the UI (see next section), the number of strings and their names and comments are the same across all languages.
When you start a new VDF document, the editor will ask if you want to create a Name-indexed or Index-indexed document. The difference, while subtle, is not trivial.
Consider all strings in the current version as <name, valueen, valuede, ..., comment> rows in a big table, just like shown in the editor. In what order does one store those rows in the file? Any order? Alphabetically? User-determined? Well, depends on what you want to use the exported DAT file for.
In one case you want to access strings by name (i.e., you want the string named "LANGUAGE_ENGLISH" and don't care where exactly it is in the file). If this is the case, you'll want to work with a Name-Indexed document. The strings will be sorted before storing to optimize for this kind of search. Empire at War's MasterTextFile_LANGUAGE.dat files are an example of such files.
If, however, you want to iterator over all stored strings in some predetermined order, then the strings cannot be sorted before storing as this would break the predetermined order. To indicate this to the editor, you need to create a Index-Indexed document. The strings will be stored in the exported DAT file in exactly the same order as they are shown in the list. Empire at War's CreditsText_LANGUAGE.dat files are an example of such files.
To summarize, here are the major differences between both document types:
Above you can see an example of the editor's UI with an opened file.
All versions other than the last one are read-only.
To start, you either create a new VDF document or open an existing one via the File menu or the toolbar at the top. The new dialog (shown to the right) will ask you for the initial language of the document as well as the type of the document.
After choosing the appropriate values and accepting, you will be presented with an empty list, save for the single entry that reads "(New string here...)". Select it and fill out the values in the properties window below and notice how the string is immediately inserted in the list. This way you can create as many strings as you'd like.
To add another language, go to the "Language" menu and select "Add Language". A dialog will ask you to select a language to add. The added language automatically becomes the active language and the values in the list will be cleared.
You can switch to another language by selecting the language in the drop-down box in the upper-right corner of the window, or by using the "Previous Language" and "Next Language" commands in the "Language" menu.
To change (effectively rename) the active language, use the "Change language" command in the "Language" menu.
To delete the active language, and all of its values, use "Delete language" in the "Language" menu.
In the "Edit" menu are, besides the usual commands of "Copy", "Cut", "Paste", "Delete", "Select All", "Find" and "Find Next", also several other commands:
When using the "Find" command in the "Edit" menu, the Find dialog will show up. Here you can enter the search term, whether to perform a case-insensitive or case-sensitive search, whether to match whole words only, which columns to look in, and which strings to consider for the search.
The Find and Find All buttons differ in that the Find button simply finds the next matching string and selects and focus that one. The Find All button selects all matching strings at once, which can then be copied, deleted, etc.
The "Find Next" command in the "Edit" menu simply repeats the last Find operation. Note that for some Find operations, this won't actually change the results.
In the "Edit" menu is the "Find Next Invalid" command. This will select the first string below the currently focused string whose name is invalid. But what is an invalid name, exactly?
An name is valid when it passes the following tests:
If any of these rules are violated, the warning icon will be displayed besides the name to indicate it is invalid. In the example to the right, the presence of the extended ASCII character 'รถ' causes the name to be invalid.
When exporting a document, the editor will issue an error if the document contains any invalid strings. These must be fixed before exporting.
When importing a DAT file, the editor reads the contents of the specified DAT file and adds it to the open document, using the selected language.
There are however, several methods by which to add the strings to the open document:
Exporting a document to DAT files means that all <name, value> pairs will be written to the specified DAT file, ordered based on the document type.
When you select the "Export" option in the "File" menu, the editor first checks if the document contains no invalid names. If this is not the case, the "Export .DAT files" dialog will be presented. Here you can enter a base filename and a per-language postfix.
Use the checkboxes in front of the languages to select which languages will be exported.
In the example to the right, the base name is "MasterTextFile.dat". With the postfixes shown, this will mean that the current version's german strings will be written to "MasterTextFile_GERMAN.dat", the english strings to "MasterTextFile_ENGLISH.DAT", etc.
The console version of the application can be reached by starting the application from the command line, with arguments.
Unless you use a correct sequence of commands, the help text will be shown. This will explain how to use it and what the commands are.
The console version is intend to automate deployment of a VDF file into DAT files. It is not meant as a complete replacement of the GUI version, and the selection of available commands reflect this.
Fynbos has written a tutorial for the editor.