The @jsverse/transloco-persist-translations plugin provides functionality to cache translations in specified storage. This ensures translations are stored locally and reduces the need for repeated network requests.
To enable persistent translations, provide the necessary configuration in your application's Transloco module or config file. Specify the loader and the storage you want to use.
LocalStorage Example
To enable the plugin, include the following provider in your app providers:
import { provideTranslocoPersistTranslations } from '@jsverse/transloco-persist-translations ';
bootstrapApplication(AppComponent, {
providers: [
provideTranslocoPersistTranslations({
loader: TranslocoHttpLoader, // Auto-generated via ng add
storage: { useValue: localStorage },
}),
],
});
To enable the plugin, include the following provider in your TranslocoRootModule:
transloco-root.module.ts
import { provideTranslocoPersistTranslations } from '@jsverse/transloco-persist-translations';
import { TranslocoHttpLoader } from './transloco-loader';
@NgModule({
providers: [
provideTranslocoPersistTranslations({
loader: TranslocoHttpLoader, // Auto-generated via ng add
storage: { useValue: localStorage },
}),
],
})
export class TranslocoRootModule {}
Ensure you do not include the default loader when using this plugin.
Async Storage (IndexedDB) Example
You can use asynchronous storage like IndexedDB with the help of libraries such as localForage:
import { provideTranslocoPersistTranslations } from '@jsverse/transloco-persist-translations ';
import * as localForage from 'localforage';
localForage.config({
driver: localForage.INDEXEDDB,
name: 'Transloco',
storeName: 'translations',
});
bootstrapApplication(AppComponent, {
providers: [
provideTranslocoPersistTranslations({
loader: TranslocoHttpLoader, // Auto-generated via ng add
storage: { useValue: localForage },
}),
],
});
transloco-root.module.ts
import { provideTranslocoPersistTranslations } from '@jsverse/transloco-persist-translations';
import * as localForage from 'localforage';
localForage.config({
driver: localForage.INDEXEDDB,
name: 'Transloco',
storeName: 'translations',
});
@NgModule({
providers: [
provideTranslocoPersistTranslations({
loader: TranslocoHttpLoader, // Auto-generated via ng add
storage: { useValue: localForage },
}),
],
})
export class TranslocoRootModule {}
Configuration Options
The provideTranslocoPersistTranslations method supports the following configuration options:
The cache is automatically cleared when the ttl expires. However, you can manually clear it using the clearCache method:
app.component.ts
import { TranslocoPersistTranslations } from '@jsverse/transloco-persist-translations';
export class AppComponent {
#translationsCache = inject(TranslocoPersistTranslations);
clearTranslationsCache() {
this.#translationsCache.clearCache();
}
}
With this plugin, you can optimize your app's translation loading process, reduce network requests, and provide a seamless multilingual experience for your users.