Подтвердить что ты не робот

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

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

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

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

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

enter image description here

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

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

4b9b3361

Ответ 1

Я не видел другого и, вероятно, по следующей причине. Несмотря на то, что он говорит на веб-сайте 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 сверху вниз, а некоторые даже не имеют пробела.
  • даты? США, японский, британский, венгерский, как все разные
  • валютные и числовые форматы, даже не запускайте меня.

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

Ответ 2

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

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

Ответ 3

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