2009-11-24 42 views
6

我正在開發一個多語言網站,本地化主要是通過使用.resx文件完成的。但現在我需要啓用具有一定權限的用戶從網站在線編輯資源文件。 有誰知道任何現有的組件來幫助實現這一目標?ASP.NET組件編輯.resx文件

回答

6

最好的,你可以做的事情是移動到一個數據庫驅動的方法。

裏克施特拉爾有這樣優秀的文章:Creating a Data Driven ASP.NET Localization Resource Provider and Editor免費的源代碼

它甚至還有一個導入功能,所以你不必重新翻譯到目前爲止完成的工作。

編輯:如果你堅持編輯XML文件,這篇文章可以幫助:Updatable ASP.NET ResX Resource Provider – yes, it’s possible!

+0

那些看起來很棒的解決方案。謝謝! – Farinha 2009-11-25 15:10:38

0

我認爲你應該再次考慮這一步驟。首先編譯resx文件而不是直接使用,所以任何更改都需要重新編譯頁面*。另一件事是它可能是一個嚴重的安全威脅 - 您允許用戶修改應用程序文件夾中的文件。

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

+0

所以我猜有訪問多隻打開它們「老派」的風格,與XML亂搞其他.resx文件的不「乾淨」的方式,並把它們寫入文件系統再次。然後,應用程序會發現它們已被更改並在運行時進行編譯。 關於安全風險,.resx文件僅包含轉換字符串,而更改它們的用戶需要適當的權限。這讓我想知道,是否可以通過在.resx文件中插入一些代碼來實現一些「注入攻擊」? – Farinha 2009-11-24 12:21:01

0

我剛剛發現這個Resource Blender應用,它類似於什麼我一直在尋找:

ResourceBlender是一個開源 翻譯和國際化 應用程序,它提供了一個簡單的方法 來管理本地化的資源爲 納入不同的應用程序。 作爲一個ASP.NET web 應用程序和一個WPF桌面 應用程序,它使本地化 應用程序輕而易舉。 ResourceBlender 以 不同格式從中央 數據庫生成本地化資源,以包含在不同的 應用程序中。

提供的主要功能包括:

  • 出口資源.NET的.resx文件,Java的.properties,GNU的.po/gettext的,XHTML實體和更多。
  • 將翻譯數據導入/導出爲XML電子表格,使編輯更加方便。
  • 使用一個翻譯數據庫來保持本地化處於同步狀態。
  • 支持MySQL,SQL Server和SQLite,因此不需要外部數據庫。
  • 使用導入嚮導從現有.resx或.properties文件遷移。
  • 易於翻譯和項目所有者/管理員。
  • 自由和開放源代碼。
  • 通過谷歌翻譯自動翻譯機器。
  • 資源格式的自定義模板。