mirror of
https://github.com/home-assistant/frontend.git
synced 2025-11-08 18:39:40 +00:00
* Add language selector * Use intl display names * Use language picker in general settings and profile * Add nativeName option * Add format language util * Add display-name polyfill * Add native name to selector * Rename variable
23 lines
558 B
TypeScript
23 lines
558 B
TypeScript
import memoizeOne from "memoize-one";
|
|
import { FrontendLocaleData } from "../../data/translation";
|
|
|
|
export const formatLanguageCode = (
|
|
languageCode: string,
|
|
locale: FrontendLocaleData
|
|
) => {
|
|
try {
|
|
return formatLanguageCodeMem(locale)?.of(languageCode) ?? languageCode;
|
|
} catch {
|
|
return languageCode;
|
|
}
|
|
};
|
|
|
|
const formatLanguageCodeMem = memoizeOne((locale: FrontendLocaleData) =>
|
|
Intl && "DisplayNames" in Intl
|
|
? new Intl.DisplayNames(locale.language, {
|
|
type: "language",
|
|
fallback: "code",
|
|
})
|
|
: undefined
|
|
);
|