Я хочу обеспечить языковую поддержку на нескольких разных языках в веб-приложении 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
Но у меня вопрос: как мне научить мою программу распознавать слова?
Языки работают не так. Например, «точка» на английском языке может означать множество разных вещей, и каждое из этих значений может иметь разные переводы.
@tadman: Вы правы, и я согласен. Но я бы сохранил целые выражения.
Этого все еще недостаточно. Вам понадобится, как минимум, фраза и поле "контекст" произвольной формы. Например, «Дом» в контексте меню часто переводится удивительно иначе, чем «Дом» в других контекстах.
Это действительно плохой дизайн для хранения разных переводов. Лучше бы create table translation( base_lang_string varchar (200), translate_to_lang varchar(5), translated varchar(200) primary key (base_lang_strinf, translate_to_lang));






Изучите функции PHP _ () и __ (). Это для многоязычной поддержки внутренних строк, а не содержимого. Другими словами, он предназначен для запросов «Нажмите любую клавишу, чтобы продолжить» или «Введите имя клиента», а не для статей в блоге. Обычно это работает, когда у вас есть текстовый файл для каждого языка, каждый текстовый файл со всеми внутренними строками на исходном и целевом языках.
Вы могли бы использовать, например, _("Good Morning!"), и если бы вы установили немецкий язык, на выходе вы бы увидели "Guten Tag!"
Я на работе, поэтому сейчас не могу показать вам PHP-код, но Google этого должно хватить. :)
Вы знаете, что это слишком широко, верно? Тем более, что вы еще ничего не пробовали.