Налаштування локалізації сайту на російську мову

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування локалізації сайту на російську мову
Проста
від 1 робочого дня до 3 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування локалізації веб-сайту на російську мову

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

Серверна локалізація: 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 робочий день.