Fancy Worpress Translations

Nilitaka kuhakikisha kwamba mimi si kuondoka nje ya uwezo kimataifa watazamaji. kwa mfano, mmoja wa mabaraza ya mimi mara kwa mara mengi ni kampuni ya Kifaransa.

Kwa bahati, WordPress ina plethora ya Tafsiri kuziba ins-na wawili hawakupata macho yangu: Global zote kwa Davide Pozza na Transposh kwa Timu Transposh.

Wote ni bora kuziba-ins, lakini pia wanakabiliwa na drawback moja: inajaza sidebar yako (Widget) na 40-baadhi bendera au una tone silly chini sanduku. Nilitaka chaguo kifahari zaidi, na hii ni jinsi I've imeweza kufanya hii.

Kufanya nini?

Juu ya mkono wako wa kulia-upande, utakuta “TRANSLATE THIS” button. Click hayo wakati, sanduku kidogo POP up kwa wote Tafsiri inapatikana chaguzi. Teua mmoja tu wa bendera ya vinavyolingana na nchi yako / Lugha ya upendeleo na “Soon!”.

Wakati huna haja yoyote tafsiri au imekwisha d kutafsiri katika lugha yako preferred, basi ni nicely nje ya njia yako na mimi zaidi inatoa nafasi kwa makala mengine.

Na habari?

Ni kiasi cha kushangaza kushiriki ndogo ya ändringar na temat, hasa sidebar.php faili, kuongeza baadhi ya uchawi JavaScript na bila shaka baadhi ya mambo CSS kwa spruce up kidogo.

Sehemu PHP

The code PHP ni kama zifuatazo:

<?php if(function_exists("gltr_build_flags_bar") || function_exists("transposh_widget")) { ?>
  <div id="translate_btn">
    <span title="<?php _e('Translate this page into another language','monochrome'); ?>">
      <?php _e('TRANSLATE THIS','monochrome'); ?>
    </span>
  </div>
  <div style="clear: both;"></div>
  <div id="translate_post">
    <?php if (function_exists("gltr_build_flags_bar")): gltr_build_flags_bar(); else: transposh_widget(array()); endif;?>
  </div>
  <div style="clear: both;"></div>
<?php } ?>

Kanuni hii itafanya kazi kwa ama zote Global au Transposh Plugin. Itakuwa kuangalia kama moja ya hizo mbili ni imewekwa na Toa Widget ndani <div></ Div> Tags. Kama wala installed, Hakuna chochote kutokea. Kwa hiyo ni salama kwa deactivate ya kuziba ins-, nk.

Insert hii unaweza code kimsingi popote I'd like. Katika kesi yangu, I've kuwekwa ndani ya sidebar.php Picha ni pamoja na “monochrome” mandhari kutoka mono-maabara. Hasa, ni ziko karibu mara moja baada ya <ul darasa =”ext_meta”> siku.

Sehemu CSS

sehemu ya CSS unaweza kuongezwa kwa mada yako style.css Picha na kwa kweli inategemea mada yako mwenyewe na ya ubaguzi wa kidogo zifuatazo:

#translate_post {
  display:none;
  padding:5px;
  position:absolute;
  width:200px;
  z-index:10;
  margin-top:4px;
}
#translate_btn span {
  cursor:pointer;
}

Kama unaweza kuona sehemu ya nyuma PHP, utaratibu wa kulipwa kwa bendera ni aliyefungwa ndani <div> tag pamoja na id za “kutafsiri _post”. Hatutaki kuonyesha hili kwa mtumiaji bado tu, hivyo kuweka display:hakuna chaguo.

Chaguzi nyingine ni kuhakikisha sanduku hana muda mrefu kuwa freakishly (200 saizi), hana hoja na mambo mengine karibu wakati visas (nafasi:kabisa) na sio kupata kufunikwa na vitu inbyggda kama vile videos (z-index:10).

Ya # Kutafsiri _btn sehemu husaidia kidokezo mwisho-user katika kuwa kitu inaweza kuwa clicked wakati panya ni juu yako “TRANSLATE THIS” Nakala.

Unaweza kutaka kuongeza thamani wengine vilevile, kwa mfano kuongeza alama background au mpaka. Tena, Hii inategemea ladha yako na mandhari unatumia.

JavaScript sehemu

Sehemu JavaScript inahitaji jQuery tayari kubeba na WordPress. Katika matukio kadhaa hii si kesi kwa default, hivyo unahitaji ni pamoja na yafuatayo katika yako header.php mandhari template faili, kabla <?PHP wp_head(); ?> siku:

wp_enqueue_script('jquery');

Zaidi ya mandhari ya fancier tayari ni pamoja na JavaScript kwamba initializes variablerna chache au kujengwa-katika maandiko. Kwa ujumla wanaitwa init.js au script.js. Unaweza kutumia haya kuongeza JavaScript required kwa hii, au unaweza kuunda faili mpya ambayo anapata aitwaye kutoka header.php mandhari template. kwa mfano:

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/my-fancy-translation-box.js"></script>

Tarehe ya JavaScript halisi:

