Как стать автором
Обновить

SonataMediaBundle. Русская версия перевода файла xliff

Время на прочтение10 мин
Количество просмотров3.3K
Доброго времени суток хабровчане. Во время работы над админ частью одного русскоязычного ресурса, появилась необходимость, что бы вся админка была на русском языке. В самой SonataAdminBundle файлик такой есть, и это не вызвывает сложностей. Но как оказалось, подключенная к AdminBundle другой Сонатовский бандл, а именно SonataMediaBundle не обладает таким интерфейсом. Собственно появилось необходимость перевести его, так как не нашел в сети. Что из этого получилось? Прошу под кат.

Собственно сам процесс назначения текущего языка в Symfony находится в файле app/config/config.yml находим там строчку translator: { fallback: %locale% } (если закомментирована, то раскоментируйте ее). После наш путь лежит в файл app/config/parameters.yml в нем находим строчку locale: en и меняем на locale: ru. Итак, саму Symfony к русскому языку мы подготовили.

Действия, который необходимо выполнить далее. Если у вас установлена Sonata (а я предполагаю что так и есть), то у вас в папке src должна быть папка Application в ней папка Sonata и при условии включения SonataMediaBundle должна появиться папка MediaBundle. Если так и есть, то идем туда. (Если такой не возникло, спрашивайте в комментах или пиши на мыло: sin666m4a1fox@gmail.com). В папке src/Application/Sonata/MediaBundle находим папку Resources, а в ней папку translations. Собственно в ней и создаем файл SonataMediaBundle.ru.xliff с таким содержимым:
SonataMediaBundle.ru.xliff
<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file source-language="en" datatype="plaintext" original="file.ext">
        <body>
        	<trans-unit id="default">
                <source>default</source>
                <target>По Умолчанию</target>
            </trans-unit>
            <trans-unit id="sidemenu.link_edit_media">
                <source>sidemenu.link_edit_media</source>
                <target>Редактировать</target>
            </trans-unit>
            <trans-unit id="sidemenu.link_media_view">
                <source>sidemenu.link_media_view</source>
                <target>Просмотр</target>
            </trans-unit>
            <trans-unit id="breadcrumb.link_media_create">
                <source>breadcrumb.link_media_create</source>
                <target>Создать</target>
            </trans-unit>
            <trans-unit id="breadcrumb.link_media_list">
                <source>breadcrumb.link_media_list</source>
                <target>Медиа</target>
            </trans-unit>
            <trans-unit id="breadcrumb.link_media_edit">
                <source>breadcrumb.link_media_edit</source>
                <target>Редактировать</target>
            </trans-unit>
            <trans-unit id="breadcrumb.link_media_view">
                <source>breadcrumb.link_media_view</source>
                <target>Просмотр</target>
            </trans-unit>
            <trans-unit id="breadcrumb.link_media_delete">
                <source>breadcrumb.link_media_delete</source>
                <target>Удалить</target>
            </trans-unit>
            <trans-unit id="breadcrumb.link_gallery_create">
                <source>breadcrumb.link_gallery_create</source>
                <target>Создать</target>
            </trans-unit>
            <trans-unit id="breadcrumb.link_gallery_list">
                <source>breadcrumb.link_gallery_list</source>
                <target>Галереи</target>
            </trans-unit>
            <trans-unit id="breadcrumb.link_gallery_edit">
                <source>breadcrumb.link_gallery_edit</source>
                <target>Редактировать</target>
            </trans-unit>
            <trans-unit id="breadcrumb.link_gallery_delete">
                <source>breadcrumb.link_gallery_delete</source>
                <target>Удалить</target>
            </trans-unit>
            <trans-unit id="media">
                <source>media</source>
                <target>Медиа</target>
            </trans-unit>
            <trans-unit id="gallery">
                <source>gallery</source>
                <target>Галерея</target>
            </trans-unit>
            <trans-unit id="title_select_provider">
                <source>title_select_provider</source>
                <target>Выбрать медиа поставщика</target>
            </trans-unit>
            <trans-unit id="no_provider_available">
                <source>no_provider_available</source>
                <target>Поставщик не доступен</target>
            </trans-unit>
            <trans-unit id="title.media_preview">
                <source>title.media_preview</source>
                <target>Предпросмтр</target>
            </trans-unit>
            <trans-unit id="title.media_thumbnail">
                <source>title.media_thumbnail</source>
                <target>Миниатюра</target>
            </trans-unit>
            <trans-unit id="title.informations">
                <source>title.informations</source>
                <target>Информация</target>
            </trans-unit>
            <trans-unit id="label.size">
                <source>label.size</source>
                <target>Размер</target>
            </trans-unit>
            <trans-unit id="label.width">
                <source>label.width</source>
                <target>Ширина</target>
            </trans-unit>
            <trans-unit id="label.height">
                <source>label.height</source>
                <target>Высота</target>
            </trans-unit>
            <trans-unit id="label.content_type">
                <source>label.content_type</source>
                <target>Тип контента</target>
            </trans-unit>
            <trans-unit id="label.copyright">
                <source>label.copyright</source>
                <target>Лицензия</target>
            </trans-unit>
            <trans-unit id="label.author_name">
                <source>label.author_name</source>
                <target>Автор</target>
            </trans-unit>
            <trans-unit id="label.cdn">
                <source>label.cdn</source>
                <target>Сеть доставки контента</target>
            </trans-unit>
            <trans-unit id="label.to_be_flushed">
                <source>label.to_be_flushed</source>
                <target>Flushable</target>
            </trans-unit>
            <trans-unit id="label.flushed_at">
                <source>label.flushed_at</source>
                <target>Опубликовано: </target>
            </trans-unit>
            <trans-unit id="label.public_url">
                <source>label.public_url</source>
                <target>Публичная Ссылка</target>
            </trans-unit>
            <trans-unit id="label.name">
                <source>label.name</source>
                <target>Имя</target>
            </trans-unit>
            <trans-unit id="label.file">
                <source>label.file</source>
                <target>Файл</target>
            </trans-unit>
            <trans-unit id="label.author">
                <source>label.author</source>
                <target>Автор</target>
            </trans-unit>
            <trans-unit id="label.enabled">
                <source>label.enabled</source>
                <target>Включить</target>
            </trans-unit>
            <trans-unit id="label.cdn_is_flushable">
                <source>label.cdn_is_flushable</source>
                <target>Flush CDN</target>
            </trans-unit>
            <trans-unit id="label.video_reference">
                <source>label.video_reference</source>
                <target>Изменить видео</target>
            </trans-unit>
            <trans-unit id="label.description">
                <source>label.description</source>
                <target>Описание</target>
            </trans-unit>
            <trans-unit id="title.formats">
                <source>title.formats</source>
                <target>Форматы</target>
            </trans-unit>
            <trans-unit id="label.select_context">
                <source>label.select_context</source>
                <target>Контекст: </target>
            </trans-unit>
            <trans-unit id="label.select_provider">
                <source>label.select_provider</source>
                <target>Тип : </target>
            </trans-unit>
            <trans-unit id="link.all_providers">
                <source>link.all_providers</source>
                <target>Все</target>
            </trans-unit>
            <trans-unit id="sonata.media.provider.dailymotion">
                <source>sonata.media.provider.dailymotion</source>
                <target>DailyMotion</target>
            </trans-unit>
            <trans-unit id="sonata.media.provider.youtube">
                <source>sonata.media.provider.youtube</source>
                <target>YouTube</target>
            </trans-unit>
            <trans-unit id="sonata.media.provider.vimeo">
                <source>sonata.media.provider.vimeo</source>
                <target>Vimeo</target>
            </trans-unit>
            <trans-unit id="sonata.media.provider.image">
                <source>sonata.media.provider.image</source>
                <target>Изображение</target>
            </trans-unit>
            <trans-unit id="sonata.media.provider.file">
                <source>sonata.media.provider.file</source>
                <target>Файлы</target>
            </trans-unit>
            <trans-unit id="label.protected_download_url">
                <source>label.protected_download_url</source>
                <target>Защищенная ссылка</target>
            </trans-unit>
            <trans-unit id="description.roles_download_strategy">
                <source>description.roles_download_strategy</source>
                <target>Медиа файлы могу быть добавленны пользователями с ролями : %roles%.</target>
            </trans-unit>
            <trans-unit id="label.protected_download_url_notice">
                <source>label.protected_download_url_notice</source>
                <target>Предупреждения</target>
            </trans-unit>
            <trans-unit id="description.public_download_strategy">
                <source>description.public_download_strategy</source>
                <target>Медиа файлы могут быть добавлены кем угодно.</target>
            </trans-unit>
            <trans-unit id="description.forbidden_download_strategy">
                <source>description.forbidden_download_strategy</source>
                <target>Медиа файлы не могут быть добавленны никем.</target>
            </trans-unit>
            <trans-unit id="link.test_protected_url">
                <source>link.test_protected_url</source>
                <target>Ссылка для скачивания</target>
            </trans-unit>
            <trans-unit id="label.edit_with_pixlr">
                <source>label.edit_with_pixlr</source>
                <target>Редактировать файлы с помощью Pixlr</target>
            </trans-unit>
            <trans-unit id="label.pixlr_warning">
                <source>label.pixlr_warning</source>
                <target>
                    <![CDATA[
                        <span class="label important">Important</span> you are going to expose the media to an <strong>external service</strong>. <br />
                        If you are working on confidentiel materials, please do not use this service.
                    ]]>
                </target>
            </trans-unit>
            <trans-unit id="label.pixlr_express_editor">
                <source>label.pixlr_express_editor</source>
                <target>
                    <![CDATA[
                        <strong style="color: white">Express Editor</strong> <br />
                        Simple interface for quick editing
                    ]]>
                </target>
            </trans-unit>
            <trans-unit id="label.pixlr_advanced_editor">
                <source>label.pixlr_advanced_editor</source>
                <target>
                    <![CDATA[
                        <strong style="color: white">Advanced Editor</strong> <br />
                        Experimented users only
                    ]]>
                </target>
            </trans-unit>
            <trans-unit id="form.label_enabled">
                <source>form.label_enabled</source>
                <target>Включить</target>
            </trans-unit>
            <trans-unit id="form.label_media">
                <source>form.label_media</source>
                <target>Средняя</target>
            </trans-unit>
            <trans-unit id="form.label_position">
                <source>form.label_position</source>
                <target>Позиция</target>
            </trans-unit>
            <trans-unit id="form.label_context">
                <source>form.label_context</source>
                <target>Контекст</target>
            </trans-unit>
            <trans-unit id="form.label_name">
                <source>form.label_name</source>
                <target>Имя</target>
            </trans-unit>
            <trans-unit id="form.label_default_format">
                <source>form.label_default_format</source>
                <target>Формат</target>
            </trans-unit>
            <trans-unit id="form.label_gallery_has_medias">
                <source>form.label_gallery_has_medias</source>
                <target>Медиа</target>
            </trans-unit>
            <trans-unit id="form.label_author_name">
                <source>form.label_author_name</source>
                <target>Автор</target>
            </trans-unit>
            <trans-unit id="form.label_cdn_is_flushable">
                <source>form.label_cdn_is_flushable</source>
                <target>Flush CDN</target>
            </trans-unit>
            <trans-unit id="form.label_description">
                <source>form.label_description</source>
                <target>Описание</target>
            </trans-unit>
            <trans-unit id="form.label_copyright">
                <source>form.label_copyright</source>
                <target>Лицензия</target>
            </trans-unit>
            <trans-unit id="list.label_enabled">
                <source>list.label_enabled</source>
                <target>Включить</target>
            </trans-unit>
            <trans-unit id="list.label_name">
                <source>list.label_name</source>
                <target>Имя</target>
            </trans-unit>
            <trans-unit id="list.label_context">
                <source>list.label_context</source>
                <target>Контекст</target>
            </trans-unit>
            <trans-unit id="list.label_default_format">
                <source>list.label_default_format</source>
                <target>Формат</target>
            </trans-unit>
            <trans-unit id="list.label__action">
                <source>list.label__action</source>
                <target>Действие</target>
            </trans-unit>
            <trans-unit id="list.label_custom">
                <source>list.label_custom</source>
                <target>Пользовательский</target>
            </trans-unit>
            <trans-unit id="filter.label_name">
                <source>filter.label_name</source>
                <target>Имя</target>
            </trans-unit>
            <trans-unit id="filter.label_provider_reference">
                <source>filter.label_provider_reference</source>
                <target>Ссылка на поставщика</target>
            </trans-unit>

            <trans-unit id="filter.label_enabled">
                <source>filter.label_enabled</source>
                <target>Включить</target>
            </trans-unit>

            <trans-unit id="filter.label_context">
                <source>filter.label_context</source>
                <target>Контекст</target>
            </trans-unit>
        </body>
    </file>
</xliff>



Переводил это дело сам, и где то используя google translation поэтому могут быть (а наверно и есть) ошибки, но вы вольны менять значения русской версии по своему усмотрению и по своим требованиям.

P.S. Если что то лишнее в файле затесалось, то прошу прощения, возможно строки из проекта и там засветились. Собственно вот и все. Простой способ сделать в SonataMediaBundle свой перевод кнопок и строк. Всем удачи. До новых встреч.

P.S.S Не нашел как оформить файл xliff ибо хабровский source сбрасывает и делает не реальным чтение файла. Уж простите, может кто подскажет :)
Теги:
Хабы:
+3
Комментарии5

Публикации

Изменить настройки темы

Истории

Работа

PHP программист
162 вакансии

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн