Skip to content

vloo's braindump

и други бележки към мене си

  • начало
  • tech
  • блог
  • здраве
  • приключения
  • ядене
  • бизнес
  • деца
  • Кой?

Tag: wordpress multilanguage

Правилният начин за регистриране на езиците за даден WordPress plugin

Posted on 2012.03.13 - 2016.12.04 by vloo

Доволно количество часове загубих в борене на мега-странният бъг с няколко разширения в една моя инсталация на WordPress с BuddyPress, в която кожата реагираше на смяната на езика (ползвайки qTranslate), докато разширенията продължаваха изкарват само английски надписи. CodeStyling Localization ми разпознаваше файловете, преведените езици, генерираха се .mo файловете и в кода се добавяха същите тия файлове уж както си му е реда. Е явно не съвсем. Ето как се било правело:

/* LOAD LANGUAGES */
function plugin_name_load_textdomain() {
   $locale = apply_filters( ‘wordpress_locale’, get_locale() );
   $mofile = dirname( __File__ ) . “/languages/PLUGIN-NAME-$locale.mo”;

   if ( file_exists( $mofile ) )
      load_textdomain( ‘text-domain-name’, $mofile );
}
add_action ( ‘plugins_loaded’, ‘plugin_name_load_textdomain’, 7 );
Posted in techTagged plugin development, qtranslate, wordpress multilanguage, многоезичен сайтLeave a comment

Custom post type в многоезичен WordPress се извежда с всичките си преводи

Posted on 2011.09.27 - 2016.12.04 by vloo

Случи ми се следната ситуация при работа върху сайт на клиент:

WordPress 3.2.1 с qTranslate и 3 езика има разширение за локации (Basic Google Maps Placemarks), което обаче при извеждането на списъка с всички локации, които реално са custom post type, ми изкарва на всяка локация и трите й заглавия, т.е. заглавието и на трита езика.

Причината за проблемът е, че реално това извеждане на заглавието се извежда при прихващането на shortcode нейде из публикациите ми, заради което не се хваща qTranslate куката, която при намирането на <!–:ХХ–> таговете не избира само единия запис с текущия език. Заради което на страницата се показват и трита ми превода. Решението беше елементарно, но си го записвам, за да мога да го намеря следващия път, като попадна на подобна грешка.

В кода на разширението, което извежда списъка с публикациите от новия тип (placemarks в моя случай) се намира редът, който извлича заглавието или какъвто и да бил друг текст, подлежащ на превод. Извикването на функцията се вкарва като параметър на функцията qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage, която всъщност ще избере превода за текущия език, а останалите варианти ще премахне. В моя случай това се случи така:

qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($p->post_title)

Posted in techTagged custom post type, qtranslate issue, translation issue, wordpress multilanguageLeave a comment
Proudly powered by WordPress | Theme: micro, developed by DevriX.