2022-03-16 06:26:15 +00:00
|
|
|
import { useLanguageProfiles, useLanguages } from "@/apis/hooks";
|
|
|
|
import { useEnabledLanguages } from "@/utilities/languages";
|
|
|
|
import { FunctionComponent } from "react";
|
2023-02-09 21:58:38 +00:00
|
|
|
import {
|
|
|
|
Check,
|
|
|
|
CollapseBox,
|
|
|
|
Layout,
|
|
|
|
Message,
|
|
|
|
Section,
|
|
|
|
Selector,
|
|
|
|
} from "../components";
|
|
|
|
import {
|
|
|
|
defaultUndAudioLang,
|
|
|
|
defaultUndEmbeddedSubtitlesLang,
|
|
|
|
enabledLanguageKey,
|
|
|
|
languageProfileKey,
|
|
|
|
} from "../keys";
|
2022-06-30 15:35:23 +00:00
|
|
|
import { useSettingValue } from "../utilities/hooks";
|
2021-03-25 14:22:43 +00:00
|
|
|
import { LanguageSelector, ProfileSelector } from "./components";
|
2023-05-27 13:38:55 +00:00
|
|
|
import EqualsTable from "./equals";
|
2021-03-25 14:22:43 +00:00
|
|
|
import Table from "./table";
|
|
|
|
|
2022-02-23 17:05:23 +00:00
|
|
|
export function useLatestEnabledLanguages() {
|
|
|
|
const { data } = useEnabledLanguages();
|
2022-05-31 15:49:04 +00:00
|
|
|
const latest = useSettingValue<Language.Info[]>(enabledLanguageKey);
|
2021-03-25 14:22:43 +00:00
|
|
|
|
|
|
|
if (latest) {
|
|
|
|
return latest;
|
|
|
|
} else {
|
2022-02-23 17:05:23 +00:00
|
|
|
return data;
|
2021-03-25 14:22:43 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-02-23 17:05:23 +00:00
|
|
|
export function useLatestProfiles() {
|
|
|
|
const { data = [] } = useLanguageProfiles();
|
2022-05-31 15:49:04 +00:00
|
|
|
const latest = useSettingValue<Language.Profile[]>(languageProfileKey);
|
2021-03-25 14:22:43 +00:00
|
|
|
|
|
|
|
if (latest) {
|
|
|
|
return latest;
|
|
|
|
} else {
|
2022-02-23 17:05:23 +00:00
|
|
|
return data;
|
2021-03-25 14:22:43 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-03-16 06:26:15 +00:00
|
|
|
const SettingsLanguagesView: FunctionComponent = () => {
|
2022-01-22 13:35:11 +00:00
|
|
|
const { data: languages } = useLanguages();
|
2023-02-28 15:38:20 +00:00
|
|
|
const { data: undAudioLanguages } = useEnabledLanguages();
|
|
|
|
const { data: undEmbeddedSubtitlesLanguages } = useEnabledLanguages();
|
2021-03-25 14:22:43 +00:00
|
|
|
return (
|
2022-03-16 06:26:15 +00:00
|
|
|
<Layout name="Languages">
|
2022-05-31 15:49:04 +00:00
|
|
|
<Section header="Subtitles Language">
|
|
|
|
<Check
|
|
|
|
label="Single Language"
|
|
|
|
settingKey="settings-general-single_language"
|
|
|
|
></Check>
|
|
|
|
<Message>
|
|
|
|
Download a single Subtitles file without adding the language code to
|
|
|
|
the filename.
|
|
|
|
</Message>
|
|
|
|
<Message type="warning">
|
|
|
|
We don't recommend enabling this option unless absolutely required
|
|
|
|
(ie: media player not supporting language code in subtitles filename).
|
|
|
|
Results may vary.
|
|
|
|
</Message>
|
|
|
|
<LanguageSelector
|
|
|
|
label="Languages Filter"
|
2022-06-01 02:56:47 +00:00
|
|
|
placeholder="Select languages"
|
2022-05-31 15:49:04 +00:00
|
|
|
settingKey={enabledLanguageKey}
|
|
|
|
options={languages ?? []}
|
|
|
|
></LanguageSelector>
|
|
|
|
</Section>
|
2023-02-09 21:58:38 +00:00
|
|
|
|
2023-05-27 13:38:55 +00:00
|
|
|
<Section header="Language Equals">
|
|
|
|
<Message>
|
|
|
|
Treat the following languages as equal across all providers.
|
|
|
|
</Message>
|
|
|
|
<EqualsTable></EqualsTable>
|
|
|
|
</Section>
|
|
|
|
|
2023-02-23 23:31:29 +00:00
|
|
|
<Section header="Embedded Tracks Language">
|
|
|
|
<Check
|
|
|
|
label="Deep analyze media file to get audio tracks language."
|
|
|
|
settingKey="settings-general-parse_embedded_audio_track"
|
|
|
|
></Check>
|
|
|
|
<CollapseBox
|
|
|
|
indent
|
|
|
|
settingKey="settings-general-parse_embedded_audio_track"
|
|
|
|
>
|
|
|
|
<Selector
|
|
|
|
clearable
|
|
|
|
settingKey={defaultUndAudioLang}
|
|
|
|
label="Treat unknown language audio track as (changing this will trigger missing subtitles calculation)"
|
|
|
|
placeholder="Select languages"
|
2023-02-28 15:38:20 +00:00
|
|
|
options={undAudioLanguages.map((v) => {
|
2023-02-23 23:31:29 +00:00
|
|
|
return { label: v.name, value: v.code2 };
|
|
|
|
})}
|
|
|
|
settingOptions={{
|
|
|
|
onSubmit: (v) => (v === null ? "" : v),
|
|
|
|
}}
|
|
|
|
></Selector>
|
|
|
|
</CollapseBox>
|
2023-02-09 21:58:38 +00:00
|
|
|
<Selector
|
|
|
|
clearable
|
|
|
|
settingKey={defaultUndEmbeddedSubtitlesLang}
|
2024-03-13 03:03:08 +00:00
|
|
|
label="Treat unknown language embedded subtitles track as (changing this will trigger full subtitles indexing using cache)"
|
2023-02-09 21:58:38 +00:00
|
|
|
placeholder="Select languages"
|
2023-02-28 15:38:20 +00:00
|
|
|
options={undEmbeddedSubtitlesLanguages.map((v) => {
|
2023-02-09 21:58:38 +00:00
|
|
|
return { label: v.name, value: v.code2 };
|
|
|
|
})}
|
|
|
|
settingOptions={{
|
|
|
|
onSubmit: (v) => (v === null ? "" : v),
|
|
|
|
}}
|
|
|
|
></Selector>
|
|
|
|
</Section>
|
2024-03-13 03:03:08 +00:00
|
|
|
<Section header="Languages Profile">
|
2022-02-23 17:05:23 +00:00
|
|
|
<Table></Table>
|
2022-05-31 15:49:04 +00:00
|
|
|
</Section>
|
|
|
|
<Section header="Default Settings">
|
2022-06-01 03:24:54 +00:00
|
|
|
<Check
|
|
|
|
label="Series"
|
|
|
|
settingKey="settings-general-serie_default_enabled"
|
|
|
|
></Check>
|
|
|
|
<Message>
|
2024-03-13 03:03:08 +00:00
|
|
|
Will apply only to Series added to Bazarr after enabling this option.
|
2022-06-01 03:24:54 +00:00
|
|
|
</Message>
|
|
|
|
|
|
|
|
<CollapseBox indent settingKey="settings-general-serie_default_enabled">
|
|
|
|
<ProfileSelector
|
|
|
|
label="Profile"
|
|
|
|
placeholder="Select a profile"
|
|
|
|
settingKey="settings-general-serie_default_profile"
|
|
|
|
></ProfileSelector>
|
2022-02-23 17:05:23 +00:00
|
|
|
</CollapseBox>
|
2022-06-01 03:24:54 +00:00
|
|
|
|
|
|
|
<Check
|
|
|
|
label="Movies"
|
|
|
|
settingKey="settings-general-movie_default_enabled"
|
|
|
|
></Check>
|
|
|
|
<Message>
|
2024-03-13 03:03:08 +00:00
|
|
|
Will apply only to Movies added to Bazarr after enabling this option.
|
2022-06-01 03:24:54 +00:00
|
|
|
</Message>
|
|
|
|
|
|
|
|
<CollapseBox indent settingKey="settings-general-movie_default_enabled">
|
|
|
|
<ProfileSelector
|
|
|
|
label="Profile"
|
|
|
|
placeholder="Select a profile"
|
|
|
|
settingKey="settings-general-movie_default_profile"
|
|
|
|
></ProfileSelector>
|
2022-02-23 17:05:23 +00:00
|
|
|
</CollapseBox>
|
2022-05-31 15:49:04 +00:00
|
|
|
</Section>
|
2022-03-16 06:26:15 +00:00
|
|
|
</Layout>
|
2021-03-25 14:22:43 +00:00
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default SettingsLanguagesView;
|