diff --git a/README.md b/README.md index 1167c00a..aaaa12cb 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Discord Server

-movie-web is a web app for watching movies easily. Check it out at **[movie.squeezebox.dev](https://movie.squeezebox.dev)**. +movie-web is a web app for watching movies easily. Check it out at **[movie-web.app](https://movie-web.app)**. This service works by displaying video files from third-party providers inside an intuitive and aesthetic user interface. diff --git a/package.json b/package.json index 1e769dbd..817408a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "movie-web", - "version": "3.0.12", + "version": "3.0.13", "private": true, "homepage": "https://movie-web.app", "dependencies": { diff --git a/src/hooks/useVolumeToggle.ts b/src/hooks/useVolumeToggle.ts index 636b787b..c6b8388f 100644 --- a/src/hooks/useVolumeToggle.ts +++ b/src/hooks/useVolumeToggle.ts @@ -7,12 +7,12 @@ export function useVolumeControl(descriptor: string) { const controls = useControls(descriptor); const mediaPlaying = useMediaPlaying(descriptor); - const toggleVolume = () => { + const toggleVolume = (isKeyboardEvent = false) => { if (mediaPlaying.volume > 0) { setStoredVolume(mediaPlaying.volume); - controls.setVolume(0); + controls.setVolume(0, isKeyboardEvent); } else { - controls.setVolume(storedVolume > 0 ? storedVolume : 1); + controls.setVolume(storedVolume > 0 ? storedVolume : 1, isKeyboardEvent); } }; diff --git a/src/setup/i18n.ts b/src/setup/i18n.ts index 4e9869d3..43dbb1ef 100644 --- a/src/setup/i18n.ts +++ b/src/setup/i18n.ts @@ -5,6 +5,9 @@ import LanguageDetector from "i18next-browser-languagedetector"; // Languages import en from "./locales/en/translation.json"; import nl from "./locales/nl/translation.json"; +import tr from "./locales/tr/translation.json"; +import fr from "./locales/fr/translation.json"; + import { captionLanguages } from "./iso6391"; const locales = { @@ -14,6 +17,12 @@ const locales = { nl: { translation: nl, }, + tr: { + translation: tr, + }, + fr: { + translation: fr, + }, }; i18n // detect user language diff --git a/src/setup/locales/fr/translation.json b/src/setup/locales/fr/translation.json index fe9d73eb..44c575bc 100644 --- a/src/setup/locales/fr/translation.json +++ b/src/setup/locales/fr/translation.json @@ -16,16 +16,34 @@ "placeholder": "Que voulez-vous voir?" }, "media": { - "title": "Impossible de trouver ce média", - "description": "Nous n'avons pas pu trouver le média que vous avez demandé. Soit il a été supprimé, soit vous avez altéré l'URL." + "movie": "Films", + "series": "Séries", + "stopEditing": "Arrêter l'édition", + "errors": { + "genericTitle": "Oups, c'est coupé !", + "failedMeta": "Impossible de charger les métadonnées", + "mediaFailed": "Nous n'avons pas réussi à récupérer le média que vous avez demandé. Veuillez vérifier votre connexion Internet et réessayer.", + "videoFailed": "Nous avons rencontré une erreur lors de la lecture de la vidéo que vous avez demandée. Si cela se reproduit, veuillez signaler le problème au serveur <0>Discord ou sur <1>GitHub." + } }, - "provider": { - "title": "Ce fournisseur a été désactivé", - "description": "Nous avons eu des problèmes avec le fournisseur ou bien il était trop instable pour être utilisé, donc nous avons dû le désactiver." + "seasons": { + "seasonAndEpisode": "S{{saison}} E{{épisode}}" }, - "page": { - "title": "Impossible de trouver cette page", - "description": "Nous avons cherché partout : sous les poubelles, dans le placard, derrière le proxy, mais nous n'avons finalement pas pu trouver la page que vous recherchez." + "notFound": { + "genericTitle": "Introuvable", + "backArrow": "Retour à l'accueil", + "media": { + "title": "Impossible de trouver ce média", + "description": "Nous n'avons pas trouvé le média que vous avez demandé. Soit il a été supprimé, soit vous avez modifié l'URL." + }, + "provider": { + "title": "Ce fournisseur a été désactivé", + "description": "Nous avons eu des problèmes avec le fournisseur ou il était trop instable pour être utilisé, nous avons donc dû le désactiver." + }, + "page": { + "title": "Impossible de trouver cette page", + "description": "Nous avons cherché partout : sous les poubelles, dans le placard, derrière le proxy, mais nous n'avons finalement pas trouvé la page que vous cherchez." + } }, "searchBar": { "movie": "Film", @@ -51,9 +69,12 @@ "playbackSpeed": "Vitesse" }, "popouts": { + "back": "Retourner", "sources": "Sources", "seasons": "Saisons", "captions": "Sous-titres", + "playbackSpeed": "Vitesse de lecture", + "customPlaybackSpeed": "Vitesse de lecture personnalisée", "captionPreferences": { "title": "Personnaliser", "delay": "Délai", @@ -77,13 +98,19 @@ "seasons": "Choisissez la saison que vous voulez regarder", "episode": "Sélectionnez un épisode", "captions": "Choisissez une langue de sous-titres", - "captionPreferences": "Personnalisez l'apparence des sous-titres" + "captionPreferences": "Personnalisez l'apparence des sous-titres", + "playbackSpeed": "Changer la vitesse de lecture" } }, "errors": { "fatalError": "Le lecteur vidéo a rencontré une erreur fatale, veuillez la signaler au serveur <0>Discord ou sur <1>GitHub." } }, + "settings": { + "title": "Paramètres", + "language": "Language", + "captionLanguage": "Langue des sous-titres" + }, "v3": { "newSiteTitle": "Nouvelle version disponible!", "newDomain": "https://movie-web.app", diff --git a/src/setup/locales/tr/translation.json b/src/setup/locales/tr/translation.json new file mode 100644 index 00000000..326cc35d --- /dev/null +++ b/src/setup/locales/tr/translation.json @@ -0,0 +1,128 @@ +{ + "global": { + "name": "movie-web" + }, + "search": { + "loading_series": "Favori dizileriniz aranıyor...", + "loading_movie": "Favori filmleriniz aranıyor...", + "loading": "Yükleniyor...", + "allResults": "Bu kadarını bulabildik!", + "noResults": "Hiçbir şey bulamadık!", + "allFailed": "Medya bulunamadı, tekrar deneyin!", + "headingTitle": "Arama sonuçları", + "bookmarks": "Yerimleri", + "continueWatching": "İzlemeye devam edin", + "title": "Ne izlemek istersiniz?", + "placeholder": "Ne izlemek istersiniz?" + }, + "media": { + "movie": "Film", + "series": "Dizi", + "stopEditing": "Düzenlemeyi durdur", + "errors": { + "genericTitle": "Hay aksi, bozuldu!", + "failedMeta": "Önbilgi yüklenemedi", + "mediaFailed": "İstediğiniz medyaya istek atarken hata oluştu, internet bağlantınızı kontrol edin ve tekrar deneyin.", + "videoFailed": "İstediğiniz videoyu oynatırken bir sorunla karşılaştık. Bu durum devam ederse lütfen bunu <0>Discord sunucumuza veya <1>GitHub üzerinden bildiriniz." + } + }, + "seasons": { + "seasonAndEpisode": "S{{season}} B{{episode}}" + }, + "notFound": { + "genericTitle": "Bulunamadı", + "backArrow": "Geri", + "media": { + "title": "Medya bulunamadı", + "description": "İstediğiniz medyayı bulamadık. URL'i yanlış girdiniz ya da medya kaldırıldı." + }, + "provider": { + "title": "Bu sağlayıcı devre dışı bırakıldı", + "description": "Sağlayıcı ile ilgili bir sorun oluştu ya da kullanılacak kadar stabil değildi bu yüzden devre dışı bırakmak zorunda kaldık." + }, + "page": { + "title": "Sayfa bulunamadı", + "description": "Her yere baktık: bazanın altına, dolabın içine hatta ara sunucuya ama maalesef aradığınız sayfayı bulamadık." + } + }, + "searchBar": { + "movie": "Film", + "series": "Dizi", + "Search": "Ara" + }, + "videoPlayer": { + "findingBestVideo": "Sizin için en iyi videoyu buluyoruz...", + "noVideos": "Hay aksi, hiçbir video bulamadık", + "loading": "Yükleniyor...", + "backToHome": "Ana sayfaya dön", + "backToHomeShort": "Geri", + "seasonAndEpisode": "S{{season}} B{{episode}}", + "timeLeft": "{{timeLeft}} kaldı", + "finishAt": "{{timeFinished, datetime}}'de/da bitiyor", + "buttons": { + "episodes": "Bölümler", + "source": "Kaynak", + "captions": "Altyazılar", + "download": "İndir", + "settings": "Ayarlar", + "pictureInPicture": "Resim içinde Resim", + "playbackSpeed": "Oynatma Hızı" + }, + "popouts": { + "back": "Geri git", + "sources": "Kaynaklar", + "seasons": "Sezonlar", + "captions": "Altyazılar", + "playbackSpeed": "Oynatma hızı", + "customPlaybackSpeed": "Özel oynatma hızı", + "captionPreferences": { + "title": "Kişiselleştirme", + "delay": "Gecikme", + "fontSize": "Boyut", + "opacity": "Opaklık", + "color": "Renk" + }, + "episode": "B{{index}} - {{title}}", + "noCaptions": "Altyazı yok", + "linkedCaptions": "Kaynak Altyazıları", + "customCaption": "Özel altyazı", + "uploadCustomCaption": "Altyazı yükle", + "noEmbeds": "Bu kaynak için gömülü video bulunamadı", + + "errors": { + "loadingWentWong": "{{seasonTitle}} için bölümler yüklenirken bir hata oluştu", + "embedsError": "İstediğiniz şey için gömülü video bulunurken bir hata oluştu" + }, + "descriptions": { + "sources": "Hangi sağlayıcıyı kullanmak istersiniz?", + "embeds": "Görüntülemek istediğiniz videoyu seçiniz", + "seasons": "İzlemek istediğiniz sezonu seçiniz", + "episode": "Bir bölüm seçiniz", + "captions": "Altyazı dili seçiniz", + "captionPreferences": "Altyazıları istediğiniz gibi ayarlayın", + "playbackSpeed": "Oynatma hızınızı değiştirin" + } + }, + "errors": { + "fatalError": "Video oynatıcıda bir hata oluştu, lütfen bunu <0>Discord sunucumuzda ya da <1>GitHub üzeriden bildiriniz." + } + }, + "settings": { + "title": "Ayarlar", + "language": "Dil", + "captionLanguage": "Altyazı Dili" + }, + "v3": { + "newSiteTitle": "Yeni sürüm yayınlandı!", + "newDomain": "https://movie-web.app", + "newDomainText": "movie-web yakında yeni bir alan adına taşınacak: <0>https://movie-web.app. <1>{{date}} tarihinde eski site çalışmayacağı için yerimlerinizi güncellemeyi unutmayın.", + "tireless": "Bu yeni güncelleme için gece gündüz çalıştık, umarız aylardan beri hazırladığımız bu güncellemeyi beğenirsiniz.", + "leaveAnnouncement": "Götür beni!" + }, + "casting": { + "casting": "Cihaza aktarılıyor..." + }, + "errors": { + "offline": "İnternet bağlantınızı kontrol ediniz" + } +} diff --git a/src/video/components/actions/KeyboardShortcutsAction.tsx b/src/video/components/actions/KeyboardShortcutsAction.tsx index ba5ffc32..c87b6f68 100644 --- a/src/video/components/actions/KeyboardShortcutsAction.tsx +++ b/src/video/components/actions/KeyboardShortcutsAction.tsx @@ -60,7 +60,7 @@ export function KeyboardShortcutsAction() { // Mute case "m": - toggleVolume(); + toggleVolume(true); break; // Decrease volume