mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
When changing culture, you might be changing diretionality, it would be worth changing that on the fly, though a page reload might be better.
This commit is contained in:
@@ -15,6 +15,8 @@
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
(function ($) {
|
||||
"use strict";
|
||||
|
||||
// grab the slug input
|
||||
var slug = $("#Autoroute_CurrentUrl");
|
||||
if (slug) {
|
||||
@@ -31,6 +33,21 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var culture = $("#SelectedCulture");
|
||||
culture.change(function () {
|
||||
var optionDirectionality = $("option:selected", this).attr("data-content-dir");
|
||||
var contentZone = $(".zone-content");
|
||||
if (contentZone.hasClass(optionDirectionality))
|
||||
return;
|
||||
|
||||
var oldClass = optionDirectionality === "ltr" ? "rtl" : "";
|
||||
|
||||
contentZone.removeClass("content-" + oldClass);
|
||||
contentZone.addClass("content-" + optionDirectionality);
|
||||
|
||||
$.trigger("localization.ui.directionalitychanged");
|
||||
});
|
||||
})(jQuery);
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
@model Orchard.Localization.ViewModels.AddLocalizationViewModel
|
||||
@using System.Globalization
|
||||
@using System.Text
|
||||
@model Orchard.Localization.ViewModels.AddLocalizationViewModel
|
||||
@{
|
||||
Style.Require("LocalizationAdmin");
|
||||
}
|
||||
@@ -6,7 +8,25 @@
|
||||
<label for="SelectedCulture">@T("Content Localization")</label>
|
||||
<div>
|
||||
@T("This is the <em>{0}</em> variation of {1}",
|
||||
Html.DropDownList("SelectedCulture", new SelectList(Model.MissingCultures, Model.SelectedCulture)),
|
||||
Html.ItemEditLink(Model.Content))
|
||||
BuildSelectedCultureList("SelectedCulture", Model.MissingCultures, Model.SelectedCulture),
|
||||
|
||||
Html.ItemEditLink(Model.Content))
|
||||
</div>
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
@functions{
|
||||
private string BuildSelectedCultureList(string name, IEnumerable<string> siteCultures, string culture) {
|
||||
TagBuilder selectTag = new TagBuilder("select");
|
||||
selectTag.Attributes["id"] = name;
|
||||
selectTag.Attributes["name"] = name;
|
||||
|
||||
foreach (var siteCulture in siteCultures) {
|
||||
TagBuilder optionTag = new TagBuilder("option");
|
||||
optionTag.Attributes["data-content-dir"] = CultureInfo.GetCultureInfo(siteCulture).TextInfo.IsRightToLeft ? "rtl" : "ltr";
|
||||
optionTag.Attributes["value"] = siteCulture;
|
||||
optionTag.SetInnerText(siteCulture);
|
||||
selectTag.InnerHtml += optionTag.ToString();
|
||||
}
|
||||
|
||||
return selectTag.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,4 +39,4 @@
|
||||
@if (Model.SelectedCulture != null && !siteCultures.All(c => c == Model.SelectedCulture || Model.ContentLocalizations.Localizations.Any(l => c == l.Culture.Culture))) {
|
||||
<div class="add-localization">@Html.ActionLink(T("+ New translation").Text, "Translate", "Admin", new { area = "Orchard.Localization", id = Model.ContentItem.Id }, null)</div>
|
||||
}
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
Reference in New Issue
Block a user