Browse Source

Added spell-table to localization

Warafear 1 year ago
parent
commit
1a7de0043e

+ 2 - 2
src/app/app.component.ts

@@ -15,10 +15,10 @@ export class AppComponent {
 
   private initTranslation(): void {
     this.translate.addLangs(['en', 'de']);
-    this.translate.setDefaultLang('de');
+    // this.translate.setDefaultLang('de');
     const userLang = localStorage.getItem('language');
     console.log('userLang', userLang);
-    this.translate.setDefaultLang('en');
+    this.translate.setDefaultLang(userLang || 'de');
     // this.translate.use(userLang || 'de'); // TODO: probably use defaultLangugae
   }
 }

+ 42 - 17
src/app/journal/journal-stats/weapons-container/spell-table/spell-table.component.html

@@ -1,11 +1,11 @@
 <div class="spell-box">
   <div class="heading-list">
-    <div>Kosten</div>
-    <div>Name</div>
-    <div>Stufe</div>
-    <div>Bonus</div>
-    <div>Effekt</div>
-    <div>Reichweite</div>
+    <div>{{ "spells.header.cost" | translate }}</div>
+    <div>{{ "spells.header.name" | translate }}</div>
+    <div>{{ "spells.header.level" | translate }}</div>
+    <div>{{ "spells.header.bonus" | translate }}</div>
+    <div>{{ "spells.header.effect" | translate }}</div>
+    <div>{{ "spells.header.range" | translate }}</div>
   </div>
   <div
     id="spells-table"
@@ -65,7 +65,7 @@
           font-weight: 500;
         "
       >
-        Noch keine Zauber hinzugefügt
+        {{ "spells.empty" | translate }}
       </div>
     }
   </div>
@@ -89,12 +89,26 @@
   <!-- NAME -->
   <ng-template #spellNameTemplate let-spell="spell">
     <div>
-      <div class="bold">{{ spell.german }}</div>
+      <div class="bold">
+        @if (translate.getDefaultLang() == "de") {
+          {{ spell.german }}
+        } @else {
+          {{ spell.english }}
+        }
+      </div>
       <div class="bold small">
-        <span *ngIf="spell.needsConcentration">C | </span>
-        <span *ngIf="spell.needsVerbal">V </span>
-        <span *ngIf="spell.needsSomatic">G </span>
-        <span *ngIf="spell.needsMaterial">M </span>
+        <span *ngIf="spell.needsConcentration"
+          >{{ "spells.concentrationAbbr" | translate }} |
+        </span>
+        <span *ngIf="spell.needsVerbal"
+          >{{ "spells.components.verbal" | translate }}
+        </span>
+        <span *ngIf="spell.needsSomatic"
+          >{{ "spells.components.somatic" | translate }}
+        </span>
+        <span *ngIf="spell.needsMaterial"
+          >{{ "spells.components.material" | translate }}
+        </span>
         <div></div>
       </div>
     </div>
@@ -111,7 +125,9 @@
     <div>
       <div *ngIf="spell.needsSavingThrow">
         <div>
-          {{ attributes[spell.savingThrowAttribute!] }}
+          {{
+            "attributesAbbreviations." + spell.savingThrowAttribute | translate
+          }}
         </div>
         <div>{{ spellSaveDC }}</div>
       </div>
