2012-05-21 2 views
2

Я использую gettext для написания многоязычного веб-приложения php.Как правильно писать PHP с многоязычными элементами?

Что лучший способ на самом деле с помощью Gettext, я могу использовать его в качестве ключевой фразы:

echo (_("main.welcomeText.1")); 

Или

echo (_("Welcome to my site, we build great webapps.")); 

В обоих случаях я использую файл .po, чтобы перевести запрос конечно.

Каков лучший способ?

+2

Возможный дубликат [Почему люди используют простой английский язык как переводчики?] (Http://stackoverflow.com/questions/4232922/why-do-people-use-plain-english-as-translation-placeholders) – JJJ

+0

Спасибо за комментарий, но эта нить не сосредоточена на том, что лучше, но больше на причинах, по которым люди используют keyphrased. – Tzvi

ответ

2

Это зависит :):

  • вы хотите лучше отладки
  • вы хотите точный перевод
  • вы хотите скорость программирования
  • вы хотите переводчик не зависит от разработчика, чтобы перевести (невозможно из-за разработчик не пишет надлежащего английского ... французский, индийский [включить родной и не родной dev])
  • Вы хотите лучшее из 2 миров

Лучший преподается путь main.welcomText.1, потому что:

  • Вы будете использовать его в много места (возможно), чтобы скопировать прошлое проще и менее подвержен ошибкам.
  • Ключ имеет число, которое проще искать или сортировать при возникновении ошибок, т. Е.: ... Плохая клавиша - error.errorCode.321 вместо «Плохие вещи, произошедшие в классе xy при использовании null»
  • Ключ покройте «смысл/семантика», поэтому вам нужно немного подтолкнуть свой ум, чтобы структурировать/определить ваши сообщения, например: main.hello или greeting.formal или приветствие. Дружная ведьма отличается от перевода (т. е. «Привет», , «Добро пожаловать», «Привет»)
  • Бонус: Вы можете уменьшить объем перевода структурируя ключей с использованием всегда один и тот же ключ (в более простой способ думать о рефакторинга

с помощью «Добро пожаловать в мой. сайт, мы создаем великолепные веб-приложения ». Упростите чтение и переводчик для перевода , но менее легко исправить/отладить, особенно если в коде много времени.

Так ключи используются для отладки, поэтому они должно быть проще найти где в вашем коде они есть.

EDIT: Предоставить базовый английский перевод именно:

main.welcomeText.1: Добро пожаловать на мой сайт, мы строим большой WebApps.

Это больше работ для разработчика в краткосрочной перспективе. Но мало кто в большом проекте :)

+1

Спасибо, но мой переводчик увидит все ключи, кто он будет знать, как перевести на источник? – Tzvi

+0

отредактирован с учетом вашего комментария. – Krilivye

0

Я никогда не использовал gettext ... и никогда не знал никого, кто имеет.

Я бы предложил другой подход, то есть использовать Smarty/Dwoo для полного разделения презентации.Используя это, вы можете иметь очень простые файлы конфигурации/языка для интернационализации.

+0

Каким образом удается полностью отделить презентацию? В какой-то момент вам нужно указать в коде, который вы хотите предупредить (msg1), не так ли? Я был бы рад узнать больше об этом, так как я тоже на нем! – Sebas

+0

Да, я тоже, как? – Tzvi

Смежные вопросы