aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Settings/Categories
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Settings/Categories')
-rw-r--r--src/lib/Settings/Categories/Attributions.svelte29
-rw-r--r--src/lib/Settings/Categories/Cache.svelte12
-rw-r--r--src/lib/Settings/Categories/Calculation.svelte35
-rw-r--r--src/lib/Settings/Categories/Debug.svelte9
-rw-r--r--src/lib/Settings/Categories/Display.svelte77
-rw-r--r--src/lib/Settings/Categories/RSSFeeds.svelte5
-rw-r--r--src/lib/Settings/Categories/SettingSync.svelte17
7 files changed, 109 insertions, 75 deletions
diff --git a/src/lib/Settings/Categories/Attributions.svelte b/src/lib/Settings/Categories/Attributions.svelte
index ef78a0c1..131bd90a 100644
--- a/src/lib/Settings/Categories/Attributions.svelte
+++ b/src/lib/Settings/Categories/Attributions.svelte
@@ -1,20 +1,23 @@
<script>
import Spacer from "$lib/Layout/Spacer.svelte";
import root from "$lib/Utility/root";
+import locale from "$stores/locale";
</script>
<ul>
<li>
- <a href="https://anilist.co/" target="_blank">AniList</a>: Most data not explicity attributed
- otherwise, excluding primary chapter and volume data, character birthday data, and subtitled
- anime release data
+ <a href="https://anilist.co/" target="_blank">AniList</a>: {$locale().settings.attributions.generalData}
</li>
- <li><span id="mangadex">MangaDex</span>: <b>Only</b> non-native chapter and volume count data</li>
<li>
- <a href="https://seiga.nicovideo.jp/manga/" target="_blank">ニコニコ漫画</a>: Native chapter and
- volume count data
+ <span id="mangadex">MangaDex</span>: <b>Only</b>
+ {$locale().settings.attributions.nonNativeChapter}
+ </li>
+ <li>
+ <a href="https://seiga.nicovideo.jp/manga/" target="_blank">ニコニコ漫画</a>: {$locale().settings.attributions.nativeChapter}
+ </li>
+ <li>
+ <a href="https://x.com/YDPFALION" target="_blank">YDPFa</a>: {$locale().settings.attributions.girlsBandCryIcons}
</li>
- <li><a href="https://x.com/YDPFALION" target="_blank">YDPFa</a>: Girls Band Cry Icon Set</li>
<!-- <li>
<a href="https://www.animecharactersdatabase.com/index.php" target="_blank">
Anime Characters Database
@@ -38,20 +41,20 @@ import root from "$lib/Utility/root";
<Spacer />
<details open class="card-clear">
- <summary>Outbound Link Disclaimer</summary>
+ <summary>{$locale().settings.attributions.outboundDisclaimerTitle}</summary>
<ol>
<li>
<a href={root('/')}>due.moe</a>
- does not host or directly link to any less-than-legal anime or manga material and/or distribution
- platforms.
+ {$locale().settings.attributions.outboundDisclaimerLine1?.replace('due.moe ', '')}
</li>
<li>
<a href={root('/')}>due.moe</a>
- is not affiliated with any of the above or below sites and services.
+ {$locale().settings.attributions.outboundDisclaimerLine2?.replace('due.moe ', '')}
</li>
<li>
- At the moment, <a href={root('/')}>due.moe</a> only ever contains outbound links to the
- following sites and services:
+ {$locale().settings.attributions.outboundDisclaimerLine3?.split('due.moe')[0]}<a
+ href={root('/')}>due.moe</a
+ >{$locale().settings.attributions.outboundDisclaimerLine3?.split('due.moe')[1]}
<ul>
<li><a href="https://anilist.co/">AniList.co</a></li>
diff --git a/src/lib/Settings/Categories/Cache.svelte b/src/lib/Settings/Categories/Cache.svelte
index 6af897c9..0df59db2 100644
--- a/src/lib/Settings/Categories/Cache.svelte
+++ b/src/lib/Settings/Categories/Cache.svelte
@@ -1,16 +1,16 @@
<script>
import Spacer from "$lib/Layout/Spacer.svelte";
import settings from "$stores/settings";
+import locale from "$stores/locale";
</script>
<small class="opaque">
- Clearing
- <a href="https://due.moe">due.moe</a>'s site data will clear these caches too.
+ {$locale().settings.cache.clearingNote?.split('due.moe')[0]}<a href="https://due.moe">due.moe</a>{$locale().settings.cache.clearingNote?.split('due.moe')[1]}
</small>
<Spacer />
-Re-cache AniList media lists every
+{$locale().settings.cache.recacheAnimeLabel}
<input
type="number"
class="no-shadow"
@@ -23,11 +23,11 @@ Re-cache AniList media lists every
($settings.cacheMinutes < 1 && ($settings.cacheMinutes = 1)) ||
($settings.cacheMinutes > 60 && ($settings.cacheMinutes = 60))}
/>
-minutes
+{$locale().settings.cache.minutes}
<br />
-Re-cache manga data every
+{$locale().settings.cache.recacheMangaLabel}
<input
type="number"
class="no-shadow"
@@ -40,4 +40,4 @@ Re-cache manga data every
($settings.cacheMangaMinutes < 5 && ($settings.cacheMangaMinutes = 5)) ||
($settings.cacheMangaMinutes > 1440 && ($settings.cacheMangaMinutes = 1440))}
/>
-minutes
+{$locale().settings.cache.minutes}
diff --git a/src/lib/Settings/Categories/Calculation.svelte b/src/lib/Settings/Categories/Calculation.svelte
index b4c76269..7106c266 100644
--- a/src/lib/Settings/Categories/Calculation.svelte
+++ b/src/lib/Settings/Categories/Calculation.svelte
@@ -45,15 +45,13 @@ import SettingHint from "../SettingHint.svelte";
text={$locale().settings.calculation.fields.hideOutOfDateVolumeWarning.title}
>
<SettingHint lineBreak>
- Out-of-date volume warnings display an alert when there is a mismatch between the chapter
- progress and number of volumes you have logged for a given title.
+ {$locale().settings.calculation.fields.hideOutOfDateVolumeWarning.hint1}
<br />
- For example, an alert would be shown if you have tracked a manga up to Ch. 50 (Vol. 5), but have less
- than 4 volumes logged.
+ {$locale().settings.calculation.fields.hideOutOfDateVolumeWarning.hint2}
<br />
- Disabling this option speeds up refresh times for manga lists.
+ {$locale().settings.calculation.fields.hideOutOfDateVolumeWarning.speedupHint}
</SettingHint>
</SettingCheckboxToggle>
@@ -65,10 +63,8 @@ import SettingHint from "../SettingHint.svelte";
invert
>
<SettingHint lineBreak>
- Smart chapter count calculation uses statistical methods to estimate the number of chapters
- available for a given title based on user submitted progress.<br />Disabling this setting will
- disable light novel chapter count reporting and will disable smart chapter count calculation for
- titles which you have higher progress than officially reported.
+ {$locale().settings.calculation.fields.smartChapterCountEstimation.hint1}<br
+ />{$locale().settings.calculation.fields.smartChapterCountEstimation.hint2}
</SettingHint>
</SettingCheckboxToggle>
@@ -76,15 +72,22 @@ import SettingHint from "../SettingHint.svelte";
<br />
<select bind:value={$settings.calculateGuessMethod} onchange={pruneAllManga}>
- <option value="mode">Mode (fast, moderate to low accuracy)</option>
- <option value="median">Median (moderate speed, high accuracy, recommended)</option>
- <option value="iqr_median">Interquartile Range with Median (slower, high accuracy)</option>
- <option value="iqr_mode">Interquartile Range with Mode (slower, high accuracy)</option>
+ <option value="mode"
+ >{$locale().settings.calculation.fields.smartChapterMethod?.options?.mode}</option
+ >
+ <option value="median"
+ >{$locale().settings.calculation.fields.smartChapterMethod?.options?.median}</option
+ >
+ <option value="iqr_median"
+ >{$locale().settings.calculation.fields.smartChapterMethod?.options?.iqrMedian}</option
+ >
+ <option value="iqr_mode"
+ >{$locale().settings.calculation.fields.smartChapterMethod?.options?.iqrMode}</option
+ >
</select>
- Smart chapter count calculation method
+ {$locale().settings.calculation.fields.smartChapterMethod?.label}
<SettingHint lineBreak>
- No chapter count estimation method will be 100% accurate. Since estimated media requires scores
- derived from user submitted progress, high (or low) false-reports skew the data.
+ {$locale().settings.calculation.fields.smartChapterMethod?.accuracyDisclaimer}
</SettingHint>
{/if}
diff --git a/src/lib/Settings/Categories/Debug.svelte b/src/lib/Settings/Categories/Debug.svelte
index 6da4b6ae..a2cb35c5 100644
--- a/src/lib/Settings/Categories/Debug.svelte
+++ b/src/lib/Settings/Categories/Debug.svelte
@@ -8,6 +8,7 @@ import locale from "$stores/locale";
import SettingCheckboxToggle from "../SettingCheckboxToggle.svelte";
import localforage from "localforage";
import { invalidateListCaches } from "$lib/Media/invalidate";
+import { get } from "svelte/store";
</script>
<SettingCheckboxToggle setting="debugDummyLists" text={$locale().debug.dummyLists} />
@@ -33,7 +34,7 @@ import { invalidateListCaches } from "$lib/Media/invalidate";
settings.reset();
addNotification(
options({
- heading: 'All settings successfully reset'
+ heading: get(locale)().notifications?.settingsReset ?? 'All settings successfully reset'
})
);
}}
@@ -51,10 +52,10 @@ import { invalidateListCaches } from "$lib/Media/invalidate";
await localforage.clear();
addNotification(
options({
- heading: 'local database successfully cleared'
+ heading: get(locale)().notifications?.localDatabaseCleared ?? 'local database successfully cleared'
})
);
- }}>{$locale().debug.clearLocalStorage.title} local database</button
+ }}>{$locale().debug.clearLocalStorage.title}</button
>
<SettingHint lineBreak>
{$locale().debug.clearLocalStorage.hint1}
@@ -64,5 +65,5 @@ import { invalidateListCaches } from "$lib/Media/invalidate";
<Spacer />
-Custom CSS
+{$locale().settings.debug.customCSS}
<textarea bind:value={$settings.displayCustomCSS}></textarea>
diff --git a/src/lib/Settings/Categories/Display.svelte b/src/lib/Settings/Categories/Display.svelte
index 7de57c5a..80f21fde 100644
--- a/src/lib/Settings/Categories/Display.svelte
+++ b/src/lib/Settings/Categories/Display.svelte
@@ -221,10 +221,9 @@ const onHelperChange = () => {
}}
>
<SettingHint lineBreak>
- Periodically check for and send recent AniList notifications as native platform notifications
+ {$locale().settings.display.categories.motionAndAccessibility.fields.aniListNotificationsHint1}
<br />
- This may be useful for users who have installed due.moe as a PWA or are using due.moe on a mobile
- device, as AniList has no official mobile app, and the AniList website does not send push notifications.
+ {$locale().settings.display.categories.motionAndAccessibility.fields.aniListNotificationsHint2}
</SettingHint>
</SettingCheckboxToggle>
@@ -265,12 +264,20 @@ const onHelperChange = () => {
<Spacer />
-<b>Show lists with media covers instead of text</b><br />
-<SettingCheckboxToggle setting="displayCoverModeAnime" text="Anime" lineBreak={false} />
-<SettingCheckboxToggle setting="displayCoverModeManga" text="Manga" lineBreak={false} />
+<b>{$locale().settings.display.categories.coverModeTitle}</b><br />
+<SettingCheckboxToggle
+ setting="displayCoverModeAnime"
+ text={$locale().settings.media.anime}
+ lineBreak={false}
+/>
+<SettingCheckboxToggle
+ setting="displayCoverModeManga"
+ text={$locale().settings.media.manga}
+ lineBreak={false}
+/>
<SettingCheckboxToggle
setting="displayScheduleListMode"
- text="Subtitle Schedule"
+ text={$locale().navigation.subtitleSchedule}
lineBreak={false}
invert
/>
@@ -293,7 +300,7 @@ const onHelperChange = () => {
$settings.displayCoverWidth < 50 && ($settings.displayCoverWidth = 50);
}}
/>
- Cover width (px)
+ {$locale().settings.display.categories.coverWidthLabel}
<br />
{:else}
<br />
@@ -301,22 +308,34 @@ const onHelperChange = () => {
<Spacer />
-<b>List sort & filter</b><br />
+<b>{$locale().settings.display.categories.listSortFilterTitle}</b><br />
<select bind:value={$settings.displayAnimeSort}>
- <option value="time_remaining">Time Remaining Until Next Airing Episode</option>
- <option value="difference">Difference Between Progress and Next Airing Episode</option>
- <option value="start_date">Start Date</option>
- <option value="end_date">End Date</option>
+ <option value="time_remaining"
+ >{$locale().settings.display.categories.sortOptions?.timeRemaining}</option
+ >
+ <option value="difference"
+ >{$locale().settings.display.categories.sortOptions?.difference}</option
+ >
+ <option value="start_date">{$locale().settings.display.categories.sortOptions?.startDate}</option>
+ <option value="end_date">{$locale().settings.display.categories.sortOptions?.endDate}</option>
</select>
-Anime sort order
+{$locale().settings.display.categories.animeSortOrder}
<br />
-<SettingCheckboxToggle setting="displayReverseSort" text="Reverse anime sort order" />
-<SettingCheckboxToggle setting="displayMediaListFilter" text="Enable media list filter" />
+<SettingCheckboxToggle
+ setting="displayReverseSort"
+ text={$locale().settings.display.categories.reverseSortOrder}
+/>
+<SettingCheckboxToggle
+ setting="displayMediaListFilter"
+ text={$locale().settings.display.categories.mediaListFilter}
+/>
<br />
-<SettingCheckboxToggle setting="displayMediaRoulette" text="Enable media roulette">
+<SettingCheckboxToggle
+ setting="displayMediaRoulette"
+ text={$locale().settings.display.categories.mediaRoulette}
+>
<SettingHint lineBreak>
- Adds a roulette button to due and completed media lists to randomly pick something to watch or
- read
+ {$locale().settings.display.categories.mediaRouletteHint}
</SettingHint>
</SettingCheckboxToggle>
<br />
@@ -324,30 +343,36 @@ Anime sort order
<b>{$locale().settings.display.categories.media.title}</b><br />
<SettingCheckboxToggle
setting="displayHoverCover"
- text="Show media cover when hovering on supported media titles"
+ text={$locale().settings.display.categories.media.fields.hoverCover}
+/>
+<SettingCheckboxToggle
+ setting="displaySocialButton"
+ text={$locale().settings.display.categories.media.fields.socialButton}
+/>
+<SettingCheckboxToggle
+ setting="displayBlurAdultContent"
+ text={$locale().settings.display.categories.media.fields.blurAdult}
/>
-<SettingCheckboxToggle setting="displaySocialButton" text="Show social tab shortcut for media" />
-<SettingCheckboxToggle setting="displayBlurAdultContent" text="Blur NSFW media covers" />
<SettingCheckboxToggle
setting="displayCopyMediaTitleNotLink"
- text="Copy media title instead of linking"
+ text={$locale().settings.display.categories.media.fields.copyTitleNotLink}
/>
<SettingCheckboxToggle
setting="displayTotalDueEpisodes"
- text="Display total number of due episodes instead of due media count"
+ text={$locale().settings.display.categories.media.fields.totalDueEpisodes}
lineBreak={!$settings.displayTotalDueEpisodes}
/>
{#if $settings.displayTotalDueEpisodes}
<SettingCheckboxToggle
setting="displayTotalEpisodes"
- text="Apply to all media lists, not just due media lists"
+ text={$locale().settings.display.categories.media.fields.totalEpisodes}
/>
{/if}
<SettingCheckboxToggle
setting="displayScheduleFilterList"
- text="Only display media on your media lists in Subtitle Schedule"
+ text={$locale().settings.display.categories.media.fields.scheduleFilterList}
id="schedule-filter-list"
/>
<select bind:value={$settings.displayTitleFormat}>
diff --git a/src/lib/Settings/Categories/RSSFeeds.svelte b/src/lib/Settings/Categories/RSSFeeds.svelte
index fee411f4..08ba7292 100644
--- a/src/lib/Settings/Categories/RSSFeeds.svelte
+++ b/src/lib/Settings/Categories/RSSFeeds.svelte
@@ -5,6 +5,7 @@ import { appOrigin } from "$lib/Utility/appOrigin";
import locale from "$stores/locale";
import SettingHint from "../SettingHint.svelte";
import tooltip from "$lib/Tooltip/tooltip";
+import { get } from "svelte/store";
export let user: { accessToken: string; refreshToken: string };
</script>
@@ -13,7 +14,7 @@ export let user: { accessToken: string; refreshToken: string };
onclick={() => {
addNotification(
options({
- heading: 'RSS feed URL copied to clipboard'
+ heading: get(locale)().notifications?.rssCopied ?? 'RSS feed URL copied to clipboard'
})
);
navigator.clipboard.writeText(
@@ -23,7 +24,7 @@ export let user: { accessToken: string; refreshToken: string };
>
{$locale().settings.rssFeeds.buttons.copyToClipboard}
</button>
-Your AniList notifications RSS feed URL
+{$locale().settings.rssFeeds.feedUrlLabel}
<SettingHint lineBreak>
This <a
href={'#'}
diff --git a/src/lib/Settings/Categories/SettingSync.svelte b/src/lib/Settings/Categories/SettingSync.svelte
index 867b2b47..dd19db49 100644
--- a/src/lib/Settings/Categories/SettingSync.svelte
+++ b/src/lib/Settings/Categories/SettingSync.svelte
@@ -8,6 +8,7 @@ import { addNotification } from "$lib/Notification/store";
import SettingHint from "../SettingHint.svelte";
import locale from "$stores/locale";
import settingsSyncTimes from "$stores/settingsSyncTimes";
+import { get } from "svelte/store";
</script>
{#if !$settings.settingsSync}
@@ -23,7 +24,7 @@ import settingsSyncTimes from "$stores/settingsSyncTimes";
addNotification(
options({
- heading: 'Pulled remote configuration'
+ heading: get(locale)().notifications?.pulledRemote ?? 'Pulled remote configuration'
})
);
} else {
@@ -35,7 +36,7 @@ import settingsSyncTimes from "$stores/settingsSyncTimes";
if (response.ok)
addNotification(
options({
- heading: 'Created remote configuration'
+ heading: get(locale)().notifications?.createdRemote ?? 'Created remote configuration'
})
);
});
@@ -63,8 +64,8 @@ import settingsSyncTimes from "$stores/settingsSyncTimes";
if (response.ok)
addNotification(
options({
- heading: 'Settings Sync',
- description: 'Pushed local configuration to remote'
+ heading: get(locale)().settings.settingsSync.title,
+ description: get(locale)().notifications?.pushedRemote ?? 'Pushed local configuration to remote'
})
);
});
@@ -82,7 +83,7 @@ import settingsSyncTimes from "$stores/settingsSyncTimes";
addNotification(
options({
- heading: 'Settings sync disabled'
+ heading: get(locale)().notifications?.syncDisabled ?? 'Settings sync disabled'
})
);
}}
@@ -99,7 +100,7 @@ import settingsSyncTimes from "$stores/settingsSyncTimes";
addNotification(
options({
- heading: 'Remote configuration deleted and settings sync disabled'
+ heading: get(locale)().notifications?.remoteDeleted ?? 'Remote configuration deleted and settings sync disabled'
})
);
}
@@ -111,7 +112,7 @@ import settingsSyncTimes from "$stores/settingsSyncTimes";
<Spacer />
- <b>Last Push</b>: {$locale().dateFormatter($settingsSyncTimes.lastPush)}
+ <b>{$locale().settings.settingsSync.lastPush}</b>: {$locale().dateFormatter($settingsSyncTimes.lastPush)}
<br />
- <b>Last Pull</b>: {$locale().dateFormatter($settingsSyncTimes.lastPull)}
+ <b>{$locale().settings.settingsSync.lastPull}</b>: {$locale().dateFormatter($settingsSyncTimes.lastPull)}
{/if}