chore: update translations (#1692)

Co-authored-by: Larsluph <22910497+Larsluph@users.noreply.github.com>
This commit is contained in:
github-actions[bot] 2024-05-19 15:14:41 +02:00 committed by GitHub
parent baed3032a2
commit 5071058fc5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 2450 additions and 566 deletions

View file

@ -2,20 +2,25 @@
## [2.8.1](https://github.com/VueTorrent/VueTorrent/compare/v2.8.0...v2.8.1) (2024-05-14)
### Bug Fixes
* **backend:** Exclude custom title from backend sync ([#1673](https://github.com/VueTorrent/VueTorrent/issues/1673)) ([e9f78d4](https://github.com/VueTorrent/VueTorrent/commit/e9f78d4ebd96e4e4c38cf63e63e5a707b2792972))
- **backend:** Exclude custom title from backend sync ([#1673](https://github.com/VueTorrent/VueTorrent/issues/1673))
([e9f78d4](https://github.com/VueTorrent/VueTorrent/commit/e9f78d4ebd96e4e4c38cf63e63e5a707b2792972))
### Improvements
* **MagnetHandler:** Add alias to old link for better compatibility ([#1682](https://github.com/VueTorrent/VueTorrent/issues/1682)) ([3b1f5a3](https://github.com/VueTorrent/VueTorrent/commit/3b1f5a3cd909c54787a67e11cafb0c00f51b56db))
* **Peers:** Show client, peer_id, and i18n strings ([#1579](https://github.com/VueTorrent/VueTorrent/issues/1579)) ([cbfe2c9](https://github.com/VueTorrent/VueTorrent/commit/cbfe2c92a71ebe626584e50f46e7868c9bf6f655))
* Reword torrent priority to queue position ([#1667](https://github.com/VueTorrent/VueTorrent/issues/1667)) ([719a29d](https://github.com/VueTorrent/VueTorrent/commit/719a29d778040fa73228cbf3937a23ab08c7ae9d))
* **RSS:** add refresh all rss feeds button to rss articles ([#1679](https://github.com/VueTorrent/VueTorrent/issues/1679)) ([4ddf5f3](https://github.com/VueTorrent/VueTorrent/commit/4ddf5f3469861f9dbc396ea18d9e9ae0de37a449))
* **settings:** Prettify exported JSON ([#1672](https://github.com/VueTorrent/VueTorrent/issues/1672)) ([84b9c12](https://github.com/VueTorrent/VueTorrent/commit/84b9c12881ef81cac360e98af600fae9c69b255a))
* **TorrentDetail:** Use colors for ratio and chips ([#1662](https://github.com/VueTorrent/VueTorrent/issues/1662)) ([c902d62](https://github.com/VueTorrent/VueTorrent/commit/c902d622b9684112108aab038db75d13ae474976))
- **MagnetHandler:** Add alias to old link for better compatibility ([#1682](https://github.com/VueTorrent/VueTorrent/issues/1682))
([3b1f5a3](https://github.com/VueTorrent/VueTorrent/commit/3b1f5a3cd909c54787a67e11cafb0c00f51b56db))
- **Peers:** Show client, peer_id, and i18n strings ([#1579](https://github.com/VueTorrent/VueTorrent/issues/1579))
([cbfe2c9](https://github.com/VueTorrent/VueTorrent/commit/cbfe2c92a71ebe626584e50f46e7868c9bf6f655))
- Reword torrent priority to queue position ([#1667](https://github.com/VueTorrent/VueTorrent/issues/1667))
([719a29d](https://github.com/VueTorrent/VueTorrent/commit/719a29d778040fa73228cbf3937a23ab08c7ae9d))
- **RSS:** add refresh all rss feeds button to rss articles ([#1679](https://github.com/VueTorrent/VueTorrent/issues/1679))
([4ddf5f3](https://github.com/VueTorrent/VueTorrent/commit/4ddf5f3469861f9dbc396ea18d9e9ae0de37a449))
- **settings:** Prettify exported JSON ([#1672](https://github.com/VueTorrent/VueTorrent/issues/1672))
([84b9c12](https://github.com/VueTorrent/VueTorrent/commit/84b9c12881ef81cac360e98af600fae9c69b255a))
- **TorrentDetail:** Use colors for ratio and chips ([#1662](https://github.com/VueTorrent/VueTorrent/issues/1662))
([c902d62](https://github.com/VueTorrent/VueTorrent/commit/c902d622b9684112108aab038db75d13ae474976))
## [2.8.0](https://github.com/VueTorrent/VueTorrent/compare/v2.7.3...v2.8.0) (2024-04-23)

View file

@ -41,9 +41,8 @@ The sleekest looking WebUI for qBittorrent made with Vue.js!
A live demo **with mocked data** is available here: https://vuetorrent.github.io/demo
> [!NOTE]
> This version isn't connected to a qBittorrent instance.
>
> [!NOTE] This version isn't connected to a qBittorrent instance.
>
> Don't try to download torrents or change preferences, it won't work 😉
## Installation

View file

@ -14,7 +14,7 @@ const getTextElement = (el: VueWrapper) => el.find('[data-testid="mixedbtn-text"
const mobile = ref(true)
vi.mock('vuetify', async (importOriginal) => {
vi.mock('vuetify', async importOriginal => {
const mod = await importOriginal<typeof import('vuetify')>()
return {
...mod,
@ -32,17 +32,13 @@ describe('MixedButton.vue', () => {
const btn = mount(MixedButton, {
props: { icon, text },
global: {
plugins: [
createTestingPinia(),
i18n,
vuetify
]
plugins: [createTestingPinia(), i18n, vuetify]
}
})
const iconElement = getIconElement(btn)
const textElement = getTextElement(btn)
expect(iconElement.exists(), "icon element should be rendered").true
expect(iconElement.exists(), 'icon element should be rendered').true
expect(iconElement.classes()).include(icon)
expect(textElement.exists(), "text element shouldn't be rendered").false
})
@ -52,18 +48,14 @@ describe('MixedButton.vue', () => {
const btn = mount(MixedButton, {
props: { icon, text },
global: {
plugins: [
createTestingPinia(),
i18n,
vuetify
]
plugins: [createTestingPinia(), i18n, vuetify]
}
})
const iconElement = getIconElement(btn)
const textElement = getTextElement(btn)
expect(iconElement.exists(), "icon element shouldn't be rendered").false
expect(textElement.exists(), "text element should be rendered").true
expect(textElement.exists(), 'text element should be rendered').true
expect(textElement.text()).eq(text)
})
@ -71,17 +63,13 @@ describe('MixedButton.vue', () => {
const btn = mount(MixedButton, {
props: { icon, text, mobileOverride: true, mobileValue: true },
global: {
plugins: [
createTestingPinia(),
i18n,
vuetify
]
plugins: [createTestingPinia(), i18n, vuetify]
}
})
const iconElement = getIconElement(btn)
const textElement = getTextElement(btn)
expect(iconElement.exists(), "icon element should be rendered").true
expect(iconElement.exists(), 'icon element should be rendered').true
expect(iconElement.classes()).include(icon)
expect(textElement.exists(), "text element shouldn't be rendered").false
})
@ -90,18 +78,14 @@ describe('MixedButton.vue', () => {
const btn = mount(MixedButton, {
props: { icon, text, mobileOverride: true, mobileValue: false },
global: {
plugins: [
createTestingPinia(),
i18n,
vuetify
]
plugins: [createTestingPinia(), i18n, vuetify]
}
})
const iconElement = getIconElement(btn)
const textElement = getTextElement(btn)
expect(iconElement.exists(), "icon element shouldn't be rendered").false
expect(textElement.exists(), "text element should be rendered").true
expect(textElement.exists(), 'text element should be rendered').true
expect(textElement.text()).eq(text)
})
})
})

View file

@ -2,18 +2,21 @@
import { computed } from 'vue'
import { useDisplay } from 'vuetify'
const props = withDefaults(defineProps<{
mobileOverride?: boolean
mobileValue?: boolean
icon: string
text: string
}>(), {
mobileOverride: false
})
const props = withDefaults(
defineProps<{
mobileOverride?: boolean
mobileValue?: boolean
icon: string
text: string
}>(),
{
mobileOverride: false
}
)
const { mobile: mobileRef } = useDisplay()
const mobile = computed(() => props.mobileOverride ? props.mobileValue : mobileRef.value)
const mobile = computed(() => (props.mobileOverride ? props.mobileValue : mobileRef.value))
</script>
<template>

View file

@ -84,12 +84,10 @@ function closeInstallDialog() {
<v-spacer />
<MixedButton icon="mdi-update" :text="$t('dialogs.pluginManager.update')"
color="accent" class="mr-2" :loading="updateLoading" @click="updatePlugins" />
<MixedButton icon="mdi-update" :text="$t('dialogs.pluginManager.update')" color="accent" class="mr-2" :loading="updateLoading" @click="updatePlugins" />
<v-dialog v-model="installisOpened">
<template v-slot:activator="{ props }">
<MixedButton icon="mdi-toy-brick-plus" :text="$t('dialogs.pluginManager.install.activator')"
v-bind="props" color="primary" />
<MixedButton icon="mdi-toy-brick-plus" :text="$t('dialogs.pluginManager.install.activator')" v-bind="props" color="primary" />
</template>
<v-card :title="$t('dialogs.pluginManager.install.title')">

View file

@ -41,6 +41,4 @@ const rssStore = useRssStore()
</v-list-item>
</template>
<style scoped>
</style>
<style scoped></style>

View file

@ -21,7 +21,9 @@ const vuetorrentStore = useVueTorrentStore()
const selectedFeed = computed(() => route.params.feedId)
const articles = computed(() => rssStore.filteredArticles.filter(article => !selectedFeed.value || selectedFeed.value === article.feedId).sort((a, b) => Number(b.parsedDate) - Number(a.parsedDate)))
const articles = computed(() =>
rssStore.filteredArticles.filter(article => !selectedFeed.value || selectedFeed.value === article.feedId).sort((a, b) => Number(b.parsedDate) - Number(a.parsedDate))
)
const { paginatedResults, currentPage, pageCount } = useArrayPagination(articles, 15)
@ -48,11 +50,7 @@ async function markAsRead(item: RssArticle) {
<template v-for="(article, index) in paginatedResults">
<v-divider v-if="index > 0" color="white" />
<Article :value="article"
@click="$emit('articleClicked', article)"
@markAsRead="markAsRead(article)"
@open="openLink(article)"
@download="downloadArticle(article)" />
<Article :value="article" @click="$emit('articleClicked', article)" @markAsRead="markAsRead(article)" @open="openLink(article)" @download="downloadArticle(article)" />
</template>
<v-list-item v-if="articles.length === 0">

View file

@ -51,6 +51,4 @@ const loading = computed(() => props.state === FeedState.LOADING)
</div>
</template>
<style scoped>
</style>
<style scoped></style>

View file

@ -57,7 +57,7 @@ async function refreshAllFeeds() {
function getFeedTitle(feed?: FeedType) {
const unreadCount = getUnreadCount(feed)
return (unreadCount ? `${ unreadCount } | ` : '') + `${ feed ? feed.name : 'All' }`
return (unreadCount ? `${unreadCount} | ` : '') + `${feed ? feed.name : 'All'}`
}
const allState = computed(() => {
@ -74,10 +74,7 @@ function getFeedState(feed: FeedType) {
<template>
<v-list :height="height">
<v-list-item :active="!currentFeed"
color="accent"
variant="text"
@click="currentFeed = undefined">
<v-list-item :active="!currentFeed" color="accent" variant="text" @click="currentFeed = undefined">
<div class="d-flex align-center">
<FeedIcon :state="allState" />
<v-list-item-title>{{ getFeedTitle() }}</v-list-item-title>
@ -104,19 +101,21 @@ function getFeedState(feed: FeedType) {
</v-list-item>
<v-divider thickness="3" />
<template v-for="feed in rssStore.feeds">
<v-list-item v-if="(!rssStore.filters.unread || rssStore.filters.unread && getUnreadCount(feed) > 0) && filteredFeedIds.includes(feed.uid)"
:active="currentFeed === feed.uid"
:class="getUnreadCount(feed) > 0 ? 'text-accent' : ''"
color="accent"
variant="text"
@click="toggleFeedSelected(feed)">
<Feed :title="getFeedTitle(feed)"
:state="getFeedState(feed)"
:unread-count="getUnreadCount(feed)"
@readFeed="readFeed(feed)"
@refreshFeed="$emit('refreshFeed', feed)"
@editFeed="$emit('editFeed', feed)"
@deleteFeed="$emit('deleteFeed', feed)" />
<v-list-item
v-if="(!rssStore.filters.unread || (rssStore.filters.unread && getUnreadCount(feed) > 0)) && filteredFeedIds.includes(feed.uid)"
:active="currentFeed === feed.uid"
:class="getUnreadCount(feed) > 0 ? 'text-accent' : ''"
color="accent"
variant="text"
@click="toggleFeedSelected(feed)">
<Feed
:title="getFeedTitle(feed)"
:state="getFeedState(feed)"
:unread-count="getUnreadCount(feed)"
@readFeed="readFeed(feed)"
@refreshFeed="$emit('refreshFeed', feed)"
@editFeed="$emit('editFeed', feed)"
@deleteFeed="$emit('deleteFeed', feed)" />
</v-list-item>
</template>
</v-list>

View file

@ -81,22 +81,24 @@ onUnmounted(() => {
<template v-slot:activator="{ props }">
<v-btn class="fab" v-bind="props" color="accent" icon="mdi-format-list-bulleted" size="large" />
</template>
<FeedList @update="bottomSheetVisible = false"
@createFeed="() => openFeedDialog()"
@editFeed="feed => openFeedDialog(feed)"
@deleteFeed="feed => deleteFeed(feed)"
@refreshFeed="feed => refreshFeed(feed)" />
<FeedList
@update="bottomSheetVisible = false"
@createFeed="() => openFeedDialog()"
@editFeed="feed => openFeedDialog(feed)"
@deleteFeed="feed => deleteFeed(feed)"
@refreshFeed="feed => refreshFeed(feed)" />
</v-bottom-sheet>
</template>
<!-- Desktop Layout -->
<v-row v-else>
<v-col cols="4">
<FeedList :height="rowHeight"
@createFeed="() => openFeedDialog()"
@editFeed="feed => openFeedDialog(feed)"
@deleteFeed="feed => deleteFeed(feed)"
@refreshFeed="feed => refreshFeed(feed)" />
<FeedList
:height="rowHeight"
@createFeed="() => openFeedDialog()"
@editFeed="feed => openFeedDialog(feed)"
@deleteFeed="feed => deleteFeed(feed)"
@refreshFeed="feed => refreshFeed(feed)" />
</v-col>
<v-col cols="8">

View file

@ -29,12 +29,12 @@ async function deleteRule(rule: FeedRule) {
<v-spacer />
<div>
<v-btn
class="my-2 mr-2"
:icon="value.enabled ? 'mdi-check' : 'mdi-cancel'"
:color="value.enabled ? 'accent' : 'red'"
variant="plain"
density="compact"
@click="toggleRule(value)" />
class="my-2 mr-2"
:icon="value.enabled ? 'mdi-check' : 'mdi-cancel'"
:color="value.enabled ? 'accent' : 'red'"
variant="plain"
density="compact"
@click="toggleRule(value)" />
<v-tooltip :text="$t('common.edit')" location="top">
<template v-slot:activator="{ props }">
@ -51,6 +51,4 @@ async function deleteRule(rule: FeedRule) {
</v-sheet>
</template>
<style scoped>
</style>
<style scoped></style>

View file

@ -1,7 +1,7 @@
<script lang="ts" setup>
import {useMaindataStore, useTorrentStore} from '@/stores'
import {Torrent} from '@/types/vuetorrent'
import {onBeforeMount} from 'vue'
import { useMaindataStore, useTorrentStore } from '@/stores'
import { Torrent } from '@/types/vuetorrent'
import { onBeforeMount } from 'vue'
const props = defineProps<{ torrent: Torrent; isActive: boolean }>()
@ -38,13 +38,7 @@ onBeforeMount(async () => {
<v-list>
<v-list-subheader>{{ $t('torrentDetail.tagsAndCategories.tags') }}</v-list-subheader>
<v-list-item
v-for="tag in maindataStore.tags"
variant="text"
color="accent"
:title="tag"
:active="torrent.tags?.includes(tag)"
@click="toggleTag(tag)"/>
<v-list-item v-for="tag in maindataStore.tags" variant="text" color="accent" :title="tag" :active="torrent.tags?.includes(tag)" @click="toggleTag(tag)" />
</v-list>
</v-col>
@ -53,12 +47,12 @@ onBeforeMount(async () => {
<v-list-subheader>{{ $t('torrentDetail.tagsAndCategories.categories') }}</v-list-subheader>
<v-list-item
v-for="category in maindataStore.categories"
variant="text"
color="accent"
:title="category.name"
:active="category.name === props.torrent.category"
@click="setCategory(category.name)"/>
v-for="category in maindataStore.categories"
variant="text"
color="accent"
:title="category.name"
:active="category.name === props.torrent.category"
@click="setCategory(category.name)" />
</v-list>
</v-col>
</v-row>

View file

@ -8,4 +8,4 @@ export enum FeedState {
UNREAD,
/** All articles are read */
READ
}
}

235
src/locales/cs.json Normal file
View file

@ -0,0 +1,235 @@
{
"common": {
"active": "Aktivní",
"cancel": "Zrušit",
"close": "Zavřít",
"delete": "Smazat",
"disable": "Zakázat",
"disabled": "Vypnuto",
"emptyList": "Není tu nic k vidění!",
"NA": "Není k dispozici",
"no": "Ne",
"none": "(Žádné)",
"ok": "OK",
"save": "Uložit",
"selectAll": "Vybrat vše",
"selectNone": "Nic nevybrat",
"useGlobalSettings": "Použít globální nastavení",
"yes": "Ano"
},
"constants": {
"addPaused": {
"always": "Vždy",
"never": "Nikdy",
"title": "Přidat pozastavené"
},
"bittorrentProtocols": {
"tcp": "TCP",
"tcp_utp": "TCP a μTP",
"utp": "μTP"
},
"connectionStatus": {
"connected": "Připojeno",
"disconnected": "Odpojeno",
"firewalled": "Blokováno firewallem",
"unknown": "Neznámý"
},
"contentLayout": {
"nosubfolder": "Odebrat podsložku",
"original": "Původní",
"subfolder": "Vytvořit podsložku",
"title": "Rozvržení obsahu torrentu"
},
"diskIoMode": {
"disableOsCache": "Zakázání mezipaměti operačního systému",
"enableOsCache": "Povolení mezipaměti operačního systému",
"writeThrough": "Zápis (libtorrent >= 2.0.6)"
},
"diskIoType": {
"default": "Výchozí",
"memoryMappedFiles": "Soubory mapované v paměti",
"posixCompliant": "Kompatibilní s POSIX"
},
"encryption": {
"forceOff": "Zakázat šifrování",
"forceOn": "Vyžadovat šifrování",
"preferEncryption": "Povolit šifrování"
},
"file_log_age_type": {
"days": "Dny",
"months": "Měsíce",
"years": "Roky"
},
"file_priority": {
"high": "Vysoká",
"max": "Max",
"normal": "Normální",
"unwanted": "Nechtěný"
},
"maxRatioAction": {
"pauseTorrent": "Pozastavit torrent",
"removeTorrent": "Odebrat torrent",
"removeTorrentAndFiles": "Odstraňte torrent a jeho soubory",
"torrentSuperseeding": "Povolit super seeding pro torrent"
},
"monitoredFolderSaveLocation": {
"defaultSavePath": "Výchozí cesta k uložení",
"monitoredFolder": "Umístění sledované složky",
"other": "Jiné"
},
"proxy_type": {
"http": "HTTP",
"socks4": "SOCKS4",
"socks5": "SOCKS5"
},
"scheduler": {
"everyDay": "Každý den",
"everyFriday": "Každý pátek",
"everyMonday": "Každé pondělí",
"everySaturday": "Každou sobotu",
"everySunday": "Každou neděli",
"everyThursday": "Každý čtvrtek",
"everyTuesday": "Každé úterý",
"everyWednesday": "Každou středu",
"everyWeekday": "Každý všední den",
"everyWeekend": "Každý víkend"
},
"stopCondition": {
"filesChecked": "Soubory zkontrolovány",
"metadataReceived": "Metadata přijata",
"none": "Žádné",
"title": "Podmínka zastavení torrentu"
},
"titleOptions": {
"custom": "Vlastní",
"default": "Výchozí",
"first_torrent_speed": "Rychlost prvního torrentu",
"global_speed": "Globální rychlost"
},
"trackerStatus": {
"disabled": "Vypnuto",
"not_working": "Nefunguje",
"not_yet_contacted": "Dosud nekontaktováno",
"updating": "Aktualizuji",
"working": "Zaneprázdněn"
},
"uploadChokingAlgorithm": {
"antiLeech": "Ochrana proti pijavicím (Anti-leech)",
"fastestUpload": "Nejrychlejší nahrávání",
"roundRobin": "Round-robin"
},
"uploadSlotsBehavior": {
"fixedSlots": "Pevné sloty",
"uploadRateBased": "Na základě rychlosti nahrávání"
},
"utpTcpMixedMode": {
"peerProportional": "Rovnoměrné rozdělení (omezení TCP)",
"preferTcp": "Upřednostňovat TCP"
}
},
"dashboard": {
"displayMode": {
"grid": "Mřížka",
"list": "Seznam",
"table": "Tabulka",
"title": "Režim zobrazení"
},
"not_complete": "Nikdy nebylo dokončeno",
"right_click": {
"advanced": {
"auto_tmm": "Automatická správa torrentů",
"download_path": "Nastavení cesty ke stažení",
"f_l_prio": "První / poslední priorita",
"reannounce": "Vynutit opětovné ohlášení",
"recheck": "Vynutit opakovanou kontrolu",
"rename": "Přejmenování torrentu",
"save_path": "Nastavení cesty k uložení",
"seq_dl": "Sekvenční stahování",
"title": "Pokročilé"
},
"category": {
"clear": "(Vymazat kategorii)",
"disabled_title": "Žádné kategorie",
"title": "Nastavit kategorii"
},
"copy": {
"hash": "Hash",
"magnet": "Magnet",
"name": "Název",
"title": "Kopírovat"
},
"export": "Exportovat torrent | Exportovat torrenty",
"info": "Zobrazit informace",
"priority": {
"bottom": "Nejnižší priorita",
"decrease": "Snížit prioritu",
"increase": "Zvýšit prioritu",
"title": "Nastavení priority",
"top": "Nejvyšší priorita"
},
"speed_limit": {
"download": "Nastavit limit rychlosti stahování",
"share": "Nastavit limit sdílení",
"title": "Nastavit omezení rychlosti",
"upload": "Nastavit limit rychlosti odesílání"
},
"tags": {
"disabled_title": "Žádné značky",
"title": "Nastavení značek"
},
"top": {
"delete": "Smazat",
"force_resume": "Vynutit obnovení",
"pause": "Pozastavit",
"resume": "Obnovit"
}
},
"searchInputLabel": "Hledat",
"selectAll": "(Od)vybrat vše (Ctrl + A)",
"selectedTorrentsCount": "Žádný torrent | {count} z {total} torrentů ({size}) | {count} z {total} torrentů ({size})",
"sortBy": {
"added_on": "Přidáno dne",
"amount_left": "Zbývá množství",
"auto_tmm": "Automatické TMM",
"availability": "Dostupnost",
"avg_download_speed": "Průměrná rychlost stahování",
"avg_upload_speed": "Průměrná rychlost nahrávání",
"category": "Kategorie",
"completed": "Dokončeno",
"completion_on": "Dokončeno dne",
"content_path": "Cesta k obsahu",
"default": "Výchozí",
"dl_limit": "Limit stahování",
"dlspeed": "Rychlost stahování",
"downloaded": "Staženo (Celkově)",
"downloaded_session": "Staženo (Relace)",
"download_path": "Cesta ke stažení",
"eta": "ETA",
"f_l_piece_prio": "Priorita prvního/posledního kusu",
"force_start": "Vynucený start",
"globalSpeed": "Celková rychlost",
"globalVolume": "Celkový objem",
"hash": "Hash",
"infohash_v1": "Infohash v1",
"infohash_v2": "Infohash v2",
"last_activity": "Poslední aktivita",
"magnet_uri": "Magnet URI",
"max_ratio": "Maximální poměr",
"max_seeding_time": "Maximální doba odesílání",
"name": "Název",
"num_complete": "Odesílající (swarm)",
"num_incomplete": "Stahující (swarm)",
"num_leechs": "Stahující (připojení)",
"num_seeds": "Odesílající (připojení)",
"priority": "Priorita",
"progress": "Postup",
"ratio": "Poměr",
"ratio_limit": "Poměrový limit"
}
},
"torrent": {
"properties": {
"priority": "Priorita"
}
}
}

View file

@ -6,6 +6,7 @@
"delete": "Eliminar",
"disable": "Desactivar",
"disabled": "Desactivado",
"edit": "Editar",
"emptyList": "¡Nada que ver aqui!",
"NA": "N/D",
"no": "No",
@ -510,22 +511,32 @@
}
},
"rssArticles": {
"filters": {
"title": "Filtro de título",
"unread": "Mostrar solo artículos no leídos"
"feeds": {
"empty": {
"action": "Crear fuente RSS"
},
"filters": {
"title": "Filtro de título",
"unread": "Mostrar solo artículos no leídos"
},
"item": {
"author": "Autor: {author}",
"category": "Categoría: {category}",
"feedName": "Nombre del feed: {name}"
},
"markAllAsRead": "Marcar todo como leído",
"promise": {
"error": "Se produjo un error al marcar los artículos",
"pending": "Marcando...",
"success": "{n} artículos marcados como leídos"
},
"title": "Artículos RSS"
},
"item": {
"author": "Autor: {author}",
"category": "Categoría: {category}",
"feedName": "Nombre del feed: {name}"
},
"markAllAsRead": "Marcar todo como leído",
"promise": {
"error": "Se produjo un error al marcar los artículos",
"pending": "Marcando...",
"success": "{n} artículos marcados como leídos"
},
"title": "Artículos RSS"
"rules": {
"empty": {
"action": "Crear regla RSS"
}
}
},
"searchEngine": {
"filters": {
@ -822,34 +833,23 @@
}
},
"rss": {
"feeds": {
"createNew": "Agregar fuente",
"noFeeds": "Aún no hay feeds",
"refreshAll": "Actualizar todo"
"autoDownloader": {
"enable": "Habilitar el procesamiento de reglas RSS",
"subheader": "Descargador Automático de Torrents RSS"
},
"general": {
"autoDownloader": {
"enable": "Habilitar el procesamiento de reglas RSS",
"subheader": "Descargador Automático de Torrents RSS"
},
"reader": {
"enableProcessing": "Habilitar la obtención de feeds RSS",
"feedsRefreshInterval": "Intervalo de actualización de feeds",
"maximumArticlesPerFeed": "Número máximo de artículos por fuente",
"subheader": "Lector de RSS"
},
"smartEpisodeFilter": {
"downloadEpisodes": "Descargar episodios REPACK/PROPER",
"filters": "Filtros",
"filtersHint": "Uno por línea",
"subheader": "Filtro inteligente de episodios RSS"
},
"useIdForRssLinks": "Usar ID para enlace de artículo RSS"
"reader": {
"enableProcessing": "Habilitar la obtención de feeds RSS",
"feedsRefreshInterval": "Intervalo de actualización de feeds",
"maximumArticlesPerFeed": "Número máximo de artículos por fuente",
"subheader": "Lector de RSS"
},
"rules": {
"createNew": "Crear regla",
"noRules": "Aún no hay reglas"
}
"smartEpisodeFilter": {
"downloadEpisodes": "Descargar episodios REPACK/PROPER",
"filters": "Filtros",
"filtersHint": "Uno por línea",
"subheader": "Filtro inteligente de episodios RSS"
},
"useIdForRssLinks": "Usar ID para enlace de artículo RSS"
},
"saveSuccess": "¡Ajustes guardados!",
"speed": {
@ -880,12 +880,7 @@
"bittorrent": "BitTorrent",
"connection": "Conexión",
"downloads": "Descargas",
"rss": {
"feeds": "Fuentes",
"general": "General",
"rules": "Reglas",
"title": "RSS"
},
"rss": "RSS",
"speed": "Velocidad",
"tagsAndCategories": "Etiquetas y Categorías",
"vuetorrent": {

View file

@ -6,6 +6,7 @@
"delete": "Supprimer",
"disable": "Désactiver",
"disabled": "Désactivé",
"edit": "Modifier",
"emptyList": "Rien à voir ici !",
"global_value": "Valeur globale",
"NA": "N/A",
@ -516,22 +517,32 @@
}
},
"rssArticles": {
"filters": {
"title": "Filtre de titre",
"unread": "Montrer uniquement les articles non-lu"
"feeds": {
"empty": {
"action": "Créer un flux RSS"
},
"filters": {
"title": "Filtre de titre",
"unread": "Montrer uniquement les articles non-lu"
},
"item": {
"author": "Auteur: {author}",
"category": "Categorie : {category}",
"feedName": "Nom du flux: {name}"
},
"markAllAsRead": "Marquer tout comme lu",
"promise": {
"error": "Une error s'est produite lors du marquage des articles",
"pending": "Marquage en cours...",
"success": "{n} articles marqués comme lus"
},
"title": "Articles RSS"
},
"item": {
"author": "Auteur: {author}",
"category": "Categorie : {category}",
"feedName": "Nom du flux: {name}"
},
"markAllAsRead": "Marquer tout comme lu",
"promise": {
"error": "Une error s'est produite lors du marquage des articles",
"pending": "Marquage en cours...",
"success": "{n} articles marqués comme lus"
},
"title": "Articles RSS"
"rules": {
"empty": {
"action": "Créer une règle RSS"
}
}
},
"searchEngine": {
"filters": {
@ -828,34 +839,23 @@
}
},
"rss": {
"feeds": {
"createNew": "Ajouter un flux",
"noFeeds": "Pas encore de flux",
"refreshAll": "Tout actualiser"
"autoDownloader": {
"enable": "Activer le traitement des règles RSS",
"subheader": "Téléchargement automatique de torrents via RSS"
},
"general": {
"autoDownloader": {
"enable": "Activer le traitement des règles RSS",
"subheader": "Téléchargement automatique de torrents via RSS"
},
"reader": {
"enableProcessing": "Activer la récupération des flux RSS",
"feedsRefreshInterval": "Intervalle de rafraîchissement des flux",
"maximumArticlesPerFeed": "Nombre maximum d'articles par flux",
"subheader": "Lecteur RSS"
},
"smartEpisodeFilter": {
"downloadEpisodes": "Télécharger les épisodes REPACK/PROPER",
"filters": "Filtres",
"filtersHint": "Un par ligne",
"subheader": "Filtre intelligent pour les épisodes RSS"
},
"useIdForRssLinks": "Utiliser les ID pour les liens RSS"
"reader": {
"enableProcessing": "Activer la récupération des flux RSS",
"feedsRefreshInterval": "Intervalle de rafraîchissement des flux",
"maximumArticlesPerFeed": "Nombre maximum d'articles par flux",
"subheader": "Lecteur RSS"
},
"rules": {
"createNew": "Créer une règle",
"noRules": "Pas encore de règles"
}
"smartEpisodeFilter": {
"downloadEpisodes": "Télécharger les épisodes REPACK/PROPER",
"filters": "Filtres",
"filtersHint": "Un par ligne",
"subheader": "Filtre intelligent pour les épisodes RSS"
},
"useIdForRssLinks": "Utiliser les ID pour les liens RSS"
},
"saveSuccess": "Paramètres sauvegardés !",
"speed": {
@ -886,12 +886,7 @@
"bittorrent": "BitTorrent",
"connection": "Connexion",
"downloads": "Téléchargements",
"rss": {
"feeds": "Flux",
"general": "Général",
"rules": "Règles",
"title": "RSS"
},
"rss": "RSS",
"speed": "Vitesse",
"tagsAndCategories": "Étiquettes & Catégories",
"vuetorrent": {

View file

@ -6,6 +6,7 @@
"delete": "Törlés",
"disable": "Letilt",
"disabled": "Letiltva",
"edit": "Szerkesztés",
"emptyList": "Itt nincs mit látni!",
"NA": "N/A",
"no": "Nem",
@ -510,22 +511,32 @@
}
},
"rssArticles": {
"filters": {
"title": "Cím szűrő",
"unread": "Csak olvasatlan cikkek megjelenítése"
"feeds": {
"empty": {
"action": "RSS hírcsatorna létrehozása"
},
"filters": {
"title": "Cím szűrő",
"unread": "Csak olvasatlan cikkek megjelenítése"
},
"item": {
"author": "Szerző: {author}",
"category": "Kategória: {category}",
"feedName": "Hírcsatorna neve: {name}"
},
"markAllAsRead": "Összes megjelölése olvasottként",
"promise": {
"error": "Hiba történt a cikkek megjelölése közben",
"pending": "Megjelölés...",
"success": "{n} cikk megjelölve olvasottként"
},
"title": "RSS cikkek"
},
"item": {
"author": "Szerző: {author}",
"category": "Kategória: {category}",
"feedName": "Hírcsatorna neve: {name}"
},
"markAllAsRead": "Összes megjelölése olvasottként",
"promise": {
"error": "Hiba történt a cikkek megjelölése közben",
"pending": "Megjelölés...",
"success": "{n} cikk megjelölve olvasottként"
},
"title": "RSS cikkek"
"rules": {
"empty": {
"action": "RSS szabály létrehozása"
}
}
},
"searchEngine": {
"filters": {
@ -822,34 +833,23 @@
}
},
"rss": {
"feeds": {
"createNew": "Hírcsatorna hozzáadása",
"noFeeds": "Még nincsenek hírcsatornák",
"refreshAll": "Összes frissítése"
"autoDownloader": {
"enable": "RSS szabályok feldolgozásának engedélyezése",
"subheader": "RSS Torrent Automatikus Letöltő"
},
"general": {
"autoDownloader": {
"enable": "RSS szabályok feldolgozásának engedélyezése",
"subheader": "RSS Torrent Automatikus Letöltő"
},
"reader": {
"enableProcessing": "RSS hírcsatornák lekérdezésének engedélyezése",
"feedsRefreshInterval": "Hírcsatornák frissítési intervalluma",
"maximumArticlesPerFeed": "Cikkek maximális száma hírcsatornánként",
"subheader": "RSS Olvasó"
},
"smartEpisodeFilter": {
"downloadEpisodes": "REPACK/PROPER epizódok letöltése",
"filters": "Szűrők",
"filtersHint": "Soronként egy",
"subheader": "RSS Okos Epizód Szűrő"
},
"useIdForRssLinks": "Azonosító használata az RSS cikk hivatkozásokhoz"
"reader": {
"enableProcessing": "RSS hírcsatornák lekérdezésének engedélyezése",
"feedsRefreshInterval": "Hírcsatornák frissítési intervalluma",
"maximumArticlesPerFeed": "Cikkek maximális száma hírcsatornánként",
"subheader": "RSS Olvasó"
},
"rules": {
"createNew": "Szabály létrehozása",
"noRules": "Még nincsenek szabályok"
}
"smartEpisodeFilter": {
"downloadEpisodes": "REPACK/PROPER epizódok letöltése",
"filters": "Szűrők",
"filtersHint": "Soronként egy",
"subheader": "RSS Okos Epizód Szűrő"
},
"useIdForRssLinks": "Azonosító használata az RSS cikk hivatkozásokhoz"
},
"saveSuccess": "Beállítások mentve!",
"speed": {
@ -880,12 +880,7 @@
"bittorrent": "BitTorrent",
"connection": "Kapcsolat",
"downloads": "Letöltések",
"rss": {
"feeds": "Hírcsatornák",
"general": "Általános",
"rules": "Szabályok",
"title": "RSS"
},
"rss": "RSS",
"speed": "Sebesség",
"tagsAndCategories": "Címkék & Kategóriák",
"vuetorrent": {

View file

@ -1,10 +1,10 @@
import cs_cz from './cs-CZ.json'
import cs from './cs.json'
import en from './en.json'
import es from './es.json'
import fr from './fr.json'
import hu from './hu.json'
import it_it from './it-IT.json'
import ja_jp from './ja-JP.json'
import it from './it.json'
import ja from './ja.json'
import ko from './ko.json'
import nl from './nl.json'
import pl from './pl.json'
@ -16,13 +16,13 @@ import zh_hant from './zh-Hant.json'
type LocaleDef = { title: string; value: Locales }
export enum Locales {
CS_CZ = 'cs-CZ',
CS = 'cs',
EN = 'en',
ES = 'es',
FR = 'fr',
HU = 'hu',
IT_IT = 'it-IT',
JA_JP = 'ja-JP',
IT = 'it',
JA = 'ja',
KO = 'ko',
NL = 'nl',
PL = 'pl',
@ -33,13 +33,13 @@ export enum Locales {
}
export const LOCALES: LocaleDef[] = [
{ title: 'čeština (Česko)', value: Locales.CS_CZ },
{ title: 'čeština', value: Locales.CS },
{ title: 'English', value: Locales.EN },
{ title: 'español', value: Locales.ES },
{ title: 'Français', value: Locales.FR },
{ title: 'magyar', value: Locales.HU },
{ title: 'italiano (Italia)', value: Locales.IT_IT },
{ title: '日本語 (日本)', value: Locales.JA_JP },
{ title: 'italiano', value: Locales.IT },
{ title: '日本語', value: Locales.JA },
{ title: '한국어', value: Locales.KO },
{ title: 'Nederlands', value: Locales.NL },
{ title: 'polski', value: Locales.PL },
@ -50,13 +50,13 @@ export const LOCALES: LocaleDef[] = [
]
export const messages: Record<Locales, any> = {
[Locales.CS_CZ]: cs_cz,
[Locales.CS]: cs,
[Locales.EN]: en,
[Locales.ES]: es,
[Locales.FR]: fr,
[Locales.HU]: hu,
[Locales.IT_IT]: it_it,
[Locales.JA_JP]: ja_jp,
[Locales.IT]: it,
[Locales.JA]: ja,
[Locales.KO]: ko,
[Locales.NL]: nl,
[Locales.PL]: pl,

496
src/locales/it.json Normal file
View file

@ -0,0 +1,496 @@
{
"common": {
"cancel": "Annulla",
"close": "Chiudi",
"delete": "Elimina",
"disable": "Disabilita",
"disabled": "Disabilitato",
"emptyList": "Niente da vedere qui!",
"NA": "N/D",
"no": "No",
"ok": "OK",
"save": "Salva",
"selectAll": "Seleziona Tutto",
"useGlobalSettings": "Usa Impostazioni Globali",
"yes": "Sì"
},
"constants": {
"addPaused": {
"always": "Sempre",
"never": "Mai",
"title": "Aggiungi in Pausa"
},
"bittorrentProtocols": {
"tcp": "TCP",
"tcp_utp": "TCP e μTP",
"utp": "μTP"
},
"connectionStatus": {
"connected": "Connesso",
"disconnected": "Disconnesso",
"firewalled": "Bloccato dal Firewall",
"unknown": "Sconosciuto"
},
"contentLayout": {
"nosubfolder": "Rimuovi Sottocartella",
"original": "Originale",
"subfolder": "Crea Sottocartella",
"title": "Struttura Contenuti Torrent"
},
"diskIoMode": {
"disableOsCache": "Disabilita Cache di Sistema",
"enableOsCache": "Abilita Cache di Sistema",
"writeThrough": "Write-through (libtorrent >= 2.0.6)"
},
"diskIoType": {
"default": "Predefinito",
"memoryMappedFiles": "File mappati in memoria",
"posixCompliant": "Conforme a POSIX"
},
"encryption": {
"forceOff": "Disabilita Crittografia",
"forceOn": "Richiedi Crittografia",
"preferEncryption": "Consenti Crittografia"
},
"file_log_age_type": {
"days": "Giorni",
"months": "Mesi",
"years": "Anni"
},
"file_priority": {
"high": "Alta",
"max": "Massima",
"normal": "Normale",
"unwanted": "Indesiderato"
},
"maxRatioAction": {
"pauseTorrent": "Pausa il Torrent",
"removeTorrent": "Rimuovi il Torrent",
"removeTorrentAndFiles": "Rimuovi il Torrent e rispettivi File",
"torrentSuperseeding": "Abilita il Super Seeding per il Torrent"
},
"monitoredFolderSaveLocation": {
"defaultSavePath": "Percorso di Salvataggio Predefinito",
"monitoredFolder": "Posizione Cartella Monitorata",
"other": "Altro"
},
"proxy_type": {
"http": "HTTP",
"socks4": "SOCKS4",
"socks5": "SOCKS5"
},
"scheduler": {
"everyDay": "Ogni Giorno",
"everyFriday": "Ogni Venerdì",
"everyMonday": "Ogni Lunedì",
"everySaturday": "Ogni Sabato",
"everySunday": "Ogni Domenica",
"everyThursday": "Ogni Giovedì",
"everyTuesday": "Ogni Martedì",
"everyWednesday": "Ogni Mercoledì",
"everyWeekday": "Ogni giorno feriale",
"everyWeekend": "Ogni fine settimana"
},
"stopCondition": {
"filesChecked": "File Controllati",
"metadataReceived": "Metadati Ricevuti",
"none": "Nessuna",
"title": "Condizione di Stop del Torrent"
},
"titleOptions": {
"custom": "Personalizzato",
"default": "Predefinito",
"first_torrent_speed": "Velocità del primo Torrent",
"global_speed": "Velocità Globale"
},
"trackerStatus": {
"disabled": "Disabilitato",
"not_working": "Non funzionante",
"not_yet_contacted": "Non ancora contattato",
"updating": "In Aggiornamento",
"working": "Funzionante"
},
"uploadChokingAlgorithm": {
"antiLeech": "Anti-leech",
"fastestUpload": "Upload più Rapido",
"roundRobin": "Round-robin"
},
"uploadSlotsBehavior": {
"fixedSlots": "Slot fissi",
"uploadRateBased": "Basato su Upload"
},
"utpTcpMixedMode": {
"peerProportional": "Peer proportional (regola il TCP)",
"preferTcp": "Preferisci TCP"
}
},
"dashboard": {
"displayMode": {
"grid": "Griglia",
"list": "Lista",
"table": "Tabella",
"title": "Modalità di Visualizzazione"
},
"not_complete": "Mai Visto Completo",
"right_click": {
"advanced": {
"auto_tmm": "Gestione Torrent Automatica ",
"download_path": "Imposta Percorso di Download",
"f_l_prio": "Prima / Ultima Priorità",
"reannounce": "Forza Riannuncio",
"recheck": "Forza Ricontrollo",
"rename": "Rinomina Torrent",
"save_path": "Imposta Percorso di Salvataggio",
"seq_dl": "Download Sequenziale",
"title": "Avanzate"
},
"category": {
"clear": "(Rimuovi Categoria)",
"disabled_title": "Nessuna Categoria",
"title": "Imposta Categoria"
},
"copy": {
"hash": "Hash",
"magnet": "Magnet",
"name": "Nome",
"title": "Copia"
},
"export": "Esporta Torrent | Esporta i Torrent",
"info": "Mostra Informazioni",
"priority": {
"bottom": "Priorità Minima",
"decrease": "Diminuisci Priorità",
"increase": "Aumenta Priorità",
"title": "Imposta Priorità",
"top": "Priorità Massima"
},
"speed_limit": {
"download": "Imposta Limite di Download",
"share": "Imposta Limite di Condivisione",
"title": "Imposta Limite di Velocità",
"upload": "Imposta Limite di Upload"
},
"tags": {
"disabled_title": "Nessuna Etichetta",
"title": "Imposta Etichetta"
}
},
"searchInputLabel": "Cerca",
"selectAll": "(De)seleziona Tutto (Ctrl + A)",
"selectedTorrentsCount": "Nessun Torrent | {count} di {total} Torrent ({size}) | {count} di {total} Torrent ({size})",
"sortBy": {
"added_on": "Aggiunto il",
"amount_left": "Rimanente",
"auto_tmm": "TMM Automatico",
"availability": "Disponibilità",
"avg_download_speed": "Velocità DL Media",
"avg_upload_speed": "Velocità UL Media",
"category": "Categoria",
"completed": "Completati",
"completion_on": "Completati il",
"content_path": "Percorso dei Contenuti",
"default": "Predefinito",
"dl_limit": "Limite di Download",
"dlspeed": "Velocità di Download",
"downloaded": "Scaricati (Globale)",
"downloaded_session": "Scaricati (Sessione)",
"download_path": "Percorso di Download",
"eta": "ETA",
"f_l_piece_prio": "Prima / Ultima Priorità Pezzo",
"force_start": "Forza Avvio",
"globalSpeed": "Velocità Globale",
"globalVolume": "Volume Globale",
"hash": "Hash",
"infohash_v1": "Infohash v1",
"infohash_v2": "Infohash v2",
"last_activity": "Ultima Attività",
"magnet_uri": "Magnet URI",
"max_ratio": "Rapporto Massimo",
"max_seeding_time": "Tempo Massimo di Seeding",
"name": "Nome",
"num_complete": "Seed (swarm)",
"num_incomplete": "Peer (swarm)",
"num_leechs": "Peer (connessi)",
"num_seeds": "Seed (connessi)",
"priority": "Priorità",
"progress": "Avanzamento",
"ratio": "Rapporto",
"ratio_limit": "Limite di Rapporto",
"save_path": "Percorso di Salvataggio",
"seeding_time": "Tempo di Seeding",
"seeding_time_limit": "Limite Tempo di Seeding",
"seen_complete": "Visto Completo",
"seq_dl": "Download Sequenziale",
"size": "Dimensione",
"state": "Stato",
"super_seeding": "Super Seeding",
"tags": "Etichette",
"time_active": "Tempo Attivo",
"total_size": "Dimensione Totale",
"tracker": "Tracker",
"trackers_count": "Numero di Tracker",
"up_limit": "Limite di Upload",
"uploaded": "Caricati (Globale)",
"uploaded_session": "Caricati (Sessione)",
"upspeed": "Velocità di Upload"
},
"sortLabel": "Ordina per",
"toggleSearchFilter": "Attiva/disattiva filtro di ricerca",
"toggleSelectMode": "Attiva/disattiva modalità di selezione",
"toggleSortOrder": "Ordinamento Inverso",
"torrentsCount": "Nessun Torrent | {n} Torrent | {n} Torrent"
},
"dialogs": {
"add": {
"cookie": "Cookie",
"cookie_placeholder": "nome1=valore1; nome2=valore2; ...",
"drop_label": "Trascina qui link e file torrent",
"file_overflow": "+{n} altri",
"files": "Seleziona i File",
"first_last_piece_prio": "Dai priorità al primo e all'ultimo pezzo",
"links": "Link (magnet, http, file, ...)",
"rename": "Rinomina Torrent",
"reset_form": "Resetta modulo",
"sequential_download": "Download Sequenziale",
"submit": "Aggiungi Torrent",
"title": "Aggiungi Torrent"
},
"category": {
"name": "Nome Categoria",
"nameRequired": "Nome Categoria Obbligatorio",
"oldName": "Vecchio Nome Categoria",
"savePath": "Percorso di Salvataggio",
"title": {
"create": "Crea Categoria",
"edit": "Modifica Categoria"
},
"warnEdit": "Modificare il nome della categoria migrerà i torrent alla nuova categoria. Potrebbero verificarsi errori, usare con cautela."
},
"connectionStatus": {
"dht_nodes": "Nodi DHT",
"externalIp": "Indirizzo IP Esterno",
"status": "Stato Connessione"
},
"delete": {
"title": "Elimina {n} Torrent | Elimina {n} Torrent",
"warnDelete": "Spuntando questa casella verranno eliminati tutti i contenuti in quei torrent"
},
"moveTorrent": {
"dl": {
"title": "Cambia Percorso di Download"
},
"newPath": "Nuovo Percorso",
"oldPath": "Percorso Precedente",
"required": "È necessario un nuovo percorso",
"samePath": "Il nuovo percorso deve essere diverso dal precedente",
"save": {
"title": "Cambia Percorso di Salvataggio"
}
},
"moveTorrentFile": {
"oldName": "Nome precedente",
"title": "Sposta File Torrent | Sposta Cartella Torrent"
},
"pluginManager": {
"headers": {
"actions": "Azioni",
"enabled": "Abilitato",
"name": "Nome",
"url": "Motore URL",
"version": "Versione"
},
"install": {
"activator": "Installa un nuovo plugin",
"label": "URL del Plugin",
"title": "Installa Plugin"
},
"title": "Gestore Plugin",
"update": "Aggiorna i Plugin"
},
"renameTorrent": {
"newName": "Nuovo Nome",
"oldName": "Nome precedente",
"required": "È necessario un nuovo nome",
"sameName": "Il nuovo nome deve essere diverso dal precedente",
"title": "Rinomina Torrent"
},
"rss": {
"feed": {
"name": "Nome",
"title": {
"create": "Crea Feed RSS",
"edit": "Modifica Feed RSS"
},
"url": "URL"
},
"rule": {
"addPaused": "Aggiungi in Pausa",
"affectedFeedsSubheader": "Feed Interessati",
"assignedCategory": "Categoria Assegnata",
"episodeFilter": "Filtro Episodio",
"episodeFilterPlaceholder": "es. S01E02-S01E05",
"ignoreDays": "Ignora gli elementi pubblicati negli ultimi {days} giorni",
"ignoreDaysHint": "0 per disabilitare",
"lastMatch": {
"knownValue": "oggi | {n} giorno fa | {n} giorni fa",
"label": "Ultima corrispondenza",
"unknownValue": "Sconosciuto"
},
"mustContain": "Deve contenere",
"mustNotContain": "Non deve contenere",
"name": "Nome",
"savePath": "Percorso di Salvataggio",
"savePathPlaceholder": "Lascia vuoto per utilizzare il percorso di salvataggio predefinito",
"smartFilter": "Utilizza il filtro Episodio intelligente",
"title": {
"create": "Crea Regola RSS",
"edit": "Modifica Regola RSS"
}
}
},
"share_limit": {
"disabled": "Disabilita Limite di Condivisione ",
"enabled": "Imposta Limite di Condivisione a",
"global": "Usa limite di condivisione globale",
"inactive_seeding_time_limit": "Minuti di inattività",
"ratio_limit": "Rapporto",
"seeding_time_limit": "Minuti totali",
"title": "Imposta Limite Rapporto di Condivisione"
},
"shutdown": {
"content": "Vuoi davvero arrestare qBittorrent?",
"error": "Impossibile arrestare l'app. Assicurati che qBittorrent sia in esecuzione!",
"success": "qBittorrent è stato arrestato con successo!",
"title": "Arresta qBittorrent"
},
"speed_limit": {
"download": "Imposta Limite Velocità di Download",
"label": "Limite di Velocità",
"upload": "Imposta Limite Velocità di Upload"
},
"tag": {
"comma": "Il nome non può contenere una virgola quando si rinomina una etichetta",
"hint": "Suggerimento: è possibile creare più etichette separandole con una virgola",
"name": "Nome Etichetta",
"oldName": "Vecchio nome etichetta",
"required": "L'etichetta necessita di un nome",
"title": {
"create": "Crea Etichetta",
"rename": "Rinomina Etichetta"
},
"warnEdit": "Modificare il nome dell'etichetta migrerà i torrent alla nuova etichetta. Potrebbero verificarsi errori, usare con cautela."
}
},
"login": {
"error": "Accesso fallito!",
"password": "Password",
"rules": {
"password_required": "Password richiesta",
"username_required": "Nome utente richiesto"
},
"submit": "Accedi",
"subtitle": "Inserisci le tue credenziali",
"success": "Accesso riuscito!",
"title": "Accedi",
"username": "Nome utente"
},
"logs": {
"emptyLogList": "Nessun log trovato",
"filters": {
"query": "Cerca nel log",
"type": "Livello log"
},
"title": "Log qBittorrent"
},
"navbar": {
"addPanel": {
"torrentsPendingCount": "{n} Torrent in attesa di Upload | {n} Torrent in attesa di Upload"
},
"side": {
"bottom_actions": {
"alt_speed": "Attiva/disattiva velocità alternativa",
"conn_status": "Stato Connessione: {status}",
"dark_mode": "Passa alla modalità chiara | Passa alla modalità scura",
"logout": "Disconnettiti",
"shutdown": "Arresta qBittorrent"
},
"current_speed": {
"title": "Velocità attuale"
},
"filters": {
"activeFilter": "{n} filtri attivi",
"category": "Filtro Categoria",
"disabled": "(Disabilitato)",
"state": "Filtro Stato Torrent",
"tag": "Filtro Etichetta",
"tracker": "Filtro Tracker",
"uncategorized": "(Senza categoria)",
"untagged": "(Senza etichetta)",
"untracked": "(Senza tracker)"
},
"speed_graph": {
"download_label": "Download",
"upload_label": "Upload"
},
"stats": {
"alltime": {
"title": "Statistiche Totali"
},
"downloaded": "Scaricati",
"free_space": "Spazio libero",
"ratio": "Rapporto",
"session": {
"title": "Statistiche Sessione"
},
"uploaded": "Caricati"
}
},
"top": {
"active_filters": {
"category": "Filtro Categoria: {value}",
"menu_label": "Filtro attivo: {n} | Filtri attivi: {n} ",
"multiple_category": "Filtro Categoria: {n} categorie",
"multiple_state": "Filtro di stato: {n} stati",
"multiple_tag": "Filtro etichetta: {n} etichette",
"multiple_tracker": "Filtro Tracker: {n} tracker",
"state": "Filtro di stato: {value}",
"tag": "Filtro etichetta: {value}",
"text": "Filtro di testo: {value}",
"tracker": "Filtro Tracker: {value} tracker"
}
}
},
"rssArticles": {
"feeds": {
"empty": {
"action": "Crea Feed RSS"
},
"filters": {
"title": "Filtro per titolo",
"unread": "Mostra solo gli articoli non letti"
},
"item": {
"author": "Autore: {author}",
"category": "Categoria: {category}",
"feedName": "Nome feed: {name}"
}
},
"rules": {
"empty": {
"action": "Crea Regola RSS"
}
}
},
"toast": {
"add": {
"error": "Errore durante l'aggiunta dei torrent",
"pending": "Inviando torrent...",
"success": "{n} Torrent aggiunto | {n} Torrent aggiunti"
}
},
"torrent": {
"properties": {
"priority": "Priorità"
}
}
}

1230
src/locales/ja.json Normal file

File diff suppressed because it is too large Load diff

View file

@ -6,6 +6,7 @@
"delete": "삭제",
"disable": "비활성",
"disabled": "비활성화",
"edit": "편집",
"emptyList": "이 곳은 비어있습니다!",
"NA": "N/A",
"no": "아니요",
@ -488,22 +489,32 @@
}
},
"rssArticles": {
"filters": {
"title": "제목 필터",
"unread": "읽지 않은 피드만 표시"
"feeds": {
"empty": {
"action": "RSS 피드 생성"
},
"filters": {
"title": "제목 필터",
"unread": "읽지 않은 피드만 표시"
},
"item": {
"author": "작성자: {author}",
"category": "카테고리: {category}",
"feedName": "피드 이름: {name}"
},
"markAllAsRead": "모두 읽음으로 표시",
"promise": {
"error": "피드를 표시하는 동안 오류가 발생했습니다.",
"pending": "표시 중...",
"success": "{n}개의 기사를 읽음으로 표시함"
},
"title": "RSS 피드"
},
"item": {
"author": "작성자: {author}",
"category": "카테고리: {category}",
"feedName": "피드 이름: {name}"
},
"markAllAsRead": "모두 읽음으로 표시",
"promise": {
"error": "피드를 표시하는 동안 오류가 발생했습니다.",
"pending": "표시 중...",
"success": "{n}개의 기사를 읽음으로 표시함"
},
"title": "RSS 피드"
"rules": {
"empty": {
"action": "RSS 규칙 생성"
}
}
},
"searchEngine": {
"filters": {
@ -800,34 +811,23 @@
}
},
"rss": {
"feeds": {
"createNew": "피드 추가",
"noFeeds": "아직 피드가 없습니다",
"refreshAll": "모두 새로고침"
"autoDownloader": {
"enable": "RSS 규칙 처리 활성화",
"subheader": "RSS 토렌트 자동 다운로더"
},
"general": {
"autoDownloader": {
"enable": "RSS 규칙 처리 활성화",
"subheader": "RSS 토렌트 자동 다운로더"
},
"reader": {
"enableProcessing": "RSS 피드 가져오기 활성화",
"feedsRefreshInterval": "피드 새로고침 간격",
"maximumArticlesPerFeed": "피드 당 수집할 최대 기사 수",
"subheader": "RSS 리더"
},
"smartEpisodeFilter": {
"downloadEpisodes": "REPACK/PROPER 에피소드 다운로드",
"filters": "필터",
"filtersHint": "한 줄에 하나씩",
"subheader": "RSS Smart episode 필터"
},
"useIdForRssLinks": "RSS 피드에 ID사용"
"reader": {
"enableProcessing": "RSS 피드 가져오기 활성화",
"feedsRefreshInterval": "피드 새로고침 간격",
"maximumArticlesPerFeed": "피드 당 수집할 최대 기사 수",
"subheader": "RSS 리더"
},
"rules": {
"createNew": "규칙 생성",
"noRules": "아직 규칙이 없습니다"
}
"smartEpisodeFilter": {
"downloadEpisodes": "REPACK/PROPER 에피소드 다운로드",
"filters": "필터",
"filtersHint": "한 줄에 하나씩",
"subheader": "RSS Smart episode 필터"
},
"useIdForRssLinks": "RSS 피드에 ID사용"
},
"saveSuccess": "설정이 저장되었습니다!",
"speed": {
@ -858,12 +858,7 @@
"bittorrent": "BitTorrent",
"connection": "연결수",
"downloads": "다운로드",
"rss": {
"feeds": "피드",
"general": "일반",
"rules": "규칙",
"title": "RSS"
},
"rss": "RSS",
"speed": "속도",
"tagsAndCategories": "태그 및 카테고리",
"vuetorrent": {

View file

@ -6,6 +6,7 @@
"delete": "Usuń",
"disable": "Wyłącz",
"disabled": "Wyłączone",
"edit": "Edytuj",
"emptyList": "Nic tu nie ma do zobaczenia!",
"NA": "Nie dotyczy",
"no": "Nie",
@ -510,22 +511,32 @@
}
},
"rssArticles": {
"filters": {
"title": "Filtr tytułów",
"unread": "Pokaż tylko nieprzeczytane artykuły"
"feeds": {
"empty": {
"action": "Utwórz kanał RSS"
},
"filters": {
"title": "Filtr tytułów",
"unread": "Pokaż tylko nieprzeczytane artykuły"
},
"item": {
"author": "Autor: {author}",
"category": "Kategoria: {category}",
"feedName": "Nazwa kanału: {name}"
},
"markAllAsRead": "Oznacz wszystkie jako przeczytane",
"promise": {
"error": "Wystąpił błąd podczas oznaczania artykułów",
"pending": "Oznaczanie...",
"success": "Oznaczono jako przeczytane {n} artykułów"
},
"title": "Artykuły RSS"
},
"item": {
"author": "Autor: {author}",
"category": "Kategoria: {category}",
"feedName": "Nazwa kanału: {name}"
},
"markAllAsRead": "Oznacz wszystkie jako przeczytane",
"promise": {
"error": "Wystąpił błąd podczas oznaczania artykułów",
"pending": "Oznaczanie...",
"success": "Oznaczono jako przeczytane {n} artykułów"
},
"title": "Artykuły RSS"
"rules": {
"empty": {
"action": "Utwórz regułę RSS"
}
}
},
"searchEngine": {
"filters": {
@ -822,34 +833,23 @@
}
},
"rss": {
"feeds": {
"createNew": "Dodaj kanał",
"noFeeds": "Brak kanałów informacyjnych",
"refreshAll": "Odśwież wszystko"
"autoDownloader": {
"enable": "Włącz przetwarzanie reguł RSS",
"subheader": "Automatyczne pobieranie torrentów RSS"
},
"general": {
"autoDownloader": {
"enable": "Włącz przetwarzanie reguł RSS",
"subheader": "Automatyczne pobieranie torrentów RSS"
},
"reader": {
"enableProcessing": "Włącz pobieranie kanałów RSS",
"feedsRefreshInterval": "Interwał odświeżania kanałów",
"maximumArticlesPerFeed": "Maksymalna liczba artykułów na kanał",
"subheader": "Czytnik RSS"
},
"smartEpisodeFilter": {
"downloadEpisodes": "Pobierz odcinki REPACK/PROPER",
"filters": "Filtry",
"filtersHint": "Jeden na linię",
"subheader": "Filtr inteligentnych odcinków RSS"
},
"useIdForRssLinks": "Użyj identyfikatora linku do artykułu RSS"
"reader": {
"enableProcessing": "Włącz pobieranie kanałów RSS",
"feedsRefreshInterval": "Interwał odświeżania kanałów",
"maximumArticlesPerFeed": "Maksymalna liczba artykułów na kanał",
"subheader": "Czytnik RSS"
},
"rules": {
"createNew": "Utwórz regułę",
"noRules": "Nie ma jeszcze żadnych zasad"
}
"smartEpisodeFilter": {
"downloadEpisodes": "Pobierz odcinki REPACK/PROPER",
"filters": "Filtry",
"filtersHint": "Jeden na linię",
"subheader": "Filtr inteligentnych odcinków RSS"
},
"useIdForRssLinks": "Użyj identyfikatora linku do artykułu RSS"
},
"saveSuccess": "Ustawienia zapisane!",
"speed": {
@ -880,12 +880,7 @@
"bittorrent": "BitTorrent",
"connection": "Połączenie",
"downloads": "Pobrania",
"rss": {
"feeds": "Kanały RSS",
"general": "Ogólne",
"rules": "Zasady",
"title": "RSS"
},
"rss": "RSS",
"speed": "Prędkość",
"tagsAndCategories": "Tagi i kategorie",
"vuetorrent": {

View file

@ -6,6 +6,7 @@
"delete": "Удалить",
"disable": "Отключить",
"disabled": "Отключен",
"edit": "Редактировать",
"emptyList": "Тут ничего нет!",
"global_value": "Глобальное значение",
"NA": "Н/Д",
@ -533,22 +534,32 @@
}
},
"rssArticles": {
"filters": {
"title": "Фильтр по заголовку",
"unread": "Только непрочитанные записи"
"feeds": {
"empty": {
"action": "Создать RSS ленту"
},
"filters": {
"title": "Фильтр по заголовку",
"unread": "Только непрочитанные записи"
},
"item": {
"author": "Автор: {author}",
"category": "Категория: {category}",
"feedName": "Имя ленты: {name}"
},
"markAllAsRead": "Отметить всё как прочитанное",
"promise": {
"error": "Произошла ошибка при отметке статей",
"pending": "Отмечаю...",
"success": "{n} статей отмечены как прочитанные"
},
"title": "Менеджер RSS"
},
"item": {
"author": "Автор: {author}",
"category": "Категория: {category}",
"feedName": "Имя ленты: {name}"
},
"markAllAsRead": "Отметить всё как прочитанное",
"promise": {
"error": "Произошла ошибка при отметке статей",
"pending": "Отмечаю...",
"success": "{n} статей отмечены как прочитанные"
},
"title": "Менеджер RSS"
"rules": {
"empty": {
"action": "Создать новое правило"
}
}
},
"searchEngine": {
"filters": {
@ -845,34 +856,23 @@
}
},
"rss": {
"feeds": {
"createNew": "Добавить ленту",
"noFeeds": "Лент пока нет",
"refreshAll": "Обновить все"
"autoDownloader": {
"enable": "Включить автозагрузку торрентов из RSS",
"subheader": "Автозагрузчик торрентов из RSS"
},
"general": {
"autoDownloader": {
"enable": "Включить автозагрузку торрентов из RSS",
"subheader": "Автозагрузчик торрентов из RSS"
},
"reader": {
"enableProcessing": "Включить получение RSS-лент",
"feedsRefreshInterval": "Интервал обновления лент",
"maximumArticlesPerFeed": "Максимум статей для ленты",
"subheader": "Менеджер RSS"
},
"smartEpisodeFilter": {
"downloadEpisodes": "Загружать эпизоды REPACK/PROPER",
"filters": "Фильтры",
"filtersHint": "По одному на строку",
"subheader": "Умный фильтр эпизодов RSS"
},
"useIdForRssLinks": "Использовать ID для ссылки на статью RSS"
"reader": {
"enableProcessing": "Включить получение RSS-лент",
"feedsRefreshInterval": "Интервал обновления лент",
"maximumArticlesPerFeed": "Максимум статей для ленты",
"subheader": "Менеджер RSS"
},
"rules": {
"createNew": "Создать правило",
"noRules": "Правил пока нет"
}
"smartEpisodeFilter": {
"downloadEpisodes": "Загружать эпизоды REPACK/PROPER",
"filters": "Фильтры",
"filtersHint": "По одному на строку",
"subheader": "Умный фильтр эпизодов RSS"
},
"useIdForRssLinks": "Использовать ID для ссылки на статью RSS"
},
"saveSuccess": "Настройки сохранены!",
"speed": {
@ -903,12 +903,7 @@
"bittorrent": "BitTorrent",
"connection": "Соединение",
"downloads": "Загрузки",
"rss": {
"feeds": "Ленты",
"general": "Общее",
"rules": "Правила",
"title": "RSS"
},
"rss": "RSS",
"speed": "Скорость",
"tagsAndCategories": "Теги и категории",
"vuetorrent": {

View file

@ -6,6 +6,7 @@
"delete": "Sil",
"disable": "Devre Dışı Bırak",
"disabled": "Devre Dışı",
"edit": "Düzenle",
"emptyList": "Burada görülecek bir şey yok.",
"global_value": "Genel Değer",
"NA": "Yok",
@ -532,22 +533,32 @@
}
},
"rssArticles": {
"filters": {
"title": "Başlık filtresi",
"unread": "Sadece okunmamış makaleleri göster"
"feeds": {
"empty": {
"action": "RSS Beslemesi Oluştur"
},
"filters": {
"title": "Başlık filtresi",
"unread": "Sadece okunmamış makaleleri göster"
},
"item": {
"author": "Yazar: {author}",
"category": "Kategori: {category}",
"feedName": "Besleme adı: {name}"
},
"markAllAsRead": "Tümünü okundu olarak işaretle",
"promise": {
"error": "Makaleleri işaretlerken bir hata oluştu",
"pending": "İşaretleniyor...",
"success": "{n} makale okundu olarak işaretlendi"
},
"title": "RSS Makaleleri"
},
"item": {
"author": "Yazar: {author}",
"category": "Kategori: {category}",
"feedName": "Besleme adı: {name}"
},
"markAllAsRead": "Tümünü okundu olarak işaretle",
"promise": {
"error": "Makaleleri işaretlerken bir hata oluştu",
"pending": "İşaretleniyor...",
"success": "{n} makale okundu olarak işaretlendi"
},
"title": "RSS Makaleleri"
"rules": {
"empty": {
"action": "RSS Kuralı Oluştur"
}
}
},
"searchEngine": {
"filters": {
@ -844,34 +855,23 @@
}
},
"rss": {
"feeds": {
"createNew": "Besleme ekle",
"noFeeds": "Henüz besleme yok",
"refreshAll": "Tümünü Yenile"
"autoDownloader": {
"enable": "RSS kurallarının işlenmesini etkinleştirin",
"subheader": "RSS Torrent Otomatik İndirici"
},
"general": {
"autoDownloader": {
"enable": "RSS kurallarının işlenmesini etkinleştirin",
"subheader": "RSS Torrent Otomatik İndirici"
},
"reader": {
"enableProcessing": "RSS beslemelerini almayı etkinleştirin",
"feedsRefreshInterval": "Besleme yenileme aralığı",
"maximumArticlesPerFeed": "Besleme başına maksimum makale sayısı",
"subheader": "RSS Okuyucu"
},
"smartEpisodeFilter": {
"downloadEpisodes": "REPACK/PROPER bölümlerini indirin",
"filters": "Filtreler",
"filtersHint": "Satır başına bir tane",
"subheader": "RSS Akıllı Bölüm Filtresi"
},
"useIdForRssLinks": "RSS makale bağlantısı için ID kullan"
"reader": {
"enableProcessing": "RSS beslemelerini almayı etkinleştirin",
"feedsRefreshInterval": "Besleme yenileme aralığı",
"maximumArticlesPerFeed": "Besleme başına maksimum makale sayısı",
"subheader": "RSS Okuyucu"
},
"rules": {
"createNew": "Kural Oluştur",
"noRules": "Henüz kural yok"
}
"smartEpisodeFilter": {
"downloadEpisodes": "REPACK/PROPER bölümlerini indirin",
"filters": "Filtreler",
"filtersHint": "Satır başına bir tane",
"subheader": "RSS Akıllı Bölüm Filtresi"
},
"useIdForRssLinks": "RSS makale bağlantısı için ID kullan"
},
"saveSuccess": "Ayarlar kaydedildi!",
"speed": {
@ -902,12 +902,7 @@
"bittorrent": "BitTorrent",
"connection": "Bağlantı",
"downloads": "İndirilenler",
"rss": {
"feeds": "Beslemeler",
"general": "Genel",
"rules": "Kurallar",
"title": "RSS"
},
"rss": "RSS",
"speed": "Hız",
"tagsAndCategories": "Etiketler & Kategoriler",
"vuetorrent": {

View file

@ -6,6 +6,7 @@
"delete": "删除",
"disable": "禁用",
"disabled": "已禁用",
"edit": "编辑",
"emptyList": "当前无内容显示",
"global_value": "全局设置",
"NA": "不适用",
@ -532,22 +533,32 @@
}
},
"rssArticles": {
"filters": {
"title": "标题过滤器",
"unread": "仅显示未读文章"
"feeds": {
"empty": {
"action": "创建 RSS 订阅源"
},
"filters": {
"title": "标题过滤器",
"unread": "仅显示未读文章"
},
"item": {
"author": "作者:{author}",
"category": "分类:{category}",
"feedName": "订阅源名称:{name}"
},
"markAllAsRead": "全部标记为已读",
"promise": {
"error": "标记文章时出错",
"pending": "标记中... ",
"success": "{n}篇文章已标记为已读"
},
"title": "RSS 资讯"
},
"item": {
"author": "作者:{author}",
"category": "分类:{category}",
"feedName": "订阅源名称:{name}"
},
"markAllAsRead": "全部标记为已读",
"promise": {
"error": "标记文章时出错",
"pending": "标记中... ",
"success": "{n}篇文章已标记为已读"
},
"title": "RSS 资讯"
"rules": {
"empty": {
"action": "创建 RSS 规则"
}
}
},
"searchEngine": {
"filters": {
@ -844,34 +855,23 @@
}
},
"rss": {
"feeds": {
"createNew": "添加订阅源",
"noFeeds": "暂无订阅源",
"refreshAll": "全部刷新"
"autoDownloader": {
"enable": "启用 RSS 规则处理",
"subheader": "RSS 种子自动下载器"
},
"general": {
"autoDownloader": {
"enable": "启用 RSS 规则处理",
"subheader": "RSS 种子自动下载器"
},
"reader": {
"enableProcessing": "启用获取 RSS 订阅",
"feedsRefreshInterval": "订阅源刷新间隔",
"maximumArticlesPerFeed": "每个订阅源的最大文章数",
"subheader": "RSS 阅读器"
},
"smartEpisodeFilter": {
"downloadEpisodes": "下载 REPACK/PROPER 剧集",
"filters": "过滤器",
"filtersHint": "每行一个",
"subheader": "RSS 智能剧集过滤器"
},
"useIdForRssLinks": "在 RSS 文章链接中使用 ID"
"reader": {
"enableProcessing": "启用获取 RSS 订阅",
"feedsRefreshInterval": "订阅源刷新间隔",
"maximumArticlesPerFeed": "每个订阅源的最大文章数",
"subheader": "RSS 阅读器"
},
"rules": {
"createNew": "创建规则",
"noRules": "暂无规则"
}
"smartEpisodeFilter": {
"downloadEpisodes": "下载 REPACK/PROPER 剧集",
"filters": "过滤器",
"filtersHint": "每行一个",
"subheader": "RSS 智能剧集过滤器"
},
"useIdForRssLinks": "在 RSS 文章链接中使用 ID"
},
"saveSuccess": "设置已成功保存!",
"speed": {
@ -902,12 +902,7 @@
"bittorrent": "BitTorrent",
"connection": "连接",
"downloads": "下载",
"rss": {
"feeds": "订阅源",
"general": "常规设置",
"rules": "规则",
"title": "RSS"
},
"rss": "RSS",
"speed": "速度",
"tagsAndCategories": "标签和分类",
"vuetorrent": {

View file

@ -6,6 +6,7 @@
"delete": "移除",
"disable": "停用",
"disabled": "已停用",
"edit": "編輯",
"emptyList": "這裡沒東西可看!",
"global_value": "全局設定",
"NA": "不適用",
@ -532,22 +533,32 @@
}
},
"rssArticles": {
"filters": {
"title": "標題過濾器",
"unread": "僅顯示未讀文章"
"feeds": {
"empty": {
"action": "新增 RSS 訂閱源"
},
"filters": {
"title": "標題過濾器",
"unread": "僅顯示未讀文章"
},
"item": {
"author": "作者: {author}",
"category": "分類: {category}",
"feedName": "訂閱源名稱: {name}"
},
"markAllAsRead": "標記全部項目為已讀",
"promise": {
"error": "標記文章時發生錯誤",
"pending": "標記中...",
"success": "已標記 {n} 篇文章為已讀"
},
"title": "RSS 文章"
},
"item": {
"author": "作者: {author}",
"category": "分類: {category}",
"feedName": "訂閱源名稱: {name}"
},
"markAllAsRead": "標記全部項目為已讀",
"promise": {
"error": "標記文章時發生錯誤",
"pending": "標記中...",
"success": "已標記 {n} 篇文章為已讀"
},
"title": "RSS 文章"
"rules": {
"empty": {
"action": "新增 RSS 規則"
}
}
},
"searchEngine": {
"filters": {
@ -844,34 +855,23 @@
}
},
"rss": {
"feeds": {
"createNew": "新增訂閱",
"noFeeds": "尚無訂閱",
"refreshAll": "重新整理全部"
"autoDownloader": {
"enable": "啟用 RSS 規則處理",
"subheader": "RSS 種子自動下載器"
},
"general": {
"autoDownloader": {
"enable": "啟用 RSS 規則處理",
"subheader": "RSS 種子自動下載器"
},
"reader": {
"enableProcessing": "啟用抓取 RSS 訂閱",
"feedsRefreshInterval": "訂閱源更新區間",
"maximumArticlesPerFeed": "每個訂閱源的最大文章數",
"subheader": "RSS 閱讀器"
},
"smartEpisodeFilter": {
"downloadEpisodes": "下載 REPACK/PROPER 章節",
"filters": "過濾器",
"filtersHint": "每行一個",
"subheader": "RSS 智慧型章節過濾器"
},
"useIdForRssLinks": "在 RSS 文章連結中使用 ID"
"reader": {
"enableProcessing": "啟用抓取 RSS 訂閱",
"feedsRefreshInterval": "訂閱源更新區間",
"maximumArticlesPerFeed": "每個訂閱源的最大文章數",
"subheader": "RSS 閱讀器"
},
"rules": {
"createNew": "新增規則",
"noRules": "尚無規則"
}
"smartEpisodeFilter": {
"downloadEpisodes": "下載 REPACK/PROPER 章節",
"filters": "過濾器",
"filtersHint": "每行一個",
"subheader": "RSS 智慧型章節過濾器"
},
"useIdForRssLinks": "在 RSS 文章連結中使用 ID"
},
"saveSuccess": "設定儲存成功!",
"speed": {
@ -902,12 +902,7 @@
"bittorrent": "BitTorrent",
"connection": "連線",
"downloads": "下載",
"rss": {
"feeds": "訂閱源",
"general": "一般",
"rules": "規則",
"title": "RSS"
},
"rss": "RSS",
"speed": "速率",
"tagsAndCategories": "標籤和分類",
"vuetorrent": {

View file

@ -1,11 +1,4 @@
import {
ConnectionStatus,
FilePriority,
LogType,
PieceState,
TorrentOperatingMode,
TorrentState
} from '@/constants/qbit'
import { ConnectionStatus, FilePriority, LogType, PieceState, TorrentOperatingMode, TorrentState } from '@/constants/qbit'
import { ContentLayout, ProxyType, ResumeDataStorageType, StopCondition } from '@/constants/qbit/AppPreferences'
import type {
ApplicationVersion,
@ -35,8 +28,7 @@ export default class MockProvider implements IProvider {
.fill('')
.map((_, i) => (i + 1).toString(16).padStart(40, '0'))
private constructor() {
}
private constructor() {}
static getInstance(): MockProvider {
if (!MockProvider.instance) {
@ -45,15 +37,15 @@ export default class MockProvider implements IProvider {
return MockProvider.instance
}
private async generateResponse<T>(options?: { result?: T; shouldResolve?: boolean, delay?: number }): Promise<T> {
private async generateResponse<T>(options?: { result?: T; shouldResolve?: boolean; delay?: number }): Promise<T> {
const result = options?.result === undefined ? undefined : options.result
const shouldResolve = options?.shouldResolve === undefined ? true : options.shouldResolve
const delay = options?.delay === undefined ? 0 : options.delay
if (delay > 0) {
return new Promise<T>((resolve, reject) => setTimeout(() => shouldResolve ? resolve(result!) : reject(result), delay))
return new Promise<T>((resolve, reject) => setTimeout(() => (shouldResolve ? resolve(result!) : reject(result)), delay))
}
return new Promise<T>((resolve, reject) => shouldResolve ? resolve(result!) : reject(result))
return new Promise<T>((resolve, reject) => (shouldResolve ? resolve(result!) : reject(result)))
}
/// AppController ///
@ -1045,7 +1037,7 @@ export default class MockProvider implements IProvider {
infohash_v1: hash,
infohash_v2: '',
last_activity: faker.number.int({ min: 0, max: 50 }),
magnet_uri: `magnet:?xt=urn:btih:${ hash }&dn=${ name }&tr=${ tracker }`,
magnet_uri: `magnet:?xt=urn:btih:${hash}&dn=${name}&tr=${tracker}`,
max_inactive_seeding_time: -1,
max_ratio: -1,
max_seeding_time: -1,