jQuery(document).ready(function( $ ){
    /* Translate Box */
    var _translate_box_vars = {
        init_timeout: 3000,
        timeout: 1500,
        button: '#translate_btn',
        window: '#translate_post',
        _timer: 0
    };

    /* What follows does not need editing */
    $(_translate_box_vars.button).click(function (e) {
        if (!$(_translate_box_vars.window).is(':visible')) {
            leftVal=e.pageX-($(_translate_box_vars.window).width()/2)+"px";
            topVal=(e.pageY+4)+"px";   

            $(_translate_box_vars.window).css({left:leftVal,top:topVal}).fadeIn(300);

            _translate_box_vars._timer = setTimeout("jQuery(function($){$('"+_translate_box_vars.window+"').css({left:leftVal,top:topVal}).fadeOut(300)});", _translate_box_vars.init_timeout);
        }

        e.stopPropagation();
    });

    $(_translate_box_vars.window).hover(
        function () {
            clearTimeout(_translate_box_vars._timer);
        },
        function () {
            _translate_box_vars._timer = setTimeout("jQuery(function($){$('"+_translate_box_vars.window+"').css({left:leftVal,top:topVal}).fadeOut(300)});", _translate_box_vars.timeout);
        }
    );

    $('body').click(function(e) {
        if (!$(e.target).is(_translate_box_vars.window)) {
            $(_translate_box_vars.window).fadeOut(300);
            clearTimeout(_translate_box_vars._timer);
        }
    });
});

code si optimized sana kukusaidia kuelewa kinachoendelea. Kama sio vizuri kwa JavaScript, wewe tu haja ya kuangalia kwa nini kufuata Translate Box jinsi, hasa:

    /* Translate Box */
    var _translate_box_vars = {
        init_timeout: 3000,
        timeout: 1500,
        button: '#translate_btn',
        window: '#translate_post',
        _timer: 0
    };

Unaweka idadi ndogo ya variablerna ambayo kutumiwa na wengine baadaye script. Ya init_timeout anges kutofautiana kwa muda gani na tafsiri ya dirisha (vyenye bendera) wanapaswa kubaki wazi na mtumiaji bado kuwekwa ndani mouse wake window kwamba. Kwa mfano hapo juu, hii ni 3 sekunde (3000 milliseconds).

Ya umeisha hazibadiliki anges muda gani dirisha moja ili akae wazi kama user ameweka mouse yake ndani ya dirisha kwamba (yaani, hovered ya mouse juu ya mmoja wa bendera). Kwa mfano hapo juu, hii ni mara ya nusu ya umeisha ya awali – 1500 milliseconds au 1.5 sekunde. Unaweza mabadiliko haya kama wewe tafadhali.

Zifuatazo mbili variablerna, button na dirisha, bayana ambayo <div id> ina button (Nakala) kufungua dirisha Tafsiri, na window tafsiri yenyewe. Kama si iliyopita sehemu PHP zinazotolewa mapema, unapaswa kuwa na mabadiliko ya hii.

Mabaki ya JavaScript Hushughulikia mambo matatu ili hii:

  • Nini kinatokea wakati mtumiaji Clicks ya button (kufungua dirisha na kuweka Timer kwa init_timeout milliseconds)
  • Itakuwaje mtumiaji moves mouse yake ndani ya dirisha (kuacha Timer na kuanza kwa umeisha milliseconds kama ina kushoto tena)
  • Itakuwaje mtumiaji Clicks popote mwingine (karibu wazi tafsiri window)

Uko karibu huko

Kuna mambo machache ambayo unahitaji kukumbuka tarehe ya kuziba-katika upande. Ikiwa sasa kutumia zote Global au vilivyoandikwa Transposh katika sidebar yako, inapendekezwa sana kwa afya haya (kuondoa yao kutoka sidebar ya).

Global zote hutumia bendera tu, ambayo ni ya kutosha kwa ajili hiyo. Hata hivyo, unapaswa kupunguza idadi ya bendera kwa mfululizo kwa muda usiozidi 10. mengine, unaweza kuongeza upana wa dirisha katika sehemu CSS.

Transposh hutumia orodha tone-chini kwa default. Juu ya kuziba-katika mazingira ukurasa, unaweza kubadilisha hii bendera. Mimi kupendekeza mlemavu wa bar maendeleo kipengele, hasa kwa sababu mtumiaji hamtaiona wakati wewe ni utekelezaji wa dhana hii WordPress Tafsiri.

Mimi binafsi kupendekeza ya kuwezesha “SEO kirafiki” fursa ya ama ya Plugins, ambayo inatoa URL kama vile http:/ / Www.myatus.co.uk / I kwa zote.

Vinginevyo, unapaswa kuwa tayari kutoa hii ni kujaribu! Napenda kujua kama wewe kuwa masuala yoyote – tu kuacha maoni hapa chini au Mawasiliano nami moja kwa moja.

Related Posts:

  1. WP Nisalimieni Box autohide kipengele
  2. WP Flickr background katika Alpha kupima
  3. Add a Firefox-style tafuta katika Opera 10
  4. Myatu's ni simu
  5. WP Flickr Background