Multilingual App Toolkit


The Multilingual App Toolkit works with Visual Studio to streamline your localization workflow for Windows Store, Windows Phone and desktop apps. The toolkit helps you localize your apps with localization file management, translation support, and editing tools.

(11) Review
Visual Studio
2015, 2013, 2012
Download (36,784)
E-mail Twitter Digg Facebook
Add to favorites
Reviews (11)
Q and A (16)
Sign in to write a review
Sort by:

by Monto2k2 | April 16 2016

Updates are really downgrades. I have VS Exp 2013 and VS Community 2015. MAT3 used to work in 2013 Exp, but when I upgraded to MAT4 it stopped working in 2013.

Then in the MAT Editor they removed the filter for New/Updated resource string. What the HELL!!!

by Tom Lambert (Koopakiller) | November 09 2015

One of the nicest helpers for software development I know.

by Cecilia Wirén MCT | August 11 2015

by EddyAtPessac | March 10 2015

-Integration in Visual Studio > ok
-Tools / "Enable Multilingual App Toolkit" > ok
But, in the output message:

"Please set default culture for this project by adding or uncommenting the NeutralResourceLanguage attribute in the Assembly file."

What's wrong ? (I use Visual studio express 2013 in French version)

Multilingual App Toolkit March 10 2015
| Edit |

The Toolkit needs to know the source language so it can manage the contents of the XLIFF file as well as provide the correct translation services. Not all projects have a source language defined by default, hence the message.

What is the project type (Store, Phone, WPF, etc). If I know that I can help figure out what to set to get past this message.

Please feel free to email me @ If you have a quick repro project, that would even be better.


by Carl_W | November 20 2014

A good idea and seems to work well, but you get the following errors during build if any of your xlf files are readonly/source controlled:

1>C:\Program Files (x86)\MSBuild\Microsoft\Multilingual App Toolkit\v3.0\Microsoft.Multilingual.ResxResources.targets(44,5): error : One or more errors occurred.
1>C:\Program Files (x86)\MSBuild\Microsoft\Multilingual App Toolkit\v3.0\Microsoft.Multilingual.ResxResources.targets(44,5): error : Update XLIFF build failed.
1>C:\Program Files (x86)\MSBuild\Microsoft\Multilingual App Toolkit\v3.0\Microsoft.Multilingual.ResxResources.targets(44,5): error : Multilingual App Toolkit build completed with errors.

This is not a problem when I'm actually making a change that requires the xlf files to be regenerated, but I don't want to be forced to check out my xlf files every single time I make any sort of change to my app.

Can we do anything about this?

Multilingual App Toolkit November 20 2014
| Edit |

