Is gettext - лучший способ локализовать сайт в php? Я не использую каких-либо фреймворков, и не так много слов для перевода, просто две разные версии на английском языке.Is gettext лучший способ локализовать сайт в php? (требуется только небольшая локализация)
ответ
Вы можете просто использовать lang_XX.php
и включить его в приложении.
$lang = array(
"welcome" => "Welcome",
"bye" => "Bye"
);
Для других языков, говорят lang_fr.php
, только что-то вроде:
$lang = array(
"welcome" => "Accueil",
"bye" => "Au revoir"
);
Для небольшого случая использования, это должно быть хорошо, и нет необходимости идти с .po
файлов. Также вы можете определить его следующим образом:
function _($l)
{
return $lang[$l];
}
Для статического контента, который никогда/крайне редко меняется, конечно.
Для динамического контента, ни в малейшей степени. Компиляция файлов .po и т. Д. - это путь сверху, и я бы предложил вместо него какое-то решение JSON или XML и шаблонов с кэшированными скомпилированными шаблонами.
Не могли бы вы рассказать о том, что вы подразумеваете под «Компиляция файлов .po наверху "? – dsas
Для меня это очень важный случай статического контента. –
С точки зрения производительности, gettext
Extension быстрее, чем при использовании строкового массива, который отображает как строковые идентификаторы для локализованного текста (например "WelcomeText" => "Welcome to our homepage."
будут включены использовать что-то <?= $strings["WelcomeText"] >
. Чистый PHP реализация Gettext медленнее и не рекомендуется, если вам можно использовать PHP Extension. Подробнее здесь Localizing PHP web sites using gettext и Benchmarking PHP Localization – Is gettext fast enough?
gettext - лучший способ. Для небольшого сайта с небольшим количеством строк, который, как ожидается, не будет расти, реализация чего-то похожего на решения, опубликованные уже на самом деле, может быть быстрее, чем изучение того, как использовать gettext и настраивать его.
Т.Л., д-р:
Люди думали трудно в течение многих лет, чтобы создать систему перевода, которая работает, вы могли бы потратить возрасты заново изобретать что колесо, или вы могли бы потратить некоторое время, чтобы научиться использовать Gettext ,
В мире с открытым исходным кодом gettext практически является стандартом де-факто.
Вот несколько причин, почему Gettext лучше, чем обычная альтернатива сохранения больших списков перевода массивов
- Это быстрее
- Это не требует загрузок каждой строки в память один раз в поток
- В нем много инструментов для переводчиков, таких как poedit, поэтому вы не полагаетесь на своих переводчиков, понимающих, как редактировать PHP-код.
- У него есть поддержка инструментов для вас, msgmerge и т. Д., Что означает, что вы можете отправить свой файл для перевода в процессе работы, добавив новый переводный текст и легко слить его обратно вместе.
- Нужно дать комментарий переводчику о контексте строки? gettext будет комментировать код, в котором он используется, и скопировать его в файл перевода
- Ключи перевода - это текст на английском языке, если он еще не переведен, но текст по-прежнему отображается на простом английском языке, ни один из них решения, данные по этому ответу на сегодняшний день, получают это право.
- Он поддерживает множественное число, если строка зависит от целого числа, на английском языке существует только две формы:
if n != 1 "There was a person" else "There were n people"
. Для других языков правило не так просто, как если бы (n! = 1), у русских есть 3 разных варианта, и правило равноn%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;
Для больших переводов я думаю, что это лучший вариант, но в моем случае это слишком много. –
Вы по-прежнему придерживаетесь своей рекомендации на сегодняшний день (февраль 2015 г.)? Что-нибудь еще появилось с 2012 года? – alexw
Компонент перевода symfony выглядит очень хорошо продуманным, но я никогда не использовал его. – dsas
- 1. PHP Локализация с gettext
- 2. Локализация PHP - gettext или массив?
- 3. Лучший способ локализовать сущность?
- 4. локализация пакета с gettext/intltool?
- 5. Локализация PyGObject GUI с помощью Gettext
- 6. локализация текста с использованием gettext
- 7. Классический ASP - Сайт локализация
- 8. Лучший способ локализовать записи базы данных
- 9. Локализация в сетке кендо с использованием углового-gettext?
- 10. XSD требуется небольшая помощь
- 11. Лучший способ загрузить сайт
- 12. Лучший способ интегрировать форум PHP на сайт Django?
- 13. лучший способ построить многоязычный сайт
- 14. Лучший способ организовать сайт root
- 15. Локализация и интернационализация в PHP
- 16. локализовать содержимое в PHP с помощью getttext?
- 17. Как локализовать сайт Django
- 18. Перлин Шум: требуется небольшая помощь
- 19. Лучший способ отправить автономный сайт
- 20. сайт asp.net, где одной странице требуется локализация по выбору пользователя
- 21. Локализация в веб-приложении ASP.NET MVC 5
- 22. Безопасный способ локализовать скрипты bash?
- 23. Is pictureBox лучший способ нарисовать линию
- 24. Laravel Request :: is() - есть ли лучший способ?
- 25. небольшая глубина сессии в php
- 26. Небольшая прозрачность, лучший опыт чтения?
- 27. требуется небольшая модификация в $ ('# id'). Attr(); query
- 28. Лучший способ реализовать многостраничный сайт в Vaadin
- 29. Лучший способ автоматического перенаправления на сайт
- 30. Локализация: Php и Javascript
+1 Хорошее решение для простого сайта – Tchoupi
Хотя решение хорошее, я бы по-прежнему рекомендовал маршрут gettext. Вы никогда не знаете, куда пойдет ваш сайт. Он может стать быстрее, и вам может потребоваться добавить дополнительные языки. Gettext не собирается занимать гораздо больше времени, чем это предлагаемое решение. – eakkas
Еще приятнее, что @NatlsGleek, так как эти файлы перевода могут быть отправлены другим людям для завершения. –