Мэтт Малленвег, соучредитель WordPress и генеральный директор Automattic, дал интервью Джошу Янссену, где он заявил, что в мае этого года неанглоязычные загрузки WordPress впервые превысили английские загрузки.
Эта тенденция продолжается с WordPress 4.0, который делает локализованные сайты WordPress намного проще в установке и обслуживании. WordPress 4.0 теперь дает вам возможность скачать WordPress на выбранном вами языке. Это сделает процесс установки быстрым для не говорящих по-английски. В предыдущих версиях WordPress английский язык был по умолчанию, а другие языки рассматривались как исключения. WordPress 4.0 делает все языки одинаково доступными. Это изменение, несомненно, сделает WordPress еще более популярным во всем мире.
Целью этих новых функций в WordPress 4.0 является увеличение числа международных пользователей WordPress, которые ранее не могли использовать WordPress из-за языковых трудностей. Более того, согласно данным eMarketer, страны Азиатско-Тихоокеанского региона, такие как Китай, Япония, Индия, Южная Корея и Индонезия, по прогнозам, обгонят Северную Америку по объемам продаж электронной коммерции от бизнеса к потребителю.
Что это значит для вас как разработчика темы или плагина? Во-первых, это означает, что ваш продукт должен быть готов к локализации. Все тексты должны быть заключены в вызовы `gettext`, чтобы пользователи могли запускать его на других языках; однако интернационализация — это только первый шаг. Во многих странах возможность управлять сайтом только на одном языке является серьезным ограничением. Чтобы по-настоящему выйти на мировой рынок и использовать огромный потенциал за пределами англоязычного рынка, ваши продукты также должны быть готовы к использованию на нескольких языках.
К счастью, с WPML запускать многоязычные сайты легко. Мы опишем семь лучших рекомендаций, которым нужно следовать, чтобы ваши темы и плагины отлично работали как на одноязычных, так и на многоязычных сайтах. Следуя этим простым рекомендациям и придерживаясь четкого кодирования, ваши продукты могут обеспечить работу многоязычных сайтов.
Как конечные пользователи будут переводить и к чему нужно готовиться
Когда вы разрабатываете свою тему, очень важно понимать, как ваши конечные пользователи будут переводить свои сайты. Как только вы поймете их точку зрения, вы поймете, что вам нужно сделать, чтобы ваша тема была многоязычной.
Типичная тема отображает верхний и нижний колонтитулы, меню, виджеты, контент и ваши собственные пользовательские элементы. Вот пример сайта WooCommerce, основанного на модифицированной теме Twentyfourteen:
WPML позволяет переводить все стандартные элементы WordPress. Это включает:
-
меню
-
Стандартные виджеты
-
Элементы навигации
-
Все тексты обернуты в вызовы `gettext`
-
Опубликовать контент, включая пользовательские поля и таксономию
-
Товары
-
Варианты темы
-
Изображения и связанные с ними строки
Вам не нужно ничего добавлять в свой код, чтобы разрешить перевод всех этих разделов. Обязательно обратите внимание на ваши пользовательские элементы, чтобы ваши пользователи тоже могли их перевести.
Ниже приведена таблица, в которой обобщено, как конечный пользователь будет переводить стандартные элементы сайта с WPML.
Что конечные пользователи могут перевести с помощью WPML
Переведите заголовок, используя WPML String Translation Tool. |
|
Поскольку он не является частью какого-либо поста, страницы или таксономии, нам нужно использовать перевод строк WPML для его перевода. Перейдите в WPML-> Перевод строк, найдите строку по ее содержимому ( название сайта ) и переведите. |
|
Перевести меню WordPress |
|
Когда вы зайдете в Внешний вид> Меню, вы увидите элементы управления переводом меню WPML. Узнайте больше о переводе меню, чтобы увидеть, как это работает. |
|
Перевести пользовательские темы или элементы плагинов |
|
Многие темы или плагины имеют уникальные функции, которые хранят тексты в таблице wp_options . Вводное сообщение от Resort делает это точно. Тема или плагин сохраняет эти тексты в таблице wp_options, и нам нужно указать WPML для их перевода. Мы добавляем эту информацию в файл конфигурации языка . Там мы сообщаем WPML, какие записи в таблице wp_options требуют перевода. Эта методика хороша, когда ключи фиксированы (как в большинстве тем). Если ваша тема использует массивы записей, которые могут увеличиваться в зависимости от пользовательского ввода, необходимо динамически регистрировать эти записи. Используйте WPML-функции icl_register_string и icl_t, чтобы сделать это. |
|
Перевод почтового тела |
|
WPML позволяет пользователям легко переводить контент. Экраны постредактирования включают элементы управления переводом WPML , позволяющие создавать новые переводы и редактировать существующие. Вам не нужно ничего делать в теме или плагине, чтобы это произошло. Перевод контента является основной функцией WPML. Что вам нужно проверить, так это то, что любой текст, добавляемый вашей темой в вывод, является переводимым. Если вы новичок в использовании GetText, узнайте больше об этом в наших FAQ по переводу текстов тем . |
|
Перевести виджеты с помощью перевода строки |
|
WPML позволяет пользователям переводить содержимое текстовых виджетов. Он также переводит названия всех других виджетов. Если ваша тема или плагин создает свои собственные виджеты, убедитесь, что вы пропускаете их заголовки через стандартные фильтры WordPress. Таким образом, WPML позволит пользователям переводить заголовки ваших виджетов через экран перевода строк. |
|
Перевод нижнего колонтитула |
|
Некоторые темы имеют собственный экран администратора для хранения текстов нижнего колонтитула. Как и другие тексты, которые мы видели, тема или плагин также сохраняли тексты нижнего колонтитула в таблице wp_options . Мы добавим эти записи в файл конфигурации языка , сказав WPML перевести их. |
Чтобы получить подробное объяснение того, как конечные пользователи будут использовать WPML, посетите наш учебник по достижению совместимости с WPML.
Вам не нужно переписывать всю тему или плагин, потому что WPML все это обрабатывает. Этот урок не так сложен, как восхождение на гору Эверест, но есть несколько вещей, которые вам нужно будет отредактировать, чтобы облегчить работу вашего конечного пользователя.
Теперь, когда мы рассмотрели, как люди будут переводить стандартные элементы WordPress, давайте вместе рассмотрим, что вы должны сделать, чтобы обеспечить многоязычную совместимость для ваших пользовательских элементов.
Топ-7 лучших практик, которые сделают вашу тему мультиязычной и совместимой с WooCommerce
1. Добавьте функции GetText в жестко закодированный текст
Для плагинов или тем не забудьте обернуть свой жестко запрограммированный текст в функции `gettext`. Это включает в себя заголовок, нижний колонтитул и текст виджета. Ваши файлы шаблона отображают ассортимент информации о продукте и жестко закодированный текст. Например, большинство шаблонов будут содержать название продукта и ссылку «купить». Название продукта происходит из базы данных, поэтому вам не нужно беспокоиться о его переводе.
Вы должны убедиться, что все жестко закодированные тексты являются переводимыми, используя функции `gettext`.
Хорошо |
Плохо |
<p> <? php _e (‘Подобные товары:’, ‘my-textdomain’)?> </ p> <input type = ”button” name = ”buy-button” value = ”<? php esc_attr_e (‘Buy now!’, ‘my-textdomain’)?>” /> |
<p> <? php echo ‘Подобные товары:’; ?> </ P> <input type = ”button” name = ”buy-button” value = ”Купить сейчас!” /> «Аналогичные продукты» и «Купить сейчас!» Не включаются в вызовы GetText. |
Убедитесь, что вы используете textdomain вашей темы для всех вызовов GetText.
2. Используйте функции API для ссылки на страницы WooCommerce
Многие темы электронной коммерции включают специальные страницы, такие как «корзина» или «учетная запись». Тема часто включает ссылки на эти страницы, появляющиеся на каждой странице сайта.
Если вы используете меню WordPress для этих ссылок, у вас все должно быть в порядке. WPML отображает разные меню WordPress для каждого языка, поэтому ссылки на эти «специальные страницы» будут разными для каждого языка. Однако если вы жестко закодируете эти ссылки в файлах шаблонов, вам нужно разрешить WPML заменять ссылки ссылками на эти страницы на нужном языке.
Правильный способ ссылки на специальные страницы WooCommerce — использование функций API WordPress и идентификаторов страниц WooCommerce. WooCommerce Многоязычный фильтр вызывает get_option () с идентификаторами страницы WooCommerce. Он вернет идентификатор страницы на текущем языке.
Хорошо |
Плохо |
<a href=veloper<?php echo get_permalink(get_option(‘woocommerce_shop_page_id’)) ?> »> <? php _e (« Страница магазина »,« my-textdomain »)?> </a> <a href=veloper<?php echo get_permalink(wc_get_page_id(‘shop’)) ?> »> <? php _e (« Страница магазина »,« my-textdomain »)?> </a> ‘shop’ — это фрагмент страницы на языке по умолчанию. |
<a href=veloper<?php echo get_permalink(5) ?> »> <? php _e (« Страница магазина »,« my-textdomain »)?> </a> Идентификатор «страницы магазина» жестко запрограммирован. Это будет по-разному для разных сайтов и для разных языков. <a href=veloper/shop договор> <? php _e («Страница магазина», «my-textdomain»)?> </a> URL «страницы магазина» жестко запрограммирован. Это будет по-разному для разных языков. |
3. Добавить многоязычные готовые списки продуктов
Если вы используете шорткоды WooCommerce для отображения списка товаров, все готово. WooCommerce загрузит продукты на правильном языке и отобразит их.
Если вы предпочитаете загружать продукты вручную, используя собственный код, убедитесь, что вы используете вызовы WordPress API или WooCommerce API. Если вы обращаетесь к базе данных напрямую, WPML не будет фильтровать ваш звонок, и вы получите сочетание всех продуктов на всех языках.
Хорошо |
Плохо |
[featured_products per_page = ”12 ″ колонок =” 4 ″] [идентификатор продукта = ”99 ″] (Больше) <? php $ products = get_posts (array (‘post_type’ => ‘product’, ‘suppress_filters’ => 0)); ?> <? PHP $ args = array ( ‘post_type’ => ‘product’, ‘posts_per_page’ => 10, ); $ products = new WP_Query ($ args); ?> |
<? php $ products = get_posts (array (‘post_type’ => ‘product’)); ?> По умолчанию для параметра suppress_filters будет установлено значение true, что исключает фильтрацию языка. $ products = $ wpdb-> get_results ($ wpdb-> prepare («SELECT * FROM {$ wpdb-> posts} WHERE post_type = ‘product’ ORDER BY ID DESC LIMIT% d», 10)); WPML не фильтрует низкоуровневые SQL-запросы. Все продукты на всех языках будут возвращены. |
После того, как вы загрузили нужные продукты, вам не нужно беспокоиться о языках при их отображении. Каждый продукт будет иметь свои собственные поля с информацией на правильном языке.
4. Добавить мультивалютные способы оплаты
Некоторые глобальные сайты электронной коммерции нуждаются как в нескольких языках, так и в нескольких валютах. Ваша тема должна поддерживать те сайты, которые требуют мультивалютности. Для многих неамериканских сайтов поддержка нескольких валют является очень важной функцией. Например, многие европейские сайты должны будут взимать плату в евро, британских фунтах и долларах США. Для восточноевропейских сайтов часто требуется российский рубль, а для азиатских сайтов нужна другая валюта.
Поддержка мультивалютности включена в WooCommerce Multilingual. Чтобы позволить посетителям переключаться между валютами, ваша тема должна включать дополнительный переключатель валют.
Вы можете отобразить переключатель валют, используя вызов PHP или вставив шорткод.
<? php do_action (‘currency_switcher’, array (‘format’ => ‘% name (% symbol)’)); ?>
[Currency_switcher]
Полный учебник приведен в учебнике по мультивалютности для WooCommerce . Помните, что переключатель валют будет отображаться только в том случае, если на сайте используется несколько валют.
5. Стать RTL-совместимым
Английский — LTR |
Иврит — RTL |
Темы WooCommerce должны соответствовать рекомендациям RTL, как и темы WordPress. Вам следует создать файл `rtl.css` с правилами CSS для отображения RTL.
Создайте новый файл `rtl.css` и поместите его в корневой каталог вашей темы. Направление ‘dir’ в CSS выполнит большую часть работы, и вам нужно только исправить несколько мест. Для языков RTL установите атрибут ‘direction’ в CSS на ‘rtl’. Дополнительно добавьте атрибут ‘unicode-bidi-.
В селектор .body добавлен хороший RTL-дисплей:
{
Направление: РТЛ;
Юникод-биди: встраивать;
}
Теперь ваша тема будет отображаться в RTL. Для обработки исключений перейдите к Руководству по поддержке тем RTL .
6. Управление различной длины текста на разных языках
Создавая готовую многоязычную тему WooCommerce, помните, что некоторые тексты будут длиннее на некоторых языках и короче на других. Некоторые языковые длины вы не можете протестировать, потому что ваши конечные пользователи будут переводить контент самостоятельно.
Например, посмотрите на эти два блока продукта.
CSS оптимизирован для короткого текста на английском языке |
Более длинный текст на испанском языке не умещается |
Лучший способ добиться совместимости с несколькими длинами — это проверить вашу тему с текстами, которые в 2 раза длиннее и на 1/2 короче. В большинстве случаев это будет охватывать любой язык, который переводится. Настоятельно рекомендуется использовать жидкие макеты для обработки текста разных размеров. Текущее расположение позволит каждому элементу изменять размеры и захватывать необходимую область. Достижение плавного расположения занимает время, но предотвращает визуальные сбои.
Текст плавно перетекает на следующую строку без сбоев дисплея
WooCommerce `style.css` использует обозначение` white-space: no-wrap`. Но в нашем примере, чтобы правильно обернуть текст, вы должны использовать `white-space: normal;`.
7. Создайте файл конфигурации языка
Чтобы сделать вашу тему полностью WPML-совместимой, вы должны упростить для других запуск многоязычных сайтов с темой, создав файл языковой конфигурации.
WPML может прочитать файл конфигурации, в котором подробно указано, что нужно перевести в тему или плагин. Создайте и назовите файл `wpml-config.xml`. Сохраните файл в корневом каталоге темы. Используйте структуру и макет раздела в примере в этом файле примера wpml-config.zip и отредактируйте его со своим собственным контентом.
Содержимое файла `wpml-config.xml` должно быть заключено в следующие теги <wpml-config> открытия и закрытия:
<WPML-конфигурации>
</ WPML-конфигурации>
В файле `wpml-config` вы указываете, какие функции должны переводиться с помощью WPML, ваши пользовательские типы записей, пользовательские таксономии, настраиваемые поля и текст администратора (строка, полученная из wp_options), а также вы можете указать способ использования языка вашей темы. Switcher будет просто следовать этому короткому учебнику для полных примеров и подробностей о структурировании вашего языкового файла конфигурации, посетите наше Учебное пособие по языковым файлам конфигурации .
Протестируйте свой сайт
Теперь, когда вы понимаете необходимость сделать вашу тему или плагин многоязычной и WooCommerce готовой, и после того, как вы следуете обычным методам разработки, как описано выше, пришло время протестировать вашу тему или плагин.
Обычно, когда вы тестируете, вы пытаетесь все перевести, вставляя фиктивные переводы в каждую область вашего сайта. Но это займет много времени. Поэтому мы создали для вас инструмент тестирования: плагин инструментов тестирования совместимости WPML .
Этот инструмент будет вводить фиктивные переводы для вашего сайта, чтобы вы могли переключать языки и видеть, что было переведено, а что осталось на вашем языке оригинала. Наш инструмент тестирования сэкономит вам несколько часов тестирования и поможет вам увидеть, какие области необходимо улучшить в вашей теме или плагине.
Установите правильные плагины для многоязычного WooCommerce
Ваши клиенты должны будут иметь следующие плагины для многоязычных сайтов электронной коммерции с WooCommerce:
-
WPML CMS от OnTheGoSystems
-
WooCommerce от WooThemes
-
WooCommerce Многоязычный от OnTheGoSystems
WPML поставляется с основным плагином и надстройками. Эта архитектура позволяет разным людям устанавливать разные детали, которые им нужны. Для многоязычных сайтов WooCommerce вам понадобятся следующие компоненты WPML:
-
WPML (основной)
-
WPML перевод строки
-
Управление переводами WPML
-
WPML Media Translation
GoGlobal Partnership
WPML используется на более чем 400 000 веб-сайтов, и любая тема или плагин, использующий API WordPress, может получить многоязычную совместимость с помощью WPML. Зачем рисковать отсутствием многоязычной и WooCommerce-совместимой темы или плагина?
WPML имеет программу GoGlobal, в которой мы предлагаем бесплатные аккаунты WPML авторам тем и плагинов для тестирования совместимости. У нас есть множество тем , которые в настоящее время совместимы, в том числе несколько WooThemes, все элегантные темы, Avada и множество тем на ThemeForest.
В WPML мы серьезно относимся к совместимости с пятью опытными разработчиками и консультантами, которые работают над совместимостью для всех авторов тем и плагинов для обеспечения многоязычной совместимости. Зарегистрируйтесь бесплатно сегодня в нашей программе WPML GoGlobal .
Распространение многоязычных тем
Когда вы распространяете свою тему, вы хотите, чтобы люди могли использовать ее для одноязычных и многоязычных сайтов. Советы по разработке, которые мы давали в этой статье, в основном опираются на лучшие практики WordPress, поэтому код вашей темы едва ли содержит какой-либо конкретный код для WPML.
Вашим клиентам потребуется установить WPML и его компоненты, необходимые для запуска многоязычных сайтов. Поскольку WPML является торговой маркой (и по другим уважительным причинам), вам не следует связывать WPML с вашей темой.
Вместо этого WPML предлагает небольшой компонент для покупки и автоматической установки , который вы можете использовать. Этот компонент позволяет пользователям покупать WPML непосредственно из админа WordPress. Он также зачисляет вам партнерскую комиссию за любого такого реферала.
Интеграция этого крошечного компонента автоустановки в вашу тему — отличный способ показать людям, что ваша тема действительно совместима с WPML и может поддерживать многоязычные сайты. Это также дает вашим пользователям упрощенный процесс покупки и установки WPML без необходимости использовать FTP для загрузки его на свои серверы.
Резюме
Теперь, когда мы рассмотрели семь лучших рекомендаций по подготовке вашей темы или плагина WooCommerce и Multilingual, мы надеемся, что вы готовы начать работу. Быть готовым к многоязыку легко и возможно для каждого автора темы.
Это так же просто, как использование лучших практик WordPress, таких как использование функций `gettext` и правильная обработка жестко закодированных ссылок WooCommerce, для окончательного добавления файла конфигурации языка в вашу тему. Увеличьте универсальность вашего продукта на рынке, сосредоточившись на интернационализации вашей темы или плагина.
Мы разыгрываем 8 000 долларов в нашем последнем мероприятии WPP и WooCommerce WordPress Themes Most Wanted. Вы должны быть в нем, чтобы выиграть это!