gen requirement

build image
thêm ngôn ngữ tiếng việt
sửa logo
sửa 1 số text sang tiêngs việt
This commit is contained in:
dinhvanhung
2024-04-19 18:00:24 +07:00
parent 64240be659
commit d8a9815668
18 changed files with 295 additions and 131 deletions

View File

@@ -337,6 +337,7 @@ import localeSv from '@angular/common/locales/sv'
import localeTr from '@angular/common/locales/tr'
import localeUk from '@angular/common/locales/uk'
import localeZh from '@angular/common/locales/zh'
import localeVi from '@angular/common/locales/vi'
registerLocaleData(localeAf)
registerLocaleData(localeAr)
@@ -369,6 +370,7 @@ registerLocaleData(localeSv)
registerLocaleData(localeTr)
registerLocaleData(localeUk)
registerLocaleData(localeZh)
registerLocaleData(localeVi)
function initializeApp(settings: SettingsService) {
return () => {

View File

@@ -8,16 +8,20 @@
[ngClass]="{ 'slim': slimSidebarEnabled, 'col-auto col-md-3 col-lg-2 col-xxxl-1' : !slimSidebarEnabled, 'py-3' : !customAppTitle?.length || slimSidebarEnabled, 'py-2': customAppTitle?.length }"
routerLink="/dashboard"
tourAnchor="tour.intro">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 198.43 238.91" width="1em" height="1.5em" fill="currentColor">
<path
d="M194.7,0C164.22,70.94,17.64,79.74,64.55,194.06c.58,1.47-10.85,17-18.47,29.9-1.76-6.45-3.81-13.48-3.52-14.07,38.11-45.14-27.26-70.65-30.78-107.58C-4.64,131.62-10.5,182.92,39,212.53c.3,0,2.64,11.14,3.81,16.71a58.55,58.55,0,0,0-2.93,6.45c-1.17,2.93,7.62,2.64,7.62,3.22.88-.29,21.7-36.93,22.28-37.23C187.67,174.72,208.48,68.6,194.7,0ZM134.61,74.75C79.5,124,70.12,160.64,71.88,178.53,53.41,134.85,107.64,86.77,134.61,74.75ZM28.2,145.11c10.55,9.67,28.14,39.28,13.19,56.57C44.91,193.77,46.08,175.89,28.2,145.11Z"
transform="translate(0 0)" />
</svg>
<!-- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 198.43 238.91" width="1em" height="1.5em" fill="currentColor">-->
<!-- <path-->
<!-- d="M194.7,0C164.22,70.94,17.64,79.74,64.55,194.06c.58,1.47-10.85,17-18.47,29.9-1.76-6.45-3.81-13.48-3.52-14.07,38.11-45.14-27.26-70.65-30.78-107.58C-4.64,131.62-10.5,182.92,39,212.53c.3,0,2.64,11.14,3.81,16.71a58.55,58.55,0,0,0-2.93,6.45c-1.17,2.93,7.62,2.64,7.62,3.22.88-.29,21.7-36.93,22.28-37.23C187.67,174.72,208.48,68.6,194.7,0ZM134.61,74.75C79.5,124,70.12,160.64,71.88,178.53,53.41,134.85,107.64,86.77,134.61,74.75ZM28.2,145.11c10.55,9.67,28.14,39.28,13.19,56.57C44.91,193.77,46.08,175.89,28.2,145.11Z"-->
<!-- transform="translate(0 0)" />-->
<!-- </svg>-->
<img style='height:32px' src='assets/Logo_White.svg'>
<div class="ms-2 ms-md-3 d-inline-block" [class.d-md-none]="slimSidebarEnabled">
@if (customAppTitle?.length) {
<div class="d-flex flex-column align-items-start">
<span class="title">{{customAppTitle}}</span>
<span class="byline text-uppercase font-monospace" i18n>by Paperless-ngx</span>
<!-- <span class="title">{{customAppTitle}}</span>-->
<!-- <span class="byline text-uppercase font-monospace" i18n>by Paperless-ngx</span>-->
</div>
} @else {
Paperless-ngx
@@ -276,67 +280,67 @@
</a>
</li>
}
<li class="nav-item mt-2" tourAnchor="tour.outro">
<a class="px-3 py-2 text-muted small d-flex align-items-center flex-wrap text-decoration-none"
target="_blank" rel="noopener noreferrer" href="https://docs.paperless-ngx.com" ngbPopover="Documentation"
i18n-ngbPopover [disablePopover]="!slimSidebarEnabled" placement="end" container="body"
triggers="mouseenter:mouseleave" popoverClass="popover-slim">
<i-bs class="d-flex" name="question-circle"></i-bs><span class="ms-1">&nbsp;<ng-container i18n>Documentation</ng-container></span>
</a>
</li>
<li class="nav-item" [class.visually-hidden]="slimSidebarEnabled">
<div class="px-3 py-0 text-muted small d-flex align-items-center flex-wrap">
<div class="me-3">
<a class="text-muted text-decoration-none" target="_blank" rel="noopener noreferrer"
href="https://github.com/paperless-ngx/paperless-ngx" ngbPopover="GitHub" i18n-ngbPopover
[disablePopover]="!slimSidebarEnabled" placement="end" container="body"
triggers="mouseenter:mouseleave" popoverClass="popover-slim">
{{ versionString }}
</a>
</div>
@if (!settingsService.updateCheckingIsSet || appRemoteVersion) {
<div class="version-check">
<ng-template #updateAvailablePopContent>
<span class="small">Paperless-ngx {{ appRemoteVersion.version }} <ng-container i18n>is
available.</ng-container><br /><ng-container i18n>Click to view.</ng-container></span>
</ng-template>
<ng-template #updateCheckingNotEnabledPopContent>
<p class="small mb-2">
<ng-container i18n>Paperless-ngx can automatically check for updates</ng-container>
</p>
<div class="btn-group btn-group-xs flex-fill w-100">
<button class="btn btn-outline-primary" (click)="setUpdateChecking(true)">Enable</button>
<button class="btn btn-outline-secondary" (click)="setUpdateChecking(false)">Disable</button>
</div>
<p class="small mb-0 mt-2">
<a class="small text-decoration-none fst-italic" routerLink="/settings" fragment="update-checking" i18n>
How does this work?
</a>
</p>
</ng-template>
@if (settingsService.updateCheckingIsSet) {
@if (appRemoteVersion.update_available) {
<a class="small text-decoration-none" target="_blank" rel="noopener noreferrer"
href="https://github.com/paperless-ngx/paperless-ngx/releases"
[ngbPopover]="updateAvailablePopContent" popoverClass="shadow" triggers="mouseenter:mouseleave"
container="body">
<i-bs width="1.2em" height="1.2em" name="info-circle"></i-bs>
@if (appRemoteVersion?.update_available) {
&nbsp;<ng-container i18n>Update available</ng-container>
}
</a>
}
} @else {
<a class="small text-decoration-none" routerLink="/settings" fragment="update-checking"
[ngbPopover]="updateCheckingNotEnabledPopContent" popoverClass="shadow" triggers="mouseenter"
container="body">
<i-bs width="1.2em" height="1.2em" name="info-circle"></i-bs>
</a>
}
</div>
}
</div>
</li>
<!-- <li class="nav-item mt-2" tourAnchor="tour.outro">-->
<!-- <a class="px-3 py-2 text-muted small d-flex align-items-center flex-wrap text-decoration-none"-->
<!-- target="_blank" rel="noopener noreferrer" href="https://docs.paperless-ngx.com" ngbPopover="Documentation"-->
<!-- i18n-ngbPopover [disablePopover]="!slimSidebarEnabled" placement="end" container="body"-->
<!-- triggers="mouseenter:mouseleave" popoverClass="popover-slim">-->
<!-- <i-bs class="d-flex" name="question-circle"></i-bs><span class="ms-1">&nbsp;<ng-container i18n>Documentation</ng-container></span>-->
<!-- </a>-->
<!-- </li>-->
<!-- <li class="nav-item" [class.visually-hidden]="slimSidebarEnabled">-->
<!-- <div class="px-3 py-0 text-muted small d-flex align-items-center flex-wrap">-->
<!-- <div class="me-3">-->
<!-- <a class="text-muted text-decoration-none" target="_blank" rel="noopener noreferrer"-->
<!-- href="https://github.com/paperless-ngx/paperless-ngx" ngbPopover="GitHub" i18n-ngbPopover-->
<!-- [disablePopover]="!slimSidebarEnabled" placement="end" container="body"-->
<!-- triggers="mouseenter:mouseleave" popoverClass="popover-slim">-->
<!-- {{ versionString }}-->
<!-- </a>-->
<!-- </div>-->
<!-- @if (!settingsService.updateCheckingIsSet || appRemoteVersion) {-->
<!-- <div class="version-check">-->
<!-- <ng-template #updateAvailablePopContent>-->
<!-- <span class="small">Paperless-ngx {{ appRemoteVersion.version }} <ng-container i18n>is-->
<!-- available.</ng-container><br /><ng-container i18n>Click to view.</ng-container></span>-->
<!-- </ng-template>-->
<!-- <ng-template #updateCheckingNotEnabledPopContent>-->
<!-- <p class="small mb-2">-->
<!-- <ng-container i18n>Paperless-ngx can automatically check for updates</ng-container>-->
<!-- </p>-->
<!-- <div class="btn-group btn-group-xs flex-fill w-100">-->
<!-- <button class="btn btn-outline-primary" (click)="setUpdateChecking(true)">Enable</button>-->
<!-- <button class="btn btn-outline-secondary" (click)="setUpdateChecking(false)">Disable</button>-->
<!-- </div>-->
<!-- <p class="small mb-0 mt-2">-->
<!-- <a class="small text-decoration-none fst-italic" routerLink="/settings" fragment="update-checking" i18n>-->
<!-- How does this work?-->
<!-- </a>-->
<!-- </p>-->
<!-- </ng-template>-->
<!-- @if (settingsService.updateCheckingIsSet) {-->
<!-- @if (appRemoteVersion.update_available) {-->
<!-- <a class="small text-decoration-none" target="_blank" rel="noopener noreferrer"-->
<!-- href="https://github.com/paperless-ngx/paperless-ngx/releases"-->
<!-- [ngbPopover]="updateAvailablePopContent" popoverClass="shadow" triggers="mouseenter:mouseleave"-->
<!-- container="body">-->
<!-- <i-bs width="1.2em" height="1.2em" name="info-circle"></i-bs>-->
<!-- @if (appRemoteVersion?.update_available) {-->
<!-- &nbsp;<ng-container i18n>Update available</ng-container>-->
<!-- }-->
<!-- </a>-->
<!-- }-->
<!-- } @else {-->
<!-- <a class="small text-decoration-none" routerLink="/settings" fragment="update-checking"-->
<!-- [ngbPopover]="updateCheckingNotEnabledPopContent" popoverClass="shadow" triggers="mouseenter"-->
<!-- container="body">-->
<!-- <i-bs width="1.2em" height="1.2em" name="info-circle"></i-bs>-->
<!-- </a>-->
<!-- }-->
<!-- </div>-->
<!-- }-->
<!-- </div>-->
<!-- </li>-->
</ul>
</div>
</div>

View File

@@ -41,6 +41,12 @@ const LANGUAGE_OPTIONS = [
englishName: 'English (US)',
dateInputFormat: 'mm/dd/yyyy',
},
{
code: 'vi-vn',
name: $localize`Vietnamese`,
englishName: 'Vietnamese',
dateInputFormat: 'mm/dd/yyyy',
},
{
code: 'af-za',
name: $localize`Afrikaans`,