mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-07-30 13:48:07 +02:00
Add languages (#17662)
* Add Dutch to languages menu * Add Norwegian to languages menu * fix * consolidate
This commit is contained in:
parent
da62c41e87
commit
4feba8bcf3
@ -113,7 +113,7 @@
|
|||||||
"configurationEditor": "Configuration Editor",
|
"configurationEditor": "Configuration Editor",
|
||||||
"languages": "Languages",
|
"languages": "Languages",
|
||||||
"language": {
|
"language": {
|
||||||
"en": "English",
|
"en": "English (English)",
|
||||||
"es": "Español (Spanish)",
|
"es": "Español (Spanish)",
|
||||||
"zhCN": "简体中文 (Simplified Chinese)",
|
"zhCN": "简体中文 (Simplified Chinese)",
|
||||||
"hi": "हिन्दी (Hindi)",
|
"hi": "हिन्दी (Hindi)",
|
||||||
|
@ -73,6 +73,17 @@ export default function GeneralSettings({ className }: GeneralSettingsProps) {
|
|||||||
const { data: config } = useSWR<FrigateConfig>("config");
|
const { data: config } = useSWR<FrigateConfig>("config");
|
||||||
const logoutUrl = config?.proxy?.logout_url || "/api/logout";
|
const logoutUrl = config?.proxy?.logout_url || "/api/logout";
|
||||||
|
|
||||||
|
// languages
|
||||||
|
|
||||||
|
const languages = [
|
||||||
|
{ code: "en", label: t("menu.language.en") },
|
||||||
|
{ code: "es", label: t("menu.language.es") },
|
||||||
|
{ code: "zh-CN", label: t("menu.language.zhCN") },
|
||||||
|
{ code: "tr", label: t("menu.language.tr") },
|
||||||
|
{ code: "nl", label: t("menu.language.nl") },
|
||||||
|
{ code: "nb", label: t("menu.language.nb") },
|
||||||
|
];
|
||||||
|
|
||||||
// settings
|
// settings
|
||||||
|
|
||||||
const { language, setLanguage } = useLanguage();
|
const { language, setLanguage } = useLanguage();
|
||||||
@ -313,80 +324,27 @@ export default function GeneralSettings({ className }: GeneralSettingsProps) {
|
|||||||
}
|
}
|
||||||
>
|
>
|
||||||
<span tabIndex={0} className="sr-only" />
|
<span tabIndex={0} className="sr-only" />
|
||||||
<MenuItem
|
{languages.map(({ code, label }) => (
|
||||||
className={
|
<MenuItem
|
||||||
isDesktop
|
key={code}
|
||||||
? "cursor-pointer"
|
className={
|
||||||
: "flex items-center p-2 text-sm"
|
isDesktop
|
||||||
}
|
? "cursor-pointer"
|
||||||
aria-label={t("menu.language.en")}
|
: "flex items-center p-2 text-sm"
|
||||||
onClick={() => setLanguage("en")}
|
}
|
||||||
>
|
aria-label={label}
|
||||||
{language.trim() === "en" ? (
|
onClick={() => setLanguage(code)}
|
||||||
<>
|
>
|
||||||
<LuLanguages className="mr-2 size-4" />
|
{language.trim() === code ? (
|
||||||
{t("menu.language.en")}
|
<>
|
||||||
</>
|
<LuLanguages className="mr-2 size-4" />
|
||||||
) : (
|
{label}
|
||||||
<span className="ml-6 mr-2">{t("menu.language.en")}</span>
|
</>
|
||||||
)}
|
) : (
|
||||||
</MenuItem>
|
<span className="ml-6 mr-2">{label}</span>
|
||||||
<MenuItem
|
)}
|
||||||
className={
|
</MenuItem>
|
||||||
isDesktop
|
))}
|
||||||
? "cursor-pointer"
|
|
||||||
: "flex items-center p-2 text-sm"
|
|
||||||
}
|
|
||||||
aria-label={t("menu.language.es")}
|
|
||||||
onClick={() => setLanguage("es")}
|
|
||||||
>
|
|
||||||
{language === "es" ? (
|
|
||||||
<>
|
|
||||||
<LuLanguages className="mr-2 size-4" />
|
|
||||||
{t("menu.language.es")}
|
|
||||||
</>
|
|
||||||
) : (
|
|
||||||
<span className="ml-6 mr-2">{t("menu.language.es")}</span>
|
|
||||||
)}
|
|
||||||
</MenuItem>
|
|
||||||
<MenuItem
|
|
||||||
className={
|
|
||||||
isDesktop
|
|
||||||
? "cursor-pointer"
|
|
||||||
: "flex items-center p-2 text-sm"
|
|
||||||
}
|
|
||||||
aria-label={t("menu.language.zhCN")}
|
|
||||||
onClick={() => setLanguage("zh-CN")}
|
|
||||||
>
|
|
||||||
{language === "zh-CN" ? (
|
|
||||||
<>
|
|
||||||
<LuLanguages className="mr-2 size-4" />
|
|
||||||
{t("menu.language.zhCN")}
|
|
||||||
</>
|
|
||||||
) : (
|
|
||||||
<span className="ml-6 mr-2">
|
|
||||||
{t("menu.language.zhCN")}
|
|
||||||
</span>
|
|
||||||
)}
|
|
||||||
</MenuItem>
|
|
||||||
<MenuItem
|
|
||||||
className={
|
|
||||||
isDesktop
|
|
||||||
? "cursor-pointer"
|
|
||||||
: "flex items-center p-2 text-sm"
|
|
||||||
}
|
|
||||||
aria-label={t("menu.language.tr")}
|
|
||||||
onClick={() => setLanguage("tr")}
|
|
||||||
>
|
|
||||||
{language === "tr" ? (
|
|
||||||
<>
|
|
||||||
<LuLanguages className="mr-2 size-4" />
|
|
||||||
{t("menu.language.tr")}
|
|
||||||
</>
|
|
||||||
) : (
|
|
||||||
<span className="ml-6 mr-2">{t("menu.language.tr")}</span>
|
|
||||||
)}
|
|
||||||
</MenuItem>
|
|
||||||
</SubItemContent>
|
</SubItemContent>
|
||||||
</Portal>
|
</Portal>
|
||||||
</SubItem>
|
</SubItem>
|
||||||
|
Loading…
Reference in New Issue
Block a user