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

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

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

Інформаційні сайти або веб-програми
Сайти візитки, 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

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

Додавання англійської локалі на сайт — стандартна задача при виході на міжнародну аудиторію. Англійська є мовою відступу більшості систем 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 робочий день.