Documentation
¶
Index ¶
- Constants
- Variables
- func BestMatch(preferredLanguageTags []string, supportedLanguageTags SupportedLanguages) (int, language.Tag)
- func GetMatcher(supported []language.Tag) language.Matcher
- func GetPreferredLanguageTags(ctx context.Context) []string
- func HTMLDir(languageTag string) string
- func LocalizeJSONObject(preferredLanguageTags []string, fallbackLanguage FallbackLanguage, ...) string
- func LocalizeStringMap(preferredLanguageTags []string, fallbackLanguage FallbackLanguage, ...) string
- func Match_Deprecated(preferredLanguageTags []string, supportedLanguageTags SupportedLanguages) (int, language.Tag)
- func ParseAcceptLanguage(header string) []string
- func ParseUILocales(uiLocales string) []string
- func Resolve(preferred []string, fallback string, supported []string) (int, language.Tag)
- func ResolveCloudflareTurnstile(lang string) string
- func ResolveRecaptchaV2(lang string) string
- func ResolveUnicodeCldr(lang language.Tag, fallback language.Tag) string
- func WithPreferredLanguageTags(ctx context.Context, tags []string) context.Context
- type FallbackLanguage
- type SupportedLanguages
Constants ¶
const BuiltinBaseLanguage = "en"
BuiltinBaseLanguage is the default language. It is english. Default templates and translation are written in english.
Variables ¶
var AvailableLanguages = []string{
"en",
"af",
"am",
"ar",
"hy",
"az",
"eu",
"be",
"bn",
"bg",
"my",
"ca",
"zh-HK",
"zh-CN",
"zh-TW",
"hr",
"cs",
"da",
"nl",
"et",
"fil",
"fi",
"fr",
"gl",
"ka",
"de",
"el",
"hi",
"hu",
"is",
"id",
"it",
"ja",
"kn",
"km",
"ko",
"ky",
"lo",
"lv",
"lt",
"mk",
"ms",
"ml",
"mr",
"mn",
"ne",
"no",
"fa",
"pl",
"pt-PT",
"pt-BR",
"pt",
"ro",
"ru",
"sr",
"si",
"sk",
"sl",
"es-ES",
"es-419",
"es",
"sw",
"sv",
"ta",
"te",
"th",
"tr",
"uk",
"vi",
"zu",
}
AvailableLanguages are the languages we recognize.
var AvailableLanguagesMap = map[string]struct{}{}
AvailableLangagesMap is the set of available languages
var BuiltinLanguages []string
BuiltinLanguages are the languages we have localization.
var CldrLanguages = []string{}/* 710 elements not displayed */
Copied from https://github.com/unicode-org/cldr-json/blob/main/cldr-json/cldr-core/availableLocales.json For mapping BCP47 language tag to CLDR language tag.
var CloudflareTurnstileLanguages = []string{
"ar-EG",
"ar",
"bg-BG",
"bg",
"zh-CN",
"zh",
"zh-TW",
"hr-HR",
"hr",
"cs-CZ",
"cs",
"da-DK",
"da",
"nl-NL",
"nl",
"en-US",
"en",
"fa-IR",
"fa",
"fi-FI",
"fi",
"fr-FR",
"fr",
"de-DE",
"de",
"el-GR",
"el",
"he-IL",
"he",
"hi-IN",
"hi",
"hu-HU",
"hu",
"id-ID",
"id",
"it-IT",
"it",
"ja-JP",
"ja",
"tlh",
"ko-KR",
"ko",
"lt-LT",
"lt",
"ms-MY",
"ms",
"nb-NO",
"nb",
"pl-PL",
"pl",
"pt-BR",
"pt",
"ro-RO",
"ro",
"ru-RU",
"ru",
"sr-BA",
"sr",
"sk-SK",
"sk",
"sl-SI",
"sl",
"es-ES",
"es",
"sv-SE",
"sv",
"tl-PH",
"tl",
"th-TH",
"th",
"tr-TR",
"tr",
"uk-UA",
"uk",
"vi-VN",
"vi",
}
https://developers.cloudflare.com/turnstile/reference/supported-languages/ as of 2024-07-23
var MachineLocalizedLanguages = []string{
"de",
"el",
"es",
"es-419",
"es-ES",
"fil",
"fr",
"id",
"it",
"ja",
"ko",
"ms",
"nl",
"pl",
"pt",
"pt-BR",
"pt-PT",
"th",
"vi",
"zh-CN",
}
MachineLocalizedLanguages are the languages localized by AI.
var ManuallyLocalizedLanguages = []string{
"en",
"zh-HK",
"zh-TW",
}
ManuallyLocalizedLanguages are the languages we do localization manually.
var RecaptchaV2Languages = []string{
"af",
"sq",
"am",
"ar",
"hy",
"as",
"az",
"eu",
"be",
"bn",
"bg",
"my",
"ca",
"zh-HK",
"zh-CN",
"zh-TW",
"hr",
"cs",
"da",
"nl",
"en-GB",
"en",
"et",
"fil",
"fi",
"fr",
"fr-CA",
"gl",
"ka",
"de",
"de-AT",
"de-CH",
"el",
"gu",
"iw",
"hi",
"hu",
"is",
"id",
"ga",
"it",
"ja",
"kn",
"kk",
"km",
"ko",
"ky",
"lo",
"lv",
"lt",
"mk",
"ms",
"ml",
"mr",
"mn",
"ne",
"no",
"or",
"fa",
"pl",
"pt",
"pt-BR",
"pt-PT",
"ro",
"ru",
"sr",
"si",
"sk",
"sl",
"es",
"es-419",
"sw",
"sv",
"ta",
"te",
"th",
"tr",
"uk",
"ur",
"uz",
"vi",
"cy",
"zu",
}
https://developers.google.com/recaptcha/docs/language as of 2024-07-23
Functions ¶
func BestMatch ¶
func BestMatch(preferredLanguageTags []string, supportedLanguageTags SupportedLanguages) (int, language.Tag)
matcher.Match will not return tags with higher confidence For example, with supported tags zh-CN, zh-HK matcher.Match("zh-Hant") will return zh-CN, which confidence is Low, but not zh-HK which confidence is High. This function is an implementation of Match trying to return an option with higher confidence.
func LocalizeJSONObject ¶
func LocalizeJSONObject(preferredLanguageTags []string, fallbackLanguage FallbackLanguage, jsonObject map[string]interface{}, key string) string
LocalizeJSONObject returns the localized value of key in jsonObject according to preferredLanguageTags.
func LocalizeStringMap ¶
func LocalizeStringMap(preferredLanguageTags []string, fallbackLanguage FallbackLanguage, stringMap map[string]string, key string) string
LocalizeStringMap returns the localized value of key in stringMap according to preferredLanguageTags.
func Match_Deprecated ¶
func Match_Deprecated(preferredLanguageTags []string, supportedLanguageTags SupportedLanguages) (int, language.Tag)
Match matches preferredLanguageTags to supportedLanguageTags using fallbackLanguageTag as fallback. NOTE(tung): Replaced by BestMatch. Use BestMatch instead. This function were keep just for reference and testing
func ParseAcceptLanguage ¶
func ParseUILocales ¶
func Resolve ¶
Resolve resolved language based on fallback and supportedLanguages config. Return index of supportedLanguages and resolved language tag. Return -1 if not found
func ResolveCloudflareTurnstile ¶
ResolveCloudflareTurnstile resolves language tag to Cloudflare-Turnstile-supported language tags ref https://developers.cloudflare.com/turnstile/reference/supported-languages/
func ResolveRecaptchaV2 ¶
ResolveRecaptchaV2 resolves language tag to RecaptchaV2-supported language tags ref https://developers.google.com/recaptcha/docs/language
func ResolveUnicodeCldr ¶
ResolveUnicodeCldr resolves language tag to Unicode CLDR language tag.
Types ¶
type FallbackLanguage ¶
type FallbackLanguage string
FallbackLanguage is non-empty. Its purpose is to ensure fallback language is non-empty at compile time. Use Fallback to construct FallbackLanguage. Use string() to convert it back to a string.
func Fallback ¶
func Fallback(fallbackLanguageTag string) FallbackLanguage
Fallback constructs FallbackLanguage.
type SupportedLanguages ¶
type SupportedLanguages []string
SupportedLanguages ensures fallback language is the first element.
func Supported ¶
func Supported(supportedLanguageTags []string, fallbackLanguage FallbackLanguage) SupportedLanguages
Supported constructs SupportedLanguages.