Orchardcms 如何在Orchard CMS中本地化自定义模块内容?
我在我的Orchard网站上使用MVC3和EFW制作了一些模块。我还使用Orchard Cms制作了一些内容,就像我使用Cms制作了一些静态页面一样。但我的模块有动态数据,用户可以使用站点管理区添加和更改这些数据。但我的问题是,我必须本地化我的应用程序,但如何?我启用了区域性选择器模块,添加了我所需语言的po文件,并添加了我网站每项内容的翻译,但当我更改区域性时,只有我的CMS内容更改。我使用MVC 3和EntityFrameWork创建的自定义模块没有任何网站区域性的影响。如何本地化我的自定义模块内容Orchardcms 如何在Orchard CMS中本地化自定义模块内容?,orchardcms,orchardcms-1.6,orchardcms-1.7,Orchardcms,Orchardcms 1.6,Orchardcms 1.7,我在我的Orchard网站上使用MVC3和EFW制作了一些模块。我还使用Orchard Cms制作了一些内容,就像我使用Cms制作了一些静态页面一样。但我的模块有动态数据,用户可以使用站点管理区添加和更改这些数据。但我的问题是,我必须本地化我的应用程序,但如何?我启用了区域性选择器模块,添加了我所需语言的po文件,并添加了我网站每项内容的翻译,但当我更改区域性时,只有我的CMS内容更改。我使用MVC 3和EntityFrameWork创建的自定义模块没有任何网站区域性的影响。如何本地化我的自定义
public class ContactUsController : Controller
{
DbEntities context = new DbEntities();
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult SaveContacts(FormCollection frmData) {
try
{
using (new TransactionScope(TransactionScopeOption.Suppress))
{
if (ModelState.IsValid == true)
{
Imidus_ContactUs ob = new Imidus_ContactUs();
ob.UserName = frmData["UserName"];
ob.Subject = frmData["Subject"];
ob.Message = frmData["Message"];
ob.Email = frmData["Email"];
context.Imidus_ContactUs.Add(ob);
context.SaveChanges();
return RedirectToAction("Success", "ContactUs");
}
}
}
catch (Exception ex) {
throw ex;
}
return View("Index");
}
public ActionResult Success()
{
return View();
}
}
<fieldset class="contact-form">
@using (Html.BeginForm("SaveContacts", "ContactUs", FormMethod.Post, new { id = "frmContact" }))
{
@Html.ValidationSummary(true)
<span class="errormsg"></span>
<label for="cname">
Name</label>
<div class="editor-field">
<input id="cname" name="UserName" minlength="2" type="text" required />
</div>
<div class="editor-label">
<label for="cemail">
E-Mail</label>
</div>
<div class="editor-field">
<input id="cemail" type="email" name="Email" required />
@* @Html.EditorFor(model => model.Email, new { Class = "input-xlarge" })
*@
</div>
<div class="editor-label">
<label for="csubject">
Subject</label>
</div>
<div class="editor-field">
<input id="csubject" name="Subject" minlength="2" type="text" required />
@* @Html.EditorFor(model => model.Subject, new { Class = "input-xlarge" })
@Html.ValidationMessageFor(model => model.Subject)*@
</div>
<div class="editor-label">
<label for="cMessage">
Message</label>
</div>
<div class="editor-field">
<input id="cMessage" name="Message" minlength="15" type="text" required />
@* @Html.TextAreaFor(model => model.Message)
@Html.ValidationMessageFor(model => model.Message)*@
</div>
<p>
<input type="submit" value="Submit" class="btn btn-primary block my-btn" />
</p>
}
</fieldset>
公共类联系人控制器:控制器
{
DbEntities上下文=新的DbEntities();
[HttpGet]
公共行动结果索引()
{
返回视图();
}
[HttpPost]
公共操作结果保存联系人(FormCollection frmData){
尝试
{
使用(新TransactionScope(TransactionScopeOption.Suppress))
{
if(ModelState.IsValid==true)
{
Imidus_ContactUs ob=新Imidus_ContactUs();
ob.UserName=frmData[“UserName”];
ob.Subject=frmData[“Subject”];
ob.Message=frmData[“Message”];
ob.Email=frmData[“Email”];
context.Imidus_ContactUs.Add(ob);
SaveChanges();
返回重定向操作(“成功”、“联系我们”);
}
}
}
捕获(例外情况除外){
掷骰子;
}
返回视图(“索引”);
}
公共行动结果成功()
{
返回视图();
}
}
@使用(Html.BeginForm(“SaveContacts”、“ContactUs”、FormMethod.Post、new{id=“frmContact”}))
{
@Html.ValidationSummary(true)
名称
电子邮件
@*@Html.EditorFor(model=>model.Email,新建{Class=“input xlarge”})
*@
主题
@*@Html.EditorFor(model=>model.Subject,新{Class=“input xlarge”})
@Html.ValidationMessageFor(model=>model.Subject)*@
消息
@*@Html.TextAreaFor(model=>model.Message)
@Html.ValidationMessageFor(model=>model.Message)*@
}
你能举例说明你的模块是如何提供内容的,以及它是如何呈现的吗?如果你交叉发布,请提供一个链接:你可能没有将po文件放在正确的位置,或者它们的格式无效。我已经发布了我的代码,你可以检查一下,以后我也会提供交叉发布的链接