WP Multilang

Опис

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.

Для цього є два шляхи:

  1. In json.
    Create in root of a theme or a plugin file wpm-config.json with:
    {
    “post_types”: {
    “post”: null
    }
    }

  2. 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

  1. Перед встановленням/видаленням, зробіть резервну копію бази даних.
  2. Деактивуйте qTranslate-X.
  3. Встановіть та активуйте WP Multilang.
  4. Створіть у корені вашої теми файл ‘wpm-config.json’.
  5. Додайте потрібні типи записів, таксономії, опції, поля до ‘wpm-config.json’. Налаштування з qTranslate-X не імпортуються.
  6. Імпортуйте назви термінів з qTranslate.
  7. Перевірте чи все добре.
  8. Якщо все добре, видаліть 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!

Bug Reports

Bug reports for WP Multilang are welcomed on GitHub. Please note GitHub is not a support forum, and issues that aren’t properly qualified as bugs will be closed.

Скріншоти

  • Сторінка налаштувань
  • Сторінка списку записів
  • Сторінка списку елементів таксономії
  • Сторінка редагування елементу таксономії
  • Сторінка редагування запису

Встановлення

  1. Завантажте файли плаґіну у теку /wp-content/plugins/wp-multilang або встановіть плаґін через встановлення плаґінів у WordPress
  2. Активуйте плагін на сторінці ‘Плагіни’ в WordPress.
  3. Налаштуйте мови на сторінці налаштувань WP Multilang.

Часті питання

Я додав новий переклад, але він перезаписався іншим.

Якщо у вас відкрито кілька вкладок бравзера, з редагуванням запису і ви перемкнулися на іншу мову на одній із них, то запис збережеться з тією мовою, що ви ввімкнули останньою.

Відгуки

20.08.2023
The plugin is not bad, perhaps the most convenient for self-translation of articles into different languages. But, I don't understand how to remove this message that keeps popping up when editing an entry. >>>The backup of this post in your browser is different from the version below. «Restore the backup»This will replace the current editor content with the last backup version. You can use undo and redo in the editor to get the old content back or to return to the restored version.<<<
12.09.2022 1 reply
I'm stuck with the plugin and can't find another I can easily change to. I've been avoiding updating Ultimate Addons for Gutenberg (now Spectra) because the new versions don't work with this plugin anymore. The 1st language is okay, but once you change to another the pages will loose all the CSS that's added from that plugin! I can't find a way to solve this. If anyone is able to help or refer me to another translation plugin that uses this same method please contact me!
21.01.2022
I have a page with cpt and cf and the customer decided to translate the page very lately. I tried polylang, wpml, and similir ones and most of them are - why? - very expensive to fit our needs or they are not able to just handle some cf. And then i saw WP Multilang - fuck, this is really exactly what i needed. it works with WP 5.8.3 - just tested it and it works like a charm.. everything is just as one would expect it to be. Thank you soooo much
Прочитати всі 88 відгуків

Учасники та розробники

“WP Multilang” — проект з відкритим вихідним кодом. В розвиток плагіну внесли свій вклад наступні учасники:

Учасники

“WP Multilang” було перекладено на 8 локалізацій. Дякуємо перекладачам за їх роботу.

Перекладіть “WP Multilang” на вашу мову.

Цікавитесь розробкою?

Перегляньте код, перегляньте сховище SVN або підпишіться на журнал розробки за допомогою RSS.

Журнал змін

2.4.4

  • fixed issue with ACF PRO #12
  • fixed An error occurred when deleting a post #13
  • fixed E_ERROR in class-wpm-install.php #16
  • fixed Issue with Gutenberg reusable blocks and create pattern #17
  • fixed No translation for Title, Meta etc. if using AIOSEO plugin #18
  • fixed No Translation of URL, and social meta tags using YOAST plugin in #23
  • fixed Issue with the Rank Math Seo meta field #24

2.4.3

  • fixed Conflict with Yoast SEO #6
  • enhancement ( ! ) Deprecated: Hook wpseo_opengraph is deprecated since version WPSEO 14.0 with no alternative available #7
  • enhancement ( ! ) Deprecated: setcookie(): Passing null to parameter #5 ($domain) of type string is deprecated #8
  • fixed Issue with the ACF Pro plugin #10

2.4.2

  • fixed Compatibility with WordPress 6.4 and updated readme.txt #1
  • fixed Code Improvement #2
  • added support tab and form

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.

All changelog available on GitHub.