';
}).join('');
if (calcAttachedFiles.length > 1) {
list.innerHTML += '
' + calcFormatFileSize(totalSize) + '
';
}
}
function calcRemoveFile(index) {
calcAttachedFiles.splice(index, 1);
calcRenderFiles();
}
// === МОДАЛЬНОЕ ОКНО ===
function calcOpenModal() {
const fromLang = document.getElementById('calc-from-lang').value;
const toLang = document.getElementById('calc-to-lang').value;
const volume = Math.max(1, parseInt(document.getElementById('calc-volume').value, 10) || 1);
const fromName = calcI18n.langNames[fromLang] || fromLang;
const toName = calcI18n.langNames[toLang] || toLang;
const price = document.getElementById('calc-result').textContent;
document.getElementById('modal-lang-pair').textContent = fromName + ' \u2192 ' + toName;
document.getElementById('modal-volume').textContent = volume + ' ' + calcI18n.pages;
document.getElementById('modal-price').textContent = price;
// \u0424\u0430\u0439\u043b \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d: \u0435\u0441\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043d\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d \u2014 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0443.
document.getElementById('modal-no-file-note').classList.toggle('hidden', calcAttachedFiles.length > 0);
// Сброс ошибок
document.querySelectorAll('.calc-modal-body input, .calc-modal-body textarea').forEach(el => {
el.classList.remove('field-error');
});
document.querySelectorAll('.field-error-msg').forEach(el => el.classList.remove('visible'));
const captchaBox = document.getElementById('calc-captcha-box');
captchaBox.classList.remove('checked', 'error');
captchaBox.querySelector('svg').classList.add('hidden');
document.getElementById('calc-modal-overlay').classList.add('open');
document.body.style.overflow = 'hidden';
setTimeout(() => document.getElementById('calc-modal-name').focus(), 100);
}
function calcCloseModal() {
document.getElementById('calc-modal-overlay').classList.remove('open');
document.body.style.overflow = '';
}
// Предупреждение об отклонённых сервером вложениях. Заказ при этом сохранён —
// показываем внутри окна успеха, а не как ошибку.
function calcShowRejectedFiles(rejected) {
const box = document.getElementById('calc-success-rejected');
if (!box) return;
box.textContent = '';
if (!rejected || !rejected.length) {
box.classList.remove('open');
return;
}
const title = document.createElement('strong');
title.textContent = calcI18nUI.rejectedTitle.replace('%d', rejected.length);
box.appendChild(title);
const list = document.createElement('ul');
rejected.forEach(function (rf) {
const li = document.createElement('li');
// textContent — имя файла приходит от пользователя, не вставлять как HTML
li.textContent = (rf && rf.name ? rf.name : '—') + ' — ' + (rf && rf.reason ? rf.reason : '');
list.appendChild(li);
});
box.appendChild(list);
const cta = document.createElement('div');
cta.className = 'calc-rejected-cta';
cta.textContent = calcI18nUI.rejectedCta.replace('%s', box.dataset.email || '');
box.appendChild(cta);
box.classList.add('open');
}
// === ВАЛИДАЦИЯ ===
function calcValidateEmail(email) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}
function calcValidatePhone(phone) {
var cleaned = phone.replace(/\D/g, '');
// На EN/ZH-версиях допускаем международные номера: достаточно ≥10 цифр
if (!(document.documentElement.lang || '').toLowerCase().startsWith('ru')) {
return cleaned.length >= 10;
}
return cleaned.length === 11 && cleaned[0] === '7';
}
function calcValidateModal() {
let valid = true;
// Имя
const name = document.getElementById('calc-modal-name');
const nameErr = document.getElementById('calc-modal-name-error');
if (!name.value.trim()) {
name.classList.add('field-error');
nameErr.classList.add('visible');
valid = false;
} else {
name.classList.remove('field-error');
nameErr.classList.remove('visible');
}
// Телефон
const phone = document.getElementById('calc-modal-phone');
const phoneErr = document.getElementById('calc-modal-phone-error');
if (!phone.value.trim() || !calcValidatePhone(phone.value)) {
phone.classList.add('field-error');
phoneErr.classList.add('visible');
phoneErr.textContent = '!';
valid = false;
} else {
phone.classList.remove('field-error');
phoneErr.classList.remove('visible');
}
// Email
const email = document.getElementById('calc-modal-email');
const emailErr = document.getElementById('calc-modal-email-error');
if (!email.value.trim() || !calcValidateEmail(email.value)) {
email.classList.add('field-error');
emailErr.classList.add('visible');
emailErr.textContent = '!';
valid = false;
} else {
email.classList.remove('field-error');
emailErr.classList.remove('visible');
}
// Капча
const captchaBox = document.getElementById('calc-captcha-box');
const captchaErr = document.getElementById('calc-captcha-error');
if (!captchaBox.classList.contains('checked')) {
captchaBox.classList.add('error');
captchaErr.classList.add('visible');
valid = false;
} else {
captchaBox.classList.remove('error');
captchaErr.classList.remove('visible');
}
return valid;
}
// === ОТПРАВКА ЗАЯВКИ ===
async function calcSubmitOrder() {
if (!calcValidateModal()) return;
const submitBtn = document.getElementById('calc-modal-submit');
const submitText = document.getElementById('calc-modal-submit-text');
const spinner = document.getElementById('calc-modal-spinner');
submitBtn.disabled = true;
submitText.textContent = calcI18nUI.sending;
spinner.classList.remove('hidden');
try {
const formData = new FormData();
formData.append('source', 'calculator');
if (window.UCCsrf) formData.append('csrf', window.UCCsrf.token());
formData.append('name', document.getElementById('calc-modal-name').value.trim());
formData.append('phone', document.getElementById('calc-modal-phone').value.trim());
formData.append('email', document.getElementById('calc-modal-email').value.trim());
formData.append('message', document.getElementById('calc-modal-comment').value.trim());
formData.append('lang_from', calcI18n.langNames[document.getElementById('calc-from-lang').value] || document.getElementById('calc-from-lang').value);
formData.append('lang_to', calcI18n.langNames[document.getElementById('calc-to-lang').value] || document.getElementById('calc-to-lang').value);
formData.append('volume', document.getElementById('calc-volume').value);
formData.append('estimated_price', document.getElementById('calc-result').textContent);
// Информация о клиенте (браузер, экран, язык, таймзона)
formData.append('user_agent', navigator.userAgent);
formData.append('screen_resolution', screen.width + '×' + screen.height);
formData.append('viewport', window.innerWidth + '×' + window.innerHeight);
formData.append('browser_lang', navigator.language || navigator.userLanguage || '');
formData.append('timezone', Intl.DateTimeFormat().resolvedOptions().timeZone || '');
formData.append('referrer', document.referrer || '');
formData.append('page_url', window.location.href);
try { formData.append('lead_attribution', JSON.stringify(window.getLeadAttribution ? window.getLeadAttribution() : {})); } catch(e){}
// Допуслуги (с количеством)
const addonNames = [];
document.querySelectorAll('.calc-addon:checked').forEach(cb => {
const id = cb.dataset.id;
const qtyInput = document.querySelector('.calc-addon-qty-input[data-id="' + id + '"]');
const qty = qtyInput ? (parseInt(qtyInput.value) || 1) : 1;
const label = calcI18n.addons[id] || id;
addonNames.push(qty > 1 ? label + ' × ' + qty : label);
});
formData.append('addons', addonNames.join(', '));
// Детализация цен для письма менеджеру
const breakdown = calcGetPriceBreakdown();
if (breakdown) {
formData.append('price_breakdown', JSON.stringify(breakdown));
}
// Файлы
calcAttachedFiles.forEach((file, i) => {
formData.append('files[]', file);
});
// Сколько файлов клиент реально приложил. Если PHP примет меньше
// (max_file_uploads), сервер сообщит о разнице в rejected_files.
formData.append('expected_files_count', String(calcAttachedFiles.length));
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), 120000);
console.log('[calculator] Sending request...');
const response = await fetch('/api/calculator-order.php', {
method: 'POST',
body: formData,
signal: controller.signal
});
clearTimeout(timeoutId);
console.log('[calculator] Response status:', response.status);
const data = await response.json();
if (data.success) {
calcCloseModal();
// Показать окно успеха
document.getElementById('calc-success-overlay').classList.add('open');
document.body.style.overflow = 'hidden';
// Часть файлов могла быть отклонена (формат/размер/сбой загрузки).
// Заказ сохранён, но клиент должен знать, что вложение не дошло.
calcShowRejectedFiles(data.rejected_files);
// Сброс формы
document.getElementById('calc-modal-name').value = '';
document.getElementById('calc-modal-phone').value = '';
document.getElementById('calc-modal-email').value = '';
document.getElementById('calc-modal-comment').value = '';
calcAttachedFiles.length = 0;
calcRenderFiles();
// Аналитика
if (typeof ym !== 'undefined' && window.YANDEX_METRIKA_ID) {
ym(window.YANDEX_METRIKA_ID, 'reachGoal', 'calculator_order');
}
if (typeof gtag !== 'undefined') {
gtag('event', 'submit', { event_category: 'Calculator', event_label: 'Order' });
}
} else {
alert(data.message || calcI18nUI.errorGeneric);
}
} catch (err) {
console.error('Calculator submit error:', err);
if (err.name === 'AbortError') {
alert(calcI18nUI.errorNetwork);
} else {
alert(calcI18nUI.errorGeneric);
}
} finally {
submitBtn.disabled = false;
submitText.textContent = calcI18nUI.submitText;
spinner.classList.add('hidden');
}
}
function calcCloseSuccess() {
document.getElementById('calc-success-overlay').classList.remove('open');
document.body.style.overflow = '';
}
// Обработчики изменений
document.addEventListener('DOMContentLoaded', () => {
// Инициализация кастомных дропдаунов (ru добавляется вручную, в списках prices.languages он отфильтрован)
initCalcDropdown('from-lang-dropdown', 'calc-from-lang', 'from-lang-flag', 'from-lang-name', true);
initCalcDropdown('to-lang-dropdown', 'calc-to-lang', 'to-lang-flag', 'to-lang-name', true);
['calc-from-lang', 'calc-to-lang', 'calc-volume'].forEach(id => {
const el = document.getElementById(id);
if (el) {
el.addEventListener('change', calculatePrice);
el.addEventListener('input', calculatePrice);
}
});
document.querySelectorAll('.calc-addon').forEach(cb => {
cb.addEventListener('change', function() {
const id = this.dataset.id;
const qtyDiv = this.closest('.calc-addon-row').querySelector('.calc-addon-qty');
if (qtyDiv) {
if (this.checked) {
qtyDiv.classList.remove('hidden');
} else {
qtyDiv.classList.add('hidden');
// Сброс количества при отключении
const qtyInput = qtyDiv.querySelector('.calc-addon-qty-input');
if (qtyInput) qtyInput.value = 1;
const subtotalEl = qtyDiv.querySelector('.calc-addon-subtotal');
if (subtotalEl) subtotalEl.textContent = '';
}
}
calculatePrice();
});
});
// Изменение количества документов → пересчёт
document.querySelectorAll('.calc-addon-qty-input').forEach(input => {
input.addEventListener('input', calculatePrice);
});
// Синхронизация: один из языков должен быть русским
document.getElementById('calc-from-lang').addEventListener('change', function() {
if (this.value !== 'ru' && document.getElementById('calc-to-lang').value !== 'ru') {
document.getElementById('calc-to-lang').value = 'ru';
document.getElementById('to-lang-flag').innerHTML = '🇷🇺';
document.getElementById('to-lang-name').textContent = calcI18n.langNames['ru'];
parseEmoji(document.getElementById('to-lang-flag'));
}
calculatePrice();
});
document.getElementById('calc-to-lang').addEventListener('change', function() {
if (this.value !== 'ru' && document.getElementById('calc-from-lang').value !== 'ru') {
document.getElementById('calc-from-lang').value = 'ru';
document.getElementById('from-lang-flag').innerHTML = '🇷🇺';
document.getElementById('from-lang-name').textContent = calcI18n.langNames['ru'];
parseEmoji(document.getElementById('from-lang-flag'));
}
calculatePrice();
});
calculatePrice();
// --- Файловые аттачменты ---
const attachBtn = document.getElementById('calc-attach-btn');
const fileInput = document.getElementById('calc-file-input');
attachBtn.addEventListener('click', () => fileInput.click());
fileInput.addEventListener('change', (e) => {
for (const file of e.target.files) {
// Лимит PHP max_file_uploads: файлы сверх него сервер молча отбрасывает,
// поэтому не даём добавить их в список вообще.
if (calcAttachedFiles.length >= CALC_MAX_FILES) {
alert(calcI18nUI.tooManyFiles.replace('%d', CALC_MAX_FILES));
break;
}
const ext = file.name.split('.').pop().toLowerCase();
if (!CALC_ALLOWED_EXT.includes(ext)) {
alert(file.name + ' — invalid format');
continue;
}
if (file.size > CALC_MAX_FILE_SIZE) {
alert(file.name + ' — max ' + CALC_MAX_FILE_SIZE_MB + ' MB');
continue;
}
calcAttachedFiles.push(file);
}
calcRenderFiles();
fileInput.value = ''; // Сброс, чтобы можно было выбрать тот же файл повторно
// Сбрасываем ошибку «файл обязателен» при добавлении файлов
if (calcAttachedFiles.length > 0) {
var attachBtn = document.getElementById('calc-attach-btn');
var fileErr = document.getElementById('calc-file-error');
attachBtn.classList.remove('error');
attachBtn.style.borderColor = '';
fileErr.classList.add('hidden');
}
});
// --- Кнопка «Отправить заявку» → открыть модал ---
// Файл НЕ обязателен: можно отправить заявку без документа (он будет прислан позже).
document.getElementById('calc-submit-btn').addEventListener('click', function() {
// Одинаковые языки — заказ не имеет смысла, расчёт показывает «—»
if (document.getElementById('calc-from-lang').value === document.getElementById('calc-to-lang').value) {
return;
}
calcOpenModal();
});
// --- Закрытие модалки ---
document.getElementById('calc-modal-close').addEventListener('click', calcCloseModal);
// --- Капча ---
const captchaBox = document.getElementById('calc-captcha-box');
captchaBox.addEventListener('click', () => {
captchaBox.classList.toggle('checked');
const svg = captchaBox.querySelector('.captcha-checkbox svg');
if (captchaBox.classList.contains('checked')) {
svg.classList.remove('hidden');
captchaBox.classList.remove('error');
document.getElementById('calc-captcha-error').classList.remove('visible');
} else {
svg.classList.add('hidden');
}
});
// --- Отправка ---
document.getElementById('calc-modal-submit').addEventListener('click', calcSubmitOrder);
// --- Закрытие окна успеха ---
document.getElementById('calc-success-close').addEventListener('click', calcCloseSuccess);
// --- Реалтайм-валидация: убрать красное при вводе ---
['calc-modal-name', 'calc-modal-phone', 'calc-modal-email'].forEach(id => {
const el = document.getElementById(id);
if (el) {
el.addEventListener('input', () => {
el.classList.remove('field-error');
const errEl = document.getElementById(id + '-error');
if (errEl) errEl.classList.remove('visible');
});
}
});
// --- Маска телефона (+7 только на русской версии; на EN/ZH свободный ввод международных номеров) ---
const phoneInput = document.getElementById('calc-modal-phone');
if ((document.documentElement.lang || '').toLowerCase().startsWith('ru')) {
phoneInput.addEventListener('input', function() {
let val = this.value.replace(/\D/g, '');
if (val.length > 0 && val[0] === '8') val = '7' + val.slice(1);
if (val.length > 11) val = val.slice(0, 11);
if (val.length === 0) { this.value = ''; return; }
let formatted = '+' + val[0];
if (val.length > 1) formatted += ' (' + val.slice(1, 4);
if (val.length > 4) formatted += ') ' + val.slice(4, 7);
if (val.length > 7) formatted += '-' + val.slice(7, 9);
if (val.length > 9) formatted += '-' + val.slice(9, 11);
this.value = formatted;
});
}
// --- Кнопка «Сформировать КП» ---
// Контекст последнего сформированного КП — для лёгкого захвата контакта (email).
let quoteLeadContext = null;
const quoteBtn = document.getElementById('calc-quote-btn');
if (quoteBtn) {
quoteBtn.addEventListener('click', function() {
const breakdown = calcGetPriceBreakdown();
if (!breakdown || !breakdown.items.length) return;
const fromLang = document.getElementById('calc-from-lang').value;
const toLang = document.getElementById('calc-to-lang').value;
const volume = document.getElementById('calc-volume').value;
const totalPrice = document.getElementById('calc-result').textContent;
const fromName = calcI18n.langNames[fromLang] || fromLang;
const toName = calcI18n.langNames[toLang] || toLang;
// Собираем допуслуги
const addonNames = [];
document.querySelectorAll('.calc-addon:checked').forEach(cb => {
const id = cb.dataset.id;
const qtyInput = document.querySelector('.calc-addon-qty-input[data-id="' + id + '"]');
const qty = qtyInput ? (parseInt(qtyInput.value) || 1) : 1;
const label = calcI18n.addons[id] || id;
addonNames.push(qty > 1 ? label + ' \u00d7 ' + qty : label);
});
// Формируем URL с параметрами
const params = new URLSearchParams({
lang: 'ru',
from: fromName,
to: toName,
volume: volume,
total: totalPrice,
breakdown: JSON.stringify(breakdown.items),
addons: addonNames.join(', ')
});
window.open('/api/generate-quote.php?' + params.toString(), '_blank');
// КП уже открыт — предлагаем (необязательно) отправить его на email.
quoteLeadContext = { fromName, toName, volume, totalPrice, addons: addonNames.join(', ') };
const leadBlock = document.getElementById('quote-lead-block');
if (leadBlock) {
leadBlock.classList.remove('hidden');
document.getElementById('quote-lead-success').classList.add('hidden');
}
});
}
// --- Отправка КП на email (лёгкий захват лида, не блокирует КП) ---
const leadSubmitBtn = document.getElementById('quote-lead-submit');
if (leadSubmitBtn) {
leadSubmitBtn.addEventListener('click', async function() {
const emailEl = document.getElementById('quote-lead-email');
const nameEl = document.getElementById('quote-lead-name');
const hp = document.getElementById('quote-lead-website');
const successEl = document.getElementById('quote-lead-success');
// Honeypot
if (hp && hp.value) return;
const email = emailEl.value.trim();
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
emailEl.classList.add('border-red-500');
emailEl.focus();
alert(calcI18nUI.quoteLeadInvalidEmail);
return;
}
emailEl.classList.remove('border-red-500');
leadSubmitBtn.disabled = true;
leadSubmitBtn.textContent = '...';
try {
const ctx = quoteLeadContext || {};
const formData = new FormData();
formData.append('source', 'quote_lead');
// Honeypot уезжает на сервер: клиентской проверки hp.value мало — бот,
// бьющий прямо в /api/contact.php, обходил её, а серверная проверка
// (!empty($_POST['website'])) без этого поля не срабатывала никогда.
formData.append('website', hp ? hp.value : '');
if (window.UCCsrf) formData.append('csrf', window.UCCsrf.token());
formData.append('name', nameEl.value.trim());
formData.append('email', email);
formData.append('lang_from', ctx.fromName || '');
formData.append('lang_to', ctx.toName || '');
formData.append('message', [ctx.volume ? ctx.volume + ' ' + calcI18n.pages : '', ctx.totalPrice ? '— ' + ctx.totalPrice : '', ctx.addons || ''].filter(Boolean).join(' '));
formData.append('user_agent', navigator.userAgent);
formData.append('screen_resolution', screen.width + '×' + screen.height);
formData.append('viewport', window.innerWidth + '×' + window.innerHeight);
formData.append('browser_lang', navigator.language || navigator.userLanguage || '');
formData.append('timezone', Intl.DateTimeFormat().resolvedOptions().timeZone || '');
formData.append('referrer', document.referrer || '');
formData.append('page_url', window.location.href);
try { formData.append('lead_attribution', JSON.stringify(window.getLeadAttribution ? window.getLeadAttribution() : {})); } catch(e){}
const response = await fetch('/api/contact.php', { method: 'POST', body: formData });
const data = await response.json();
if (data.success) {
successEl.classList.remove('hidden');
emailEl.value = '';
nameEl.value = '';
if (typeof ym !== 'undefined' && window.YANDEX_METRIKA_ID) {
ym(window.YANDEX_METRIKA_ID, 'reachGoal', 'quote_lead');
}
if (typeof gtag !== 'undefined') {
gtag('event', 'submit', { event_category: 'Calculator', event_label: 'Quote Lead' });
}
} else {
alert(data.message || calcI18nUI.errorGeneric);
}
} catch (err) {
alert(calcI18nUI.errorGeneric);
} finally {
leadSubmitBtn.disabled = false;
leadSubmitBtn.textContent = calcI18nUI.quoteLeadSubmit;
}
});
}
});
Отзывы наших клиентов
Более 10 000 довольных клиентов за 13 лет работы
4.9/5 на основе 53 отзывов
Заказывали перевод проектной документации на китайский, 120 страниц. Перевод хороший — терминологию строительную знают, подрядчики в Шанхае приняли без замечаний. Отдельно удобно, что ведут глоссарий ...
Заказывали перевод проектной документации на китайский, 120 страниц. Перевод хороший — терминологию строительную знают, подрядчики в Шанхае приняли без замечаний. Отдельно удобно, что ведут глоссарий проекта — при повторных заказах не нужно заново объяснять термины. Цена нормальная, для китайского не дёшево, но рыночная.
Технический перевод
А
Анна Петриенко
ООО "ТехноСтрой"
Переводил медицинские анализы и заключения на немецкий язык для врача в Германии. Заказ сделал в выходные, за 1 день все перевели, заверили печатью Бюро. Вопросов нет, рекомендую!
Медицинский перевод
Д
Дмитрий Красовский
Частное лицо
Работаем с бюро уже два года — переводим протоколы клинических исследований и сертификаты анализов с английского на русский язык. Юлия подобрала нам двух переводчиков с медицинским образованием, перев...
Работаем с бюро уже два года — переводим протоколы клинических исследований и сертификаты анализов с английского на русский язык. Юлия подобрала нам двух переводчиков с медицинским образованием, переводы делают качественно и в короткие сроки, формат документов соблюдается.
Медицинский перевод
Е
Елена Москвичева
Медицинский центр "Здоровье+"
Переводили договор поставки с английского на турецкий 18 страниц с нотариальным заверением. Оказывается, заверение делается через русский язык, менеджер Дарья все грамотно объяснила, по срокам сделали...
Переводили договор поставки с английского на турецкий 18 страниц с нотариальным заверением. Оказывается, заверение делается через русский язык, менеджер Дарья все грамотно объяснила, по срокам сделали за 2 дня. Юридическая терминология на уровне. Спасибо!
Юридический перевод
И
Игорь Смирнов
ИП Смирнов И.А.
Оформляла апостиль на диплом и приложение для работы в Эмиратах. Менеджер Дарья объяснила порядок действий, уже через неделю отдали полный пакет с апостилем и переводом на арабский. Все четко сделали,...
Оформляла апостиль на диплом и приложение для работы в Эмиратах. Менеджер Дарья объяснила порядок действий, уже через неделю отдали полный пакет с апостилем и переводом на арабский. Все четко сделали, приятным бонусом был бесплатный курьер, приезжал чтобы забрать оригиналы, привозил обратно сразу после заверения копий и потом уже готовый апостиль с переводом и заверением.
Апостиль + перевод
М
Мария Ковалёва
Частное лицо
Обращались в бюро переводов для перевода каталога продукции объёмом 80 страниц на четыре языка — казахский, турецкий, армянский и узбекский. Проект был достаточно сложным: много таблиц, инфографики и ...
Обращались в бюро переводов для перевода каталога продукции объёмом 80 страниц на четыре языка — казахский, турецкий, армянский и узбекский. Проект был достаточно сложным: много таблиц, инфографики и технической терминологии. Верстку сделали с небольшими замечаниями, но быстро все исправили и результатом полностью довольны, будем обращаться снова и рекомендуем как надёжного партнёра для многоязычных проектов.
Стоимость зависит от языковой пары. Например, стандартный перевод с русского на английский стоит 650 ₽ за переводческую страницу (1800 знаков с пробелами). Срочный перевод — от 900 ₽. Полный прайс-лист можно посмотреть на странице «Цены». Точную стоимость рассчитает менеджер после анализа документа.
Переводческая страница — это стандартная единица измерения объёма текста в переводческой индустрии, равная 1800 знакам с пробелами (примерно одна страница формата А4 со шрифтом 12pt и одинарным интервалом). Подсчёт знаков ведётся по переведённому тексту.
Нотариальный перевод паспорта стоит 2500 ₽. В стоимость входит перевод и нотариальное заверение. Стоимость нотариального заверения одного документа — 1200 ₽. При заказе от 8 документов — 1 000 ₽ за документ. Актуальные цены смотрите на странице «Цены».
Апостиль — это упрощённая форма легализации документов для использования в странах, подписавших Гаагскую конвенцию 1961 года (более 120 стран). Апостиль представляет собой специальный штамп, который ставится на оригинал документа или его нотариально заверенный перевод. Стоимость — от 5 000 ₽, стандартный срок оформления — 7 рабочих дней. Срочное оформление (2-3 дня) — 36 000 ₽. Подробные цены на странице «Цены».
Мы готовы взяться за срочные переводы объёмом до 5 страниц — от 2 часов. Для больших объёмов срок зависит от количества страниц и доступности переводчиков. Например, документ на 10 страниц можем перевести за 4-6 часов, 20 страниц — за 1 день. Срочный перевод с нотариальным заверением — от 4 часов.
Нет, приезжать в офис не обязательно. Вы можете отправить документы по email или через мессенджеры (WhatsApp, Telegram, Max). Готовый перевод доставим курьером (бесплатно по Москве в пределах МКАД) или отправим по email.
Оплата возможна по безналичному расчёту (для юридических лиц), банковской картой, наличными в офисе или онлайн-переводом. Для новых клиентов предоплата составляет 50-100% от стоимости заказа.
Да, мы предоставляем скидки за объём: 3% при заказе от 50 страниц, 5% — от 80 страниц, 7% — от 100 страниц, 10% — от 150 страниц. Для постоянных клиентов действуют индивидуальные условия. Подробнее о скидках на странице «Цены».
Мы работаем по международному стандарту ISO 17100:2015. Каждый перевод проходит 3 этапа проверки: 1) Перевод выполняет профильный переводчик с опытом работы от 5 лет. 2) Второй переводчик проверяет точность и терминологию. 3) Редактор проверяет стиль, грамматику и оформление. Мы предоставляем бесплатную доработку в течение 30 дней после сдачи.
Мы работаем с более чем 100 языками мира. Популярные направления: английский, немецкий, французский, испанский, итальянский, китайский, японский, корейский, арабский, турецкий и другие. Также переводим с редких языков: финского, норвежского, греческого, иврита, фарси, хинди и многих других. Полный список языков и цены на странице «Цены».
Сертификат соответствия требованиям международного стандарта ISO 17100:2015 (ГОСТ Р ISO 17100-2017) — Услуги перевода. Подтверждает соблюдение стандартов качества переводческих услуг.