Giter Site home page Giter Site logo

uwekeim / zetaresourceeditor Goto Github PK

View Code? Open in Web Editor NEW
268.0 27.0 76.0 96.05 MB

Free multilingual, parallel .NET resource file editing

Home Page: https://www.zeta-resource-editor.com

License: MIT License

C# 99.75% HTML 0.16% ASP.NET 0.09%
resx-files c-sharp language visual-studio translation dotnet csharp

zetaresourceeditor's Introduction

Zeta Resource Editor

Edit your .NET resource files in parallel

Download latest binary setup package | Visit official website | Support forum

Alt text

Download latest binary setup package

(Please see the bottom of this article for the latest updates) (The project is also available at The Code Project, at CodePlex and at Google Code)

Introduction

This is a small utility application that enables you to edit string resources from multiple different resource files together inside one single data grid. It was originally developed to act as the translation tool for a CMS and a Test Management tool.

Background

When translating the resources of a .NET application into other languages, the biggest and most difficult task for me was to translate string resources:

The recommended way (at least what I know) is to create one single .RESX file for every language you want the strings to be translated to. I.e. one "Resources.resx" for neutral/English, one "Resources.de.resx" for German, one "Resources.fr.resx" for French, etc.

Since I had to duplicate the resource keys into each RESX file, I often did not manage to keep the resource keys synchronal among all RESX files.

This is where the idea for this tool came up: Take all RESX files, merge their resource keys and display the resource values side by side in one editable data grid.

How to use the tool (simple version)

1.) Create your resource files in Visual Studio .NET 2005 as you usually do

Add a resource file for each language you want to support and place them in the "Properties" folder of your project.

Keep the naming schema "Resources..resx", e.g. "Resources.fr-ch.resx" for Swiss with French language. The following screenshot is an example for English and German.

Alt text

English and German language resources

2.) Start Zeta Resource Editor and open the resource files

Next, simply start Zeta Resource Editor and open the files you want to edit in parallel.

Alt text

Opening two resource files and load them into Zeta Resource Editor

3.) Edit the resources and save them

Alt text

The main window of Zeta Resource Editor

You could either edit the cells in the grid directly by selecting and pressing F2 or, for a better overview, select a cell in the grid and then edit the details in the details view at the bottom of the window.

4.) Save and compile

Finally save the resources in Zeta Resource Editor and compile your solution inside Visual Studio .NET 2005/2008.

How to use the tool (enhanced version with projects)

Starting march 2008, I added the concept of "projects". Projects are XML files with the ".zreproj" file extension that store 1..n so called "file groups" of RESX files that you want to edit together.

The idea is that you usually have a Visual Studio .NET solution that has multiple projects with multiple RESX files. Instead of opening them one by one inside Zeta Resource Editor, you once create a project inside Zeta Resource Editor and all the resources files you want to edit.

Later you simple open the Zeta Resource Editor project and double click the individual files to edit them.

To use projects, simply select Create New Project from the Projects main menu.

Alt text

Dialog to create a new project

Once you have created a new project, it is being displayed in the main window on the left side. Right click the root node and select Add file group to project to add a new file group with multiple RESX files to the project:

Alt text

Right-clicking the project to add files

Then select the apropriate files and they will appear in the project list:

Alt text

Project list with one added file group with two individual files

Simply double click the file group to edit the files inside the grid in Zeta Resource Editor.

Epilog

Other Tools

I must admit that I am not an expert regarding translation/localization/globalization tools.

Doing lots of Internet searches, trying different tools, all of them seems to do their own kind of hand algorithms and behaviors.

But what I wanted was to do it my way, respectively the way that Visual Studio .NET 2005 does it.

So I do hope my approach isn't that naive but rather a small pragmatic tool to aid me (and hopefully others) managing the hassles of translating string resources.

If you do know other tools, preferably free ones, that do the same or even better than this one I presented you here, please post the hyperlinks below in the comments section!

Some tools and resources I found to be rather good are:

The current state of the Tool

Beside small test applications, we did not use the tool extensively.

We developed this tool for the upcoming releases of our applications Zeta Producer CMS version 11 (a windows-based Content Management System), Zeta Uploader (a tool for sending large files by e-mail) and our Test Management tool.

Although I think it is ready-to-use, the main reason why I already released it was to give other developers the chance to use it and to provide a lot of feedback to me for improving the application.

So please keep the feedback coming :-)!

Planed enhancements

  • Work on a more content-based way instead of a file-based way. E.g. allow for editing/exporting/importing all resources from all files of a project within one single grid/Excel document.
  • Add tagging to simplify the finding of resources across multiple resource files.
  • Support other resource files beside the .NET resx files.
  • Your suggestions here.

History

(Please note to also view the GitHub commit history for a full list of changes)

  • 2017-05-02 - Added merge funktionality to merge one or multiple file groups into another file group.
  • 2013-06-09 - Changed Excel reading/writing functions to use free Excel library.
  • 2013-06-07 - First release to Github. The project is also available at The Code Project, at CodePlex and at Google Code. Please note that a valid purchased license of DevExpress is required to build the tool.
  • 2012-02-22 - Updated the binary setup and the source download. Small fix to allow translation even when no project is loaded.
  • 2011-10-10 - Updated the binary setup and the source download. Fixed an issue when automatically adding resource files from a Visual Studio .NET Solution.
  • 2011-08-02 - There is now a support forum for Zeta Resource Editor.
  • 2011-06-15 - Updated the binary setup and the source download. Fixed an issue when adding new resources and letting them automatically translate. Optimized away some more pixels in the main window to have more height.
  • 2011-05-14 - Updated the binary setup and the source download. The Excel export wizard now allows to directly send exported files to one or multiple e-mail receivers. This is done through our free Zeta Uploader service.
  • 2011-03-24 - Updated the binary setup and the source download. Added missing VC 10.0 CRT DLLs to setup package. This fixes errors on some machines where the Excel export failed with SQLite-related error message.
  • 2011-03-14 - Updated the binary setup and the source download. Fixed an issue with translation through Bing Translator with unsupported languages.
  • 2011-03-06 - Updated the binary setup and the source download. Added a right-click grid context menu item to delete the contents of a row for selected language.
  • 2011-01-30 - Modified the binary setup and the source code. Added:
    • Added a replace function to find and replace texts in a grid.
    • Added project folders properties to exclude project folders and file groups from being exported/imported.
    • Improved speed of translating a large number of texts.
    • Added a "Don't translate" word list to protect words from being translated.
    • The dialog window to create new resource files now has the ability to add files for multiple languages in one operation.
    • Various bugs were fixed. Homepage erstellen
  • 2011-01-06 - Modified the binary setup and the source code. Added Danish as an additional language of the GUI.
  • 2010-02-24 - Modified the binary setup and the source code. Added support for configuring an HTTP proxy server for all outgoing HTTP requests like e.g. the translation service.
  • 2010-02-21 - Modified the binary setup and the source code. It is now possible to edit not just one file group inside the grid but also multiple file groups at once. Simply double-click on the project or a project folder in the tree. (This feature is currently in Beta stage; your feedback is very welcome!) Alt text.
  • 2010-02-14 - Modified the binary setup and the source code. Added the suggestions of this comment.
  • 2010-01-15 - Modified the binary setup and the source code. Added ability to display the comments of the first resource file in the editor grid (read and write). Activate this option in the project settings Fixed issues with automatic translations. All changes were done by user "TheMegaLoser".
  • 2010-01-14 - Updated the source download to match the latest binary setup.
  • 2010-01-04 - Modified the binary setup, enhanced the Excel export and import to make it more usable for external translators/translations. See my weblog article for details and a screenshot.
  • 2009-10-31 - Minor modifications to the binary setup. As of request, I updated the source code download. Please note that you need to have an installed license of the DevExpress WinForms components in order to successfully compile the sources.
  • 2009-08-25 - Updated the binary setup again. Rewrote the language detection routine that detects a language from a file name. Now configurable through the project settings. Added function "Create new files" to create missing resource files for a complete project (or a project folder) with just a few clicks.
  • 2009-08-08 - Updated the binary setup again. Added the long-requested (including by myself!) ability to create new files from within Zeta Resource Editor: Alt text This is done by copying from an existing file and replacing all the existing texts. Also included serveral minor bug fixes. Added the ability to show/hide the complete project tree panel (the left part of the main window) for better screen usage on smaller monitors.
  • 2009-07-12 - Updated the binary setup again. Introduced what I call "Project Folders" - virtual folders that enables you to organize larger numbers of file groups into separate units to keep the project manageable. Also added move (up/down) and drag and drop to the tree.
  • 2009-07-04 - Updated the binary setup again. Also updated the source download. Changes: Fixed reported bugs. Added first version of Microsoft Office Excel export and import (Your feedback is very welcome).
  • 2009-06-27 - Updated the binary setup and fixed several bugs reported directly to me and below here in the forum. Added keyboard shortcuts to work again. Unfortunately the previous version broke the update mechanism, so you will get an error when clicking the "Update available" button. Sorry for that, I fixed it now.
  • 2009-06-18 - Updated the binary setup. Changes:
    • This version is primarily a complete rewrite of the GUI. I hope you like it! I throw out all standard Windows Forms components and used the GUI components of DevExpress. The main reason for the rewrite was to have a strong foundation for doing more complex UI stuff (like grid filtering, exporting) in the future.
    • Changed the main window to use ribbons.
    • Added modern Windows Vista compatible icons.
    • Added a news area to the main windows. You can turn this of in the application's options dialog window.
    • Added some initial spell checking functionality (configurable in the project settings) with support of OpenOffice dictionaries.
    • Complete empty lines can now be hidden from the grid.
    • Added an option to configure the behaviour reported by "nkstr"
  • 2009-04-26 - Updated the binary setup. Changes: Integrated Google Translation API calls to automatically translate from one language to another language (See the "Edit" main menu). Also included is a general-purpose translation window. Did some rather simple, but hopefully useful introduction screencasts
  • 2009-03-31 - Alt text. Updated the binary setup again. Changes: The state of a translated file group is now shown both in the tree view as well as in the upper left corner of the editing grid.
  • 2009-02-08 - Updated the binary setup again. Changes: Adjusted the display of file groups in the left tree. Enhanced and corrected the coloring in the grid. New color gray to show completely empty rows among all languages.
  • 2009-02-08 - Updated the binary setup. Again some minor fixes in how the settings are stored. Added a German translation for the whole GUI, which is automatically chosen if you are on a German OS. Added project option for not storing empty resource strings (useful for fall back to the default language)
  • 2008-12-29 - Updated the binary setup. Some minor fixes, adjustments of the generated group names and a neat little function to import a complete folder tree with all its resource files with one single operation.

