Add translation support for website
All checks were successful
Queue Release Build / prepare (push) Successful in 1m20s
Deploy Web Apps / deploy (push) Successful in 17m37s
Queue Release Build / build-windows (push) Successful in 39m8s
Queue Release Build / build-linux (push) Successful in 1h3m53s
Queue Release Build / finalize (push) Successful in 5m43s

This commit is contained in:
2026-03-13 03:45:17 +01:00
parent 2b6e477c9a
commit 00adf39121
26 changed files with 788 additions and 286 deletions

View File

@@ -8,6 +8,7 @@ import {
signal
} from '@angular/core';
import { isPlatformBrowser, NgOptimizedImage } from '@angular/common';
import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { RouterLink } from '@angular/router';
import { ReleaseService, DetectedOS } from '../../services/release.service';
import { SeoService } from '../../services/seo.service';
@@ -20,6 +21,7 @@ import { ParallaxDirective } from '../../directives/parallax.directive';
standalone: true,
imports: [
NgOptimizedImage,
TranslateModule,
RouterLink,
AdSlotComponent,
ParallaxDirective
@@ -28,7 +30,7 @@ import { ParallaxDirective } from '../../directives/parallax.directive';
})
export class HomeComponent implements OnInit, AfterViewInit, OnDestroy {
readonly detectedOS = signal<DetectedOS>({
name: 'Linux',
key: 'linux',
icon: '🐧',
filePattern: /\.AppImage$/i,
ymlFile: 'latest-linux.yml'
@@ -40,13 +42,10 @@ export class HomeComponent implements OnInit, AfterViewInit, OnDestroy {
private readonly seoService = inject(SeoService);
private readonly scrollAnimation = inject(ScrollAnimationService);
private readonly platformId = inject(PLATFORM_ID);
private readonly translate = inject(TranslateService);
ngOnInit(): void {
this.seoService.update({
title: 'Free Peer-to-Peer Voice, Video & Chat',
description:
'Toju is a free, open-source, peer-to-peer communication app. Crystal-clear voice calls, unlimited screen sharing, '
+ 'no file size limits, complete privacy.',
this.seoService.updateFromTranslations('pages.home.seo', {
url: 'https://toju.app/'
});
@@ -74,4 +73,8 @@ export class HomeComponent implements OnInit, AfterViewInit, OnDestroy {
ngOnDestroy(): void {
this.scrollAnimation.destroy();
}
getDetectedOsLabel(): string {
return this.translate.instant(`common.os.${this.detectedOS().key}`);
}
}