Multi-Language Add-In for Visual Studio

Update History (Visual Studio 2005/2008/2010 version)

Version 4 only.

See also:
Update history for Version 5
Update history for Version 3 and earlier
Update history for Visual Studio .NET 2003 version

Version

Date

Description

4.7x.0136
25.January.2012
  • Bug fix in a function to fix database constraints in the XML project database.
4.7x.0135
24.January.2012
  • Bug fix scanning WPF user control derived from a custom class, which itself inherits from UserControl.
  • Bug fix handling hidden nodes.
4.7x.0134
14.December.2011
  • Modified handling of .resx files so that relative paths in file references are not changed to absolute paths.
  • Modified handling of hidden items in the grid component.
4.7x.0133
6.December.2011
  • New option to use C-syntax escape sequences in the Excel export and import.
4.7x.0132
5.December.2011
  • Modified handling of accelerator characters (&) in the global database. If an accelerator character is stored in a translation in the global database, it will only be used if the original text (in your project) also containes an accelerator character.
4.7x.0131
3.December.2011
  • Change to Excel Export to prevent you from exporting first in the 3-Worksheet structured format and then in one of the other formats to the same file.
  • Change to Excel Import to allow you to select the worksheet even if the 3-Worksheet structured format has been detected, to handle the case described above (which will be prevented in future).
  • On logging the connection string to the global database, it the string contains a password parameter, replace it with XXXX.
  • On restoring the source code grid from the project database (without rescanning the code), handle the extremely unlikely case that the temporary file ml_temp_SourceScan.xml refers to a StringID which is not actually in the project database.
  • Bug fix in the Open-Office spreadsheet export, caused by an event handler still active in an object waiting for garbage collection.
4.7x.0130
30.November.2011
  • Handle event when a project item (i.e. file) is removed from a project and remove internal references to the item.
  • Handle errors which may occur removing a resource file (for example when a language is removed). An error may occur if the file is read only.
  • Bug fix handling multiple projects, so that the Add-In does not attempt to update all active projects, when a change is made to a single project.
4.7x.0129
28.November.2011
  • Bug fix updating text after choosing not to update all occurrences of the same text.
    (Probably present since 4.7x.0111)
4.7x.0128
23.November.2011
  • Also save additional resource files when saving resource files for web projects.
4.7x.0127
23.November.2011
  • Bug fix updating additional resource files.
  • Google translate API v2 used. This is now a paid service. You can enter your own API key, or use a built-in API key with a limited daily quota. I reserve the right to adjust the quota or to disable this API key at any time.
    At present, this is only in the versions for Visual Studio 2010 and 2008, because the google-api-for-dotnet requires .NET Framework 3.5.
4.7x.0126
10.November.2011
  • Bug fix in the function Hide property ... everywhere (invalidating a cell in the grid).
4.7x.0125
9.November.2011
  • Template file for project database in SQL Server Compact 3.5 format modified.
    Size of field for texts increased from 400 to 4000.
  • Bug fix in Excel import for narrow String-ID column, where the Text property returns ####
4.7x.0124
6.November.2011
  • Improved error checking in the Ignore module function, to avoid a possible null reference exception.
4.7x.0123
3.November.2011
  • Microsoft and Google translator commands for all projects implemented (in the tools menu).
  • Bug fix in the Language Switching for Web Projects command for Web Site projects.
    (The error did not occur for Web Application projects.)
4.7x.0122
27.October.2011
  • Removed Unused String IDs command extended for multiple project support.
  • Bug fix adding MLHIDE comment to lines in C# containing two or more verbatim strings and spanning multiple lines.
  • Bug fix for null reference exception opening Excel Import/Export menu.
  • In the Excel export, prefix any string which starts with a decimal digit with an apostrophe, which prevents Excel from reformatting the cell. This is a quick fix to prevent Excel modifying strings which it interprets as dates. (It is not a watertight fix!)
  • Bug fix for NullReference exception during online translation.
4.7x.0121
20.October.2011
  • Changes from version 4.60.0010 disabled, to allow you to select attributes of ASP tags which also use binding syntax (on other attributes).
    (This may not be a permanent change.)
4.7x.0120
19.October.2011
  • Use the ID attribute of an ASP tag as the meta:resourcekey, if
    • the ID attribute is defined
    • the meta:resourcekey not already defined
    • the tag is not contained in a template
  • Bug fixed in the Additional Resource scan for ASP projects.
  • Dialog to remove Multi-Language support now handles multiple projects.
4.7x.0119
13.October.2011
  • Handle problems created by duplicate Ietf-Tags zh-CHS/zh-Hans (Chinese (Simplified)) and zh-CHT/zh-Hant (Chinese (Traditional)) for the same Locale ID.
4.7x.0118
12.October.2011
  • Logging of memory usage.