zetaresourceeditor's People

Contributors

japerr avatar pmahony893 avatar uwekeim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zetaresourceeditor's Issues

Doesn't follow tab convention already used in the resx file

When I edit the resx in visual studio (for whatever reason) the tab convention is a double space " " whereas when I edit using Zeta Resource Editor it uses a tab "\t". Although it is a minor issue it is unhelpful when committing changes to git and specifically looking at the change history.

image

A simple option to set what the tab convention in Zeta Resource Editor would suffice.

Crash with Shift+F3

It seems that just pressing Shift+F3 crashes ZRE. I was searching with F3 but decided to go back and automatically I pressed Shift+F3. The result is this message

The type serialized in the .resources file was not the same type that the .resources file said it contained. Expected 'DevExpress.Utils.Svg.SvgImage' but read 'DevExpress.Utils.Svg.SvgImage'. The exception details talks about a System.BadImageFormatException

Dismissing the exception dialog leads to a red crossed grid leaving the program unusable until restart

DevExpress Libraries

I assume that these (DevExpress libs) are not free. Can anyone confirm this please?

Configure language columns

I have changed the project settings, in the tab "File name pattern" for non-neutral language with
"[basename][optionaldefaulttypes]_[languagecode].[extension]". When I create a new file it work fine. But... When I open the group settings with two languages for example "aaa.resx" and "aaa_it.resx" .. I view only the first! Non recognized the second cultureInfo.

Can't import modified export file

Hi,

I've exported the file and made it available on office 365 so we could all collaborate in the translation.

Being aware of the format requirements I made sure I kept a copy of the original export.

I've updated that file's values with the ones we collaborated with, I made sure only the values were pasted and only as values.

Won't import... :(

I'm saving the edited file with Excel 2013, could it have anything to do with it?

Thanks for any help.

Cheers,
P.

Can not import excel file after update "Object reference not set to an instance of an object"

After update there is an error when I want to import earlier exported and modified excel file, error message:

System.NullReferenceException


Object reference not set to an instance of an object.


at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.CoreExcel2.CoreExcelImporter.createDataTable(Worksheet ws) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\CoreExcel2\CoreExcelImporter.cs:line 41
at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.CoreExcel2.CoreExcelImporter.ImportExcelFromFile(String filePath) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\CoreExcel2\CoreExcelImporter.cs:line 17
at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Import.ExcelImportController.DetectFileGroupsFromExcelFile(Project project, String filePath) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Import\ExcelImportController.cs:line 53
at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.parseFileGroups() in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 368
at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.sourceFileTextEdit_EditValueChanged(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 464
at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChangedCore(EventArgs e)
at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChanged(EventArgs e)
at DevExpress.XtraEditors.BaseEdit.RaiseEditValueChanged()
at DevExpress.XtraEditors.BaseEdit.OnEditValueChanged()
at DevExpress.XtraEditors.TextEdit.OnEditValueChanged()
at DevExpress.XtraEditors.MemoEdit.OnEditValueChanged()
at ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.OnEditValueChanged() in c:\P\ZetaResourceEditor\Source-Skinning\ExtendedControlsLibrary\General\ExtendedManagedCueMemoEdit.cs:line 71
at DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)
at DevExpress.XtraEditors.TextEdit.OnEditValueChanging(ChangingEventArgs e)
at DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)
at ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.set_Text(String value) in c:\P\ZetaResourceEditor\Source-Skinning\ExtendedControlsLibrary\General\ExtendedManagedCueMemoEdit.cs:line 42
at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.restoreState(IPersistentPairStorage storage) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 195
at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.FillItemToControls() in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 168
at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.ImportWizard_Load(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 139
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at DevExpress.XtraEditors.XtraForm.OnLoad(EventArgs e)
at ExtendedControlsLibrary.Skinning.CustomForm.MyXtraForm.OnLoad(EventArgs e) in c:\P\ZetaResourceEditor\Source-Skinning\ExtendedControlsLibrary\Skinning\CustomForm\MyXtraForm.cs:line 105
at ExtendedControlsLibrary.General.Base.DevExpressXtraFormBase.OnLoad(EventArgs e) in c:\P\ZetaResourceEditor\Source-Skinning\ExtendedControlsLibrary\General\Base\DevExpressXtraFormBase.cs:line 138
at ZetaResourceEditor.UI.Helper.Base.FormBase.OnLoad(EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\Helper\Base\FormBase.cs:line 55
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at DevExpress.XtraEditors.XtraForm.WndProc(Message& msg)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

NullReferenceException
{
Message="Object reference not set to an instance of an object.",
Data=
[
]
,
InnerException=null,
TargetSite=RuntimeMethodInfo: createDataTable,
StackTrace=" at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.CoreExcel2.CoreExcelImporter.createDataTable(Worksheet ws) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\CoreExcel2\CoreExcelImporter.cs:line 41\r\n at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.CoreExcel2.CoreExcelImporter.ImportExcelFromFile(String filePath) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\CoreExcel2\CoreExcelImporter.cs:line 17\r\n at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Import.ExcelImportController.DetectFileGroupsFromExcelFile(Project project, String filePath) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Import\ExcelImportController.cs:line 53\r\n at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.parseFileGroups() in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 368\r\n at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.sourceFileTextEdit_EditValueChanged(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 464\r\n at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChangedCore(EventArgs e)\r\n at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChanged(EventArgs e)\r\n at DevExpress.XtraEditors.BaseEdit.RaiseEditValueChanged()\r\n at DevExpress.XtraEditors.BaseEdit.OnEditValueChanged()\r\n at DevExpress.XtraEditors.TextEdit.OnEditValueChanged()\r\n at DevExpress.XtraEditors.MemoEdit.OnEditValueChanged()\r\n at ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.OnEditValueChanged() in c:\P\ZetaResourceEditor\Source-Skinning\ExtendedControlsLibrary\General\ExtendedManagedCueMemoEdit.cs:line 71\r\n at DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)\r\n at DevExpress.XtraEditors.TextEdit.OnEditValueChanging(ChangingEventArgs e)\r\n at DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)\r\n at ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.set_Text(String value) in c:\P\ZetaResourceEditor\Source-Skinning\ExtendedControlsLibrary\General\ExtendedManagedCueMemoEdit.cs:line 42\r\n at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.restoreState(IPersistentPairStorage storage) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 195\r\n at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.FillItemToControls() in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 168\r\n at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.ImportWizard_Load(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 139\r\n at System.EventHandler.Invoke(Object sender, EventArgs e)\r\n at System.Windows.Forms.Form.OnLoad(EventArgs e)\r\n at DevExpress.XtraEditors.XtraForm.OnLoad(EventArgs e)\r\n at ExtendedControlsLibrary.Skinning.CustomForm.MyXtraForm.OnLoad(EventArgs e) in c:\P\ZetaResourceEditor\Source-Skinning\ExtendedControlsLibrary\Skinning\CustomForm\MyXtraForm.cs:line 105\r\n at ExtendedControlsLibrary.General.Base.DevExpressXtraFormBase.OnLoad(EventArgs e) in c:\P\ZetaResourceEditor\Source-Skinning\ExtendedControlsLibrary\General\Base\DevExpressXtraFormBase.cs:line 138\r\n at ZetaResourceEditor.UI.Helper.Base.FormBase.OnLoad(EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\Helper\Base\FormBase.cs:line 55\r\n at System.Windows.Forms.Form.OnCreateControl()\r\n at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)\r\n at System.Windows.Forms.Control.CreateControl()\r\n at System.Windows.Forms.Control.WmShowWindow(Message& m)\r\n at System.Windows.Forms.Control.WndProc(Message& m)\r\n at System.Windows.Forms.ScrollableControl.WndProc(Message& m)\r\n at System.Windows.Forms.Form.WmShowWindow(Message& m)\r\n at System.Windows.Forms.Form.WndProc(Message& m)\r\n at DevExpress.XtraEditors.XtraForm.WndProc(Message& msg)\r\n at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)\r\n at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\r\n at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)",
HelpLink=null,
Source="ZetaResourceEditor.RuntimeBusinessLogic",
HResult=-2147467261
}

Value was either too large or too small for an Int32.Couldn't store <2410192747> in Group Column. Expected type is Int32.

System.ArgumentException


Value was either too large or too small for an Int32.Couldn't store <2410192747> in Group Column. Expected type is Int32.


at System.Data.DataColumn.set_Item(Int32 record, Object value)
at System.Data.DataRow.set_Item(DataColumn column, Object value)
at System.Data.DataRow.set_Item(Int32 columnIndex, Object value)
at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.doProcess(PreparedInformation preparedInformation, BackgroundWorker bw, Int32 fileGroupsLength, ICollection`1 savedFiles) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Export\ExcelExportController.cs:line 579
at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.Process(BackgroundWorker bw) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Export\ExcelExportController.cs:line 307
at ZetaResourceEditor.UI.ExportImportExcel.ExcelExportWizardForm.progressBackgroundWorker_DoWork(Object sender, DoWorkEventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelExportWizardForm.cs:line 758
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

ArgumentException
{
Message="Value was either too large or too small for an Int32.Couldn't store <2410192747> in Group Column. Expected type is Int32.",
ParamName=null,
Data=
[
]
,
InnerException=OverflowException
{
Message="Value was either too large or too small for an Int32.",
Data=
[
]
,
InnerException=null,
TargetSite=RuntimeMethodInfo: ToInt32,
StackTrace=" at System.Convert.ToInt32(Int64 value)\r\n at System.Int64.System.IConvertible.ToInt32(IFormatProvider provider)\r\n at System.Data.Common.Int32Storage.Set(Int32 record, Object value)\r\n at System.Data.DataColumn.set_Item(Int32 record, Object value)",
HelpLink=null,
Source="mscorlib"
},
TargetSite=RuntimeMethodInfo: set_Item,
StackTrace=" at System.Data.DataColumn.set_Item(Int32 record, Object value)\r\n at System.Data.DataRow.set_Item(DataColumn column, Object value)\r\n at System.Data.DataRow.set_Item(Int32 columnIndex, Object value)\r\n at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.doProcess(PreparedInformation preparedInformation, BackgroundWorker bw, Int32 fileGroupsLength, ICollection`1 savedFiles) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Export\ExcelExportController.cs:line 579\r\n at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.Process(BackgroundWorker bw) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Export\ExcelExportController.cs:line 307\r\n at ZetaResourceEditor.UI.ExportImportExcel.ExcelExportWizardForm.progressBackgroundWorker_DoWork(Object sender, DoWorkEventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelExportWizardForm.cs:line 758\r\n at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)\r\n at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)",
HelpLink=null,
Source="System.Data"
}
-->Value was either too large or too small for an Int32.System.OverflowException


