Поддержка языков в приложении PHP с MySQL

Я хочу обеспечить языковую поддержку на нескольких разных языках в веб-приложении php. Очевидно, есть несколько разных способов сделать это. Раньше я сохранял переменную в файле php для каждого языка, например en.php для поддержки английского языка и fr.php для поддержки французского языка. Например, для слов Good Morning я бы сохранил его в ключе $goodmorning, затем определил бы его в обоих файлах и указывал бы на тот или иной файл с помощью оператора if в зависимости от ввода пользователя.

Это сработало отлично, но работы потребовалось много. Есть ли более эффективный способ сделать это? Я подумал о том, чтобы сохранить слова в таблице базы данных под названием language_support. Таблица будет выглядеть следующим образом

id | en    | fr   | es   |last_update
1  | hello | allo | hola | 04/12/2018

Но у меня вопрос: как мне научить мою программу распознавать слова?

Вы знаете, что это слишком широко, верно? Тем более, что вы еще ничего не пробовали.

Rotimi 12.04.2018 20:00

Языки работают не так. Например, «точка» на английском языке может означать множество разных вещей, и каждое из этих значений может иметь разные переводы.

tadman 12.04.2018 20:01

@tadman: Вы правы, и я согласен. Но я бы сохранил целые выражения.

user45678 12.04.2018 20:07

Этого все еще недостаточно. Вам понадобится, как минимум, фраза и поле "контекст" произвольной формы. Например, «Дом» в контексте меню часто переводится удивительно иначе, чем «Дом» в других контекстах.

tadman 12.04.2018 20:17

Это действительно плохой дизайн для хранения разных переводов. Лучше бы create table translation( base_lang_string varchar (200), translate_to_lang varchar(5), translated varchar(200) primary key (base_lang_strinf, translate_to_lang));

symcbean 12.04.2018 21:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
27
1

Ответы 1

Изучите функции PHP _ () и __ (). Это для многоязычной поддержки внутренних строк, а не содержимого. Другими словами, он предназначен для запросов «Нажмите любую клавишу, чтобы продолжить» или «Введите имя клиента», а не для статей в блоге. Обычно это работает, когда у вас есть текстовый файл для каждого языка, каждый текстовый файл со всеми внутренними строками на исходном и целевом языках.

Вы могли бы использовать, например, _("Good Morning!"), и если бы вы установили немецкий язык, на выходе вы бы увидели "Guten Tag!"

Я на работе, поэтому сейчас не могу показать вам PHP-код, но Google этого должно хватить. :)

Другие вопросы по теме