Skip to content

Commit ffdc7ee

Browse files
committed
Get bookings translations working again
1 parent a1e406f commit ffdc7ee

File tree

11 files changed

+63
-18
lines changed

11 files changed

+63
-18
lines changed

angular.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@
7474
"serve": {
7575
"builder": "@angular-devkit/build-angular:dev-server",
7676
"options": {
77-
"browserTarget": "train-platform:build"
77+
"browserTarget": "train-platform:build",
78+
"proxyConfig": "proxy.conf.json"
7879
},
7980
"configurations": {
8081
"production": {

projects/bookings/src/app/booking.module.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { CommonModule } from '@angular/common';
2+
import { HttpClientModule } from '@angular/common/http';
23
import { NgModule } from '@angular/core';
34
import { FormsModule } from '@angular/forms';
45
import { BrowserModule } from '@angular/platform-browser';
@@ -7,11 +8,13 @@ import { HotToastModule } from '@ngneat/hot-toast';
78
import { TranslateModule } from '@ngx-translate/core';
89
import { BookingFormComponent } from './booking-form/booking-form.component';
910
import { BookingComponent } from './booking.component';
11+
import { TranslationLoaderProvider } from './translation-loader.provider';
1012

1113
@NgModule({
1214
declarations: [BookingComponent, BookingFormComponent],
1315
imports: [
1416
BrowserModule,
17+
HttpClientModule,
1518
CommonModule,
1619
FormsModule,
1720
RouterModule.forRoot([
@@ -22,7 +25,10 @@ import { BookingComponent } from './booking.component';
2225
},
2326
]),
2427
HotToastModule.forRoot(),
25-
TranslateModule.forRoot(),
28+
TranslateModule.forRoot({
29+
loader: TranslationLoaderProvider,
30+
defaultLanguage: 'en',
31+
}),
2632
],
2733
exports: [BookingComponent],
2834
})
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { HttpClient } from '@angular/common/http';
2+
import { TranslateLoader } from '@ngx-translate/core';
3+
import { Observable } from 'rxjs';
4+
import { environment } from '../environments/environment';
5+
6+
export type Language = 'en' | 'de';
7+
8+
class TranslateHttpLoader implements TranslateLoader {
9+
constructor(private http: HttpClient) {}
10+
getTranslation(language: Language): Observable<any> {
11+
const cacheBusting = new Date().getTime();
12+
const path = `${environment.assetUrl}/assets/i18n/${language}.json?t=${cacheBusting}`;
13+
return this.http.get(path);
14+
}
15+
}
16+
17+
export const TranslationLoaderProvider = {
18+
provide: TranslateLoader,
19+
useFactory: (http: HttpClient) => new TranslateHttpLoader(http),
20+
deps: [HttpClient],
21+
};
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"booking": {
3+
"title": "Reise {{ id }} buchen",
4+
"reserveSeatQuestion": "Möchten Sie einen Sitzplatz reservieren?",
5+
"firstClassQuestion": "Möchten Sie in der ersten Klasse sitzen?",
6+
"bookAction": "Buchen",
7+
"confirmation": "Reise gebucht!",
8+
"error": "Reise konnte nicht gebucht werden!"
9+
}
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"booking": {
3+
"title": "Book journey {{ id }}",
4+
"reserveSeatQuestion": "Do you want to reserve a seat?",
5+
"firstClassQuestion": "Do you want to sit in first class?",
6+
"bookAction": "Book",
7+
"confirmation": "Booked a journey!",
8+
"error": "Journey could not be booked!"
9+
}
10+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export const environment = {
22
production: false,
33
embedded: true,
4+
assetUrl: '/frontends/bookings',
45
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export const environment = {
22
production: true,
33
embedded: true,
4+
assetUrl: '/frontends/bookings',
45
};

projects/bookings/src/environments/environment.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
export const environment = {
66
production: false,
77
embedded: false,
8+
assetUrl: '',
89
};
910

1011
/*

projects/train-platform/src/assets/i18n/de.json

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,6 @@
1212
"dark": "Dunkel"
1313
}
1414
},
15-
"booking": {
16-
"title": "Reise {{ id }} buchen",
17-
"reserveSeatQuestion": "Möchten Sie einen Sitzplatz reservieren?",
18-
"firstClassQuestion": "Möchten Sie in der ersten Klasse sitzen?",
19-
"bookAction": "Buchen",
20-
"confirmation": "Reise gebucht!",
21-
"error": "Reise konnte nicht gebucht werden!"
22-
},
2315
"journey": {
2416
"bookAction": "Buchen"
2517
}

projects/train-platform/src/assets/i18n/en.json

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,6 @@
1212
"dark": "Dark"
1313
}
1414
},
15-
"booking": {
16-
"title": "Book journey {{ id }}",
17-
"reserveSeatQuestion": "Do you want to reserve a seat?",
18-
"firstClassQuestion": "Do you want to sit in first class?",
19-
"bookAction": "Book",
20-
"confirmation": "Booked a journey!",
21-
"error": "Journey could not be booked!"
22-
},
2315
"journey": {
2416
"bookAction": "Book"
2517
}

0 commit comments

Comments
 (0)