Value was either too large or too small for an Int32.


at System.Convert.ToInt32(Int64 value)
at System.Int64.System.IConvertible.ToInt32(IFormatProvider provider)
at System.Data.Common.Int32Storage.Set(Int32 record, Object value)
at System.Data.DataColumn.set_Item(Int32 record, Object value)

OverflowException
{
Message="Value was either too large or too small for an Int32.",
Data=
[
]
,
InnerException=null,
TargetSite=RuntimeMethodInfo: ToInt32,
StackTrace=" at System.Convert.ToInt32(Int64 value)\r\n at System.Int64.System.IConvertible.ToInt32(IFormatProvider provider)\r\n at System.Data.Common.Int32Storage.Set(Int32 record, Object value)\r\n at System.Data.DataColumn.set_Item(Int32 record, Object value)",
HelpLink=null,
Source="mscorlib"
}

New Microsoft Translate (Azure) bindings not yet working?

Trying out your awsome tool and got to the Azure Translate API feature in the hot off the press version 2.3.0.11 7/27/2017. I can get Quick Translate to work so the Azure API is connected, but every time I try and use "Translate missing languages" it results in the fields being populated with the error message "**** AsyncBridge.Run method threw an exception." instead of the translated text.

Maybe this feature isn't quite done?

Add column showing comment

It would be cool if beside the language columns, there was a column showing the comment stored in the resource file.

[featurerequest] Importing multiple xls files

Hi,
Via a lot of tools it is possible to edit .po files with this program (xls2csv2po and the other direction)

Each language must have their own xls file. This works for export, but not for import...
PS: Export in multiple files is very slow... 110 small strings and 11 languages, some emty needs 3 minutes, the same into one file i guess 30 seconds..

Looking forward to your reply

Relative paths in zreproj file

Current version of ZRE saves absolute paths to the project file. It is not very convenient when I want send project to anothers.

Good use case in my opinion is next:

  1. User creates project file in some base folder.
    2, All filegroups recursively included to the project with paths relative to base folder.
  2. Work under translations.
  3. Put project file under source control.

Thanks for great tool!

Translation

I tried to traslate a text ... but the application throw an exeption.

Can you help me?

System.Net.WebException

-----------------

The remote server returned an error: (403) Forbidden.

-----------------

at System.Net.HttpWebRequest.GetResponse()
   at ZetaResourceEditor.RuntimeBusinessLogic.Translation.Google.GoogleRestfulTranslationEngine.makeRestCallPost(String appID, String url, ICollection`1 parameters) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\Translation\Google\GoogleRestfulTranslationEngine.cs:line 100
   at ZetaResourceEditor.RuntimeBusinessLogic.Translation.Google.GoogleRestfulTranslationEngine.Translate(String appID, String appID2, String text, String sourceLanguageCode, String destinationLanguageCode, String[] wordsToProtect, String[] wordsToRemove) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\Translation\Google\GoogleRestfulTranslationEngine.cs:line 258
   at ZetaResourceEditor.UI.Translation.QuickTranslationForm.buttonTranslate_Click(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\Translation\QuickTranslationForm.cs:line 301

WebException
{
	Status=ProtocolError,
	Response=HttpWebResponse
	{
		IsMutuallyAuthenticated=False,
		Cookies=CookieCollection
		{
			IsReadOnly=True,
			Count=0,
			IsSynchronized=False,

		},
		Headers=WebHeaderCollection
		{
			Count=11,
			Keys=KeysCollection
			{
				Count=11
			},
			AllKeys=String[]
			{
				Length=11,
				LongLength=11,
				Rank=1,
,
				IsReadOnly=False,
				IsFixedSize=True,
				IsSynchronized=False

				"Vary",
				"X-XSS-Protection",
				"X-Frame-Options",
				"X-Content-Type-Options",
				"Alt-Svc",
				"Transfer-Encoding",
				"Accept-Ranges",
				"Cache-Control",
				"Content-Type",
				"Date",
				"Server"
			},
		},
		SupportsHeaders=True,
		ContentLength=-1,
		ContentEncoding="",
		ContentType="application/json; charset=UTF-8",
		CharacterSet="UTF-8",
		Server="ESF",
		LastModified=04.12.17 08:32:02,
		StatusCode=Forbidden,
		StatusDescription="Forbidden",
		ProtocolVersion=Version
		{
			Major=1,
			Minor=1,
			Build=-1,
			Revision=-1,
			MajorRevision=-1,
			MinorRevision=-1
		},
		ResponseUri=Uri
		{
			AbsolutePath="/language/translate/v2",
			AbsoluteUri="https://www.googleapis.com/language/translate/v2?",
			LocalPath="/language/translate/v2",
			Authority="www.googleapis.com",
			HostNameType=Dns,
			IsDefaultPort=True,
			IsFile=False,
			IsLoopback=False,
			PathAndQuery="/language/translate/v2?",
			Segments=String[]
			{
				Length=4,
				LongLength=4,
				Rank=1,
,
				IsReadOnly=False,
				IsFixedSize=True,
				IsSynchronized=False

				"/",
				"language/",
				"translate/",
				"v2"
			},
			IsUnc=False,
			Host="www.googleapis.com",
			Port=443,
			Query="?",
			Fragment="",
			Scheme="https",
			OriginalString="https://www.googleapis.com/language/translate/v2?",
			DnsSafeHost="www.googleapis.com",
			IdnHost="www.googleapis.com",
			IsAbsoluteUri=True,
			UserEscaped=False,
			UserInfo=""
		},
		Method="POST",
		IsFromCache=False
	},
	Message="The remote server returned an error: (403) Forbidden.",
	Data=
	[
	]
,
	InnerException=null,
	TargetSite=RuntimeMethodInfo: GetResponse,
	StackTrace="   at System.Net.HttpWebRequest.GetResponse()\\r\\n   at ZetaResourceEditor.RuntimeBusinessLogic.Translation.Google.GoogleRestfulTranslationEngine.makeRestCallPost(String appID, String url, ICollection`1 parameters) in c:\\P\\ZetaResourceEditor\\Source\\RuntimeBusinessLogic\\Translation\\Google\\GoogleRestfulTranslationEngine.cs:line 100\\r\\n   at ZetaResourceEditor.RuntimeBusinessLogic.Translation.Google.GoogleRestfulTranslationEngine.Translate(String appID, String appID2, String text, String sourceLanguageCode, String destinationLanguageCode, String[] wordsToProtect, String[] wordsToRemove) in c:\\P\\ZetaResourceEditor\\Source\\RuntimeBusinessLogic\\Translation\\Google\\GoogleRestfulTranslationEngine.cs:line 258\\r\\n   at ZetaResourceEditor.UI.Translation.QuickTranslationForm.buttonTranslate_Click(Object sender, EventArgs e) in c:\\P\\ZetaResourceEditor\\Source\\Main\\UI\\Translation\\QuickTranslationForm.cs:line 301",
	HelpLink=null,
	Source="System",
	HResult=-2146233079
}

Application Update Failure

Anytime an update is available through the application (Has done this the past 4-5 updates in a row). After clicking the "Broken Heart", the app closes and I let it run its course, however, I am unable to re-run the program even after multiple desktop restarts. A full uninstall/reinstall is required in order for me to access the program again. Is this something others are experiencing? Am I doing something locally to cause this?

Code License?

There haven't been many updates to this tool recently, and its dependence on the proprietary and paid DevExpress toolkit is an impediment to community development.

How is this code licensed? How much of it can I reuse in a new (open source) project?

Bug in grid

When clicking the filter icon over any language column in the grid and going into the "Text Filters" tab and trying to perform a search for all resources who contain a specific text the whole app comes to a halt when typing something to search for

Neutral Language Column Wrong After Update

Hello,
Thanks for providing a very useful tool!

I have a problem after upgrading to version 2.3.28.0. After the update the first column which should show English text is showing Chinese text. See attached image.

Neutral Langage Column Problem

Any ideas?

Thanks
John.

Version 2.3.0.32 - Could not load file or assembly System.Data.SQLite, Version=1.0.66.0

Hi,

After updating the app to version 2.3.0.32 I cannot export resources to an Excel file anymore. I always have the error message:

System.BadImageFormatException

-----------------

Could not load file or assembly '![ZetaResourceEditor_SystemDataSQLite](https://user-images.githubusercontent.com/7294773/140056310-11dc6e95-dbc6-4d13-b4c4-80f27ffc13c7.png), Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. An attempt was made to load a program with an incorrect format.

-----------------

at ZetaResourceEditor.RuntimeBusinessLogic.Snapshots.SnapshotControllerBase.checkTablesCreated()
   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.doProcess(PreparedInformation preparedInformation, BackgroundWorker bw, Int32 fileGroupsLength, ICollection`1 savedFiles) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Export\ExcelExportController.cs:line 321
   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.Process(BackgroundWorker bw) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Export\ExcelExportController.cs:line 300
   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

BadImageFormatException
{
	Message="Could not load file or assembly \\'System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139\\' or one of its dependencies. An attempt was made to load a program with an incorrect format.",
	FileName="System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139",
	FusionLog="WRN: Assembly binding logging is turned OFF.\\r\\nTo enable assembly bind failure logging, set the registry value [HKLM\\Software\\Microsoft\\Fusion!EnableLog] (DWORD) to 1.\\r\\nNote: There is some performance penalty associated with assembly bind failure logging.\\r\\nTo turn this feature off, remove the registry value [HKLM\\Software\\Microsoft\\Fusion!EnableLog].\\r\\n",
	Data=
	[
	]
,
	InnerException=null,
	TargetSite=RuntimeMethodInfo: checkTablesCreated,
	StackTrace="   at ZetaResourceEditor.RuntimeBusinessLogic.Snapshots.SnapshotControllerBase.checkTablesCreated()\\r\\n   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.doProcess(PreparedInformation preparedInformation, BackgroundWorker bw, Int32 fileGroupsLength, ICollection`1 savedFiles) in c:\\P\\ZetaResourceEditor\\Source\\RuntimeBusinessLogic\\ExportImportExcel\\Export\\ExcelExportController.cs:line 321\\r\\n   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.Process(BackgroundWorker bw) in c:\\P\\ZetaResourceEditor\\Source\\RuntimeBusinessLogic\\ExportImportExcel\\Export\\ExcelExportController.cs:line 300\\r\\n   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)\\r\\n   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)",
	HelpLink=null,
	Source="ZetaResourceEditor.RuntimeBusinessLogic",
	HResult=-2147024885
}

