Skip to main content

Конференции

Просмотр конференции fido7.ru.php:

Предыдущее Следующее

Дата: 12 Jan 2019, 07:01:07
От: Anton Poletayev @ 2:5015/61.0
Кому: Sergey Anohin
Тема: wfido


Здpавствуй, Sergey!

Пятница 11 Января 2019 22:35, ты писал(а) мне, в сообщении по ссылке area://ru.php?msgid=2:5034/10.1+9a396528:

 SA>>> там бы локализацию хоть сделать...а то русскими буквами koi8-r
 SA>>> по коду написано :)
 AP>> composer require illuminate/translation
 AP>> И для его более простого использования позаимствуй из laravel
 AP>> хелперы trans и trans_choice

 SA> Я думал для этого надо весь текст засунуть в переменные и из базы
 SA> брать и в зависимости от того что у юзера там за язык в
 SA> базе выставлен, такой и отображать?

Так и есть. Стандартно в Laravel локализация разложена по языкам и файлам с массивами
/resources/lang/en/*
- auth.php
- pagination.php
- validation.php
и т.п.

Вот пример auth.php
<?php

return [
    'failed' => 'These credentials do not match our records.',
    'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];

Используется как @lang('auth.throttle') в шаблонах Blade или trans('auth.throttle') в коде php.
Язык приложения по-умолчанию задается в конфиге, для конкретного пользователя его можно перекрывать.

Также переменные локализации можно хранить в json и базе.

Преимущества и недостатки способов хранения:
1. массивы php
Отражается в git.
Удобен если правится только разработчиками, реализовать правку в интерфейсе проблематично.
Скорость выборки самая высокая.

2. файлы json
В git отражается, но менее удобно из-за лишних запятых.
Можно править через интерфейс (давать переводчикам).
Скорость выборки ниже чем массивы.

3. в базе
В git ничего не едет.
Можно править через интерфейс.
Скорость выборки сомнительна (серверу БД и так работы хватает по прикладным задачам, а тут ему еще интерфейсные запросы приезжать будут).

По личному опыту, в базе хранить локализацию я бы не стал. JSON тоже лучше, в итоге, конвертировать в массивы.
В своей собственной CMS хранил, но это увеличивает нагрузку, данные меняются только при разработке, а выбираются всегда.
Основную нагрузку на сервер хостинга, дает, как правило, не php, а mysql.

С уважением - Anton

--- -
Origin: RooDZ!Soft Labs. (2:5015/61)

Предыдущее Следующее

К списку сообщений
К списку конференций