This is a free utility that can synchronize your .Net Resx (localization resources) files. Those files are part of Visual Studio project and they hold language specific literals usually used by UI of your application. If you have to maintain two sets of those files (for example one at production and one at development environment or at people who are doing translation) this tool can help you sync items.


This tool synchronizes .resx files with identical file names. In other words, it synchronizes literals for same language that went out of sync due to work of different people who did translation, review and fixing of literals (translators, developers,...). To synchronize .resx files across different languages (for example MyMessages.US.resx and MyMessages.ES.resx files) use another tool that I wrote - Resx Preparer.

How to use it?

  1. Copy resx folder from production to your local disk
  2. Hit first button to set Folder 1 to that folder with resx-es (from production)
  3. Hit second button bellow to set Folder 2 to your folder with another set of resx-ex (development)
      (Note: vice versa for folders 1 and 2 is allowed)
  4. Hit third button bellow to set backup folder
  5. Hit Synchronize
  6. Check log output. if you see 'HasErrors:true' or 'Has conflicts:true':
      - find them in log,
      - restore from last backup using button below
      - fix errored and conflicted resx items manually
      - hit Synchronize again
      - if no conflicts nor errors you can upload files back to production

How should I add new resx item?!

Just add it as you normaly would. Timestamps will be added on next sync automatically.

How should I edit resx item?!

If you want to edit existing resx item directly just edit it normaly and delete timestamps from comment.   

How should I delete resx item?!

Just delete it as you normaly would. Action will be propagated to other side on next sync automatically.       

How it works?

During synchronization this tool manages timestamps in comments for each item/literal. Main idea is that lastly changed item should always prevail. Processing is done by rules from resolution matrix listed at the end of ReadMe.txt file. You don't need to analyze those rules but they are useful for debugging.

Whole concept can be extended if you implement central online resx editor at your website at production so that your translators edit literals directly on live site after which you just synchronize developers using this tool.  I had this scenario. It is recommended that editor automatically fills timestamps in literal comment upon each edit.

License

This product is free. It is under MIT license.

GitHub

You can download source code from my GitHub page. Feel free to contribute there by committing your improvements for this project.

Download

Other Projects

See my other projects.

Comments

Name
E-Mail@
(optional; never shown publicly; for notifications from this thread)
Comment
Anti Bot Image