But I found the file System.Data.SQLite.dll in the "C:\Program Files (x86)\Zeta Resource Editor" folder and its version is 1.0.66.0.

ZetaResourceEditor_SystemDataSQLite

Translation Memory

Another helpful step would be adding a translation memory as is common with CAT tools. Including a TMX interface for export / import.

UTF-8 Encoding

Hi,

first of all, thanks for the great tool!

I'm working in my project with SVN, so I recognized after changing a neutral language file, that the german file had changes too, but only in the encoding.

I'm using VS 2013 and the default encoding seems to be UTF-8 BOM.

In the code I found that the StreamWriter is intialized with Utf8Encoding(false)(RuntimeBusinessLogic/BL/DataProcessing.cs, Line 128).
Is there is reason why it is Utf8Encoding(false) and not Utf8Encoding(true), or you never thought about it?

I tried to build the Source, but the solution can't be build with VS 2013

Thanks,
Freddy

Ability to move rows

How to change the placement of the tags or add new tags in the middle of the .resx file?
How to move tags around?
Just an ability to move one row up or down manually.
And an ability to add a row in the middle of the table.

Excel Import Problem

I exported to excel format, set one value, then when I try to import I get an error. I'm using LibreOffice to edit the file, could that be the problem?

This is the file I'm importing:
newTestLocal.xlsx

Here are the details from the error:

System.InvalidOperationException


There is an error in XML document (2, 1397).


