// Code generated by generate.go; DO NOT EDIT.

package diagnostics

import (
	"compress/gzip"
	_ "embed"
	"strings"
	"sync"

	"github.com/microsoft/typescript-go/internal/json"
	"golang.org/x/text/language"
)

var matcher = language.NewMatcher([]language.Tag{
	language.English,
	language.MustParse("zh-CN"),
	language.MustParse("zh-TW"),
	language.MustParse("cs-CZ"),
	language.MustParse("de-DE"),
	language.MustParse("es-ES"),
	language.MustParse("fr-FR"),
	language.MustParse("it-IT"),
	language.MustParse("ja-JP"),
	language.MustParse("ko-KR"),
	language.MustParse("pl-PL"),
	language.MustParse("pt-BR"),
	language.MustParse("ru-RU"),
	language.MustParse("tr-TR"),
})

var localeFuncs = []func() map[Key]string{
	nil, // English (default)
	zhCN,
	zhTW,
	csCZ,
	deDE,
	esES,
	frFR,
	itIT,
	jaJP,
	koKR,
	plPL,
	ptBR,
	ruRU,
	trTR,
}

func loadLocaleData(data string) map[Key]string {
	gr, err := gzip.NewReader(strings.NewReader(data))
	if err != nil {
		panic("failed to create gzip reader: " + err.Error())
	}
	defer gr.Close()
	var result map[Key]string
	if err := json.UnmarshalRead(gr, &result); err != nil {
		panic("failed to unmarshal locale data: " + err.Error())
	}
	return result
}

//go:embed loc/zh-CN.json.gz
var zhCNData string

var zhCN = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(zhCNData)
})

//go:embed loc/zh-TW.json.gz
var zhTWData string

var zhTW = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(zhTWData)
})

//go:embed loc/cs-CZ.json.gz
var csCZData string

var csCZ = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(csCZData)
})

//go:embed loc/de-DE.json.gz
var deDEData string

var deDE = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(deDEData)
})

//go:embed loc/es-ES.json.gz
var esESData string

var esES = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(esESData)
})

//go:embed loc/fr-FR.json.gz
var frFRData string

var frFR = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(frFRData)
})

//go:embed loc/it-IT.json.gz
var itITData string

var itIT = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(itITData)
})

//go:embed loc/ja-JP.json.gz
var jaJPData string

var jaJP = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(jaJPData)
})

//go:embed loc/ko-KR.json.gz
var koKRData string

var koKR = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(koKRData)
})

//go:embed loc/pl-PL.json.gz
var plPLData string

var plPL = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(plPLData)
})

//go:embed loc/pt-BR.json.gz
var ptBRData string

var ptBR = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(ptBRData)
})

//go:embed loc/ru-RU.json.gz
var ruRUData string

var ruRU = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(ruRUData)
})

//go:embed loc/tr-TR.json.gz
var trTRData string

var trTR = sync.OnceValue(func() map[Key]string {
	return loadLocaleData(trTRData)
})
