В настоящее время я переношу веб-приложение из подхода интернационализации на основе базы данных (каждое слово, имеющее запись в таблице переводов, и фактический перевод) в один на Zend_Translate
файлов Zend_Translate
и CSV.
Мне нужно предоставить удобный и удобный способ для быстрого и удобного обновления этих переводов. В идеале, чтобы свести к минимуму риск взлома файлов, пользователи не будут редактировать файлы CSV напрямую, но будут показаны хорошие формы с полями.
Вы знаете автономный интерфейс на основе PHP, совместимый с конечным пользователем, который поддерживает один из адаптеров, предлагаемый Zend_Translate
– в идеале gettext или csv?
Что-то вроде Rosetta Python's / Django, но на PHP? Розетта делает именно то, что мне нужно:
но я очень хотел бы остаться с PHP здесь для причин установки сервера.
SimplePO выглядит так, как будто он идет в правильном направлении, но слишком прост – он, похоже, не способен обрабатывать несколько языков и каталогов, а также множественные числа.
Я не видел другого и, вероятно, по следующей причине. Несмотря на то, что он говорит на веб-сайте 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 – это много других вещей, кроме языка.
Французский и в какой-то степени немецкий на 30% длиннее, более многословный, чем эквивалентный английский, так что макет попадает в ад в ручную корзину очень быстро.
Семитский язык работает справа налево
Очень жаль продолжать и подытоживать: – Для простой стороны, чтобы просто написать ее самостоятельно, взял меня около двух недель без каких-либо фреймворков и работал над этим, поскольку я пошел только с заменой бирки. Но больше и подумайте, что вы делаете. Внимательно.
Если вы можете использовать gettext-файлы (Zend_Translate поддерживает их), вы можете попробовать POEdit . Он очень прост в использовании и поддерживает множественные формы с версии 1.3.
Тем не менее, пользователям придется загружать файлы и повторно загружать их в конце, потому что POEdit не является онлайн-инструментом. Я не знаю другого веб-инструмента.
Вы можете попробовать Transtable , простое web intefece для редактирования переводов в php-массивах.