diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Application.cshtml b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Application.cshtml
index db8f8e1a6b..d473a5b5d2 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Application.cshtml
+++ b/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}";
+ }
}
-
+<@($"html{pageLang}")>
@await Component.InvokeLayoutHookAsync(LayoutHooks.Head.First, StandardLayouts.Application)
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Empty.cshtml b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Empty.cshtml
index da7c119de4..439a75f044 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Empty.cshtml
+++ b/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}";
+ }
}
-
+<@($"html{pageLang}")>
@await Component.InvokeLayoutHookAsync(LayoutHooks.Head.First, StandardLayouts.Empty)
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/Layout/ContentLayout.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/Layout/ContentLayout.cs
index bd54aef4d9..c9c1cafc99 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo/Abp/AspNetCore/Mvc/UI/Layout/ContentLayout.cs
+++ b/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; }
diff --git a/modules/docs/app/VoloDocs.Web/Branding/VoloDocsBrandingProvider.cs b/modules/docs/app/VoloDocs.Web/Branding/VoloDocsBrandingProvider.cs
index 88eff01063..c4fd5ecb66 100644
--- a/modules/docs/app/VoloDocs.Web/Branding/VoloDocsBrandingProvider.cs
+++ b/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 localizer)
{
var configuration = configurationAccessor.Configuration;
- if (configuration["Title"] != null)
- {
- AppName = configuration["Title"];
- }
+ AppName = localizer["DocsTitle"];
if (configuration["LogoUrl"] != null)
{
diff --git a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/en.json b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/en.json
index cd8eb98149..cf51cfe5a5 100644
--- a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/en.json
+++ b/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",
diff --git a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/zh-Hans.json b/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/zh-Hans.json
index c0a5d398ae..c3a0146555 100644
--- a/modules/docs/app/VoloDocs.Web/Localization/Resources/VoloDocs/Web/zh-Hans.json
+++ b/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": "点击这里开始你的第一个项目",
diff --git a/modules/docs/app/VoloDocs.Web/appsettings.json b/modules/docs/app/VoloDocs.Web/appsettings.json
index 2b71262885..3d89a0a1e3 100644
--- a/modules/docs/app/VoloDocs.Web/appsettings.json
+++ b/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"
}
\ No newline at end of file
diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubRepositoryManager.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubRepositoryManager.cs
index be71fd4772..8aca0c885b 100644
--- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubRepositoryManager.cs
+++ b/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));
}
diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml
index 23c46063cc..6bef4a3959 100644
--- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml
+++ b/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 {