2013-03-08 70 views
7

我正在使用最初創建的MVC 4應用程序,可能需要語言本地化,因此在整個項目中大量使用.resx文件和相應的引用嵌入。事實證明,這款應用程序將只會被英語觀衆使用,事實上並沒有其他語言被加載。我們現在擁有的是每次我們需要在網頁上放置文本並增加不一致性時的開銷,因爲英語語言被硬編碼到不能直接訪問數據庫中的.js文件和引用數據等資源文件的地方。語言本地化是否可以自動從.resx文件中反向設計?

缺少大量的複製和粘貼,是否有任何自動的方式從資源文件中提取英語語言值並在視圖中替換它們的引用?在一個完美的世界中會有一個工具來做到這一點,當然這是概念腳本,這樣的事情是否已經存在?

回答

1

你必須編寫腳本。我使用O2 Platform AST操作Mono.Cecil和mono Cecil API完成了類似的工作。

如果你給我用一個小的項目,你可以需要(一個RESX文件和MVC視圖),我可以告訴你一個代碼片斷例如

1

我還沒有看到任何會照顧這。我的第一個想法是因爲可以在大多數「開箱即用」解決方案中提出的本地化問題。

這可能牽強了,但給它一個鏡頭。你可以編寫一個C#應用程序來加載包含資源文件的程序集,然後遍歷項目中的每個文件並用值替換資源鍵?

正如你所說,這是可能的腳本,這似乎是在我腦海中完成任務的最簡單但最粗糙的方式。根據您所談論的資源數量,顯然複製/粘貼可能更容易,更安全。

0

附屬程序集。如果您將所有應用程序資源放置在項目中,則創建您要實施的非默認語言。例如fr_ca.ErrorMsg | en_gb.ErrorMsg和en_Us.ErrorMsg。可以在主Thread.CultureInfo中指定默認語言如果使用en_us,則會爲所有需要的條目填充en_us文件,並且只有在缺省資源 - > en_us中不存在其他資源時纔會加載其他資源。

+0

問題是,是否有可能_remove_本地化,而不是添加它! – 2013-03-08 04:49:40

+0

我提前道歉。刪除本地化,如果您有現有的本地化,請使用默認語言資源並刪除其餘部分。或從您的應用程序中刪除和語言資源,並從那裏重建:( – 2013-03-08 04:54:49

相關問題