mirror of
https://github.com/Ernous/TorrServerJellyfin.git
synced 2025-12-20 05:56:10 +05:00
merge master
This commit is contained in:
@@ -64,13 +64,13 @@ require (
|
|||||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||||
github.com/mschoch/smat v0.2.0 // indirect
|
github.com/mschoch/smat v0.2.0 // indirect
|
||||||
github.com/pelletier/go-toml/v2 v2.1.0 // indirect
|
github.com/pelletier/go-toml/v2 v2.1.0 // indirect
|
||||||
github.com/rs/dnscache v0.0.0-20230804202142-fc85eb664529 // indirect
|
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect
|
||||||
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 // indirect
|
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 // indirect
|
||||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||||
github.com/ugorji/go/codec v1.2.11 // indirect
|
github.com/ugorji/go/codec v1.2.11 // indirect
|
||||||
golang.org/x/arch v0.5.0 // indirect
|
golang.org/x/arch v0.5.0 // indirect
|
||||||
golang.org/x/crypto v0.13.0 // indirect
|
golang.org/x/crypto v0.13.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
|
golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect
|
||||||
golang.org/x/net v0.15.0 // indirect
|
golang.org/x/net v0.15.0 // indirect
|
||||||
golang.org/x/sync v0.3.0 // indirect
|
golang.org/x/sync v0.3.0 // indirect
|
||||||
golang.org/x/sys v0.12.0 // indirect
|
golang.org/x/sys v0.12.0 // indirect
|
||||||
|
|||||||
@@ -289,8 +289,8 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn
|
|||||||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||||
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
|
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
|
||||||
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
||||||
github.com/rs/dnscache v0.0.0-20230804202142-fc85eb664529 h1:18kd+8ZUlt/ARXhljq+14TwAoKa61q6dX8jtwOf6DH8=
|
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 h1:Lt9DzQALzHoDwMBGJ6v8ObDPR0dzr2a6sXTB1Fq7IHs=
|
||||||
github.com/rs/dnscache v0.0.0-20230804202142-fc85eb664529/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA=
|
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA=
|
||||||
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a8tTFrMLUcfWwyC0pnifVo2ClaLq+hP8=
|
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a8tTFrMLUcfWwyC0pnifVo2ClaLq+hP8=
|
||||||
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
|
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
|
||||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
@@ -346,8 +346,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
|
|||||||
golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
|
golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
|
||||||
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
|
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g=
|
golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us=
|
||||||
golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
|
golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
|
||||||
golang.org/x/image v0.12.0 h1:w13vZbU4o5rKOFFR8y7M+c4A5jXDC0uXTdHYRP8X2DQ=
|
golang.org/x/image v0.12.0 h1:w13vZbU4o5rKOFFR8y7M+c4A5jXDC0uXTdHYRP8X2DQ=
|
||||||
golang.org/x/image v0.12.0/go.mod h1:Lu90jvHG7GfemOIcldsh9A2hS01ocl6oNO7ype5mEnk=
|
golang.org/x/image v0.12.0/go.mod h1:Lu90jvHG7GfemOIcldsh9A2hS01ocl6oNO7ype5mEnk=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
|
|||||||
@@ -111,6 +111,8 @@ export default function App() {
|
|||||||
? changeLang('ua')
|
? changeLang('ua')
|
||||||
: currentLang === 'ua'
|
: currentLang === 'ua'
|
||||||
? changeLang('zh')
|
? changeLang('zh')
|
||||||
|
: currentLang === 'zh'
|
||||||
|
? changeLang('bg')
|
||||||
: changeLang('en')
|
: changeLang('en')
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import translationEN from 'locales/en/translation.json'
|
|||||||
import translationRU from 'locales/ru/translation.json'
|
import translationRU from 'locales/ru/translation.json'
|
||||||
import translationUA from 'locales/ua/translation.json'
|
import translationUA from 'locales/ua/translation.json'
|
||||||
import translationZH from 'locales/zh/translation.json'
|
import translationZH from 'locales/zh/translation.json'
|
||||||
|
import translationBG from 'locales/bg/translation.json'
|
||||||
|
|
||||||
i18n
|
i18n
|
||||||
.use(LanguageDetector)
|
.use(LanguageDetector)
|
||||||
@@ -17,6 +18,7 @@ i18n
|
|||||||
ru: { translation: translationRU },
|
ru: { translation: translationRU },
|
||||||
ua: { translation: translationUA },
|
ua: { translation: translationUA },
|
||||||
zh: { translation: translationZH },
|
zh: { translation: translationZH },
|
||||||
|
bg: { translation: translationBG },
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
179
web/src/locales/bg/translation.json
Normal file
179
web/src/locales/bg/translation.json
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
{
|
||||||
|
"About": "Относно",
|
||||||
|
"Actions": "Действия",
|
||||||
|
"Add": "Добави",
|
||||||
|
"AddDialog": {
|
||||||
|
"AddPosterLinkInput": "Линк към плаката",
|
||||||
|
"AddTorrentSourceNotification": "Първо добавете вашия торент източник",
|
||||||
|
"AppendFile": {
|
||||||
|
"Or": "или",
|
||||||
|
"ClickOrDrag": "Щракнете / Влачи§Пусни (.torrent)"
|
||||||
|
},
|
||||||
|
"CustomTorrentTitle": "Персонализирано заглавие (по избор)",
|
||||||
|
"CustomTorrentTitleHelperText": "Напишете персонализирано заглавие, за да намерите плакат",
|
||||||
|
"HashExists": "Този торент вече е в базата данни",
|
||||||
|
"OriginalTorrentTitle": "Оригинално заглавие на торент",
|
||||||
|
"TitleBlank": "Заглавие",
|
||||||
|
"TitleBlankHelperText": "Заготовка за ориг. заглавие на торент",
|
||||||
|
"TorrentSourceLink": "Източник на торент",
|
||||||
|
"TorrentSourceOptions": "магнит / хеш / .torrent файл линк",
|
||||||
|
"WrongTorrentSource": "Грешен източник на торент"
|
||||||
|
},
|
||||||
|
"AddFromLink": "Добавете торент",
|
||||||
|
"AddNewTorrent": "Добавете нов торент",
|
||||||
|
"B": "B",
|
||||||
|
"bps": "bps",
|
||||||
|
"Buffer": "Предварителен буфер / кеш",
|
||||||
|
"BufferNote": "Задайте предварително зареден кеш преди възпроизвеждане > 32 MB в настройките, за да промените предварителния буфер",
|
||||||
|
"Cache": "Кеш",
|
||||||
|
"Cancel": "Отказ",
|
||||||
|
"Clear": "Изчисти",
|
||||||
|
"Close": "Затвори",
|
||||||
|
"CloseServer?": "Искате ли да изключите сървъра?",
|
||||||
|
"CloseServer": "Изключи",
|
||||||
|
"CopyHash": "Копиране магнит",
|
||||||
|
"CopyLink": "Копиране линк",
|
||||||
|
"Data": "Данни",
|
||||||
|
"DebugMode": "Приоритети при изтегляне",
|
||||||
|
"Delete": "Изтрий",
|
||||||
|
"DeleteTorrent?": "Изтриване на торент?",
|
||||||
|
"DeleteTorrents?": "Изтриване на всички торенти?",
|
||||||
|
"DetailedCacheView": {
|
||||||
|
"button": "Подробности за кеша",
|
||||||
|
"header": "Подробности за кеша"
|
||||||
|
},
|
||||||
|
"Details": "Подробности",
|
||||||
|
"Donate?": "Искате ли да дарите?",
|
||||||
|
"Donate": "Дарение",
|
||||||
|
"DownloadPlaylist": "Изтегляне на плейлист",
|
||||||
|
"DownloadSpeed": "Скорост на сваляне",
|
||||||
|
"Drop": "Забрави",
|
||||||
|
"DropTorrent": "Нулиране на торент",
|
||||||
|
"Edit": "Редакция",
|
||||||
|
"EditTorrent": "Редакция на торент",
|
||||||
|
"Episode": "Епизод",
|
||||||
|
"FromLatestFile": "От последния файл",
|
||||||
|
"Full": "Пълен",
|
||||||
|
"GB": "GB",
|
||||||
|
"Gbps": "Gbps",
|
||||||
|
"Host": "Хост",
|
||||||
|
"Info": "Инфо",
|
||||||
|
"KB": "KB",
|
||||||
|
"kbps": "kbps",
|
||||||
|
"Kilobytes": "Kilobytes",
|
||||||
|
"LatestFilePlayed": "Последно възпроизведен файл:",
|
||||||
|
"Links": "Връзки",
|
||||||
|
"MB": "MB",
|
||||||
|
"Mbps": "Mbps",
|
||||||
|
"Name": "Име",
|
||||||
|
"NoTorrentsAdded": "Няма добавени торенти",
|
||||||
|
"Offline": "Извън линия",
|
||||||
|
"OK": "OK",
|
||||||
|
"OpenLink": "Отвори линк",
|
||||||
|
"Peers": "Пиъри",
|
||||||
|
"PiecesCount": "Брой парчета",
|
||||||
|
"PiecesLength": "Дължина на парчетата",
|
||||||
|
"Playlist": "Плейлист",
|
||||||
|
"Preload": "Предварително зареждане",
|
||||||
|
"ProjectSource": "GitHub на проекта",
|
||||||
|
"NasReleases": "NAS Releases GitHub",
|
||||||
|
"PWAGuide": {
|
||||||
|
"Header": "Инсталирайте приложение",
|
||||||
|
"Description": "Инсталирайте приложението на вашето устройство за лесен достъп до него по всяко време. Няма магазини за приложения. Няма сваляне.",
|
||||||
|
"VLC": "Бутон към VLC ще бъде добавен, за да се отваря незабавно видеото на телефона",
|
||||||
|
"FirstStep": "Натисни",
|
||||||
|
"SecondStep": {
|
||||||
|
"Select": "Изберете",
|
||||||
|
"AddToHomeScreen": "Добави към началния екран"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Releases": "TorrServer издания",
|
||||||
|
"RemoveAll": "Премахнете всички",
|
||||||
|
"RemoveViews": "Премахни подробности за прегледите",
|
||||||
|
"Resolution": "Резолюция",
|
||||||
|
"Save": "Запис",
|
||||||
|
"ScrollDown": "превърти надолу",
|
||||||
|
"Season": "Сезон",
|
||||||
|
"Sec": "сек",
|
||||||
|
"Seconds": "Секунди",
|
||||||
|
"SelectSeason": "Избери сезон",
|
||||||
|
"SettingsDialog": {
|
||||||
|
"AddRetrackers": "Добавяне на ретракери",
|
||||||
|
"AdditionalSettings": "Допълнителни настройки",
|
||||||
|
"MobileAppSettings": "Настройки на мобилното приложение",
|
||||||
|
"CacheBeforeReaderDesc": "от кеша ще бъдат запазени преди текущо възпроизвеждания кадър",
|
||||||
|
"CacheAfterReaderDesc": "от кеша ще се зареди след текущо възпроизвеждания кадър",
|
||||||
|
"CacheSize": "Кеш размер",
|
||||||
|
"CacheSettings": "Кеш настройки",
|
||||||
|
"CacheStorageLocation": "Място за съхранение на кеша",
|
||||||
|
"ConnectionsLimit": "Ограничение на връзките",
|
||||||
|
"ConnectionsLimitHint": "20-25 препоръчително",
|
||||||
|
"DHT": "DHT (Distributed Hash Table)",
|
||||||
|
"DisableDHTHint": "Деактивирайте, ако няма мрежа след стартиране на сървъра",
|
||||||
|
"DisablePEXHint": "По-добре оставете включено",
|
||||||
|
"DisableTCPHint": "Не деактивирайте без активиран μTP",
|
||||||
|
"DisableUPNPHint": "Автоматично отваряне на порт на рутера",
|
||||||
|
"DisableUTPHint": "Препоръчва се да се деактивира в Windows OS",
|
||||||
|
"Disk": "Диск",
|
||||||
|
"DLNA": "DLNA Media Server",
|
||||||
|
"DontAddRetrackers": "Не добавяйте ретракери",
|
||||||
|
"DownloadRateLimit": "Ограничение на скоростта на изтегляне",
|
||||||
|
"EnableDebug": "Активиране лог за отстраняване на грешки (Debug)",
|
||||||
|
"EnableIPv6Hint": "Активирайте само ако се поддържа от ISP",
|
||||||
|
"ForceEncrypt": "Задължително шифроване на хедъри",
|
||||||
|
"ForceEncryptHint": "Може да помогне с доставчици, блокиращи торенти",
|
||||||
|
"FriendlyName": "Име на DLNA сървъра",
|
||||||
|
"FriendlyNameHint": "Оставете празно, за да използвате по подразбиране",
|
||||||
|
"EnableRutorSearch": "Включете търсенето на торенти от RuTor",
|
||||||
|
"EnableRutorSearchHint": "Можете да търсите торенти чрез RuTor, дори ако RuTor не е наличен. ЗАБЕЛЕЖКА: Базата данни отнема около 500 MB RAM.",
|
||||||
|
"PeersListenPort": "Порт за слушане на пиъри",
|
||||||
|
"PeersListenPortHint": "1024 - 65535, 0 - случайно",
|
||||||
|
"PreloadCache": "Предварително зареждане на кеша преди възпроизвеждане",
|
||||||
|
"ProMode": "ПРО режим",
|
||||||
|
"RAM": "RAM",
|
||||||
|
"ReaderReadAHead": "Кеш за четене напред (5-100%, преп. 95%)",
|
||||||
|
"RemoveCacheOnDrop": "Премахване на кеша от диска при премахване на торент",
|
||||||
|
"RemoveCacheOnDropDesc": "Ако е деактивиран, кешът е премахнат при изтриване на торент.",
|
||||||
|
"RemoveRetrackers": "Премахване на ретракери",
|
||||||
|
"ReplaceRetrackers": "Подмени ретракерите",
|
||||||
|
"RetrackersMode": "Режим за ретракери",
|
||||||
|
"ResetToDefault": "Връщане по подразбиране",
|
||||||
|
"Settings": "Настройки",
|
||||||
|
"TorrentDisconnectTimeout": "Време на изчакване на връзката с торенти",
|
||||||
|
"TorrentsSavePath": "Път за запазване на торенти",
|
||||||
|
"Upload": "Качване",
|
||||||
|
"UploadHint": "Не се препоръчва да деактивирате",
|
||||||
|
"UploadRateLimit": "Ограничение на скоростта на качване",
|
||||||
|
"UseDiskDesc": "По-добре използвайте RAM или външна памет на флаш-базирани устройства",
|
||||||
|
"Tabs": {
|
||||||
|
"Main": "Основен",
|
||||||
|
"Additional": "Допълнителен",
|
||||||
|
"AdditionalDisabled": "(разрешете ПРО режим)",
|
||||||
|
"App": "Приложение"
|
||||||
|
},
|
||||||
|
"UseVLC": "Подкана за отваряне на видео във VLC",
|
||||||
|
"UseVLCHint": "Добави бутон към VLC плеъра за списъка с торенти"
|
||||||
|
},
|
||||||
|
"Size": "Размер",
|
||||||
|
"SpecialThanks": "Специални благодарности",
|
||||||
|
"Speed": "Скорост",
|
||||||
|
"Support": "Поддръжка",
|
||||||
|
"TB": "TB",
|
||||||
|
"Tbps": "Tbps",
|
||||||
|
"ThanksToEveryone": "Благодаря на всички, които тестваха и помогнаха.",
|
||||||
|
"TorrentAdded": "Добавен",
|
||||||
|
"TorrentClosed": "Затворен",
|
||||||
|
"TorrentContent": "Съдржание на торента",
|
||||||
|
"TorrentDetails": "Детайли за торента",
|
||||||
|
"TorrentGettingInfo": "Получаване на информация",
|
||||||
|
"TorrentInDb": "В DB",
|
||||||
|
"TorrentPreload": "Презареден",
|
||||||
|
"TorrentSize": "Размер на торента",
|
||||||
|
"TorrentState": "Състояние на торента",
|
||||||
|
"TorrentStatus": "Статус на торента",
|
||||||
|
"TorrentWorking": "Активен",
|
||||||
|
"TurnOff": "Изключване",
|
||||||
|
"UploadFile": "Качи файл",
|
||||||
|
"UploadSpeed": "Скорост на качване",
|
||||||
|
"Viewed": "Гледан"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user