如何使多语言网站和值从数据库
答
如果我得到它的权利,你要在不同的表中的每个值填充你的资源文件从DataBase
动态。你可以做到这一点通过在项目中创建.resx
文件,下一步将使用其内容下面的代码是添加/更新:
public static void AddOrUpdateResource(string key, string value)
{
var path = @"YourResourceFilePath.resx";
var resx = new List<DictionaryEntry>();
using (var reader = new ResXResourceReader(path))
{
resx = reader.Cast<DictionaryEntry>().ToList();
var existingResource = resx.Where(r => r.Key.ToString() == key).FirstOrDefault();
if (existingResource.Key == null && existingResource.Value == null) // NEW!
{
resx.Add(new DictionaryEntry() { Key = key, Value = value });
}
else // MODIFIED RESOURCE!
{
var modifiedResx = new DictionaryEntry() { Key = existingResource.Key, Value = value };
resx.Remove(existingResource); // REMOVING RESOURCE!
resx.Add(modifiedResx); // AND THEN ADDING RESOURCE!
}
}
using (var writer = new ResXResourceWriter(path))
{
resx.ForEach(r =>
{
// Again Adding all resource to generate with final items
writer.AddResource(r.Key.ToString(), r.Value.ToString());
});
writer.Generate();
}
}
然后你就可以调用此方法,并从传递键值你的DataBase
。
我是从数据库中完成的,它需要一些时间,但它的大量数据 – khaled