Чтение языка из источника - PullRequest
0 голосов
/ 17 февраля 2011

Я хотел бы использовать лайтбокс на многоязычном (en, ru, lt) сайте, поэтому мне нужно перевести лайтбокс.Чтобы установить правильные параметры для лайтбокса, мне нужно прочитать язык, который определен в:

    <body>
        <div id="main">

    <div id="logo"> 
        <a href="/en/" ...

Так что, если я нахожусь на другом языке, логотипом будет код языка.У меня есть этот код .js:

$(function() {
    $('.object').lightBox({
        txtOf: 'translation',
        txtImage: 'another_translation'
    });
});

Как мне изменить JS для проверки?

Ответы [ 2 ]

3 голосов
/ 17 февраля 2011
$(function() {
    // Define language map
    var languageMap = {
      en: {txtOf: 'Something', txtImage: 'This is an image'},
      ru: {txtOf: 'что-то', txtImage: 'его является изображение'}
    };
    // Detect language from the logo images href attribute
    var re = new RegExp('/([^/]*)/*');
    var href = $('#logo a').eq(0).attr('href');
    var lang = 'en'; //English by default
    var match = re.exec(href);
    if (match !== null) {
        lang = match[1];
    }
    // initialize lightBox
    $('.object').lightBox({
        txtOf: languageMap[lang].txtOf,
        txtImage: languageMap[lang].txtImage
    });
})

См. http://jsfiddle.net/ArtBIT/JzPZP/ для живого примера.

Также http://jsfiddle.net/ArtBIT/JzPZP/1 покажет вам русскую версию

0 голосов
/ 13 июля 2012

Я изменил lightbox.js для элемента управления get самого себя и его параметров:

//(function () {
//    var $, Lightbox, LightboxOptions;
//    $ = jQuery;
    var Lightbox, LightboxOptions;
    LightboxOptions = (function () {
        [...]
    })();

    Lightbox = (function () {
        [...]
    })();
//    $(function () {
//        var lightbox, options;
//        options = new LightboxOptions;
//        return lightbox = new Lightbox(options);
//    });
//}).call(this);

С другой стороны, мне нужно вызывать небольшой фрагмент кода на каждой странице, где я хочу галерею, а не просто добавлять дебиблиотека в голове:

$(function () {
    var lightbox, options;
    options = new LightboxOptions;
    return lightbox = new Lightbox(options);
});

Но теперь я могу программно изменять параметры лайтбокса без внесения дополнительных изменений: ASP.net:

$(function () {
    var lightbox, options;
    options = new LightboxOptions;
    options.labelImage = '<%=this.GetLocalResourceObject("Lightbox.options.labelImage").ToString() %>';
    options.labelOf = '<%=this.GetLocalResourceObject("Lightbox.options.labelOf").ToString() %>';
    return lightbox = new Lightbox(options);
});

PHP:

$(function () {
    var lightbox, options;
    options = new LightboxOptions;
    options.labelImage = '<?php echo $dictionary["Lightbox_options_labelOf"]; ?>';
    options.labelOf = '<?php echo $dictionary["Lightbox.options.labelOf"]; ?>';
    return lightbox = new Lightbox(options);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...