Multi-Language Add-In for Visual Studio

Multi-Language Add-In for Visual Studio

Advanced Copy Issue

Hi Phil,

I've been using the advanced copy dialogue to synchronise our German (Germany) translation with our base German translation. I've found that this process also copies the grey 'fallback' resources and adds them in black as if they were translated. This is inconvenient for me because there is now no easy way to tell which strings have been added to our application since the last translation.

It's not so hard to work around but I thought I'd let you know.



Hi Ian,

I have just uploaded a new version (4.53.0018) which should fix this problem. If a text is only the result of resource fallback, then it will not be copied.

I have also made a change to the way texts are automatically inserted from the global database. If a text from the global database is identical to the text already defined via resource fallback, then it is not inserted automatically. This is common if you have a neutral and a specific language, e.g. German and German(Germany). (However, if you have been copying texts from German to German(Germany), then this probably doesn't interest you.)


Hi Phil,

Thanks for the quick response.

On another matter, I sent you an email some time ago regarding my experience of the add-in but I didn't receive a response. I just wanted to check if you got it or if I should send it again.




Hi Ian,

I did receive your email on 31st March and I replied after a long delay on 23rd April. I guess my reply got lost somewhere. Sorry that it was so late anyway.

You mentioned 5 issues, so I'll go through them quickly:

Closing the database

You mentioned that the project database is not closed when you close the Add-In, which prevented you from checking it into source control, until you actually close the project in visual studio.

I have fixed this problem, by adding a entry to the drop-down project list. If you select this item, then the current project is closed within the Add-In, and it should be possible to check the project database into source control.

By the way, closing the Add-In window doesn't really close the Add-In. At present, the only way to really close the Add-In would be to deselect it with the Add-In Manager.

Adding comments

You suggested having a comment field to give additional information to translators. At present you are using a dummy language for this purpose.

I agree, this would be a good feature and I should add it. However, adding a dummy language is a good workaround.

There is a design question about strings which are used at multiple places. I'm not sure how to handle this. It might be simplest to always assign a unique String ID if there is a comment, becuase the comment is likely to be specific to one place in the program. Or is that too strict?

Text wrapping

It would be useful to allow text wrapping in the Excel file and in the Add-In grids. This seems so obvious, but I have never thought much about it.

I think that I should at least add it as an option.

Again, there is a design issue at stake. What if the text to be translated contains line breaks? This is not common, but there are cases such as multi-line tooltips, or verbatim strings in C#. Although you can have hard line breaks in Excel, a translator is unlikely to notice them.

One approach would be to add an escape sequence (e.g. \n) when there is a real line break in a text, although I don't like presenting translators with that kind of stuff.

I'm toying with the idea of adding some extra indicator, for example the background colour, when a text contains real line breaks. (Of course, if there was a comment column, I could add a comment to it!)

As a user of my own Add-In, I must admit, that text wrapping would make it easier to use, so I will try to add this feature.

Repeated error messages

You have reported that there can be error messages which occur repeatedly, in the worst case for every string in the project. Apart from killing Visual Studio, the only way out is to click each error message away.

I agree, this is a disaster when it occurs. I will have to search for errors which could occur repeatedly and improve the handling. I will let you know when I have done this.

Problems with Infragistics

I thought that the mechanism with the "determine resource names" option provided a working solution for Infragistics controls, but it sounds like you are familiar with this option, but still have problems.

I will investigate this again. There is enough material to write an article on the web site about handling Infragistics controls, and it also concerns quite a lot of users.

So I now have quite a few jobs to do. Lets see how and if I can find the time!


Hi Phil,
Thanks once again for your work, especially the source control fix. This will save me a lot of trouble.

Regarding comment fields, I had some quite firm ideas on how they should work, but when I thought about them it turned out they would require 'magic' on the part of the developerbiggrin. Your idea of assigning unique ID to each string with a comment is a good start, but It's also a bit of Overkill, and I don't think I would use it. Essentially, you're right in saying a comment would describe one instance of a string ID only. However, as we have been using it, the comment provides some context, but it's really the translators job to determine whether two different translations would be appropriate.

I'll think about this some more and get back to you.