Search code examples
spartacus-storefront

rename Qty at 'add to cart' in Spartacus


enter image description here

I'd like to rename "Qty" into "Quantity"

Follow things I already tried:


In 'spartacus-configuration.module.ts'
i18n: {
  resources: {
    en: {
      product: {
        addToCart: {
          quantity: 'Quantity'
        }
      }
    }
  }
}

in src/assets/i18n-assets/en/produkt
{
   ...
   "addToCart": {
       ...
       "quantity": "Quantity",
       ...
    },
    ...
 }

Solution

  • The easiest way to overwrite translation values is to provide a new resource in app.module.ts config.

    Firstly, new object with specific translations should be defined:

    export const translationOverwrites = {
      en: {
        product: {
          addToCart: {
            quantity: 'Quantity',
          },
        },
      },
    };
    

    and then it should be provided after default Spartacus translations:

    ...  
    providers: [
      provideConfig({
        i18n: { resources: translations },
      }),
      provideConfig({
        i18n: { resources: translationOverwrites },
      }),
    ],
    

    Example code can look like this:

    import { translations } from '@spartacus/assets';
    import { provideConfig } from '@spartacus/core';
    import { HttpClientModule } from '@angular/common/http';
    import { NgModule } from '@angular/core';
    import { BrowserModule } from '@angular/platform-browser';
    import { EffectsModule } from '@ngrx/effects';
    import { StoreModule } from '@ngrx/store';
    import { I18nModule } from '@spartacus/core';
    import { AppRoutingModule } from './app-routing.module';
    import { AppComponent } from './app.component';
    import { SpartacusModule } from './spartacus/spartacus.module';
    
    export const translationOverwrites = {
      en: {
        product: {
          addToCart: {
            quantity: 'Quantity',
          },
        },
      },
    };
    
    @NgModule({
      declarations: [AppComponent],
      imports: [
        BrowserModule,
        HttpClientModule,
        AppRoutingModule,
        StoreModule.forRoot({}),
        EffectsModule.forRoot([]),
        SpartacusModule,
        I18nModule,
      ],
      providers: [
        provideConfig({
          i18n: { resources: translations },
        }),
        provideConfig({
          i18n: { resources: translationOverwrites },
        }),
      ],
      bootstrap: [AppComponent],
    })
    export class AppModule {}
    

    For more information please look into Spartacus documentation: https://sap.github.io/spartacus-docs/i18n/#overwriting-individual-translations