at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream)
at Net.SourceForge.Koogra.Excel2007.OX.OXNS.Load[X](ZipFile f, String path)
at Net.SourceForge.Koogra.Excel2007.Workbook.ProcessGetWorksheet(OXWorkbookWorksheetEntry e)
at Net.SourceForge.Koogra.Excel2007.Workbook.d__0.MoveNext()
at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.CoreExcel2.CoreExcelImporter.ImportExcelFromFile(String filePath) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\CoreExcel2\CoreExcelImporter.cs:line 17
at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Import.ExcelImportController.DetectFileGroupsFromExcelFile(Project project, String filePath) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Import\ExcelImportController.cs:line 53
at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.parseFileGroups() in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 360
at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.buttonBrowse_Click(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 351
at System.Windows.Forms.Control.OnClick(EventArgs e)
at DevExpress.XtraEditors.BaseButton.OnClick(EventArgs e)
at DevExpress.XtraEditors.BaseButton.OnMouseUp(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at DevExpress.Utils.Controls.ControlBase.WndProc(Message& m)
at DevExpress.XtraEditors.BaseControl.WndProc(Message& msg)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

InvalidOperationException
{
Message="There is an error in XML document (2, 1397).",
Data=
[
]
,
InnerException=FormatException
{
Message="Input string was not in a correct format.",
Data=
[
]
,
InnerException=null,
TargetSite=RuntimeMethodInfo: StringToNumber,
StackTrace=" at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)\r\n at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)\r\n at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOXWorksheet.Read5_OXRow(Boolean isNullable, Boolean checkType)\r\n at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOXWorksheet.Read6_OXWorksheet(Boolean isNullable, Boolean checkType)\r\n at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOXWorksheet.Read7_worksheet()",
HelpLink=null,
Source="mscorlib",
HResult=-2146233033
},
TargetSite=RuntimeMethodInfo: Deserialize,
StackTrace=" at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)\r\n at System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream)\r\n at Net.SourceForge.Koogra.Excel2007.OX.OXNS.Load[X](ZipFile f, String path)\r\n at Net.SourceForge.Koogra.Excel2007.Workbook.ProcessGetWorksheet(OXWorkbookWorksheetEntry e)\r\n at Net.SourceForge.Koogra.Excel2007.Workbook.d__0.MoveNext()\r\n at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.CoreExcel2.CoreExcelImporter.ImportExcelFromFile(String filePath) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\CoreExcel2\CoreExcelImporter.cs:line 17\r\n at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Import.ExcelImportController.DetectFileGroupsFromExcelFile(Project project, String filePath) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Import\ExcelImportController.cs:line 53\r\n at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.parseFileGroups() in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 360\r\n at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.buttonBrowse_Click(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 351\r\n at System.Windows.Forms.Control.OnClick(EventArgs e)\r\n at DevExpress.XtraEditors.BaseButton.OnClick(EventArgs e)\r\n at DevExpress.XtraEditors.BaseButton.OnMouseUp(MouseEventArgs e)\r\n at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)\r\n at System.Windows.Forms.Control.WndProc(Message& m)\r\n at DevExpress.Utils.Controls.ControlBase.WndProc(Message& m)\r\n at DevExpress.XtraEditors.BaseControl.WndProc(Message& msg)\r\n at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)\r\n at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\r\n at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)",
HelpLink=null,
Source="System.Xml",
HResult=-2146233079
}
-->Input string was not in a correct format.System.FormatException


Input string was not in a correct format.


at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOXWorksheet.Read5_OXRow(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOXWorksheet.Read6_OXWorksheet(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOXWorksheet.Read7_worksheet()

FormatException
{
Message="Input string was not in a correct format.",
Data=
[
]
,
InnerException=null,
TargetSite=RuntimeMethodInfo: StringToNumber,
StackTrace=" at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)\r\n at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)\r\n at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOXWorksheet.Read5_OXRow(Boolean isNullable, Boolean checkType)\r\n at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOXWorksheet.Read6_OXWorksheet(Boolean isNullable, Boolean checkType)\r\n at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderOXWorksheet.Read7_worksheet()",
HelpLink=null,
Source="mscorlib",
HResult=-2146233033
}

Thanks for taking a look.

Portable Version doesn't work after download with Chrome

Normally I use the Opera Browser, but my colleague uses Chrome.

After downloading and unzipping the portable version with Google Chrome (Version 92), the editor doesn't work.
After downloading and unzipping the portable version with Opera, the editor works.

Can you reproduce the problem? Is there a fix?

Zeta crashing after setting filter

ZetaLongPaths.ZlpSimpleFileAccessProtectorException


Error during operation, tried more than 3 times.


at ZetaLongPaths.ZlpSimpleFileAccessProtector.Protect(Action action, ZlpSimpleFileAccessProtectorInformation info) in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Externals\ZetaLongPaths\Source\RuntimeNetCore\ZlpSimpleFileAccessProtector.cs:line 65
at Zeta.VoyagerLibrary.Tools.Storage.PersistentXmlFilePairStorage.loadXmlDocumentFromFile(String filePath) in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Source\Tools\Storage\PersistentXmlFilePairStorage.cs:line 389
at Zeta.VoyagerLibrary.Tools.Storage.PersistentXmlFilePairStorage.load() in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Source\Tools\Storage\PersistentXmlFilePairStorage.cs:line 362
at Zeta.VoyagerLibrary.Tools.Storage.PersistentXmlFilePairStorage.set_FilePath(String value) in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Source\Tools\Storage\PersistentXmlFilePairStorage.cs:line 56
at ZetaResourceEditor.Code.Host.Main() in c:\P\ZetaResourceEditor\Source\Main\Code\Host.cs:line 62

ZlpSimpleFileAccessProtectorException
{
Message="Error during operation, tried more than 3 times.",
Data=
[
]
,
InnerException=XmlException
{
LineNumber=14,
LinePosition=3838,
SourceUri="",
Message="There is an unclosed literal string. Line 14, position 3838.",
Data=
[
]
,
InnerException=null,
TargetSite=RuntimeMethodInfo: Throw,
StackTrace=" at System.Xml.XmlTextReaderImpl.Throw(Exception e)\r\n at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)\r\n at System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos, Char quoteChar, NodeData attr)\r\n at System.Xml.XmlTextReaderImpl.ParseAttributes()\r\n at System.Xml.XmlTextReaderImpl.ParseElement()\r\n at System.Xml.XmlTextReaderImpl.ParseElementContent()\r\n at System.Xml.XmlTextReaderImpl.Read()\r\n at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)\r\n at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)\r\n at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)\r\n at System.Xml.XmlDocument.Load(XmlReader reader)\r\n at System.Xml.XmlDocument.LoadXml(String xml)\r\n at Zeta.VoyagerLibrary.Tools.Storage.PersistentXmlFilePairStorage.<>c__DisplayClass33_0.b__0() in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Source\Tools\Storage\PersistentXmlFilePairStorage.cs:line 399\r\n at ZetaLongPaths.ZlpSimpleFileAccessProtector.Protect(Action action, ZlpSimpleFileAccessProtectorInformation info) in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Externals\ZetaLongPaths\Source\RuntimeNetCore\ZlpSimpleFileAccessProtector.cs:line 56",
HelpLink=null,
Source="System.Xml",
HResult=-2146232000
},
TargetSite=RuntimeMethodInfo: Protect,
StackTrace=" at ZetaLongPaths.ZlpSimpleFileAccessProtector.Protect(Action action, ZlpSimpleFileAccessProtectorInformation info) in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Externals\ZetaLongPaths\Source\RuntimeNetCore\ZlpSimpleFileAccessProtector.cs:line 65\r\n at Zeta.VoyagerLibrary.Tools.Storage.PersistentXmlFilePairStorage.loadXmlDocumentFromFile(String filePath) in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Source\Tools\Storage\PersistentXmlFilePairStorage.cs:line 389\r\n at Zeta.VoyagerLibrary.Tools.Storage.PersistentXmlFilePairStorage.load() in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Source\Tools\Storage\PersistentXmlFilePairStorage.cs:line 362\r\n at Zeta.VoyagerLibrary.Tools.Storage.PersistentXmlFilePairStorage.set_FilePath(String value) in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Source\Tools\Storage\PersistentXmlFilePairStorage.cs:line 56\r\n at ZetaResourceEditor.Code.Host.Main() in c:\P\ZetaResourceEditor\Source\Main\Code\Host.cs:line 62",
HelpLink=null,
Source="ZetaLongPaths",
HResult=-2146233088
}
-->There is an unclosed literal string. Line 14, position 3838.

System.Xml.XmlException


There is an unclosed literal string. Line 14, position 3838.


at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
at System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos, Char quoteChar, NodeData attr)
at System.Xml.XmlTextReaderImpl.ParseAttributes()
at System.Xml.XmlTextReaderImpl.ParseElement()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
at System.Xml.XmlDocument.Load(XmlReader reader)
at System.Xml.XmlDocument.LoadXml(String xml)
at Zeta.VoyagerLibrary.Tools.Storage.PersistentXmlFilePairStorage.<>c__DisplayClass33_0.b__0() in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Source\Tools\Storage\PersistentXmlFilePairStorage.cs:line 399
at ZetaLongPaths.ZlpSimpleFileAccessProtector.Protect(Action action, ZlpSimpleFileAccessProtectorInformation info) in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Externals\ZetaLongPaths\Source\RuntimeNetCore\ZlpSimpleFileAccessProtector.cs:line 56

XmlException
{
LineNumber=14,
LinePosition=3838,
SourceUri="",
Message="There is an unclosed literal string. Line 14, position 3838.",
Data=
[
]
,
InnerException=null,
TargetSite=RuntimeMethodInfo: Throw,
StackTrace=" at System.Xml.XmlTextReaderImpl.Throw(Exception e)\r\n at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)\r\n at System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos, Char quoteChar, NodeData attr)\r\n at System.Xml.XmlTextReaderImpl.ParseAttributes()\r\n at System.Xml.XmlTextReaderImpl.ParseElement()\r\n at System.Xml.XmlTextReaderImpl.ParseElementContent()\r\n at System.Xml.XmlTextReaderImpl.Read()\r\n at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)\r\n at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)\r\n at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)\r\n at System.Xml.XmlDocument.Load(XmlReader reader)\r\n at System.Xml.XmlDocument.LoadXml(String xml)\r\n at Zeta.VoyagerLibrary.Tools.Storage.PersistentXmlFilePairStorage.<>c__DisplayClass33_0.b__0() in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Source\Tools\Storage\PersistentXmlFilePairStorage.cs:line 399\r\n at ZetaLongPaths.ZlpSimpleFileAccessProtector.Protect(Action action, ZlpSimpleFileAccessProtectorInformation info) in c:\P\ZP\15.0\ZetaProducerReferences\Externals\ZetaVoyagerLibrary\Externals\ZetaLongPaths\Source\RuntimeNetCore\ZlpSimpleFileAccessProtector.cs:line 56",
HelpLink=null,
Source="System.Xml",
HResult=-2146232000
}
Ignoring inner exception because of previous OutOfMemoryException. See https://stackoverflow.com/a/25010668/107625

.resx not being saved upon malformed xml/no exception thrown

Anyone else encountering the issue that when the .resx file is being accidently or mistakenly malformed (e.g. have a ' character or duplicate tags in your document) then the app itself doesn't complain about the resource being malformed (not throwing any exception) but just proceeds to show that the changes have been saved without letting the user know that the change weren't applied properly to the resource by the app? Even if you start the editor as Administrator the app doesn't obviously verify the validity of the XML. It shouldn't load the file and it should throw an exception in case of any failure.

Steps to reproduce:

  1. Have a malformed .resx
  2. Open the resource file directly (not in a project file) in Zeta Editor, make changes to the file/tags, click on save/save all files
  3. No change applied to the malformed .resx and also no error message shown that something went wrong

import success message, but imported data does not appear

Hello, I love the idea of this editor. The UI is efficient and well thought and by fare the most elaborated out there. I would like to use it and I have to import an existing translation base from excel (aprox. 1700 translations in en-US, de, fr). When I do the import everything works fine with confirmation:

"Import completed successfully
Your data was successfully imported from the Microsoft Office Excel document you specified.

A total 1734 rows were imported."

But the imported data do not show up. I tried it with a smaller portion of data (30 rows), same result.

I would be thankful for any feedback !


Version 2.3.0.25
Build 23.12.2019 07:34.

Bing translate exception

I'm getting this exception while using Bing translate.. Funny enough it managed to translate a single word but all other get this exception:

System.Net.WebException


The remote server returned an error: (400) Bad Request.


at System.Net.HttpWebRequest.GetResponse()
at ZetaResourceEditor.RuntimeBusinessLogic.Translation.BingTranslationHelper.TranslateArray(AccessToken at, String from, String to, IEnumerable`1 texts) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\Translation\BingTranslationHelper.cs:line 277
at ZetaResourceEditor.RuntimeBusinessLogic.Translation.BingSoapTranslationEngine.<>c__DisplayClass8.b__5() in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\Translation\BingSoapTranslationEngine.cs:line 172
at ZetaResourceEditor.RuntimeBusinessLogic.Translation.BingSoapTranslationEngine.protectWSCall(ActionToProtect action) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\Translation\BingSoapTranslationEngine.cs:line 254
at ZetaResourceEditor.RuntimeBusinessLogic.Translation.BingSoapTranslationEngine.TranslateArray(String appID, String appID2, String[] texts, String sourceLanguageCode, String destinationLanguageCode, String[] wordsToProtect, String[] wordsToRemove) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\Translation\BingSoapTranslationEngine.cs:line 168
at ZetaResourceEditor.UI.Translation.AutoTranslateForm.translateArray(String appID, String appID2, ITranslationEngine ti, DataTable table, String refLanguageCode, DataColumn column, Int32 refValueIndex, String raw, BackgroundWorker bw, Int32 delayMilliseconds, String prefixSuccess, Int32 translationSuccessCount, Int32& translationErrorCount, Boolean continueOnErrors, String prefixError, Int32& translationCount) in c:\P\ZetaResourceEditor\Source\Main\UI\Translation\AutoTranslateForm.cs:line 910
at ZetaResourceEditor.UI.Translation.AutoTranslateForm.<>c__DisplayClass9.<buttonTranslate_Click>b__5(Object s, DoWorkEventArgs a) in c:\P\ZetaResourceEditor\Source\Main\UI\Translation\AutoTranslateForm.cs:line 569
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

WebException
{
Status=ProtocolError,
Response=HttpWebResponse
{
IsMutuallyAuthenticated=False,
Cookies=CookieCollection
{
IsReadOnly=True,
Count=0,
IsSynchronized=False,

    },
    Headers=WebHeaderCollection
    {
        Count=4,
        Keys=KeysCollection
        {
            Count=4
        },
        AllKeys=String[]
        {
            Length=4,
            LongLength=4,
            Rank=1,

,
IsReadOnly=False,
IsFixedSize=True,
IsSynchronized=False

            "X-MS-Trans-Info",
            "Content-Length",
            "Content-Type",
            "Date"
        },
    },
    ContentLength=275,
    ContentEncoding="",
    ContentType="text/html; charset=utf-8",
    CharacterSet="utf-8",
    Server="",
    LastModified=14-06-2013 13:35:58,
    StatusCode=BadRequest,
    StatusDescription="Bad Request",
    ProtocolVersion=Version
    {
        Major=1,
        Minor=1,
        Build=-1,
        Revision=-1,
        MajorRevision=-1,
        MinorRevision=-1
    },
    ResponseUri=Uri
    {
        AbsolutePath="/v2/Http.svc/TranslateArray",
        AbsoluteUri="http://api.microsofttranslator.com/v2/Http.svc/TranslateArray?appId=",
        Authority="api.microsofttranslator.com",
        Host="api.microsofttranslator.com",
        HostNameType=Dns,
        IsDefaultPort=True,
        IsFile=False,
        IsLoopback=False,
        IsUnc=False,
        LocalPath="/v2/Http.svc/TranslateArray",
        PathAndQuery="/v2/Http.svc/TranslateArray?appId=",
        Port=80,
        Query="?appId=",
        Fragment="",
        Scheme="http",
        OriginalString="http://api.microsofttranslator.com/v2/Http.svc/TranslateArray?appId=",
        DnsSafeHost="api.microsofttranslator.com",
        IsAbsoluteUri=True,
        Segments=String[]
        {
            Length=4,
            LongLength=4,
            Rank=1,

,
IsReadOnly=False,
IsFixedSize=True,
IsSynchronized=False

            "/",
            "v2/",
            "Http.svc/",
            "TranslateArray"
        },
        UserEscaped=False,
        UserInfo=""
    },
    Method="POST",
    IsFromCache=False
},
Message="The remote server returned an error: (400) Bad Request.",
Data=
[
]

,
InnerException=null,
TargetSite=RuntimeMethodInfo: GetResponse,
StackTrace=" at System.Net.HttpWebRequest.GetResponse()\r\n at ZetaResourceEditor.RuntimeBusinessLogic.Translation.BingTranslationHelper.TranslateArray(AccessToken at, String from, String to, IEnumerable`1 texts) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\Translation\BingTranslationHelper.cs:line 277\r\n at ZetaResourceEditor.RuntimeBusinessLogic.Translation.BingSoapTranslationEngine.<>c__DisplayClass8.b__5() in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\Translation\BingSoapTranslationEngine.cs:line 172\r\n at ZetaResourceEditor.RuntimeBusinessLogic.Translation.BingSoapTranslationEngine.protectWSCall(ActionToProtect action) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\Translation\BingSoapTranslationEngine.cs:line 254\r\n at ZetaResourceEditor.RuntimeBusinessLogic.Translation.BingSoapTranslationEngine.TranslateArray(String appID, String appID2, String[] texts, String sourceLanguageCode, String destinationLanguageCode, String[] wordsToProtect, String[] wordsToRemove) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\Translation\BingSoapTranslationEngine.cs:line 168\r\n at ZetaResourceEditor.UI.Translation.AutoTranslateForm.translateArray(String appID, String appID2, ITranslationEngine ti, DataTable table, String refLanguageCode, DataColumn column, Int32 refValueIndex, String raw, BackgroundWorker bw, Int32 delayMilliseconds, String prefixSuccess, Int32 translationSuccessCount, Int32& translationErrorCount, Boolean continueOnErrors, String prefixError, Int32& translationCount) in c:\P\ZetaResourceEditor\Source\Main\UI\Translation\AutoTranslateForm.cs:line 910\r\n at ZetaResourceEditor.UI.Translation.AutoTranslateForm.<>c__DisplayClass9.<buttonTranslate_Click>b__5(Object s, DoWorkEventArgs a) in c:\P\ZetaResourceEditor\Source\Main\UI\Translation\AutoTranslateForm.cs:line 569\r\n at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)\r\n at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)",
HelpLink=null,
Source="System"
}

Error Importing xls file

Hi, when clicking "import xls" the following prompt appears (before file selector)
Broken 2.2.0.28
Working 2.2.0.27

System.ArgumentOutOfRangeException


Das angegebene Argument liegt außerhalb des gültigen Wertebereichs.
Parametername: sectorID


bei ExcelLibrary.CompoundDocumentFormat.SectorAllocation.GetNextSectorID(Int32 sectorID)
bei ExcelLibrary.CompoundDocumentFormat.SectorAllocation.GetSIDChain(Int32 StartSID)
bei ExcelLibrary.CompoundDocumentFormat.CompoundDocument.GetStreamDataAsBytes(Int32 StartSID, Int32 length)
bei ExcelLibrary.CompoundDocumentFormat.CompoundDocument.ReadDirectoryEntries()
bei ExcelLibrary.CompoundDocumentFormat.CompoundDocument.Open(Stream stream)
bei ExcelLibrary.CompoundDocumentFormat.CompoundDocument.Load(Stream stream)
bei ExcelLibrary.SpreadSheet.Workbook.Load(Stream stream)
bei ExcelLibrary.DataSetHelper.CreateDataSet(String filePath)
bei ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Import.ExcelImportController.DetectFileGroupsFromExcelFile(Project project, String filePath) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Import\ExcelImportController.cs:Zeile 54.
bei ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.parseFileGroups() in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:Zeile 368.
bei ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.sourceFileTextEdit_EditValueChanged(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:Zeile 464.
bei DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChangedCore(EventArgs e)
bei DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChanged(EventArgs e)
bei DevExpress.XtraEditors.BaseEdit.RaiseEditValueChanged()
bei DevExpress.XtraEditors.BaseEdit.OnEditValueChanged()
bei DevExpress.XtraEditors.TextEdit.OnEditValueChanged()
bei DevExpress.XtraEditors.MemoEdit.OnEditValueChanged()
bei DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)
bei DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)
bei DevExpress.XtraEditors.TextEdit.set_Text(String value)
bei ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.restoreState(IPersistentPairStorage storage) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:Zeile 195.
bei ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.FillItemToControls() in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:Zeile 168.
bei ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.ImportWizard_Load(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:Zeile 139.
bei System.EventHandler.Invoke(Object sender, EventArgs e)
bei System.Windows.Forms.Form.OnLoad(EventArgs e)
bei DevExpress.XtraEditors.XtraForm.OnLoad(EventArgs e)
bei ZetaResourceEditor.UI.Helper.Base.FormBase.OnLoad(EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\Helper\Base\FormBase.cs:Zeile 57.
bei System.Windows.Forms.Form.OnCreateControl()
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.Control.CreateControl()
bei System.Windows.Forms.Control.WmShowWindow(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
bei System.Windows.Forms.Form.WmShowWindow(Message& m)
bei System.Windows.Forms.Form.WndProc(Message& m)
bei DevExpress.XtraEditors.XtraForm.WndProc(Message& msg)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

ArgumentOutOfRangeException
{
Message="Das angegebene Argument liegt außerhalb des gültigen Wertebereichs.\r\nParametername: sectorID",
ActualValue=null,
ParamName="sectorID",
Data=
[
]
,
InnerException=null,
TargetSite=RuntimeMethodInfo: GetNextSectorID,
StackTrace=" bei ExcelLibrary.CompoundDocumentFormat.SectorAllocation.GetNextSectorID(Int32 sectorID)\r\n bei ExcelLibrary.CompoundDocumentFormat.SectorAllocation.GetSIDChain(Int32 StartSID)\r\n bei ExcelLibrary.CompoundDocumentFormat.CompoundDocument.GetStreamDataAsBytes(Int32 StartSID, Int32 length)\r\n bei ExcelLibrary.CompoundDocumentFormat.CompoundDocument.ReadDirectoryEntries()\r\n bei ExcelLibrary.CompoundDocumentFormat.CompoundDocument.Open(Stream stream)\r\n bei ExcelLibrary.CompoundDocumentFormat.CompoundDocument.Load(Stream stream)\r\n bei ExcelLibrary.SpreadSheet.Workbook.Load(Stream stream)\r\n bei ExcelLibrary.DataSetHelper.CreateDataSet(String filePath)\r\n bei ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Import.ExcelImportController.DetectFileGroupsFromExcelFile(Project project, String filePath) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Import\ExcelImportController.cs:Zeile 54.\r\n bei ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.parseFileGroups() in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:Zeile 368.\r\n bei ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.sourceFileTextEdit_EditValueChanged(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:Zeile 464.\r\n bei DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChangedCore(EventArgs e)\r\n bei DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChanged(EventArgs e)\r\n bei DevExpress.XtraEditors.BaseEdit.RaiseEditValueChanged()\r\n bei DevExpress.XtraEditors.BaseEdit.OnEditValueChanged()\r\n bei DevExpress.XtraEditors.TextEdit.OnEditValueChanged()\r\n bei DevExpress.XtraEditors.MemoEdit.OnEditValueChanged()\r\n bei DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)\r\n bei DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)\r\n bei DevExpress.XtraEditors.TextEdit.set_Text(String value)\r\n bei ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.restoreState(IPersistentPairStorage storage) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:Zeile 195.\r\n bei ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.FillItemToControls() in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:Zeile 168.\r\n bei ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.ImportWizard_Load(Object sender, EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:Zeile 139.\r\n bei System.EventHandler.Invoke(Object sender, EventArgs e)\r\n bei System.Windows.Forms.Form.OnLoad(EventArgs e)\r\n bei DevExpress.XtraEditors.XtraForm.OnLoad(EventArgs e)\r\n bei ZetaResourceEditor.UI.Helper.Base.FormBase.OnLoad(EventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\Helper\Base\FormBase.cs:Zeile 57.\r\n bei System.Windows.Forms.Form.OnCreateControl()\r\n bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)\r\n bei System.Windows.Forms.Control.CreateControl()\r\n bei System.Windows.Forms.Control.WmShowWindow(Message& m)\r\n bei System.Windows.Forms.Control.WndProc(Message& m)\r\n bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)\r\n bei System.Windows.Forms.ContainerControl.WndProc(Message& m)\r\n bei System.Windows.Forms.Form.WmShowWindow(Message& m)\r\n bei System.Windows.Forms.Form.WndProc(Message& m)\r\n bei DevExpress.XtraEditors.XtraForm.WndProc(Message& msg)\r\n bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)\r\n bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\r\n bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)",
HelpLink=null,
Source="ExcelLibrary"
}

Please add a find all option

At some points I want to find all resources who contain a specific string. I want to do something like the Excel find all feature where I write the text to search and get a list of all strings the phrase is used in

Allow Fill Right/Left or Fill Down.

Hi Team,

This is an enhancement Request
Can you please implement a way to copy or fill right/left/down when using multiple files? I have an english/spanish/portuguese resx files and portuguese and spanish are very close for some words. I would like to filter and copy them down with the filter or copy them from the spanish to the portuguese file for example, just changing some words.
This would help me a lot;

thanks for the app!

App fails to open due to SecurityException

I've downloaded the portable version 2.3.0.33.
When starting ZetaResourceEditor.exe it seems like nothing is happening.

I'm running Windows 11 21H2 22000.65. .Net Framework 4.8 is installed.

The Windows event log contains two entries:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name=".NET Runtime" /> 
    <EventID Qualifiers="0">1026</EventID> 
    <Version>0</Version> 
    <Level>2</Level> 
    <Task>0</Task> 
    <Opcode>0</Opcode> 
    <Keywords>0x80000000000000</Keywords> 
    <TimeCreated SystemTime="2022-05-05T12:57:18.7622202Z" /> 
    <EventRecordID>101777</EventRecordID> 
    <Execution ProcessID="31908" ThreadID="0" /> 
    <Channel>Application</Channel> 
  </System>
  <EventData>
    <Data>Application: ZetaResourceEditor.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.Security.SecurityException at ZetaResourceEditor.Code.Host.Main()</Data> 
  </EventData>
 </Event>

and

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" /> 
    <EventID Qualifiers="0">1000</EventID> 
    <Version>0</Version> 
    <Level>2</Level> 
    <Task>100</Task> 
    <Opcode>0</Opcode> 
    <Keywords>0x80000000000000</Keywords> 
    <TimeCreated SystemTime="2022-05-05T12:57:18.8195156Z" /> 
    <EventRecordID>101778</EventRecordID> 
    <Execution ProcessID="18444" ThreadID="0" /> 
    <Channel>Application</Channel> 
  </System>
  <EventData>
    <Data>ZetaResourceEditor.exe</Data> 
    <Data>2.3.0.33</Data> 
    <Data>61842d6d</Data> 
    <Data>KERNELBASE.dll</Data> 
    <Data>10.0.22000.652</Data> 
    <Data>d680f8f6</Data> 
    <Data>e0434352</Data> 
    <Data>000000000004474c</Data> 
    <Data>7ca4</Data> 
    <Data>01d8607fa6eefc32</Data> 
    <Data>C:\Users\bruno\Downloads\ZetaResourceEditor-Bin\ZetaResourceEditor.exe</Data> 
    <Data>C:\WINDOWS\System32\KERNELBASE.dll</Data> 
    <Data>cac19946-394f-4c26-afbd-f16fd2c49bb7</Data> 
  </EventData>
</Event>

Note: i removed some empty fields and the computername field.

After the portable version failed I used the installer to install and can now successfully execute the application.

Error when importing from Excel: "No data is available for encoding 1252"

I am using Zeta Resource Editor (version 2.3.42.0) and when I try to import from Excel the following exception is raised:

System.NotSupportedException

-----------------

No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.

-----------------

at System.Text.Encoding.GetEncoding(Int32 codepage)
   at ExcelDataReader.ExcelReaderConfiguration..ctor()
   at ExcelDataReader.ExcelReaderFactory.CreateReader(Stream fileStream, ExcelReaderConfiguration configuration)
   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.CoreExcel2.CoreExcelImporter.ImportExcelFromFile(String filePath) in c:\P\zeta-resource-editor\Source\RuntimeBusinessLogic\ExportImportExcel\CoreExcel2\CoreExcelImporter.cs:line 12
   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Import.ExcelImportController.DetectFileGroupsFromExcelFile(Project project, String filePath) in c:\P\zeta-resource-editor\Source\RuntimeBusinessLogic\ExportImportExcel\Import\ExcelImportController.cs:line 43
   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.parseFileGroups() in c:\P\zeta-resource-editor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 344
   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.sourceFileTextEdit_EditValueChanged(Object sender, EventArgs e) in c:\P\zeta-resource-editor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 437
   at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChangedCore(EventArgs e)
   at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChanged(EventArgs e)
   at DevExpress.XtraEditors.BaseEdit.RaiseEditValueChanged()
   at DevExpress.XtraEditors.BaseEdit.OnEditValueChanged()
   at DevExpress.XtraEditors.TextEdit.OnEditValueChanged()
   at DevExpress.XtraEditors.MemoEdit.OnEditValueChanged()
   at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.OnEditValueChanged() in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\General\ExtendedManagedCueMemoEdit.cs:line 69
   at DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)
   at DevExpress.XtraEditors.TextEdit.OnEditValueChanging(ChangingEventArgs e)
   at DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)
   at DevExpress.XtraEditors.BaseEdit.set_Text(String value)
   at DevExpress.XtraEditors.TextEdit.SetBaseText(String text)
   at DevExpress.XtraEditors.TextEdit.TextEditWorkingStrategy.set_Text(String value)
   at DevExpress.XtraEditors.TextEdit.set_Text(String value)
   at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.set_Text(String value) in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\General\ExtendedManagedCueMemoEdit.cs:line 40
   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.buttonBrowse_Click(Object sender, EventArgs e) in c:\P\zeta-resource-editor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 334
   at DevExpress.XtraEditors.BaseButton.OnClick(EventArgs e)
   at DevExpress.XtraEditors.BaseButton.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at DevExpress.XtraEditors.XtraControl.WndProc(Message& m)
   at DevExpress.Utils.Controls.ControlBase.BaseWndProc(Message& m)
   at DevExpress.XtraEditors.BaseControl.WndProc(Message& msg)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)

