Skip to content

Commit

Permalink
fix(core,platform): added missing translations for the dynamic page
Browse files Browse the repository at this point in the history
  • Loading branch information
g-cheishvili committed Nov 23, 2023
1 parent eaa76e7 commit 4ad48cb
Show file tree
Hide file tree
Showing 42 changed files with 281 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,6 @@ export const ActionSquashBreakpointPx = 1280;
imports: [NgIf, NgTemplateOutlet, IgnoreClickOnSelectionDirective]
})
export class DynamicPageHeaderComponent implements OnInit, AfterViewInit, OnDestroy, DynamicPageHeader {
/** @hidden */
_collapsed = false;

/** Title property for dynamic page */
@Input()
title: string;
Expand Down Expand Up @@ -99,6 +96,9 @@ export class DynamicPageHeaderComponent implements OnInit, AfterViewInit, OnDest
@ContentChild(DynamicPageTitleContentComponent)
_contentToolbar: DynamicPageTitleContentComponent;

/** @hidden */
_collapsed = false;

/** @hidden */
_actionsSquashed = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
fd-button
class="fd-dynamic-page__collapse-button"
aria-haspopup="true"
[ariaLabel]="collapsed ? expandLabel : collapseLabel"
[attr.title]="collapsed ? expandLabel : collapseLabel"
[ariaLabel]="_toggleButtonAriaLabel"
[attr.title]="_toggleButtonAriaLabel"
[attr.aria-expanded]="!collapsed"
[attr.aria-controls]="id"
(click)="toggleCollapse()"
Expand All @@ -29,8 +29,8 @@
<button
fd-button
class="fd-dynamic-page__pin-button"
[ariaLabel]="_pinned ? unpinAriaLabel : pinAriaLabel"
[attr.title]="_pinned ? unpinAriaLabel : pinAriaLabel"
[ariaLabel]="_pinButtonAriaLabel"
[attr.title]="_pinButtonAriaLabel"
[toggled]="_pinned"
(click)="togglePinned()"
*ngIf="pinnable && !collapsed"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
EventEmitter,
HostBinding,
Input,
Optional,
Output,
ViewChild,
ViewEncapsulation
Expand All @@ -14,9 +15,12 @@ import { Nullable } from '@fundamental-ngx/cdk/utils';
import { distinctUntilChanged } from 'rxjs/operators';

import { NgIf } from '@angular/common';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { ButtonComponent } from '@fundamental-ngx/core/button';
import { FD_LANGUAGE, FdTranslatePipe, resolveTranslationSignalFn } from '@fundamental-ngx/i18n';
import { DynamicPageConfig } from '../../dynamic-page.config';
import { DynamicPageService } from '../../dynamic-page.service';
import { patchHeaderI18nTexts } from '../../patch-header-i18n-texts';

let dynamicPageSubHeaderId = 0;
@Component({
Expand All @@ -25,7 +29,14 @@ let dynamicPageSubHeaderId = 0;
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
standalone: true,
imports: [NgIf, ButtonComponent]
imports: [NgIf, ButtonComponent, FdTranslatePipe],
providers: [
{
provide: FD_LANGUAGE,
useFactory: patchHeaderI18nTexts,
deps: [[new Optional(), DynamicPageConfig]]
}
]
})
export class DynamicPageSubheaderComponent {
/**
Expand Down Expand Up @@ -58,13 +69,13 @@ export class DynamicPageSubheaderComponent {
* ARIA label for button when the header is collapsed
*/
@Input()
expandLabel: string = this._dynamicPageConfig.expandLabel;
expandLabel: string;

/**
* ARIA label for button when the header is expanded
*/
@Input()
collapseLabel: string = this._dynamicPageConfig.collapseLabel;
collapseLabel: string;

/** Header role */
@Input()
Expand All @@ -78,10 +89,6 @@ export class DynamicPageSubheaderComponent {
@HostBinding('attr.id')
id = `fd-dynamic-page-header-id-${dynamicPageSubHeaderId++}`;

/**
* id for collapsible header
*/
collapsibleHeaderId = `${this.id}-collapsible`;
/**
* aria label for header
*/
Expand All @@ -92,13 +99,13 @@ export class DynamicPageSubheaderComponent {
* aria label for pin state of pin button
*/
@Input()
pinAriaLabel: string = this._dynamicPageConfig.pinLabel;
pinAriaLabel: string;

/**
* aria label for unpin state of pin button
*/
@Input()
unpinAriaLabel: string = this._dynamicPageConfig.unpinLabel;
unpinAriaLabel: string;

/** Collapse/Expand change event raised */
@Output()
Expand All @@ -108,6 +115,31 @@ export class DynamicPageSubheaderComponent {
@ViewChild('pincollapseContainer')
pinCollapseContainer: ElementRef<HTMLElement>;

/**
* id for collapsible header
*/
collapsibleHeaderId = `${this.id}-collapsible`;

/**
* Aria Label for the toggle button
* @hidden
**/
get _toggleButtonAriaLabel(): string {
const expandLabel = this.expandLabel || this._defaultExpandLabel();
const collapseLabel = this.collapseLabel || this._defaultCollapseLabel();
return this._collapsed ? expandLabel : collapseLabel;
}

/**
* Aria Label for the pin button
* @hidden
**/
get _pinButtonAriaLabel(): string {
const pinLabel = this.pinAriaLabel || this._defaultPinLabel();
const unpinLabel = this.unpinAriaLabel || this._defaultUnpinLabel();
return this._pinned ? unpinLabel : pinLabel;
}

/**
* tracking if pin button is pinned
*/
Expand All @@ -120,13 +152,24 @@ export class DynamicPageSubheaderComponent {
private _collapsed = false;

/** @hidden */
constructor(
private _cd: ChangeDetectorRef,
protected _dynamicPageConfig: DynamicPageConfig,
private _dynamicPageService: DynamicPageService
) {
private _resolveTranslationSignal = resolveTranslationSignalFn();

/** @hidden */
private _defaultExpandLabel = this._resolveTranslationSignal('coreDynamicPage.expandLabel');

/** @hidden */
private _defaultCollapseLabel = this._resolveTranslationSignal('coreDynamicPage.collapseLabel');

/** @hidden */
private _defaultPinLabel = this._resolveTranslationSignal('coreDynamicPage.pinLabel');

/** @hidden */
private _defaultUnpinLabel = this._resolveTranslationSignal('coreDynamicPage.unpinLabel');

/** @hidden */
constructor(private _cd: ChangeDetectorRef, private _dynamicPageService: DynamicPageService) {
this._dynamicPageService.collapsed
.pipe(distinctUntilChanged())
.pipe(takeUntilDestroyed(), distinctUntilChanged())
.subscribe((collapsed) => this._handleCollapsedChange(collapsed));
}

Expand Down
3 changes: 2 additions & 1 deletion libs/core/src/lib/dynamic-page/dynamic-page.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ import { Injectable } from '@angular/core';

/**
* Default options for core dynamic-page
* @deprecated use i18n coreDynamicPage key instead
*/
@Injectable({ providedIn: 'root' })
@Injectable()
export class DynamicPageConfig {
/**
* aria label for expand/collapse button when the Dynamic Page is collapsed
Expand Down
19 changes: 10 additions & 9 deletions libs/core/src/lib/dynamic-page/index.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
export * from './constants';
export * from './dynamic-page.component';
export * from './dynamic-page-wrapper.directive';
export * from './dynamic-page-header/actions/dynamic-page-title-content.component';
export * from './directives/dynamic-page-header-subtitle.directive';
export * from './directives/dynamic-page-header-title.directive';
export * from './dynamic-page-content/dynamic-page-content.component';
export * from './dynamic-page-footer/dynamic-page-footer.component';
export * from './dynamic-page-header/actions/dynamic-page-base-actions';
export * from './dynamic-page-header/actions/dynamic-page-global-actions.component';
export * from './dynamic-page-header/actions/dynamic-page-layout-actions.component';
export * from './dynamic-page-header/subheader/dynamic-page-subheader.component';
export * from './dynamic-page-header/actions/dynamic-page-title-content.component';
export * from './dynamic-page-header/header/dynamic-page-header.component';
export * from './dynamic-page-content/dynamic-page-content.component';
export * from './dynamic-page-footer/dynamic-page-footer.component';
export * from './dynamic-page-header/subheader/dynamic-page-subheader.component';
export * from './dynamic-page-wrapper.directive';
export * from './dynamic-page.component';
export * from './dynamic-page.config';
export * from './dynamic-page.module';
export * from './dynamic-page.service';
export * from './utils';
export * from './models/title-directive-context';
export * from './directives/dynamic-page-header-subtitle.directive';
export * from './directives/dynamic-page-header-title.directive';
export * from './patch-header-i18n-texts';
export * from './utils';
23 changes: 23 additions & 0 deletions libs/core/src/lib/dynamic-page/patch-header-i18n-texts.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { inject } from '@angular/core';
import { FD_LANGUAGE, FdLanguage } from '@fundamental-ngx/i18n';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { DynamicPageConfig } from './dynamic-page.config';

/**
* Patch header i18n texts
*/
export function patchHeaderI18nTexts(config?: DynamicPageConfig): Observable<FdLanguage> {
const lang$ = inject(FD_LANGUAGE, { skipSelf: true });
if (config) {
return lang$.pipe(
map((lang) => ({
...lang,
coreDynamicPage: {
...config
}
}))
);
}
return lang$;
}
1 change: 1 addition & 0 deletions libs/docs/core/dynamic-page/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ export const ROUTES: Routes = [
];
export const LIBRARY_NAME = 'dynamic-page';
export const API_FILE_KEY = 'dynamicPage';
export const I18N_KEY = 'coreDynamicPage';
1 change: 1 addition & 0 deletions libs/docs/platform/dynamic-page/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ export const ROUTES: Routes = [
];
export const LIBRARY_NAME = 'dynamic-page';
export const API_FILE_KEY = 'dynamicPage';
export const I18N_KEY = 'coreDynamicPage';
6 changes: 6 additions & 0 deletions libs/i18n/src/lib/models/lang.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,12 @@ export interface FdLanguage {
datetimeOkLabel: FdLanguageKey;
datetimeCancelLabel: FdLanguageKey;
};
coreDynamicPage: {
expandLabel: FdLanguageKey;
collapseLabel: FdLanguageKey;
pinLabel: FdLanguageKey;
unpinLabel: FdLanguageKey;
};
coreFeedListItem: {
moreLabel: FdLanguageKey;
lessLabel: FdLanguageKey;
Expand Down
8 changes: 8 additions & 0 deletions libs/i18n/src/lib/translations/translations.properties
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,14 @@ coreDatetimePicker.displayTypeTimeLabel = Time
coreDatetimePicker.datetimeOkLabel = Ok
#XBUT: Button used to cancel the date time selection and close the calendar.
coreDatetimePicker.datetimeCancelLabel = Cancel
#XACT aria label for expand/collapse button when the Dynamic Page is collapsed
coreDynamicPage.expandLabel = Expand Header
#XACT aria label for expand/collapse button when the Dynamic Page is expanded
coreDynamicPage.collapseLabel = Collapse Header
#XACT aria label for pin button when the Dynamic Page should be pinned
coreDynamicPage.pinLabel = Pin Header
#XACT aria label for pin button when the Panel should be unpinned
coreDynamicPage.unpinLabel = Unpin Header
#XBUT: Button used to display more of the hidden text on a feed list item when the amount of text surpasses the max character limit.
coreFeedListItem.moreLabel = {count} more
#XBUT: Button used to hide text in a feed list item that surpasses the max character limit.
Expand Down
6 changes: 6 additions & 0 deletions libs/i18n/src/lib/translations/translations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ export default {
datetimeOkLabel: 'Ok',
datetimeCancelLabel: 'Cancel'
},
coreDynamicPage: {
expandLabel: 'Expand Header',
collapseLabel: 'Collapse Header',
pinLabel: 'Pin Header',
unpinLabel: 'Unpin Header'
},
coreFeedListItem: {
moreLabel: '{count} more',
lessLabel: 'Less'
Expand Down
4 changes: 4 additions & 0 deletions libs/i18n/src/lib/translations/translations_bg.properties
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ coreDatetimePicker.displayTypeDateLabel = Дата
coreDatetimePicker.displayTypeTimeLabel = Час
coreDatetimePicker.datetimeOkLabel = Ok
coreDatetimePicker.datetimeCancelLabel = Отмени
coreDynamicPage.expandLabel = Разширяване на заглавието
coreDynamicPage.collapseLabel = Свиване на заглавието
coreDynamicPage.pinLabel = Закачане на заглавието
coreDynamicPage.unpinLabel = Откачане на заглавието
coreFeedListItem.moreLabel = Повече
coreFeedListItem.lessLabel = По-малко
coreGridList.filterBarCancelButtonTitle = Отмени
Expand Down
6 changes: 6 additions & 0 deletions libs/i18n/src/lib/translations/translations_bg.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ export default {
datetimeOkLabel: 'Ok',
datetimeCancelLabel: 'Отмени'
},
coreDynamicPage: {
expandLabel: 'Разширяване на заглавието',
collapseLabel: 'Свиване на заглавието',
pinLabel: 'Закачане на заглавието',
unpinLabel: 'Откачане на заглавието'
},
coreFeedListItem: {
moreLabel: 'Повече',
lessLabel: 'По-малко'
Expand Down
4 changes: 4 additions & 0 deletions libs/i18n/src/lib/translations/translations_cs.properties
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ coreDatetimePicker.displayTypeDateLabel = Datum
coreDatetimePicker.displayTypeTimeLabel = Čas
coreDatetimePicker.datetimeOkLabel = Ok
coreDatetimePicker.datetimeCancelLabel = Zrušit
coreDynamicPage.expandLabel = Rozbalit záhlaví
coreDynamicPage.collapseLabel = Sbalit záhlaví
coreDynamicPage.pinLabel = Připnout záhlaví
coreDynamicPage.unpinLabel = Odepnout záhlaví
coreFeedListItem.moreLabel = Více
coreFeedListItem.lessLabel = Méně
coreGridList.filterBarCancelButtonTitle = Zrušit
Expand Down
6 changes: 6 additions & 0 deletions libs/i18n/src/lib/translations/translations_cs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ export default {
datetimeOkLabel: 'Ok',
datetimeCancelLabel: 'Zrušit'
},
coreDynamicPage: {
expandLabel: 'Rozbalit záhlaví',
collapseLabel: 'Sbalit záhlaví',
pinLabel: 'Připnout záhlaví',
unpinLabel: 'Odepnout záhlaví'
},
coreFeedListItem: {
moreLabel: 'Více',
lessLabel: 'Méně'
Expand Down
4 changes: 4 additions & 0 deletions libs/i18n/src/lib/translations/translations_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ coreDatetimePicker.displayTypeDateLabel = Datum
coreDatetimePicker.displayTypeTimeLabel = Uhrzeit
coreDatetimePicker.datetimeOkLabel = OK
coreDatetimePicker.datetimeCancelLabel = Abbrechen
coreDynamicPage.expandLabel = Kopfzeile erweitern
coreDynamicPage.collapseLabel = Kopfzeile reduzieren
coreDynamicPage.pinLabel = Kopfzeile anheften
coreDynamicPage.unpinLabel = Kopfzeile lösen
coreFeedListItem.moreLabel = {count} weitere
coreFeedListItem.lessLabel = Weniger
coreGridList.filterBarCancelButtonTitle = Abbrechen
Expand Down
6 changes: 6 additions & 0 deletions libs/i18n/src/lib/translations/translations_de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ export default {
datetimeOkLabel: 'OK',
datetimeCancelLabel: 'Abbrechen'
},
coreDynamicPage: {
expandLabel: 'Kopfzeile erweitern',
collapseLabel: 'Kopfzeile reduzieren',
pinLabel: 'Kopfzeile anheften',
unpinLabel: 'Kopfzeile lösen'
},
coreFeedListItem: {
moreLabel: '{count} weitere',
lessLabel: 'Weniger'
Expand Down
4 changes: 4 additions & 0 deletions libs/i18n/src/lib/translations/translations_fr.properties
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ coreDatetimePicker.displayTypeDateLabel = Date
coreDatetimePicker.displayTypeTimeLabel = Heure
coreDatetimePicker.datetimeOkLabel = Ok
coreDatetimePicker.datetimeCancelLabel = Annuler
coreDynamicPage.expandLabel = Développer l'en-tête
coreDynamicPage.collapseLabel = Réduire l'en-tête
coreDynamicPage.pinLabel = Épingler l'en-tête
coreDynamicPage.unpinLabel = Détacher l'en-tête
coreFeedListItem.moreLabel = Plus
coreFeedListItem.lessLabel = Moins
coreGridList.filterBarCancelButtonTitle = Annuler
Expand Down
6 changes: 6 additions & 0 deletions libs/i18n/src/lib/translations/translations_fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ export default {
datetimeOkLabel: 'Ok',
datetimeCancelLabel: 'Annuler'
},
coreDynamicPage: {
expandLabel: "Développer l'en-tête",
collapseLabel: "Réduire l'en-tête",
pinLabel: "Épingler l'en-tête",
unpinLabel: "Détacher l'en-tête"
},
coreFeedListItem: {
moreLabel: 'Plus',
lessLabel: 'Moins'
Expand Down
Loading

0 comments on commit 4ad48cb

Please sign in to comment.