code:
/*
 * StatusNet - a distributed open-source microblogging tool
 * Copyright (C) 2009-2011, StatusNet, Inc.
 *
 * Add a notice encoded as JSON into the current timeline
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @category  Plugin
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @author    Sarven Capadisli <csarven@status.net>
 * @copyright 2009-2011 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      http://status.net/
 */

/**
 * This is the UI portion of the Realtime plugin base class, handling
 * queueing up and displaying of notices that have been received through
 * other code in one of the subclassed plugin implementations such as
 * Meteor or Orbited.
 *
 * Notices are passed in as JSON objects formatted per the Twitter-compatible
 * API.
 *
 * @todo Currently we duplicate a lot of formatting and layout code from
 *       the PHP side of StatusNet, which makes it very difficult to maintain
 *       this package. Internationalization as well as newer features such
 *       as location data, customized source links for OStatus profiles,
 *       and image thumbnails are not yet supported in Realtime yet because
 *       they have not been implemented here.
 */
RealtimeUpdate = {
     _userid: 0,
     _showurl: '',
     _keepaliveurl: '',
     _closeurl: '',
     _updatecounter: 0,
     _maxnotices: 50,
     _windowhasfocus: true,
     _documenttitle: '',
     _paused:false,
     _queuedNotices:[],

     /**
      * Initialize the Realtime plugin UI on a page with a timeline view.
      *
      * This function is called from a JS fragment inserted by the PHP side
      * of the Realtime plugin, and provides us with base information
      * needed to build a near-replica of StatusNet's NoticeListItem output.
      *
      * Once the UI is initialized, a plugin subclass will need to actually
      * feed data into the RealtimeUpdate object!
      *
      * @param {int} userid: local profile ID of the currently logged-in user
      * @param {String} showurl: URL for shownotice action, used when fetching formatting notices.
      *                            This URL contains a stub value of 0000000000 which will be replaced with the notice ID.
      *
      * @access public
      */
     init: function(userid, showurl)
     {
        RealtimeUpdate._userid = userid;
        RealtimeUpdate._showurl = showurl;

        RealtimeUpdate._documenttitle = document.title;

        $(window).bind('focus', function() {
          RealtimeUpdate._windowhasfocus = true;

          // Clear the counter on the window title when we focus in.
          RealtimeUpdate._updatecounter = 0;
          RealtimeUpdate.removeWindowCounter();
        });

        $(window).bind('blur', function() {
          $('#notices_primary .notice').removeClass('mark-top');

          $('#notices_primary .notice:first').addClass('mark-top');

          // While we're in the background, received messages will increment
          // a counter that we put on the window title. This will cause some
          // browsers to also flash or mark the tab or window title bar until
          // you seek attention (eg Firefox 4 pinned app tabs).
          RealtimeUpdate._windowhasfocus = false;

          return false;
        });
     },

     /**
      * Accept a notice in a Twitter-API JSON style and either show it
      * or queue it up, depending on whether the realtime display is
      * active.
      *
      * The meat of a Realtime plugin subclass is to provide a substrate
      * transport to receive data and shove it into this function. :)
      *
      * Note that the JSON data is extended from the standard API return
      * with additional fields added by RealtimePlugin's PHP code.
      *
      * @param {Object} data: extended JSON API-formatted notice
      *
      * @access public
      */
     receive: function(data)
     {
          if (RealtimeUpdate.isNoticeVisible(data.id)) {
              // Probably posted by the user in this window, and so already
              // shown by the AJAX form handler. Ignore it.
              return;
          }
          if (RealtimeUpdate._paused === false) {
              RealtimeUpdate.purgeLastNoticeItem();

              RealtimeUpdate.insertNoticeItem(data);
          }
          else {
              RealtimeUpdate._queuedNotices.push(data);

              RealtimeUpdate.updateQueuedCounter();
          }

          RealtimeUpdate.updateWindowCounter();
     },

     /**
      * Add a visible representation of the given notice at the top of
      * the current timeline.
      *
      * If the notice is already in the timeline, nothing will be added.
      *
      * @param {Object} data: extended JSON API-formatted notice
      *
      * @fixme while core UI JS code is used to activate the AJAX UI controls,
      *        the actual production of HTML (in makeNoticeItem and its subs)
      *        duplicates core code without plugin hook points or i18n support.
      *
      * @access private
      */
     insertNoticeItem: function(data) {
        // Don't add it if it already exists
        if (RealtimeUpdate.isNoticeVisible(data.id)) {
            return;
        }

        RealtimeUpdate.makeNoticeItem(data, function(noticeItem) {
            // Check again in case it got shown while we were waiting for data...
            if (RealtimeUpdate.isNoticeVisible(data.id)) {
                return;
            }
            var noticeItemID = $(noticeItem).attr('id');

            var list = $("#notices_primary .notices:first")
            var prepend = true;

            var threaded = list.hasClass('threaded-notices');
            if (threaded && data.in_reply_to_status_id) {
                // aho!
                var parent = $('#notice-' + data.in_reply_to_status_id);
                if (parent.length == 0) {
                    // @todo fetch the original, insert it, and finish the rest
                } else {
                    // Check the parent notice to make sure it's not a reply itself.
                    // If so, use it's parent as the parent.
                    var parentList = parent.closest('.notices');
                    if (parentList.hasClass('threaded-replies')) {
                        parent = parentList.closest('.notice');
                    }
                    list = parent.find('.threaded-replies');
                    if (list.length == 0) {
                        list = $('

');
                        parent.append(list);
                        SN.U.NoticeInlineReplyPlaceholder(parent);
                    }
                    prepend = false;
                }
            }

            var newNotice = $(noticeItem);
            if (prepend) {
                list.prepend(newNotice);
            } else {
                var placeholder = list.find('li.notice-reply-placeholder')
                if (placeholder.length > 0) {
                    newNotice.insertBefore(placeholder)
                } else {
                    newNotice.appendTo(list);
                }
            }
            newNotice.css({display:"none"}).fadeIn(1000);

            SN.U.NoticeReplyTo($('#'+noticeItemID));
            SN.U.NoticeWithAttachment($('#'+noticeItemID));
        });
     },

     /**
      * Check if the given notice is visible in the timeline currently.
      * Used to avoid duplicate processing of notices that have been
      * displayed by other means.
      *
      * @param {number} id: notice ID to check
      *
      * @return boolean
      *
      * @access private
      */
     isNoticeVisible: function(id) {
        return ($("#notice-"+id).length > 0);
     },

     /**
      * Trims a notice off the end of the timeline if we have more than the
      * maximum number of notices visible.
      *
      * @access private
      */
     purgeLastNoticeItem: function() {
        if ($('#notices_primary .notice').length > RealtimeUpdate._maxnotices) {
            $("#notices_primary .notice:last").remove();
        }
     },

     /**
      * If the window/tab is in background, increment the counter of newly
      * received notices and append it onto the window title.
      *
      * Has no effect if the window is in foreground.
      *
      * @access private
      */
     updateWindowCounter: function() {
          if (RealtimeUpdate._windowhasfocus === false) {
              RealtimeUpdate._updatecounter += 1;
              document.title = '('+RealtimeUpdate._updatecounter+') ' + RealtimeUpdate._documenttitle;
          }
     },

     /**
      * Clear the background update counter from the window title.
      *
      * @access private
      *
      * @fixme could interfere with anything else trying similar tricks
      */
     removeWindowCounter: function() {
          document.title = RealtimeUpdate._documenttitle;
     },

     /**
      * Builds a notice HTML block from JSON API-style data;
      * loads data from server, so runs async.
      *
      * @param {Object} data: extended JSON API-formatted notice
      * @param {function} callback: function(DOMNode) to receive new code
      *
      * @access private
      */
     makeNoticeItem: function(data, callback)
     {
         var url = RealtimeUpdate._showurl.replace('0000000000', data.id);
         $.get(url, {ajax: 1}, function(data, textStatus, xhr) {
             var notice = $('li.notice:first', data);
             if (notice.length) {
                 var node = document._importNode(notice[0], true);
                 callback(node);
             }
         });
     },

     /**
      * Creates a favorite button.
      *
      * @param {number} id: notice ID to work with
      * @param {String} session_key: session token for form CSRF protection
      * @return {String} HTML fragment
      *
      * @fixme this replicates core StatusNet code, making maintenance harder
      * @fixme sloppy HTML building (raw concat without escaping)
      * @fixme no i18n support
      *
      * @access private
      */
     makeFavoriteForm: function(id, session_key)
     {
          var ff;

          ff = "<form id=\"favor-"+id+"\" class=\"form_favor\" method=\"post\" action=\""+RealtimeUpdate._favorurl+"\">"+
                "<fieldset>"+
               "<legend>Favor this notice</legend>"+
               "<input name=\"token\" type=\"hidden\" id=\"token-"+id+"\" value=\""+session_key+"\"/>"+
               "<input name=\"notice\" type=\"hidden\" id=\"notice-n"+id+"\" value=\""+id+"\"/>"+
               "<input type=\"submit\" id=\"favor-submit-"+id+"\" name=\"favor-submit-"+id+"\" class=\"submit\" value=\"Favor\" title=\"Favor this notice\"/>"+
                "</fieldset>"+
               "</form>";
          return ff;
     },

     /**
      * Creates a reply button.
      *
      * @param {number} id: notice ID to work with
      * @param {String} nickname: nick of the user to whom we are replying
      * @return {String} HTML fragment
      *
      * @fixme this replicates core StatusNet code, making maintenance harder
      * @fixme sloppy HTML building (raw concat without escaping)
      * @fixme no i18n support
      *
      * @access private
      */
     makeReplyLink: function(id, nickname)
     {
          var rl;
          rl = "Reply "+id+"";
          return rl;
     },

     /**
      * Creates a repeat button.
      *
      * @param {number} id: notice ID to work with
      * @param {String} session_key: session token for form CSRF protection
      * @return {String} HTML fragment
      *
      * @fixme this replicates core StatusNet code, making maintenance harder
      * @fixme sloppy HTML building (raw concat without escaping)
      * @fixme no i18n support
      *
      * @access private
      */
     makeRepeatForm: function(id, session_key)
     {
          var rf;
          rf = "<form id=\"repeat-"+id+"\" class=\"form_repeat\" method=\"post\" action=\""+RealtimeUpdate._repeaturl+"\">"+
               "<fieldset>"+
               "<legend>Repeat this notice?</legend>"+
               "<input name=\"token\" type=\"hidden\" id=\"token-"+id+"\" value=\""+session_key+"\"/>"+
               "<input name=\"notice\" type=\"hidden\" id=\"notice-"+id+"\" value=\""+id+"\"/>"+
               "<input type=\"submit\" id=\"repeat-submit-"+id+"\" name=\"repeat-submit-"+id+"\" class=\"submit\" value=\"Yes\" title=\"Repeat this notice\"/>"+
               "</fieldset>"+
               "</form>";

          return rf;
     },

     /**
      * Creates a delete button.
      *
      * @param {number} id: notice ID to create a delete link for
      * @return {String} HTML fragment
      *
      * @fixme this replicates core StatusNet code, making maintenance harder
      * @fixme sloppy HTML building (raw concat without escaping)
      * @fixme no i18n support
      *
      * @access private
      */
     makeDeleteLink: function(id)
     {
          var dl, delurl;
          delurl = RealtimeUpdate._deleteurl.replace("0000000000", id);

          dl = "Delete";

          return dl;
     },

     /**
      * Adds a control widget at the top of the timeline view, containing
      * pause/play and popup buttons.
      *
      * @param {String} url: full URL to the popup window variant of this timeline page
      * @param {String} timeline: string key for the timeline (eg 'public' or 'evan-all')
      * @param {String} path: URL to the base directory containing the Realtime plugin,
      *                       used to fetch resources if needed.
      *
      * @todo timeline and path parameters are unused and probably should be removed.
      *
      * @access private
      */
    initActions: function(url, timeline, path, keepaliveurl, closeurl)
     {
        $('#notices_primary').prepend('

');

        RealtimeUpdate._pluginPath = path;
        RealtimeUpdate._keepaliveurl = keepaliveurl;
        RealtimeUpdate._closeurl = closeurl;

	 // On unload, let the server know we're no longer listening
         $(window).unload(function() {
            $.ajax({
                type: 'POST',
                url: RealtimeUpdate._closeurl});
	 });

	setInterval(function() {
            $.ajax({
                type: 'POST',
                url: RealtimeUpdate._keepaliveurl});

	}, 15 * 60 * 1000 ); // every 15 min; timeout in 30 min

        RealtimeUpdate.initPlayPause();
        RealtimeUpdate.initAddPopup(url, timeline, RealtimeUpdate._pluginPath);
     },

     /**
      * Initialize the state of the play/pause controls.
      *
      * If the browser supports the localStorage interface, we'll attempt
      * to retrieve a pause state from there; otherwise we default to paused.
      *
      * @access private
      */
     initPlayPause: function()
     {
        if (typeof(localStorage) == 'undefined') {
            RealtimeUpdate.showPause();
        }
        else {
            if (localStorage.getItem('RealtimeUpdate_paused') === 'true') {
                RealtimeUpdate.showPlay();
            }
            else {
                RealtimeUpdate.showPause();
            }
        }
     },

     /**
      * Switch the realtime UI into paused state.
      * Uses SN.msg i18n system for the button label and tooltip.
      *
      * State will be saved and re-used next time if the browser supports
      * the localStorage interface (via setPause).
      *
      * @access private
      */
     showPause: function()
     {
        RealtimeUpdate.setPause(false);
        RealtimeUpdate.showQueuedNotices();
        RealtimeUpdate.addNoticesHover();

        $('#realtime_playpause').remove();
        $('#realtime_actions').prepend('
<button id="realtime_pause" class="pause"></button>
');
        $('#realtime_pause').text(SN.msg('realtime_pause'))
                            .attr('title', SN.msg('realtime_pause_tooltip'))
                            .bind('click', function() {
            RealtimeUpdate.removeNoticesHover();
            RealtimeUpdate.showPlay();
            return false;
        });
     },

     /**
      * Switch the realtime UI into play state.
      * Uses SN.msg i18n system for the button label and tooltip.
      *
      * State will be saved and re-used next time if the browser supports
      * the localStorage interface (via setPause).
      *
      * @access private
      */
     showPlay: function()
     {
        RealtimeUpdate.setPause(true);
        $('#realtime_playpause').remove();
        $('#realtime_actions').prepend('
 <button id="realtime_play" class="play"></button>
');
        $('#realtime_play').text(SN.msg('realtime_play'))
                           .attr('title', SN.msg('realtime_play_tooltip'))
                           .bind('click', function() {
            RealtimeUpdate.showPause();
            return false;
        });
     },

     /**
      * Update the internal pause/play state.
      * Do not call directly; use showPause() and showPlay().
      *
      * State will be saved and re-used next time if the browser supports
      * the localStorage interface.
      *
      * @param {boolean} state: true = paused, false = not paused
      *
      * @access private
      */
     setPause: function(state)
     {
        RealtimeUpdate._paused = state;
        if (typeof(localStorage) != 'undefined') {
            localStorage.setItem('RealtimeUpdate_paused', RealtimeUpdate._paused);
        }
     },

     /**
      * Go through notices we have previously received while paused,
      * dumping them into the timeline view.
      *
      * @fixme long timelines are not trimmed here as they are for things received while not paused
      *
      * @access private
      */
     showQueuedNotices: function()
     {
        $.each(RealtimeUpdate._queuedNotices, function(i, n) {
            RealtimeUpdate.insertNoticeItem(n);
        });

        RealtimeUpdate._queuedNotices = [];

        RealtimeUpdate.removeQueuedCounter();
     },

     /**
      * Update the Realtime widget control's counter of queued notices to show
      * the current count. This will be called after receiving and queueing
      * a notice while paused.
      *
      * @access private
      */
     updateQueuedCounter: function()
     {
        $('#realtime_playpause #queued_counter').html('('+RealtimeUpdate._queuedNotices.length+')');
     },

     /**
      * Clear the Realtime widget control's counter of queued notices.
      *
      * @access private
      */
     removeQueuedCounter: function()
     {
        $('#realtime_playpause #queued_counter').empty();
     },

     /**
      * Set up event handlers on the timeline view to automatically pause
      * when the mouse is over the timeline, as this indicates the user's
      * desire to interact with the UI. (Which is hard to do when it's moving!)
      *
      * @access private
      */
     addNoticesHover: function()
     {
        $('#notices_primary .notices').hover(
            function() {
                if (RealtimeUpdate._paused === false) {
                    RealtimeUpdate.showPlay();
                }
            },
            function() {
                if (RealtimeUpdate._paused === true) {
                    RealtimeUpdate.showPause();
                }
            }
        );
     },

     /**
      * Tear down event handlers on the timeline view to automatically pause
      * when the mouse is over the timeline.
      *
      * @fixme this appears to remove *ALL* event handlers from the timeline,
      *        which assumes that nobody else is adding any event handlers.
      *        Sloppy -- we should only remove the ones we add.
      *
      * @access private
      */
     removeNoticesHover: function()
     {
        $('#notices_primary .notices').unbind();
     },

     /**
      * UI initialization, to be called from Realtime plugin code on regular
      * timeline pages.
      *
      * Adds a button to the control widget at the top of the timeline view,
      * allowing creation of a popup window with a more compact real-time
      * view of the current timeline.
      *
      * @param {String} url: full URL to the popup window variant of this timeline page
      * @param {String} timeline: string key for the timeline (eg 'public' or 'evan-all')
      * @param {String} path: URL to the base directory containing the Realtime plugin,
      *                       used to fetch resources if needed.
      *
      * @todo timeline and path parameters are unused and probably should be removed.
      *
      * @access public
      */
     initAddPopup: function(url, timeline, path)
     {
         $('#realtime_timeline').append('<button id="realtime_popup"></button>');
         $('#realtime_popup').text(SN.msg('realtime_popup'))
                             .attr('title', SN.msg('realtime_popup_tooltip'))
                             .bind('click', function() {
                window.open(url,
                         '',
                         'toolbar=no,resizable=yes,scrollbars=yes,status=no,menubar=no,personalbar=no,location=no,width=500,height=550');

             return false;
         });
     },

     /**
      * UI initialization, to be called from Realtime plugin code on popup
      * compact timeline pages.
      *
      * Sets up links in notices to open in a new window.
      *
      * @fixme fails to do the same for UI links like context view which will
      *        look bad in the tiny chromeless window.
      *
      * @access public
      */
     initPopupWindow: function()
     {
         $('.notices .entry-title a, .notices .e-content a').bind('click', function() {
            window.open(this.href, '');

            return false;
         });

         $('#showstream .entity_profile').css({'width':'69%'});
     }
}


code:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANS: Client exception. Do not translate POST.
#: keepalivechannel.php:65 closechannel.php:65
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
#: keepalivechannel.php:72 closechannel.php:72
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
#: keepalivechannel.php:79 closechannel.php:79
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
#: RealtimePlugin.php:421
msgctxt "BUTTON"
msgid "Play"
msgstr ""

#. TRANS: Tooltip for realtime view "play" button.
#: RealtimePlugin.php:423
msgctxt "TOOLTIP"
msgid "Play"
msgstr ""

#. TRANS: Text label for realtime view "pause" button
#: RealtimePlugin.php:425
msgctxt "BUTTON"
msgid "Pause"
msgstr ""

#. TRANS: Tooltip for realtime view "pause" button
#: RealtimePlugin.php:427
msgctxt "TOOLTIP"
msgid "Pause"
msgstr ""

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
#: RealtimePlugin.php:429
msgctxt "BUTTON"
msgid "Pop up"
msgstr ""

#. TRANS: Tooltip for realtime view "popup" button.
#: RealtimePlugin.php:431
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr ""

license: mit


code:
# Translation of StatusNet - Realtime to Afrikaans (Afrikaans)
# Exported from translatewiki.net
#
# Author: Naudefj
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:45+0000\n"
"Language-Team: Afrikaans <https://translatewiki.net/wiki/Portal:af>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: af\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Speel"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Speel"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Wag"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Wag"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Pop-up"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "Wys in 'n venstertjie"


code:
# Translation of StatusNet - Realtime to Arabic (العربية)
# Exported from translatewiki.net
#
# Author: OsamaK
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:45+0000\n"
"Language-Team: Arabic <https://translatewiki.net/wiki/Portal:ar>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ar\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ( (n == 1) ? 1 : ( (n == "
"2) ? 2 : ( (n%100 >= 3 && n%100 <= 10) ? 3 : ( (n%100 >= 11 && n%100 <= "
"99) ? 4 : 5 ) ) ) );\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "شغّل"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "شغّل"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "ألبث"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "ألبث"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "منبثق"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "منبثق في نافذة"


code:
# Translation of StatusNet - Realtime to Breton (brezhoneg)
# Exported from translatewiki.net
#
# Author: Y-M D
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:45+0000\n"
"Language-Team: Breton <https://translatewiki.net/wiki/Portal:br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: br\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Lenn"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Lenn"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Ehan"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Ehan"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr ""

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr ""


code:
# Translation of StatusNet - Realtime to Catalan (català)
# Exported from translatewiki.net
#
# Author: Toniher
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:45+0000\n"
"Language-Team: Catalan <https://translatewiki.net/wiki/Portal:ca>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ca\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr "Heu de publicar-ho."

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr "No existeix l'argument de clau del canal."

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr "No existeix el canal."

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Reprodueix"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Reprodueix"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pausa"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pausa"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Emergent"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "Emergent en una finestra"


code:
# Translation of StatusNet - Realtime to German (Deutsch)
# Exported from translatewiki.net
#
# Author: ChrisiPK
# Author: Fujnky
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:45+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr "Du musst eine POST-Anfrage schicken."

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr "Kein Kanalpasswort als Argument angegeben."

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr "Kanal existiert nicht."

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Abspielen"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Abspielen"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pause"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pause"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Popup"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "Popup in einem Fenster"


code:
# Translation of StatusNet - Realtime to Spanish (español)
# Exported from translatewiki.net
#
# Author: Armando-Martin
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:46+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr "Tienes que PUBLICARLO."

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr "Sin argumento para la clave de canal."

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr "No existe tal canal."

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Reproducir"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Reproducir"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pausa"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pausa"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Ventana emergente"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "Mostrar en una ventana emergente"


code:
# Translation of StatusNet - Realtime to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:46+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr "POST bidez egin behar duzu."

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr "Kanalerako gakoarentzako argudiorik ez."

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr "Kanal hori ez dago."

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Play"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr ""

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pausatu"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pausatu"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Pop up"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr ""


code:
# Translation of StatusNet - Realtime to French (français)
# Exported from translatewiki.net
#
# Author: Gomoko
# Author: Peter17
# Author: Verdy p
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:46+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr "Vous devez le PUBLIER."

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr "Pas d'argument clé de canal."

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr "Canal inconnu."

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Lecture"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Lecture"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pause"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pause"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Nouvelle fenêtre"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "Afficher dans une nouvelle fenêtre"


code:
# Translation of StatusNet - Realtime to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:46+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr "Ten que publicalo con POST."

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr "Sen argumento para a clave de canle."

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr "Non hai tal canle."

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Reproducir"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Reproducir"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pausar"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pausar"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Ventá emerxente"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "Mostrar nunha ventá emerxente"


code:
# Translation of StatusNet - Realtime to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:46+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr "Es necessari inviar lo con POST."

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr "Il non ha un parametro pro clave de canal."

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr "Iste canal non existe."

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Reproducer"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Reproducer"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pausar"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pausar"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Fenestra"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "Aperir le reproductor in un nove fenestra"


code:
# Translation of StatusNet - Realtime to Japanese (日本語)
# Exported from translatewiki.net
#
# Author: Shirayuki
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:46+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "再生"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "再生"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "一時停止"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "一時停止"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "ポップアップ"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr ""


code:
# Translation of StatusNet - Realtime to Luxembourgish (Lëtzebuergesch)
# Expored from translatewiki.net
#
# Author: Robby
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-14 10:29+0000\n"
"PO-Revision-Date: 2011-01-14 10:33:54+0000\n"
"Language-Team: Luxembourgish <http://translatewiki.net/wiki/Portal:lb>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-10 18:26:07+0000\n"
"X-Generator: MediaWiki 1.18alpha (r80246); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: lb\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
#: RealtimePlugin.php:339
msgctxt "BUTTON"
msgid "Play"
msgstr ""

#. TRANS: Tooltip for realtime view "play" button.
#: RealtimePlugin.php:341
msgctxt "TOOLTIP"
msgid "Play"
msgstr ""

#. TRANS: Text label for realtime view "pause" button
#: RealtimePlugin.php:343
msgctxt "BUTTON"
msgid "Pause"
msgstr "Paus"

#. TRANS: Tooltip for realtime view "pause" button
#: RealtimePlugin.php:345
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Paus"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
#: RealtimePlugin.php:347
msgctxt "BUTTON"
msgid "Pop up"
msgstr ""

#. TRANS: Tooltip for realtime view "popup" button.
#: RealtimePlugin.php:349
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr ""


code:
# Translation of StatusNet - Realtime to Latvian (latviešu)
# Exported from translatewiki.net
#
# Author: GreenZeb
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:46+0000\n"
"Language-Team: Latvian <https://translatewiki.net/wiki/Portal:lv>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: lv\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n != "
"0) ? 1 : 2 );\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Atskaņot"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Atskaņot"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pauzēt"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pauzēt"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr ""

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr ""


code:
# Translation of StatusNet - Realtime to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:47+0000\n"
"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: mk\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr "Ќе мора да го објавите со POST."

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr "Нема аргумент за клучот на каналот."

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr "Нема таков канал."

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Пушти"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Пушти"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Паузирај"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Паузирај"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Прозорче"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "Прикажи во прозорче"


code:
# Translation of StatusNet - Realtime to Nepali (नेपाली)
# Exported from translatewiki.net
#
# Author: Bhawani Gautam
# Author: Bhawani Gautam Rhk
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:47+0000\n"
"Language-Team: Nepali <https://translatewiki.net/wiki/Portal:ne>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ne\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "बजाउ"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "बजाउ"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "बिसाउ"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "बिसाउ"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "चम्काउ"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "चम्क विन्डोमा"


code:
# Translation of StatusNet - Realtime to Dutch (Nederlands)
# Exported from translatewiki.net
#
# Author: Siebrand
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:47+0000\n"
"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nl\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr "U moet het bericht POST-en."

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr "Er is geen kanaalsleutel als argument opgegeven."

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr "Dat kanaal bestaat niet."

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Afspelen"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Afspelen"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pauzeren"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pauzeren"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Pop-up"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "In nieuw venstertje weergeven"


code:
# Translation of StatusNet - Realtime to Polish (polski)
# Exported from translatewiki.net
#
# Author: Woytecr
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:47+0000\n"
"Language-Team: Polish <https://translatewiki.net/wiki/Portal:pl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: pl\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && "
"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Odtwórz"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Odtwórz"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pauza"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pauza"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr ""

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr ""


code:
# Translation of StatusNet - Realtime to Russian (Русский)
# Expored from translatewiki.net
#
# Author: Haffman
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-01-15 00:20+0000\n"
"PO-Revision-Date: 2011-01-15 00:24:36+0000\n"
"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-01-14 13:21:25+0000\n"
"X-Generator: MediaWiki 1.18alpha (r80364); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ru\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
#: RealtimePlugin.php:339
msgctxt "BUTTON"
msgid "Play"
msgstr ""

#. TRANS: Tooltip for realtime view "play" button.
#: RealtimePlugin.php:341
msgctxt "TOOLTIP"
msgid "Play"
msgstr ""

#. TRANS: Text label for realtime view "pause" button
#: RealtimePlugin.php:343
msgctxt "BUTTON"
msgid "Pause"
msgstr ""

#. TRANS: Tooltip for realtime view "pause" button
#: RealtimePlugin.php:345
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Пауза"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
#: RealtimePlugin.php:347
msgctxt "BUTTON"
msgid "Pop up"
msgstr ""

#. TRANS: Tooltip for realtime view "popup" button.
#: RealtimePlugin.php:349
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr ""


code:
# Translation of StatusNet - Realtime to Swedish (svenska)
# Exported from translatewiki.net
#
# Author: Lokal Profil
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:47+0000\n"
"Language-Team: Swedish <https://translatewiki.net/wiki/Portal:sv>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: sv\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Spela upp"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Spela upp"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pausa"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pausa"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr ""

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr ""


code:
# Translation of StatusNet - Realtime to Tagalog (Tagalog)
# Exported from translatewiki.net
#
# Author: AnakngAraw
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:47+0000\n"
"Language-Team: Tagalog <https://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: tl\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr "Kailangan mong IPASKIL iyan."

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr "Walang susi sa katwiran ng kanal."

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr "Walang ganyang kanal."

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Paandarin"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Paandarin"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Pansamantalang pahintuin"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Pansamantalang pahintuin"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Biglang sulpot"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "Biglang sulpot sa loob ng isang dungawan"


code:
# Translation of StatusNet - Realtime to Turkish (Türkçe)
# Exported from translatewiki.net
#
# Author: Maidis
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:47+0000\n"
"Language-Team: Turkish <https://translatewiki.net/wiki/Portal:tr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: tr\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Oynat"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Oynat"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Duraklat"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Duraklat"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr ""

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr ""


code:
# Translation of StatusNet - Realtime to Ukrainian (українська)
# Exported from translatewiki.net
#
# Author: Boogie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Realtime\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:47+0000\n"
"Language-Team: Ukrainian <https://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-02 10:10:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: uk\n"
"X-Message-Group: #out-statusnet-plugin-realtime\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Client exception. Do not translate POST.
msgid "You have to POST it."
msgstr ""

#. TRANS: Client exception thrown when the channel key argument is missing.
msgid "No channel key argument."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing channel.
msgid "No such channel."
msgstr ""

#. TRANS: Text label for realtime view "play" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Play"
msgstr "Оновлювати"

#. TRANS: Tooltip for realtime view "play" button.
msgctxt "TOOLTIP"
msgid "Play"
msgstr "Оновлювати"

#. TRANS: Text label for realtime view "pause" button
msgctxt "BUTTON"
msgid "Pause"
msgstr "Пауза"

#. TRANS: Tooltip for realtime view "pause" button
msgctxt "TOOLTIP"
msgid "Pause"
msgstr "Пауза"

#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon.
msgctxt "BUTTON"
msgid "Pop up"
msgstr "Окреме вікно"

#. TRANS: Tooltip for realtime view "popup" button.
msgctxt "TOOLTIP"
msgid "Pop up in a window"
msgstr "Стрічка окремим вікном"


code:
#!/usr/bin/env php
<?php
/*
 * StatusNet - a distributed open-source microblogging tool
 * Copyright (C) 2011, StatusNet, Inc.
 *
 * Script to print out current version of the software
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..'));

$shortoptions = 'u';
$longoptions = array('universe');

$helptext = <<<END_OF_CLEANUPCHANNELS_HELP
cleanupchannels.php [options]
Garbage-collects old realtime channels

-u --universe Do all sites

END_OF_CLEANUPCHANNELS_HELP;

require_once INSTALLDIR.'/scripts/commandline.inc';

function cleanupChannels()
{
    $rc = new Realtime_channel();

    $rc->selectAdd();
    $rc->selectAdd('channel_key');

    $rc->whereAdd('modified < "' . common_sql_date(time() - Realtime_channel::TIMEOUT) . '"');

    if ($rc->find()) {
        $keys = $rc->fetchAll();

        foreach ($keys as $key) {
            $rc = Realtime_channel::getKV('channel_key', $key);
            if (!empty($rc)) {
                printfv("Deleting realtime channel '$key'\n");
                $rc->delete();
            }
        }
    }
}

if (have_option('u', 'universe')) {
    $sn = new Status_network();
    if ($sn->find()) {
        while ($sn->fetch()) {
            $server = $sn->getServerName();
            StatusNet::init($server);
            cleanupChannels();
        }
    }
} else {
    cleanupChannels();
}


code:
StatusNet reCAPTCHA plugin 0.3 11/16/09
=======================================
Adds a captcha to your registration page to reduce automated spam bots registering.

Use:
1. Get an API key from http://recaptcha.net

2. In config.php add:
addPlugin('recaptcha', array('private_key' => 'YourKeyHere',
                              'public_key' => 'ReplaceWithYourKey'));
or
addPlugin('recaptcha', array('private_key' => 'YourKeyHere',
                              'public_key' => 'ReplaceWithYourKey',
                              'display_errors' => true));
Changelog
=========
0.1 initial release
0.2 Work around for webkit browsers
0.3 Moved to new plugin arch for SN
    **YOU WILL NEED TO CHANGE YOUR CONFIG.PHP!**

reCAPTCHA Lib README
====================

The reCAPTCHA PHP Lirary helps you use the reCAPTCHA API. Documentation
for this library can be found at

	http://recaptcha.net/plugins/php

path: plugins/Recaptcha/README


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Plugin to show reCaptcha when a user registers
 *
 * PHP version 5
 *
 * LICENCE: This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @category  Plugin
 * @package   StatusNet
 * @author    Eric Helgeson <erichelgeson@gmail.com>
 * @copyright 2009
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      http://status.net/
 */

if (!defined('STATUSNET') && !defined('LACONICA')) {
    exit(1);
}

require_once(INSTALLDIR.'/plugins/Recaptcha/recaptchalib.php');

class RecaptchaPlugin extends Plugin
{
    var $private_key;
    var $public_key;
    var $display_errors;
    var $failed;
    var $ssl;

    function onInitializePlugin()
    {
        if(!isset($this->private_key)) {
            common_log(LOG_ERR, 'Recaptcha: Must specify private_key in config.php');
        }
        if(!isset($this->public_key)) {
            common_log(LOG_ERR, 'Recaptcha: Must specify public_key in config.php');
        }
    }

    function onEndRegistrationFormData($action)
    {
        $action->elementStart('li');
        // TRANS: Field label.
        $action->raw(''._m('Captcha').'');

        // AJAX API will fill this div out.
        // We're calling that instead of the regular one so we stay compatible
        // with application/xml+xhtml output as for mobile.
        $action->element('div', array('id' => 'recaptcha'));
        $action->elementEnd('li');

        $action->recaptchaPluginNeedsOutput = true;
        return true;
    }

    function onEndShowScripts($action)
    {
        if (isset($action->recaptchaPluginNeedsOutput) && $action->recaptchaPluginNeedsOutput) {
            // Load the AJAX API
            if (StatusNet::isHTTPS()) {
                $url = "https://www.google.com/recaptcha/api/js/recaptcha_ajax.js";
            } else {
                $url = "http://www.google.com/recaptcha/api/js/recaptcha_ajax.js";
            }
            $action->script($url);

            // And when we're ready, fill out the captcha!
            $key = json_encode($this->public_key);
            $action->inlinescript("\$(function(){Recaptcha.create($key, 'recaptcha');});");
        }
        return true;
    }

    function onStartRegistrationTry($action)
    {
        $resp = recaptcha_check_answer ($this->private_key,
                                        $_SERVER["REMOTE_ADDR"],
                                        $action->trimmed('recaptcha_challenge_field'),
                                        $action->trimmed('recaptcha_response_field'));

        if (!$resp->is_valid) {
            if($this->display_errors) {
                // TRANS: Error message displayed if there is in error communicating with the
                // TRANS: reCAPTCHA server. %s is the error.
                $action->showForm(sprintf(_m('(reCAPTCHA error: %s)', $resp->error)));
            }
            // TRANS: Error message displayed if a provided captcha response does not match.
            $action->showForm(_m('Captcha does not match!'));
            return false;
        }
    }

    function onPluginVersion(&$versions)
    {
        $versions[] = array('name' => 'Recaptcha',
                            'version' => GNUSOCIAL_VERSION,
                            'author' => 'Eric Helgeson',
                            'homepage' => 'http://status.net/wiki/Plugin:Recaptcha',
                            'rawdescription' =>
                            // TRANS: Plugin description.
                            _m('Uses Recaptcha service to add a  '.
                               'captcha to the registration page.'));
        return true;
    }
}


code:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANS: Field label.
#: RecaptchaPlugin.php:58
msgid "Captcha"
msgstr ""

#. TRANS: Error message displayed if a provided captcha response does not match.
#: RecaptchaPlugin.php:102
msgid "Captcha does not match!"
msgstr ""

#. TRANS: Plugin description.
#: RecaptchaPlugin.php:115
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""


code:
# Translation of StatusNet - Recaptcha to Catalan (català)
# Exported from translatewiki.net
#
# Author: Toniher
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:47+0000\n"
"Language-Team: Catalan <https://translatewiki.net/wiki/Portal:ca>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ca\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "El Captcha no coincideix!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Feu servir el servei Recaptcha per a "
"afegir un captcha a la pàgina de registre."


code:
# Translation of StatusNet - Recaptcha to German (Deutsch)
# Exported from translatewiki.net
#
# Author: Apmon
# Author: The Evil IP address
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:47+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Captcha stimmt nicht mit Text überein!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Verwendet Recaptcha um ein CAPTCHA zur "
"Registrierung hinzuzufügen."


code:
# Translation of StatusNet - Recaptcha to Spanish (español)
# Exported from translatewiki.net
#
# Author: Armando-Martin
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Verificador Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "¡El código de verificación Captcha no coincide!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Use el servicio Recaptcha para añadir "
"un código de verificación Captcha a la página de registro."


code:
# Translation of StatusNet - Recaptcha to French (français)
# Exported from translatewiki.net
#
# Author: Peter17
# Author: Verdy p
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Vérificateur anti-robot Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Le Captcha ne correspond pas !"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Utilise le service Recaptcha pour "
"ajouter un captcha à la page d’enregistrement."


code:
# Translation of StatusNet - Recaptcha to Friulian (furlan)
# Exported from translatewiki.net
#
# Author: Klenje
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Language-Team: Friulian <https://translatewiki.net/wiki/Portal:fur>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fur\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Il Captcha nol corispuint!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Dopre il servizi Recaptcha par zontâ "
"un captcha ae pagjine di regjistrazion."


code:
# Translation of StatusNet - Recaptcha to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "O captcha non coincide!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Usa o servizo Recaptcha para engadir o "
"captcha á páxina de rexistro."


code:
# Translation of StatusNet - Recaptcha to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Captcha non corresponde!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Usa le servicio Recaptcha pro adder "
"un  captcha al pagina de registration."


code:
# Translation of StatusNet - Recaptcha to Japanese (日本語)
# Expored from translatewiki.net
#
# Author: 青子守歌
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-12-16 15:08+0000\n"
"PO-Revision-Date: 2010-12-16 15:12:49+0000\n"
"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: ja\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: RecaptchaPlugin.php:64
msgid "Captcha"
msgstr ""

#: RecaptchaPlugin.php:105
msgid "Captcha does not match!"
msgstr ""

#: RecaptchaPlugin.php:117
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"登録ページにキャプチャとしてRecaptcha"
"サービスを利用する。"


code:
# Translation of StatusNet - Recaptcha to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: mk\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Captcha не се совпаѓа!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Ја користи слкубата Recaptcha за "
"додавање на captcha во страницата за регистрација."


code:
# Translation of StatusNet - Recaptcha to Norwegian Bokmål (norsk (bokmål))
# Exported from translatewiki.net
#
# Author: Nghtwlkr
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Language-Team: Norwegian Bokmål <https://translatewiki.net/wiki/Portal:nb>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nb\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Captcha stemmer ikke."

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Bruker Recaptcha-tjenesten for å legge "
"en captcha til registreringssiden."


code:
# Translation of StatusNet - Recaptcha to Dutch (Nederlands)
# Exported from translatewiki.net
#
# Author: Siebrand
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nl\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Captcha komt niet overeen!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Gebruikt de dienst Recaptcha om een "
"captcha toe te voegen aan de registratiepagina."


code:
# Translation of StatusNet - Recaptcha to Polish (polski)
# Exported from translatewiki.net
#
# Author: Raven
# Author: Woytecr
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Language-Team: Polish <https://translatewiki.net/wiki/Portal:pl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: pl\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && "
"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Kod Captcha nie został przepisany prawidłowo!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Używa serwisu Recaptcha aby umieścić "
"kod captcha na stronę rejestracji."


code:
# Translation of StatusNet - Recaptcha to Portuguese (português)
# Exported from translatewiki.net
#
# Author: GTNS
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Language-Team: Portuguese <https://translatewiki.net/wiki/Portal:pt>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: pt\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Imagem de verificação"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "A imagem de verificação não corresponde!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Usa o serviço Recaptcha para adicionar "
"uma imagem de verificação à página de registo."


code:
# Translation of StatusNet - Recaptcha to Russian (русский)
# Exported from translatewiki.net
#
# Author: Eleferen
# Author: MaxSem
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:48+0000\n"
"Language-Team: Russian <https://translatewiki.net/wiki/Portal:ru>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ru\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Капча"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Код проверки не совпадает!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Добавляет на страницу регистрации каптчу с использованием Recaptcha."


code:
# Translation of StatusNet - Recaptcha to Swedish (svenska)
# Exported from translatewiki.net
#
# Author: Jamminjohn
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:49+0000\n"
"Language-Team: Swedish <https://translatewiki.net/wiki/Portal:sv>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: sv\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Captcha stämmer inte!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Använder Recaptcha-tjänsten för att "
"lägga till en captcha till registreringssidan."


code:
# Translation of StatusNet - Recaptcha to Tagalog (Tagalog)
# Exported from translatewiki.net
#
# Author: AnakngAraw
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:49+0000\n"
"Language-Team: Tagalog <https://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: tl\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Hindi tugma ang Captcha!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Gumagamit ng palingkurang Recaptcha "
"upang magdagdag ng isang captcha sa pahina ng pagpapatala."


code:
# Translation of StatusNet - Recaptcha to Ukrainian (українська)
# Exported from translatewiki.net
#
# Author: Boogie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Recaptcha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:09:49+0000\n"
"Language-Team: Ukrainian <https://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:51:24+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: uk\n"
"X-Message-Group: #out-statusnet-plugin-recaptcha\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Field label.
msgid "Captcha"
msgstr "Captcha"

#. TRANS: Error message displayed if a provided captcha response does not match.
msgid "Captcha does not match!"
msgstr "Коди перевірки не збігаються!"

#. TRANS: Plugin description.
msgid ""
"Uses Recaptcha service to add a  "
"captcha to the registration page."
msgstr ""
"Використання Recaptcha у якості "
"інструменту для перевірки на «людяність» на сторінці реєстрації."