NotSupportedException
{
	TargetSite=RuntimeMethodInfo: GetEncoding,
	Message="No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.",
	Data=
	[
	]
,
	InnerException=null,
	HelpLink=null,
	Source="System.Private.CoreLib",
	HResult=-2146233067,
	StackTrace="   at System.Text.Encoding.GetEncoding(Int32 codepage)\\r\\n   at ExcelDataReader.ExcelReaderConfiguration..ctor()\\r\\n   at ExcelDataReader.ExcelReaderFactory.CreateReader(Stream fileStream, ExcelReaderConfiguration configuration)\\r\\n   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.CoreExcel2.CoreExcelImporter.ImportExcelFromFile(String filePath) in c:\\P\\zeta-resource-editor\\Source\\RuntimeBusinessLogic\\ExportImportExcel\\CoreExcel2\\CoreExcelImporter.cs:line 12\\r\\n   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Import.ExcelImportController.DetectFileGroupsFromExcelFile(Project project, String filePath) in c:\\P\\zeta-resource-editor\\Source\\RuntimeBusinessLogic\\ExportImportExcel\\Import\\ExcelImportController.cs:line 43\\r\\n   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.parseFileGroups() in c:\\P\\zeta-resource-editor\\Source\\Main\\UI\\ExportImportExcel\\ExcelImportWizardForm.cs:line 344\\r\\n   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.sourceFileTextEdit_EditValueChanged(Object sender, EventArgs e) in c:\\P\\zeta-resource-editor\\Source\\Main\\UI\\ExportImportExcel\\ExcelImportWizardForm.cs:line 437\\r\\n   at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChangedCore(EventArgs e)\\r\\n   at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChanged(EventArgs e)\\r\\n   at DevExpress.XtraEditors.BaseEdit.RaiseEditValueChanged()\\r\\n   at DevExpress.XtraEditors.BaseEdit.OnEditValueChanged()\\r\\n   at DevExpress.XtraEditors.TextEdit.OnEditValueChanged()\\r\\n   at DevExpress.XtraEditors.MemoEdit.OnEditValueChanged()\\r\\n   at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.OnEditValueChanged() in c:\\P\\zeta-resource-editor\\Source\\ExtendedControlsLibrary\\General\\ExtendedManagedCueMemoEdit.cs:line 69\\r\\n   at DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)\\r\\n   at DevExpress.XtraEditors.TextEdit.OnEditValueChanging(ChangingEventArgs e)\\r\\n   at DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)\\r\\n   at DevExpress.XtraEditors.BaseEdit.set_Text(String value)\\r\\n   at DevExpress.XtraEditors.TextEdit.SetBaseText(String text)\\r\\n   at DevExpress.XtraEditors.TextEdit.TextEditWorkingStrategy.set_Text(String value)\\r\\n   at DevExpress.XtraEditors.TextEdit.set_Text(String value)\\r\\n   at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.set_Text(String value) in c:\\P\\zeta-resource-editor\\Source\\ExtendedControlsLibrary\\General\\ExtendedManagedCueMemoEdit.cs:line 40\\r\\n   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.buttonBrowse_Click(Object sender, EventArgs e) in c:\\P\\zeta-resource-editor\\Source\\Main\\UI\\ExportImportExcel\\ExcelImportWizardForm.cs:line 334\\r\\n   at DevExpress.XtraEditors.BaseButton.OnClick(EventArgs e)\\r\\n   at DevExpress.XtraEditors.BaseButton.OnMouseUp(MouseEventArgs e)\\r\\n   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)\\r\\n   at System.Windows.Forms.Control.WndProc(Message& m)\\r\\n   at DevExpress.XtraEditors.XtraControl.WndProc(Message& m)\\r\\n   at DevExpress.Utils.Controls.ControlBase.BaseWndProc(Message& m)\\r\\n   at DevExpress.XtraEditors.BaseControl.WndProc(Message& msg)\\r\\n   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\\r\\n   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)"
}

