import { EnvironmentProviders, isDevMode, makeEnvironmentProviders } from '@angular/core'
import { provideTransloco } from '@jsverse/transloco'
import { provideTranslocoPersistLang } from '@jsverse/transloco-persist-lang'
import { I18nService } from './i18n.service'
import { TranslocoHttpLoader } from './transloco-http-loader'

export interface I18nConfig {
	availableLangs: string[]
	defaultLang: string
}

export function provideI18n(config: I18nConfig): EnvironmentProviders {
	return makeEnvironmentProviders([
		provideTransloco({
			config: {
				availableLangs: config.availableLangs,
				defaultLang: config.defaultLang,
				reRenderOnLangChange: true,
				prodMode: !isDevMode(),
			},
			loader: TranslocoHttpLoader,
		}),
		provideTranslocoPersistLang({ storage: { useValue: localStorage } }),
		TranslocoHttpLoader,
		I18nService,
	])
}
