Вопросы обновлены вместо создания нового вопроса ...
Я действительно хочу предоставить несколько альтернативных языков, кроме английского, на моей социальной сети, которую я создаю, я впервые делаю перевод на любой язык, поэтому, пожалуйста, потерпите меня.
Я занимаюсь исследованиями, поэтому я в курсе и открыт для идей, и у меня уже есть много вопросов.
1)
Что означает i18n, я часто вижу это при изучении языкового перевода на SO?
2)
Большинство людей говорят, что используйте gettext PHP имеет расширение или поддержку для него,
ну, я исследовал это, и у меня есть общее представление об этом, насколько я могу судить, это большой объем работы, чтобы пройти этот путь,
Я имею в виду кодирование моего сайта, чтобы использовать его функции т.е. _ («Привет, мир, я сейчас на английском») или еще gettext («Привет, мир, я сейчас на английском») не проблема, так как любой маршрут, по которому я иду потребует этого.
Но тогда вам нужно установить gettext на ваш сервер и заставить его работать,
затем использовать специальные редакторы для создания специальных файлов и их компиляции, я думаю?
Звучит как боль, я понимаю, что это лучший путь, но, кажется, все говорят, что это так.
Так может кто-нибудь сказать мне, почему это путь?
3)
Мне очень нравится простота этого подхода, просто построение языкового массива и вызов нужной фразы в функции, как в примере ниже
Затем вы просто включите файл с соответствующим языковым массивом.
Что я действительно хочу знать, так это то, будет ли это метод с менее высокой производительностью при большом трафике и довольно большом сайте по сравнению с использованием gettext, и если да, то можете ли вы объяснить, почему, пожалуйста?
<?PHP
//Have seperate language files for each language I add, this would be english file
function lang($phrase){
static $lang = array(
'NO_PHOTO' => 'No photo\'s available',
'NEW_MEMBER' => 'This user is new'
);
return $lang[$phrase];
}
//Then in application where there is text from the site and not from users I would do something like this
echo lang('NO_PHOTO'); // No photo's available would show here
?>
* некоторый код, использованный из ответа Брианреависа ниже