feat: language selection

This commit is contained in:
2026-02-07 23:24:02 -03:00
parent 010646da8a
commit b07bc1db30
4 changed files with 56 additions and 0 deletions

View 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>

View File

@@ -0,0 +1,4 @@
:host {
--mat-list-list-item-leading-avatar-color: transparent;
--mat-list-list-item-leading-avatar-size: 24px;
}

View 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();
});
});

View 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'),
];
}