This should only happen if the RESX and XLIFF files are out of sync during a server build - such as a TFS based build. You don't need to check out the XLIFF files locally every time you build or modifiy your code, but if you change the project's resx file (for example: AppResources.resx), this will trigger the update of the XLF files as well as the related target language based resx files (e.g.: when you build locally. When this happens, the files should be automatically checked out, letting you know to check them in with the other AppResources.resx and code changes.

by piratezstick | November 16 2014

I like this program it makes translation very easy but it is really annoying that you have to manually uninstall the old version before installing a new one!!! Please change this.

Multilingual App Toolkit November 18 2014
| Edit |

This was required as the original setup was per-user, but should have been per-machine. The MSI process did not allow us to upgrade a per-user installation to per-machine installation so we had to block. :-( Sorry for the extra steps.

by UeberBoss | October 01 2014

Unfortunately not working with Visual Studio Premium 2013 on a Windows 7 machine.

Multilingual App Toolkit November 18 2014
| Edit |

Are you still blocked? v3.1 should have fixed this issue.

by MatiasW8 | August 14 2014

by Joker-Obama | June 27 2014

Can't uninstall!!!!!!!!!!!!!!!!!!!!!!!

Multilingual App Toolkit June 27 2014
| Edit |

Please uninstall v3.0 first. We fixed a bug in setup, but the fix does requires you to install v3.0 manually first. Going forward, you will be able to upgrade.

by Ben Riga - Microsoft | April 10 2014

by Arian Kulp | December 06 2013

Makes it so easy to localize your app! Highly recommended!

Sign in to start a discussion

  • Recommendations for ignoring design elements like, anchor, in WinForms apps
    5 Posts | Last post October 14, 2016
    • The issue I have is that in my WinForms project control properties like "Anchor" and "ImeMode" are included in the XLF file. I want to send this off to a third party for translation, but I don't want them to translate these things (and I don't want to do manual inspection... this is a big code base). What are some options for solving this problem?
    • Hi Sid,
      You have a couple of options. Some make work better than others for your specific scenario.
      Obviously any resource sent to a translator can be modified since it is an XML based file format.  So the best approach is to never send it to them in the first place.  Here are some options that prevent it from being sent at all.
      Note: These options assume that you are exporting and importing resources via the 'MAT->Export Translations...' and 'MAT->Import / Recycle translations..' project menu options.  This is the recommend approach to avoid errors or loss of data to the project's existing XLIFF files.
      Option 1:
      If you don't translate these resources at all, you can mark them as Translatable = 'No' via the editor. (This will prevent you from applying translation as well).  When you export, the default is to not include non-localizable resources. This option will prevent any non-localizable resources from being added to the exported file.
      Option 2:
      If you are translating the resources yourself, you can mark them as 'Final' in the editor.  When you export, be sure to unchecked the 'Final' check box.  Doing this will prevent any resource with a 'Final' state from being added to the exported file.
      Both of these options will prevent the resources from even getting to the localizer, thus preventing any external translation to the identified resources.
      Again, be sure to use the MAT-> Import / Recycle option with the translator returned XLIFF file(s).  Import will manage the merging based on translation state (and other checks) back into your project's XLIFF files.
      For more information, see the topic 'Importing and Recycling XLF files' on the MAT blog:
    • Hi Sid,
      I just realized that you are using MAT v3.1.  v3.1's export option does not support selective exporting of resources.  This will make the option of not exporting the resource harder.
      You can manually remove the resources from the XLF file as the import will still manage the merge.  You will need to be careful to ensure that you only remove the <trans-unit /> nodes that should not be sent to the translated.
      The other option is to move to v4.0. Moving to v4.0 does require a manual upgrade process and you may not want or have the time to do this right now.
      Here are the manual steps just in case you want to see if this is a viable option at this time.
    • I think I'm actually on the latest MAT, I didn't notice this was Q&A for a previous version. Regardless, thanks for the reply. 
      Part of the difficulty is, however, that manually modifying entries is just not a great approach for me when we have several hundreds of thousands of entries across hundreds of XLF files. I was thinking of writing a console app that sets translatable to 'no' for anything with an extype value specified. Based on my observation that seems to be a reasonably accurate means of segregation. Any concerns with that approach?
    • Sounds like a reasonable approach.  Parsing the XLF should be pretty straight forward.
  • Prevent language translation of resource file in Visual Studio 2015
    4 Posts | Last post February 24, 2016
    • When using the Multilingual App Toolkit extension (version 4) in Visual Studio (2015) is there any way to prevent one of the resource files in the project from being translated?
      In the Multilingual App Toolkit I have two languages added using Add translation languages...
      All off my resource files are being correctly translated.
      I've now added a new resource file resourceImages.resx to my WinForms project to contain images that should not be localized.
      The toolkit has automatically created and Is there any way I can prevent this - I do not want the images to have translated versions and I don't want them to appear in the xlf translation files that our translators will receive.
    • isedwards,
      There is no option to ignore resource files with MAT.  However, by default the entry in the XLF file is a reference to a image location and not the image itself.  Marking the image resource(s) as Translate = 'No' in the XLF file will prevent the images references from being added to the target language image resource files. This is because resources with a Translate = 'No' are not added to the target resource file.  This should allow you to use a single image for all languages without any project bloat.
    • Hi Cameron - many thanks for the answer. I've now set Translate = 'No' for each image in each xlf file. However, the images are still included as base64 encodings within the xlf files (not as a link). Could you tell me know to get the default behaviour of linking instead?
    • Hi isedwards,
      You need to switch from "Embedded in Resx" to "Linked at compile time".  Here is the MSDN page on how to do that.
      Note: It for VS 2010, but the instruction as the same
      Please consider that may need to change how you are access / deploy the images as well.
  • Cannot enable MAT
    4 Posts | Last post November 18, 2015
    • I've downloaded and installed the MAT but I can't enable it. The Button in Tools->Enable Multilingual Toolkit is grey and I can't click it!
      I'm using VS2015 Community Edition
    • The grayed out menu indicates the selected item in the Solution explorer is not supported.  This can happen if the solution is selected as well.  Note: MAT v4.0 is required for Windows 10 Store apps (UWA).  MAT 3.1 support is limited to Windows 8.1.  If your app is a Windows 10 Store app, this would also explain the grayed out menu.  Switching to MAT v4.0 will solve this issue.
    • Hi, I've downloaded version 4.0 beta. Still seeing exact same problem as mentioned. 
      All menu items are grayed out. I only select "Resources.resw" + right click on the item.
    • Found the solution for me: go to tools and select "enable selection" 
  • .xlf default 'open with' association
    3 Posts | Last post November 02, 2015
    • When I double click a .xlf file it is opened with a text editor, I believe it's the XML editor. I can open the Multilingual Editor with a right click of the .xlf and then open with...
      Can I change the default so it opens with the Multilingual Editor rather than the XML editor? Any reason why I wouldn't want to change this association? Was that / should it be the default behavior? That is I don't remember changing it, and I'm thinking I'd rather have the Multilingual Editor open by default.
    • Setup sets the default to use the Editor from inside Visual Studio.  For some reason it can be reset to the XML Editor in Visual Studio.  When this happen, please set the Editor back to the default by selecting "Open With...", then select "Multilingual Editor", and click "Set as Default".
      Thank you,
    • Doh!
      Thanks for pointing out the extremely obvious that I missed. :-)
  • Adding new pages after language setup
    10 Posts | Last post November 02, 2015
    • Maybe I'm missing something obvious, I got caught out by the neutrallanguage attribute issue,
      [assembly: NeutralResourcesLanguageAttribute("en-GB")]
      but now I have my project mostly localised in French, German and Dutch. 
      If I add a new page, go into design view and 
      Tools...Generate Local Resource 
      the aspx.resx file is created, but how do I force the xlif files to be created too?
    • Duhhh- obvious really, 
      Tools...Disable Multilingual App Toolkit.
      Tools...Enable Multilingual App Toolkit.
    • Hmmm... no, the aspx.resx file is empty, even though I have meta:resourceKey tags for all the elements, and likewise the localised files...
    • Using v3.1, you should have a XLF file for every source RESX (aspx.resx) in your project.  When you add a new RESX file, a new language specific XLF and RESX file should be automatically created as well.  However, the *.fr-fr.resx files are only populated when the *.fr-FR.xlf files contain resources that are translated. E.g. Any resource with a status of 'New' is not added to the related *.fr-FR.resx file.  My guess is that this is the issue.
    • Thought maybe I had a problem with the installation, I uninstalled the MAT, rebooted, tried to install MAT preview 4, Visual Studio didn't like that, removed MAT 4, rebooted, installed MAT 3.1 again. Now I'm getting slightly more consistent results.
      Using the "new web forms site" template for common terminology:
      In the "Account" folder:
      Load AddPhoneNumber.aspx
      In design view, Tools...Generate Local Resource
      AddPhoneNumber.aspx.resx is created in App_LocalResources
      Right button click on MyWebsite project, and "Add Translation Languages".
      I chose French, German, Dutch.
      in the App_LocalResources folder I now see
      and the psudo language file
      I can go back into AddPhoneNumber.aspx, add an extra localisable element - say a literal for the head, save, back into design view, Tools...Generate Local Resource and the new literal is added to the AddPhoneNumber.aspx.resx file (sometimes it doesn't first time, try again)
      Save AddPhoneNumber.aspx again (it added / updated meta:resourceKey attributes).
      Double click - the MAT editor loads - no sign of the new resource string.
      Set the status of some strings to Final. The status marker goes green. 
      Save. is still empty. 
      As are
      Try to run the project. 
      NOW the resx files are populated with resource strings, of whatever status, Doesnt have to be Final.
      Also, the build action added the new literal to the xlf files, and I could translate them.
    • (finishing this post)
      Double click Register.aspx or create a new page
      in design view, Tools...Generate Local Resource
      in App_LocalResources, we see 
      Register.aspx.resx - Double click to view - it contains no resource strings
      Tools...Generate Local Resource again and the resource strings are added (visual studio says Register.aspx.resx has been modified outside the editor)
      Build - it builds successfully, but no sign of etc.
      So in summary, I think the confusion is that some actions happen in the editing environment, other things happen when you Build, and for new pages, you have to disable, renable the MAT
      THEN we see
    • By the way, for tidiness, I use Mads Christiansen's Nest utility, to put the localised resx, xlf files "under" the main resx. It works nicely.
      For my next trick, I want to use a DB Resource provider, like Michel Leroux Bustamante's example circa 2006 (or Smith-Ferrir's better one - from ".Net internationalisation") So I need to find a way to use the xlf editor with that - if possible. I cant see how yet.
    • @LegacyOfHerot,  I'll be sure to recap the results here, but can you please email me at  This will help keep this thread readable. :-)
    • (I am AKA legacyOfHerot) Here at work, as a proof of concept, I have a fairly simple web forms application, I have used the MAT to localise the pages, and all works fine in my dev environment, I see the translations in French (fr), German (de), Norwegian (nb-NO) and Italian (it), however when I use the web deploy publish option to push it into an Azure web site, it only publishes the code assembly, and so the language selection does not work. I put a debug string on the master page, and I can see the Thread.CurrentThread.CurrentUICulture – it is correct, according to the user selection
      <%: System.Threading.Thread.CurrentThread.CurrentUICulture %>
       (I removed the Culture=”auto” attributes from the pages).
      I tried setting some post build events, but they happen after the build, before the publish.
      xcopy "$(ProjectDir)obj\release\fr\*.dll" $(OutDir)fr\*.dll /y
      xcopy "$(ProjectDir)obj\release\de\*.dll" $(OutDir)de\*.dll /y
      xcopy "$(ProjectDir)obj\release\it\*.dll" $(OutDir)it\*.dll /y
      I tried publishing to a local site, and I can see that none of the satellite assemblies are published.
      I don't think this is a fault with the MAT, however I think you need to include this option in your test suite.
    • I found this behavior not only on adding new pages, but when adding new resources to existing pages via new textblocks etc...
      Once I just did Tools->disable, Tools->enable the .resw were generated. That wasn't intuitive to me.
  • 'MultilingualApp' could not be found
    2 Posts | Last post October 21, 2015
    • Hello everyone. 
      I try to use MAT for a WPF application. I am using VS community 2013 Update 4 with MAT 4.
      I have read this article:
      and  made the steps 1 to 8.
      When I build, my problems are:
      Error    1    The type or namespace name 'MultilingualApp' could not be found (are you missing a using directive or an assembly reference?)    C:\ELA\DevC#\test\test\obj\Debug\MainWindow.g.cs
      Error    2    The name "Resources" does not exist in the namespace "clr-namespace:MultilingualApp.Properties".    C:\ELA\DevC#\test\test\MainWindow.xaml    7    17    test
      Please, Is anyone know what's wrong ? I 'm blocked, and I have no idea to continue...
    • EddyAtPessac,
      I would verify that the WPF app works without MAT 3.1 enabled first.  The error are indicating an project issue.  Once the app is confirmed working without MAT enabled, then proceed to enable MAT and add languages.
      Additionally, I would high recommend stating with MAT v4.0 (Beta).  While it is in Beta, it is a much better option.  There are several advantages, but the strongest reason is that v4.0 changed the project integration model away from a tightly coupled dependency on compilers, which can cause issues with signing as well as building with a second dev box without MAT installed.  Stating new projects with v4.0 will also avoid the require project upgrade when moving form v3.1 to v4.0.  
  • MAT editor messes line endings
    2 Posts | Last post July 31, 2015
    • It seems like the MAT editor utility converts line endings in strings all to LF (\n) instead of keeping CR LF (\r \n).
      However, it only seems to affect the editor. The translation process itself does not change line endings - but it changes the endings back to the original CR LF.
      This is really annoying with source code control as it causes unneccessary change.
      Am I doing something wrong? 
      Btw. we are still using the 3.1 toolkit.
      For me this seems like a bug in the editor component.
      Any hints?
    • Hi Florian,
      This is an bug in the editor.  We are looking into what is cause this.
  • Satellite assemblies for web apps
    4 Posts | Last post July 21, 2015
    • Hi folks, with Visual Studio 2015 about to launch tomorrow, I thought I'd review some of my outstanding questions and issues. 
      The MAT seems to have stalled - is it going to be part of VS2015, a separate download or something else? 
      I have been trying to find a resolution for how to include the satellite assemblies in a web deployment package, I'm not the only one:
      Any kind of update would be good.
      (I'd have posted this on the V4.0 tech preview page, but Q&A is disabled...?)
    • Thank you for your post.
      MAT is alive a well. Version 4.0 is the focus of all active development as it solves several issue and unnecessary dependencies that are inherent to v3.1’s overall design.  v4.0 is a redesign and we are looking to move from TP to Beta very soon.  We are committed to and do use MAT v4.0 in our daily developer environments.
      The link you published refers to Visual Studio 2010.  MAT does not support VS 2010 so it can’t be related to the reported issue.  I will look into the issue on VS 2013 (and now VS 2015) both with and without MAT 4.0 to ensure it is no contributing to the reported issue.  I will report back with my results.  If you have a sample to provide, that will speed up the investigation.
      Thank you for letting me know that the Q&A section was disabled on v4.0 gallery.  I have enabled the Q&A discussion tab.
      As always, you can post issue on our user voice site as well @ or email
    • I looked in the issue of web package deployment today using v4.0 TP. 
      I am able to deploy my site to Azure without issue ( - supports German and Arabic (I did not fix the RTL issue as I was just testing language support, not layout support)
      When I attempted to deploy to the web package, the Satellite assemblies were not included until, per, I enabled signing.  Once signing was enabled, the package contained the desired Satellite assembles.
      Note: v3.1 has a known issue with signing files. The workaround is to use v4.0 as it does not have the signing issue.
    • Ahah thanks Cameron. I'll try that. Pulling down VS2015 as I type, so I suspect today will be rather busy...
  • Error: Argument must be between 0 and 3.
    5 Posts | Last post February 11, 2015
    • I tried to use the Toolkit on my existing WP8.0 app (updated from 7.1 some time ago). I set up the AppResources.rex like it's being done when creating a new WP8.0 app and it works so far.
      Now if I want to add a new Translation through the toolkit I get following error:
      Argument must be between 0 and 3.
      Parameter name: fieldCount
      any idea how to fix that?
    • Are you getting a "Generate latest XLIFF build task failed." message before the "Argument must be between 0 and 3." message?  I am able get the same error message by removing the last digit from the AssemblyVersion number
      [assembly: AssemblyVersion("")]
      [assembly: AssemblyVersion("1.0.0")]
      However, I'm not sure this is the same error as it does added the language and appears for work in spite of the message.
      1>  Generate latest XLIFF build task failed. 
      1>  Argument must be between 0 and 3.
      Parameter name: fieldCount 
      1> was added to the project. 
      Note: I'm running MAT 3.1.1250.0.  
      To avoid a long (and delayed) thread here, please email  I'll update this Q&A when we resolve the issue for the benefit of other as well.
    • Actually, you were right. I had removed the last .0 from the AssemblyVersion when I started developing the app (back on WP7.1) and never had any issues, thats why I never thought of it. Thank you so much, everything seems to work great now!
      (I did not get the "Generate latest XLIFF build task failed." message though.)
    • I ran into the same problem, with your hint I was able to fix it. Would be great if this would be fixed in MAT though, it cost me quite some time to find out why it didn't work. Thanks
    • Are you running build 3.1.1250.0?  If so, I'll need to look again as this included the fix for this issue.
  • Fails if xlf files are readonly
    5 Posts | Last post February 06, 2015
    • Moved from review:
      A good idea and seems to work well, but you get the following errors during build if any of your xlf files are readonly/source controlled:
      1>C:\Program Files (x86)\MSBuild\Microsoft\Multilingual App Toolkit\v3.0\Microsoft.Multilingual.ResxResources.targets(44,5): error : One or more errors occurred.
      1>C:\Program Files (x86)\MSBuild\Microsoft\Multilingual App Toolkit\v3.0\Microsoft.Multilingual.ResxResources.targets(44,5): error : Update XLIFF build failed.
      1>C:\Program Files (x86)\MSBuild\Microsoft\Multilingual App Toolkit\v3.0\Microsoft.Multilingual.ResxResources.targets(44,5): error : Multilingual App Toolkit build completed with errors.
      This is not a problem when I'm actually making a change that requires the xlf files to be regenerated, but I don't want to be forced to check out my xlf files every single time I make any sort of change to my app.
      Can we do anything about this?
      UPDATE: Definitely happens all the time on my local machine. Check out the files from perforce and then it builds without error. No diffs to the files after the build, so they are up to date.
    • Facing the same problem! any solution?
    • Facing the same problem using TFS! any solution?
    • Same happens for me. This is really annoying.
    • I'll look into this today. These is a bug that forces the files to be checked out, but this usually happen automatically.  which are you using? VSO, or Github, etc.?  Feel free to email multilingual at Microsoft dot com as well.
1 - 10 of 16 Items