Настройка локализации сайта на русский язык

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка локализации сайта на русский язык
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1224
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    859
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1069
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    829
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    832

Настройка локализации сайта на русский язык

Локализация на русский — не только перевод текста. Это правильная обработка падежей и числительных, форматирование дат, валюты, телефонных номеров по российским стандартам, и корректная работа с кодировкой в базе данных.

Серверная локализация: Laravel

// config/app.php
'locale' => 'ru',
'fallback_locale' => 'en',
'faker_locale' => 'ru_RU',
// resources/lang/ru/validation.php — переопределение сообщений валидации
return [
    'required' => 'Поле «:attribute» обязательно для заполнения.',
    'email'    => 'Поле «:attribute» должно содержать корректный e-mail адрес.',
    'min'      => [
        'string' => 'Поле «:attribute» должно содержать не менее :min символов.',
    ],
    'unique'   => 'Такое значение поля «:attribute» уже существует.',
    // ...

    'attributes' => [
        'email'    => 'email',
        'password' => 'пароль',
        'name'     => 'имя',
        'phone'    => 'телефон',
    ],
];

Склонение числительных

Русский язык требует трёх форм: «1 товар», «2 товара», «5 товаров».

// Хелпер для склонения
function plural(int $n, string $one, string $few, string $many): string
{
    $abs = abs($n);
    $mod10  = $abs % 10;
    $mod100 = $abs % 100;

    if ($mod100 >= 11 && $mod100 <= 19) return "$n $many";
    if ($mod10 === 1) return "$n $one";
    if ($mod10 >= 2 && $mod10 <= 4) return "$n $few";
    return "$n $many";
}

// Использование
echo plural(1, 'товар', 'товара', 'товаров');  // 1 товар
echo plural(3, 'товар', 'товара', 'товаров');  // 3 товара
echo plural(11, 'товар', 'товара', 'товаров'); // 11 товаров
echo plural(21, 'товар', 'товара', 'товаров'); // 21 товар

На фронтенде то же самое через Intl.PluralRules:

const rules = new Intl.PluralRules('ru')

const forms: Record<string, string> = {
  one:   'товар',
  few:   'товара',
  many:  'товаров',
  other: 'товаров',
}

function pluralize(n: number): string {
  return `${n} ${forms[rules.select(n)]}`
}

pluralize(1)   // "1 товар"
pluralize(22)  // "22 товара"
pluralize(100) // "100 товаров"

Форматирование дат и чисел

// Дата по-русски
const dateFormatter = new Intl.DateTimeFormat('ru-RU', {
  day: 'numeric',
  month: 'long',
  year: 'numeric',
})
dateFormatter.format(new Date()) // "28 марта 2026 г."

// Без "г." — только числа
new Intl.DateTimeFormat('ru-RU').format(new Date()) // "28.03.2026"

// Относительное время
const rtf = new Intl.RelativeTimeFormat('ru', { numeric: 'auto' })
rtf.format(-2, 'day')   // "позавчера"
rtf.format(-5, 'day')   // "5 дней назад"
rtf.format(1, 'hour')   // "через 1 час"

// Валюта
new Intl.NumberFormat('ru-RU', {
  style: 'currency',
  currency: 'RUB',
  maximumFractionDigits: 0,
}).format(14990) // "14 990 ₽"

Телефонные номера

// Маска для российских номеров
function formatRuPhone(value: string): string {
  const digits = value.replace(/\D/g, '')
  const normalized = digits.startsWith('8') ? '7' + digits.slice(1) : digits

  if (normalized.length !== 11 || !normalized.startsWith('7')) return value

  return `+7 (${normalized.slice(1, 4)}) ${normalized.slice(4, 7)}-${normalized.slice(7, 9)}-${normalized.slice(9)}`
}

formatRuPhone('89161234567') // "+7 (916) 123-45-67"

База данных: кодировка

PostgreSQL и MySQL должны использовать UTF-8. Проверка:

-- PostgreSQL
SHOW server_encoding;           -- UTF8
SHOW client_encoding;           -- UTF8
SELECT datcollate FROM pg_database WHERE datname = current_database();
-- ru_RU.UTF-8 или en_US.UTF-8 (оба корректны для кириллицы)

-- MySQL
SHOW VARIABLES LIKE 'character_set%';
-- character_set_database: utf8mb4
-- character_set_server: utf8mb4

Laravel .env для MySQL:

DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci

Meta-теги и HTML

<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="description" content="...">
  <!-- Open Graph для социальных сетей ВКонтакте, Одноклассники -->
  <meta property="og:locale" content="ru_RU">
</head>

Сроки

Настройка locale, переводы валидации, форматирование — 1 рабочий день.