mirror of
https://github.com/VueTorrent/VueTorrent.git
synced 2024-11-24 18:36:14 +03:00
perf: improve russian translations (#593) @Balya
This commit is contained in:
parent
719c5e9eba
commit
684690ac7b
6 changed files with 133 additions and 93 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -7,6 +7,7 @@ npm-debug.log*
|
||||||
# Editor directories and files
|
# Editor directories and files
|
||||||
.idea
|
.idea
|
||||||
.vscode
|
.vscode
|
||||||
|
.history
|
||||||
*.suo
|
*.suo
|
||||||
*.ntvs*
|
*.ntvs*
|
||||||
*.njsproj
|
*.njsproj
|
||||||
|
|
|
@ -81,6 +81,12 @@
|
||||||
<li>
|
<li>
|
||||||
{{ $t('modals.settings.pageDownloads.saveManagement.supportParamI') }}
|
{{ $t('modals.settings.pageDownloads.saveManagement.supportParamI') }}
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
{{ $t('modals.settings.pageDownloads.saveManagement.supportParamJ') }}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
{{ $t('modals.settings.pageDownloads.saveManagement.supportParamK') }}
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
</v-card>
|
</v-card>
|
||||||
|
|
|
@ -44,6 +44,7 @@ const locale = {
|
||||||
feed: 'Feed',
|
feed: 'Feed',
|
||||||
rule: 'Rule',
|
rule: 'Rule',
|
||||||
then: 'Then',
|
then: 'Then',
|
||||||
|
of: 'of',
|
||||||
|
|
||||||
/** Dashboard */
|
/** Dashboard */
|
||||||
dashboard: {
|
dashboard: {
|
||||||
|
@ -102,7 +103,8 @@ const locale = {
|
||||||
altSpeed: 'Alt Speeds',
|
altSpeed: 'Alt Speeds',
|
||||||
dark: 'Dark',
|
dark: 'Dark',
|
||||||
light: 'Light'
|
light: 'Light'
|
||||||
}
|
},
|
||||||
|
torrentsCount: 'No torrents | {n} torrent | {n} torrents'
|
||||||
},
|
},
|
||||||
|
|
||||||
/** Modals */
|
/** Modals */
|
||||||
|
@ -222,7 +224,7 @@ const locale = {
|
||||||
autoEnabled_onFinished: 'Run external program on torrent finished:',
|
autoEnabled_onFinished: 'Run external program on torrent finished:',
|
||||||
autoLabel_onFinished: 'Command',
|
autoLabel_onFinished: 'Command',
|
||||||
supportParamTitle: 'Supported parameters (case sensitive):',
|
supportParamTitle: 'Supported parameters (case sensitive):',
|
||||||
supportParamN: '%N: Torrent name ',
|
supportParamN: '%N: Torrent name',
|
||||||
supportParamL: '%L: Category',
|
supportParamL: '%L: Category',
|
||||||
supportParamG: '%G: Tags (separated by comma)',
|
supportParamG: '%G: Tags (separated by comma)',
|
||||||
supportParamF: '%F: Content path (same as root path for multi-file torrent)',
|
supportParamF: '%F: Content path (same as root path for multi-file torrent)',
|
||||||
|
@ -231,7 +233,9 @@ const locale = {
|
||||||
supportParamC: '%C: Number of files',
|
supportParamC: '%C: Number of files',
|
||||||
supportParamZ: '%Z: Torrent size (bytes)',
|
supportParamZ: '%Z: Torrent size (bytes)',
|
||||||
supportParamT: '%T: Current tracker',
|
supportParamT: '%T: Current tracker',
|
||||||
supportParamI: '%I: Info hash'
|
supportParamI: '%I: Info hash v1',
|
||||||
|
supportParamJ: '%J: Info hash v2',
|
||||||
|
supportParamK: '%K: Torrent ID'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
pageConnection: {
|
pageConnection: {
|
||||||
|
|
182
src/lang/ru.js
182
src/lang/ru.js
|
@ -16,27 +16,27 @@ const locale = {
|
||||||
unknown: 'Неизвестный',
|
unknown: 'Неизвестный',
|
||||||
status: 'Статус',
|
status: 'Статус',
|
||||||
all: 'Все',
|
all: 'Все',
|
||||||
downloading: 'Скачивание',
|
downloading: 'Загружаются',
|
||||||
seeding: 'Раздача',
|
seeding: 'Раздаются',
|
||||||
completed: 'Завершено',
|
completed: 'Завершены',
|
||||||
resumed: 'Возобновлено',
|
resumed: 'Возобновлены',
|
||||||
paused: 'Приостановлено',
|
paused: 'Остановлены',
|
||||||
active: 'Активный',
|
active: 'Активны',
|
||||||
inactive: 'Неактивный',
|
inactive: 'Неактивны',
|
||||||
stalled: 'Застопорился',
|
stalled: 'Простаивают',
|
||||||
errored: 'Ошибочный',
|
errored: 'Ошибка',
|
||||||
login: 'Войти',
|
login: 'Войти',
|
||||||
logout: 'Выйти',
|
logout: 'Выйти',
|
||||||
download: 'Скачивание',
|
download: 'Загрузка',
|
||||||
downloaded: 'Скачано',
|
downloaded: 'Загружено',
|
||||||
upload: 'Отдача',
|
upload: 'Раздача',
|
||||||
uploaded: 'Загружено',
|
uploaded: 'Роздано',
|
||||||
ETA: 'ETA',
|
ETA: 'ETA',
|
||||||
peers: 'Пиры',
|
peers: 'Пиры',
|
||||||
ratio: 'Ратио',
|
ratio: 'Рейтинг',
|
||||||
seeds: 'Сиды',
|
seeds: 'Сиды',
|
||||||
tags: 'Теги',
|
tags: 'Метки',
|
||||||
// tracker: 'Tracker',
|
tracker: 'Трекер',
|
||||||
share: 'Поделиться',
|
share: 'Поделиться',
|
||||||
name: 'Имя',
|
name: 'Имя',
|
||||||
hash: 'Хэш',
|
hash: 'Хэш',
|
||||||
|
@ -44,15 +44,16 @@ const locale = {
|
||||||
feed: 'Канал',
|
feed: 'Канал',
|
||||||
rule: 'Правило',
|
rule: 'Правило',
|
||||||
// then: 'Then',
|
// then: 'Then',
|
||||||
|
of: 'из',
|
||||||
|
|
||||||
/** Dashboard */
|
/** Dashboard */
|
||||||
dashboard: {
|
dashboard: {
|
||||||
tooltips: {
|
tooltips: {
|
||||||
// toggleSearch: 'Toggle Search Filter',
|
toggleSearch: 'Переключить режим поиска',
|
||||||
// toggleSelect: 'Toggle Select Mode',
|
toggleSelect: 'Переключить режим выбора',
|
||||||
// toggleSort: 'Sort Torrents',
|
toggleSort: 'Отсортировать торренты',
|
||||||
// selectAll: 'Select All',
|
selectAll: 'Выбрать все',
|
||||||
// selectAllCaption: 'Select / Release All (Ctrl + A)'
|
selectAllCaption: 'Выбрать / снять все (Ctrl+A)'
|
||||||
}
|
}
|
||||||
// emptyTorrentList: 'Nothing to see here!'
|
// emptyTorrentList: 'Nothing to see here!'
|
||||||
},
|
},
|
||||||
|
@ -65,20 +66,21 @@ const locale = {
|
||||||
progress: 'Прогресс',
|
progress: 'Прогресс',
|
||||||
directory: 'Каталог',
|
directory: 'Каталог',
|
||||||
downloaded: 'Скачано',
|
downloaded: 'Скачано',
|
||||||
uploaded: 'Загружено',
|
uploaded: 'Роздано',
|
||||||
created: 'Создано',
|
created: 'Создано',
|
||||||
comments: 'Комментарии',
|
comments: 'Комментарии',
|
||||||
uploadedSession: 'Загружено за сессию'
|
uploadedSession: 'Роздано за сессию'
|
||||||
// timeActive: 'Time Active',
|
// timeActive: 'Time Active',
|
||||||
// seededFor: 'Seeded For',
|
// seededFor: 'Seeded For',
|
||||||
// last_activity: 'Last Activity'
|
// last_activity: 'Last Activity',
|
||||||
|
// completed_on: 'Completed On'
|
||||||
},
|
},
|
||||||
/** Navbar */
|
/** Navbar */
|
||||||
navbar: {
|
navbar: {
|
||||||
currentSpeed: 'Текущая скорость',
|
currentSpeed: 'Текущая скорость',
|
||||||
// alltimeTitle: 'All-Time Stats',
|
alltimeTitle: 'Статистика за всё время',
|
||||||
// sessionTitle: 'Session Stats',
|
sessionTitle: 'Статистика за сессию',
|
||||||
freeSpace: 'Свободное место',
|
freeSpace: 'Свободно',
|
||||||
topActions: {
|
topActions: {
|
||||||
addTorrent: 'Добавить торрент',
|
addTorrent: 'Добавить торрент',
|
||||||
resumeSelected: 'Восстановить выбранные торренты',
|
resumeSelected: 'Восстановить выбранные торренты',
|
||||||
|
@ -91,17 +93,18 @@ const locale = {
|
||||||
tooltip: 'С момента последнего перезапуска qBittorrent'
|
tooltip: 'С момента последнего перезапуска qBittorrent'
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
stalled_uploading: 'Остановка раздачи',
|
stalled_uploading: 'Отдача стоит',
|
||||||
stalled_downloading: 'Остановка скачивания'
|
stalled_downloading: 'Загрузка стоит',
|
||||||
// uncategorized: 'Uncategorized',
|
uncategorized: 'Без категории',
|
||||||
// untagged: 'Untagged',
|
untagged: 'Без метки',
|
||||||
// not_working: 'Not Working'
|
// not_working: 'Not Working'
|
||||||
},
|
},
|
||||||
action: {
|
action: {
|
||||||
altSpeed: 'Альтернативные скорости',
|
altSpeed: 'Альтернативные скорости',
|
||||||
dark: 'Темный',
|
dark: 'Тёмная тема',
|
||||||
light: 'Светлый'
|
light: 'Светлая тема'
|
||||||
}
|
},
|
||||||
|
torrentsCount: 'Нет торрентов | {n} торрент | {n} торрента | {n} торрентов'
|
||||||
},
|
},
|
||||||
|
|
||||||
/** Modals */
|
/** Modals */
|
||||||
|
@ -138,12 +141,12 @@ const locale = {
|
||||||
settings: {
|
settings: {
|
||||||
tabName: {
|
tabName: {
|
||||||
VueTorrent: 'vuetorrent',
|
VueTorrent: 'vuetorrent',
|
||||||
downloads: 'Отдача',
|
downloads: 'Загрузки',
|
||||||
connection: 'Соединение',
|
connection: 'Соединение',
|
||||||
bittorrent: 'Bittorrent',
|
bittorrent: 'Bittorrent',
|
||||||
rss: 'RSS',
|
rss: 'RSS',
|
||||||
webUI: 'Веб-интерфейс',
|
webUI: 'Веб-интерфейс',
|
||||||
tagsAndCategories: 'Теги и категории'
|
tagsAndCategories: 'Метки и категории'
|
||||||
},
|
},
|
||||||
pageVueTorrent: {
|
pageVueTorrent: {
|
||||||
tabName: {
|
tabName: {
|
||||||
|
@ -151,43 +154,45 @@ const locale = {
|
||||||
dashboard: 'Панель'
|
dashboard: 'Панель'
|
||||||
},
|
},
|
||||||
pageGeneral: {
|
pageGeneral: {
|
||||||
tip: 'Эти настройки предназначены для пользовательского веб-интерфейса',
|
tip: 'Общие настройки пользовательского веб-интерфейса',
|
||||||
currentSpeed: 'Отображать текущую скорость',
|
currentSpeed: 'Показывать текущую скорость',
|
||||||
speedGraph: 'Отображать график скорости',
|
speedGraph: 'Показывать график скорости',
|
||||||
sessionStats: 'Отображать статистику сессии',
|
sessionStats: 'Показывать статистику сессии',
|
||||||
allTimeStats: 'Отображать всю статистику',
|
allTimeStats: 'Показывать всю статистику',
|
||||||
freeSpace: 'Отображать свободное место',
|
freeSpace: 'Показывать свободное место',
|
||||||
trackerFilter: 'Отображать фильтр трекеров',
|
trackerFilter: 'Показывать фильтр трекеров',
|
||||||
rightDrawer: 'Панель справа',
|
rightDrawer: 'Расположить боковую панель справа',
|
||||||
// topPagination: 'Top Pagination',
|
topPagination: 'Расположить навигационную панель сверху',
|
||||||
language: 'Язык:',
|
language: 'Язык:',
|
||||||
paginationSize: 'Размер страницы:',
|
paginationSize: 'Количество торрентов на странице:',
|
||||||
vueTorrentTitle: 'Заголовок VueTorrent:',
|
vueTorrentTitle: 'Заголовок VueTorrent:',
|
||||||
// dateFormat: 'Date Format',
|
dateFormat: 'Формат даты',
|
||||||
// openSideBarOnStart: 'Open Side Bar on launch',
|
openSideBarOnStart: 'Открывать боковую панель при запуске',
|
||||||
currentVersion: 'Текущая версия',
|
currentVersion: 'Текущая версия',
|
||||||
qbittorrentVersion: 'Версия QBittorrent:'
|
qbittorrentVersion: 'Версия QBittorrent:',
|
||||||
|
resetSettings: 'Сбросить настройки'
|
||||||
},
|
},
|
||||||
pageDashboard: {
|
pageDashboard: {
|
||||||
busyTorrentTip: 'Свойства для отображения занятых торрентов',
|
busyTorrentTip: 'Свойства для отображения активных торрентов',
|
||||||
completedTorrentTip: 'Свойства для отображения завершенных торрентов',
|
completedTorrentTip: 'Свойства для отображения завершенных торрентов',
|
||||||
properties: {
|
properties: {
|
||||||
// availability: 'Availability',
|
availability: 'Доступность',
|
||||||
// category: 'Category',
|
category: 'Категория',
|
||||||
// tags: 'Tags',
|
tags: 'Метки',
|
||||||
// completed: 'Completed',
|
// completed: 'Completed',
|
||||||
|
// completion_on: 'Completed On',
|
||||||
// downloaded: 'Downloaded',
|
// downloaded: 'Downloaded',
|
||||||
// ETA: 'ETA',
|
ETA: 'ETA',
|
||||||
// name: 'Name',
|
name: 'Имя',
|
||||||
// default: 'Default',
|
default: 'По-умолчанию',
|
||||||
// last_activity: 'Last Activity',
|
last_activity: 'Последняя активность',
|
||||||
// peers: 'Peers',
|
peers: 'Пиры',
|
||||||
// seeds: 'Seeds',
|
seeds: 'Сиды',
|
||||||
// priority: 'Priority',
|
priority: 'Приоритет',
|
||||||
// progress: 'Progress',
|
progress: 'Прогресс',
|
||||||
// ratio: 'Ratio',
|
ratio: 'Рейтинг',
|
||||||
// save_path: 'Directory',
|
// save_path: 'Directory',
|
||||||
// size: 'Size',
|
size: 'Размер',
|
||||||
// state: 'State',
|
// state: 'State',
|
||||||
// uploaded: 'Uploaded',
|
// uploaded: 'Uploaded',
|
||||||
// addedOn: 'Added On',
|
// addedOn: 'Added On',
|
||||||
|
@ -198,37 +203,39 @@ const locale = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
pageDownloads: {
|
pageDownloads: {
|
||||||
subHeaderWhenAddTorrent: 'Когда добавляется торрент',
|
subHeaderWhenAddTorrent: 'При добавлении торрента',
|
||||||
whenAddTorrent: {
|
whenAddTorrent: {
|
||||||
createSubFolder: 'Создать подкаталог для торрентов с несколькими файлами',
|
createSubFolder: 'Создать подкаталог для торрентов с несколькими файлами',
|
||||||
donotAutoStart: 'Не запускать раздачу автоматически'
|
donotAutoStart: 'Не начинать загрузку автоматически'
|
||||||
},
|
},
|
||||||
subHeaderPublicSettings: 'Общие настройки',
|
subHeaderPublicSettings: 'Общие настройки',
|
||||||
publicSettings: {
|
publicSettings: {
|
||||||
preAllocateDisk: 'Предварительно выделить место на диске для всех файлов',
|
preAllocateDisk: 'Резервировать место на диске для всех файлов',
|
||||||
appendQBExtension: 'Добавить расширение .!qB к неполным файлам'
|
appendQBExtension: 'Добавлять расширение .!qB к незавершённым файлам'
|
||||||
},
|
},
|
||||||
subHeaderSaveManagement: 'Управление сохранением',
|
subHeaderSaveManagement: 'Управление сохранением',
|
||||||
saveManagement: {
|
saveManagement: {
|
||||||
autoManagement: 'Автоматическое управление торрентами',
|
autoManagement: 'Автоматический режим управления торрентом по умолчанию',
|
||||||
relocate: 'Перемещение торрента при изменении категории',
|
relocate: 'Переместить торрент при изменении категории',
|
||||||
defaultSavePath: 'Путь сохранения по умолчанию',
|
defaultSavePath: 'Путь сохранения по умолчанию:',
|
||||||
keepIncompleteIn: 'Хранить не завершенные торренты в:',
|
keepIncompleteIn: 'Хранить незавершённые торренты в:',
|
||||||
// autoEnabled_onAdded: 'Run external program on torrent added:',
|
autoEnabled_onAdded: 'Запускать внешнюю программу по добавлении торрента:',
|
||||||
// autoLabel_onAdded: 'Command',
|
autoLabel_onAdded: 'Команда',
|
||||||
autoEnabled_onFinished: 'Автозапуск включен:',
|
autoEnabled_onFinished: 'Запускать внешнюю программу по завершении торрента:',
|
||||||
autoLabel_onFinished: 'Программа автозапуска',
|
autoLabel_onFinished: 'Команда',
|
||||||
supportParamTitle: 'Поддерживаемые параметры (с учетом регистра):',
|
supportParamTitle: 'Поддерживаемые параметры (с учетом регистра):',
|
||||||
supportParamN: '%N: Имя торрента',
|
supportParamN: '%N: Имя торрента',
|
||||||
supportParamL: '%L: Категория',
|
supportParamL: '%L: Категория',
|
||||||
supportParamG: '% G: Теги (разделенные запятой)',
|
supportParamG: '%G: Метки (разделяются запятыми)',
|
||||||
supportParamF: '% F: Путь к содержимому (такой же как корневой путь для многофайлового торрента)',
|
supportParamF: '%F: Папка содержимого (или корневая папка для торрентов с множеством файлов)',
|
||||||
supportParamR: '%R: Корневой путь (путь первого подкаталога торрента)',
|
supportParamR: '%R: Корневая папка (главный путь для подкаталога торрента)',
|
||||||
supportParamD: '%D: Путь сохранения',
|
supportParamD: '%D: Путь сохранения',
|
||||||
supportParamC: '%C: Количество файлов',
|
supportParamC: '%C: Количество файлов',
|
||||||
supportParamZ: '%Z: Размер торрента (байты)',
|
supportParamZ: '%Z: Размер торрента (в байтах)',
|
||||||
supportParamT: '%T: Текущий трекер',
|
supportParamT: '%T: Текущий трекер',
|
||||||
supportParamI: '%I: Хэш информации'
|
supportParamI: '%I: Инфо-хеш v1',
|
||||||
|
supportParamJ: '%J: Инфо-хеш v2',
|
||||||
|
supportParamK: '%K: ID торрента'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
pageConnection: {
|
pageConnection: {
|
||||||
|
@ -331,8 +338,8 @@ const locale = {
|
||||||
tipOnNoPath: 'Нужный путь'
|
tipOnNoPath: 'Нужный путь'
|
||||||
},
|
},
|
||||||
newTag: {
|
newTag: {
|
||||||
createNewTag: 'Создать новый тег',
|
createNewTag: 'Создать новую метку',
|
||||||
tagName: 'тег'
|
tagName: 'метка'
|
||||||
},
|
},
|
||||||
detail: {
|
detail: {
|
||||||
title: 'Детали',
|
title: 'Детали',
|
||||||
|
@ -340,7 +347,7 @@ const locale = {
|
||||||
tabTitleTrackers: 'Трекеры',
|
tabTitleTrackers: 'Трекеры',
|
||||||
tabTitlePeers: 'Пиры',
|
tabTitlePeers: 'Пиры',
|
||||||
tabTitleContent: 'Файлы',
|
tabTitleContent: 'Файлы',
|
||||||
tabTitleTagsCategories: 'Теги и категории',
|
tabTitleTagsCategories: 'Метки и категории',
|
||||||
pageInfo: {
|
pageInfo: {
|
||||||
pieceStates: 'Прогресс',
|
pieceStates: 'Прогресс',
|
||||||
torrentTitle: 'Название',
|
torrentTitle: 'Название',
|
||||||
|
@ -355,7 +362,7 @@ const locale = {
|
||||||
trackers: 'Трекеры',
|
trackers: 'Трекеры',
|
||||||
createdBy: 'Создано',
|
createdBy: 'Создано',
|
||||||
firstLastPiecePriority: 'Приоритет первой/последней части',
|
firstLastPiecePriority: 'Приоритет первой/последней части',
|
||||||
sequentialDownload: 'Последовательное скачивание',
|
sequentialDownload: 'Последовательная загрузка',
|
||||||
autoTMM: 'Авто TMM',
|
autoTMM: 'Авто TMM',
|
||||||
shareRatioLimit: 'Лимит по рейтингу',
|
shareRatioLimit: 'Лимит по рейтингу',
|
||||||
shareTimeLimit: 'Лимит времени раздачи (минуты)',
|
shareTimeLimit: 'Лимит времени раздачи (минуты)',
|
||||||
|
@ -385,7 +392,7 @@ const locale = {
|
||||||
peers: 'Пиры',
|
peers: 'Пиры',
|
||||||
seeds: 'Сиды',
|
seeds: 'Сиды',
|
||||||
leeches: 'Личи',
|
leeches: 'Личи',
|
||||||
downloaded: 'Скачано',
|
downloaded: 'Загружено',
|
||||||
message: 'Сообщение'
|
message: 'Сообщение'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -415,6 +422,7 @@ const locale = {
|
||||||
availability: 'Доступность',
|
availability: 'Доступность',
|
||||||
category: 'Категория',
|
category: 'Категория',
|
||||||
completed: 'Завершено',
|
completed: 'Завершено',
|
||||||
|
// completion_on: 'Completed On',
|
||||||
downloaded: 'Загружено',
|
downloaded: 'Загружено',
|
||||||
ETA: 'ETA',
|
ETA: 'ETA',
|
||||||
name: 'Имя',
|
name: 'Имя',
|
||||||
|
@ -427,7 +435,7 @@ const locale = {
|
||||||
// save_path: 'Directory',
|
// save_path: 'Directory',
|
||||||
size: 'Размер',
|
size: 'Размер',
|
||||||
state: 'Состояние',
|
state: 'Состояние',
|
||||||
uploaded: 'Отдано',
|
uploaded: 'Роздано',
|
||||||
addedOn: 'Добавлено',
|
addedOn: 'Добавлено',
|
||||||
downloadSpeed: 'Скорость загрузки',
|
downloadSpeed: 'Скорость загрузки',
|
||||||
timeActive: 'Активен',
|
timeActive: 'Активен',
|
||||||
|
@ -464,7 +472,7 @@ const locale = {
|
||||||
rename: 'Переименовать',
|
rename: 'Переименовать',
|
||||||
forceRecheck: 'Принудительная проверка',
|
forceRecheck: 'Принудительная проверка',
|
||||||
forceReannounce: 'Принудительно анонсировать',
|
forceReannounce: 'Принудительно анонсировать',
|
||||||
sequentialDownload: 'Последовательное скачивание',
|
sequentialDownload: 'Последовательная загрузка',
|
||||||
firstLastPriority: 'Первый/последний приоритет',
|
firstLastPriority: 'Первый/последний приоритет',
|
||||||
automaticTorrentManagement: 'Автоматическое управление торрентами'
|
automaticTorrentManagement: 'Автоматическое управление торрентами'
|
||||||
},
|
},
|
||||||
|
|
|
@ -10,7 +10,26 @@ export const i18n = new VueI18n({
|
||||||
locale: 'en', // set locale
|
locale: 'en', // set locale
|
||||||
fallbackLocale: 'en',
|
fallbackLocale: 'en',
|
||||||
silentTranslationWarn: true,
|
silentTranslationWarn: true,
|
||||||
messages
|
messages,
|
||||||
|
pluralizationRules: {
|
||||||
|
'ru': function(choice, choicesLength) {
|
||||||
|
if (choice === 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
const teen = choice > 10 && choice < 20;
|
||||||
|
const endsWithOne = choice % 10 === 1;
|
||||||
|
if (choicesLength < 4) {
|
||||||
|
return (!teen && endsWithOne) ? 1 : 2;
|
||||||
|
}
|
||||||
|
if (!teen && endsWithOne) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (!teen && choice % 10 >= 2 && choice % 10 <= 4) {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
return (choicesLength < 4) ? 2 : 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
export function setLanguage(lang: string) {
|
export function setLanguage(lang: string) {
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { i18n } from '@/plugins/i18n'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
getAppVersion: state => () => state.version,
|
getAppVersion: state => () => state.version,
|
||||||
containsTorrent: state => hash => state.selected_torrents.includes(hash),
|
containsTorrent: state => hash => state.selected_torrents.includes(hash),
|
||||||
|
@ -18,10 +20,10 @@ export default {
|
||||||
getAuthenticated: state => () => state.authenticated,
|
getAuthenticated: state => () => state.authenticated,
|
||||||
getTorrentCountString: state => () => {
|
getTorrentCountString: state => () => {
|
||||||
if (state.selected_torrents && state.selected_torrents.length) {
|
if (state.selected_torrents && state.selected_torrents.length) {
|
||||||
return `${state.selected_torrents.length} of ${state.filteredTorrentsCount} torrents`
|
return `${state.selected_torrents.length} ${i18n.t('of')} ${i18n.tc('navbar.torrentsCount', state.filteredTorrentsCount)}`
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${state.filteredTorrentsCount} torrents`
|
return i18n.tc('navbar.torrentsCount', state.filteredTorrentsCount)
|
||||||
},
|
},
|
||||||
getSearchPlugins: state => () => state.searchPlugins
|
getSearchPlugins: state => () => state.searchPlugins
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue