Multilingual WP – making multilingual WordPress easy

Този плъгин е все още в разработка, но скоро надявам се ще види света през хранилището за плъгини на WordPress.org!

Проблема

Използвали ли сте/ползвате ли плъгина qTranslate за да направите вашия WordPress сайт достъпен на повече от един езици? Ако е така, предполагам вече сте се натъквали на проблемите които се случваха на няколко пъти през последната година(след обновления на WordPress) – приината за това е, че човека който стои зад плъгин, просто няма достатъчно време за да оправи тези проблеми на време. За което не го виня – като програмист мога ясно да разбера, че понякога е трудно да намериш свободно време да излезеш с приятелите си, още по-малко да оправяш проблеми във страничен проект.

Аз – също като вас – използвам qTranslate(да си призная честно, дори съм го използвал в много от работните си проекти ) и на няколко пъти се опитвах да правя малки кръпки по плъгина, така че да работи с последната версия на WordPress. Но проблема е, че сами плъгин е разработен доста зле и подобряването/оправянето му би отнело доста време – всъщност автора на плъгина е имал идеята да го пренапише напълно, но никога не е стигнал до там, че да изпълни тази идея.

Решението

За това, реших да напиш мой плъгин, който да използва/разширява единствено вградена в WordPress функционалност за да се добави поддръжка на множество езици. Причината за този подход е, че той ще направи поддържането на плъгина много по-лесно и също така ще го направи много по-съвместим с бъдещи версии на WordPress.

Как работи

Ето кратка информация за това как плъгина работи:

  • Първоначално избирате кои пост-типове(публикация, страница, тн) искате да бъдат многоезични
  • След това избирате езиците, които искате да бъдат позволени(най-вероятно ще трябва да ги създадете първо)
  • Пускате автоматичния ъпдейтър, който ще създаде нов пост за всеки език, който сте позволили(да, включително и езика по подразбиране)
    • Така че, ако имате 3 публикации и сте позволили 2 езика, след тази стъпка вие ще имате 9 публикации в базата данни(само 3 ще се показват в администрацията на WordPress). Реших да избера този подход, за да се улесни смяната на езика по подразбиране.
    • Не сте длъжни да пуснете автоматичния ъпдейтър, но освен ако не отидете на страницата за редактиране на всяка една от публикациите/страниците които имате, отделните публикации за всеки език няма да бъдат създадени.
  • Оригиналната публикация има отношение едно-към-много с публикациите за всеки език чрез мета запис с името _mlwp_langs
  • Публикацията на всеки език има отношение едно-към-едно с оригиналната публикация чрез мета запис с името _mlwp_rel_post
  • На екрана за редактиране на публикациите се появява бутон за всеки от разрешените езици над секциите със заглавие/съдържание:
    mlwp-post-edit
    Това дава най-добра съвместимост(по мое мнение) с WordPress и други плъгини, защото:

    • Използва вградена в WordPress функция
    • Поради предходното, не се налага използването на нестандартни решения за разделяне на съдържанието на всеки език.
  • Понеже всеки превод е де-факто различна публикация, получавате различни “slug”-ове за всеки език :) Това става чрез добавянето на допълнителни “rewrite” правила към тези генерирани от WordPress. Още един възможен проблем със производителността при по-големи сайтове.
  • Тъй като всички публикации се редактират от един екран, няма как да получите различни мета полета за всеки превод – вместо това, всички мета полета които имате са свързани с оригиналната публикация – в тях все още можете да ползвате бързи тагове или “shortcode”-ове за да преведете съдържанието им.

За последната информация за плъгина, постете страницата в GitHub

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *