1
0
Fork 0
mirror of https://github.com/sussy-code/smov.git synced 2024-12-20 14:37:43 +01:00

Merge branch 'subtitle-file-type-control' of https://github.com/frost768/movie-web into subtitle-file-type-control

This commit is contained in:
frost768 2023-05-12 22:40:20 +03:00
commit 2657d1f856
8 changed files with 406 additions and 12 deletions

View file

@ -4,10 +4,13 @@ import { initReactI18next } from "react-i18next";
// Languages
import { captionLanguages } from "./iso6391";
import cs from "./locales/cs/translation.json";
import de from "./locales/de/translation.json";
import en from "./locales/en/translation.json";
import fr from "./locales/fr/translation.json";
import nl from "./locales/nl/translation.json";
import tr from "./locales/tr/translation.json";
import zh from "./locales/zh/translation.json";
const locales = {
en: {
@ -22,6 +25,15 @@ const locales = {
fr: {
translation: fr,
},
de: {
translation: de,
},
zh: {
translation: zh,
},
cs: {
translation: cs,
},
};
i18n
// detect user language

View file

@ -0,0 +1,128 @@
{
"global": {
"name": "movie-web"
},
"search": {
"loading_series": "Načítání Vašich oblíbených seriálů...",
"loading_movie": "Načítání Vašich oblíbených filmů...",
"loading": "Načítání...",
"allResults": "To je vše co máme!",
"noResults": "Nemohli jsme nic najít!",
"allFailed": "Nepodařilo se najít média, zkuste to znovu!",
"headingTitle": "Výsledky vyhledávání",
"bookmarks": "Záložky",
"continueWatching": "Pokračujte ve sledování",
"title": "Co si přejete sledovat?",
"placeholder": "Co si přejete sledovat?"
},
"media": {
"movie": "Filmy",
"series": "Seriály",
"stopEditing": "Zastavit upravování",
"errors": {
"genericTitle": "Jejda, rozbilo se to!",
"failedMeta": "Nepovedlo se načíst meta",
"mediaFailed": "Nepodařilo se nám požádat o Vaše média, zkontrolujte své internetové připojení a zkuste to znovu.",
"videoFailed": "Při přehrávání požadovaného videa došlo k chybě. Pokud se tohle opakuje prosím nahlašte nám to na <0>Discord serveru</0> nebo na <1>GitHubu</1>."
}
},
"seasons": {
"seasonAndEpisode": "S{{season}} E{{episode}}"
},
"notFound": {
"genericTitle": "Nenalezeno",
"backArrow": "Zpátky domů",
"media": {
"title": "Nemohli jsme najít Vaše média.",
"description": "Nemohli jsme najít média o které jste požádali. Buďto jsme ho nemohli najít, nebo jste manipulovali s URL."
},
"provider": {
"title": "Tento poskytovatel byl zakázán",
"description": "Měli jsme s tímto poskytovatelem problémy, nebo byl moc nestabilní na používání, a tak jsme ho museli zakázat."
},
"page": {
"title": "Tuto stránku se nepodařilo najít",
"description": "Dívali jsme se všude: pod koši, ve skříni, za proxy, ale nakonec jsme nemohli najít stránku, kterou hledáte."
}
},
"searchBar": {
"movie": "Film",
"series": "Seriál",
"Search": "Hledání"
},
"videoPlayer": {
"findingBestVideo": "Hledáme pro Vás nejlepší video",
"noVideos": "Jejda, nemohli jsme žádné video najít",
"loading": "Načítání...",
"backToHome": "Zpátky domů",
"backToHomeShort": "Zpět",
"seasonAndEpisode": "S{{season}} E{{episode}}",
"timeLeft": "Zbývá {{timeLeft}}",
"finishAt": "Končí ve {{timeFinished, datetime}}",
"buttons": {
"episodes": "Epizody",
"source": "Zdroj",
"captions": "Titulky",
"download": "Stáhnout",
"settings": "Nastavení",
"pictureInPicture": "Obraz v obraze",
"playbackSpeed": "Rychlost přehrávání"
},
"popouts": {
"back": "Zpět",
"sources": "Zdroje",
"seasons": "Sezóny",
"captions": "Titulky",
"playbackSpeed": "Rychlost přehrávání",
"customPlaybackSpeed": "Vlastní rychlost přehrávání",
"captionPreferences": {
"title": "Upravit",
"delay": "Zpoždení",
"fontSize": "Velikost",
"opacity": "Průhlednost",
"color": "Barva"
},
"episode": "E{{index}} - {{title}}",
"noCaptions": "Žádné titulky",
"linkedCaptions": "Propojené titulky",
"customCaption": "Vlastní titulky",
"uploadCustomCaption": "Nahrát titulky",
"noEmbeds": "Nebyla nalezena žádná vložení pro tento zdroj",
"errors": {
"loadingWentWong": "Něco se nepovedlo při načítání epizod pro {{seasonTitle}}",
"embedsError": "Něco se povedlo při načítání vložení pro tuhle věc, kterou máte tak rádi"
},
"descriptions": {
"sources": "Jakého poskytovatele chcete použít?",
"embeds": "Vyberte video, které chcete sledovat",
"seasons": "Vyberte sérii, kterou chcete sledovat",
"episode": "Vyberte epizodu",
"captions": "Vyberte jazyk titulků",
"captionPreferences": "Upravte titulky tak, jak se Vám budou líbit",
"playbackSpeed": "Změňtě rychlost přehrávání"
}
},
"errors": {
"fatalError": "Došlo k závažné chybě v přehrávači videa, prosím nahlašte ji na <0>Discord serveru</0> nebo na <1>GitHubu</1>."
}
},
"settings": {
"title": "Nastavení",
"language": "Jazyk",
"captionLanguage": "Jazyk titulků"
},
"v3": {
"newSiteTitle": "Je dostupná nová verze!",
"newDomain": "https://movie-web.app",
"newDomainText": "movie-web se brzy přesune na novou doménu: <0>https://movie-web.app</0>. Nezapomeňte si aktualizovat záložky, protože <1>stará stránka přestane fungovat {{date}}.</1>",
"tireless": "Pracovali jsme neúnavně na této nové aktualizaci, a tak doufáme, že se Vám bude líbit co jsme v posledních měsících kuchtili.",
"leaveAnnouncement": "Vezměte mě tam!"
},
"casting": {
"casting": "Přehrávání do zařízení..."
},
"errors": {
"offline": "Zkontrolujte své internetové připojení"
}
}

View file

@ -0,0 +1,127 @@
{
"global": {
"name": "movie-web"
},
"search": {
"loading_series": "Auf der Suche nach Ihrer Lieblingsserie...",
"loading_movie": "Auf der Suche nach Ihren Lieblingsfilmen...",
"loading": "Wird geladen...",
"allResults": "Das ist alles, was wir haben!",
"noResults": "Wir haben nichts gefunden!",
"allFailed": "Das Medium wurde nicht gefunden, bitte versuchen Sie es erneut!",
"headingTitle": "Suchergebnisse",
"bookmarks": "Favoriten",
"continueWatching": "Weiter ansehen",
"title": "Was willst du sehen?",
"placeholder": "Was willst du sehen?"
},
"media": {
"movie": "Filme",
"series": "Serie",
"stopEditing": "Beenden Sie die Bearbeitung",
"errors": {
"genericTitle": "Hoppla, etwas ist falsch gegangen!",
"failedMeta": "Metadaten konnten nicht geladen werden",
"mediaFailed": "Wir konnten die angeforderten Medien nicht abrufen.",
"videoFailed": "Beim Abspielen des angeforderten Videos ist ein Fehler aufgetreten. <0>Discord</0> Oder weiter <1>GitHub</1>."
}
},
"seasons": {
"seasonAndEpisode": "S{{season}} E{{episode}}"
},
"notFound": {
"genericTitle": "Nicht gefunden",
"backArrow": "Zurück zur Startseite",
"media": {
"title": "Das Medium konnte nicht gefunden werden",
"description": "Wir konnten die angeforderten Medien nicht finden."
},
"provider": {
"title": "Dieser Anbieter wurde deaktiviert",
"description": "Wir hatten Probleme mit dem Anbieter oder er war zu instabil, sodass wir ihn deaktivieren mussten."
},
"page": {
"title": "Diese Seite kann nicht gefunden werden",
"description": "Wir haben überall gesucht, aber am Ende konnten wir die gesuchte Seite nicht finden."
}
},
"searchBar": {
"movie": "Film",
"series": "Serie",
"Search": "Forschen"
},
"videoPlayer": {
"findingBestVideo": "Auf der Suche nach dem besten Video für Sie",
"noVideos": "Entschuldigung, wir konnten keine Videos für Sie finden",
"loading": "Wird geladen...",
"backToHome": "Zurück zur Startseite",
"backToHomeShort": "Rückmeldung",
"seasonAndEpisode": "S{{season}} E{{episode}}",
"timeLeft": "{{timeLeft}} bleibt",
"finishAt": "Ende um {{timeFinished, datetime}}",
"buttons": {
"episodes": "Folgen",
"source": "Quelle",
"captions": "Untertitel",
"download": "Herunterladen",
"settings": "Einstellungen",
"pictureInPicture": "Bild-im-Bild",
"playbackSpeed": "Wiedergabegeschwindigkeit"
},
"popouts": {
"back": "Zurück",
"sources": "Quellen",
"seasons": "Saison",
"captions": "Untertitel",
"playbackSpeed": "Lesegeschwindigkeit",
"customPlaybackSpeed": "Benutzerdefinierte Wiedergabegeschwindigkeit",
"captionPreferences": {
"title": "Personifizieren",
"delay": "Zeitlimit",
"fontSize": "Größe",
"opacity": "Opazität",
"color": "Farbe"
},
"episode": "E{{index}} - {{title}}",
"noCaptions": "Keine Untertitel",
"linkedCaptions": "Verbundene Untertitel",
"customCaption": "Benutzerdefinierte Untertitel",
"uploadCustomCaption": "Untertitel hochladen",
"noEmbeds": "Für diese Quelle wurde kein eingebetteter Inhalt gefunden",
"errors": {
"loadingWentWong": "Beim Laden der Folgen für {{seasonTitle}} ist ein Problem aufgetreten ",
"embedsError": "Beim Laden der eingebetteter Medien ist ein Problem aufgetreten"
},
"descriptions": {
"sources": "Welchen Anbieter möchten Sie nutzen?",
"embeds": "Wählen Sie das Video aus, das Sie ansehen möchten",
"seasons": "Wählen Sie die Staffel aus, die Sie sehen möchten",
"episode": "Wählen Sie eine Folge aus",
"captions": "Wählen Sie eine Untertitelsprache",
"captionPreferences": "Passen Sie das Erscheinungsbild von Untertiteln an",
"playbackSpeed": "Wiedergabegeschwindigkeit ändern"
}
},
"errors": {
"fatalError": "Der Videoplayer hat einen Fehler festgestellt, bitte melden Sie ihn dem Server <0>Discord</0> Oder weiter <1>GitHub</1>."
}
},
"settings": {
"title": "Einstellungen",
"language": "Sprache",
"captionLanguage": "Untertitelsprache"
},
"v3": {
"newSiteTitle": "Neue Version verfügbar!",
"newDomain": "https://movie-web.app",
"newDomainText": "movie-web zieht in Kürze auf eine neue Domain um: <0>https://movie-web.app</0>. <1>Die alte Website funktioniert nicht mehr {{date}}.</1>",
"tireless": "Wir haben unermüdlich an diesem neuen Update gearbeitet und hoffen, dass Ihnen das gefällt, was wir in den letzten Monaten vorbereitet haben.",
"leaveAnnouncement": "Bring mich dahin!"
},
"casting": {
"casting": "An Gerät übertragen..."
},
"errors": {
"offline": "Ihre Internetverbindung ist instabil"
}
}

View file

@ -58,7 +58,7 @@
"backToHomeShort": "Back",
"seasonAndEpisode": "S{{season}} E{{episode}}",
"timeLeft": "{{timeLeft}} left",
"finishAt": "Finish at {{timeFinished}}",
"finishAt": "Finish at {{timeFinished, datetime}}",
"buttons": {
"episodes": "Episodes",
"source": "Source",

View file

@ -58,7 +58,7 @@
"backToHomeShort": "Retour",
"seasonAndEpisode": "S{{season}} E{{episode}}",
"timeLeft": "{{timeLeft}} restant",
"finishAt": "Terminer à {{timeFinished}}",
"finishAt": "Terminer à {{timeFinished, datetime}}",
"buttons": {
"episodes": "Épisodes",
"source": "Source",

View file

@ -58,7 +58,7 @@
"backToHomeShort": "Terug",
"seasonAndEpisode": "S{{season}} A{{episode}}",
"timeLeft": "Nog {{timeLeft}}",
"finishAt": "Afgelopen om {{timeFinished}}",
"finishAt": "Afgelopen om {{timeFinished, datetime}}",
"buttons": {
"episodes": "Afleveringen",
"source": "Bron",

View file

@ -0,0 +1,127 @@
{
"global": {
"name": "movie-web"
},
"search": {
"loading_series": "正在获取您最喜欢的连续剧……",
"loading_movie": "正在获取您最喜欢的影片……",
"loading": "载入中……",
"allResults": "以上是我们能找到的所有结果!",
"noResults": "我们找不到任何结果!",
"allFailed": "查找媒体失败,请重试!",
"headingTitle": "搜索结果",
"bookmarks": "书签",
"continueWatching": "继续观看",
"title": "您想看些什么?",
"placeholder": "您想看些什么?"
},
"media": {
"movie": "电影",
"series": "连续剧",
"stopEditing": "退出编辑",
"errors": {
"genericTitle": "哎呀,出问题了!",
"failedMeta": "加载元数据失败",
"mediaFailed": "我们未能请求到您要求的媒体,检查互联网连接并重试。",
"videoFailed": "我们在播放您要求的视频时遇到了错误。如果错误持续发生,请向 <0>Discord 服务器</0>或 <1>GitHub</1> 提交问题报告。"
}
},
"seasons": {
"seasonAndEpisode": "第{{season}}季 第{{episode}}集"
},
"notFound": {
"genericTitle": "未找到",
"backArrow": "返回首页",
"media": {
"title": "无法找到媒体",
"description": "我们无法找到您请求的媒体。它可能已被删除,或您篡改了 URL"
},
"provider": {
"title": "该内容提供者已被停用",
"description": "我们的提供者出现问题,或是太不稳定,导致无法使用,所以我们不得不将其停用。"
},
"page": {
"title": "无法找到页面",
"description": "我们已经到处找过了:不管是垃圾桶下、橱柜里或是代理之后。但最终并没有发现您查找的页面。"
}
},
"searchBar": {
"movie": "电影",
"series": "连续剧",
"Search": "搜索"
},
"videoPlayer": {
"findingBestVideo": "正在为您探测最佳视频",
"noVideos": "哎呀,无法为您找到任何视频",
"loading": "载入中……",
"backToHome": "返回首页",
"backToHomeShort": "返回",
"seasonAndEpisode": "第{{season}}季 第{{episode}}集",
"timeLeft": "还剩余 {{timeLeft}}",
"finishAt": "在 {{timeFinished, datetime}} 结束",
"buttons": {
"episodes": "分集",
"source": "视频源",
"captions": "字幕",
"download": "下载",
"settings": "设置",
"pictureInPicture": "画中画",
"playbackSpeed": "播放速度"
},
"popouts": {
"back": "返回",
"sources": "视频源",
"seasons": "分季",
"captions": "字幕",
"playbackSpeed": "播放速度",
"customPlaybackSpeed": "自定义播放速度",
"captionPreferences": {
"title": "自定义",
"delay": "延迟",
"fontSize": "尺寸",
"opacity": "透明度",
"color": "颜色"
},
"episode": "第{{index}}集 - {{title}}",
"noCaptions": "没有字幕",
"linkedCaptions": "已链接字幕",
"customCaption": "自定义字幕",
"uploadCustomCaption": "上传字幕",
"noEmbeds": "未发现该视频源的嵌入内容",
"errors": {
"loadingWentWong": "加载 {{seasonTitle}} 的分集时出现了一些问题",
"embedsError": "为您喜欢的这一东西加载嵌入内容时出现了一些问题"
},
"descriptions": {
"sources": "您想使用哪个内容提供者?",
"embeds": "选择要观看的视频",
"seasons": "选择您要观看的季",
"episode": "选择一个分集",
"captions": "选择字幕语言",
"captionPreferences": "让字幕看起来如您所想",
"playbackSpeed": "改变播放速度"
}
},
"errors": {
"fatalError": "视频播放器遇到致命错误,请向 <0>Discord 服务器</0>或 <1>GitHub</1> 报告。"
}
},
"settings": {
"title": "设置",
"language": "语言",
"captionLanguage": "字幕语言"
},
"v3": {
"newSiteTitle": "新的版本现已发布!",
"newDomain": "https://movie-web.app",
"newDomainText": "movie-web 将很快转移到新的域名:<0>https://movie-web.app</0>。请确保已经更新全部书签链接,<1>旧网站将于 {{date}} 停止工作。</1>",
"tireless": "为了这一新版本,我们不懈努力,希望您会喜欢我们在过去几个月中所做的一切。",
"leaveAnnouncement": "请带我去!"
},
"casting": {
"casting": "正在投射到设备……"
},
"errors": {
"offline": "检查您的互联网连接"
}
}

View file

@ -55,20 +55,20 @@ export function TimeAction(props: Props) {
hasHours
);
const duration = formatSeconds(videoTime.duration, hasHours);
const timeLeft = formatSeconds(
const remaining = formatSeconds(
(videoTime.duration - videoTime.time) / mediaPlaying.playbackSpeed,
hasHours
);
const timeFinished = new Date(
new Date().getTime() +
(videoTime.duration * 1000) / mediaPlaying.playbackSpeed
).toLocaleTimeString("en-US", {
hour: "numeric",
minute: "numeric",
hour12: true,
});
((videoTime.duration - videoTime.time) * 1000) /
mediaPlaying.playbackSpeed
);
const formattedTimeFinished = ` - ${t("videoPlayer.finishAt", {
timeFinished,
formatParams: {
timeFinished: { hour: "numeric", minute: "numeric" },
},
})}`;
let formattedTime: string;
@ -77,10 +77,10 @@ export function TimeAction(props: Props) {
formattedTime = `${currentTime} ${props.noDuration ? "" : `/ ${duration}`}`;
} else if (timeFormat === VideoPlayerTimeFormat.REMAINING && !isMobile) {
formattedTime = `${t("videoPlayer.timeLeft", {
timeLeft,
timeLeft: remaining,
})}${videoTime.time === videoTime.duration ? "" : formattedTimeFinished} `;
} else if (timeFormat === VideoPlayerTimeFormat.REMAINING && isMobile) {
formattedTime = `-${timeLeft}`;
formattedTime = `-${remaining}`;
} else {
formattedTime = "";
}