integrations.json 110 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101
  1. {
  2. "catalog": {
  3. "title": "Интеграции",
  4. "description": "Подключите сервисы, которыми ваша мастерская уже пользуется. Каждая интеграция настраивается один раз и работает в фоновом режиме.",
  5. "all": "Все",
  6. "empty": "В этой категории пока нет интеграций.",
  7. "notConnected": "Не подключено",
  8. "connect": "Подключить",
  9. "manage": "Управлять",
  10. "connectedTitle": "Подключено",
  11. "connectedDescription": "Сервисы, настроенные в этой мастерской. Откройте сервис, чтобы проверить статус, изменить настройки или отключить его.",
  12. "noneConnected": "Пока ничего не подключено. Выберите сервис ниже, чтобы начать.",
  13. "availableTitle": "Доступно",
  14. "availableDescription": "Сервисы, которые можно добавить. Каждый настраивается один раз и работает в фоне.",
  15. "allConnected": "Все доступные сервисы подключены.",
  16. "cloudOnly": "Только в облаке",
  17. "cloudOnlyHint": "Доступно в Torqvoice Cloud",
  18. "searchPlaceholder": "Поиск интеграций",
  19. "noMatches": "Ничего не найдено по запросу «{query}».",
  20. "readMore": "Подробнее",
  21. "suggestTitle": "Не хватает сервиса, которым вы пользуетесь?",
  22. "suggestDescription": "Расскажите, какая интеграция помогла бы вашему автосервису, и мы её рассмотрим.",
  23. "suggest": "Предложить интеграцию",
  24. "suggestSubject": "Предложение интеграции"
  25. },
  26. "categories": {
  27. "calendar": "Календарь",
  28. "conferencing": "Видеозвонки",
  29. "accounting": "Бухгалтерия",
  30. "messaging": "Сообщения",
  31. "payments": "Платежи",
  32. "automation": "Автоматизация",
  33. "storage": "Файлы",
  34. "registry": "Реестр транспортных средств",
  35. "repair": "Данные для ремонта",
  36. "other": "Другое",
  37. "ai": "ИИ"
  38. },
  39. "capabilities": {
  40. "calendar": {
  41. "push": "Заказ-наряды в календарь",
  42. "pull": "Занятое время из календаря",
  43. "conference": "Ссылки на видеозвонки"
  44. },
  45. "sms": {
  46. "send": "Исходящие SMS",
  47. "receive": "Входящие ответы"
  48. },
  49. "whatsapp": {
  50. "send": "Исходящие сообщения WhatsApp",
  51. "receive": "Входящие ответы"
  52. },
  53. "telegram": {
  54. "send": "Исходящие сообщения Telegram",
  55. "receive": "Входящие ответы"
  56. },
  57. "email": {
  58. "send": "Исходящая почта"
  59. },
  60. "vehicle": {
  61. "lookup": "Поиск по номеру и VIN",
  62. "inspection": "Сроки техосмотра",
  63. "safety": "Отзывные кампании и жалобы владельцев"
  64. },
  65. "ai": {
  66. "chat": "Тексты и сводки",
  67. "transcribe": "Диктовка"
  68. },
  69. "payments": {
  70. "checkout": "Оплата по ссылке на счёт"
  71. },
  72. "accounting": {
  73. "invoices": "Счета в бухгалтерию",
  74. "customers": "Клиенты в бухгалтерию",
  75. "payments": "Платежи в обе стороны"
  76. },
  77. "backup": {
  78. "target": "Место назначения резервных копий"
  79. },
  80. "repair": {
  81. "labor": "Нормы времени в заказ-нарядах и сметах",
  82. "fluids": "Типы и объёмы жидкостей"
  83. },
  84. "diagnostics": {
  85. "codes": "Значения кодов неисправностей"
  86. }
  87. },
  88. "statuses": {
  89. "active": "Подключено",
  90. "error": "Требует внимания",
  91. "pending": "Идёт настройка",
  92. "disconnected": "Отключено",
  93. "needsSetup": "Настройка не завершена"
  94. },
  95. "connection": {
  96. "back": "Все интеграции",
  97. "account": "Подключённый аккаунт",
  98. "lastHealth": "Последняя проверка",
  99. "lastSync": "Последняя синхронизация",
  100. "lastError": "Последний запуск завершился ошибкой",
  101. "setupMissingTitle": "Настройка не завершена",
  102. "setupMissing": "Выберите {fields} в настройках ниже. До тех пор ничего не синхронизируется.",
  103. "connected": "{name} подключено.",
  104. "connectedShort": "Подключено",
  105. "connectWith": "Подключить {name}",
  106. "connect": "Подключить",
  107. "reconnect": "Переподключить",
  108. "disconnect": "Отключить",
  109. "disconnectTitle": "Отключить {name}?",
  110. "disconnectDescription": "Torqvoice забывает аккаунт и перестаёт им пользоваться. Всё, что уже отправлено в {name} или хранится там, не затрагивается.",
  111. "disconnectDescriptionCalendar": "Torqvoice забывает аккаунт и перестаёт синхронизировать. Заказ-наряды, уже добавленные в {name}, остаются там. Занятое время, показанное из этого календаря, удаляется из календаря Torqvoice.",
  112. "disconnectDescriptionConferencing": "Torqvoice забывает аккаунт и перестаёт создавать встречи. Уже созданные встречи остаются в {name}, а ссылки в заказ-нарядах сохраняются.",
  113. "disconnectDescriptionAccounting": "Torqvoice забывает аккаунт и перестаёт отправлять и читать. Счета, клиенты и платежи, уже находящиеся в {name}, остаются там.",
  114. "removeSetup": "Удалить",
  115. "removeSetupTitle": "Удалить {name}?",
  116. "removeSetupDescription": "Пока ничего не подключено. Torqvoice забудет введённые данные, и {name} вернётся в список доступных сервисов.",
  117. "removeSetupDone": "{name} удалён",
  118. "removeSetupHint": "Не будете продолжать? Удалите, и сервис вернётся в список ниже.",
  119. "disconnected": "Отключено",
  120. "test": "Проверить подключение",
  121. "testPassed": "Подключение работает",
  122. "syncNow": "Синхронизировать сейчас",
  123. "syncQueued": "Синхронизация поставлена в очередь и запустится в течение минуты",
  124. "pullNow": "Получить платежи сейчас",
  125. "pullQueued": "Получение платежей поставлено в очередь и запустится в течение минуты",
  126. "backfill": "Отправить запланированные заказ-наряды",
  127. "backfillQueued": "Запланированные заказ-наряды за последнюю неделю и позже поставлены в очередь",
  128. "backfillInvoices": "Отправить выставленные счета",
  129. "backfillInvoicesQueuedCount": "В очередь поставлено {count, plural, one {# выставленный счёт} few {# выставленных счёта} many {# выставленных счетов} other {# выставленного счёта}}",
  130. "backfillInvoicesNone": "Нет выставленных счетов для отправки. Передаются только отправленные, опубликованные или оплаченные счета, начиная с даты начала, если она задана.",
  131. "retryQueued": "Задача снова поставлена в очередь",
  132. "settingsTitle": "Настройки",
  133. "settingsDescription": "Что синхронизировать и куда. Изменения применяются при следующей синхронизации.",
  134. "settingsSaved": "Настройки сохранены",
  135. "save": "Сохранить",
  136. "loading": "Загрузка...",
  137. "choose": "Выберите...",
  138. "search": "Поиск...",
  139. "noMatch": "Ничего не найдено",
  140. "leaveEmpty": "Оставить пустым",
  141. "noLimit": "Без ограничения",
  142. "planLocked": "Интеграции не входят в ваш тариф.",
  143. "lockedIntegrations": "Подключите календари, видеозвонки и другие сервисы к вашей мастерской.",
  144. "lockedPayments": "Позвольте клиентам оплачивать счета онлайн, и каждый платёж будет отражён в счёте.",
  145. "lockedAi": "Подключите провайдера ИИ, чтобы использовать функции ИИ в вашей мастерской.",
  146. "ownAppTitle": "Эта установка использует ваше собственное приложение у провайдера",
  147. "redirectUri": "URI перенаправления для регистрации у провайдера:",
  148. "sendTestEmail": "Отправить тестовое письмо",
  149. "testEmailSent": "Тестовое письмо отправлено на {email}",
  150. "testEmailHint": "Тестовое письмо уходит на ваш собственный адрес через этого провайдера и подтверждает адрес отправителя и правила отправки, чего не может проверка ключа.",
  151. "inboundUrl": "URL входящего вебхука",
  152. "inboundHintSecret": "Вставьте этот URL в настройки входящих сообщений у провайдера. В нём содержится секрет, по которому опознаётся ваша мастерская, поэтому никому его не показывайте.",
  153. "inboundHintMeta": "Укажите этот URL как callback-URL в вашем приложении Meta вместе с токеном проверки, введённым выше, и подпишитесь на messages.",
  154. "inboundHintStripe": "Добавьте этот URL в панели Stripe: откройте Workbench, затем Webhooks, выберите Create an event destination и подпишите его на checkout.session.completed. После этого Stripe покажет секрет подписи для этой конечной точки; вставьте его здесь в поле секрета подписи, чтобы каждое уведомление проверялось по подписи. До тех пор Torqvoice подтверждает каждое уведомление, запрашивая у Stripe сам платёж.",
  155. "inboundHintVipps": "Укажите этот URL как callback-URL в портале Vipps MobilePay. Vipps также требует опубликованных условий продажи, они задаются в разделе Настройки, Оплата.",
  156. "inboundHintPaypal": "Добавьте этот URL в панели разработчика PayPal в разделе Webhooks с подпиской на PAYMENT.CAPTURE.COMPLETED.",
  157. "copy": "Копировать",
  158. "copied": "Скопировано",
  159. "updateKeys": "Обновить ключи",
  160. "updateKeysHint": "Последняя проверка не прошла. Введите ключи ещё раз, чтобы попробовать снова.",
  161. "awaitingKeys": "Подключено, но ещё не хватает: {keys}.",
  162. "awaitingKeysHint": "Вебхук уже отвечает поставщику, поэтому зарегистрируйте его сейчас. Введите эти значения здесь, как только поставщик их выдаст.",
  163. "saveKeys": "Сохранить ключи",
  164. "keysSaved": "Ключи сохранены",
  165. "inspectionSync": {
  166. "title": "Синхронизация техосмотров",
  167. "vehicles": "{count} автомобилей с номером в этой мастерской",
  168. "dueNow": "{count} будут проверены при следующем запуске",
  169. "withDate": "{count} уже имеют дату техосмотра",
  170. "lastPass": "Последний полный проход {date}",
  171. "never": "Полного прохода ещё не было",
  172. "inProgress": "Проход выполняется",
  173. "off": "Включите настройку и сохраните; до этого проход ничего не проверяет.",
  174. "syncNowHelp": "«Синхронизировать сейчас» запускает проход немедленно, не дожидаясь ежечасного. Он проверяет по 25 автомобилей и продолжает сам, пока не обработает все ожидающие. Первый проход проверяет каждый автомобиль с номером.",
  175. "confirmTitle": "Проверить автомобили сейчас?",
  176. "confirmDescription": "Сейчас {count} из {total} автомобилей с номером будут запрошены в {name}, по 25 за раз, и сохранятся сроки их техосмотра. Недавно проверенные автомобили пропускаются. Если {name} берёт плату за запрос, каждый найденный автомобиль оплачивается с вашего аккаунта.",
  177. "confirmLabel": "Проверить автомобилей: {count}",
  178. "nothingDue": "Все автомобили с номером недавно проверялись, проверять пока нечего."
  179. },
  180. "supersedes": "Подключение {next} отключит {current}. Одновременно работает только один, поэтому {current} перестанет использоваться, как только заработает {next}.",
  181. "platformHandlesBackupsTitle": "Резервное копирование уже включено",
  182. "platformHandlesBackups": "Torqvoice уже каждый час создаёт резервную копию этой мастерской и хранит точки восстановления 30 дней. Подключите бакет, если вам нужна ещё и собственная копия, которую можно прочитать без Torqvoice.",
  183. "platformHandlesBackupsLink": "Посмотреть точки восстановления",
  184. "batchRetried": "{count, plural, =0 {Нечего повторять} one {# задача снова в очереди} few {# задачи снова в очереди} many {# задач снова в очереди} other {# задачи снова в очереди}}",
  185. "advanced": "Дополнительно",
  186. "generate": "Сгенерировать",
  187. "show": "Показать",
  188. "hide": "Скрыть",
  189. "generatedPasswordWarning": "Сохраните копию этого пароля в надёжном месте, не на этом сервере. Без него никто не сможет открыть эти резервные копии, даже Torqvoice.",
  190. "backup": {
  191. "title": "Резервные копии",
  192. "description": "Когда в это место назначения в последний раз попала успешная резервная копия, когда запустится следующая, и последние запуски.",
  193. "lastGood": "Последняя успешная копия",
  194. "added": "Добавлено {size}",
  195. "never": "Пока нет",
  196. "nextRun": "Следующий запуск",
  197. "notScheduled": "Не запланировано",
  198. "repositorySize": "Хранится в месте назначения",
  199. "runNow": "Создать копию сейчас",
  200. "running": "Создаётся копия",
  201. "runningHint": "Идёт резервное копирование. Страница обновляется сама, пока оно не завершится.",
  202. "started": "Резервное копирование запущено",
  203. "recentTitle": "Последние запуски",
  204. "noRuns": "Резервные копии ещё не создавались.",
  205. "addedNote": "Первый запуск загружает всё. Каждый следующий добавляет только изменившиеся с тех пор фрагменты, поэтому он небольшой. Каждая копия при этом полна и может быть восстановлена или просмотрена отдельно.",
  206. "notStarted": "Не запущено",
  207. "filesNewCount": "{count, plural, one {# новый файл} few {# новых файла} many {# новых файлов} other {# нового файла}}",
  208. "columns": {
  209. "status": "Статус",
  210. "started": "Начало",
  211. "trigger": "Кто запустил",
  212. "duration": "Длительность",
  213. "filesNew": "Новые файлы",
  214. "bytesAdded": "Добавлено"
  215. },
  216. "trigger": {
  217. "scheduled": "По расписанию",
  218. "manual": "Вручную",
  219. "restore": "Восстановление"
  220. },
  221. "status": {
  222. "queued": "В очереди",
  223. "running": "Выполняется",
  224. "done": "Готово",
  225. "failed": "Ошибка",
  226. "skipped": "Пропущено"
  227. },
  228. "restoring": "Идёт восстановление",
  229. "restoringHint": "Идёт восстановление: данные мастерской заменяются резервной копией. Страница обновляется сама, пока оно не завершится. До тех пор не работайте в мастерской.",
  230. "explore": "Просмотреть",
  231. "restore": {
  232. "showAll": "Показать все резервные копии",
  233. "refresh": "Обновить",
  234. "loading": "Чтение резервных копий в месте назначения",
  235. "loadFailed": "Не удалось получить список резервных копий",
  236. "empty": "В этом месте назначения пока нет резервных копий.",
  237. "needsOwner": "Восстановить резервную копию здесь может только владелец мастерской.",
  238. "needsAdmin": "Восстановить резервную копию может только владелец или администратор.",
  239. "filesIncluded": "Фото и файлы включены",
  240. "filesNotIncluded": "Фото и файлы не включены",
  241. "earlierInstall": "Прежняя установка",
  242. "action": "Восстановить",
  243. "dialogTitle": "Восстановить резервную копию от {time}?",
  244. "warning": "Восстановление <bold>заменяет всё, что сейчас есть в этой мастерской</bold>: клиентов, автомобили, заказ-наряды, счета, настройки и, если они есть в резервной копии, фото и файлы. Всё, что добавлено после создания резервной копии, пропадёт. Это действие нельзя отменить.",
  245. "secretsNote": "Секретные ключи, не включённые в резервную копию, сохраняют значения, которые сейчас есть в этой установке. Учётные записи пользователей и пароли не затрагиваются.",
  246. "confirmPrompt": "Для подтверждения введите название мастерской, <bold>{name}</bold>.",
  247. "whileRunning": "Восстановление идёт в фоне и занимает несколько минут, если фотографий много. Страница обновляется сама, пока оно не завершится.",
  248. "cancel": "Отмена",
  249. "confirm": "Восстановить эту резервную копию",
  250. "started": "Восстановление запущено"
  251. }
  252. },
  253. "lockedBackups": "Зашифрованные резервные копии вашей мастерской по расписанию в ваше собственное хранилище.",
  254. "searchOrType": "Найдите или введите имя",
  255. "useTyped": "Использовать «{value}»",
  256. "listNeedsKeys": "Введите ключи выше, чтобы увидеть список",
  257. "listEmpty": "Список пуст. Введите имя вручную.",
  258. "testing": "Проверка подключения",
  259. "testOk": "Подключение работает: тестовый объект был записан и снова удалён.",
  260. "testFailed": "Проверка не прошла",
  261. "testSteps": {
  262. "settings": "Проверьте настройки поставщика",
  263. "list": "Ключ не может просматривать список объектов в бакете",
  264. "write": "Ключ не может записывать в бакет",
  265. "delete": "Ключ не может удалять из бакета",
  266. "folder": "Не удаётся создать или открыть папку"
  267. },
  268. "testHint": "Заполните ключи и бакет, чтобы проверить их до подключения. Проверка записывает один небольшой объект и удаляет его."
  269. },
  270. "activity": {
  271. "title": "Активность",
  272. "description": "Последние задачи и записи журнала для этого подключения.",
  273. "retry": "Повторить",
  274. "jobStatus": {
  275. "queued": "В очереди",
  276. "running": "Выполняется",
  277. "done": "Готово",
  278. "failed": "Ошибка",
  279. "dead": "Прекращено"
  280. },
  281. "jobs": "{count, plural, one {# задача} few {# задачи} many {# задач} other {# задачи}}",
  282. "counts": {
  283. "queued": "{count} в очереди",
  284. "running": "{count} выполняется",
  285. "done": "{count} готово",
  286. "failed": "{count} с ошибкой",
  287. "dead": "{count} прекращено"
  288. },
  289. "noFailures": "Ошибок нет.",
  290. "retryFailed": "Повторить неудавшиеся",
  291. "details": "Показать подробности",
  292. "loadingMore": "Загрузка более ранних задач",
  293. "loadFailed": "Не удалось загрузить более ранние задачи.",
  294. "cleared": "Завершённые задачи удаляются через 7 дней."
  295. },
  296. "errors": {
  297. "generic": "Что-то пошло не так",
  298. "demo": "В демо-режиме интеграции подключить нельзя.",
  299. "forbidden": "Подключать интеграции может только администратор.",
  300. "unknown": "Неизвестная интеграция.",
  301. "plan": "Эта интеграция не входит в ваш тариф.",
  302. "no-client": "Для этого провайдера не настроены данные приложения.",
  303. "denied": "Вы отменили вход у провайдера.",
  304. "vendor": "Провайдер вернул ошибку. Попробуйте ещё раз.",
  305. "invalid": "Ответ провайдера был неполным. Попробуйте ещё раз.",
  306. "state": "Срок этого входа истёк, или он относится к другой сессии. Начните заново.",
  307. "exchange": "Провайдер отклонил вход. Проверьте данные приложения и попробуйте ещё раз.",
  308. "identify": "Подключено, но не удалось прочитать данные аккаунта. Попробуйте переподключиться.",
  309. "backupRunning": "Резервное копирование уже выполняется.",
  310. "restoreOwnerOnly": "В Torqvoice Cloud восстановить резервную копию может только владелец мастерской.",
  311. "restoreBusy": "На этом сервере уже выполняется резервное копирование или восстановление. Попробуйте ещё раз, когда оно завершится."
  312. },
  313. "meeting": {
  314. "join": "Присоединиться к видеозвонку",
  315. "google-meet": "Google Meet",
  316. "teams": "Microsoft Teams",
  317. "zoom": "Zoom"
  318. },
  319. "calendar": {
  320. "external": "Из подключённых календарей",
  321. "busy": "Занято"
  322. },
  323. "connectors": {
  324. "google-calendar": {
  325. "description": "Добавляйте запланированные заказ-наряды в Google Calendar, прикрепляйте ссылку Google Meet и видите занятое время календаря в Torqvoice.",
  326. "tenantHelp": "Создайте OAuth-клиент в Google Cloud Console (APIs & Services → Credentials), включите Google Calendar API, добавьте указанный ниже URI перенаправления и вставьте сюда идентификатор клиента и секрет.",
  327. "fields": {
  328. "clientId": "Идентификатор клиента",
  329. "clientSecret": "Секрет клиента"
  330. },
  331. "settings": {
  332. "calendarId": "Календарь",
  333. "pushEnabled": "Добавлять запланированные заказ-наряды в этот календарь",
  334. "includeCustomer": "Включать имя и телефон клиента в событие",
  335. "addConference": "Добавлять встречу Google Meet к каждому запланированному заказу",
  336. "addConferenceHelp": "Вкл.: каждый заказ, отправленный в календарь, получает встречу Google Meet, а ссылка показывается в заказе. Выкл.: добавьте встречу Google Meet к отдельному заказу с его страницы. В любом случае клиент получает ссылку только когда вы её отправите.",
  337. "pullEnabled": "Показывать занятое время этого календаря в календаре Torqvoice",
  338. "pullEnabledHelp": "Только чтение. Обновляется каждые 15 минут: неделя назад и два месяца вперёд."
  339. }
  340. },
  341. "microsoft-365": {
  342. "name": "Календарь Microsoft 365",
  343. "description": "Добавляйте запланированные заказ-наряды в календарь Outlook, прикрепляйте ссылку Microsoft Teams и видите занятое время календаря в Torqvoice.",
  344. "tenantHelp": "Зарегистрируйте приложение в Microsoft Entra (App registrations), разрешите личные и рабочие аккаунты, добавьте указанный ниже URI перенаправления как платформу Web, создайте секрет клиента и вставьте сюда оба значения.",
  345. "fields": {
  346. "clientId": "Идентификатор приложения (клиента)",
  347. "clientSecret": "Секрет клиента"
  348. },
  349. "settings": {
  350. "calendarId": "Календарь",
  351. "pushEnabled": "Добавлять запланированные заказ-наряды в этот календарь",
  352. "includeCustomer": "Включать имя и телефон клиента в событие",
  353. "addConference": "Добавлять встречу Microsoft Teams к каждому запланированному заказу",
  354. "addConferenceHelp": "Вкл.: каждый заказ, отправленный в календарь, получает встречу Microsoft Teams, а ссылка показывается в заказе. Выкл.: добавьте встречу Microsoft Teams к отдельному заказу с его страницы. В любом случае клиент получает ссылку только когда вы её отправите.",
  355. "pullEnabled": "Показывать занятое время этого календаря в календаре Torqvoice",
  356. "pullEnabledHelp": "Только чтение. Обновляется каждые 15 минут: неделя назад и два месяца вперёд."
  357. }
  358. },
  359. "zoom": {
  360. "description": "Добавьте встречу Zoom к запланированному заказ-наряду и держите ссылку на нём: для удалённой диагностики или разбора результатов с клиентом.",
  361. "tenantHelp": "В Zoom App Marketplace создайте приложение General (user-managed), добавьте указанный ниже redirect URI, добавьте scope meeting:write:meeting, meeting:update:meeting, meeting:delete:meeting, meeting:read:meeting и user:read:user, затем вставьте сюда client ID и секрет.",
  362. "fields": {
  363. "clientId": "Client ID",
  364. "clientSecret": "Секрет клиента"
  365. },
  366. "settings": {
  367. "autoCreate": "Автоматически создавать встречу Zoom для каждого запланированного заказ-наряда",
  368. "autoCreateHelp": "Выкл.: вы сами добавляете видеозвонок к заказ-наряду на его странице. Вкл.: каждый заказ-наряд с временем начала получает встречу, которая переносится при изменении расписания и удаляется при отмене. В любом случае клиент получает ссылку, только когда вы её отправите.",
  369. "includeCustomer": "Указывать имя клиента в теме встречи",
  370. "joinBeforeHost": "Разрешить клиенту входить раньше вас",
  371. "waitingRoom": "Использовать зал ожидания"
  372. }
  373. },
  374. "twilio-sms": {
  375. "description": "Отправляйте и получайте SMS через номер Twilio: напоминания, сообщения о готовности автомобиля и ответы клиентов.",
  376. "fields": {
  377. "accountSid": "Account SID",
  378. "authToken": "Токен авторизации"
  379. },
  380. "settings": {
  381. "phoneNumber": "Отправлять с этого номера"
  382. }
  383. },
  384. "vonage-sms": {
  385. "description": "Отправляйте и получайте SMS через номер Vonage.",
  386. "fields": {
  387. "apiKey": "API-ключ",
  388. "apiSecret": "API-секрет",
  389. "signatureSecret": "Секрет подписи",
  390. "signatureSecretHelp": "В панели Vonage, в разделе API settings. Если он задан, входящие сообщения принимаются, только когда они подписаны Vonage. Без него проверяется только секрет в URL вебхука."
  391. },
  392. "settings": {
  393. "phoneNumber": "Отправлять с этого номера"
  394. }
  395. },
  396. "telnyx-sms": {
  397. "description": "Отправляйте и получайте SMS через номер Telnyx.",
  398. "fields": {
  399. "apiKey": "API-ключ",
  400. "webhookPublicKey": "Открытый ключ вебхука",
  401. "webhookPublicKeyHelp": "На портале Telnyx, в разделе Account settings, Keys and credentials, Public key. Если он задан, входящие сообщения принимаются, только когда они подписаны Telnyx. Без него проверяется только секрет в URL вебхука."
  402. },
  403. "settings": {
  404. "phoneNumber": "Отправлять с этого номера"
  405. }
  406. },
  407. "whatsapp-meta": {
  408. "description": "Пишите клиентам в WhatsApp напрямую через Meta: фото того, что вы нашли, и последующая переписка.",
  409. "fields": {
  410. "phoneNumberId": "ID номера телефона",
  411. "accessToken": "Токен доступа",
  412. "verifyToken": "Токен проверки вебхука",
  413. "appSecret": "Секрет приложения",
  414. "apiVersion": "Версия Graph API",
  415. "appSecretHelp": "Meta подписывает им каждую доставку. Пока он не введён, сообщения, отправленные на вебхук, отклоняются, иначе любой, кто узнает URL, смог бы писать от имени ваших клиентов.",
  416. "phoneNumberIdHelp": "Из WhatsApp Manager, у номера, с которого вы отправляете; это не сам номер телефона. Meta выдаёт его только после проверки вебхука, поэтому оставьте поле пустым, подключитесь, зарегистрируйте вебхук и затем вернитесь, чтобы добавить его.",
  417. "accessTokenHelp": "Постоянный токен системного пользователя. Тот, что Meta показывает при настройке, истекает через 24 часа. Добавьте его вместе с идентификатором номера телефона после проверки вебхука.",
  418. "verifyTokenHelp": "Любая фраза на ваш выбор. Вставьте ту же самую в Meta при регистрации вебхука."
  419. },
  420. "settings": {
  421. "enabled": "Отправлять сообщения по этому каналу",
  422. "phoneNumber": "Отправлять с этого номера",
  423. "templateName": "Шаблон для возобновления беседы",
  424. "templateLanguage": "Язык шаблона",
  425. "templateVariables": "Значения шаблона по порядку",
  426. "mediaTemplateName": "Шаблон для сообщения с фото",
  427. "mediaTemplateLanguage": "Язык шаблона с фото",
  428. "mediaTemplateVariables": "Значения шаблона с фото по порядку"
  429. }
  430. },
  431. "whatsapp-twilio": {
  432. "description": "Пишите клиентам в WhatsApp через номер Twilio, если номер вам продал Twilio.",
  433. "fields": {
  434. "accountSid": "Account SID",
  435. "authToken": "Токен авторизации",
  436. "messagingServiceSid": "Messaging service SID"
  437. },
  438. "settings": {
  439. "enabled": "Отправлять сообщения по этому каналу",
  440. "phoneNumber": "Отправлять с этого номера",
  441. "templateName": "Шаблон для возобновления беседы",
  442. "templateLanguage": "Язык шаблона",
  443. "templateVariables": "Значения шаблона по порядку",
  444. "mediaTemplateName": "Шаблон для сообщения с фото",
  445. "mediaTemplateLanguage": "Язык шаблона с фото",
  446. "mediaTemplateVariables": "Значения шаблона с фото по порядку"
  447. }
  448. },
  449. "telegram": {
  450. "description": "Бот Telegram, который связывается с клиентами, пользующимися им, и приносит их ответы во входящие.",
  451. "fields": {
  452. "botToken": "Токен бота"
  453. },
  454. "settings": {
  455. "enabled": "Отправлять сообщения по этому каналу",
  456. "botUsername": "Имя пользователя бота"
  457. }
  458. },
  459. "smtp": {
  460. "description": "Отправляйте счета и напоминания через собственный почтовый сервер, а не через почту платформы.",
  461. "fields": {
  462. "host": "Сервер",
  463. "port": "Порт",
  464. "user": "Имя пользователя",
  465. "pass": "Пароль"
  466. },
  467. "settings": {
  468. "fromEmail": "Отправлять с этого адреса",
  469. "fromName": "Имя отправителя",
  470. "secure": "Подключаться по TLS с самого начала",
  471. "requireTls": "Требовать перехода сервера на TLS",
  472. "rejectUnauthorized": "Отклонять сертификат, который не прошёл проверку"
  473. }
  474. },
  475. "resend": {
  476. "description": "Отправляйте счета и напоминания через Resend.",
  477. "fields": {
  478. "apiKey": "API-ключ"
  479. },
  480. "settings": {
  481. "fromEmail": "Отправлять с этого адреса",
  482. "fromName": "Имя отправителя"
  483. }
  484. },
  485. "postmark": {
  486. "description": "Отправляйте счета и напоминания через Postmark.",
  487. "fields": {
  488. "apiKey": "Серверный токен"
  489. },
  490. "settings": {
  491. "fromEmail": "Отправлять с этого адреса",
  492. "fromName": "Имя отправителя"
  493. }
  494. },
  495. "mailgun": {
  496. "description": "Отправляйте счета и напоминания через Mailgun.",
  497. "fields": {
  498. "apiKey": "API-ключ",
  499. "domain": "Домен отправки"
  500. },
  501. "settings": {
  502. "fromEmail": "Отправлять с этого адреса",
  503. "fromName": "Имя отправителя",
  504. "region": "Регион домена"
  505. }
  506. },
  507. "sendgrid": {
  508. "description": "Отправляйте счета и напоминания через SendGrid.",
  509. "fields": {
  510. "apiKey": "API-ключ"
  511. },
  512. "settings": {
  513. "fromEmail": "Отправлять с этого адреса",
  514. "fromName": "Имя отправителя"
  515. }
  516. },
  517. "amazon-ses": {
  518. "description": "Отправляйте счета и напоминания через Amazon SES.",
  519. "fields": {
  520. "accessKeyId": "ID ключа доступа",
  521. "secretAccessKey": "Секретный ключ доступа",
  522. "region": "Регион"
  523. },
  524. "settings": {
  525. "fromEmail": "Отправлять с этого адреса",
  526. "fromName": "Имя отправителя"
  527. }
  528. },
  529. "vegvesen": {
  530. "description": "Заполните данные автомобиля по норвежскому номеру или VIN: марка, модель, год, топливо, коробка передач, двигатель, цвет, размеры шин и дата следующего EU-kontroll, напрямую из реестра Statens vegvesen. Данные о владельце не передаются.",
  531. "fields": {
  532. "apiKey": "API-ключ",
  533. "apiKeyHelp": "Бесплатно. Закажите ключ на vegvesen.no в разделе «API for tekniske kjøretøyopplysninger»: войдите через BankID, представьте мастерскую, и ключ будет выдан сразу. Он допускает 50 000 запросов в день."
  534. },
  535. "settings": {
  536. "syncInspections": "Обновлять сроки техосмотра для всех автомобилей этой мастерской",
  537. "syncInspectionsHelp": "Раз в час автомобили, которым пора проверка, ищутся по номеру, и сохраняется дата следующего EU-kontroll; как часто автомобиль проверяется повторно, задаётся ниже. Отправляются только автомобили, сохранённые в этой мастерской.",
  538. "inspectionRecheck": "Повторно проверять автомобили, у которых уже есть дата",
  539. "inspectionRecheckHelp": "Дата меняется только после пройденного осмотра. Ежемесячно быстрее всего замечает досрочный осмотр; только перед сроком стоит дешевле всего. Перед сроком каждый автомобиль проверяется еженедельно независимо от этого выбора.",
  540. "recheckMonthly": "Каждый месяц",
  541. "recheckQuarterly": "Каждые три месяца",
  542. "recheckNearDeadline": "Только перед сроком",
  543. "inspectionSoonDays": "Перед сроком означает в пределах",
  544. "inspectionSoonDaysHelp": "В этом окне автомобиль проверяется еженедельно, поэтому пройденный осмотр убирает его из списка напоминаний за несколько дней. Более короткое окно означает меньше запросов.",
  545. "soon30": "30 дней",
  546. "soon60": "60 дней",
  547. "soon90": "90 дней",
  548. "inspectionOnlyWithCustomer": "Только автомобили с клиентом",
  549. "inspectionOnlyWithCustomerHelp": "Пропускать автомобили без записанного клиента. Напомнить о них некому, так что запрос обходится впустую."
  550. }
  551. },
  552. "openapi-automotive": {
  553. "description": "Заполните данные автомобиля по французскому, итальянскому, испанскому, португальскому или британскому номеру: марка, модель, год, VIN, топливо, объём двигателя и другое из регистрационных данных страны через Openapi.com. Каждый запрос списывается со счёта Openapi самой мастерской. Данные о владельце не передаются.",
  554. "fields": {
  555. "token": "API-токен",
  556. "tokenHelp": "Создайте аккаунт на console.openapi.com, пополните кошелёк и в разделе Automotive создайте токен для производственной среды. Каждый успешный запрос стоит несколько десятков центов; запрос без результата бесплатен."
  557. },
  558. "settings": {
  559. "country": "Страна",
  560. "countryHelp": "Реестр, в котором искать. Французские и итальянские номера выглядят одинаково, поэтому страну нельзя определить по номеру.",
  561. "cars": "Искать автомобили",
  562. "carsHelp": "Запрашивает реестр автомобилей. Отключите, если работаете только с мотоциклами: поиск пропустит автомобили и ответит быстрее.",
  563. "bikes": "Искать мотоциклы",
  564. "bikesHelp": "Запрашивает реестр мотоциклов. Если автомобили тоже включены, он запрашивается только когда автомобиль не найден, а запрос по автомобилю без результата бесплатен. Недоступно для Португалии."
  565. }
  566. },
  567. "checkcardetails": {
  568. "description": "Заполняйте данные автомобиля по британскому номеру или VIN: марка, модель, год, цвет, топливо, объём двигателя и срок следующего MOT, из данных DVLA через Check Car Details. Автомобили и мотоциклы берутся из одного реестра. Если для вашего аккаунта включена UK Vehicle Data, приходят также VIN, коробка передач и массы. Каждый запрос оплачивается с собственного аккаунта Check Car Details мастерской. Данные владельца не возвращаются.",
  569. "fields": {
  570. "apiKey": "API-ключ",
  571. "apiKeyHelp": "Создайте аккаунт на api.checkcardetails.co.uk и скопируйте рабочий ключ в разделе API Keys. Vehicle Registration входит в каждый аккаунт. Чтобы получать и VIN, нажмите Request Access рядом с UK Vehicle Data в разделе Your Data Points; запросы начнут его использовать, как только он будет включён. Тестовый ключ находит только номера, в которых есть буква A."
  572. },
  573. "settings": {
  574. "syncInspections": "Поддерживать сроки MOT актуальными для всех автомобилей этой мастерской",
  575. "syncInspectionsHelp": "Когда это включено, каждый автомобиль с номером ищется один раз, и сохраняется дата его MOT. Затем автомобили проверяются повторно так, как задано ниже. Каждый найденный автомобиль оплачивается как один запрос Vehicle Registration; номера, неизвестные реестру, бесплатны. Отправляются только автомобили, сохранённые в этой мастерской.",
  576. "inspectionRecheck": "Повторно проверять автомобили, у которых уже есть дата",
  577. "inspectionRecheckHelp": "Дата меняется только после пройденного осмотра. Ежемесячно быстрее всего замечает досрочный осмотр; только перед сроком стоит дешевле всего. Перед сроком каждый автомобиль проверяется еженедельно независимо от этого выбора.",
  578. "recheckMonthly": "Каждый месяц",
  579. "recheckQuarterly": "Каждые три месяца",
  580. "recheckNearDeadline": "Только перед сроком",
  581. "inspectionSoonDays": "Перед сроком означает в пределах",
  582. "inspectionSoonDaysHelp": "В этом окне автомобиль проверяется еженедельно, поэтому пройденный осмотр убирает его из списка напоминаний за несколько дней. Более короткое окно означает меньше запросов.",
  583. "soon30": "30 дней",
  584. "soon60": "60 дней",
  585. "soon90": "90 дней",
  586. "inspectionOnlyWithCustomer": "Только автомобили с клиентом",
  587. "inspectionOnlyWithCustomerHelp": "Пропускать автомобили без записанного клиента. Напомнить о них некому, так что запрос обходится впустую."
  588. }
  589. },
  590. "rdw": {
  591. "description": "Заполните данные автомобиля по нидерландскому номеру: марка, модель, год, топливо, объём двигателя, цвет, массы и дата следующего APK, напрямую из открытого реестра транспортных средств RDW. Бесплатно, ключ не нужен. Данные о владельце и VIN не публикуются.",
  592. "fields": {
  593. "appToken": "Токен приложения (необязательно)",
  594. "appTokenHelp": "Открытые данные RDW работают без ключа, но анонимные запросы делят ограниченную квоту. Для синхронизации техосмотров создайте бесплатный аккаунт на opendata.rdw.nl, откройте настройки разработчика в профиле и создайте токен приложения."
  595. },
  596. "settings": {
  597. "syncInspections": "Обновлять даты APK для всех автомобилей этой мастерской",
  598. "syncInspectionsHelp": "Раз в час автомобили, которым пора проверка, ищутся по номеру, и сохраняется дата следующего APK; как часто автомобиль проверяется повторно, задаётся ниже. Отправляются только автомобили, сохранённые в этой мастерской.",
  599. "inspectionRecheck": "Повторно проверять автомобили, у которых уже есть дата",
  600. "inspectionRecheckHelp": "Дата меняется только после пройденного осмотра. Ежемесячно быстрее всего замечает досрочный осмотр; только перед сроком стоит дешевле всего. Перед сроком каждый автомобиль проверяется еженедельно независимо от этого выбора.",
  601. "recheckMonthly": "Каждый месяц",
  602. "recheckQuarterly": "Каждые три месяца",
  603. "recheckNearDeadline": "Только перед сроком",
  604. "inspectionSoonDays": "Перед сроком означает в пределах",
  605. "inspectionSoonDaysHelp": "В этом окне автомобиль проверяется еженедельно, поэтому пройденный осмотр убирает его из списка напоминаний за несколько дней. Более короткое окно означает меньше запросов.",
  606. "soon30": "30 дней",
  607. "soon60": "60 дней",
  608. "soon90": "90 дней",
  609. "inspectionOnlyWithCustomer": "Только автомобили с клиентом",
  610. "inspectionOnlyWithCustomerHelp": "Пропускать автомобили без записанного клиента. Напомнить о них некому, так что запрос обходится впустую."
  611. }
  612. },
  613. "regcheck": {
  614. "description": "Заполните данные автомобиля по номеру в Австралии, Новой Зеландии, США, Ирландии, Норвегии, Швеции, Дании, Финляндии, Эстонии, Чехии, Словакии, Венгрии или Хорватии: марка, модель, год, VIN, топливо и объём двигателя, если страна их публикует, через RegCheck. Каждый успешный запрос списывает один кредит со счёта RegCheck самой мастерской. Данные о владельце не передаются.",
  615. "fields": {
  616. "username": "Имя пользователя RegCheck",
  617. "usernameHelp": "Зарегистрируйтесь на regcheck.org.uk; аккаунт включает 10 бесплатных запросов, остальные покупаются блоками по 100 в панели. Здесь нужно только имя пользователя, никогда пароль. Ненайденный номер ничего не стоит."
  618. },
  619. "settings": {
  620. "country": "Страна",
  621. "countryHelp": "Реестр, в котором искать. У каждой страны своя служба, поэтому подключение ищет в одной.",
  622. "auState": "Штат или территория",
  623. "auStateHelp": "Австралия регистрирует автомобили по штатам, и реестру нужно указать, в каком искать. Выберите тот, где зарегистрировано большинство автомобилей ваших клиентов.",
  624. "usState": "Штат",
  625. "usStateHelp": "Двухбуквенный код штата, в котором зарегистрированы автомобили, например CA или TX. Американские реестры запрашиваются по штатам."
  626. }
  627. },
  628. "openai": {
  629. "description": "Описания работ, сводки по истории, распознавание документов и ассистент — отвечает ваш собственный аккаунт OpenAI. Каждый запрос оплачивается с этого аккаунта, модель выбираете вы.",
  630. "fields": {
  631. "apiKey": "API-ключ",
  632. "apiKeyHelp": "Создайте его на platform.openai.com в разделе API keys. На аккаунте нужен баланс; OpenAI списывает плату за каждый запрос."
  633. },
  634. "settings": {
  635. "model": "Модель",
  636. "modelHelp": "Какая модель отвечает. Список берётся из вашего аккаунта, новые сверху. Модели поменьше дешевле за запрос и справляются с большинством текстов мастерской."
  637. }
  638. },
  639. "anthropic": {
  640. "description": "Описания работ, сводки по истории, распознавание документов и ассистент — отвечает Claude в вашем собственном аккаунте Anthropic. Каждый запрос оплачивается с этого аккаунта, модель выбираете вы.",
  641. "fields": {
  642. "apiKey": "API-ключ",
  643. "apiKeyHelp": "Создайте его на console.anthropic.com в разделе API keys. На аккаунте нужен баланс; Anthropic списывает плату за каждый запрос."
  644. },
  645. "settings": {
  646. "model": "Модель",
  647. "modelHelp": "Какая модель отвечает. Список берётся из вашего аккаунта, новые сверху. Модели поменьше дешевле за запрос и справляются с большинством текстов мастерской."
  648. }
  649. },
  650. "openai-compatible": {
  651. "name": "Совместимый с OpenAI",
  652. "description": "Описания работ, сводки истории, распознавание документов и ассистент, которые отвечает любой сервер с chat API OpenAI: Ollama, Open WebUI, LocalAI, vLLM, LM Studio, LiteLLM и подобные. Ваши данные остаются на вашем оборудовании.",
  653. "fields": {
  654. "baseUrl": "Базовый URL",
  655. "baseUrlHelp": "Где начинается OpenAI-совместимый API сервера, включая путь: /v1 для Ollama, vLLM, LocalAI и LM Studio, /api для Open WebUI. Torqvoice добавляет к нему /models и /chat/completions.",
  656. "apiKey": "API-ключ",
  657. "apiKeyHelp": "Только если сервер его требует. Ollama и vLLM обычно работают без ключа; Open WebUI выдаёт его в разделе Настройки, Аккаунт."
  658. },
  659. "settings": {
  660. "model": "Модель",
  661. "modelHelp": "Какая модель отвечает. В списке всё, что сообщает сервер, по названию. Для чтения фотографий выберите модель с поддержкой изображений."
  662. }
  663. },
  664. "stripe": {
  665. "description": "Оплата картой по ссылке на счёт на ваш собственный аккаунт Stripe. Клиент платит, Stripe сообщает Torqvoice, и счёт сам отмечается оплаченным.",
  666. "fields": {
  667. "secretKey": "Секретный ключ",
  668. "secretKeyHelp": "Из панели Stripe в разделе Developers, API keys. Тестовые ключи ничего реального не проводят, поэтому сначала попробуйте платёж на них, а затем переключитесь на боевые ключи.",
  669. "publishableKey": "Публикуемый ключ",
  670. "webhookSecret": "Секрет подписи вебхука",
  671. "webhookSecretHelp": "Необязательно, можно добавить и после подключения. Stripe показывает его под Reveal secret, когда URL уведомлений с этой страницы добавлен как конечная точка. С ним каждое уведомление проверяется по подписи; без него Torqvoice запрашивает у Stripe платёж, прежде чем его записать."
  672. },
  673. "settings": {
  674. "enabled": "Предлагать в ссылках на счета",
  675. "enabledHelp": "Выключите, чтобы на время убрать кнопку оплаты с общих счетов, не отключая интеграцию. Уже начатые платежи всё равно записываются."
  676. }
  677. },
  678. "vipps": {
  679. "description": "Vipps MobilePay по ссылке на счёт. Клиент платит в приложении, которое у него уже есть, и счёт сам отмечается оплаченным.",
  680. "fields": {
  681. "clientId": "Client ID",
  682. "clientSecret": "Секрет клиента",
  683. "subscriptionKey": "Ключ подписки",
  684. "subscriptionKeyHelp": "Ocp-Apim-Subscription-Key из портала Vipps MobilePay, в API-ключах торговой единицы.",
  685. "merchantSerialNumber": "Серийный номер продавца"
  686. },
  687. "settings": {
  688. "enabled": "Предлагать в ссылках на счета",
  689. "enabledHelp": "Выключите, чтобы на время убрать кнопку оплаты с общих счетов, не отключая интеграцию. Уже начатые платежи всё равно записываются.",
  690. "testMode": "Тестовый режим",
  691. "testModeHelp": "Использовать тестовую среду Vipps с тестовыми ключами. Оставьте включённым, пока не пройдёт полный платёж, затем выключите и введите боевые ключи."
  692. }
  693. },
  694. "paypal": {
  695. "description": "Оплата через PayPal по ссылке на счёт через ваше собственное приложение PayPal. Клиент платит аккаунтом PayPal или картой, и счёт сам отмечается оплаченным.",
  696. "fields": {
  697. "clientId": "Client ID",
  698. "clientSecret": "Секрет клиента"
  699. },
  700. "settings": {
  701. "enabled": "Предлагать в ссылках на счета",
  702. "enabledHelp": "Выключите, чтобы на время убрать кнопку оплаты с общих счетов, не отключая интеграцию. Уже начатые платежи всё равно записываются.",
  703. "sandbox": "Режим песочницы",
  704. "sandboxHelp": "Использовать песочницу PayPal с ключами приложения песочницы. Оставьте включённым, пока не пройдёт полный платёж, затем выключите и введите ключи боевого приложения."
  705. }
  706. },
  707. "quickbooks": {
  708. "description": "Отправляйте выставленные счета, их клиентов и платежи в QuickBooks Online и получайте обратно платежи, записанные там.",
  709. "tenantHelp": "Создайте приложение на портале Intuit Developer. Скопируйте client id и secret из Keys and credentials, а URI перенаправления ниже введите в Settings, Redirect URIs. Ключи разработки работают с sandbox-компаниями, production-ключи с настоящими.",
  710. "fields": {
  711. "clientId": "Идентификатор клиента",
  712. "clientSecret": "Секрет клиента"
  713. },
  714. "settings": {
  715. "pushInvoices": "Отправлять выставленные счета в QuickBooks",
  716. "pushOnComplete": "Также отправлять счета, когда заказ отмечен как выполненный",
  717. "pushOnCompleteHelp": "Без этого счёт уходит, когда он отправлен, передан по ссылке или оплачен. С этим выполненный заказ уходит сразу и обновляется при изменениях.",
  718. "startDate": "Только счета с датой не раньше",
  719. "startDateHelp": "Оставьте пустым, чтобы отправлять все выставленные счета. Укажите дату перехода бухгалтерии на QuickBooks, чтобы старые счета не вводились дважды.",
  720. "includeVehicle": "Указывать автомобиль в счёте",
  721. "includeVehicleHelp": "Текстовая строка над позициями с годом, маркой, моделью, номером и пробегом, чтобы бухгалтерия знала, о какой машине речь.",
  722. "laborItemId": "Товар для строк работ",
  723. "laborItemIdHelp": "Оставьте пустым, и в первый раз под вашим счётом доходов будет создан товар с именем Labour.",
  724. "partsItemId": "Товар для строк запчастей",
  725. "partsItemIdHelp": "Оставьте пустым, и в первый раз под вашим счётом доходов будет создан товар с именем Parts.",
  726. "taxAmounts": "Суммы налога",
  727. "taxAmountsHelp": "Как в счёте передаёт налог ровно таким, каким он указан в счёте клиента, поэтому обе системы сходятся до копейки. Рассчитывает QuickBooks позволяет QuickBooks применить ставку налогового кода, а в США адрес клиента; журнал сообщает о расхождении итогов.",
  728. "taxAmountsBilled": "Как в счёте Torqvoice",
  729. "taxAmountsQuickbooks": "Рассчитывает QuickBooks",
  730. "taxCodeId": "Налоговый код для облагаемых счетов",
  731. "taxCodeIdHelp": "QuickBooks учитывает налог по налоговому коду. Torqvoice подбирает код со ставкой каждого счёта; этот используется, когда подходящего нет. Компания в США использует TAX, если не выбрать другой код.",
  732. "zeroTaxCodeId": "Налоговый код для счетов без налога",
  733. "zeroTaxCodeIdHelp": "Используется, когда в счёте нет налога или клиент освобождён от него. Компания в США использует NON, если не выбрать другой код.",
  734. "pushPayments": "Записывать платежи в QuickBooks",
  735. "depositAccountId": "Зачислять платежи на",
  736. "depositAccountIdHelp": "Оставьте пустым, чтобы использовать Undeposited Funds.",
  737. "manualPaidAsPayment": "Записывать платёж, когда счёт отмечен оплаченным вручную",
  738. "manualPaidAsPaymentHelp": "Счёт, отмеченный в Torqvoice как оплаченный без записи платежа, получает в QuickBooks один платёж на сумму, которая там ещё числится к оплате. Выключено: он остаётся там открытым, пока не будет записан платёж.",
  739. "pullPayments": "Забирать платежи, записанные в QuickBooks",
  740. "pullPaymentsHelp": "Каждые 30 минут. Платёж, полученный в QuickBooks по счёту из Torqvoice, записывается здесь на счёт."
  741. }
  742. },
  743. "xero": {
  744. "description": "Отправляйте выставленные счета, их клиентов и платежи в Xero и получайте обратно платежи, записанные там.",
  745. "tenantHelp": "Создайте приложение типа Web app на developer.xero.com в разделе My Apps. На его странице Configuration скопируйте client id, сгенерируйте secret и добавьте URI перенаправления ниже. Чтобы платежи, записанные в Xero, приходили сразу, откройте страницу Webhooks приложения, укажите адрес вашего Torqvoice с /api/webhooks/xero в конце, отметьте Invoices и Payments и введите ключ вебхука ниже.",
  746. "fields": {
  747. "clientId": "Идентификатор клиента",
  748. "clientSecret": "Секрет клиента",
  749. "webhookKey": "Ключ вебхука",
  750. "webhookKeyHelp": "Необязательно. Ключ со страницы Webhooks вашего приложения Xero. С ним платежи, записанные в Xero, приходят сюда сразу; без него в течение 30 минут."
  751. },
  752. "settings": {
  753. "tenantId": "Организация Xero",
  754. "tenantIdHelp": "Организация, в которую записываются счета. В списке только организации, к которым вы разрешили доступ при подключении; переподключитесь, чтобы разрешить ещё одну.",
  755. "pushInvoices": "Отправлять выставленные счета в Xero",
  756. "pushOnComplete": "Также отправлять счета, когда заказ отмечен как выполненный",
  757. "pushOnCompleteHelp": "Без этого счёт уходит, когда он отправлен, передан по ссылке или оплачен. С этим выполненный заказ уходит сразу и обновляется при изменениях.",
  758. "startDate": "Только счета с датой не раньше",
  759. "startDateHelp": "Оставьте пустым, чтобы отправлять все выставленные счета. Укажите дату перехода бухгалтерии на Xero, чтобы старые счета не вводились дважды.",
  760. "invoiceStatus": "Статус в Xero",
  761. "invoiceStatusHelp": "Утверждённые счета сразу учитываются как продажи и могут принимать платежи. Выберите «Черновик» или «Ожидает утверждения», если кто-то сначала проверяет каждый счёт в Xero; тогда платежи записываются, когда счёт там утвердят.",
  762. "invoiceStatusAuthorised": "Утверждён",
  763. "invoiceStatusSubmitted": "Ожидает утверждения",
  764. "invoiceStatusDraft": "Черновик",
  765. "invoiceNumbers": "Номера счетов",
  766. "invoiceNumbersHelp": "Сохраните номер Torqvoice, чтобы обе системы совпадали, или пусть Xero нумерует счёт в своей последовательности. При нумерации Xero выберите номер счёта Torqvoice для поля Reference, чтобы находить каждый счёт.",
  767. "invoiceNumbersTorqvoice": "Использовать номер Torqvoice",
  768. "invoiceNumbersXero": "Пусть нумерует Xero",
  769. "reference": "Поле Reference",
  770. "referenceHelp": "Что попадает в поле Reference счёта в Xero. Оно видно на счёте, в списках и в поиске там.",
  771. "referenceVehicle": "Автомобиль и номер",
  772. "referenceTitle": "Название заказа",
  773. "referenceInvoiceNumber": "Номер счёта Torqvoice",
  774. "referenceNone": "Ничего",
  775. "includeVehicle": "Указывать автомобиль в счёте",
  776. "includeVehicleHelp": "Текстовая строка над позициями с годом, маркой, моделью, номером и пробегом.",
  777. "includeNotes": "Добавлять заметки для клиента",
  778. "includeNotesHelp": "Заметки для клиента из счёта, текстовой строкой под позициями.",
  779. "includePartNumbers": "Показывать артикулы в строках запчастей",
  780. "includePartNumbersHelp": "Описание каждой строки запчасти начинается с её артикула.",
  781. "brandingThemeId": "Тема оформления",
  782. "brandingThemeIdHelp": "Тема оформления (Branding theme) Xero, которую использует счёт. Она определяет его вид при просмотре или отправке из Xero. Оставьте пустым для темы организации по умолчанию.",
  783. "laborAccount": "Счёт доходов для работ",
  784. "laborAccountHelp": "Счёт продаж, на который проводятся строки работ. Оставьте пустым, чтобы использовать счёт Sales организации или счёт товара, выбранного ниже.",
  785. "partsAccount": "Счёт доходов для запчастей",
  786. "partsAccountHelp": "Счёт продаж, на который проводятся строки запчастей. Оставьте пустым, чтобы использовать счёт Sales организации или счёт товара, выбранного ниже.",
  787. "shopFeeAccount": "Счёт доходов для сбора мастерской",
  788. "shopFeeAccountHelp": "Сюда попадает строка сбора мастерской. Оставьте пустым, чтобы проводить его вместе с работами.",
  789. "laborItem": "Товар для строк работ",
  790. "laborItemHelp": "Необязательно. Товар Xero, которым помечается каждая строка работ, для отчётов по товарам в Xero. Выбранный выше счёт всё равно имеет приоритет.",
  791. "partsItem": "Товар для строк запчастей",
  792. "partsItemHelp": "Необязательно. Товар Xero, которым помечается каждая строка запчастей, для отчётов по товарам в Xero. Выбранный выше счёт всё равно имеет приоритет.",
  793. "matchItemsByPartNumber": "Сопоставлять запчасти с товарами Xero по артикулу",
  794. "matchItemsByPartNumberHelp": "Запчасть, артикул которой совпадает с кодом товара в Xero, продаётся как этот товар, и остаток, который ведёт Xero, уменьшается. Xero отклоняет счёт, если складского товара не хватает в наличии.",
  795. "taxAmounts": "Суммы налога",
  796. "taxAmountsHelp": "Как в счёте передаёт налог каждой строки ровно таким, каким он указан в счёте клиента, поэтому обе системы сходятся до копейки. Рассчитывает Xero позволяет Xero применить ставку налога каждой строки; журнал сообщает о расхождении итогов.",
  797. "taxAmountsBilled": "Как в счёте Torqvoice",
  798. "taxAmountsXero": "Рассчитывает Xero",
  799. "taxType": "Налоговая ставка для облагаемых строк",
  800. "taxTypeHelp": "Torqvoice выбирает налоговую ставку Xero, процент которой соответствует каждому счёту, например GST on Income. Выберите ставку здесь, чтобы всегда использовать её.",
  801. "zeroTaxType": "Налоговая ставка для строк без налога",
  802. "zeroTaxTypeHelp": "Используется для строк без налога и для клиентов, освобождённых от налога. Оставьте пустым, чтобы использовать GST Free Income, Zero Rated или No GST, смотря что есть в организации.",
  803. "tracking1": "Опция отслеживания",
  804. "tracking1Help": "Каждая строка помечается опцией отслеживания (Tracking в Xero), например филиалом или отделом, для отчётов в Xero.",
  805. "tracking2": "Вторая опция отслеживания",
  806. "tracking2Help": "Опция из другой категории отслеживания, если в организации их две.",
  807. "sendFromXero": "Отправлять клиенту счёт по электронной почте из Xero",
  808. "sendFromXeroHelp": "Xero отправляет свою копию счёта на электронную почту клиента со способами онлайн-оплаты, настроенными в Xero. Выключите это, если счёт уже отправляет Torqvoice, чтобы клиент не получил его дважды.",
  809. "markAsSent": "Отмечать счета в Xero как отправленные",
  810. "markAsSentHelp": "Счёт доставляет Torqvoice, поэтому Xero показывает его как отправленный, а не ждёт, пока его отправят оттуда. Относится к утверждённым счетам.",
  811. "attachPdf": "Прикреплять PDF счёта",
  812. "attachPdfHelp": "Счёт, который клиент получил от Torqvoice, прикрепляется к счёту в Xero.",
  813. "updateContacts": "Обновлять данные клиентов в Xero",
  814. "updateContactsHelp": "Изменение имени, электронной почты, телефона, адреса или ИНН клиента здесь копируется в его контакт в Xero. Выключено: контакты только создаются, а затем остаются такими, какими их ведёт бухгалтер.",
  815. "voidOnDelete": "Аннулировать счёт в Xero, когда заказ удалён здесь",
  816. "voidOnDeleteHelp": "Счёт с платежами в Xero никогда не аннулируется; журнал сообщает, что его оставили без изменений.",
  817. "pushPayments": "Записывать платежи в Xero",
  818. "paymentAccount": "Зачислять платежи на",
  819. "paymentAccountHelp": "Банковский счёт в Xero, на который зачисляются платежи, записанные в Torqvoice. Оставьте пустым, чтобы использовать первый банковский счёт.",
  820. "cashAccount": "Зачислять наличные на",
  821. "cardAccount": "Зачислять оплату картой на",
  822. "transferAccount": "Зачислять банковские переводы на",
  823. "onlineAccount": "Зачислять онлайн-платежи на",
  824. "methodAccountHelp": "Оставьте пустым, чтобы использовать счёт выше.",
  825. "onlineAccountHelp": "Платежи через Stripe, PayPal, Vipps и другие платёжные интеграции, часто на транзитный счёт. Оставьте пустым, чтобы использовать счёт выше.",
  826. "manualPaidAsPayment": "Записывать платёж, когда счёт отмечен оплаченным вручную",
  827. "manualPaidAsPaymentHelp": "Счёт, отмеченный в Torqvoice как оплаченный без записи платежа, получает в Xero один платёж на сумму, которая там ещё числится к оплате. Выключено: он остаётся там открытым, пока не будет записан платёж.",
  828. "pullPayments": "Забирать платежи, записанные в Xero",
  829. "pullPaymentsHelp": "Платёж, записанный в Xero по счёту из Torqvoice, записывается здесь на счёт: сразу при наличии вебхука, иначе в течение 30 минут."
  830. }
  831. },
  832. "fiken": {
  833. "description": "Отправляйте выставленные счета, их клиентов и платежи в Fiken и получайте обратно платежи, записанные там.",
  834. "tenantHelp": "Создайте приложение в Fiken в разделе Rediger konto, API для своих компаний. Укажите в приложении URI перенаправления ниже и скопируйте сюда его идентификатор клиента и секрет клиента. Компании нужен модуль API Fiken.",
  835. "fields": {
  836. "clientId": "Идентификатор клиента",
  837. "clientSecret": "Секрет клиента"
  838. },
  839. "settings": {
  840. "companySlug": "Компания в Fiken",
  841. "companySlugHelp": "Компания, в учёт которой попадают счета. У вашего пользователя Fiken может быть доступ к нескольким.",
  842. "pushInvoices": "Отправлять выставленные счета в Fiken",
  843. "pushOnComplete": "Также отправлять счета, когда заказ отмечен как выполненный",
  844. "pushOnCompleteHelp": "Без этого счёт уходит, когда он отправлен, передан по ссылке или оплачен. С этим выполненный заказ уходит сразу и обновляется при изменениях.",
  845. "startDate": "Только счета с датой не раньше",
  846. "startDateHelp": "Оставьте пустым, чтобы отправлять все выставленные счета. Укажите дату перехода бухгалтерии на Fiken, чтобы старые счета не вводились дважды.",
  847. "attachPdf": "Прикреплять PDF счёта",
  848. "attachPdfHelp": "Счёт попадает в Fiken как продажа (Annet salg) под своим номером из Torqvoice. Если включено, PDF, который получил клиент, сохраняется при продаже как первичный документ.",
  849. "laborAccount": "Счёт доходов для работ",
  850. "laborAccountHelp": "Оставьте пустым, чтобы использовать 3000.",
  851. "partsAccount": "Счёт доходов для запчастей",
  852. "partsAccountHelp": "Оставьте пустым, чтобы использовать 3000.",
  853. "zeroVatType": "Тип НДС для счетов без НДС",
  854. "zeroVatTypeHelp": "Как Fiken проводит продажу без НДС. Компании, не зарегистрированной как плательщик НДС, здесь ничего выбирать не нужно. Зарегистрированная должна выбрать до отправки такого счёта; уточните у бухгалтера, какой тип применяется.",
  855. "vatNone": "Нет (без учёта НДС)",
  856. "vatExempt": "Освобождено (fritatt)",
  857. "vatOutside": "Вне сферы НДС (utenfor)",
  858. "vatExport": "Освобождено, экспорт",
  859. "vatReverse": "Освобождено, обратное начисление",
  860. "zeroAccount": "Счёт доходов для счетов без НДС",
  861. "zeroAccountHelp": "Оставьте пустым, чтобы использовать счета для работ и запчастей выше. Если Fiken отклонит счёт с этим типом НДС, причина будет в журнале активности.",
  862. "pushPayments": "Записывать платежи в Fiken",
  863. "paymentAccount": "Зачислять платежи на",
  864. "paymentAccountHelp": "Оставьте пустым, чтобы использовать первый банковский счёт компании.",
  865. "manualPaidAsPayment": "Записывать платёж, когда счёт отмечен оплаченным вручную",
  866. "manualPaidAsPaymentHelp": "Счёт, отмеченный в Torqvoice как оплаченный без записи платежа, получает в Fiken один платёж на сумму, которая там ещё числится к оплате. Выключено: он остаётся там открытым, пока не будет записан платёж.",
  867. "pullPayments": "Забирать платежи, записанные в Fiken",
  868. "pullPaymentsHelp": "Каждые 30 минут. Платёж, полученный в Fiken по счёту из Torqvoice, записывается здесь на счёт."
  869. }
  870. },
  871. "nhtsa": {
  872. "description": "Заполните автомобиль по VIN и смотрите отзывные кампании, жалобы владельцев и рейтинги краш-тестов для каждого модельного года от американского ведомства безопасности. Бесплатно, без ключа.",
  873. "fields": {},
  874. "settings": {
  875. "refreshFleet": "Поддерживать актуальные данные об отзывах и жалобах для каждого автомобиля этой мастерской",
  876. "refreshFleetHelp": "Раз в день модели, не обновлявшиеся за последнюю неделю, запрашиваются заново, чтобы страница автомобиля никогда не ждала, а новая отзывная кампания появлялась в течение недели. Отправляются только марка, модель и год."
  877. }
  878. },
  879. "openlaborproject": {
  880. "description": "Находите нормы времени и объёмы жидкостей для автомобиля из заказ-наряда или сметы и добавляйте часы работы строкой работ одним щелчком. Большая часть данных относится к автомобилям американского рынка, а справочник показывает, к какому рынку относится каждый запрос. Для каждого значения указано, насколько Open Labor Project в нём уверен, и многие из них оценки ИИ, поэтому проверьте их, прежде чем называть клиенту цену. Запросы используют собственный API-ключ мастерской. На платном тарифе Open Labor Project найденный однажды автомобиль хранится, пока действует тариф, поэтому повторный поиск не расходует запрос.",
  881. "fields": {
  882. "apiKey": "API-ключ",
  883. "apiKeyHelp": "Запросите ключ на openlaborproject.com в разделе Developers; он придёт по электронной почте. Бесплатный ключ даёт 10 запросов в день и показывает часы по одной работе. Тариф Builder и выше повышает лимит и показывает часы всех работ сразу.",
  884. "apiKeyServerHelp": "Оставьте поле пустым, чтобы использовать ключ этого сервера, или вставьте свой ключ с openlaborproject.com, чтобы использовать собственный тариф."
  885. },
  886. "settings": {
  887. "minConfidence": "Показывать нормы начиная с",
  888. "minConfidenceHelp": "Скрывает нормы, в которых источник менее уверен. Многие нормы для европейских марок оценки ИИ, поэтому строгий выбор может оставить мало работ.",
  889. "confidenceAll": "Любой уровень надёжности",
  890. "confidenceMedium": "Средняя и выше",
  891. "confidenceHigh": "Проверено и выше",
  892. "confidenceOem": "Только OEM",
  893. "hoursFrom": "Добавляемые часы",
  894. "hoursFromHelp": "Какое значение попадает в заказ-наряд: норма времени или верхняя граница диапазона, который даёт Open Labor Project (например, 1,6 ч вместо 1,2 ч). Верхняя граница оставляет запас для работ, которые затягиваются.",
  895. "hoursBook": "Норма времени",
  896. "hoursHigh": "Верхняя граница диапазона",
  897. "adjustPercent": "Изменить нормы на (%)",
  898. "adjustPercentHelp": "Процент, который прибавляется к каждой норме перед добавлением в заказ-наряд: 10 превращает 1,2 ч в 1,32 ч, -10 в 1,08 ч. От -50 до 200.",
  899. "rounding": "Округлять часы вверх до",
  900. "roundingHelp": "Округляет часы каждой работы вверх после изменения: при шаге 0,25 из 1,32 ч получается 1,5 ч. Время, которое уже попадает на шаг, остаётся прежним.",
  901. "roundNone": "Не округлять",
  902. "roundTenth": "0,1 часа",
  903. "roundQuarter": "0,25 часа",
  904. "roundHalf": "0,5 часа",
  905. "fluids": "Показывать данные о жидкостях",
  906. "fluidsHelp": "Добавляет вкладку «Жидкости» с объёмами, спецификациями и интервалами замены. Её открытие расходует отдельный запрос.",
  907. "units": "Единицы для жидкостей",
  908. "unitsHelp": "Единицы, в которых показаны объёмы и интервалы замены.",
  909. "unitsBoth": "Обе",
  910. "unitsMetric": "Метрические (L, km)",
  911. "unitsUs": "США (qt, mi)"
  912. }
  913. },
  914. "speech-to-text": {
  915. "name": "Речь в текст",
  916. "description": "Диктовка в заказ-наряде, которую записывает речевая модель, а не браузер: гораздо точнее, на любом языке и со словами мастерской. Работает отдельно от вашего провайдера ИИ, так что его можно оставить как есть. Использует ваш собственный ключ OpenAI или ваш собственный сервер с API распознавания речи в стиле OpenAI. Запись отправляется на расшифровку и не сохраняется.",
  917. "fields": {
  918. "apiKey": "API-ключ",
  919. "apiKeyHelp": "Ключ OpenAI с platform.openai.com из раздела API keys; OpenAI берёт плату за использование поминутно. Для собственного сервера нужен, только если сервер его требует.",
  920. "baseUrl": "Адрес сервера",
  921. "baseUrlHelp": "Оставьте пустым, чтобы использовать OpenAI. Для собственного сервера (локальный Whisper, LocalAI, Groq) укажите, где начинается его API в стиле OpenAI, включая путь, например /v1. Torqvoice добавляет к нему /audio/transcriptions."
  922. },
  923. "settings": {
  924. "model": "Модель",
  925. "modelHelp": "Какую речевую модель запрашивать. gpt-4o-mini-transcribe точная и недорогая; gpt-4o-transcribe крупнее. Собственный сервер обычно отвечает на whisper-1.",
  926. "mode": "Кто выбирает, как записывается диктовка",
  927. "modeHelp": "Браузер пишет по ходу речи, но хуже, особенно на небольших языках. Речевая модель пишет, когда вы замолчите.",
  928. "modeAi": "Всегда речевая модель",
  929. "modeChoice": "Каждый выбирает сам: речевая модель или браузер"
  930. }
  931. },
  932. "s3": {
  933. "name": "Облачный бакет",
  934. "description": "Зашифрованные резервные копии этой мастерской в ваш собственный бакет в Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, Hetzner Object Storage или любом другом S3-совместимом хранилище по выбранному вами расписанию. После первого запуска загружаются только изменения, поэтому ежечасные копии остаются дешёвыми.",
  935. "fields": {
  936. "accessKeyId": "Идентификатор ключа доступа",
  937. "accessKeyIdHelp": "Ключ вашего поставщика хранилища с правом просматривать список, читать, записывать и удалять объекты в бакете. Создайте отдельный ключ только для Torqvoice, чтобы его можно было отозвать независимо.",
  938. "secretAccessKey": "Секретный ключ доступа",
  939. "password": "Пароль резервных копий",
  940. "passwordHelp": "Каждая резервная копия шифруется этим паролем. Придумайте его или нажмите «Сгенерировать» и сохраните копию не на этом сервере: без него никто не сможет открыть эти резервные копии, даже Torqvoice. Чтобы снова подключить хранилище, в котором уже есть резервные копии Torqvoice, введите пароль, с которым они были созданы.",
  941. "endpoint": "Свой адрес (endpoint)",
  942. "endpointHelp": "Только для варианта «Другое S3-совместимое хранилище»: S3-адрес вашего собственного хранилища, например сервера MinIO, в виде имени хоста, при необходимости с портом."
  943. },
  944. "settings": {
  945. "provider": "Поставщик",
  946. "providerAws": "Amazon S3",
  947. "providerR2": "Cloudflare R2",
  948. "providerB2": "Backblaze B2",
  949. "providerWasabi": "Wasabi",
  950. "providerHetzner": "Hetzner Object Storage",
  951. "providerOther": "Другое S3-совместимое хранилище",
  952. "region": "Регион",
  953. "regionHelp": "Где находится бакет. Выберите его из списка поставщика; для другого хранилища введите значение, которое оно ожидает, если оно его требует. Cloudflare R2 его не использует.",
  954. "accountId": "Идентификатор аккаунта Cloudflare",
  955. "accountIdHelp": "32-символьный идентификатор на странице обзора R2 в панели управления Cloudflare.",
  956. "bucket": "Бакет",
  957. "bucketHelp": "Список бакетов появляется, как только введён ключ. Если ключу разрешено работать с одним бакетом, но не получать их список, введите его имя.",
  958. "prefix": "Папка в бакете",
  959. "prefixHelp": "Резервные копии хранятся в этой папке. Для каждой мастерской, которая использует тот же бакет, укажите отдельную папку.",
  960. "frequency": "Как часто",
  961. "frequencyHourly": "Каждый час",
  962. "frequencyEvery4h": "Каждые 4 часа",
  963. "frequencyDaily": "Каждый день",
  964. "frequencyWeekly": "Каждую неделю",
  965. "frequencyMonthly": "Каждый месяц",
  966. "time": "Время",
  967. "timeHelp": "По часам мастерской, в формате HH:MM. Используется для ежедневных, еженедельных и ежемесячных копий.",
  968. "weekday": "День недели",
  969. "sunday": "Воскресенье",
  970. "monday": "Понедельник",
  971. "tuesday": "Вторник",
  972. "wednesday": "Среда",
  973. "thursday": "Четверг",
  974. "friday": "Пятница",
  975. "saturday": "Суббота",
  976. "monthDay": "День месяца",
  977. "monthDayLast": "Последний день",
  978. "contents": "Содержимое",
  979. "contentsHelp": "К секретным ключам относятся ключи, которые эта мастерская ввела в Torqvoice: ключи платежей, ИИ и вебхуков. В любом случае каждая резервная копия шифруется паролем резервных копий. Резервная копия содержит записи мастерской и, если выбрано, её файлы. Учётных записей пользователей и паролей в ней нет: на новом сервере вы входите, приглашаете команду и восстанавливаете данные в эту мастерскую.",
  980. "contentsData": "Только данные",
  981. "contentsDataAndSecrets": "Данные и секретные ключи",
  982. "includeFiles": "Включить фото и файлы",
  983. "includeFilesHelp": "Каждый файл загружается один раз и повторно используется последующими копиями, поэтому после первого запуска это стоит недорого.",
  984. "keepHourly": "Хранить ежечасные копии",
  985. "keepHourlyHelp": "Сколько последних ежечасных копий хранить. Имеет значение только для расписаний «каждый час» и «каждые 4 часа».",
  986. "keepDaily": "Хранить ежедневные копии",
  987. "keepWeekly": "Хранить еженедельные копии",
  988. "keepMonthly": "Хранить ежемесячные копии",
  989. "keepMonthlyHelp": "После каждого запуска старые копии удаляются, а самые новые копии каждого вида остаются. Укажите 0, чтобы не хранить копии этого вида."
  990. }
  991. },
  992. "local-folder": {
  993. "name": "Локальная папка",
  994. "description": "Зашифрованные резервные копии этой мастерской в папку на этом сервере: том для резервных копий из файла compose или подключённый туда сетевой диск. Копия на том же диске, что и база данных, сама по себе не защищена; используйте её вместе с хранилищем в другом месте.",
  995. "fields": {
  996. "password": "Пароль резервных копий",
  997. "passwordHelp": "Каждая резервная копия шифруется этим паролем. Придумайте его или нажмите «Сгенерировать» и сохраните копию не на этом сервере: без него никто не сможет открыть эти резервные копии, даже Torqvoice. Чтобы снова подключить хранилище, в котором уже есть резервные копии Torqvoice, введите пароль, с которым они были созданы."
  998. },
  999. "settings": {
  1000. "folder": "Папка",
  1001. "folderHelp": "Папка в корневом каталоге резервных копий сервера, где хранятся резервные копии этой мастерской. Оставьте пустым, чтобы использовать папку с именем этой мастерской. На новом сервере введите имя папки, которую использовала прежняя установка, чтобы вернуть её резервные копии.",
  1002. "frequency": "Как часто",
  1003. "frequencyHourly": "Каждый час",
  1004. "frequencyEvery4h": "Каждые 4 часа",
  1005. "frequencyDaily": "Каждый день",
  1006. "frequencyWeekly": "Каждую неделю",
  1007. "frequencyMonthly": "Каждый месяц",
  1008. "time": "Время",
  1009. "timeHelp": "По часам мастерской, в формате HH:MM. Используется для ежедневных, еженедельных и ежемесячных копий.",
  1010. "weekday": "День недели",
  1011. "sunday": "Воскресенье",
  1012. "monday": "Понедельник",
  1013. "tuesday": "Вторник",
  1014. "wednesday": "Среда",
  1015. "thursday": "Четверг",
  1016. "friday": "Пятница",
  1017. "saturday": "Суббота",
  1018. "monthDay": "День месяца",
  1019. "monthDayLast": "Последний день",
  1020. "contents": "Содержимое",
  1021. "contentsHelp": "К секретным ключам относятся ключи, которые эта мастерская ввела в Torqvoice: ключи платежей, ИИ и вебхуков. В любом случае каждая резервная копия шифруется паролем резервных копий. Резервная копия содержит записи мастерской и, если выбрано, её файлы. Учётных записей пользователей и паролей в ней нет: на новом сервере вы входите, приглашаете команду и восстанавливаете данные в эту мастерскую.",
  1022. "contentsData": "Только данные",
  1023. "contentsDataAndSecrets": "Данные и секретные ключи",
  1024. "includeFiles": "Включить фото и файлы",
  1025. "includeFilesHelp": "Каждый файл загружается один раз и повторно используется последующими копиями, поэтому после первого запуска это стоит недорого.",
  1026. "keepHourly": "Хранить ежечасные копии",
  1027. "keepHourlyHelp": "Сколько последних ежечасных копий хранить. Имеет значение только для расписаний «каждый час» и «каждые 4 часа».",
  1028. "keepDaily": "Хранить ежедневные копии",
  1029. "keepWeekly": "Хранить еженедельные копии",
  1030. "keepMonthly": "Хранить ежемесячные копии",
  1031. "keepMonthlyHelp": "После каждого запуска старые копии удаляются, а самые новые копии каждого вида остаются. Укажите 0, чтобы не хранить копии этого вида."
  1032. }
  1033. },
  1034. "torqvoice-codes": {
  1035. "description": "Узнайте, что означает код неисправности на автомобиле перед вами, на вашем языке: значение, вероятные причины и связанные коды. Введите или вставьте коды в заказ-наряд, и они станут наблюдениями с сохранённым значением, так что печать и история никогда не ждут соединения. Работает на стороне Torqvoice и входит во все облачные тарифы. Запрос передаёт только марку, модель, год и двигатель, но никогда VIN, госномер или клиента.",
  1036. "fields": {
  1037. "apiToken": "Ключ доступа",
  1038. "apiTokenHelp": "Ключ, который Torqvoice выдал вам для сервиса кодов."
  1039. },
  1040. "settings": {}
  1041. }
  1042. },
  1043. "jobKinds": {
  1044. "calendar": {
  1045. "push": "Заказы в календарь",
  1046. "pull": "Занятое время из календаря"
  1047. },
  1048. "conference": {
  1049. "sync": "Ссылки на видеозвонки"
  1050. },
  1051. "inspection": {
  1052. "refresh": "Обновление сроков техосмотра"
  1053. },
  1054. "accounting": {
  1055. "invoice": "Счёт в бухгалтерию",
  1056. "payment": "Платёж в бухгалтерию",
  1057. "customer": "Клиент в бухгалтерию",
  1058. "pull": "Платежи из бухгалтерии"
  1059. },
  1060. "safety": {
  1061. "refresh": "Обновление данных об отзывных кампаниях",
  1062. "vehicle": "Проверка отзывных кампаний для нового автомобиля"
  1063. },
  1064. "repair": {
  1065. "checkPlan": "Проверка, можно ли хранить сохранённые запросы"
  1066. }
  1067. },
  1068. "backupAlerts": {
  1069. "destination": "место назначения резервных копий",
  1070. "failedTitle": "Резервное копирование не удалось",
  1071. "failedMessage": "Резервное копирование в {name} не завершилось: {reason}",
  1072. "failedSubject": "Резервное копирование в {name} не удалось",
  1073. "failedEmailIntro": "Плановое резервное копирование вашей мастерской в {name} не завершилось.",
  1074. "openToRetry": "Откройте Настройки, Интеграции, {name}, чтобы посмотреть запуск и попробовать снова.",
  1075. "overdueTitle": "Резервное копирование просрочено",
  1076. "overdueSince": "С {time} ни одно резервное копирование в {name} не завершилось.",
  1077. "overdueNever": "Ни одно резервное копирование в {name} ещё не завершилось.",
  1078. "overdueSubject": "Резервное копирование в {name} просрочено",
  1079. "openToSee": "Откройте Настройки, Интеграции, {name}, чтобы узнать, что пошло не так.",
  1080. "platformName": "Резервные копии от Torqvoice",
  1081. "restoredTitle": "Мастерская восстановлена",
  1082. "restoredSubject": "Ваша мастерская восстановлена из резервной копии",
  1083. "restoredIntro": "{name}: {time} мастерская была возвращена к точке восстановления {snapshot}. Всего, что было внесено после этой точки, в мастерской больше нет.",
  1084. "restoredByMember": "Это восстановление запросил участник вашей мастерской.",
  1085. "restoredBySupport": "Служба поддержки Torqvoice сделала это по вашей просьбе. Указанная причина: {reason}",
  1086. "noReason": "не указана",
  1087. "restoredUndo": "Перед этим была создана страховочная копия мастерской в том виде, в каком она была непосредственно перед восстановлением; она хранится 90 дней. Чтобы вернуться к ней, обратитесь в службу поддержки."
  1088. },
  1089. "aiErrors": {
  1090. "modelAccess": "У этого API-ключа нет доступа к выбранной модели. Выберите другую в разделе Настройки → Интеграции.",
  1091. "spendLimit": "Этот аккаунт OpenAI достиг лимита расходов. Проверьте лимиты на platform.openai.com.",
  1092. "noCredit": "На этом аккаунте OpenAI закончились средства. Добавьте способ оплаты на platform.openai.com.",
  1093. "keyRejected": "Поставщик ИИ отклонил API-ключ. Проверьте его в разделе Настройки → Интеграции.",
  1094. "noUsableCredit": "Поставщик ИИ сообщает, что у этого API-ключа нет доступных средств.",
  1095. "modelUnavailable": "Поставщик ИИ не предлагает выбранную модель. Выберите другую в разделе Настройки → Интеграции.",
  1096. "imageTooLarge": "Изображение слишком большое для поставщика ИИ.",
  1097. "rateLimited": "Поставщик ИИ ограничивает запросы с этого API-ключа. Попробуйте ещё раз чуть позже.",
  1098. "providerDown": "Поставщик ИИ сейчас недоступен. Попробуйте ещё раз чуть позже.",
  1099. "unexpected": "Поставщик ИИ вернул неожиданный ответ."
  1100. }
  1101. }