4.7x.0117
9.October.2011
  • Bug fix in project database in SQL Server Compact edition.
  • Additional option (in the AddIn's settings dialog) to cache additional information. Clearing this option suppresses the generation of the ml_temp_XXX.xml files. (This is another attempt to reduce memory usage.)
4.7x.0116
8.October.2011
  • New format option for the project database: SQL Server Compact edition.
4.7x.0115
14.September.2011
  • The status-filter in the Excel Export handles translations without a status as edited translations. This applies to translations defined before the introduction of the status system.
4.7x.0114
14.September.2011
  • New feature in Excel Export dialog, to select the languages to which the status-filter applies.
4.7x.0113
13.September.2011
  • Additional exception handling around garbage collection, following error "Not enough quota is available to process this command" during a call to WaitForPendingFinalizers().
    (Might be a short lived change).
4.7x.0112
12.September.2011
  • Additional error checking and some garbage collection.
4.7x.0111
9.September.2011
  • Special handling of the original language by the all/none/toggle buttons in the Excel/Open-Office Import dialogs removed.
  • Shortcuts Ctrl-Up, Ctrl-Down, Alt-Up, Alt-Down fixed (probably broken in 4.7x.0100 or 4.7x.0101).
4.7x.0110
8.September.2011
  • Buttons added to Excel/Open-Office Import and Export dialogs to select all languages, select no languages and to toggle the language selection.
4.7x.0109
4.September.2011
  • Additional error checking inserting accelerator character (&) into strings from the global database.
4.7x.0108
1.September.2011
  • New template file for structured Excel export, compatible with VBA7 64 bit.
  • (No actual change to the Add-In code).
4.7x.0107
25.August.2011
  • Modified logic importing translations from .resx files, to avoid the multiple usage dialog.
4.7x.0106
21.August.2011
  • For unmanaged C++/MFC projects
    • Bug fix handling escape sequence \\ in a .rc file.
    • Bug fix generating symbolic names in resource.h
  • Check for DBNull reading texts from the project database.
  • Modified logic reading the localizable attribute from a .resx file, to workaround a NullReferenceException in VSTypeResolutionService. If an error occurs, then try again without specifying a TypeResolver to the ResXResourceReader constructor.
4.7x.0105
20.August.2011
  • Some minor corrections, specifically for handling the Resco MobileForms Toolkit.
4.7x.0104
16.August.2011
  • New option for Unmanaged C++/MFC projects with satellite DLLs, to generate separate .rc files for each language.
  • Different icon on the toolbar for the project-properties dialog.
4.7x.0103
8.August.2011
  • Bug fix in Excel import in multiple-project format.
4.7x.0102
3.August.2011
  • Bug fix in .rc file export, when resources are encountered outside of language blocks.
  • Bug fix in restructured grid handling in the translation memory dialog.
4.7x.0101
2.August.2011
  • Internal restructuring of the tree-grid component, to use the underlying DataGridView in virtual mode.
4.7x.0100
1.August.2011
  • Internal restructuring of the tree-grid component, to use the underlying DataGridView in virtual mode. (Beta version only)
4.7x.0099
26.July.2011
  • Attempt to prevent System.OutOfMemoryException using FileCodeModel.
4.7x.0098
25.July.2011
  • Better error checking in CellValidating event
4.7x.0097
25.July.2011
  • Bug fix in logic to interpret language and sublanguage codes in .rc files (Version 4.7x.0095)
4.7x.0096
24.July.2011
  • Keyboard shortcut to hide a complete file changed to Control-Shift-Space.
  • Keyboard shortcuts indicated in tooltips and in the context menu.
  • Modified logic to check the status of out-of-date translations.
4.7x.0095
24.July.2011
  • For unmanaged C++/MFC projects:
    • New logic to interpret and generate language and sublanguage codes in .rc files, including many more sublanguage codes defined in newer versions of WinNT.h.
    • Improved logic to remove language resources from the .rc file when a language is removed from the project, including the conditional compilation directives surrounding the resource definitions and the preceding comments.
  • Show context menu in the grids for a click on the column headers.
  • Cancel cell edit mode - if necessary - on importing strings from resources (via the runtime support menu).
4.7x.0094
21.July.2011
  • Options to hide empty strings in controls and source code removed. Empty strings are now always hidden.
  • New logic to hide empty attributes in ASP pages.
  • New error handling in a function which has caused an OutOfMemoryException.
4.7x.0093
16.July.2011
  • For .NET projects, the language specific .resx files are not usually generated if there is only one language in the project. Previously, this also applied to the two actions listed below. In the new version these actions are performed even if there is only one language.
    • Updating the .rc file in unmanaged C++/MFC projects
    • Updating the function ml_UpdateControls() used for runtime language switching
  • If multiple texts in the source code are selected for translation in a single operation (using multiple selection in the grid), they are now sorted so that new String-Ids are generated in ascending order within a file.
4.7x.0092
12.July.2011
  • Minor bug fix in XAML scan
  • Minor bug fix in closing ASP.NET project in the Add-In.
4.7x.0091
10.July.2011
  • Fix MLHIDE logic for Javascript.
  • New commands in help menu:
    • Open log directory
    • Open log file
    • Send feedback with log file
4.7x.0090
10.July.2011
  • Localization support for JavaScript within ASP pages.
4.7x.0089
21.June.2011
  • Bug fix for COMException "Projectitem unavailable" in the function QuickIsLocalizable()
  • Bug fix for NullReferenceException in the function CheckForModifiedTexts()
  • Bug fix for InvalidOperationException iterating through a collection in the function frmSetLocalizable_Activated()
  • Bug fix in the context menu command to ignore components, with multiple nodes selected
4.7x.0088
16.June.2011
  • Bug fix scanning additional resources, where there are multiple resource files with the same file name, but in different subdirectories.
4.7x.0087
17.May.2011
  • Bug fix in "Sync with global DB" dialog, for a mouse click on a column header.
  • Bug fix scanning unmanaged C++ projects, if there is an illegal character in the compilers include path.
4.7x.0086
15.May.2011
  • Bug fix in search dialog, if hidden texts are included in the search and a hidden text is found.
  • Bug fix in dialog to remove unused String IDs.
  • Bug fix in actions on multiple items in the grid, when top level nodes are included in the multiple selection.
  • Check added, that the original text is stored in the project database as the text in the original language. If it is missing (presumably as the result of a previous error), then it is generated automatically. This fixes an unusual effect where the text in the original language appeared as grey text (indicating resource fallback).
4.7x.0085
9.May.2011
  • Minor fix to the function FixConstraints(), which is called when System.Data.ConstraintException occurs reading the project database.
4.7x.0084
3.May.2011
  • New project option to generate language specific .resx files for the original language.
    Previously, these files were always generated. This option will therefore be selected for old projects. For new projects it will not be selected.
  • Some bug fixes determining the position to add resources to a .rc resource file.
  • Bug fix rescanning ASP/HTML file if this is required after clicking in a cell.
  • Bug fix hiding hidden nodes after ASP/HTML scan.
  • Bug fixes in some commands in the context menus on the check box or the sun/moon icon.
4.7x.0083
27.April.2011
  • Catch NullReferenceException reading Localizable Property.
4.7x.0082
26.April.2011
  • If the project database is in the Mdb/Access format, verify that the Languages.IetfLanguageTag column has been initialised.
  • Additional check on adding a new language to the project database, that the IetfTag is not already present in the database.
4.7x.0081
19.April.2011
  • Bug fix handling TEXTINCLUDE macros in .rc files. Avoid null reference if TEXTINCLUDE is not present.
4.7x.0080
14.April.2011
  • Excel export in Simple Format now includes the IETF Language tags, instead of the locale ID.
    (The Excel import already accepted either, providing they were not mixed in the same file.)
    This will now support custom cultures.
  • Bug fix in the translation memory dialog. If you edit the original string, it should be used as the source for online translation. Previously this was not working.
4.7x.0079
13.April.2011
  • Fix stupid error in formatting string for output to log file.
4.7x.0078
5.April.2011
  • Go back to using hard coded colours, without reference to the colours used in Visual Studio.
    (See 4.7x.0069)
4.7x.0077
3.April.2011
  • Where the class ResXResourceReader is used, the Add-In now specifies the ITypeResolutionService interface used internally be Visual Studio. This should fix an occasional error parsing the .resx files (typically due to an incorrect version number in a type name).
  • Catch the COM error RPC_E_DISCONNECTED (object has disconnected from its clients) during excel import and show a special error message. This can occur if you open the file in Excel after opening it in the Excel-Import dialog.
4.7x.0076
27.March.2011
  • Modified logic to show a line in the text editor. If the information in the Add-In's grid is out of date, then the module must be rescanned. In some circumstances, this led to an exception.
4.7x.0075
16.March.2011
  • Modified support for Silverlight projects
    • Do not add x:Name attribute to root node
    • Do not add multilang namespace reference to root node (this only applies to the WPF support using x:Static).
    • Some unnecessary file save operations removed. Read XAML text from editor window if one is open.
    • Minor bug fixes
4.7x.0074
13.March.2011
  • Fix stupid error adding StaticResource to App.Xaml. Insert the RootNamespace of the target project, rather than RootNamespace of a test project!
4.7x.0073
13.March.2011
  • Modified support for Silverlight projects
    • Instead of using the x:Static syntax, e.g.
      "{x:Static ml:MultiLang._1}"
      (which is supported in WPF, but not Silverlight), use Binding syntax, e.g.
      "{Binding _1, Source={StaticResource ml}}"
    • Define the StaticResource ml by inserting an Application.Resource statement into App.Xaml file:
      lns:res="clr-namespace:SilverlightInActionFirstApp.ml_resources" x:Key="ml" />
    • On clicking on a node in the controls grid, load the Xaml file and select the text in the in the editor.
4.7x.0072
10.March.2011
  • Minor modifications to XAML scan for WPF/Silverlight projects.
  • Fix bug scanning multiple projects and setting the original language of projects not previously scanned.
4.7x.0071
9.March.2011
  • Minor modifications to XAML scan for WPF/Silverlight projects.
4.7x.0070
6.March.2011
  • Minor correction to XAML scanner.
  • More logging information generated by XAML scanner.
4.7x.0069
5.March.2011
  • Multiple-Project selection dialog extended to allow selection of the original language and the scan source and scan controls options.
    This avoids having separate dialogs displayed for each project.
  • In the three main grids, use the foreground and background colours configured for the visual studio text editor, for plain text and selected text.
  • Splitter bars added to the translation memory dialog for better editing of multi-line texts.
4.7x.0068
26.February.2011
  • For unmanaged C++
    • Option to generate separate .rc files (_ml.rc) for the satellite DLLs removed. This option never worked properly.
4.7x.0067
24.February.2011
  • For unmanaged C++
    • The code added to the .rc file based on the contents of the TEXTINCLUCE 3 macro (see 4.7x.0065) must be placed in a conditional compilation block, with the condition #ifndef APSTUDIO_INVOKED.
4.7x.0066
20.February.2011
4.7x.0065
20.February.2011
  • For unmanaged C++
    • Restore the original text to localized resources if translation of the text is disabled.
    • Modified handling of escape sequences in strings from .rc files.
    • Apply the option Show escape sequences to all three tabs for unmanaged C++ projects.
      (It is only applied to the source code tab for C# projects.)
    • Always generate symbolic IDs for strings exported to the STRINGTABLE.
    • New logic to include localized MFC resource files, based on the contents of the TEXTINCLUCE 3 macro.
  • Prevent an error which occurred if a cell was in edit mode when you closed visual studio.
  • If the option Show escape sequences is selected, do not escape the single quote character (C# and C++).
  • Don't handle the F3 key if the Add-In's window is not active.
4.7x.0064
15.February.2011
  • Bug fix handling CONTROL directives in .rc files.
4.7x.0063
13.February.2011
  • For unmanaged C++:
    Modified handling of CONTROL directives in DIALOG resources. Filter out SS_BITMAP, SS_ENHMETAFILE and SS_ICON styles, because the text parameter is not a localizable string.
4.7x.0062
6.February.2011
  • New option for C++/CLI projects, to handle them as .NET projects or unmanaged C++ projects.
4.7x.0061
24.January.2011
  • Improved handling of line breaks and C# escape characters in online translation.
4.7x.0060
23.January.2011
  • Fixes to handling of MFC/unmanaged C++ projects
    • Fix problem with inconsistent line terminators in .rc files
    • Fix problem handling STRINGTABLE entries following empty lines
    • If the option to export all strings to the STRINGTABLE is not selected, then do not generate IDS_MULTILANG_xxx entries in resource.h (for the strings which are not exported).
4.7x.0059
20.January.2011
  • Improved handling of ASP tags with a localizable text property. Do not handle embedded tags as translatable text.
  • Minor bug fix scrolling to a component-node within the grids.
4.7x.0058
17.January.2011
  • Correction to SQL syntax in a database schema update to the global database for compatibility with SQL Server.
4.7x.0057
16.January.2011
  • Improved handling of formatting sequences in online translation, by embedding them in tags. This applies to (at present) to:
    • C++ printf formatting strings (e.g. %d)
    • C escape sequences (e.g. \n)
    • .NET String.Format formatting strings (e.g. {0})
  • WPF/Silverlight
    • Detect Silverlight projects
    • Minor fix to XAML scan
    • Exclude WPF components from the logic (see 4.7x.0056) to set Localizable=True
  • Minor modifications to scanning multiple projects:
    • If the original language has not been specified for one project, but has been specified for other projects, then assume that they have the same original language.
    • Only show the rescan dialog once and not once for each project.
  • Improvements to .rc file handling
    • Handle numeric language IDs.
    • Improved detection of which resources are associated with which language and which are language neutral.
    • If resources are defined as language neutral, then they are not duplicated for each language.
    • For menu items in submenus, define a unique internal property name including the submenu position. Previously, the internal property name included only the top-level menu ID and the resource ID of a menu item, which - unfortunately - might not be unique.
  • New options for MFC/Unmanaged C++
    • Option to generate separate .rc files (_ml.rc) for satellite DLLs (default=true)
    • Option to export all strings to the STRINGTABLE including strings used in DIALOG and MENU resources, or to exclude those strings from the STRINGTABLE (default=exclude)
4.7x.0056
6.January.2011
  • New form shows progress whilst setting Localizable=True.
  • Compare texts in global database using LIKE operator (not =) so that it will work with the SQL Server datatypes text and ntext.
4.7x.0055
3.January.2011
  • .rc file scan handles LANGUAGE statements embedded in resource definitions.
  • Use of escape characters in .rc files corrected.
4.7x.0054
1.January.2011
  • Improved support for unmanaged C++ projects with multiple .rc files.
4.7x.0053
31.December.2010
4.7x.0052
27.December.2010
  • Modified generation of MFC Satellite DLLs.
    • Previously, the Add-In generated a new resource file (satellite.rc) for each DLL, and copied the file resource.h and the whole of the res subdirectory into the Satellite DLL's project directory.
    • The new version references the same resource file in the main project and in all satellite DLL projects. It specifies the preprocessor defines AFX_RESOURCE_DLL and AFX_TARG_xxx to select the relevant language resources.
4.7x.0051
20.December.2010
  • Fix bugs introduced with multiple project support or with the new toolbar:
    • Event handlers for Filter with regular expressions command in context menu reconnected.
    • Filter with regular expressions repaired.
    • Prevent exception on closing Visual Studio (or on closing a project in the Add-In).
    • Repair Excel and OpenOffice Export.
4.7x.0050
19.December.2010
  • Restructuring of XAML scan, in particular the manner in which it loads referenced assemblies using a separate AppDomain.
  • Catch COMExceptions generated saving an Excel file.
  • Bug fix on using the command "Change language identification" on the original language of a project.
  • Better error checking on opening a file in an editor window (in particular if the file has been removed from the project).
  • On changing the original language of unmanaged C++/MFC project, automatically modify the LANGUAGE statement in the original .rc file. (In non localized projects, it is not uncommon for resources to be marked as English(US), even if they are in some other language.)
  • Toolbar in Add-In window changed from a ToolBar control to a ToolStrip control. All drop down menus are now handled directly by the ToolStrip control.
    (This changes the look and feel slightly. It is a much bigger change than you would imagine.)
  • Detect javascript in ASP files using the type attribute (type="text/javascript"). Previously this only considered the language attribute.
4.7x.0049
11.December.2010
  • Bug fix to prevent ASP script code being handled as basic HTML text.
4.7x.0048
7.December.2010
  • Bug fixes:
    • Fix to logic to detect resource-only-dlls
    • Fix to logic to show text in original language for non-selected items
    • Expand project root node in controls grid after scan
    • Don't show rescan-menu if there is no current project (which can only be the result of an earlier error)
4.7x.0047
6.December.2010
  • Beta version of multiple project support:
    • Additional item in the drop down list of projects
4.7x.0046
30.November.2010
  • Bug fix recognizing project type. (Previous version did not recognize web projects at all!)
4.7x.0045
24.November.2010
  • Bug fixes in dialogs to (1) store resources and (2) rescan selected components.
  • Exclude MFC satellite DLLs from the drop down project list.
  • Exclude the project MLRuntime from the drop down project list.
4.7x.0044
21.November.2010
  • Bug fix importing from 3-Worksheet Excel format, if a new String-ID has been generated for a text in the source code.
  • Do not set the localizable property for ignored modules.
  • (Countless internal changes in preparation for working with multiple projects in a solution in a future version.)
4.7x.0043
30.October.2010
  • New method of sending error report via email, which automatically attaches the log file.
4.7x.0042
26.October.2010
  • Correction to controls scan via source code (scanning InitializeComponent) to detect (for example) columns of ListView controls.
4.7x.0041
13.October.2010
  • More general logic to prevent prompts to save files during the controls scan, by saving them automatically.
4.7x.0040
11.October.2010
  • Prevent occasional prompt to save a .resx file during the controls scan, by saving it automatically.
4.7x.0039
4.October.2010
  • Some additional exception handlers added to the (new) Excel import and export dialogs.
4.7x.0038
4.October.2010
  • Minor correction to the way that the VB code scanner recognizes preprocessor directives.
4.7x.0037
3.October.2010
  • Minor correction to the logic to detect UTF8 encoding without byte order mark. This function previously generated an error for files of less than 3 bytes.
  • Restructuring of the Excel Export and Import functions so that all three supported Excel formats are exported using a common dialog and imported using a common dialog. On export, you can select the format via a drop down list (the default is the simple format). On import, the format is detected automatically.
4.7x.0036
8.September.2010
  • Just some translations
4.7x.0035
5.September.2010
  • Better error handling for write protected source files. In previous versions, an attempt to modify a write protected file could lead to a COM-exception in Visual Studio.
  • Set BasePath property of ResXResourceReader class whenever it is used. This should prevent an exception reading references to image files.
  • Modified logic to add the MLRuntime project to the solution. Previously, an error occurred if the MLRuntime project files were already present.
  • New logic to export texts to Excel dependent on the translation status. You can now select exact which status values should be exported.
  • Template files now installed to the Common Documents directory and not to Program Files.
  • Minor change to the SelectLanguage.cpp template for unmanaged C++ projects.
4.7x.0034
23.August.2010
  • Minor fixes to Open Document import.
  • Change SQL parameter names to lower case for SQL Server Compact Edition.
4.7x.0033
18.August.2010
  • Bug fix in ASP scan. Texts were previously ignored following a script block.
4.7x.0032
16.August.2010
  • Minor update to logic to enable and disable the drop down language list on the toolbar.
  • Additional logging added to Search Next function.
4.7x.0031
24.July.2010
  • Corrected handling of ignored modules in the ASP/HTML scan.
  • New handling of TITLE tag on ASP Master pages.
  • Check for read only XML project database.
  • Improved logic to enable and disable the Show in Multi-Language (go to line) button on the toolbar.
  • Improved error handling in Show in Multi-Language button and context menu command.
4.7x.0030
20.July.2010
  • Database update for MDB format project database to add the table IgnoredModules. (Has no effect on the XML format project database).
4.7x.0029
19.July.2010
  • Bug fix restoring the results of the controls scan from the project database.
4.7x.0028
15.July.2010
  • Support for MFC Satellite Dlls.
  • Ctrl-Space can now be used to toggle whether a component is ignored.
  • Ctrl-Space and the equivalent command in the context menu now work with multiple selection.
4.7x.0027
8.July.2010
  • Some field sizes increased from 1024 to 4096 in the ADO.NET datasets for the the global database and the project database. In the case of the project database, this only affects the Access database format and not the XML format.
4.7x.0026
7.July.2010
  • Project list in the Select project dialog now includes projects in solution folders. (These projects were already included in the drop down project list, but in the dialog!)
4.7x.0025
5.July.2010
  • Bug fix rescanning single components when "scan controls via source code" is selected and the component in question does not have a designer window.
  • Additional logic in XAML scan to handle xmlns attributes in nodes other than the root node.
4.7x.0024
4.July.2010
  • Automatic detection of UTF-8 encoding for source code files without a byte order mark (BOM), as far as this is possible.
  • Corrected handling of content properties in XAML, using the ContentPropertyAttribute on the class definition.
4.7x.0023
1.July.2010
  • Check the availability of Microsoft Translator and get a list of the supported languages in a background thread (rather than the main thread). This speeds up the initialization of the Add-In and prevents it from blocking if there are problems connecting to the online service.
  • New option to select whether components in the controls tab are sorted according to their base class (e.g. Form or UserControl), which was previously the only option. By default this option is not selected.
4.7x.0022
24.June.2010
  • Bug fix scanning XAML files based on the PageFunction type.
4.70.0021
4.71.0021
24.June.2010
  • Bug fix opening the Add-In Settings dialog (only for VS 2008 and 2005)
4.7x.0020
24.June.2010
  • Sort list of components in Export to resources dialog.
  • New option to hide ignored modules when "hidden nodes" are hidden. By default this option is selected.
  • Menu command Native runtime support renamed as Regenerate resources (now that resources are exported automatically anyway).
4.7x.0019
23.June.2010
  • Option added to 'Simple Excel Export' to indicate the translation status with the background colour.
  • Bug fix in generating .resx file (in version 4.7x.0018).
4.7x.0018
22.June.2010
  • Minor corrections to Excel Import/Export functions:
    • 'Only new, modified and untranslated' strings on export
    • 'Update status of all imported strings' on import
  • Exception handler for concurrency violation added to update of properties table in (MDB format) project database.
  • For unmanaged C++/MFC projects, the remove language command now removes language specific resources from the .rc file.
  • Some efficiency improvements in the source code scan for unmanaged C++/MFC projects (in particular for VS 2010).
4.7x.0017
16.June.2010
  • Modified logic in tree/grid to manage which nodes are actually visible.
  • Correction to handling comment tags in the ASP/HTML scan.
  • Improved error checking on updating the SourceScanResults information.
  • Uninstall links to a feedback page on the web.
4.7x.0016
10.June.2010
  • Version of VCCodeModel.dll updated (9 for VS 2005/2008, 10 for VS 2010)
4.7x.0015
9.June.2010
  • Installation logic for SQL Server Compact 3.5 modified:
    • An existing installation is detected by the presence of the registry value
      HKLM\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\Version
      The actual version number is not checked.
      (Previously a check was made via the Windows Installer, using several different product UUID's, but it was not enough. For example, different language versions have different product codes!)
    • The installation is not aborted if you decline to download and install SQL Server Compact 3.5.
      (However, in this case, the Add-In may not work!)
4.7x.0014
8.June.2010
  • Bug fix determining the highest numeric value nnnn used in the name ML_nnnn of a node in a XAML file.
4.7x.0013
6.June.2010
  • New logic to hide <%# %> and <%= %> script tags in ASP files.
4.7x.0012
4.June.2010
  • New logic to detect extended properties (e.g. Tooltip on ToolTip1) which works with with VS 2010.
4.7x.0011
2.June.2010
  • Another modification to the logic to add the menu command to the tools menu, which should work reliably on localized versions of Visual Studio.
  • New logic to load and unload assemblies which are referenced in WPF projects, by loading them into a separate AppDomain.
4.7x.0010
27.May.2010
  • Creating menu command in tools menu fixed.
4.7x.0009
26.May.2010
  • Further development of support for strings in script code embedded in ASP.NET files.
    (This version mostly works, except for hiding items with the sun/moon icon, which is not yet implemented.)
  • Show in Multi-Language context menu command fixed for Visual Studio 2010.
  • Runtime-language-switching support for Web Projects no longer added to .master files.
  • After a scan, changes to any original texts are handled as a change to the text in the original language and (new) immediately stored to the language specific resource files.
4.7x.0008
19.May.2010
  • Modified handling of referenced assemblies in WPF projects.
  • New logic to insert ml_string() call into script code in ASP files. Still experimental.
4.7x.0007
16.May.2010
  • Fix bug which could cause target files in a multi-project solution to be locked.
  • Option to enable code scan in ASP files. This is for experimental use only.
  • Modified handling of referenced assemblies in WPF projects.
4.7x.0006
14.May.2010
  • Size of field XPath in ControlsScanResults increased from 255 to 8192.
  • License check added on changing the status of a translation from online to edited.
4.7x.0005
13.May.2010
  • Separate versions created for Visual Studio 2005, 2008 and 2010, compiled against the .NET framework versions 2.0, 3.5 and 4.0 respectively.
    Version numbers used as follows:
    • 4.70 Visual Studio 2005
    • 4.71 Visual Studio 2008
    • 4.72 Visual Studio 2010
4.70.0004
5.May.2010
  • Previous change reverted.
  • Suppress writing changes to project database to disk during the initialisation phase.
4.70.0003
4.May.2010
  • Write XML project database by calling the function DataSet.WriteXml with an XmlWriter object, instead of simply specifying the filename. This is a desperate attempt to avoid a file locking problem (which might only be with Windows 7).
  • Check for presence of Microsoft SQL Server Compact 3.5 SP2 ENU 3.5.8080 before downloading and installing an older version!
4.70.0002
2.May.2010
  • Efficiency improvement accessing XML format project database, in particular during the initial scan.
4.70.0001
19.April.2010
  • Context menu command Go to next conflict changed to Go to next 'out of date' translation.
  • Some texts translated to German and French.
4.70.0000
18.April.2010
  • Column original text removed. The original text is shown in the column for the original language.
  • New translation status out of date. If the original text is changed in the project, then this text is automatically copied to the original language. The status of all existing translations is set to out of date. The previous text is shown in the comment column.
  • Excel export option Only export untranslated strings is now based on the translation status. If selected, then texts will be exported if:
    • one or more translations of the text are missing
    • one of more translations of the text do not have the status spreadsheet import.
  • New Excel import option to set the status of all imported texts to spreadsheet import, even if the imported text is identical to the previous text.
  • New handling of escape sequences. Escape sequences are now always processed when the source code is scanned and stored in the unescaped state. If you wish to see escape sequences in the grid, then you can select an option in the Add-In setup dialog. (A similar option for the Excel export is coming soon).
  • New code generation options for the function ml_UpdateControls():
    • Load global resources explicitly
    • Load local resources explicilty
    • Load local resources implicitly

4.65.0081
22.March.2010

  • Improved error checking on storing texts to the global database.
  • Some updates to the help file.
4.65.0080
14.March.2010
  • Additional resources tab added for unmanaged C++/MFC projects.
  • Some updates to the help file.
4.65.0079
12.March.2010
  • Bug fix adding .resx files to web projects.
4.65.0078
9.March.2010
  • Bug fix in ASP Scan
4.65.0077
7.March.2010
  • New option to show the translation status as a tooltip. If not selected, and if a text is truncated (or wrapped onto multiple lines), then the full text is shown as a tooltip (which is probably a better feature).
  • Some localization in French and German.
  • Some updates to the help, in particular concerning the translation status.
    (The help file is still woefully out of date.)
4.65.0076
6.March.2010
  • Always add generated resx files to the Visual Studio project. This now includes web projects.
  • Change to dirty-flag in version 4.65.0074 mostly reversed. Updates are now only suppressed for Windows Forms components - when there is only one language in the project. In particular, this avoids pointlessly setting the localizable property after the initial scan.
4.65.0075
2.March.2010
  • Bug fix reading accented characters from ASP files (or .rc files for unmanaged C++ projects), by specify encoding parameters to the StreamReader constructor.
  • Avoid opening ASP designer windows on sorting the ASP grid, by suppressing unwanted selection changed events.
4.65.0074
1.March.2010
  • XAML scan (for WPF projects) handles unnamed XML elements. If an attribute is selected for translation, or simply hidden, then a name attribute is generated for the element.
  • Dirty-flag logic to save resource strings and - if necessary - set the localizable property for a form or usercontrol, disabled so long as there is only one language in the project.
  • Bug fix iterating over a list of languages, which could be modified during the iteration.
4.65.0073
25.February.2010
  • Bug fix in 3-Worksheet excel export, writing strings to the source code worksheet. (This was broken in version 4.65.)
  • Check for newer versions of SQL Server Compact edition before downloading and installing it. In particular, check for the version installed with Visual Studio 2010 beta.
4.65.0072
22.February.2010
  • Bug fix saving texts to .resx files immediately after editing the texts, for ASP projects.
4.65.0071
21.February.2010
  • Support for online translation with the Google translator added.
  • For C++/MFC projects, close any resource editor before updating the .rc file.
4.65.0070
18.February.2010
  • Catch exception in additional resource scan, caused by missing image resource file.
4.65.0069
17.February.2010
  • Modified logic for concatenating multiple texts for translation with the Microsoft Translator.
  • New support for attributes.
4.65.0068
8.February.2010
  • Minor fixes to WPF support.
  • Minor fix to additional resource scan.
4.65.0067
5.February.2010
  • Fix sorting components in ASP grid.
  • Fix the go to line command in the editor context menu for ASP files.
4.65.0066
1.February.2010
  • Additional error handling in the additional resource scan.
4.65.0065
31.January.2010
  • Ignore source code files which are referenced in the project, but do not actually exist.
  • Schema update function for global database made more robust.
  • Always catch exceptions on the CodeElements.Count property.
  • Fix bug in ASP scan which caused a rescan whenever you clicked on the component item in the grid.
  • Fix bug in handling hidden texts in ASP pages, whose tag has an ID, but no meta:resoureckey attribute.
  • Fix problems with context menu commands, when the menu is shown in an empty part of one of the grid windows.
  • Suppress the context completely, if there is no active project.
  • Catch exceptions from the function ProjectItem.IsOpen.
4.65.0064
27.January.2010
  • Minor fix to logic to suppress ASP tags with no text and not localizable attributes.
4.65.0063
27.January.2010
  • Do not show ASP tags with no text and no localizable attributes.
  • Sort components in ASP grid.
  • Hide sun icon for selected items (which cannot be hidden anyway).
4.65.0062
26.January.2010
  • Bug fix in Go to line function for source or ASP code, via the Add-In toolbar or the code editor context menu.
4.65.0061
25.January.2010
  • New tab for additional resources.
  • New context menu command to change the original language of a project.
4.65.0060
19.January.2010
  • Bug fix saving the expanded state of nodes in the ASP/HTML grid.
4.65.0059
16.January.2010
  • New option for the ASP scan, to include properties which do not have the Localizable attribute.
4.65.0058
12.January.2010
  • New options in the setup dialog to suppress showing a selected a control in a designer window, and to suppress showing the selected source code line in the code editor.
4.65.0057
10.January.2010
  • Additional check for errors accessing a source code file on selecting or deselecting lines (in the source code).
  • Special handling of ALT-Enter (to change the status of a translation to edited) fixed.
  • Some updates to the help file.
4.65.0056
7.January.2010
  • Minor efficiency improvement in spreadsheet import.
  • Bug fix for properties in a string array which have been hidden. Previously these properties were always selected (and no longer hidden) after a rescan.
4.65.0055
5.January.2010
  • New dialog to remove Multi-Language support, available via the tools menu.
4.65.0054
3.January.2010
  • Catch exceptions using Visual Studio CodeModel
    • on accessing CodeElement.InfoLocation
    • on accessing CodeElements.Count
  • Update local resource files after scan, if new properties are automatically selected.
4.65.0053
1.January.2010
  • Dotnetrix.TabControlEx removed. (Standard TabControl without visual styles used instead.)
  • Some additional checking for read only files.
  • Safer exception handling in the function CloseNonVisibleWindows() (the windows collection can contain a window which has already been disposed!)
4.65.0052
25.December.2009
  • Minor fixes to adding the language selection dialog to a WPF project.
  • Automatically run custom tool on MultiLang.resx for WPF projects.
4.65.0051
21.December.2009
  • Add language selection dialog feature supports WPF projects.
  • Installation now supports Visual Studio 2010%%%(the Add-In seems to work, but hasn't been tested very much)
  • Internal restructuring of functions which access the Visual Studio Code-Model recursively.
4.65.0050
16.December.2009
  • Bug fix in search function (introduced in version 4.65)
  • Catch exception checking out a file, or simply checking whether a file is under version control
  • Handle illegal text records in XML project file (without LanguageID or without StringID)
4.65.0049
14.December.2009
  • Support for _T macro in (unmanaged) C++ projects.
  • Generate string tables in .rc files with STRINGTABLE PRELOAD DISCARDABLE instead of just STRINGTABLE DISCARDABLE.
4.65.0048
13.December.2009
  • Some updates to WPF support
4.65.0047
10.December.2009
  • Minor modification to tree drawing logic (to handle cases which shouldn't happen anyway!)
  • Bug fix in the code which restores the scan results from project database.
4.65.0046
9.December.2009
  • TabControlEx 2.0.0.1 from Dotnetrix used.
  • Support online translation with neutral language, if specific language is not supported.
  • More error checking in XAML parser.
  • Some minor fixes for C++/MFC support.
4.65.0045
7.December.2009
  • Update and Delete SQL statements simplified for some tables in the project database (if the MDB format is used).
  • First version with basic WPF support.
4.65.0044
5.December.2009
  • Dotnetrix.TabControl removed. Standard TabControl used with visual styles disabled (because the tabs at the bottom of the control are rendered incorrectly with visual styles).
4.65.0043
4.December.2009
  • Bug fix adding a (non existent) resx file to a project.
  • Minor change to the configuration of the user interface to avoid unnecessary (and possibly dangerous?) resizing of the tab control.
4.65.0042
1.December.2009
  • Prevent a NullReference exception (in the function FindFunction()), during the source code scan.
4.65.0041
27.November.2009
  • Fix errors in Excel Export with illegal worksheet name, in particular for ASP projects.
4.65.0040
21.November.2009
  • Some minor changes to avoid errors if a project contains both Windows Forms and WPF forms.
    (Still no WPF support, but it's coming soon.)
4.65.0039
21.November.2009
  • Some tentative changes for WPF projects removed, because WPF and Windows Forms components can be mixed in a single project.
  • Multiple texts passed to the Microsoft Translator in a single translation request, which improves performance and avoids a throughput limit at the server.
4.65.0038
19.November.2009
  • Suppress generation of .resx files which do not contain any texts.
  • Restore generation of neutral culture .resx file for web projects.
  • Truncate mailto command line to 2000 characters.
4.65.0037
18.November.2009
  • Add-In registration changed to XML method.
4.65.0036
12.November.2009
  • Add logging of opening .resx files during scan.
4.65.0035
11.November.2009
  • Bug fix inferring ASP properties from resources.
4.65.0034
11.November.2009
  • Fix logic to trap prohibited changes to project database in unlicensed version.
4.65.0033
10.November.2009
  • Fix resource export for properties of child controls, such as menu items.
    (An old project database may contain duplicate records with different names for the same property, e.g. MainMenu.Item(0).Text and FileMenu.Text, but with the same resource name. This could result in the resource not being exported!)
4.65.0032
9.November.2009
  • Improved proxy support for Microsoft Translator.
  • Improved logging of detected files and of opening designer windows.
4.65.0031
5.November.2009
  • Proxy address option to the setup dialog.
    (Not yet tested on a system which needs it!)
4.65.0030
4.November.2009
  • Set GeneralIDs.ResourceName to NULL on adding a new string ID, to meet constraint if the project database is an access database.
  • Disallow changing the status of a translation to online translation or imported localization in an unlicensed version.
4.65.0029
3.November.2009
  • Reworking of the limitations in the unlicensed version.
  • Minor changes to the templates MlString.vb and MlString.cs, to handle the case where there is no RootNamespace.
  • Additional Import statements added to the template SelectLanguage.vb.
4.65.0028
25.October.2009
  • Optionally indicate the translation status with the background colour:
    • white = edited in grid
    • blue = original text
    • yellow = from global database
    • green = from excel import
    • red = online translation (Microsoft Translator)
  • Commands to change the translation status:
    • In the context menu
    • In edit mode, ALT-UP and ALT-DOWN move to the cell above or below, and change the status of the translation to edited.
  • Optionally set the background colour in the Excel export in the same manner
  • Extended support for Microsoft Translator:
    • New command in tools menu
    • New command in context menu (in language submenu)
    • New option in Add Language dialog
  • Note: The background colour is important in conjunction with online translation, because we can't expect online translations to be of a high quality. In general, a translator will still have to check every single text.
4.65.0027
21.October.2009
  • Uninstall removes registry entries which are created by the installation.
    Registry entries created by the Add-In itself are not removed (yet).
  • Uninstall removes registry keys which are created by the installation, if they are empty.
  • Error report via email contains the windows version.
  • Translation status is shown in the context menu, and can be modified.
4.65.0026
19.October.2009
  • Bug fix in translation memory dialog (incorrect field length in ADO.NET DataTable definition).
  • New fields in project database (in preparation for new features) to:
    • identify StringIDs which have been explicitly added by the user
    • define a status for each translation.
4.65.0025
15.October.2009
  • Bug fix in copy operation after selecting Apply to all in the multiple-usage dialog.
4.65.0024
12.October.2009
  • The Add-In no longer updates the neutral .resx files for Forms, UserControls or Web pages. It is better to leave this to Visual Studio
    (Exception: If you edit the original text in the Add-In's controls grid, then the neutral .resx file will be updated.)
  • Check for NullReference during the scan of InitializeComponent(), on reading a text from the resource file.
4.65.0023
11.October.2009
  • Controls scan via source code (InitializeComponent) now detects use of AddRange() method to initialise - for example - a combo box.
4.65.0022
10.October.2009
  • Tutorial files are now installed to the Shared Documents directory (instead of Program Files).
  • New command in the Add-In's Help Menu opens the Windows Explorer in this directory.
4.65.0021
9.October.2009
  • Fix error showing context menu on column headers and add exception handler to this function. (The previous version crashed!)
4.65.0020
9.October.2009
  • Installation modified to grant users modify access to the global database file in common application data directory.
    (No program change. No version change.)
4.65.0020
6.October.2009
  • Minor corrections to installation.
4.65.0019
5.October.2009
  • Bug fixes editing the original text column in the controls grid.
  • Bug fix in C++ source code scan (detecting function names).
4.65.0018
3.October.2009
  • Global database now uses SQL Server Compact 3.5.
  • If it is not already installed, then it is downloaded and installed automatically.
  • SQL Server and Access are still supported, but the database files are no longer included in the installation.
4.65.0017
28.September.2009
  • More exception handling on enumerating CodeElements.
4.65.0016
22.September.2009
New version with numerous internal changes, user interface changes and some extended functionality:
  • New grid component used
  • All database access finally with ADO.NET
  • Consistent handling of hidden items in both grids
  • Immediate updates to .resx files
  • Immediate updates to the function ml_UpdateControls()
  • Toggle between two modes for column sizing
  • Option to ignore specified modules
  • Auto generated files ignored automatically
  • Microsoft Translator button in translation memory dialog
See also Description of version 4.65 beta

4.60.0048
28.July.2009

  • Additional error checking on the FileCodeModel.CodeElements property, which can cause a COMException (in the function FindFunction()).
4.60.0047
28.July.2009
  • Bug fix in controls scan, for properties which have been explicitly deselected.
  • Bug fix recognizing forms which derive only indirectly from System.Windows.Forms.Form.
4.60.0046
27.July.2009
  • Truncate worksheet name to 31 characters and remove special characters during Excel export.
4.60.0045
20.July.2009
  • Catch error on CodeElement.FullName.
4.60.0044
18.July.2009
  • Automatically import texts from existing .resx files for new projects (with prior localization).
4.60.0043
16.July.2009
  • Test for member variable for a control removed. Alternative code generation for this case also removed, because it did not always compile correctly. Controls with GenerateMember=False are not supported.
4.60.0042
14.July.2009
  • Avoid COMException from EnvDTE.FileCodeModel.CodeElements at another place (see also 4.60.0038).
4.60.0041
11.July.2009
  • Modified procedure to attach global database file to an existing instance of SQL Server. This is performed with the utility AttachGlobalDatabase, which now uses late binding to work with SQL Server 2005 or 2008, if one of these is installed.
    (No change to the Add-In itself.)
4.60.0040
8.July.2009
Changes to the global database installation (taken from version 4.65 beta).
  • Store global database connection in HKCU\Software\Jollans\MultiLang instead of HKCU\Software\Jollans\MultiLang2005 or ...\MultiLang2008:
    • for compatibility with the VB6 Add-In
    • for compatibility with possible future products (Excel Add-In?)
    • because differentiating between VS 2005 and 2008 was stupid anyway
  • Install SQL Server datafile for global database (to Common App Data\MultiLang) and try to connect it to an existing SQL Server Express installation. If this succeeds, the Add-In is configured to use this database. Otherwise it continues to use the old Access database file.
4.60.0039
8.July.2009
  • Fix for "Projectitem unavailable" error after removing a language.
4.60.0038
7.July.2009
  • Add exception handler around EnvDTE.FileCodeModel.CodeElements, which can cause the COMException E_UNEXPECTED (aka. Catastrophic failure).
4.60.0037
7.July.2009
  • Bug fix in the changes in previous version.
4.60.0036
6.July.2009
  • Check constraints in ml_temp_xxx.xml files if a constraint error occurs.
4.60.0035
4.July.2009
  • Additional error checking on opening the Add-In's Window.
  • Registry entry GlobalDBUseConnectString changed to GlobalDBUseConnect for consistency with the setup program (which creates this entry) and with the VB6 Add-In.
4.60.0034
24.June.2009
  • Another change to Infragistics support. Specifically scan into properties with the Attribute LocalizationCategory="Data", but not other values ("Appearance" or "Behavior"). This is more restrictive than the previous version.
  • Fix handling of asp:literal tags with were not created the Add-In itself and contain additional attributes, in particular the Visible attribute.
4.60.0033
23.June.2009
  • Bug fix for Infragistics support.
4.60.0032
22.June.2009
  • A slightly better fix for Infragistics service release 20091.2023.
4.60.0031
16.June.2009
  • Minor (and experimental) fix for Infragistics service release 20091.2023.
4.60.0030
14.June.2009
  • Improved constraint check on reading project database from XML file.
  • Identify menu items (and similar nested controls) by their own control name, rather than the indexed property in the parent control.
  • New project setting to show menu items (and similar nested controls) as top level controls in the grid, rather than as child nodes under the parent control.
4.60.0029
4.May.2009
  • Detect a language added to an Excel file (3-Worksheet format) when the new language is to the right of the comment column and prevent an error on importing the texts for this language.
4.60.0028
4.April.2009
  • Check for localizable attribute on the Text property of an ASP tag in base classes.
4.60.0027
2.April.2009
  • Incorrect and unnecessary handling of quotes in HTML text removed.
  • Global database installed to Application Data directory (instead of Program Files).
4.60.0026
25.March.2009
  • Minor update to the logic for detecting an unmanaged C++ project based on the Common Language Runtime support option. The options No support and /clr are now both handled as unmanaged code.
4.60.0025
19.March.2009
  • Change to method of inserting Asp:Literal tag. Text is now placed between the start and end tags, rather than in the Text attribute.
4.60.0024
18.March.2009
  • Option Untranslated Only added to Excel and Open Document export. If you select this option, strings are only exported if at least one translation is missing.
  • New Single Worksheet Excel export with the features:
    • Multiply used strings are exported multiple times
    • Location column indicates where the string is used
    • Multiple usage column indicates how many times the string is used
    • Header is only one row (which is better suited to sorting the worksheet)
    • You can sort the worksheet on the String ID column to group multiple occurrences of the same String ID together
    • You can sort the worksheet on the Location column to group the texts according to where they are used
4.60.0023
14.March.2009
  • Remove (Default) form the language selection list.
  • Detect the title attribute in the page directive (for ASP content pages used in master pages).
  • Bug fix updating the current text of ASP attributes from the grid.
4.60.0022
6.March.2009
  • Support added for the Title of an ASP page, by defining the meta:resource key in the page directive.
  • Check out temporary XML files, if they are under source controls (which I do not usually recommend).
4.60.0021
3.March.2009
  • Check out XML project database, if it is under source control.
4.60.0020
25.February.2009
  • Catch ConstraintException on reading project database from XML file. Remove duplicate records and try to set DataSet.EnforceConstraints to True.
4.60.0019
24.February.2009
  • Minor fix to loading assemblies. Assembly.LoadFile replaced with Assembly.LoadFrom.
4.60.0018
23.February.2009
  • Attempt to open assembly for referenced web control using Assembly.LoadFile, if Assembly.Load fails. Guess that VS has copied the referenced control into the bin directory.
4.60.0017
21.February.2009
  • Fix to handling of web controls registered via the web.config file.
  • Some restructuring to how assemblies registered via web.config or with a register directive in an ASP page are handled.
4.60.0016
18.February.2009
  • Additional logic on closing Excel, to try to ensure that the Excel application is actually closed.
  • Minor modification to colours used in Excel export, to avoid compatibility error saving to .xls format with Excel 2007.
4.60.0015
14.February.2009
  • Additional checking for null reference in the function AddPropertyNodes, after some error reports.
4.60.0014
11.February.2009
  • Bug fix in function Remove unused String IDs in the case where the project database is a .mdb file.
4.60.0013
6.February.2009
  • Detect additional source code files, in particular code files which are children of other types of files, such as .xsd files.
  • Additional localization of the Add-In itself.
4.60.0012
5.February.2009
  • Fix to Advanced Copy function, to prevent the case where the option specified language is selected (for source or destination), but no language is selected.
  • Catch AccessViolationException accessing ProjectItem.Properties when opening a designer window.
4.60.0011
4.February.2009
  • Handle LANGUAGE LANG_NEUTRAL, SUBLANG_SYS_DEFAULT in a .rc file as meaning the neutral culture. (Previously, it generated LCID=0x800, which is not supported by the CultureInfo class.)
4.60.0010
3.February.2009
  • Detect ASP Tags using binding syntax, e.g. Text='<%# Bind("title") %>', and treat them as non-localizable.
4.60.0009
28.January.2009
  • Comment feature added
  • Word wrap feature added
  • Context menu command Goto Line-Break conflict
  • Bug fix in .rc file scan for LANG_NEUTRAL
4.60.0008
17.January.2009
  • Minor change to an error message for unmanaged C++ support.
  • Updated help for unmaneged C++ support.
4.60.0007
15.January.2009
  • Minor fixes to support for unmanaged C++ projects
    • Template paths for MlString module were stored incorrectly
    • Control ID -1 in dialog resources is treated identically to IDC_STATIC and replaced with a newly generated unique ID
    • Symbolic names are generated in the string tables in the .rc file (e.g. IDS_MULTILANG_181 instead of 181), although this is of no particular importance
4.60.0006
12.January.2009
  • Minor fix for unmanaged C++ support.
4.60.0005
8.January.2009
  • Minor fix to identify properties of Kliksoft controls. At present, this support will only work if you select alternative runtime support.
4.60.0004
5.January.2009
  • Bug fix for selecting ASP properties when the grid is in the Flat list mode.
4.60.0003
5.January.2009
  • First version with support for unmanaged C++, in particular MFC, projects.
  • Some modifications to the HTML/ASP scanner:
    • All text between starting and ending tags for an ASP control, e.g. a label, is now associated with the text property, and may include formatting tags.
    • The formatting tags "ABBR", "ACRONYM", "ADDRESS", "B", "BIG", "CITE", "CODE", "DEL", "DFN", "EM", "FONT", "I", "KBD", "SAMP", "SMALL", "STRONG", "SUB", "SUP", "TT" and "VAR" are now left as part of the static HTML text for translation. This means that a translator will see these tags as part of the text. Previously, all tags were handled as a break between one block of text and the next.
    • Text within style tags is ignored.
  • Goto line button enabled for HTML/ASP source windows.
  • Goto line functionality added to context menu in source code and HTML/ASP windows (with the text Show in Multi-Language).
  • Some speed improvements handling source code files.
  • Expanded state of nodes in the HTML/ASP grid now saved to ml_temp_HtmlScan.xml (and restored after a new scan).
4.60.0002
17.December.2008
  • Attempt to fix a NullReferenceException.
4.60.0001
16.December.2008
  • Support for ASP server side comments added to ASP/HTML scanner.
  • Bug fix in search dialog for ASP/HTML grid
  • Partially implemented support for unmanaged C++ projects. Not yet ready for use!
4.60.0000
6.December.2008
  • The default format for the project database is now XML and not an Access database.
  • Bux fix assigning new StringIDs for the XML format.
  • Tutorial projects updated to use the XML project database.

4.55.0000
4.December.2008

  • Minor fix to saving the list of selected components.
  • The support for runtime language switching now generates code to remove the handler for the language changed event when a form is disposed.
  • Project properties dialog now has a second tab, where you can select how the project data is stored:
    • Access database, as in all previous versions
    • an XML file
4.54.0019
27.November.2008
  • Special handling of inherited forms restricted to forms, whose base form is in the same project.
  • List of selected components for Export to ResX and Rescan selected components saved (to ml_temp_ControlsScan.xml).
  • More internal changes, moving towards replacing the project database with an XML file.
4.54.0018
22.November.2008
  • Fix error opening the Language switching for web projects dialog.
    (Incorrect namespace "System.UI.Web" used instead of "System.Web.UI"!)
4.54.0017
18.November.2008
  • Minor fix to the versioning of the project database schema, to correctly update a database from the most recent version for VS 2003, if a project is converted to VS 2005 or VS 2008.
4.54.0016
2.November.2008
  • Support for hidden blocks in the source code, delimited by the comments MLHIDEON and MLHIDEOFF.
  • The dialogs Export to ResX and Import from ResX now have a components list as well as a language list, so that you can select specific forms and usercontrols for the export or import operation.
4.54.0015
29.October.2008
  • Minor bug fix on switching the alternative runtime support option, to prevent a (harmless) error dialog.
4.54.0014
28.October.2008
  • Modified code generation for the function ml_UpdateControls() to handle inherited forms. The function ml_UpdateControls() in an inherited form now calls the equivalent function in the base form.
4.54.0013
23.October.2008
  • Bug fix in source code scan for files with Unix style line breaks (LF only, not CR LF).
4.54.0012
21.October.2008
  • Bug fix handling verbatim strings in C#.
  • Bug fix handling extended properties (e.g. on ToolTip or HelpProvider controls) if the controls scan is performed by scanning the InitializeComponent() function.
4.54.0011
24.September.2008
Several changes to the resource export, mainly aimed at making support for Infragistics controls more reliable:
  • Close any resource editor windows before exporting resources.
  • Automatically select the option "Determine Resource Names" if any Infragistics controls are detected in the project.
  • New option "Clean up resource strings" to remove existing resource strings before exporting. (Not particularly recommended.)
  • Option to set Localizable=True removed. This is now always performed for Forms and UserControls which have Localizable=False. (Determining if Localizable=False is faster since version 4.53.0024).
4.54.0010
21.September.2008
  • Bug fix in the Filter by Regular Expression dialog. If you searched using an empty string, then an error occurred the next time the dialog was opened.
4.54.0009
18.September.2008
  • Bug fix for possible NullReferenceException on attempting to switch the designer language via the language list on the Add-Ins toolbar
4.54.0008
15.September.2008
  • First version with support for DevExpress XtraReports.
4.54.0007
13.September.2008
  • Fix bug generated on selecting a source code string containing a single inverted comma.
4.54.0006
20.August.2008
  • Exception handler added on closing hidden windows.
4.54.0005
13.August.2008
  • Fix adding support for runtime language switching for the special case that a control has a static (shared) constructor.
  • Some additional internal restructuring to the project database access (still preparing for bigger changes).
4.54.0004
4.August.2008
  • Fix parameter error in log statment.
4.54.0003
31.July.2008
  • Fix to ASP scan for empty attributes, e.g. Text="".
  • Fix to resource fallback logic for ASP pages, if a rescan is performed whilst preview mode is active (i.e. the language of the designer has been changed).
  • Special log file option for Excel import removed. The log information is now always stored in the standard log file.
  • Some additional error checking before updating the project database.
4.53.0031
30.July.2008
  • Same change as in 4.54.0002 applied to version 4.53.
4.54.0002
29.July.2008
  • ASP scan uses a case insensitive search for the PropertyInfo objects describing the attributes of ASP controls. (The function Type.GetProperty() is case sensitive.)

    Note that whilst this fixes a problem with the ASP scan, I haven't tested whether the localized resources are actually detected at runtime, if the case does not exactly match the original case of the property.
4.54.0001
26.July.2008
  • Internal restructuring of the access to the project database. At present, this introduces no change in functionality.
4.53.0030
26.July.2008
  • Minor fix to assigning resource names to ASP controls.
4.53.0029
24.July.2008
  • Some updates to handling multiple selection in the ASP/HTML grid.
  • Improved logic to relocate the current item, if an ASP file has to be rescanned on the fly.
4.53.0028
23.July.2008
  • Bug fix in the Filter with regular expression feature, if the match was against the complete code line and not just the text string. Previously, changes made to a file might not have been saved.
  • Bug fix in operations on a multiple selection in the ASP/HTML grid. Previously, the operation might have broken off before completion.
4.53.0027
22.July.2008
  • Bug fix on selecting multiple texts in the ASP grid. Previously, updates to an ASP file might not have been saved and a single file might have been opened multiple times.
4.53.0026
21.July.2008
  • Check for the Localizable attribute on the properties of web controls in all base classes. For example, the HeaderText of a CheckBoxField is inherited from BoundField, which itself overrides the definition in DataControlField. The definition in BoundField does not have the Localizable attribute, but if we look in the base class DataControlField, we find that it does have the localizable attribute.
  • Updates to the table GeneralIds in the project database. Column SourceCodeString renamed ContainsEscape (to reflect its actual usage). Column DontTranslate removed. Columns ContainsLineBreak and Comment added, but not yet used.
4.53.0025
20.July.2008
  • Bug fix in SQL WHERE clause for boolean comparison. Automatic type conversion from boolean to string is language dependent, which led to a localized version of True or False in the SQL statement. This has been replaced with the syntax '<>0' or '=0' which should be safer.
  • Minor fix to the initialsation of the list of languages, if you switch back and forth between different projects.
  • More information written to the log file.
4.54.0000
16.July.2008
  • Internal restructuring of the access to the project database. At present, this introduces no change in functionality. (Withdrawn.)
4.53.0024
24.June.2008


  • Installation modified to specifically require Administrator privileges.
  • On failing to load an assembly during the ASP scan, an error message is written to the output window, but the error dialog is not shown (might be a temporary change).
  • Bug fix in the function "Determine Resource Names" required for Infragistics controls.
  • Only show properties which have the IsBrowsable attribute. This is to avoid a particularly weird problem with the Infragistics UltraNumericEditor and UltraCurrencyEditor.
  • New function to determine whether a form or UserControl has the localizable attribute, without having to load the designer window, speeds up a couple of operations.
4.53.0023
22.June.2008
  • On deleting a translation via the context menu, and if the option "Store all strings in the global database" is selected, then the translation is also removed from the global database.
4.53.0022
19.June.2008
  • Support added for ASP components referenced via a Register directive in the ASP file.
  • Bug fix fetching translations from the global database for ASP pages.
  • Changes to project database:
    • SourceScanResults and ControlsScanResults tables removed.
      The identical information is now saved in the XML files ml_temp_SourceScan.xml and ml_temp_ControlsScan.xml. These files contain temporary information and can be deleted.
    • ToolboxBitmapCache table removed.
      The identical information is now saved in a project-independent file in
      \Application Data\MultiLang.Net\
  • Code generated in the function ml_UpdateControls() modified to support controls from Telerik (defined with local variables in InitializeComponent()).
4.53.0019
28.May.2008
  • Additional exception handler on fetching toolbox bitmap. The controls scan should not be aborted if this unimportant feature fails.
  • New logic on scanning controls via InitializeComponent, to open .resx file without using the designer window. This is almost certainly faster and may be more reliable.
4.53.0018
26.May.2008
  • Advanced copy does not copy texts which are the only defined via resource fallback (shown in light grey).
  • On inserting texts automatically from the global database, a text is not inserted if the identical text is already defined via resource fallback.
4.53.0017
22.May.2008
  • Advanced copy function speeded up.
  • Progress bar logic for controls scan simplified. The table ComponentInfoCache in the project database is now obsolete.
4.53.0016
14.May.2008
  • Fix to saving changes to controls, following an Advanced Copy operation, in the case that the designer window for the component was not already open. (Note: The current implementation is intolerably slow, but at least it seems to work.)
4.53.0015
11.May.2008

  • Restructuring of the scan of the function InitializeComponent() to handle concatenated strings.
4.53.0014
9.May.2008
  • When the Advanced Copy function copies strings to a source code file, and the file has to be opened first, then ensure that it is saved before closing it.
4.53.0013
8.May.2008
  • Show source code line in editor window after search or filter with regular expression operation.
4.53.0012
7.May.2008
  • Bug fix storing texts to the global database, after changing the identification of an existing language in a project.
4.53.0011
2.May.2008
  • Bug fix on importing from 3-Worksheet Excel format. If a string ID was changed in the source code worksheet, but the file was not already open in an editor window, then the source file would be updated, but then closed without saving the change.
4.53.0010
30.April.2008
  • Bug fixes handling the drop down project list (due to the new item).
4.53.0009
23.April.2008
  • Detect Forms and UserControls implemented with multiple partial classes. Only add the function ml_UpdateControls() to one of them.
  • Support for custom cultures (new in .NET Framework 2.0). Custom cultures do not have a unique LCID.
  • item added to the drop down project list.
  • Translation memory extended, to allow you to search for additional words, not in the original text.
  • Bug fix counting lines in ASP files, if lines end with LF only (and not CR-LF).
4.53.0008
28.March.2008
  • Fix to a bug which could cause an error on adding alternative runtime support.
  • Update to template file SelectLanguage.vb, required if Option Strict is selected.
4.53.0007
27.March.2008
  • Do not use Add_Code subdirectory for the MlString module for Web Application projects.
4.53.0006
26.March.2008
  • Copy correct MlString template file for Web Application projects.
4.53.0005
24.March.2008
  • New dialog to add the Language-Selection Dialog, in particular with support for VB.NET projects which use the application framework.
  • New option on Excel or Open Document export to include texts resulting from resource fallback.
  • New handling of empty strings on Excel or Open Document import. An emtpy string is now interpreted as no translation, rather than an empty translation. If there is no translation, then the resource fallback mechanism will be used.
  • Bug fix in the AODL library for cells with the table:number-columns-repeated attribute.
4.53.0004
17.March.2008
  • ASP scan includes ASP files with no code behind file.
    (Note that the code scan still only scans the code behind file and not code embedded in the ASP file.)
4.53.0003
15.March.2008
  • ASP scan handles attributes in single quotes.
  • Bug fix on hiding empty ASP literal tag.
  • Support for time limited license key added.
4.53.0002
12.March.2008
  • Alternative Runtime Support dialog now detects the Localizable property of Forms or UserControls by reading the .resx files and not via the designer windows. This is faster and more reliable.
  • Rescan selected components function fixed for ASP components. (Previously it always did a full scan.)
  • Languages detected in .resx files are now added to the project automatically.
  • Existing resource texts for ASP files are now always imported, unless there is already a text stored in the project database for the same property.
4.53.0001
10.March.2008
  • Automatically import existing resource strings after scanning ASP files.
    (Initial version)
  • Additional check added, for the case where the project database is referenced by the Visual Studio project file, but has actually been deleted.
4.53.0000
8.March.2008


  • Bug fix for Visual Studio 2008. Previously, it was not possible to create a new project if the Add-In was loaded.
  • Fix for error message on removing a project from the active solution when the Add-In is loaded, but no project has been selected.
  • MLString template files for Smart Device projects updated.
  • First version compiled using Visual Studio 2008.
    (This version can still be used with Visual Studio 2005.)
4.52.0005
6.March.2008
  • Minor changes for Smart Device projects.
    • Alternative Runtime Support is no longer selected automatically. This was a hang over from Visual Studio 2003.
    • Bug fix in the template file MlString.vb.
    • Broken version template file SelectLanguage.Designer.cs corrected.
4.52.0004
5.March.2008
  • Minor bug fix on exporting resource strings for a web project in the OnBuild event when using Visual Studio 2008. Under certain circumstances, Visual Studio 2008 would show a warning, that a file was about to be saved. If you selected cancel, then a COMException would be generated.
4.52.0003
1.March.2008
  • New feature to import existing localization, which searches for function calls which load resource strings, imports the resource strings into the project database and converts the function calls into calls to ml_string().
4.52.0002
23.February.2008
  • New templates for the MLRuntime project for Visual Studio 2008.
  • The Add-In configuration for Visual Studio 2008 is now stored in a separate registry key (HKEY_CURRENT_USER\Software\Jollans\MultiLang2008)
4.52.0000
4.52.0001
19.Februray.2008
21.Februray.2008
  • Export/Import as OpenOffice spreadsheet in the for OpenDocument .ods format. This feature uses the library AODL.
  • 4.52.0001 is just an update to the help and the localization of the new dialogs.
4.51.0016
8.February.2008
  • Bug fix detecting whether the MLRuntime project present in the solution, for the Runtime Language Switching feature.
4.51.0015
21.January.2008
  • Bug fix scanning non-ASP files in ASP projects.
4.51.0014
19.January.2008
  • Web Application projects are now recognized correctly.
  • Informative error message if the Add-In is unable to open the Global Translations Database.
  • Improved error checking in the case that the Global Translations Database is not available.
4.51.0012
22.December.2007
  • Bug fix, for an error which caused the Localizable property to be reset to False after exporting resources for a Form or UserControl.
4.51.0011
20.December.2007
  • Bug fix, for an error which caused resource strings for properties which are not translated to be excluded from even the original (non-localized) resource file.
4.51

4-Nov-2007
Modified behaviour for ASP.NET support
  • The Add-In no longer adds an ID attribute to ASP tags.
  • If an ASP tag has an ID attribute, then the Add-In will use the same name for the resourcekey. Otherwise it will generate a resourekey in the form ML_nnnn. In particular, this applies to tags such as ListItem or TreeNode, which do not allow an ID attribute.
  • The Add-In detects which ASP tags have a localizable Text attribute. Tags which do not have a localizable Text attribute cannot be selected in the grid.
4.50
September 2007
New support for ASP.NET 2.0
  • Resource strings are now referenced using the meta:resourcekey tag. No additional code must be generated to initialise the fields.
  • New integrated scan of static HTML text and ASP controls. The results are presented in a single HTML/ASP tab.
  • New HTML scan is faster and more reliable.
    • The ASP scan is performed by parsing the HTML source file and not (as previously) via the designer windows. This is significantly faster.
    • The ASP scan now handles template elements, for example in FormView or MultiView controls, which were previously not detected.
  • Static HTML text is converted to an asp:Literal tag, so that the text can be read from a resource string. This replaces the previous method with a Span tag.
4.00.0097
19.July.2007
  • New scan for resource names can be selected in the Export to ResX dialog. This provides improved support for controls from Infragistics.
4.00.0011
12.November.2006
New features for ASP.NET projects:
  • a completely new scan for texts in the HTML source, in addition to texts which are properties of ASP.NET controls
  • an improved scan for properties of ASP controls
  • a new Language Selection Web Control, which can be added to your project
  • support for switching languages on an ASP.NET web page
Additional new features:
  • translation memory to show existing translations of similar texts
  • multiple selection in the grids, so that multiple items can be hidden or selected for translation as a single operation
  • user interface in French
  • improved support for Smart Device projects in Visual Studio 2005

See also

Overview
Major Features
Quick Tour (Windows Forms)
Quick Tour (ASP.NET 2.0)
Quick Tour (Windows Store Apps)
Quick Tour (Unmanaged C++/MFC)
Download
Image