那么鉴于描述文本是常数,不能你写相应的文本翻译按键到你的数据库,然后获取匹配(本地化)价值从您的翻译文件?如果您无法更改数据库,也许只需使用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