那麼鑑於描述文本是常數,不能你寫相應的文本翻譯按鍵到你的數據庫,然後獲取匹配(本地化)價值從您的翻譯文件?如果您無法更改數據庫,也許只需使用DB中的現有值作爲翻譯文件中的鍵並映射到相應的翻譯。你可能不得不擺脫空間等,但這不應該是一個大問題。
在你的DB:
Human Resources
Health Care
...
翻譯文件,例如:
英語:
Human_Resources | Human Resources
Health_Care | Health Care
...
法國:
Human_Resources | Service du personnel
...
檢索翻譯值(僞):
var translationKey = descriptionValueFromDB.Replace(' ', '_');
var translatedDescription = ResourceManager.GetString(translationKey);
你覺得呢?
乾杯,亞歷
UPDATE: 顯示的視圖中的翻譯字符串簡單的使用標準技術。我假設您正在使用模型對象將數據提供給您的視圖。然後,你可以,例如寫現成的翻譯到您的模型和視圖中使用它:
public class FooModel
{
public string Description {get; set;}
public string TranslatedDescription
{
get { return Description.ToTranslationKey().Translate(); }
}
}
public static class TranslationExtensions
{
public static string ToTranslationKey(this string term)
{
if (string.IsNullOrEmpty(term))
return term;
return term.Replace(' ', '_');
}
public static string Translate(this string term)
{
if (string.IsNullOrEmpty(term))
return term;
return ResourceManager.GetString(term);
}
}
<div id="fooDescription">@Model.TranslatedDescription</div>
當然,你也可以在翻譯部分移動到視圖,如果你喜歡這更好:
<div id="fooDescription">@Model.Description.ToTranslationKey().Translate()</div>
Mkay?
我喜歡你的想法亞歷克斯,但我不知道如何用剃刀處理它。我能想到的唯一方法是替換控制器中的對象屬性,我認爲這不是一種很好的方法,因爲我會覆蓋對象。 你能幫我從視圖中怎麼做嗎?謝謝 – 2013-03-16 10:24:19
我爲可能的方法添加了示例代碼。 – 2013-03-16 13:35:06