A radical change (for me)
I have just uploaded a new version (4.70.0000) with several changes.
The Add-In (and also the older VB6 Add-In) has always had a column for the original text and several language columns, including one for the original language.
The need for these two columns, which usually contained the same texts, was always clear to me. In fact it was so clear, that it must have blinded me to how pointless it really was.
In version 4.70 there is no more column for the original text. The original text is shown in the column for the original language.
In principle, this is a small change, but it feels like a radical change to me, because these two columns have been present since the very first version of the Add-In for VB6. The change to the look and feel of the Add-In is surprisingly large. It took me about two seconds to realize that I preferred the new version!
Associated with this change, I have modified the way the Add-In behaves when it detects that an original text has changed. Previously, it showed the text in the original language column in red. This indicated that the texts in the original text and original language columns were different. Obviously, this doesn't make sense if the original text column is no longer present.
Any change to the original text is now automatically copied into the original language (i.e. it is saved as the text for the original language). At the same time, the status of any translations of this text is set to out of date. Out of date translations are shown with red text on a white background. In addition, the previous text is appended to the comment column. This should be eventually be removed when translations are updated (and no longer have the status out of date).
There are a couple more changes in the Excel import/export.
- The export option only export untranslated strings is now based on the translation status. A text is exported if one or more translations are missing, or if the status of any translation is not spreadsheet import.
- The import option update status of all texts has the effect that the status of all imported texts is set to spreadsheet import, even if the text is not actually modified by the import.
All of these changes - including the new out of date status - are related to the translation workflow.
Supposing a translator has translated all your texts and you have imported the translations into the Add-In. If you continue to make changes to your project, you may have to send some additional texts for translation. However, there is no need to send all texts in the project back to the translator. All you really want to send are texts which are either new or modified. This effectively means any text where the status is not already spreadsheet import.
Suppose now that you use online translation in the Add-In, before exporting the texts to Excel. The quality of the online translations is not very good, so the translator will correct most of them. However, occasionally there will be a text which is actually correct. Even if the translator doesn't actually change the text, the status effectively changes to checked by the translator. If you know that the translator has checked all texts in the Excel file, it makes sense to set the status of imported texts to spreadsheet import, even if they are not changed.
Finally, version 4.70.0000 also contains a small change to the handling of escape sequences. If you use VB, you can switch off now, because this only concerns C# and C++. The Add-In now processes escape sequences, such as \n, immediately when it scans the source code. Internally, it stores all texts in the unescaped format. If you want to see the escape sequences in the grid, they you can select an option for this in the Add-In setup dialog (it might be the default anyway, I can't remember). In this case, the Add-In will reinsert the escape sequences to show the text in the grid. (I intend to add a similar option to the Excel export soon).
This is actually in preparion for a future change. I intend to make a version which (at least optionally) does not store any texts in the project database. Instead it will store the texts only in the MultiLang.resx file and the localized versions of this file. In this case, the texts must be stored after processing any escape sequences.
By the way, the previous version (4.65.0081) is still available on the download page, in case I have screwed something up badly in the new version.
Phil