У кого-то есть скрипт для извлечения определенных строк из файлов XML, чтобы разрешить их перевод через файлы CSV или PO.

Это мой первый вопрос здесь, обычно я даю ответы ;-)

Что ж, я ищу скрипт для извлечения некоторых конкретных строк, установленных в system.xml, XML-файлы макета или аналогичные, которые Magento использует для их перевода. Пример: метки, пункт меню или что-то еще.

У меня есть скрипт для извлечения их из файлов php и phtml благодаря gettext и преобразования их в файл переносимых объектов, затем я использую файл PO для перевода строк благодаря программному обеспечению OmegaT, и, наконец, у меня также есть скрипт PHP CLI для преобразования переведенные файлы из PO в файлы CSV.

Magento переводит эти xml-файлы, используя модуль и информацию об элементе, предоставленную благодаря атрибутам "translate='element_to_translate'" и "module='mymodule'", помещенным в элемент (например, блок или действие) внутри с помощью помощника.

Вот пример кода xml, который я хочу извлечь, чтобы позволить мне его перевести. Здесь я хотел бы перевести значение элемента «метка» благодаря модулю «продажи», как вы видите ниже, атрибуты в коде XML могут быть полезны для извлечения этой информации:

<customer_account>
        <reference name="customer_account_navigation" >
            <action method="addLink" translate="label" module="sales"><name>billing_agreements</name><path>sales/billing_agreement/</path><label>Billing Agreements</label></action>

или другой пример:

<block type="customer/account_navigation" name="customer_account_navigation" before="-" template="customer/account/navigation.phtml">
                <action method="addLink" translate="label" module="customer"><name>account</name><path>customer/account/</path><label>Account Dashboard</label></action>
                <action method="addLink" translate="label" module="customer"><name>account_edit</name><path>customer/account/edit/</path><label>Account Information</label></action>
                <action method="addLink" translate="label" module="customer"><name>address_book</name><path>customer/address/</path><label>Address Book</label></action>
            </block>
        </reference>
</customer_account>

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

Спасибо за ваши отзывы.


person Sylvain Rayé    schedule 03.01.2013    source источник


Ответы (4)


Я сделал модуль для извлечения строк для прямого перевода в CSV-файлы в формате Magento. Если я правильно помню, он обрабатывает конфигурацию и системный xml, хотя не уверен насчет макета.
Попробуйте и не стесняйтесь улучшать его :)

https://bitbucket.org/OSdave/languagecsv

person OSdave    schedule 03.01.2013
comment
Спасибо за ваш отзыв. я взгляну - person Sylvain Rayé; 04.01.2013
comment
Привет, это очень близко к тому, что я ищу. Он выполняет перевод файла system.xml. Мне также нужны XML-файлы макета, но основные есть, я улучшу их и поделюсь с вами в репозитории. Я уже сделал некоторые косметические улучшения. Спасибо. Я поставлю этот ответ как ответ, когда закончу. - person Sylvain Rayé; 04.01.2013
comment
Я рад, что вы нашли это полезным. Дайте мне знать, если я могу помочь с модулем - person OSdave; 04.01.2013
comment
На самом деле, я помог ;-) См. репозиторий git. Я изменил его, чтобы он работал со всеми xml-файлами, включенными в папку модуля, и со всеми XML-файлами макета, используемыми модулем, благодаря разбору файла config.xml. Ваш модуль помог мне сделать модуль, отвечающий моим потребностям. Спасибо - person Sylvain Rayé; 07.01.2013

Ознакомьтесь с круговым инструментом Брайана Шнабеля XML – XLIFF: http://sourceforge.net/projects/xliffroundtrip/

xliffRoundTrip автоматизирует обмен данными между любым файлом XML и XLIFF. Он состоит из 2 файлов XSL + исходный код Java. Первый преобразовывает XML в XLIFF. Второй преобразовывает этот XLIFF обратно в исходный XML, то есть после языкового перевода в файле XLIFF.

Брайан является давним членом OASIS XLIFF технического сообщества.

person Doug Domeny    schedule 04.01.2013
comment
Спасибо за ваш отзыв. Это интересный инструмент, и да, я могу использовать файл XLIFF в OmegaT. Решение, предоставленное @OSDave, похоже, больше подходит для Magento. Это определенно помогает легко переводить модули Magento. Ваше решение также является хорошей альтернативой. - person Sylvain Rayé; 04.01.2013

Существуют профессиональные инструменты перевода, такие как, например, SDL Trados, которые делают такие вещи. С помощью trados вы не конвертируете его в csv, а в xliff, который является стандартным форматом для файлов перевода.

person Remy    schedule 04.01.2013
comment
Привет и спасибо за ваш отзыв. Я не ищу программу для перевода строк. Я ищу способ извлечь строки из файла XML, отформатированного Magento, как в моем примере, чтобы использовать мое любимое программное обеспечение для перевода. Я не думаю, что SDL Trados может это сделать. - person Sylvain Rayé; 04.01.2013
comment
Какое ваше любимое программное обеспечение для перевода? Trados может экспортировать файлы XLIFF. - person Remy; 04.01.2013
comment
Это OmegaT, но я понимаю, что вы имеете в виду, и вы правы, но это не совсем то, что я ищу. Я имею в виду наличие дополнительного формата, а затем объединение в файл PO (у меня есть другие строки из моего кода для объединения со строками XML), а затем преобразование в файл CSV. Это делает больше работы и шансов иметь проблемы с некоторыми специальными строками. Дуг предоставляет бесплатное некоммерческое программное обеспечение, предназначенное для тех же целей, что и Trados. И, как я сказал Дугу, я предпочитаю решение @OSDave, потому что я использую Magento, и его модуль извлекает почти все, что мне нужно, в файл CSV. - person Sylvain Rayé; 04.01.2013

SDL Trados Studio позволяет создавать собственные правила для обработки xml-файлов. SDL называет их «типами файлов». См. основное введение здесь: http://producthelp.sdl.com/kb/Articles/5274.html

Типы файлов позволяют указать, какие элементы и атрибуты являются (не)переводимыми.

SDL Trados Studio не позволяет вам оценивать «переводимость» элемента на основе атрибута в родительском элементе.

Другими словами:

  • если вам всегда нужно переводить элемент этикетки: SDL Trados Studio может справиться с этим, если вы создаете тип файла. Атрибут перевода элемента действия бесполезен.
  • если вам не всегда нужно переводить элемент метки, но вы хотите оценить его на основе атрибута перевода, вам действительно нужен скрипт для предварительной обработки (и последующей постобработки). Но поскольку вы создаете свой собственный XML-файл, я полагаю, вы могли бы создать его таким образом, чтобы переводимый контент находился в идентифицируемом элементе.

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

person Ken de wachter    schedule 07.12.2016