diff --git a/static/src/app/pub/public.component.html b/static/src/app/pub/public.component.html
new file mode 100644
index 0000000..0680b43
--- /dev/null
+++ b/static/src/app/pub/public.component.html
@@ -0,0 +1 @@
+
diff --git a/static/src/app/pub/public.component.scss b/static/src/app/pub/public.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/static/src/app/pub/public.component.ts b/static/src/app/pub/public.component.ts
new file mode 100644
index 0000000..b57d54a
--- /dev/null
+++ b/static/src/app/pub/public.component.ts
@@ -0,0 +1,13 @@
+import {Component} from '@angular/core';
+import {TranslateService} from '@ngx-translate/core';
+
+@Component({
+ selector: 'cc-public',
+ templateUrl: './public.component.html',
+ styleUrls: ['./public.component.scss']
+})
+export class PublicComponent {
+ constructor(private translate: TranslateService) {
+ this.translate.setDefaultLang('de');
+ }
+}
diff --git a/static/src/app/pub/public.module.ts b/static/src/app/pub/public.module.ts
index dc1c331..57951f9 100644
--- a/static/src/app/pub/public.module.ts
+++ b/static/src/app/pub/public.module.ts
@@ -10,13 +10,45 @@ import {MatBottomSheetModule} from '@angular/material/bottom-sheet';
import {MatListModule} from '@angular/material/list';
import {MatTabsModule} from '@angular/material/tabs';
import {UserListSheetComponent} from './user-list-sheet/user-list-sheet.component';
+import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
+import {HttpClient} from '@angular/common/http';
+import {TranslateHttpLoader} from '@ngx-translate/http-loader';
+
+export function createTranslateLoader(http: HttpClient) {
+ return new TranslateHttpLoader(http, './assets/i18n/public/', '.json');
+}
@NgModule({
declarations: pubRoutingComponents,
- entryComponents: [UserListSheetComponent],
- imports: [CommonModule, SharedModule, MatTableModule, MatCardModule, MatBottomSheetModule, MatListModule,
- MatTabsModule, pubRouterModule],
- providers: [DecorationService, RankService]
+
+ entryComponents: [
+ UserListSheetComponent
+ ],
+
+ imports: [
+ CommonModule,
+ SharedModule,
+ MatTableModule,
+ MatCardModule,
+ MatBottomSheetModule,
+ MatListModule,
+ MatTabsModule,
+ pubRouterModule,
+
+ TranslateModule.forChild({
+ loader: {
+ provide: TranslateLoader,
+ useFactory: (createTranslateLoader),
+ deps: [HttpClient]
+ },
+ isolate: true
+ })
+ ],
+
+ providers: [
+ DecorationService,
+ RankService
+ ]
})
export class PublicModule {
static routes = pubRouterModule;
diff --git a/static/src/app/pub/public.routing.ts b/static/src/app/pub/public.routing.ts
index 8e5837d..d1c7fd2 100644
--- a/static/src/app/pub/public.routing.ts
+++ b/static/src/app/pub/public.routing.ts
@@ -5,10 +5,13 @@ import {DecorationOverviewComponent} from './decoration-overview/decoration-over
import {DecorationPanelComponent} from './decoration-overview/decoration-panel/decoration-panel.component';
import {RankPanelComponent} from './rank-overview/rank-panel/rank-panel.component';
import {UserListSheetComponent} from './user-list-sheet/user-list-sheet.component';
+import {PublicComponent} from './public.component';
+import {StatisticComponent} from '../statistic/stats.component';
export const publicRoutes: Routes = [
{
path: '',
+ component: PublicComponent,
children: [
{
path: 'ranks',
@@ -24,6 +27,5 @@ export const publicRoutes: Routes = [
export const pubRouterModule: ModuleWithProviders = RouterModule.forChild(publicRoutes);
-export const pubRoutingComponents = [RankOverviewComponent, DecorationOverviewComponent, DecorationPanelComponent,
+export const pubRoutingComponents = [PublicComponent, RankOverviewComponent, DecorationOverviewComponent, DecorationPanelComponent,
RankPanelComponent, UserListSheetComponent];
-
diff --git a/static/src/app/pub/rank-overview/rank-overview.component.html b/static/src/app/pub/rank-overview/rank-overview.component.html
index 937afed..1df56cb 100644
--- a/static/src/app/pub/rank-overview/rank-overview.component.html
+++ b/static/src/app/pub/rank-overview/rank-overview.component.html
@@ -1,5 +1,5 @@
-
Übersicht über alle Ränge
+
{{'public.ranks.headline' | translate}}
{{fraction.BLUFOR}}
@@ -7,12 +7,10 @@
- Rankabzeichen |
 |
- Name |
{{element.name}} |
@@ -26,18 +24,14 @@
- Rankabzeichen |
 |
- Name |
{{element.name}} |
-
-
diff --git a/static/src/app/pub/user-list-sheet/user-list-sheet.component.html b/static/src/app/pub/user-list-sheet/user-list-sheet.component.html
index 5ab5273..23cbf7b 100644
--- a/static/src/app/pub/user-list-sheet/user-list-sheet.component.html
+++ b/static/src/app/pub/user-list-sheet/user-list-sheet.component.html
@@ -1,7 +1,7 @@
-

+
- Aktive Teilnehmer mit Rang: {{data.rank.name}}
+ {{'public.list.users.headline' | translate}} {{'public.ranks.rank' | translate}} {{data.rank.name}}
@@ -12,7 +12,7 @@
- Aktive Teilnehmer mit {{data.decoration.isMedal ? 'Orden' : 'Ordensband'}}: {{data.decoration.name}}
+ {{'public.list.users.headline' | translate}} {{data.decoration.isMedal ? 'Orden' : 'Ordensband'}} : {{data.decoration.name}}
@@ -22,7 +22,7 @@
{{user.username}}
- {{user.squadId.fraction === 'BLUFOR' ? fraction.BLUFOR : fraction.OPFOR}} - {{user.squadId.name}}
+ {{user.squadId.fraction === 'BLUFOR' ? fraction.BLUFOR : fraction.OPFOR}} - {{user.squadId.name}}
diff --git a/static/src/app/shared.module.ts b/static/src/app/shared.module.ts
index 428b5cd..47b6b23 100644
--- a/static/src/app/shared.module.ts
+++ b/static/src/app/shared.module.ts
@@ -11,6 +11,10 @@ import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
import {HttpClient} from '@angular/common/http';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
+export function createTranslateLoader(http: HttpClient) {
+ return new TranslateHttpLoader(http, './assets/i18n/', '.json');
+}
+
@NgModule({
declarations: [
ShowErrorComponent,
@@ -27,11 +31,10 @@ import {TranslateHttpLoader} from '@ngx-translate/http-loader';
MatIconModule,
MatTooltipModule,
- // 3rd party
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
- useFactory: HttpLoaderFactory,
+ useFactory: (createTranslateLoader),
deps: [HttpClient]
}
})
@@ -47,15 +50,8 @@ import {TranslateHttpLoader} from '@ngx-translate/http-loader';
ListFilterComponent,
SearchFieldComponent,
MatTooltipModule,
- TranslateModule],
+ TranslateModule
+ ],
})
export class SharedModule {
}
-
-export function HttpLoaderFactory(http: HttpClient) {
- return new TranslateHttpLoader(
- http,
- `/assets/i18n/`,
- '.json'
- );
-}
diff --git a/static/src/assets/i18n/de.json b/static/src/assets/i18n/de.json
new file mode 100644
index 0000000..a3ffcda
--- /dev/null
+++ b/static/src/assets/i18n/de.json
@@ -0,0 +1,25 @@
+{
+ "navigation.top.board": "Zum Forum",
+ "navigation.top.overview": "Armeeübersicht",
+ "navigation.top.ranks": "Ränge",
+ "navigation.top.decorations": "Auszeichnungem",
+ "navigation.top.statistics": "Statistiken",
+ "navigation.top.login": "Login",
+ "navigation.top.logout": "Abmelden",
+ "navigation.top.management": "Verwaltung",
+ "navigation.top.management.users": "Teilnehmer",
+ "navigation.top.management.squads": "Squads",
+ "navigation.top.management.decorations": "Auszeichnungen",
+ "navigation.top.management.ranks": "Ränge",
+ "navigation.top.request": "Beantragen",
+ "navigation.top.request.open": "Offene Anträge",
+ "navigation.top.request.manage": "Anträge",
+ "navigation.top.request.promotion": "Beförderung",
+ "navigation.top.request.award": "Orden/ Auszeichnung",
+ "navigation.top.admin": "Admin Panel",
+ "navigation.button.scroll.top": "Zum Seitenanfang",
+
+ "public.army.headline": "Übersicht über alle Spieler, Squads und Armeen",
+ "public army.squad.members": "Mitglieder:",
+ "public.army.members": "Armeemitglieder:"
+}
diff --git a/static/src/assets/i18n/en.json b/static/src/assets/i18n/en.json
new file mode 100644
index 0000000..2c63c08
--- /dev/null
+++ b/static/src/assets/i18n/en.json
@@ -0,0 +1,2 @@
+{
+}