Skip to content

Commit 4a18ce6

Browse files
committed
doc: 增加多语言支持
1 parent 84ef010 commit 4a18ce6

5 files changed

Lines changed: 73 additions & 21 deletions

File tree

src/components/BootstrapBlazor.PdfReader/BootstrapBlazor.PdfReader.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13+
<Content Remove="Locales\en.json" />
14+
<Content Remove="Locales\zh.json" />
15+
<EmbeddedResource Include="Locales\en.json" />
16+
<EmbeddedResource Include="Locales\zh.json" />
1317
<Content Remove="wwwroot\pdf.mjs" />
1418
<Content Remove="wwwroot\pdf.worker.mjs" />
1519
<None Include="wwwroot\lib\pdf.mjs" />
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"BootstrapBlazor.Components.PdfReader": {
3+
"ToggleSidebar": "Toggle sidebar",
4+
"ZoomIn": "Zoom In",
5+
"ZoomOut": "Zoom out",
6+
"PageActual": "Fit page actual width",
7+
"FitWidth": "Fit to width",
8+
"FitHeight": "Fit to height",
9+
"RotateLeft": "Rotate left",
10+
"RotateRight": "Rotate right",
11+
"Download": "Download",
12+
"Print": "Print",
13+
"TwoPageView": "Two pages on view",
14+
"PresentationMode": "Presentation mode",
15+
"DocumentProperty": "Document properties"
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"BootstrapBlazor.Components.PdfReader": {
3+
"ToggleSidebar": "收起/展开 缩略图",
4+
"ZoomIn": "放大",
5+
"ZoomOut": "缩小",
6+
"PageActual": "页面实际大小",
7+
"FitWidth": "适配宽度",
8+
"FitHeight": "适配高度",
9+
"RotateLeft": "向左旋转 90 度",
10+
"RotateRight": "向右旋转 90 度",
11+
"Download": "下载",
12+
"Print": "打印",
13+
"TwoPageView": "双页视图",
14+
"PresentationMode": "演示模式",
15+
"DocumentProperty": "文档属性"
16+
}
17+
}