In previous versions (I don't remember the exact version but not very old) of Zeta Resource Editor it didn't happen.
I think it can be related with .Net Core and ExcelDataReader:
https://github.com/ExcelDataReader/ExcelDataReader#important-note-on-net-core

The fix can be this:
https://stackoverflow.com/a/73543901/18242412
https://stackoverflow.com/a/37870346/18242412

I have tried to fix it by myself and make a pull request but the Zeta resource Editor project cannot be compiled because some libraries cannot be found (Zeta.VoyagerLibrary.Core.Common, Zeta.VoyagerLibrary.Core.Logging, Zeta.VoyagerLibrary.Core.Tools, , Zeta.VoyagerLibrary.Core.WinForms).

Thank you.

Some languages available on google translate that are not working

I've successfully translated 61 languages (I'll put the list below for anyone who wants a template file setup) but here's a list of the languages that are not working in Zeta but are on Google Translate.

I've put the Language after the code in the filenames that weren't successful.

There's also some that don't even get shown in Zeta but are on Google Translate shown below.

Not getting shown in Zeta but on Google

Lang.fil-Latn (Filipino).resx
Lang.ky-Cyrl (Kyrgyz).resx
Lang.mi-Latn (Maori).resx

Files that are not getting translated in Zeta

There are a few important ones in there like German, Finnish, Italian, Japanese and Polish.

Lang.ca (Catalan Spanish).resx
Lang.cs (Czech).resx
Lang.da (Danish).resx
Lang.de (German).resx
Lang.de-de (German).resx
Lang.et (Estonian).resx
Lang.eu (Basque).resx
Lang.fa (Persian).resx
Lang.fi (Finnish).resx
Lang.ga (Irish).resx
Lang.gd-Latn (Scottish Gaelic).resx
Lang.gl (Galician).resx
Lang.gu (Gujarati).resx
Lang.ha-Latn (Hausa (Latin)).resx
Lang.he (Hebrew).resx
Lang.hi (Hindi).resx
Lang.hr (Croatian).resx
Lang.hu (Hungarian).resx
Lang.hy (Armenian).resx
Lang.id (Indonesian).resx
Lang.ig-Latn (Igbo).resx
Lang.is (Icelandic).resx
Lang.it (Italian).resx
Lang.it-it (Italian).resx
Lang.ja (Japanese).resx
Lang.ka (Georgian).resx
Lang.kk (Kazakh).resx
Lang.km (Khmer).resx
Lang.kn (Kannada).resx
Lang.ko (Korean).resx
Lang.lb (Luxembourgish).resx
Lang.lt (Lithuanian).resx
Lang.lv (Latvian).resx
Lang.mr (Marathi).resx
Lang.ms (Malay).resx
Lang.pl (Polish).resx

Working via Googles API

So you can use this as a file template

Lang.af.resx
Lang.am.resx
Lang.ar-sa.resx
Lang.az-Latn.resx
Lang.be.resx
Lang.bg.resx
Lang.bn-BD.resx
Lang.bn-IN.resx
Lang.bs.resx
Lang.cy.resx
Lang.el.resx
Lang.en-GB.resx
Lang.en-US.resx
Lang.es-ES.resx
Lang.es-MX.resx
Lang.es-US.resx
Lang.es.resx
Lang.fr-CA.resx
Lang.fr-FR.resx
Lang.fr.resx
Lang.mk.resx
Lang.ml.resx
Lang.mn-Cyrl.resx
Lang.mt.resx
Lang.ne.resx
Lang.nl-BE.resx
Lang.nl.resx
Lang.or.resx
Lang.prs-Arab.resx
Lang.pt-BR.resx
Lang.pt-PT.resx
Lang.qut-Latn.resx
Lang.ro.resx
Lang.ru.resx
Lang.rw.resx
Lang.sd-Arab.resx
Lang.si.resx
Lang.sk.resx
Lang.sl.resx
Lang.sq.resx
Lang.sr-Cyrl-BA.resx
Lang.sr-Cyrl-RS.resx
Lang.sr-Latn-RS.resx
Lang.sv.resx
Lang.sw.resx
Lang.ta.resx
Lang.te.resx
Lang.tg-Cyrl.resx
Lang.th.resx
Lang.tk-Latn.resx
Lang.tr.resx
Lang.tt-Cyrl.resx
Lang.ug-Arab.resx
Lang.uk.resx
Lang.ur.resx
Lang.uz-Latn.resx
Lang.vi.resx
Lang.xh.resx
Lang.yo-Latn.resx
Lang.zh-Hans.resx
Lang.zh-Hant.resx
Lang.zu.resx

For the sake of completeness here are languages that are not on Google Translate.

Lang.as (Assamese).resx
Lang.ca-ES-valencia (Valencian).resx
Lang.kok (Konkani).resx
Lang.ku-Arab (Central Kurdish).resx
Lang.nb (Norwegian (Bokmål)).resx
Lang.nn (Norwegian (Nynorsk)).resx
Lang.nso (Sesotho sa Leboa).resx
Lang.pa (Punjabi (Gurmukhi)).resx
Lang.pa-Arab (Punjabi (Arabic)).resx
Lang.quz (Quechua (Peru)).resx
Lang.ti (Tigrinya).resx
Lang.tn (Setswana).resx
Lang.wo (Wolof).resx

Export to different worksheet with cryptic names fail

Hi,

We encountered the following error when exporting each file group to different sheet and using the option 'use cryptic names'.
Seems the GUID generation is not correct.

Edit: After closing and re-opening the program, it works.


-----------------

A DataTable named '00000000-0000-0000-0000-0000...' already belongs to this DataSet.

-----------------