@@ -127,7 +143,10 @@
     <div>
       @if (spell.doesDamage) {
         <div *ngFor="let damage of spell.damage; let index = index">
-          <span>{{ damage.diceNumber }} {{ damage.diceType }} </span>
+          <span>
+            {{ damage.diceNumber }} {{ "general.dice" | translate }}
+            {{ damage.diceType }}
+          </span>
           <span>
             <icon
               [size]="'xs'"
@@ -139,7 +158,10 @@
       }
       @if (spell.doesHeal) {
         <div class="heal">
-          <span>{{ spell.heal.diceNumber }} {{ spell.heal.diceType }} </span>
+          <span
+            >{{ spell.heal.diceNumber }} {{ "general.dice" | translate }}
+            {{ spell.heal.diceType }}
+          </span>
           <span *ngIf="spell.heal.additionalHeal"
             >+{{ spell.heal.additionalHeal }}
           </span>
@@ -155,10 +177,13 @@
   <ng-template #spellRangeTemplate let-spell="spell">
     <div class="spell-range">
       <div *ngIf="spell.isRanged">{{ spell.range }} ft.</div>
-      <div *ngIf="!spell.isRanged">Berührung</div>
+      <div *ngIf="!spell.isRanged">{{ "spells.touch" | translate }}</div>
 
       <div *ngIf="spell.hasAreaOfEffect">
-        <span>{{ spell.radius }} ft. {{ areas[spell.areaOfEffectType] }} </span>
+        <span
+          >{{ spell.radius }} ft.
+          {{ "areaTypes." + spell.areaOfEffectType | translate }}</span
+        >
       </div>
     </div>
   </ng-template>

+ 10 - 8
src/app/journal/journal-stats/weapons-container/spell-table/spell-table.component.ts

@@ -10,6 +10,7 @@ import { FullSpellcardComponent } from 'src/app/shared-components/full-spellcard
 import { Observable, OperatorFunction } from 'rxjs';
 import { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';
 import { FavoriteSpellsModalComponent } from './favorite-spells-modal/favorite-spells-modal.component';
+import { TranslateService } from '@ngx-translate/core';
 
 @Component({
   selector: 'spell-table',
@@ -37,19 +38,20 @@ export class SpellTableComponent {
     charisma: 'CHA',
   };
 
-  public areas: any = {
-    cone: 'Kegel',
-    sphere: 'Kugel',
-    circle: 'Kreis',
-    line: 'Linie',
-    square: 'Quadrat',
-    cube: 'Würfel',
-  };
+  // public areas: any = {
+  //   cone: 'Kegel',
+  //   sphere: 'Kugel',
+  //   circle: 'Kreis',
+  //   line: 'Linie',
+  //   square: 'Quadrat',
+  //   cube: 'Würfel',
+  // };
 
   public constructor(
     public dataAccessor: DataService,
     private modalAccessor: ModalService,
     public detailsAccessor: DetailsService,
+    public translate: TranslateService,
   ) {}
 
   public ngOnInit(): void {

+ 38 - 0
src/assets/i18n/de.json

@@ -38,6 +38,15 @@
     "slashing": "Hieb",
     "thunder": "Blitz"
   },
+  "areaTypes": {
+    "cone": "Kegel",
+    "cube": "Würfel",
+    "cylinder": "Zylinder",
+    "line": "Linie",
+    "square": "Quadrat",
+    "sphere": "Kugel",
+    "circle": "Kreis"
+  },
   "attributes": {
     "strength": "Stärke",
     "dexterity": "Geschicklichkeit",
@@ -306,5 +315,34 @@
       "extendedThrowRange": "Erweiterte Wurfweite",
       "placeholder": "Beschreibung der Waffe"
     }
+  },
+  "spells": {
+    "header": {
+      "cost": "Kosten",
+      "name": "Name",
+      "level": "Stufe",
+      "bonus": "Bonus",
+      "effect": "Effekt",
+      "range": "Reichweite"
+    },
+    "components": {
+      "verbal": "V",
+      "somatic": "G",
+      "material": "M",
+      "ritual": "R"
+    },
+    "touch": "Berührung",
+    "empty": "Noch keine Zauber hinzugefügt",
+    "concentrationAbbr": "K",
+    "concentration": "Konzentration"
+  },
+  "abilities": {
+    "label": "Fähigkeiten"
+  },
+  "traits": {
+    "label": "Eigenschaften"
+  },
+  "proficiencies": {
+    "label": "Übung"
   }
 }

+ 43 - 43
src/services/spells/spells.service.ts

@@ -117,7 +117,7 @@ export class SpellsService {
       needsSavingThrow: true,
       savingThrowAttribute: 'wisdom',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd8', damageType: 'necrotic' }],
+      damage: [{ diceNumber: '1', diceType: '8', damageType: 'necrotic' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -209,9 +209,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Constitution',
+      savingThrowAttribute: 'constitution',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd12', damageType: 'poison' }],
+      damage: [{ diceNumber: '1', diceType: '12', damageType: 'poison' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `<p>Du streckst deine Hand in Richtung einer Kreatur in Reichweite, die du sehen kannst, und erzeugst eine Wolke aus ekelhaftem Gas aus deiner Handfläche. Die Kreatur muss einen Konstitutionsrettungswurf schaffen, sonst erleidet sie 1W12 Giftschaden.</p>`,
@@ -281,9 +281,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Constitution',
+      savingThrowAttribute: 'constitution',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd6', damageType: 'poison' }],
+      damage: [{ diceNumber: '1', diceType: '6', damageType: 'poison' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -333,9 +333,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Strength',
+      savingThrowAttribute: 'strength',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd8', damageType: 'lightning' }],
+      damage: [{ diceNumber: '1', diceType: '8', damageType: 'lightning' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -409,9 +409,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Constitution',
+      savingThrowAttribute: 'constitution',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd6', damageType: 'thunder' }],
+      damage: [{ diceNumber: '1', diceType: '6', damageType: 'thunder' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -449,7 +449,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd6', damageType: 'piercing' }],
+      damage: [{ diceNumber: '1', diceType: '6', damageType: 'piercing' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -535,7 +535,7 @@ export class SpellsService {
       needsAttackRoll: false,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd8', damageType: 'thunder' }],
+      damage: [{ diceNumber: '1', diceType: '8', damageType: 'thunder' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -659,9 +659,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Constitution',
+      savingThrowAttribute: 'constitution',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd6', damageType: 'cold' }],
+      damage: [{ diceNumber: '1', diceType: '6', damageType: 'cold' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -699,7 +699,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd10', damageType: 'fire' }],
+      damage: [{ diceNumber: '1', diceType: '10', damageType: 'fire' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -737,7 +737,7 @@ export class SpellsService {
       needsAttackRoll: false,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd8', damageType: 'fire' }],
+      damage: [{ diceNumber: '1', diceType: '8', damageType: 'fire' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -863,9 +863,9 @@ export class SpellsService {
 
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Intelligence',
+      savingThrowAttribute: 'intelligence',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd6', damageType: 'psychic' }],
+      damage: [{ diceNumber: '1', diceType: '6', damageType: 'psychic' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -902,9 +902,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Wisdom',
+      savingThrowAttribute: 'wisdom',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd4', damageType: 'psychic' }],
+      damage: [{ diceNumber: '1', diceType: '4', damageType: 'psychic' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -940,9 +940,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Constitution',
+      savingThrowAttribute: 'constitution',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd12', damageType: 'poison' }],
+      damage: [{ diceNumber: '1', diceType: '12', damageType: 'poison' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1017,9 +1017,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Dexterity',
+      savingThrowAttribute: 'strength',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd8', damageType: 'radiant' }],
+      damage: [{ diceNumber: '1', diceType: '8', damageType: 'radiant' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1057,7 +1057,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd8', damageType: 'necrotic' }],
+      damage: [{ diceNumber: '1', diceType: '8', damageType: 'necrotic' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1133,7 +1133,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd8', damageType: 'cold' }],
+      damage: [{ diceNumber: '1', diceType: '8', damageType: 'cold' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1170,9 +1170,9 @@ export class SpellsService {
       needsConcentration: true,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Dexterity',
+      savingThrowAttribute: 'strength',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd8', damageType: 'fire' }],
+      damage: [{ diceNumber: '1', diceType: '8', damageType: 'fire' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1296,7 +1296,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd6', damageType: 'bludgeoning' }],
+      damage: [{ diceNumber: '1', diceType: '6', damageType: 'bludgeoning' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1370,7 +1370,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd10', damageType: 'force' }],
+      damage: [{ diceNumber: '1', diceType: '10', damageType: 'force' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1408,7 +1408,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd8', damageType: 'lightning' }],
+      damage: [{ diceNumber: '1', diceType: '8', damageType: 'lightning' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1445,9 +1445,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Dexterity',
+      savingThrowAttribute: 'strength',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd6', damageType: 'force' }],
+      damage: [{ diceNumber: '1', diceType: '6', damageType: 'force' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1520,9 +1520,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Dexterity',
+      savingThrowAttribute: 'strength',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd6', damageType: 'acid' }],
+      damage: [{ diceNumber: '1', diceType: '6', damageType: 'acid' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1687,7 +1687,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd10', damageType: 'acid' }],
+      damage: [{ diceNumber: '1', diceType: '10', damageType: 'acid' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1774,7 +1774,7 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Strength',
+      savingThrowAttribute: 'strength',
       doesDamage: false,
       damage: [{ diceNumber: '', diceType: '', damageType: '' }],
       doesHeal: false,
@@ -1821,9 +1821,9 @@ export class SpellsService {
       needsConcentration: false,
       needsAttackRoll: false,
       needsSavingThrow: true,
-      savingThrowAttribute: 'Constitution',
+      savingThrowAttribute: 'constitution',
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd6', damageType: 'radiant' }],
+      damage: [{ diceNumber: '1', diceType: '6', damageType: 'radiant' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `
@@ -1898,7 +1898,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '3', diceType: 'd10', damageType: 'necrotic' }],
+      damage: [{ diceNumber: '3', diceType: '10', damageType: 'necrotic' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de:
@@ -1934,7 +1934,7 @@ export class SpellsService {
       doesDamage: false,
       damage: [{ diceNumber: '', diceType: '', damageType: '' }],
       doesHeal: true,
-      heal: { diceNumber: '1', diceType: 'd8', additionalHeal: 4 },
+      heal: { diceNumber: '1', diceType: '8', additionalHeal: 4 },
       description_de:
         'Eine Kreatur, die du berührst, gewinnt Trefferpunkte in Höhe von 1W8 + deinem Attributsmodifikator im Zauberwirken zurück. Dieser Zauber wirkt nicht auf Untote oder Konstrukte. Auf höheren Graden: Wirkst du diesen Zauber, indem du einen Zauberplatz des 2. Grades oder höher nutzt, steigt die Heilung für jeden Grad über dem 1. um 1W8.',
       description_en:
@@ -2045,7 +2045,7 @@ export class SpellsService {
       doesDamage: false,
       damage: [{ diceNumber: '', diceType: '', damageType: '' }],
       doesHeal: true,
-      heal: { diceNumber: '1', diceType: 'd4', additionalHeal: 4 },
+      heal: { diceNumber: '1', diceType: '4', additionalHeal: 4 },
       description_de:
         'Eine Kreatur deiner Wahl in Reichweite, die du sehen kannst, gewinnt Trefferpunkte in Höhe von 1W4 + deinem Zauberwirken-Attributsmodifikator zurück. Dieser Zauber wirkt nicht auf Untote oder Konstrukte. Auf höheren Graden: Wirkst du diesen Zauber, indem du einen Zauberplatz des 2. Grades oder höher nutzt, steigt die Heilung für jeden Grad über dem 1. um 1W4.',
       description_en:
@@ -2077,7 +2077,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '4', diceType: 'd6', damageType: 'radiant' }],
+      damage: [{ diceNumber: '4', diceType: '6', damageType: 'radiant' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de:
@@ -2253,7 +2253,7 @@ export class SpellsService {
       needsAttackRoll: true,
       needsSavingThrow: false,
       doesDamage: true,
-      damage: [{ diceNumber: '1', diceType: 'd8', damageType: 'force' }],
+      damage: [{ diceNumber: '1', diceType: '8', damageType: 'force' }],
       doesHeal: false,
       heal: { diceNumber: '', diceType: '', additionalHeal: 0 },
       description_de: `