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

    Доброго времени суток хабровчане. Во время работы над админ частью одного русскоязычного ресурса, появилась необходимость, что бы вся админка была на русском языке. В самой 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 сбрасывает и делает не реальным чтение файла. Уж простите, может кто подскажет :)
    Метки:
    Поделиться публикацией
    Комментарии 5
    • 0
      Статья о том, как вы перевели один файл?

      p.s. текст SonataMediaBundle.ru.xliff лучше под кат
      • 0
        Именно про это. В свое время искал такой файл, что бы не тратить время, но не нашел. А так как харб — это ценный ресурс, то мне кажется если кто будет искать перевод, что бы сберегти свое время, его тут найдет. Разве нет?
        • +2
          Сделайте pull request на github. Вот это сможет сберечь время.
          • 0
            Вариант. Спасибо.
            • 0
              Я бы сказал, что с этого надо было начинать.
              В любом случае, спасибо Вам за труд.

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.