好吧,鉴于描述文本是常量,您不能将相应文本的翻译键写入数据库,然后从翻译文件中获取匹配(本地化)值吗?如果您无法更改数据库,也许只需使用数据库中的现有值作为翻译文件中的键并映射到相应的翻译。您可能必须摆脱空格等,但这应该没什么大不了的。
在您的数据库中:
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);
你怎么看?
干杯,亚历克斯
更新:使用标准技术在视图中显示翻译后的字符串很简单。我假设您正在使用模型对象将数据提供给您的视图。然后,您可以例如将现成的翻译写入您的模型并在视图中使用它:
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>
麦凯?