feat: language selection
This commit is contained in:
6
src/app/pages/settings/languages/languages.html
Normal file
6
src/app/pages/settings/languages/languages.html
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<app-simple-layout title="settings.language.title" [withBackBtn]="true">
|
||||||
|
<app-icon-action-list
|
||||||
|
(action)="translateService.use($event)"
|
||||||
|
[items]="languages"
|
||||||
|
/>
|
||||||
|
</app-simple-layout>
|
||||||
4
src/app/pages/settings/languages/languages.scss
Normal file
4
src/app/pages/settings/languages/languages.scss
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
:host {
|
||||||
|
--mat-list-list-item-leading-avatar-color: transparent;
|
||||||
|
--mat-list-list-item-leading-avatar-size: 24px;
|
||||||
|
}
|
||||||
25
src/app/pages/settings/languages/languages.spec.ts
Normal file
25
src/app/pages/settings/languages/languages.spec.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { Languages } from './languages';
|
||||||
|
import { provideTranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
|
describe('Languages', () => {
|
||||||
|
let component: Languages;
|
||||||
|
let fixture: ComponentFixture<Languages>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [Languages],
|
||||||
|
providers: [provideTranslateService({})],
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(Languages);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
await fixture.whenStable();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
21
src/app/pages/settings/languages/languages.ts
Normal file
21
src/app/pages/settings/languages/languages.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import { Component, inject } from '@angular/core';
|
||||||
|
import { SimpleLayout } from '../../../components/simple-layout/simple-layout';
|
||||||
|
import { MatListModule } from '@angular/material/list';
|
||||||
|
import { IconActionList } from '../../../components/icon-action-list/icon-action-list';
|
||||||
|
import { IconActionListItem } from '../../../components/icon-action-list/IconActionListItem';
|
||||||
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-languages',
|
||||||
|
imports: [SimpleLayout, MatListModule, IconActionList],
|
||||||
|
templateUrl: './languages.html',
|
||||||
|
styleUrl: './languages.scss',
|
||||||
|
})
|
||||||
|
export class Languages {
|
||||||
|
protected readonly translateService = inject(TranslateService);
|
||||||
|
readonly languages = [
|
||||||
|
new IconActionListItem('/icons/flags/sp.png', 'settings.language.spanish', 'es'),
|
||||||
|
new IconActionListItem('/icons/flags/us.png', 'settings.language.english', 'en'),
|
||||||
|
new IconActionListItem('/icons/flags/br.png', 'settings.language.portuguese', 'pt'),
|
||||||
|
];
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user