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

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, 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

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

Добавление английской локали на сайт — стандартная задача при выходе на международную аудиторию. Английский является fallback-языком большинства i18n-систем: если перевод для другого языка отсутствует, показывается английская версия.

Структура переводов

resources/
  lang/
    en/
      messages.php
      validation.php
      auth.php
      pagination.php
    ru/
      messages.php
      ...
// resources/lang/en/messages.php
return [
    'welcome'       => 'Welcome to our website',
    'catalog'       => 'Catalog',
    'cart'          => 'Shopping Cart',
    'checkout'      => 'Checkout',
    'search'        => 'Search',
    'add_to_cart'   => 'Add to Cart',
    'price'         => 'Price',
    'in_stock'      => 'In Stock',
    'out_of_stock'  => 'Out of Stock',
    'items_count'   => ':count item|:count items',
];

Laravel поддерживает множественное число через |:

trans_choice('messages.items_count', 1)  // "1 item"
trans_choice('messages.items_count', 5)  // "5 items"

Форматирование в американском и британском английском

// en-US vs en-GB — разные форматы дат и чисел
const date = new Date('2026-03-28')

new Intl.DateTimeFormat('en-US').format(date)  // "3/28/2026"
new Intl.DateTimeFormat('en-GB').format(date)  // "28/03/2026"

new Intl.DateTimeFormat('en-US', { dateStyle: 'long' }).format(date)
// "March 28, 2026"

new Intl.DateTimeFormat('en-GB', { dateStyle: 'long' }).format(date)
// "28 March 2026"

// Числа
new Intl.NumberFormat('en-US').format(1234567.89)  // "1,234,567.89"
new Intl.NumberFormat('en-GB').format(1234567.89)  // "1,234,567.89"

// Валюта
new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(99.99)
// "$99.99"

new Intl.NumberFormat('en-GB', { style: 'currency', currency: 'GBP' }).format(99.99)
// "£99.99"

Определение предпочтительного языка браузера

function detectLanguage(available: string[]): string {
  const preferred = navigator.languages ?? [navigator.language]

  for (const lang of preferred) {
    // Точное совпадение: 'en-US'
    if (available.includes(lang)) return lang
    // Частичное: 'en-US' → 'en'
    const base = lang.split('-')[0]
    if (available.includes(base)) return base
  }

  return 'en' // fallback
}

const userLang = detectLanguage(['ru', 'en', 'de'])

На сервере: определение по заголовку Accept-Language

// Laravel Middleware
namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;

class SetLocale
{
    private array $available = ['ru', 'en', 'de', 'fr'];

    public function handle(Request $request, Closure $next): mixed
    {
        // Приоритет: явный параметр > сессия > заголовок браузера
        $locale = $request->get('lang')
            ?? $request->session()->get('locale')
            ?? $this->parseAcceptLanguage($request->header('Accept-Language'));

        $locale = in_array($locale, $this->available) ? $locale : 'ru';
        App::setLocale($locale);

        return $next($request);
    }

    private function parseAcceptLanguage(?string $header): string
    {
        if (!$header) return 'ru';

        preg_match_all('/([a-z]{2})(?:-[A-Z]{2})?(?:;q=([0-9.]+))?/', $header, $m);
        $langs = array_combine($m[1], array_map(
            fn($q) => $q === '' ? 1.0 : (float) $q,
            $m[2]
        ));
        arsort($langs);

        foreach (array_keys($langs) as $lang) {
            if (in_array($lang, $this->available)) return $lang;
        }

        return 'ru';
    }
}

Английский как язык по умолчанию для API

Многие проекты используют английский как язык ответов API, независимо от локали пользователя:

// Сообщения об ошибках — всегда на английском в API
return response()->json([
    'error' => 'Resource not found',
    'code'  => 'NOT_FOUND',
], 404);

// Пользовательские тексты — локализованные
return response()->json([
    'message' => __('messages.order_placed'), // по локали пользователя
    'data'    => $order,
]);

SEO: hreflang

<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/" />
<link rel="alternate" hreflang="ru" href="https://example.com/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

x-default указывает страницу для пользователей, чей язык не совпадает ни с одним из доступных.

Сроки

Подключение английских переводов, настройка middleware и hreflang — 1 рабочий день.