views:

321

answers:

3

I'm developing a multilingual web site and the localization is done mostly by using .resx files. But now I need to enable users with some permissions to edit resource files online from the web site. Does anyone know of any existing component to help achieve this?

A: 

I think you should consider this step once again. First of all resx files are compiled instead of used directly so any changes require page recompilation*. The other thing is that it might be a serious security threat - you allow users to modify files in your application folder.

*- http://msdn.microsoft.com/en-us/library/ekyft91f%28VS.80%29.aspx

kubal5003
So I'm guessing there's no "clean" way of accessing the .resx files other than to just open them "old-school" style, messing around with the XML, and writing them to the file system again. And then the app will figure out they have been changed and compile them at runtime.About the security risk, the .resx files only hold translation strings, and the users changing them would need the appropriate permissions. That left me wondering, could some "injection attack" be made by inserting some code into a .resx file?
Farinha
+3  A: 

Best thing you can do is move to a DB driven approach.

Rick Strahl has this excellent article: Creating a Data Driven ASP.NET Localization Resource Provider and Editor with free source code!

It even has a Import feature so you don't have to re-translate the work done so far.

Edit: if you insist on editing the XML files, this article may help: Updatable ASP.NET ResX Resource Provider – yes, it’s possible!

Eduardo Molteni
Those look like great solutions. Thanks!
Farinha
A: 

I just found this Resource Blender application that's similar to what I was looking for:

ResourceBlender is an open-source translation and internationalization application which offers an easy way to manage localized resources for inclusion with different applications. Available as an ASP.NET web application and a WPF desktop application, it makes localizing applications a breeze. ResourceBlender generates localized resources in different formats from a central database for inclusion with different applications.

Key features offered include:

  • Export resources to .NET .resx files, Java .properties, GNU .po / gettext, XHTML entities and more.
  • Import/Export translation data as XML spreadsheets to make editing more convenient.
  • Use one translations database to keep localizations in-sync.
  • Supports MySQL, SQL Server and SQLite, so no external database is required.
  • Migrate from existing .resx or .properties files with an import wizard.
  • Easy for both translators and project owners/admins.
  • Free and open source.
  • Automatic machine translation with Google Translate.
  • Custom templates for resource formats.
Farinha