at System.Data.DataTableCollection.RegisterName(String name, String tbNamespace)
   at System.Data.DataTable.set_TableName(String value)
   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.doProcess(PreparedInformation preparedInformation, BackgroundWorker bw, Int32 fileGroupsLength, ICollection`1 savedFiles) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Export\ExcelExportController.cs:line 451
   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.Process(BackgroundWorker bw) in c:\P\ZetaResourceEditor\Source\RuntimeBusinessLogic\ExportImportExcel\Export\ExcelExportController.cs:line 304
   at ZetaResourceEditor.UI.ExportImportExcel.ExcelExportWizardForm.progressBackgroundWorker_DoWork(Object sender, DoWorkEventArgs e) in c:\P\ZetaResourceEditor\Source\Main\UI\ExportImportExcel\ExcelExportWizardForm.cs:line 749
   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

DuplicateNameException
{
	Message="A DataTable named \\'00000000-0000-0000-0000-0000...\\' already belongs to this DataSet.",
	Data=
	[
	]
,
	InnerException=null,
	TargetSite=RuntimeMethodInfo: RegisterName,
	StackTrace="   at System.Data.DataTableCollection.RegisterName(String name, String tbNamespace)\\r\\n   at System.Data.DataTable.set_TableName(String value)\\r\\n   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.doProcess(PreparedInformation preparedInformation, BackgroundWorker bw, Int32 fileGroupsLength, ICollection`1 savedFiles) in c:\\P\\ZetaResourceEditor\\Source\\RuntimeBusinessLogic\\ExportImportExcel\\Export\\ExcelExportController.cs:line 451\\r\\n   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Export.ExcelExportController.Process(BackgroundWorker bw) in c:\\P\\ZetaResourceEditor\\Source\\RuntimeBusinessLogic\\ExportImportExcel\\Export\\ExcelExportController.cs:line 304\\r\\n   at ZetaResourceEditor.UI.ExportImportExcel.ExcelExportWizardForm.progressBackgroundWorker_DoWork(Object sender, DoWorkEventArgs e) in c:\\P\\ZetaResourceEditor\\Source\\Main\\UI\\ExportImportExcel\\ExcelExportWizardForm.cs:line 749\\r\\n   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)\\r\\n   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)",
	HelpLink=null,
	Source="System.Data",
	HResult=-2146232030
}```

Culture changes by MS for .NET 4.0 +

The Chinese culture codes have changed and the .NET 2.0 framework does not use them.

I have converted the entire project to .NET 4.5 with Devexpress 13.2.9 controls. However, not sure how to post an entire project within your Repo.

Thanks

Implement Paste Row

Awesome tool I'm using for years now! But what often bugs me is that you can copy a row into clipboard but there is no "paste row". This comes in very handy when you need to move a resource tag from one resx to another file. I'm dealing with projects with lots of files and this would help a lot !

Error creating new files for language.

I'm trying to use this tool to send resource files to partners to be translated, so I cannot send the entire Visual Studio solution. So I pulled the resource files for each project into a separate directory with each project in it's own folder, then I created a new project, and added files from that directory (manually or automatically doesn't matter). The outcome is the same though, if I only use the files from one project.

When I click "create new file for language" I get the error:

System.ArgumentException


The path is empty. (Parameter 'path')


at System.IO.Path.GetFullPath(String path)
at System.IO.FileInfo..ctor(String fileName)
at ZetaResourceEditor.UI.FileGroups.CreateNewFileForm.updateIncludeFileInCsprojControls() in c:\P\zeta-resource-editor\Source\Main\UI\FileGroups\CreateNewFileForm.cs:line 85
at ZetaResourceEditor.UI.FileGroups.CreateNewFileForm.UpdateUI() in c:\P\zeta-resource-editor\Source\Main\UI\FileGroups\CreateNewFileForm.cs:line 103
at ZetaResourceEditor.UI.FileGroups.CreateNewFileForm.prefixTextBox_EditValueChanged(Object sender, EventArgs e) in c:\P\zeta-resource-editor\Source\Main\UI\FileGroups\CreateNewFileForm.cs:line 356
at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChangedCore(EventArgs e)
at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChanged(EventArgs e)
at DevExpress.XtraEditors.BaseEdit.RaiseEditValueChanged()
at DevExpress.XtraEditors.BaseEdit.OnEditValueChanged()
at DevExpress.XtraEditors.TextEdit.OnEditValueChanged()
at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueTextEdit.OnEditValueChanged() in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\General\ExtendedManagedCueTextEdit.cs:line 70
at DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)
at DevExpress.XtraEditors.TextEdit.OnEditValueChanging(ChangingEventArgs e)
at DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)
at DevExpress.XtraEditors.BaseEdit.set_Text(String value)
at DevExpress.XtraEditors.TextEdit.SetBaseText(String text)
at DevExpress.XtraEditors.TextEdit.TextEditWorkingStrategy.set_Text(String value)
at DevExpress.XtraEditors.TextEdit.set_Text(String value)
at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueTextEdit.set_Text(String value) in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\General\ExtendedManagedCueTextEdit.cs:line 41
at ZetaResourceEditor.UI.FileGroups.CreateNewFileForm.FillItemToControls() in c:\P\zeta-resource-editor\Source\Main\UI\FileGroups\CreateNewFileForm.cs:line 137
at ZetaResourceEditor.UI.FileGroups.CreateNewFileForm.CreateNewFileForm_Load(Object sender, EventArgs e) in c:\P\zeta-resource-editor\Source\Main\UI\FileGroups\CreateNewFileForm.cs:line 244
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at DevExpress.XtraEditors.XtraForm.OnLoad(EventArgs e)
at ZetaResourceEditor.ExtendedControlsLibrary.Skinning.CustomForm.MyXtraForm.OnLoad(EventArgs e) in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\Skinning\CustomForm\MyXtraForm.cs:line 61
at ZetaResourceEditor.ExtendedControlsLibrary.General.Base.DevExpressXtraFormBase.OnLoad(EventArgs e) in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\General\Base\DevExpressXtraFormBase.cs:line 133
at ZetaResourceEditor.UI.Helper.Base.FormBase.OnLoad(EventArgs e) in c:\P\zeta-resource-editor\Source\Main\UI\Helper\Base\FormBase.cs:line 45
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at DevExpress.XtraEditors.DForm.WndProc(Message& m)
at DevExpress.XtraEditors.XtraForm.WndProc(Message& msg)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)

ArgumentException
{
Message="The path is empty. (Parameter \'path\')",
ParamName="path",
TargetSite=RuntimeMethodInfo: GetFullPath,
Data=
[
]
,
InnerException=null,
HelpLink=null,
Source="System.Private.CoreLib",
HResult=-2147024809,
StackTrace=" at System.IO.Path.GetFullPath(String path)\r\n at System.IO.FileInfo..ctor(String fileName)\r\n at ZetaResourceEditor.UI.FileGroups.CreateNewFileForm.updateIncludeFileInCsprojControls() in c:\P\zeta-resource-editor\Source\Main\UI\FileGroups\CreateNewFileForm.cs:line 85\r\n at ZetaResourceEditor.UI.FileGroups.CreateNewFileForm.UpdateUI() in c:\P\zeta-resource-editor\Source\Main\UI\FileGroups\CreateNewFileForm.cs:line 103\r\n at ZetaResourceEditor.UI.FileGroups.CreateNewFileForm.prefixTextBox_EditValueChanged(Object sender, EventArgs e) in c:\P\zeta-resource-editor\Source\Main\UI\FileGroups\CreateNewFileForm.cs:line 356\r\n at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChangedCore(EventArgs e)\r\n at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChanged(EventArgs e)\r\n at DevExpress.XtraEditors.BaseEdit.RaiseEditValueChanged()\r\n at DevExpress.XtraEditors.BaseEdit.OnEditValueChanged()\r\n at DevExpress.XtraEditors.TextEdit.OnEditValueChanged()\r\n at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueTextEdit.OnEditValueChanged() in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\General\ExtendedManagedCueTextEdit.cs:line 70\r\n at DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)\r\n at DevExpress.XtraEditors.TextEdit.OnEditValueChanging(ChangingEventArgs e)\r\n at DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)\r\n at DevExpress.XtraEditors.BaseEdit.set_Text(String value)\r\n at DevExpress.XtraEditors.TextEdit.SetBaseText(String text)\r\n at DevExpress.XtraEditors.TextEdit.TextEditWorkingStrategy.set_Text(String value)\r\n at DevExpress.XtraEditors.TextEdit.set_Text(String value)\r\n at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueTextEdit.set_Text(String value) in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\General\ExtendedManagedCueTextEdit.cs:line 41\r\n at ZetaResourceEditor.UI.FileGroups.CreateNewFileForm.FillItemToControls() in c:\P\zeta-resource-editor\Source\Main\UI\FileGroups\CreateNewFileForm.cs:line 137\r\n at ZetaResourceEditor.UI.FileGroups.CreateNewFileForm.CreateNewFileForm_Load(Object sender, EventArgs e) in c:\P\zeta-resource-editor\Source\Main\UI\FileGroups\CreateNewFileForm.cs:line 244\r\n at System.Windows.Forms.Form.OnLoad(EventArgs e)\r\n at DevExpress.XtraEditors.XtraForm.OnLoad(EventArgs e)\r\n at ZetaResourceEditor.ExtendedControlsLibrary.Skinning.CustomForm.MyXtraForm.OnLoad(EventArgs e) in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\Skinning\CustomForm\MyXtraForm.cs:line 61\r\n at ZetaResourceEditor.ExtendedControlsLibrary.General.Base.DevExpressXtraFormBase.OnLoad(EventArgs e) in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\General\Base\DevExpressXtraFormBase.cs:line 133\r\n at ZetaResourceEditor.UI.Helper.Base.FormBase.OnLoad(EventArgs e) in c:\P\zeta-resource-editor\Source\Main\UI\Helper\Base\FormBase.cs:line 45\r\n at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)\r\n at System.Windows.Forms.Control.CreateControl()\r\n at System.Windows.Forms.Control.WmShowWindow(Message& m)\r\n at System.Windows.Forms.Control.WndProc(Message& m)\r\n at System.Windows.Forms.ScrollableControl.WndProc(Message& m)\r\n at System.Windows.Forms.Form.WmShowWindow(Message& m)\r\n at System.Windows.Forms.Form.WndProc(Message& m)\r\n at DevExpress.XtraEditors.DForm.WndProc(Message& m)\r\n at DevExpress.XtraEditors.XtraForm.WndProc(Message& msg)\r\n at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\r\n at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)"
}

Dark Theme

Hi, a huge thank you for the editor!
How about a dark theme to save our eyes?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.