Как убедить коллег-программистов использовать Gettext? - PullRequest
5 голосов
/ 29 апреля 2009

Я успешно использовал GNU Gettext во многих проектах, в которых работал, но на своей последней работе я неожиданно оказался вынужденным работать с действительно неловкой системой локализации.

Текущая система хранит переводы в базе данных, и добавление нового перевода выглядит примерно так:

  • добавить вызов функции с ключом перевода в исходный код, например, print translate('foo');
  • добавить несколько операторов SQL INSERT в файл translations.sql.
  • создать файл с именем (current revision nr + 1).sql
  • выполнить файл .sql в базе данных.
  • зафиксировать ваши изменения (до того, как кому-то еще удастся зафиксировать и изменить текущий номер ревизии).

Весь этот процесс полностью ручной, и вы должны повторить почти все, даже если вам нужно исправить небольшую опечатку. Нет поддержки множественных форм. Вся база переводов находится в беспорядке, поскольку переводы почти никогда не удаляются из нее - только добавляются и обновляются.

Я попробовал несколько аргументов, чтобы убедить других разработчиков (особенно одного конкретного разработчика):

  • Я говорил о том, что Gettext является стандартом, и что для работы с PO-файлами доступно множество инструментов.
  • Я пытался объяснить, что хранение переводов в базе данных не имеет преимуществ по сравнению с сохранением их в текстовом файле - мы просто извлекаем переводы из базы данных по ключу, ничего более.
  • Другой разработчик работает над PHP-частью нашего приложения, и в PHP встроен Gettext. Я работаю над JavaScript, у которого нет поддержки Gettext, но в прошлом я создавал свои собственные инструменты для этого.
  • Наше приложение не такое большое, что преобразование из старой системы в Gettext заняло бы много времени, даже если это было сделано вручную, и я совершенно уверен, что его можно легко автоматизировать.
  • Я даже успешно использовал Gettext для одного небольшого приложения в нашей компании.

Но люди все еще не убеждены. Что я могу делать не так?

Edit:

Через несколько месяцев после публикации этого вопроса мы наконец-то перешли на Gettext. Когда нам нужно было поддерживать более двух языков, недостатки нашей нынешней системы стали более очевидными для тех, кто до сих пор сопротивлялся.

Ответы [ 3 ]

6 голосов
/ 29 апреля 2009

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

Вам нужно, чтобы они поняли, что на самом деле это проблема, которую нужно решить.

Edit:
Рад, что в конце концов вы попали туда, кажется, что второй язык заставил их признать слона в комнате!

2 голосов
/ 29 апреля 2009

Некоторые проблемы могут быть:

Недостаточная осведомленность о Gettext. Если разработчики не знают о библиотеке, они не будут ее использовать.

Несовместимая лицензия с лицензией GPL. Могут быть юридические причины, по которым его нельзя использовать.

Не вижу необходимости переписывать. Если разработчики достаточно довольны текущей системой, они могут не увидеть никаких преимуществ при переходе на Gettext.

2 голосов
/ 29 апреля 2009

Я вижу несколько вариантов для вас:

  • Вы можете попытаться оценить сэкономленное время (деньги), используя ваш метод.
  • Вы могли бы показать (демо?), Насколько легче поддерживать (меньше головной боли).
  • Вы можете пойти дальше и использовать уже установленную систему.
...