integrations.json 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
  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. "searchPlaceholder": "Поиск интеграций",
  17. "noMatches": "Ничего не найдено по запросу «{query}».",
  18. "readMore": "Подробнее",
  19. "suggestTitle": "Не хватает сервиса, которым вы пользуетесь?",
  20. "suggestDescription": "Расскажите, какая интеграция помогла бы вашему автосервису, и мы её рассмотрим.",
  21. "suggest": "Предложить интеграцию",
  22. "suggestSubject": "Предложение интеграции"
  23. },
  24. "categories": {
  25. "calendar": "Календарь",
  26. "conferencing": "Видеозвонки",
  27. "accounting": "Бухгалтерия",
  28. "messaging": "Сообщения",
  29. "payments": "Платежи",
  30. "automation": "Автоматизация",
  31. "storage": "Файлы",
  32. "registry": "Реестр транспортных средств",
  33. "other": "Другое",
  34. "ai": "ИИ"
  35. },
  36. "capabilities": {
  37. "calendar": {
  38. "push": "Заказ-наряды в календарь",
  39. "pull": "Занятое время из календаря",
  40. "conference": "Ссылки на видеозвонки"
  41. },
  42. "sms": {
  43. "send": "Исходящие SMS",
  44. "receive": "Входящие ответы"
  45. },
  46. "whatsapp": {
  47. "send": "Исходящие сообщения WhatsApp",
  48. "receive": "Входящие ответы"
  49. },
  50. "telegram": {
  51. "send": "Исходящие сообщения Telegram",
  52. "receive": "Входящие ответы"
  53. },
  54. "email": {
  55. "send": "Исходящая почта"
  56. },
  57. "vehicle": {
  58. "lookup": "Поиск по номеру и VIN",
  59. "inspection": "Сроки техосмотра",
  60. "safety": "Отзывные кампании и жалобы владельцев"
  61. },
  62. "ai": {
  63. "chat": "Тексты и сводки",
  64. "transcribe": "Диктовка"
  65. },
  66. "payments": {
  67. "checkout": "Оплата по ссылке на счёт"
  68. },
  69. "accounting": {
  70. "invoices": "Счета в бухгалтерию",
  71. "customers": "Клиенты в бухгалтерию",
  72. "payments": "Платежи в обе стороны"
  73. }
  74. },
  75. "statuses": {
  76. "active": "Подключено",
  77. "error": "Требует внимания",
  78. "pending": "Идёт настройка",
  79. "disconnected": "Отключено",
  80. "needsSetup": "Настройка не завершена"
  81. },
  82. "connection": {
  83. "back": "Все интеграции",
  84. "account": "Подключённый аккаунт",
  85. "lastHealth": "Последняя проверка",
  86. "lastSync": "Последняя синхронизация",
  87. "lastError": "Последний запуск завершился ошибкой",
  88. "setupMissingTitle": "Настройка не завершена",
  89. "setupMissing": "Выберите {fields} в настройках ниже. До тех пор ничего не синхронизируется.",
  90. "connected": "{name} подключено.",
  91. "connectedShort": "Подключено",
  92. "connectWith": "Подключить {name}",
  93. "connect": "Подключить",
  94. "reconnect": "Переподключить",
  95. "disconnect": "Отключить",
  96. "disconnectTitle": "Отключить {name}?",
  97. "disconnectDescription": "Torqvoice забывает аккаунт и перестаёт им пользоваться. Всё, что уже отправлено в {name} или хранится там, не затрагивается.",
  98. "disconnectDescriptionCalendar": "Torqvoice забывает аккаунт и перестаёт синхронизировать. Заказ-наряды, уже добавленные в {name}, остаются там. Занятое время, показанное из этого календаря, удаляется из календаря Torqvoice.",
  99. "disconnectDescriptionConferencing": "Torqvoice забывает аккаунт и перестаёт создавать встречи. Уже созданные встречи остаются в {name}, а ссылки в заказ-нарядах сохраняются.",
  100. "disconnectDescriptionAccounting": "Torqvoice забывает аккаунт и перестаёт отправлять и читать. Счета, клиенты и платежи, уже находящиеся в {name}, остаются там.",
  101. "removeSetup": "Удалить",
  102. "removeSetupTitle": "Удалить {name}?",
  103. "removeSetupDescription": "Пока ничего не подключено. Torqvoice забудет введённые данные, и {name} вернётся в список доступных сервисов.",
  104. "removeSetupDone": "{name} удалён",
  105. "removeSetupHint": "Не будете продолжать? Удалите, и сервис вернётся в список ниже.",
  106. "disconnected": "Отключено",
  107. "test": "Проверить подключение",
  108. "testPassed": "Подключение работает",
  109. "syncNow": "Синхронизировать сейчас",
  110. "syncQueued": "Синхронизация поставлена в очередь и запустится в течение минуты",
  111. "pullNow": "Получить платежи сейчас",
  112. "pullQueued": "Получение платежей поставлено в очередь и запустится в течение минуты",
  113. "backfill": "Отправить запланированные заказ-наряды",
  114. "backfillQueued": "Запланированные заказ-наряды за последнюю неделю и позже поставлены в очередь",
  115. "backfillInvoices": "Отправить выставленные счета",
  116. "backfillInvoicesQueuedCount": "В очередь поставлено {count, plural, one {# выставленный счёт} few {# выставленных счёта} many {# выставленных счетов} other {# выставленного счёта}}",
  117. "backfillInvoicesNone": "Нет выставленных счетов для отправки. Передаются только отправленные, опубликованные или оплаченные счета, начиная с даты начала, если она задана.",
  118. "retryQueued": "Задача снова поставлена в очередь",
  119. "settingsTitle": "Настройки",
  120. "settingsDescription": "Что синхронизировать и куда. Изменения применяются при следующей синхронизации.",
  121. "settingsSaved": "Настройки сохранены",
  122. "save": "Сохранить",
  123. "loading": "Загрузка...",
  124. "choose": "Выберите...",
  125. "search": "Поиск...",
  126. "noMatch": "Ничего не найдено",
  127. "leaveEmpty": "Оставить пустым",
  128. "noLimit": "Без ограничения",
  129. "planLocked": "Интеграции не входят в ваш тариф.",
  130. "lockedIntegrations": "Подключите календари, видеозвонки и другие сервисы к вашей мастерской.",
  131. "lockedPayments": "Позвольте клиентам оплачивать счета онлайн, и каждый платёж будет отражён в счёте.",
  132. "lockedAi": "Подключите провайдера ИИ, чтобы использовать функции ИИ в вашей мастерской.",
  133. "ownAppTitle": "Эта установка использует ваше собственное приложение у провайдера",
  134. "redirectUri": "URI перенаправления для регистрации у провайдера:",
  135. "sendTestEmail": "Отправить тестовое письмо",
  136. "testEmailSent": "Тестовое письмо отправлено на {email}",
  137. "testEmailHint": "Тестовое письмо уходит на ваш собственный адрес через этого провайдера и подтверждает адрес отправителя и правила отправки, чего не может проверка ключа.",
  138. "inboundUrl": "URL входящего вебхука",
  139. "inboundHintSecret": "Вставьте этот URL в настройки входящих сообщений у провайдера. В нём содержится секрет, по которому опознаётся ваша мастерская, поэтому никому его не показывайте.",
  140. "inboundHintMeta": "Укажите этот URL как callback-URL в вашем приложении Meta вместе с токеном проверки, введённым выше, и подпишитесь на messages.",
  141. "inboundHintStripe": "Добавьте этот URL в панели Stripe в разделе Developers, Webhooks с подпиской на checkout.session.completed. Затем вставьте секрет подписи, который покажет Stripe, в поле секрета вебхука здесь, чтобы уведомления можно было проверять.",
  142. "inboundHintVipps": "Укажите этот URL как callback-URL в портале Vipps MobilePay. Vipps также требует опубликованных условий продажи, они задаются в разделе Настройки, Оплата.",
  143. "inboundHintPaypal": "Добавьте этот URL в панели разработчика PayPal в разделе Webhooks с подпиской на PAYMENT.CAPTURE.COMPLETED.",
  144. "copy": "Копировать",
  145. "copied": "Скопировано",
  146. "updateKeys": "Обновить ключи",
  147. "updateKeysHint": "Последняя проверка не прошла. Введите ключи ещё раз, чтобы попробовать снова.",
  148. "inspectionSync": {
  149. "title": "Синхронизация техосмотров",
  150. "vehicles": "{count} автомобилей с номером в этой мастерской",
  151. "dueNow": "{count} будут проверены при следующем запуске",
  152. "withDate": "{count} уже имеют дату техосмотра",
  153. "lastPass": "Последний полный проход {date}",
  154. "never": "Полного прохода ещё не было",
  155. "inProgress": "Проход выполняется",
  156. "off": "Включите настройку и сохраните; до этого проход ничего не проверяет.",
  157. "syncNowHelp": "«Синхронизировать сейчас» запускает проход немедленно, не дожидаясь ежечасного. Он проверяет по 25 автомобилей и продолжает сам, пока не обработает все ожидающие. Первый проход проверяет каждый автомобиль с номером.",
  158. "confirmTitle": "Проверить автомобили сейчас?",
  159. "confirmDescription": "Сейчас {count} из {total} автомобилей с номером будут запрошены в {name}, по 25 за раз, и сохранятся сроки их техосмотра. Недавно проверенные автомобили пропускаются. Если {name} берёт плату за запрос, каждый найденный автомобиль оплачивается с вашего аккаунта.",
  160. "confirmLabel": "Проверить автомобилей: {count}",
  161. "nothingDue": "Все автомобили с номером недавно проверялись, проверять пока нечего."
  162. },
  163. "supersedes": "Подключение {next} отключит {current}. Одновременно работает только один, поэтому {current} перестанет использоваться, как только заработает {next}.",
  164. "batchRetried": "{count, plural, =0 {Нечего повторять} one {# задача снова в очереди} few {# задачи снова в очереди} many {# задач снова в очереди} other {# задачи снова в очереди}}",
  165. "advanced": "Дополнительно"
  166. },
  167. "activity": {
  168. "title": "Активность",
  169. "description": "Последние задачи и записи журнала для этого подключения.",
  170. "retry": "Повторить",
  171. "jobStatus": {
  172. "queued": "В очереди",
  173. "running": "Выполняется",
  174. "done": "Готово",
  175. "failed": "Ошибка",
  176. "dead": "Прекращено"
  177. },
  178. "jobs": "{count, plural, one {# задача} few {# задачи} many {# задач} other {# задачи}}",
  179. "counts": {
  180. "queued": "{count} в очереди",
  181. "running": "{count} выполняется",
  182. "done": "{count} готово",
  183. "failed": "{count} с ошибкой",
  184. "dead": "{count} прекращено"
  185. },
  186. "noFailures": "Ошибок нет.",
  187. "retryFailed": "Повторить неудавшиеся",
  188. "details": "Показать подробности"
  189. },
  190. "errors": {
  191. "generic": "Что-то пошло не так",
  192. "demo": "В демо-режиме интеграции подключить нельзя.",
  193. "forbidden": "Подключать интеграции может только администратор.",
  194. "unknown": "Неизвестная интеграция.",
  195. "plan": "Эта интеграция не входит в ваш тариф.",
  196. "no-client": "Для этого провайдера не настроены данные приложения.",
  197. "denied": "Вы отменили вход у провайдера.",
  198. "vendor": "Провайдер вернул ошибку. Попробуйте ещё раз.",
  199. "invalid": "Ответ провайдера был неполным. Попробуйте ещё раз.",
  200. "state": "Срок этого входа истёк, или он относится к другой сессии. Начните заново.",
  201. "exchange": "Провайдер отклонил вход. Проверьте данные приложения и попробуйте ещё раз.",
  202. "identify": "Подключено, но не удалось прочитать данные аккаунта. Попробуйте переподключиться."
  203. },
  204. "meeting": {
  205. "join": "Присоединиться к видеозвонку",
  206. "google-meet": "Google Meet",
  207. "teams": "Microsoft Teams",
  208. "zoom": "Zoom"
  209. },
  210. "calendar": {
  211. "external": "Из подключённых календарей",
  212. "busy": "Занято"
  213. },
  214. "connectors": {
  215. "google-calendar": {
  216. "description": "Добавляйте запланированные заказ-наряды в Google Calendar, прикрепляйте ссылку Google Meet и видите занятое время календаря в Torqvoice.",
  217. "tenantHelp": "Создайте OAuth-клиент в Google Cloud Console (APIs & Services → Credentials), включите Google Calendar API, добавьте указанный ниже URI перенаправления и вставьте сюда идентификатор клиента и секрет.",
  218. "fields": {
  219. "clientId": "Идентификатор клиента",
  220. "clientSecret": "Секрет клиента"
  221. },
  222. "settings": {
  223. "calendarId": "Календарь",
  224. "pushEnabled": "Добавлять запланированные заказ-наряды в этот календарь",
  225. "includeCustomer": "Включать имя и телефон клиента в событие",
  226. "addConference": "Добавлять встречу Google Meet к каждому запланированному заказу",
  227. "addConferenceHelp": "Вкл.: каждый заказ, отправленный в календарь, получает встречу Google Meet, а ссылка показывается в заказе. Выкл.: добавьте встречу Google Meet к отдельному заказу с его страницы. В любом случае клиент получает ссылку только когда вы её отправите.",
  228. "pullEnabled": "Показывать занятое время этого календаря в календаре Torqvoice",
  229. "pullEnabledHelp": "Только чтение. Обновляется каждые 15 минут: неделя назад и два месяца вперёд."
  230. }
  231. },
  232. "microsoft-365": {
  233. "description": "Добавляйте запланированные заказ-наряды в календарь Outlook, прикрепляйте ссылку Microsoft Teams и видите занятое время календаря в Torqvoice.",
  234. "tenantHelp": "Зарегистрируйте приложение в Microsoft Entra (App registrations), разрешите личные и рабочие аккаунты, добавьте указанный ниже URI перенаправления как платформу Web, создайте секрет клиента и вставьте сюда оба значения.",
  235. "fields": {
  236. "clientId": "Идентификатор приложения (клиента)",
  237. "clientSecret": "Секрет клиента"
  238. },
  239. "settings": {
  240. "calendarId": "Календарь",
  241. "pushEnabled": "Добавлять запланированные заказ-наряды в этот календарь",
  242. "includeCustomer": "Включать имя и телефон клиента в событие",
  243. "addConference": "Добавлять встречу Microsoft Teams к каждому запланированному заказу",
  244. "addConferenceHelp": "Вкл.: каждый заказ, отправленный в календарь, получает встречу Microsoft Teams, а ссылка показывается в заказе. Выкл.: добавьте встречу Microsoft Teams к отдельному заказу с его страницы. В любом случае клиент получает ссылку только когда вы её отправите.",
  245. "pullEnabled": "Показывать занятое время этого календаря в календаре Torqvoice",
  246. "pullEnabledHelp": "Только чтение. Обновляется каждые 15 минут: неделя назад и два месяца вперёд."
  247. }
  248. },
  249. "zoom": {
  250. "description": "Добавьте встречу Zoom к запланированному заказ-наряду и держите ссылку на нём: для удалённой диагностики или разбора результатов с клиентом.",
  251. "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 и секрет.",
  252. "fields": {
  253. "clientId": "Client ID",
  254. "clientSecret": "Секрет клиента"
  255. },
  256. "settings": {
  257. "autoCreate": "Автоматически создавать встречу Zoom для каждого запланированного заказ-наряда",
  258. "autoCreateHelp": "Выкл.: вы сами добавляете видеозвонок к заказ-наряду на его странице. Вкл.: каждый заказ-наряд с временем начала получает встречу, которая переносится при изменении расписания и удаляется при отмене. В любом случае клиент получает ссылку, только когда вы её отправите.",
  259. "includeCustomer": "Указывать имя клиента в теме встречи",
  260. "joinBeforeHost": "Разрешить клиенту входить раньше вас",
  261. "waitingRoom": "Использовать зал ожидания"
  262. }
  263. },
  264. "twilio-sms": {
  265. "description": "Отправляйте и получайте SMS через номер Twilio: напоминания, сообщения о готовности автомобиля и ответы клиентов.",
  266. "fields": {
  267. "accountSid": "Account SID",
  268. "authToken": "Токен авторизации"
  269. },
  270. "settings": {
  271. "phoneNumber": "Отправлять с этого номера"
  272. }
  273. },
  274. "vonage-sms": {
  275. "description": "Отправляйте и получайте SMS через номер Vonage.",
  276. "fields": {
  277. "apiKey": "API-ключ",
  278. "apiSecret": "API-секрет",
  279. "signatureSecret": "Секрет подписи",
  280. "signatureSecretHelp": "В панели Vonage, в разделе API settings. Если он задан, входящие сообщения принимаются, только когда они подписаны Vonage. Без него проверяется только секрет в URL вебхука."
  281. },
  282. "settings": {
  283. "phoneNumber": "Отправлять с этого номера"
  284. }
  285. },
  286. "telnyx-sms": {
  287. "description": "Отправляйте и получайте SMS через номер Telnyx.",
  288. "fields": {
  289. "apiKey": "API-ключ",
  290. "webhookPublicKey": "Открытый ключ вебхука",
  291. "webhookPublicKeyHelp": "На портале Telnyx, в разделе Account settings, Keys and credentials, Public key. Если он задан, входящие сообщения принимаются, только когда они подписаны Telnyx. Без него проверяется только секрет в URL вебхука."
  292. },
  293. "settings": {
  294. "phoneNumber": "Отправлять с этого номера"
  295. }
  296. },
  297. "whatsapp-meta": {
  298. "description": "Пишите клиентам в WhatsApp напрямую через Meta: фото того, что вы нашли, и последующая переписка.",
  299. "fields": {
  300. "phoneNumberId": "ID номера телефона",
  301. "accessToken": "Токен доступа",
  302. "verifyToken": "Токен проверки вебхука",
  303. "appSecret": "Секрет приложения",
  304. "apiVersion": "Версия Graph API",
  305. "appSecretHelp": "Meta подписывает им каждую доставку. Пока он не введён, сообщения, отправленные на вебхук, отклоняются, иначе любой, кто узнает URL, смог бы писать от имени ваших клиентов."
  306. },
  307. "settings": {
  308. "enabled": "Отправлять сообщения по этому каналу",
  309. "phoneNumber": "Отправлять с этого номера",
  310. "templateName": "Шаблон для возобновления беседы",
  311. "templateLanguage": "Язык шаблона",
  312. "templateVariables": "Значения шаблона по порядку",
  313. "mediaTemplateName": "Шаблон для сообщения с фото",
  314. "mediaTemplateLanguage": "Язык шаблона с фото",
  315. "mediaTemplateVariables": "Значения шаблона с фото по порядку"
  316. }
  317. },
  318. "whatsapp-twilio": {
  319. "description": "Пишите клиентам в WhatsApp через номер Twilio, если номер вам продал Twilio.",
  320. "fields": {
  321. "accountSid": "Account SID",
  322. "authToken": "Токен авторизации",
  323. "messagingServiceSid": "Messaging service SID"
  324. },
  325. "settings": {
  326. "enabled": "Отправлять сообщения по этому каналу",
  327. "phoneNumber": "Отправлять с этого номера",
  328. "templateName": "Шаблон для возобновления беседы",
  329. "templateLanguage": "Язык шаблона",
  330. "templateVariables": "Значения шаблона по порядку",
  331. "mediaTemplateName": "Шаблон для сообщения с фото",
  332. "mediaTemplateLanguage": "Язык шаблона с фото",
  333. "mediaTemplateVariables": "Значения шаблона с фото по порядку"
  334. }
  335. },
  336. "telegram": {
  337. "description": "Бот Telegram, который связывается с клиентами, пользующимися им, и приносит их ответы во входящие.",
  338. "fields": {
  339. "botToken": "Токен бота"
  340. },
  341. "settings": {
  342. "enabled": "Отправлять сообщения по этому каналу",
  343. "botUsername": "Имя пользователя бота"
  344. }
  345. },
  346. "smtp": {
  347. "description": "Отправляйте счета и напоминания через собственный почтовый сервер, а не через почту платформы.",
  348. "fields": {
  349. "host": "Сервер",
  350. "port": "Порт",
  351. "user": "Имя пользователя",
  352. "pass": "Пароль"
  353. },
  354. "settings": {
  355. "fromEmail": "Отправлять с этого адреса",
  356. "fromName": "Имя отправителя",
  357. "secure": "Подключаться по TLS с самого начала",
  358. "requireTls": "Требовать перехода сервера на TLS",
  359. "rejectUnauthorized": "Отклонять сертификат, который не прошёл проверку"
  360. }
  361. },
  362. "resend": {
  363. "description": "Отправляйте счета и напоминания через Resend.",
  364. "fields": {
  365. "apiKey": "API-ключ"
  366. },
  367. "settings": {
  368. "fromEmail": "Отправлять с этого адреса",
  369. "fromName": "Имя отправителя"
  370. }
  371. },
  372. "postmark": {
  373. "description": "Отправляйте счета и напоминания через Postmark.",
  374. "fields": {
  375. "apiKey": "Серверный токен"
  376. },
  377. "settings": {
  378. "fromEmail": "Отправлять с этого адреса",
  379. "fromName": "Имя отправителя"
  380. }
  381. },
  382. "mailgun": {
  383. "description": "Отправляйте счета и напоминания через Mailgun.",
  384. "fields": {
  385. "apiKey": "API-ключ",
  386. "domain": "Домен отправки"
  387. },
  388. "settings": {
  389. "fromEmail": "Отправлять с этого адреса",
  390. "fromName": "Имя отправителя",
  391. "region": "Регион домена"
  392. }
  393. },
  394. "sendgrid": {
  395. "description": "Отправляйте счета и напоминания через SendGrid.",
  396. "fields": {
  397. "apiKey": "API-ключ"
  398. },
  399. "settings": {
  400. "fromEmail": "Отправлять с этого адреса",
  401. "fromName": "Имя отправителя"
  402. }
  403. },
  404. "amazon-ses": {
  405. "description": "Отправляйте счета и напоминания через Amazon SES.",
  406. "fields": {
  407. "accessKeyId": "ID ключа доступа",
  408. "secretAccessKey": "Секретный ключ доступа",
  409. "region": "Регион"
  410. },
  411. "settings": {
  412. "fromEmail": "Отправлять с этого адреса",
  413. "fromName": "Имя отправителя"
  414. }
  415. },
  416. "vegvesen": {
  417. "description": "Заполните данные автомобиля по норвежскому номеру или VIN: марка, модель, год, топливо, коробка передач, двигатель, цвет, размеры шин и дата следующего EU-kontroll, напрямую из реестра Statens vegvesen. Данные о владельце не передаются.",
  418. "fields": {
  419. "apiKey": "API-ключ",
  420. "apiKeyHelp": "Бесплатно. Закажите ключ на vegvesen.no в разделе «API for tekniske kjøretøyopplysninger»: войдите через BankID, представьте мастерскую, и ключ будет выдан сразу. Он допускает 50 000 запросов в день."
  421. },
  422. "settings": {
  423. "syncInspections": "Обновлять сроки техосмотра для всех автомобилей этой мастерской",
  424. "syncInspectionsHelp": "Раз в час автомобили, которые давно не проверялись, ищутся по номеру, и сохраняется дата следующего EU-kontroll. Отправляются только автомобили этой мастерской. Автомобиль проверяется ежемесячно, а когда до срока меньше двух месяцев, еженедельно."
  425. }
  426. },
  427. "openapi-automotive": {
  428. "description": "Заполните данные автомобиля по французскому, итальянскому, испанскому, португальскому или британскому номеру: марка, модель, год, VIN, топливо, объём двигателя и другое из регистрационных данных страны через Openapi.com. Каждый запрос списывается со счёта Openapi самой мастерской. Данные о владельце не передаются.",
  429. "fields": {
  430. "token": "API-токен",
  431. "tokenHelp": "Создайте аккаунт на console.openapi.com, пополните кошелёк и в разделе Automotive создайте токен для производственной среды. Каждый успешный запрос стоит несколько десятков центов; запрос без результата бесплатен."
  432. },
  433. "settings": {
  434. "country": "Страна",
  435. "countryHelp": "Реестр, в котором искать. Французские и итальянские номера выглядят одинаково, поэтому страну нельзя определить по номеру.",
  436. "cars": "Искать автомобили",
  437. "carsHelp": "Запрашивает реестр автомобилей. Отключите, если работаете только с мотоциклами: поиск пропустит автомобили и ответит быстрее.",
  438. "bikes": "Искать мотоциклы",
  439. "bikesHelp": "Запрашивает реестр мотоциклов. Если автомобили тоже включены, он запрашивается только когда автомобиль не найден, а запрос по автомобилю без результата бесплатен. Недоступно для Португалии."
  440. }
  441. },
  442. "checkcardetails": {
  443. "description": "Заполняйте данные автомобиля по британскому номеру или VIN: марка, модель, год, цвет, топливо, объём двигателя и срок следующего MOT, из данных DVLA через Check Car Details. Автомобили и мотоциклы берутся из одного реестра. Если для вашего аккаунта включена UK Vehicle Data, приходят также VIN, коробка передач и массы. Каждый запрос оплачивается с собственного аккаунта Check Car Details мастерской. Данные владельца не возвращаются.",
  444. "fields": {
  445. "apiKey": "API-ключ",
  446. "apiKeyHelp": "Создайте аккаунт на api.checkcardetails.co.uk и скопируйте рабочий ключ в разделе API Keys. Vehicle Registration входит в каждый аккаунт. Чтобы получать и VIN, нажмите Request Access рядом с UK Vehicle Data в разделе Your Data Points; запросы начнут его использовать, как только он будет включён. Тестовый ключ находит только номера, в которых есть буква A."
  447. },
  448. "settings": {
  449. "syncInspections": "Поддерживать сроки MOT актуальными для всех автомобилей этой мастерской",
  450. "syncInspectionsHelp": "Когда это включено, каждый автомобиль мастерской с номером один раз запрашивается, и сохраняется срок его следующего MOT. Затем каждый автомобиль перепроверяется ежемесячно, а когда до MOT меньше двух месяцев, еженедельно. Каждый найденный автомобиль оплачивается как один запрос Vehicle Registration, поэтому первый проход обходится дороже всего; номера, которых нет в реестре, бесплатны. Отправляются только автомобили, сохранённые в этой мастерской."
  451. }
  452. },
  453. "rdw": {
  454. "description": "Заполните данные автомобиля по нидерландскому номеру: марка, модель, год, топливо, объём двигателя, цвет, массы и дата следующего APK, напрямую из открытого реестра транспортных средств RDW. Бесплатно, ключ не нужен. Данные о владельце и VIN не публикуются.",
  455. "fields": {
  456. "appToken": "Токен приложения (необязательно)",
  457. "appTokenHelp": "Открытые данные RDW работают без ключа, но анонимные запросы делят ограниченную квоту. Для синхронизации техосмотров создайте бесплатный аккаунт на opendata.rdw.nl, откройте настройки разработчика в профиле и создайте токен приложения."
  458. },
  459. "settings": {
  460. "syncInspections": "Обновлять даты APK для всех автомобилей этой мастерской",
  461. "syncInspectionsHelp": "Раз в час автомобили, которые давно не проверялись, ищутся по номеру, и сохраняется дата следующего APK. Отправляются только автомобили этой мастерской. Автомобиль проверяется ежемесячно, а когда до срока меньше двух месяцев, еженедельно."
  462. }
  463. },
  464. "regcheck": {
  465. "description": "Заполните данные автомобиля по номеру в Австралии, Новой Зеландии, США, Ирландии, Норвегии, Швеции, Дании, Финляндии, Эстонии, Чехии, Словакии, Венгрии или Хорватии: марка, модель, год, VIN, топливо и объём двигателя, если страна их публикует, через RegCheck. Каждый успешный запрос списывает один кредит со счёта RegCheck самой мастерской. Данные о владельце не передаются.",
  466. "fields": {
  467. "username": "Имя пользователя RegCheck",
  468. "usernameHelp": "Зарегистрируйтесь на regcheck.org.uk; аккаунт включает 10 бесплатных запросов, остальные покупаются блоками по 100 в панели. Здесь нужно только имя пользователя, никогда пароль. Ненайденный номер ничего не стоит."
  469. },
  470. "settings": {
  471. "country": "Страна",
  472. "countryHelp": "Реестр, в котором искать. У каждой страны своя служба, поэтому подключение ищет в одной.",
  473. "auState": "Штат или территория",
  474. "auStateHelp": "Австралия регистрирует автомобили по штатам, и реестру нужно указать, в каком искать. Выберите тот, где зарегистрировано большинство автомобилей ваших клиентов.",
  475. "usState": "Штат",
  476. "usStateHelp": "Двухбуквенный код штата, в котором зарегистрированы автомобили, например CA или TX. Американские реестры запрашиваются по штатам."
  477. }
  478. },
  479. "openai": {
  480. "description": "Описания работ, сводки по истории, распознавание документов и ассистент — отвечает ваш собственный аккаунт OpenAI. Каждый запрос оплачивается с этого аккаунта, модель выбираете вы.",
  481. "fields": {
  482. "apiKey": "API-ключ",
  483. "apiKeyHelp": "Создайте его на platform.openai.com в разделе API keys. На аккаунте нужен баланс; OpenAI списывает плату за каждый запрос."
  484. },
  485. "settings": {
  486. "model": "Модель",
  487. "modelHelp": "Какая модель отвечает. Список берётся из вашего аккаунта, новые сверху. Модели поменьше дешевле за запрос и справляются с большинством текстов мастерской."
  488. }
  489. },
  490. "anthropic": {
  491. "description": "Описания работ, сводки по истории, распознавание документов и ассистент — отвечает Claude в вашем собственном аккаунте Anthropic. Каждый запрос оплачивается с этого аккаунта, модель выбираете вы.",
  492. "fields": {
  493. "apiKey": "API-ключ",
  494. "apiKeyHelp": "Создайте его на console.anthropic.com в разделе API keys. На аккаунте нужен баланс; Anthropic списывает плату за каждый запрос."
  495. },
  496. "settings": {
  497. "model": "Модель",
  498. "modelHelp": "Какая модель отвечает. Список берётся из вашего аккаунта, новые сверху. Модели поменьше дешевле за запрос и справляются с большинством текстов мастерской."
  499. }
  500. },
  501. "openai-compatible": {
  502. "description": "Описания работ, сводки истории, распознавание документов и ассистент, которые отвечает любой сервер с chat API OpenAI: Ollama, Open WebUI, LocalAI, vLLM, LM Studio, LiteLLM и подобные. Ваши данные остаются на вашем оборудовании.",
  503. "fields": {
  504. "baseUrl": "Базовый URL",
  505. "baseUrlHelp": "Где начинается OpenAI-совместимый API сервера, включая путь: /v1 для Ollama, vLLM, LocalAI и LM Studio, /api для Open WebUI. Torqvoice добавляет к нему /models и /chat/completions.",
  506. "apiKey": "API-ключ",
  507. "apiKeyHelp": "Только если сервер его требует. Ollama и vLLM обычно работают без ключа; Open WebUI выдаёт его в разделе Настройки, Аккаунт."
  508. },
  509. "settings": {
  510. "model": "Модель",
  511. "modelHelp": "Какая модель отвечает. В списке всё, что сообщает сервер, по названию. Для чтения фотографий выберите модель с поддержкой изображений."
  512. }
  513. },
  514. "stripe": {
  515. "description": "Оплата картой по ссылке на счёт на ваш собственный аккаунт Stripe. Клиент платит, Stripe сообщает Torqvoice, и счёт сам отмечается оплаченным.",
  516. "fields": {
  517. "secretKey": "Секретный ключ",
  518. "secretKeyHelp": "Из панели Stripe в разделе Developers, API keys. Тестовые ключи ничего реального не проводят, поэтому сначала попробуйте платёж на них, а затем переключитесь на боевые ключи.",
  519. "publishableKey": "Публикуемый ключ",
  520. "webhookSecret": "Секрет подписи вебхука",
  521. "webhookSecretHelp": "Stripe показывает его, когда вы добавляете URL уведомлений с этой страницы как вебхук. С ним каждое уведомление проверяется перед записью платежа."
  522. },
  523. "settings": {
  524. "enabled": "Предлагать в ссылках на счета",
  525. "enabledHelp": "Выключите, чтобы на время убрать кнопку оплаты с общих счетов, не отключая интеграцию. Уже начатые платежи всё равно записываются."
  526. }
  527. },
  528. "vipps": {
  529. "description": "Vipps MobilePay по ссылке на счёт. Клиент платит в приложении, которое у него уже есть, и счёт сам отмечается оплаченным.",
  530. "fields": {
  531. "clientId": "Client ID",
  532. "clientSecret": "Секрет клиента",
  533. "subscriptionKey": "Ключ подписки",
  534. "subscriptionKeyHelp": "Ocp-Apim-Subscription-Key из портала Vipps MobilePay, в API-ключах торговой единицы.",
  535. "merchantSerialNumber": "Серийный номер продавца"
  536. },
  537. "settings": {
  538. "enabled": "Предлагать в ссылках на счета",
  539. "enabledHelp": "Выключите, чтобы на время убрать кнопку оплаты с общих счетов, не отключая интеграцию. Уже начатые платежи всё равно записываются.",
  540. "testMode": "Тестовый режим",
  541. "testModeHelp": "Использовать тестовую среду Vipps с тестовыми ключами. Оставьте включённым, пока не пройдёт полный платёж, затем выключите и введите боевые ключи."
  542. }
  543. },
  544. "paypal": {
  545. "description": "Оплата через PayPal по ссылке на счёт через ваше собственное приложение PayPal. Клиент платит аккаунтом PayPal или картой, и счёт сам отмечается оплаченным.",
  546. "fields": {
  547. "clientId": "Client ID",
  548. "clientSecret": "Секрет клиента"
  549. },
  550. "settings": {
  551. "enabled": "Предлагать в ссылках на счета",
  552. "enabledHelp": "Выключите, чтобы на время убрать кнопку оплаты с общих счетов, не отключая интеграцию. Уже начатые платежи всё равно записываются.",
  553. "sandbox": "Режим песочницы",
  554. "sandboxHelp": "Использовать песочницу PayPal с ключами приложения песочницы. Оставьте включённым, пока не пройдёт полный платёж, затем выключите и введите ключи боевого приложения."
  555. }
  556. },
  557. "quickbooks": {
  558. "description": "Отправляйте выставленные счета, их клиентов и платежи в QuickBooks Online и получайте обратно платежи, записанные там.",
  559. "tenantHelp": "Создайте приложение на портале Intuit Developer. Скопируйте client id и secret из Keys and credentials, а URI перенаправления ниже введите в Settings, Redirect URIs. Ключи разработки работают с sandbox-компаниями, production-ключи с настоящими.",
  560. "fields": {
  561. "clientId": "Идентификатор клиента",
  562. "clientSecret": "Секрет клиента"
  563. },
  564. "settings": {
  565. "pushInvoices": "Отправлять выставленные счета в QuickBooks",
  566. "pushOnComplete": "Также отправлять счета, когда заказ отмечен как выполненный",
  567. "pushOnCompleteHelp": "Без этого счёт уходит, когда он отправлен, передан по ссылке или оплачен. С этим выполненный заказ уходит сразу и обновляется при изменениях.",
  568. "startDate": "Только счета с датой не раньше",
  569. "startDateHelp": "Оставьте пустым, чтобы отправлять все выставленные счета. Укажите дату перехода бухгалтерии на QuickBooks, чтобы старые счета не вводились дважды.",
  570. "includeVehicle": "Указывать автомобиль в счёте",
  571. "includeVehicleHelp": "Текстовая строка над позициями с годом, маркой, моделью, номером и пробегом, чтобы бухгалтерия знала, о какой машине речь.",
  572. "laborItemId": "Товар для строк работ",
  573. "laborItemIdHelp": "Оставьте пустым, и в первый раз под вашим счётом доходов будет создан товар с именем Labour.",
  574. "partsItemId": "Товар для строк запчастей",
  575. "partsItemIdHelp": "Оставьте пустым, и в первый раз под вашим счётом доходов будет создан товар с именем Parts.",
  576. "taxAmounts": "Суммы налога",
  577. "taxAmountsHelp": "Как в счёте передаёт налог ровно таким, каким он указан в счёте клиента, поэтому обе системы сходятся до копейки. Рассчитывает QuickBooks позволяет QuickBooks применить ставку налогового кода, а в США адрес клиента; журнал сообщает о расхождении итогов.",
  578. "taxAmountsBilled": "Как в счёте Torqvoice",
  579. "taxAmountsQuickbooks": "Рассчитывает QuickBooks",
  580. "taxCodeId": "Налоговый код для облагаемых счетов",
  581. "taxCodeIdHelp": "QuickBooks учитывает налог по налоговому коду. Torqvoice подбирает код со ставкой каждого счёта; этот используется, когда подходящего нет. Компания в США использует TAX, если не выбрать другой код.",
  582. "zeroTaxCodeId": "Налоговый код для счетов без налога",
  583. "zeroTaxCodeIdHelp": "Используется, когда в счёте нет налога или клиент освобождён от него. Компания в США использует NON, если не выбрать другой код.",
  584. "pushPayments": "Записывать платежи в QuickBooks",
  585. "depositAccountId": "Зачислять платежи на",
  586. "depositAccountIdHelp": "Оставьте пустым, чтобы использовать Undeposited Funds.",
  587. "manualPaidAsPayment": "Записывать платёж, когда счёт отмечен оплаченным вручную",
  588. "manualPaidAsPaymentHelp": "Счёт, отмеченный в Torqvoice как оплаченный без записи платежа, получает в QuickBooks один платёж на сумму, которая там ещё числится к оплате. Выключено: он остаётся там открытым, пока не будет записан платёж.",
  589. "pullPayments": "Забирать платежи, записанные в QuickBooks",
  590. "pullPaymentsHelp": "Каждые 30 минут. Платёж, полученный в QuickBooks по счёту из Torqvoice, записывается здесь на счёт."
  591. }
  592. },
  593. "fiken": {
  594. "description": "Отправляйте выставленные счета, их клиентов и платежи в Fiken и получайте обратно платежи, записанные там.",
  595. "tenantHelp": "Создайте приложение в Fiken в разделе Rediger konto, API для своих компаний. Укажите в приложении URI перенаправления ниже и скопируйте сюда его идентификатор клиента и секрет клиента. Компании нужен модуль API Fiken.",
  596. "fields": {
  597. "clientId": "Идентификатор клиента",
  598. "clientSecret": "Секрет клиента"
  599. },
  600. "settings": {
  601. "companySlug": "Компания в Fiken",
  602. "companySlugHelp": "Компания, в учёт которой попадают счета. У вашего пользователя Fiken может быть доступ к нескольким.",
  603. "pushInvoices": "Отправлять выставленные счета в Fiken",
  604. "pushOnComplete": "Также отправлять счета, когда заказ отмечен как выполненный",
  605. "pushOnCompleteHelp": "Без этого счёт уходит, когда он отправлен, передан по ссылке или оплачен. С этим выполненный заказ уходит сразу и обновляется при изменениях.",
  606. "startDate": "Только счета с датой не раньше",
  607. "startDateHelp": "Оставьте пустым, чтобы отправлять все выставленные счета. Укажите дату перехода бухгалтерии на Fiken, чтобы старые счета не вводились дважды.",
  608. "attachPdf": "Прикреплять PDF счёта",
  609. "attachPdfHelp": "Счёт попадает в Fiken как продажа (Annet salg) под своим номером из Torqvoice. Если включено, PDF, который получил клиент, сохраняется при продаже как первичный документ.",
  610. "laborAccount": "Счёт доходов для работ",
  611. "laborAccountHelp": "Оставьте пустым, чтобы использовать 3000.",
  612. "partsAccount": "Счёт доходов для запчастей",
  613. "partsAccountHelp": "Оставьте пустым, чтобы использовать 3000.",
  614. "zeroVatType": "Тип НДС для счетов без НДС",
  615. "zeroVatTypeHelp": "Как Fiken проводит продажу без НДС. Компании, не зарегистрированной как плательщик НДС, здесь ничего выбирать не нужно. Зарегистрированная должна выбрать до отправки такого счёта; уточните у бухгалтера, какой тип применяется.",
  616. "vatNone": "Нет (без учёта НДС)",
  617. "vatExempt": "Освобождено (fritatt)",
  618. "vatOutside": "Вне сферы НДС (utenfor)",
  619. "vatExport": "Освобождено, экспорт",
  620. "vatReverse": "Освобождено, обратное начисление",
  621. "zeroAccount": "Счёт доходов для счетов без НДС",
  622. "zeroAccountHelp": "Оставьте пустым, чтобы использовать счета для работ и запчастей выше. Если Fiken отклонит счёт с этим типом НДС, причина будет в журнале активности.",
  623. "pushPayments": "Записывать платежи в Fiken",
  624. "paymentAccount": "Зачислять платежи на",
  625. "paymentAccountHelp": "Оставьте пустым, чтобы использовать первый банковский счёт компании.",
  626. "manualPaidAsPayment": "Записывать платёж, когда счёт отмечен оплаченным вручную",
  627. "manualPaidAsPaymentHelp": "Счёт, отмеченный в Torqvoice как оплаченный без записи платежа, получает в Fiken один платёж на сумму, которая там ещё числится к оплате. Выключено: он остаётся там открытым, пока не будет записан платёж.",
  628. "pullPayments": "Забирать платежи, записанные в Fiken",
  629. "pullPaymentsHelp": "Каждые 30 минут. Платёж, полученный в Fiken по счёту из Torqvoice, записывается здесь на счёт."
  630. }
  631. },
  632. "nhtsa": {
  633. "description": "Заполните автомобиль по VIN и смотрите отзывные кампании, жалобы владельцев и рейтинги краш-тестов для каждого модельного года от американского ведомства безопасности. Бесплатно, без ключа.",
  634. "fields": {},
  635. "settings": {
  636. "refreshFleet": "Поддерживать актуальные данные об отзывах и жалобах для каждого автомобиля этой мастерской",
  637. "refreshFleetHelp": "Раз в день модели, не обновлявшиеся за последнюю неделю, запрашиваются заново, чтобы страница автомобиля никогда не ждала, а новая отзывная кампания появлялась в течение недели. Отправляются только марка, модель и год."
  638. }
  639. },
  640. "speech-to-text": {
  641. "description": "Диктовка в заказ-наряде, которую записывает речевая модель, а не браузер: гораздо точнее, на любом языке и со словами мастерской. Работает отдельно от вашего провайдера ИИ, так что его можно оставить как есть. Использует ваш собственный ключ OpenAI или ваш собственный сервер с API распознавания речи в стиле OpenAI. Запись отправляется на расшифровку и не сохраняется.",
  642. "fields": {
  643. "apiKey": "API-ключ",
  644. "apiKeyHelp": "Ключ OpenAI с platform.openai.com из раздела API keys; OpenAI берёт плату за использование поминутно. Для собственного сервера нужен, только если сервер его требует.",
  645. "baseUrl": "Адрес сервера",
  646. "baseUrlHelp": "Оставьте пустым, чтобы использовать OpenAI. Для собственного сервера (локальный Whisper, LocalAI, Groq) укажите, где начинается его API в стиле OpenAI, включая путь, например /v1. Torqvoice добавляет к нему /audio/transcriptions."
  647. },
  648. "settings": {
  649. "model": "Модель",
  650. "modelHelp": "Какую речевую модель запрашивать. gpt-4o-mini-transcribe точная и недорогая; gpt-4o-transcribe крупнее. Собственный сервер обычно отвечает на whisper-1.",
  651. "mode": "Кто выбирает, как записывается диктовка",
  652. "modeHelp": "Браузер пишет по ходу речи, но хуже, особенно на небольших языках. Речевая модель пишет, когда вы замолчите.",
  653. "modeAi": "Всегда речевая модель",
  654. "modeChoice": "Каждый выбирает сам: речевая модель или браузер"
  655. }
  656. }
  657. },
  658. "jobKinds": {
  659. "calendar": {
  660. "push": "Заказы в календарь",
  661. "pull": "Занятое время из календаря"
  662. },
  663. "conference": {
  664. "sync": "Ссылки на видеозвонки"
  665. },
  666. "inspection": {
  667. "refresh": "Обновление сроков техосмотра"
  668. },
  669. "accounting": {
  670. "invoice": "Счёт в бухгалтерию",
  671. "payment": "Платёж в бухгалтерию",
  672. "customer": "Клиент в бухгалтерию",
  673. "pull": "Платежи из бухгалтерии"
  674. },
  675. "safety": {
  676. "refresh": "Обновление данных об отзывных кампаниях",
  677. "vehicle": "Проверка отзывных кампаний для нового автомобиля"
  678. }
  679. }
  680. }