Интерфейс PHP-трансляции похож на Rosetta?

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

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

Вы знаете автономный интерфейс на основе PHP, совместимый с конечным пользователем, который поддерживает один из адаптеров, предлагаемый Zend_Translate – в идеале gettext или csv?

Что-то вроде Rosetta Python's / Django, но на PHP? Розетта делает именно то, что мне нужно:

введите описание изображения здесь

но я очень хотел бы остаться с PHP здесь для причин установки сервера.

SimplePO выглядит так, как будто он идет в правильном направлении, но слишком прост – он, похоже, не способен обрабатывать несколько языков и каталогов, а также множественные числа.

Related of "Интерфейс PHP-трансляции похож на Rosetta?"

Я не видел другого и, вероятно, по следующей причине. Несмотря на то, что он говорит на веб-сайте SimplePO, переводчики не любят и часто не будут работать в системах перевода бок о бок, как показано выше.

Именно так программисты предполагают, что переводчики будут работать, и это неверно. Переводчики работают с набором инструментов, который называется TMX, Translation Memory Exchange (общее имя см. В Okapi для реализации с открытым исходным кодом, чтобы понять), и в этом они создают словари перевода для слов, фраз и предложений. Они берут файл различных форматов и подают его в программное обеспечение TMX, это дает им первый проход, который переводится на 60%, 70% и т. Д., Но, как и API-интерфейс Google, ужасно искажен с точки зрения смысла на целевом языке.

Затем они переводят слова, которые не обрабатываются TMX, добавляя к словарям, где логично, и они их коллоквиализуют, то есть делают работу на целевом языке и понимают ее. По этой причине переводчик всегда должен переводить на родной язык.

Они делают это таким образом по ряду причин: а) он имеет смысл и работает, уменьшает их рабочую нагрузку и б), поскольку они получают оплату за слово и выполнять бок о бок перевод не позволяют им использовать свои инструменты и максимизировать их доходы.

Что хотят переводчики – это файл в формате, который вы можете экспортировать, они могут импортировать и переводить, экспортировать и отправлять обратно вам для импорта.

Форматы файлов могут быть csv, rtf, tmx, xliff, gettext, и если вы читаете документы платформы Symfony, вы можете увидеть, как они это делают и обрабатывают (на мой взгляд, они неплохо работают).

Сказав все, что я был в аналогичной позиции около 8 лет назад, когда мне пришлось писать сайт на английском, французском, немецком, венгерском и словацком языках, я сделал то же самое, что и SimplPO, и просто написал свое собственное бок о бок приложение, чтобы это сделайте. Однако компания, на которой мы писали заявку, сделала все свои переводы в доме, поэтому мы не попали в проблему с переводчиками. Когда мы это сделали, мы написали экспорт в RTF и импорт из RTF (что само по себе является ошеломляющим), поэтому переводчики могут функционировать, как указано выше.

Однако SimplePO – единственная реализация идеи, которую я видел. В таких структурах, как Zend, кажется, вы просто создаете теги lookup для замены слов и фраз и не создаете никакого управления в приложении для управления процессом. Следовательно, вскоре он выходит из-под контроля, и его обслуживание становится как сложным, так и дорогостоящим.

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

Одной из причин его эффективности является то, что i18n и l10n – это много других вещей, кроме языка.

  • Смотреть и чувствовать. Англо-саксоны, такие как прохладные цвета и шрифты с засечками, латиноамериканские народы, такие как лица типа Serif и яркие цвета. И когда вы пересекаете другие культуры, ожидания сильно различаются по макетам, типам, цветам и т. Д.
  • Французский и в какой-то степени немецкий на 30% длиннее, более многословный, чем эквивалентный английский, так что макет попадает в ад в ручную корзину очень быстро.

  • Семитский язык работает справа налево

  • Японский и другие языки, которые не основаны на алфавите, могут запускать ltr rtl сверху вниз, а некоторые даже не имеют пробела
  • даты? США, японский, британский, венгерский, как все разные
  • валютные и числовые форматы, даже не запускайте меня

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

Если вы можете использовать gettext-файлы (Zend_Translate поддерживает их), вы можете попробовать POEdit . Он очень прост в использовании и поддерживает множественные формы с версии 1.3.

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

Вы можете попробовать Transtable , простое web intefece для редактирования переводов в php-массивах.