Добавить и обновить языковой массив файлов в Laravel - PullRequest
1 голос
/ 07 ноября 2019

Я могу получить языковой массив из этой функции

$array = Lang::get('msg'); // return entire array
$text  = Lang::get('msg.success'); // return single item

или

$array = trans('msg'); // return entire array
$text = trans('msg.success'); // return single item

Но теперь я хочу добавить / обновить новое значение ключа для этого языкового файла msg.php изконтроллер.

как я могу это сделать?

Я пытался Lang::set(), но нет вспомогательной функции, как это.

Ответы [ 2 ]

1 голос
/ 12 ноября 2019

Вы можете использовать пакет для управления языком.

https://github.com/barryvdh/laravel-translation-manager

Он очень прост в использовании. Попробуйте его

0 голосов
/ 07 ноября 2019

Я бы рекомендовал использовать переводы на основе JSON в Laravel . Тогда у вас будет один файл JSON для каждого языка. Например, английский будет храниться в resources/lang/en.json. Так как это всего лишь файл json, вы можете легко записать в него через file_put_contents() и json_encode().

UPD: Оказалось, что изменения языка должны выполняться для каждого пользователя. Тогда решение состоит в том, чтобы иметь отдельную таблицу в БД, которая будет содержать строки вместе с user_id. Примерно так в псевдокоде:

function mytrans($string, $user_id) {
 if translation exists in the table for this user_id
    return translation
 else
    return trans(string);
}
...