Опис
WP Multilang це плаґін багатомовності для WordPress.
Доступний переклад записів довільних типів, елементів таксономій текстових полів, мільтімедіа файлів, меню, заголовків та текстів віджетів.
Особливості плаґіна WP Multilang:
- 100% безкоштовно
- Переклад на рівні PHP.
- Сумісність з REST.
- Підтримує налаштування для перекладу багатомірних масивів у опціях, мета полях, змісту записів.
- Підтримка багатосайтовості
- Пітдтримка роботи WordPress з підпапки
- Розділення пунктів меню, записів, термінів, віджетів, коментарів за мовою.
- Багато фільтрів для динамічного застосування конфігурації перекладу.
- Без дублів записів, термінів, меню, віджетів.
- Без субдоменів для мовних версій
- Без додаткових таблиць у базі.
- Можливість встановити багато мов з одним пакетом локалізації. Наприклад, для локалі регіону.
- Можливість встановити довільну локаль для html(Якщо встановлений мовний пакет en_US, ви можете встановити локалі: en, en-UK, en-AU тощо. Без встановлення окремої локалізації.).
- Можливість додавати нові мови для будь-якого користувача з правами
manage options
- Є роль користувача “Перекладач” для редагування записів та елементів таксономій. Він не може публікувати чи видаляти.
- Без обмежень за мовою чи можливостями.
WP Multilang сумісний з коробки з плаґінами:
- ACF, ACF Pro
- WooCommerce
- WooCommerce Customizer
- Gutenberg
- Yoast Seo
- Contact Form 7 (доданий теґ для листів [_language] для додавання мови користувача)
- WPBakery Visual Composer
- Page Builder by SiteOrigin
- NextGEN Gallery
- All in One SEO Pack
- MailChimp for WordPress
- E-mail розсилка
- Maps Builder
- Max Mega Menu
- MasterSlider
- WP-PageNavi
- BuddyPress
- Meta Slider
- TablePress
- Download Monitor (Перевизначте шаблон для ланок у вашій темі та перекладіть тексти ланок)
- Better Search
- Rank Math SEO (thanks for @pratikmts)
Керування налаштуваннями перекладу через json.
Додайте у корінь своєї теми або плаґіна файл wpm-config.json
з налаштуваннями.
Приклади конфігурацій ви можете подивитися у теці ‘configs’ у корені плаґіну.
Конфігурація оновлюється після перемикання теми, вимкнення/увімкнення/оновлення будь-якого плаґіна.
Має фільтри для динамічного застосування конфігурації перекладу.
Для вимкнення перекладу передайте null
у потрібну конфігурацію.
Наприклад, потрібно вимкнути переклад для типу запису post
.
Для цього є два шляхи:
-
In json.
Create in root of a theme or a plugin filewpm-config.json
with:
{
“post_types”: {
“post”: null
}
} -
Through the filter.
Add in functions.php
add_filter( ‘wpm_post_post_config’, ‘__return_null’ );
To enable translation pass an empty array in php array()
or empty object in json {}
.
Supports translation multidimensional array of options, meta fields and post_content.
Supports the removal of established localizations.
Supports translation via GET parameter. Add in the GET parameter lang
code desired language.
Supports clean database of translations when removing the plugin. Translations are only removed from the built-in tables.
Supports import term translations from qTranslate(by Soft79).
Supports automatically redirect to the user’s browser language, if he visits for the first time.
Ідеально підходить для розробників.
For display language switcher in any place add the code to your template if ( function_exists ( 'wpm_language_switcher' ) ) wpm_language_switcher ();
Function accepts two parameters:
$type – ‘list’, ‘dropdown’, ‘select’. Default – ‘list’.
$show – ‘flag’, ‘name’, ‘both’. Default – ‘both’.
Or using the shortcode wpm_lang_switcher
. It accept two not necessary parameters ‘type’ and ‘show’.
Available features for translation:
wpm_translate_url( $url, $language = ” ); – translate url
wpm_translate_string( $string, $language = ” ); – translate multilingual string
wpm_translate_value( $value, $language = ” ); – translate multidimensional array with multilingual strings
Оновлення перекладів відбувається на рівні PHP. Тому плаґін має високу адаптивність, сумісність та легко інтегрується з іншими плаґінами. Саме це вирізняє його серед подібних.
Доступний переклад html теґів через JS для рядків, що не мають фільтрів WP перед виводом.
Додайте ваші теґи у конфіґ:
"admin_html_tags": {
"admin_screen_id": {
"attribute": [
"selector"
]
}
}
Де:
admin_screen_id – id екрану адміністратора.
attribute – атрибут, що потрібно перекласти. Доступно text
– для перекладу текстових вузлів, value
– для перекладу значень форм. Або інший атрибут теґу, типу title
, alt
.
selector – css селектор для пошуку потрібного елементу. Кожен селектор це новий елемент масиву.
If You need to add translation for multidimentional array for repeated elements You can use custom tag ‘wpm_each’ for set config to each element in array.
Example, add config for each item ‘title’ in custom post field array:
"post_fields": {
"custom_field": {
"wpm_each": {
"title": {}
}
}
}
For set translation uses the syntax:
[:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:]
Added shortcode for translate text in any place:
[wpm_translate][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]
If You translate text in established language, add lang parameter:
[wpm_translate lang=”de”][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]
Support translating from syntax qTranslate, qTranslate-X, WPGlobus etc.
Compatible with REST-API.
Support transfer the required translation through option lang
in the GET request to REST.
Has the ability to keep recording the target language through the transmission parameter lang
in the request.
Міграція з qTranslate-X
- Перед встановленням/видаленням, зробіть резервну копію бази даних.
- Деактивуйте qTranslate-X.
- Встановіть та активуйте WP Multilang.
- Створіть у корені вашої теми файл ‘wpm-config.json’.
- Додайте потрібні типи записів, таксономії, опції, поля до ‘wpm-config.json’. Налаштування з qTranslate-X не імпортуються.
- Імпортуйте назви термінів з qTranslate.
- Перевірте чи все добре.
- Якщо все добре, видаліть qTranslate-X. Якщо ні, зробіть зняток екрану помилки, відновіть базу з резервної копії та додайте нове питання на форум підтримки зі знятком та описом ваших помилок.
Увага
Не підтримує різні ланки для різних мов (поки що).
Не сумісний з:
– WP Maintenance
Відомі проблеми
Функція ‘get_page_by_title’ не працює, оскільки у полі заголовку зберігаються заголовки для всіх мов. Використовуйте функцію ‘wpm_get_page_by_title( $title )’ як рішення.
NOTE: Because plugins have different ways of storing data, WP Multilang is not compatible with every single plugin out-of-the-box (mostly page builders). This may result in texts not being translatable or translations not being saved. Most of these issues can be resolved using the integration options (wpm-config.json or filters) of WP Multilang.
Please try WP Multilang in a test-environment before activating it on an existing production site and always make a backup before activating!
Скріншоти
Встановлення
- Завантажте файли плаґіну у теку
/wp-content/plugins/wp-multilang
або встановіть плаґін через встановлення плаґінів у WordPress - Активуйте плагін на сторінці ‘Плагіни’ в WordPress.
- Налаштуйте мови на сторінці налаштувань WP Multilang.
Часті питання
- Я додав новий переклад, але він перезаписався іншим.
-
Якщо у вас відкрито кілька вкладок бравзера, з редагуванням запису і ви перемкнулися на іншу мову на одній із них, то запис збережеться з тією мовою, що ви ввімкнули останньою.
Відгуки
Учасники та розробники
“WP Multilang” — проект з відкритим вихідним кодом. В розвиток плагіну внесли свій вклад наступні учасники:
Учасники“WP Multilang” було перекладено на 7 локалізацій. Дякуємо перекладачам за їх роботу.
Перекладіть “WP Multilang” на вашу мову.
Цікавитесь розробкою?
Перегляньте код, перегляньте сховище SVN або підпишіться на журнал розробки за допомогою RSS.
Журнал змін
2.4.1
- removed support old version of ACF lower 5.0
2.4.0
- added support for Rank Math SEO (thanks for @pratikmts)
- optimized speed
- deleted support for old translate syntax
- other fixes and improvements
2.3.0
- fixed compatibility with WordPress 5.0
- fixed compatibility with AIOSP
2.2.6
- added donate link to readme.txt
- fix display language name
- fix SiteOrigin Builder compatibility
- fix fatal error when a plugin is disabled
- fix translate REST requests in admin
2.2.5
- fixed Gutenberg compatibility
- fixed translation WC coupons
2.2.4
- added “no-cache” header in admin on language change
- added WC coupon for translating
- fixed compatibility with SiteOrigin
- fixed http to https redirect error
- fixed styles
2.2.3
- fix translate menu
- fix translating
- fix saving metabox
- fix set home url in subfolder
2.2.2
- added shortcode for display language switcher
- add filters for set json config files for integration
- fixed checking for ml strings
- Виправлена сумісність з Gutenberg
- fixed checking for JSON strings
- fixed regex for ml strings
2.2.1
- fixed escaping text. Have error on some sites.
- fixed ACF PRO menu integration. Have error on ACFv4.
2.2.0
- added alternate locale for opengraph in YOAST SEO
- added setting default translation
- fixed PHP notice in YOAST sitemap
- Виправлена сумісність з Gutenberg
- fixed compatibility with Buddypress
- fixed translate ‘attr_escape’
- fixed adding custom fields to menu items
Весь список змін доступний на GitHub.