src/components/BootstrapBlazor.PdfReader/PdfReader.razor

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,42 @@
77
{
88
<div class="bb-view-toolbar">
99
<div class="bb-view-title">
10-
<div class="bb-view-icon bb-view-bar"><i class="fa-solid fa-bars"></i></div>
10+
<div class="bb-view-icon bb-view-bar" title="@Localizer["ToggleSidebar"]"><i class="fa-solid fa-bars"></i></div>
1111
<span class="bb-view-subject">@_docTitle</span>
1212
</div>
1313
<div class="@ViewBodyString">
1414
<input type="text" class="bb-view-num" @bind="CurrentPageString" /><span class="bb-view-slash">/</span>
1515
<div class="bb-view-pagesCount"></div>
1616
<div class="bb-view-divider"></div>
17-
<div class="bb-view-icon bb-page-minus"><i class="fa-solid fa-fw fa-minus"></i></div>
17+
<div class="bb-view-icon bb-page-minus" title="@Localizer["ZoomOut"]"><i class="fa-solid fa-fw fa-minus"></i></div>
1818
<input type="text" class="bb-view-scale-input" @bind="CurrentScaleString" />
19-
<div class="bb-view-icon bb-page-plus"><i class="fa-solid fa-fw fa-plus"></i></div>
19+
<div class="bb-view-icon bb-page-plus" title="@Localizer["ZoomIn"]"><i class="fa-solid fa-fw fa-plus"></i></div>
2020
<div class="bb-view-scale">
2121
<div class="bb-view-divider"></div>
2222
<div class="bb-view-icon btn-group">
23-
<button type="button" class="btn bb-view-fit-height" @onclick="() => SetFitMode(PdfReaderFitMode.PageHeight)"><i class="fa-solid fa-fw fa-arrows-left-right-to-line fa-rotate-90"></i></button>
24-
<button type="button" class="btn bb-view-fit-width" @onclick="() => SetFitMode(PdfReaderFitMode.PageWidth)"><i class="fa-solid fa-fw fa-arrows-left-right-to-line"></i></button>
23+
<button type="button" class="btn bb-view-fit-height" title="@Localizer["FitHeight"]" @onclick="() => SetFitMode(PdfReaderFitMode.PageHeight)"><i class="fa-solid fa-fw fa-arrows-left-right-to-line fa-rotate-90"></i></button>
24+
<button type="button" class="btn bb-view-fit-width" title="@Localizer["FitWidth"]" @onclick="() => SetFitMode(PdfReaderFitMode.PageWidth)"><i class="fa-solid fa-fw fa-arrows-left-right-to-line"></i></button>
2525
<button type="button" class="btn dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
2626
<span class="visually-hidden">Toggle Dropdown</span>
2727
</button>
2828
<div class="dropdown-menu dropdown-menu-end">
29-
<div class="dropdown-item" @onclick="() => SetFitMode(PdfReaderFitMode.PageActual)">page-actual</div>
30-
<div class="dropdown-item" @onclick="() => SetFitMode(PdfReaderFitMode.PageWidth)">page-width</div>
31-
<div class="dropdown-item" @onclick="() => SetFitMode(PdfReaderFitMode.PageHeight)">page-height</div>
32-
<div class="dropdown-item" @onclick="() => SetFitMode(PdfReaderFitMode.PageFit)">page-fit</div>
33-
<div class="dropdown-item" @onclick="() => SetFitMode(PdfReaderFitMode.Auto)">auto</div>
29+
<div class="dropdown-item" @onclick="() => SetFitMode(PdfReaderFitMode.PageActual)">@Localizer["PageActual"]</div>
30+
<div class="dropdown-item" @onclick="() => SetFitMode(PdfReaderFitMode.PageWidth)">@Localizer["FitWidth"]</div>
31+
<div class="dropdown-item" @onclick="() => SetFitMode(PdfReaderFitMode.PageHeight)">@Localizer["FitHeight"]</div>
3432
</div>
3533
</div>
36-
<div class="bb-view-icon bb-view-fit-rotate" @onclick="RotateLeft"><i class="fa-solid fa-fw fa-rotate-left"></i></div>
37-
<div class="bb-view-icon bb-view-fit-rotate" @onclick="RotateRight"><i class="fa-solid fa-fw fa-rotate-right"></i></div>
34+
<div class="bb-view-icon bb-view-fit-rotate" title="@Localizer["RotateLeft"]" @onclick="RotateLeft"><i class="fa-solid fa-fw fa-rotate-left"></i></div>
35+
<div class="bb-view-icon bb-view-fit-rotate" title="@Localizer["RotateRight"]" @onclick="RotateRight"><i class="fa-solid fa-fw fa-rotate-right"></i></div>
3836
</div>
3937
</div>
4038
<div class="bb-view-controls">
4139
@if (ShowDownload)
4240
{
43-
<div class="bb-view-icon bb-view-download" @onclick="OnDownload"><i class="fa-solid fa-fw fa-arrow-right-to-bracket fa-rotate-90"></i></div>
41+
<div class="bb-view-icon bb-view-download" title="@Localizer["Download"]" @onclick="OnDownload"><i class="fa-solid fa-fw fa-arrow-right-to-bracket fa-rotate-90"></i></div>
4442
}
4543
@if (ShowPrint)
4644
{
47-
<div class="bb-view-icon bb-view-print"><i class="fa-solid fa-fw fa-print"></i></div>
45+
<div class="bb-view-icon bb-view-print" title="@Localizer["Print"]"><i class="fa-solid fa-fw fa-print"></i></div>
4846
}
4947
<div class="dropdown">
5048
<button type="button" class="btn dropdown-toggle" data-bs-toggle="dropdown">
@@ -56,18 +54,24 @@
5654
<div class="dropdown-item dropdown-item-pages">
5755
<i class="@_dropdownItemCheckIcon"></i>
5856
<i class="@_dropdownItemDefaultIcon"></i>
59-
<span>Two pages on view</span>
57+
<span>@Localizer["TwoPageView"]</span>
6058
</div>
59+
}
60+
@if (ShowPresentationMode)
61+
{
62+
<div class="dropdown-item dropdown-item-presentation">
63+
<i class="@_dropdownItemCheckIcon"></i>
64+
<i class="@_dropdownItemDefaultIcon"></i>
65+
<span>@Localizer["PresentationMode"]</span>
66+
</div>
67+
}
68+
@if (ShowTwoPagesOneView || ShowPresentationMode)
69+
{
6170
<Divider></Divider>
6271
}
63-
<div class="dropdown-item dropdown-item-presentation">
64-
<i class="@_dropdownItemCheckIcon"></i>
65-
<i class="@_dropdownItemDefaultIcon"></i>
66-
<span>Presentation Mode</span>
67-
</div>
6872
<div class="dropdown-item dropdown-item-doc">
6973
<i class="@_dropdownItemDefaultIcon"></i>
70-
<span>Document properties</span>
74+
<span>@Localizer["DocumentProperty"]</span>
7175
</div>
7276
</div>
7377
</div>

src/components/BootstrapBlazor.PdfReader/PdfReader.razor.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// Website: https://www.blazor.zone or https://argozhang.github.io/
44

55
using Microsoft.AspNetCore.Components;
6+
using Microsoft.Extensions.Localization;
67
using System.Globalization;
78

89
namespace BootstrapBlazor.Components;
@@ -73,6 +74,12 @@ public partial class PdfReader
7374
[Parameter]
7475
public bool ShowTwoPagesOneView { get; set; } = true;
7576

77+
/// <summary>
78+
/// 获得/设置 是否显示按钮 默认 true 显示
79+
/// </summary>
80+
[Parameter]
81+
public bool ShowPresentationMode { get; set; } = false;
82+
7683
/// <summary>
7784
/// 获得/设置 是否启用双页单视图模式 默认 false
7885
/// </summary>
@@ -121,6 +128,9 @@ public partial class PdfReader
121128
[Parameter]
122129
public Func<Task>? OnPrintingAsync { get; set; }
123130

131+
[Inject, NotNull]
132+
private IStringLocalizer<PdfReader>? Localizer { get; set; }
133+
124134
private string? ClassString => CssBuilder.Default("bb-pdf-reader")
125135
.AddClassFromAttributes(AdditionalAttributes)
126136
.Build();

0 commit comments

Comments
 (0)