Browse Source

Resolve #1397 ContentLayout supports html lang.

pull/1402/head
maliming 7 years ago
parent
commit
c33b586726
  1. 10
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Application.cshtml
  2. 10
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Empty.cshtml
  3. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/Layout/ContentLayout.cs
  4. 11
      modules/docs/app/VoloDocs.Web/Branding/VoloDocsBrandingProvider.cs
  5. 1
      modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/en.json
  6. 1
      modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/zh-Hans.json
  7. 1
      modules/docs/app/VoloDocs.Web/appsettings.json
  8. 10
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubRepositoryManager.cs
  9. 1
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml

10
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Application.cshtml

@ -1,4 +1,4 @@
@using Volo.Abp.AspNetCore.Mvc.AntiForgery
@using Volo.Abp.AspNetCore.Mvc.AntiForgery
@using Volo.Abp.AspNetCore.Mvc.UI.Components.LayoutHook
@using Volo.Abp.AspNetCore.Mvc.UI.Layout
@using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling
@ -25,11 +25,17 @@
pageTitle = PageLayout.Content.Title + pageTitle;
}
var pageLang = ViewBag.Lang == null ? "" : $" lang={ViewBag.Lang}";
if (PageLayout.Content.Lang != null)
{
pageLang = $" lang={PageLayout.Content.Lang}";
}
}
<!DOCTYPE html>
<html lang="en">
<@($"html{pageLang}")>
<head>
@await Component.InvokeLayoutHookAsync(LayoutHooks.Head.First, StandardLayouts.Application)

10
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Empty.cshtml

@ -1,4 +1,4 @@
@using Volo.Abp.AspNetCore.Mvc.AntiForgery
@using Volo.Abp.AspNetCore.Mvc.AntiForgery
@using Volo.Abp.AspNetCore.Mvc.UI.Components.LayoutHook
@using Volo.Abp.AspNetCore.Mvc.UI.Layout
@using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling
@ -24,11 +24,17 @@
pageTitle = PageLayout.Content.Title + pageTitle;
}
var pageLang = ViewBag.Lang == null ? "" : $" lang={ViewBag.Lang}";
if (PageLayout.Content.Lang != null)
{
pageLang = $" lang={PageLayout.Content.Lang}";
}
}
<!DOCTYPE html>
<html lang="en">
<@($"html{pageLang}")>
<head>
@await Component.InvokeLayoutHookAsync(LayoutHooks.Head.First, StandardLayouts.Empty)

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/Layout/ContentLayout.cs

@ -5,6 +5,8 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Layout
{
public class ContentLayout
{
public string Lang { get; set; }
public string Title { get; set; }
public BreadCrumb BreadCrumb { get; }

11
modules/docs/app/VoloDocs.Web/Branding/VoloDocsBrandingProvider.cs

@ -1,20 +1,19 @@
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Components;
using Microsoft.Extensions.Localization;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Components;
using Volo.Abp.Configuration;
using Volo.Abp.DependencyInjection;
using Volo.Docs.Localization;
namespace VoloDocs.Web.Branding
{
[Dependency(ReplaceServices = true)]
public class VoloDocsBrandingProvider : DefaultBrandingProvider
{
public VoloDocsBrandingProvider(IConfigurationAccessor configurationAccessor)
public VoloDocsBrandingProvider(IConfigurationAccessor configurationAccessor, IStringLocalizer<DocsResource> localizer)
{
var configuration = configurationAccessor.Configuration;
if (configuration["Title"] != null)
{
AppName = configuration["Title"];
}
AppName = localizer["DocsTitle"];
if (configuration["LogoUrl"] != null)
{

1
modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/en.json

@ -1,6 +1,7 @@
{
"culture": "en",
"texts": {
"DocsTitle": "VoloDocs",
"WelcomeVoloDocs": "Welcome to the VoloDocs!",
"NoProjectWarning": "There`s no defined project yet!",
"CreateYourFirstProject": "Click here to start your first project",

1
modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/zh-Hans.json

@ -1,6 +1,7 @@
{
"culture": "zh-Hans",
"texts": {
"DocsTitle": "Volo文档",
"WelcomeVoloDocs": "欢迎使用VoloDocs!",
"NoProjectWarning": "当前没有定义的项目!",
"CreateYourFirstProject": "点击这里开始你的第一个项目",

1
modules/docs/app/VoloDocs.Web/appsettings.json

@ -1,5 +1,4 @@
{
"ConnectionString": "Server=localhost;Database=VoloDocs;Trusted_Connection=True;MultipleActiveResultSets=true",
"Title": "VoloDocs",
"LogoUrl": "/assets/images/Logo.png"
}

10
modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubRepositoryManager.cs

@ -30,7 +30,10 @@ namespace Volo.Docs.GitHub.Documents
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", token);
}
httpClient.DefaultRequestHeaders.Add("User-Agent", userAgent ?? "");
if (!userAgent.IsNullOrWhiteSpace())
{
httpClient.DefaultRequestHeaders.Add("User-Agent", userAgent);
}
return await httpClient.GetStringAsync(new Uri(rawUrl));
}
@ -43,7 +46,10 @@ namespace Volo.Docs.GitHub.Documents
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", token);
}
httpClient.DefaultRequestHeaders.Add("User-Agent", userAgent ?? "");
if (!userAgent.IsNullOrWhiteSpace())
{
httpClient.DefaultRequestHeaders.Add("User-Agent", userAgent);
}
return await httpClient.GetByteArrayAsync(new Uri(rawUrl));
}

1
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml

@ -17,6 +17,7 @@
@{
ViewBag.FluidLayout = true;
Layout = ThemeManager.CurrentTheme.GetEmptyLayout();
PageLayout.Content.Lang = Model.LanguageCode;
PageLayout.Content.Title = Model.DocumentName?.Replace("-", " ");
}
@section styles {

Loading…
Cancel
Save