mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Migrating Localization
--HG-- branch : theming
This commit is contained in:
@@ -71,7 +71,7 @@ namespace Orchard.Core.Localization.Controllers {
|
||||
};
|
||||
Services.TransactionManager.Cancel();
|
||||
|
||||
return View(Shape.Model(model));
|
||||
return View(model);
|
||||
}
|
||||
|
||||
[HttpPost, ActionName("Translate")]
|
||||
@@ -111,7 +111,7 @@ namespace Orchard.Core.Localization.Controllers {
|
||||
model.SiteCultures = _cultureManager.ListCultures().Where(s => s != _localizationService.GetContentCulture(contentItem) && s != _cultureManager.GetSiteCulture());
|
||||
contentItem.As<LocalizationPart>().Culture.Culture = null;
|
||||
model.Content = _contentManager.BuildEditorModel(contentItem);
|
||||
return View(Shape.Model(model));
|
||||
return View(model);
|
||||
}
|
||||
|
||||
Services.Notifier.Information(T("Created content item translation."));
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<AddLocalizationViewModel>" %>
|
||||
<%@ Import Namespace="Orchard.Core.Localization.ViewModels" %><%
|
||||
Model.Content.Zones.AddRenderPartial("primary:before", "CultureSelection", Model); %>
|
||||
<h1><%:Html.TitleForPage(T("Translate Content").ToString()) %></h1>
|
||||
<% using (Html.BeginFormAntiForgeryPost()) { %>
|
||||
<%:Html.ValidationSummary() %>
|
||||
<%:Html.EditorForItem(m=>m.Content) %>
|
||||
<%} %>
|
||||
<% using (this.Capture("end-of-page-scripts")) { %>
|
||||
@model AddLocalizationViewModel
|
||||
@using Orchard.Core.Localization.ViewModels
|
||||
Model.Content.Zones.AddRenderPartial("primary:before", "CultureSelection", Model);
|
||||
<h1>@Html.TitleForPage(T("Translate Content").ToString())</h1>
|
||||
@using (Html.BeginFormAntiForgeryPost()) {
|
||||
@Html.ValidationSummary()
|
||||
@Html.EditorForItem(m=>m.Content)
|
||||
}
|
||||
@using (Html.RenderFootContent() ) {
|
||||
<script type="text/javascript">
|
||||
(function ($) {
|
||||
// grab the slug input
|
||||
@@ -25,5 +25,6 @@ Model.Content.Zones.AddRenderPartial("primary:before", "CultureSelection", Model
|
||||
}
|
||||
});
|
||||
}
|
||||
})(jQuery);</script>
|
||||
<% } %>
|
||||
})(jQuery);
|
||||
</script>
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<Orchard.Core.Localization.ViewModels.AddLocalizationViewModel>" %>
|
||||
<fieldset class="localization culture-selection">
|
||||
<label for="SelectedCulture"><%:T("Content Localization") %></label><%
|
||||
var siteCultures = Model.SiteCultures.ToList();
|
||||
siteCultures.Insert(0, ""); %>
|
||||
<div><%=T("This is the <em>{0}</em> variation of {1}.",
|
||||
Html.DropDownList("SelectedCulture", new SelectList(siteCultures, Model.SelectedCulture)),
|
||||
Html.ItemEditLink(Model.Content.Item)) %></div>
|
||||
</fieldset>
|
||||
@@ -0,0 +1,13 @@
|
||||
@model Orchard.Core.Localization.ViewModels.AddLocalizationViewModel
|
||||
<fieldset class="localization culture-selection">
|
||||
<label for="SelectedCulture">@T("Content Localization")</label>
|
||||
@{
|
||||
var siteCultures = Model.SiteCultures.ToList();
|
||||
siteCultures.Insert(0, "");
|
||||
}
|
||||
<div>
|
||||
@T("This is the <em>{0}</em> variation of {1}.",
|
||||
Html.DropDownList("SelectedCulture", new SelectList(siteCultures, Model.SelectedCulture)),
|
||||
Html.ItemEditLink(Model.Content.Item))
|
||||
</div>
|
||||
</fieldset>
|
||||
@@ -1 +0,0 @@
|
||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<Orchard.Core.Localization.ViewModels.ContentLocalizationsViewModel>" %>
|
||||
@@ -0,0 +1 @@
|
||||
@model Orchard.Core.Localization.ViewModels.ContentLocalizationsViewModel
|
||||
@@ -1,10 +0,0 @@
|
||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<Orchard.Core.Localization.ViewModels.ContentLocalizationsViewModel>" %>
|
||||
<%
|
||||
Html.RegisterStyle("admin.css"); %>
|
||||
<div class="content-localization"><%
|
||||
if (Model.Localizations.Count() > 0) { %>
|
||||
<%--//todo: need this info in the view model--%>
|
||||
<div class="content-localizations"><h4><%:T("Translations:") %></h4><%:Html.UnorderedList(Model.Localizations, (c, i) => Html.ItemEditLink(c.Culture.Culture, c), "localizations") %></div><%
|
||||
} %>
|
||||
<div class="add-localization"><%:Html.ActionLink(T("+ New translation").Text, "translate", "admin", new { area = "Localization", id = Model.MasterId }, null)%></div>
|
||||
</div>
|
||||
@@ -0,0 +1,9 @@
|
||||
@model Orchard.Core.Localization.ViewModels.ContentLocalizationsViewModel
|
||||
@Html.RegisterStyle("admin.css");
|
||||
<div class="content-localization">
|
||||
@if (Model.Localizations.Count() > 0) {
|
||||
//todo: need this info in the view model
|
||||
<div class="content-localizations"><h4>@T("Translations:")</h4>@Html.UnorderedList(Model.Localizations, (c, i) => Html.ItemEditLink(c.Culture.Culture, c), "localizations")</div>
|
||||
}
|
||||
<div class="add-localization">@Html.ActionLink(T("+ New translation").Text, "translate", "admin", new { area = "Localization", id = Model.MasterId }, null)</div>
|
||||
</div>
|
||||
@@ -1,11 +0,0 @@
|
||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<Orchard.Core.Localization.ViewModels.ContentLocalizationsViewModel>" %>
|
||||
<%
|
||||
Html.RegisterStyle("base.css");
|
||||
if (Model.Localizations.Count() > 0) { %>
|
||||
<div class="content-localization">
|
||||
<div class="content-localizations">
|
||||
<h4><%:T("Translations:") %></h4>
|
||||
<%:Html.UnorderedList(Model.Localizations, (c, i) => Html.ItemDisplayLink(c.Culture.Culture, c), "localizations") %>
|
||||
</div>
|
||||
</div><%
|
||||
} %>
|
||||
@@ -0,0 +1,10 @@
|
||||
@model Orchard.Core.Localization.ViewModels.ContentLocalizationsViewModel
|
||||
@Html.RegisterStyle("base.css");
|
||||
@if (Model.Localizations.Count() > 0) {
|
||||
<div class="content-localization">
|
||||
<div class="content-localizations">
|
||||
<h4>@T("Translations:")</h4>
|
||||
@Html.UnorderedList(Model.Localizations, (c, i) => Html.ItemDisplayLink(c.Culture.Culture, c), "localizations")
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl<Orchard.Core.Localization.ViewModels.EditLocalizationViewModel>" %>
|
||||
<%
|
||||
Html.RegisterStyle("admin.css");
|
||||
if (Model.ContentItem.ContentItem.Id > 0 && Model.SelectedCulture != null && Model.ContentLocalizations.Localizations.Count() > 0) {
|
||||
Html.RegisterStyle("base.css");%>
|
||||
<fieldset class="localization culture-selection">
|
||||
<fieldset class="culture-selected">
|
||||
<label for="SelectedCulture"><%:T("Content Localization")%></label>
|
||||
<div><%=T("This is the <em>{0}</em> variation of {1}.",
|
||||
Html.Encode(Model.SelectedCulture),
|
||||
Html.ItemEditLink(Model.MasterContentItem ?? Model.ContentItem))%></div>
|
||||
<%:Html.Hidden("SelectedCulture", Model.SelectedCulture)%>
|
||||
</fieldset><%
|
||||
if (Model.ContentLocalizations.Localizations.Count() > 0) {%>
|
||||
<dl class="content-localization">
|
||||
<dt><%:T("Other translations:")%></dt>
|
||||
<dd class="content-localizations">
|
||||
<%:Html.UnorderedList(Model.ContentLocalizations.Localizations, (c, i) => Html.ItemEditLink(c.Culture.Culture, c), "localizations")%>
|
||||
</dd>
|
||||
</dl><%
|
||||
}%>
|
||||
</fieldset><%
|
||||
} %>
|
||||
@@ -0,0 +1,21 @@
|
||||
@model Orchard.Core.Localization.ViewModels.EditLocalizationViewModel
|
||||
@Html.RegisterStyle("admin.css");
|
||||
@if (Model.ContentItem.ContentItem.Id > 0 && Model.SelectedCulture != null && Model.ContentLocalizations.Localizations.Count() > 0) {
|
||||
Html.RegisterStyle("base.css");
|
||||
<fieldset class="localization culture-selection">
|
||||
<fieldset class="culture-selected">
|
||||
<label for="SelectedCulture">@T("Content Localization")</label>
|
||||
<div>@T("This is the <em>{0}</em> variation of {1}.",
|
||||
Html.Encode(Model.SelectedCulture),
|
||||
Html.ItemEditLink(Model.MasterContentItem ?? Model.ContentItem))</div>
|
||||
@Html.Hidden("SelectedCulture", Model.SelectedCulture)
|
||||
</fieldset>
|
||||
@if (Model.ContentLocalizations.Localizations.Count() > 0) {
|
||||
<dl class="content-localization">
|
||||
<dt>@T("Other translations:")</dt>
|
||||
<dd class="content-localizations">
|
||||
@Html.UnorderedList(Model.ContentLocalizations.Localizations, (c, i) => Html.ItemEditLink(c.Culture.Culture, c), "localizations")
|
||||
</dd>
|
||||
</dl>
|
||||
}
|
||||
</fieldset>}
|
||||
@@ -249,11 +249,11 @@
|
||||
<None Include="Common\Views\DisplayTemplates\Parts\Common.Metadata.SummaryAdmin.cshtml" />
|
||||
<Content Include="ContentsLocation\Module.txt" />
|
||||
<Content Include="ContentsLocation\Styles\admin.css" />
|
||||
<Content Include="ContentsLocation\Views\DefinitionTemplates\LocationSettings.ascx" />
|
||||
<None Include="ContentsLocation\Views\DefinitionTemplates\LocationSettings.cshtml" />
|
||||
<None Include="Contents\Views\Admin\Create.cshtml" />
|
||||
<None Include="Contents\Views\Admin\Edit.cshtml" />
|
||||
<None Include="Contents\Views\Admin\List.cshtml" />
|
||||
<Content Include="Localization\Views\EditorTemplates\Parts\Localization.Translation.ascx" />
|
||||
<None Include="Localization\Views\EditorTemplates\Parts\Localization.Translation.cshtml" />
|
||||
<Content Include="Messaging\Module.txt" />
|
||||
<Content Include="Messaging\Views\EditorTemplates\Parts\Messaging.MessageSettings.ascx" />
|
||||
<Content Include="PublishLater\Content\Admin\images\draft.gif" />
|
||||
@@ -270,8 +270,8 @@
|
||||
<Content Include="Contents\Views\Admin\CreatableTypeList.ascx" />
|
||||
<Content Include="Localization\Styles\admin.css" />
|
||||
<Content Include="Localization\Styles\base.css" />
|
||||
<Content Include="Localization\Views\DisplayTemplates\Parts\Localization.ContentTranslations.Summary.ascx" />
|
||||
<Content Include="Localization\Views\DisplayTemplates\Parts\Localization.ContentTranslations.ascx" />
|
||||
<None Include="Localization\Views\DisplayTemplates\Parts\Localization.ContentTranslations.Summary.cshtml" />
|
||||
<None Include="Localization\Views\DisplayTemplates\Parts\Localization.ContentTranslations.cshtml" />
|
||||
<Content Include="PublishLater\Module.txt" />
|
||||
<Content Include="PublishLater\Scripts\jquery.ui.core.js" />
|
||||
<Content Include="PublishLater\Scripts\jquery.ui.datepicker.js" />
|
||||
@@ -301,9 +301,9 @@
|
||||
<None Include="Reports\Views\Admin\Display.cshtml" />
|
||||
<None Include="Reports\Views\Admin\Index.cshtml" />
|
||||
<Content Include="Localization\Module.txt" />
|
||||
<Content Include="Localization\Views\Admin\Translate.ascx" />
|
||||
<Content Include="Localization\Views\DisplayTemplates\Parts\Localization.ContentTranslations.SummaryAdmin.ascx" />
|
||||
<Content Include="Localization\Views\CultureSelection.ascx" />
|
||||
<None Include="Localization\Views\Admin\Translate.cshtml" />
|
||||
<None Include="Localization\Views\DisplayTemplates\Parts\Localization.ContentTranslations.SummaryAdmin.cshtml" />
|
||||
<None Include="Localization\Views\CultureSelection.cshtml" />
|
||||
<Content Include="Routable\Module.txt" />
|
||||
<Content Include="Routable\Scripts\jquery.slugify.js" />
|
||||
<None Include="Routable\Views\EditorTemplates\Parts\Routable.RoutePart.cshtml" />
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
@model Orchard.Core.Routable.ViewModels.RoutableEditorViewModel
|
||||
@using Orchard.Utility.Extensions
|
||||
@using Orchard.Mvc.Spooling
|
||||
|
||||
<fieldset>
|
||||
@Html.LabelFor(m => m.Title)
|
||||
@@ -13,11 +12,8 @@
|
||||
<label for="@ViewData.TemplateInfo.GetFullHtmlFieldId("PromoteToHomePage")" class="forcheckbox">@T("Set as home page")</label>
|
||||
</fieldset>
|
||||
|
||||
@{
|
||||
Html.RegisterFootScript("jquery.slugify.js");
|
||||
|
||||
OutputStack.Push(new HtmlStringWriter());
|
||||
try {
|
||||
@Html.RegisterFootScript("jquery.slugify.js");
|
||||
@using(Html.RenderFootContent()){
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
//pull slug input from tab order
|
||||
@@ -35,9 +31,4 @@
|
||||
})
|
||||
})
|
||||
</script>
|
||||
}
|
||||
finally {
|
||||
var script = OutputStack.Pop();
|
||||
WorkContext.Page.Tail.Add(script);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ using System.Web.Mvc.Html;
|
||||
using System.Web.Routing;
|
||||
using Orchard.Collections;
|
||||
using Orchard.Localization;
|
||||
using Orchard.Mvc.Spooling;
|
||||
using Orchard.Services;
|
||||
using Orchard.Settings;
|
||||
using Orchard.Utility;
|
||||
@@ -16,6 +17,24 @@ using System.Web;
|
||||
|
||||
namespace Orchard.Mvc.Html {
|
||||
public static class HtmlHelperExtensions {
|
||||
|
||||
private class FootContentRenderer : IDisposable {
|
||||
readonly dynamic _model;
|
||||
|
||||
public FootContentRenderer(HtmlHelper html) {
|
||||
_model = html.ViewDataContainer;
|
||||
_model.OutputStack.Push(new HtmlStringWriter());
|
||||
}
|
||||
public void Dispose() {
|
||||
var script = _model.OutputStack.Pop();
|
||||
_model.WorkContext.Page.Tail.Add(script);
|
||||
}
|
||||
}
|
||||
|
||||
public static IDisposable RenderFootContent(this HtmlHelper html) {
|
||||
return new FootContentRenderer(html);
|
||||
}
|
||||
|
||||
public static string NameOf<T>(this HtmlHelper<T> html, Expression<Action<T>> expression) {
|
||||
return Reflect.NameOf(html.ViewData.Model, expression);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user