sugar-connect-activity-22/0000755000000000000000000000000011415661237014405 5ustar rootrootsugar-connect-activity-22/.gitignore0000644000000000000000000000003511415661237016373 0ustar rootrootConnect-*.xo *.pyc .*.sw[op] sugar-connect-activity-22/AUTHORS0000644000000000000000000000050711415661237015457 0ustar rootrootDafydd Harries Simon McVittie Guillaume Desmottes Tomeu Vizoso Marco Pesenti Gritti Dan Winship Simon Schampijer Morgan Collett sugar-connect-activity-22/COPYING0000644000000000000000000004310311415661237015441 0ustar rootroot GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. sugar-connect-activity-22/MANIFEST0000644000000000000000000000130711415661237015537 0ustar rootrootAUTHORS COPYING NEWS activity.py buddiespanel.py game.py gridwidget.py infopanel.py setup.py widgettest.py activity/activity-connect.svg activity/activity.info po/Connect.pot po/am.po po/ar.po po/ay.po po/bg.po po/bn.po po/bn_IN.po po/ca.po po/de.po po/dz.po po/el.po po/en.po po/es.po po/fa.po po/fa_AF.po po/ff.po po/fr.po po/gu.po po/ha.po po/hi.po po/ht.po po/ig.po po/is.po po/it.po po/ja.po po/km.po po/ko.po po/mk.po po/ml.po po/mn.po po/mr.po po/ne.po po/nl.po po/pa.po po/pl.po po/ps.po po/pseudo.po po/pt.po po/pt_BR.po po/qu.po po/ro.po po/ru.po po/rw.po po/si.po po/te.po po/th.po po/tr.po po/ur.po po/vi.po po/yo.po po/zh_CN.po po/zh_TW.po po/af.po po/mvo.po po/pap.po po/pis.po po/sd.po po/tpi.po sugar-connect-activity-22/NEWS0000644000000000000000000000323211415661237015104 0ustar rootroot22 * #6473: Better method for resolving handles to buddies (morgs) * #3429: Detect game ending in a draw (morgs) * Add GPL header to all files (morgs) * Updated translations (pootle) 21 * Added AUTHORS, COPYING (morgs) * Added copyleft to activity.py (morgs) * Updated translations (pootle) 20 * Fix traceback in buddiespanel when removing a watcher (morgs) 19 * #4663: fix and use _get_buddy again to convert handles into buddies (morgs) 18 * Fixes in usage of sugar.presence API (morgs) 17 * Remove Tubes boilerplate and rely on #4503 having been fixed in sugar.presence (smcv) -- this depends on sugar snapshot 8c89bfaed7 16 * Remove self.set_title() (morgs) * #3492: Don't quit on escape (cassidy) 15 * #3557: Updated spanish translation (morgs) 14 * Updated spanish translation (morgs) * Add spanish translation (xavi) 13 * #2349 Suggests sharing or inviting someone to play (morgs) * #3194 Detect win with more than 4 in a row (morgs) 12 * New activity icon, Fix for #2829 (erikos) 11 * Port to new tubes API (cassidy) 10 * Fix sugar.graphics change to CanvasIcon (morgs) * Add greek translation. (simosx) * Add arabic translation. (khaled) 9 * Fix buddy icon (morgs) * Use tubeconn from sugar.presence (morgs) * Use sugar.graphics.style instead of sugar.graphics.color (danw) * #2579 German translation (morgs) 8 * Add gettext for i18n (morgs) * #1625, #2420: Fix activity icon (danw, cassidy) 7 * 1960, #1624: Show the activity toolbox and sidebar when PS not connected (morgs) 6 * Adapt to sugar API change (marco) 5 * Fix buddy handles for Salut (Link Local) channels (smcv) * UI improvement to show whose turn it is, below grid (morgs) sugar-connect-activity-22/activity.py0000644000000000000000000001516511415661237016623 0ustar rootroot# Copyright 2007 One Laptop Per Child # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import logging from gettext import gettext as _ import dbus import gtk import hippo import telepathy import telepathy.client from sugar.activity.activity import Activity, ActivityToolbox from sugar.presence import presenceservice from sugar.presence.sugartubeconn import SugarTubeConnection import sugar.logger import gridwidget from game import ConnectGame, SERVICE from buddiespanel import BuddiesPanel from infopanel import InfoPanel logger = logging.getLogger('connect-activity') class ConnectActivity(Activity): def __init__(self, handle): Activity.__init__(self, handle) logger.debug('Starting Connect activity...') self.grid = gridwidget.GridWidget() self.buddies_panel = BuddiesPanel() self.info_panel = InfoPanel() vbox = hippo.CanvasBox(spacing=4, orientation=hippo.ORIENTATION_VERTICAL) hbox = hippo.CanvasBox(spacing=4, orientation=hippo.ORIENTATION_HORIZONTAL) hbox.append(self.buddies_panel) hbox.append(hippo.CanvasWidget(widget=self.grid), hippo.PACK_EXPAND) vbox.append(hbox, hippo.PACK_EXPAND) vbox.append(self.info_panel, hippo.PACK_END) canvas = hippo.Canvas() canvas.set_root(vbox) self.set_canvas(canvas) self.show_all() toolbox = ActivityToolbox(self) self.set_toolbox(toolbox) toolbox.show() self.pservice = presenceservice.get_instance() owner = self.pservice.get_owner() self.owner = owner # This displays the buddies_panel even if we fail to connect: self.buddies_panel.add_watcher(owner) self.info_panel.show(_('To play, share or invite someone.')) self.initiating = None self.game = None self.connect('shared', self._shared_cb) if self.shared_activity: # we are joining the activity self.buddies_panel.add_watcher(owner) self.connect('joined', self._joined_cb) self.shared_activity.connect('buddy-joined', self._buddy_joined_cb) self.shared_activity.connect('buddy-left', self._buddy_left_cb) if self.get_shared(): # oh, OK, we've already joined self._joined_cb() else: # we are creating the activity self.buddies_panel.remove_watcher(owner) self.buddies_panel.add_player(owner) #self.buddies_panel.set_is_playing(owner) #self.buddies_panel.set_count(owner, 69) self.connect('key-press-event', self.key_press_cb) def key_press_cb(self, widget, event): logger.debug('Keypress: %r, %r', widget, event) if self.game is not None: self.game.key_press_event(widget, event) def _shared_cb(self, activity): logger.debug('My Connect activity was shared') self.initiating = True self._setup() for buddy in self.shared_activity.get_joined_buddies(): self.buddies_panel.add_watcher(buddy) self.shared_activity.connect('buddy-joined', self._buddy_joined_cb) self.shared_activity.connect('buddy-left', self._buddy_left_cb) logger.debug('This is my activity: making a tube...') id = self.tubes_chan[telepathy.CHANNEL_TYPE_TUBES].OfferDBusTube( SERVICE, {}) self.info_panel.show(_('Waiting for another player to join.')) def _setup(self): if self.shared_activity is None: logger.error('Failed to share or join activity') return self.conn = self.shared_activity.telepathy_conn self.tubes_chan = self.shared_activity.telepathy_tubes_chan self.text_chan = self.shared_activity.telepathy_text_chan self.tubes_chan[telepathy.CHANNEL_TYPE_TUBES].connect_to_signal( 'NewTube', self._new_tube_cb) def _list_tubes_reply_cb(self, tubes): for tube_info in tubes: self._new_tube_cb(*tube_info) def _list_tubes_error_cb(self, e): logger.error('ListTubes() failed: %s', e) def _joined_cb(self, activity): if self.game is not None: return if not self.shared_activity: return for buddy in self.shared_activity.get_joined_buddies(): self.buddies_panel.add_watcher(buddy) logger.debug('Joined an existing Connect game') self.info_panel.show(_('Joined a game. Waiting for my turn...')) self.initiating = False self._setup() logger.debug('This is not my activity: waiting for a tube...') self.tubes_chan[telepathy.CHANNEL_TYPE_TUBES].ListTubes( reply_handler=self._list_tubes_reply_cb, error_handler=self._list_tubes_error_cb) def _new_tube_cb(self, id, initiator, type, service, params, state): logger.debug('New tube: ID=%d initator=%d type=%d service=%s ' 'params=%r state=%d', id, initiator, type, service, params, state) if (self.game is None and type == telepathy.TUBE_TYPE_DBUS and service == SERVICE): if state == telepathy.TUBE_STATE_LOCAL_PENDING: self.tubes_chan[ telepathy.CHANNEL_TYPE_TUBES].AcceptDBusTube(id) tube_conn = SugarTubeConnection(self.conn, self.tubes_chan[telepathy.CHANNEL_TYPE_TUBES], id, group_iface=self.text_chan[ telepathy.CHANNEL_INTERFACE_GROUP]) self.game = ConnectGame(tube_conn, self.grid, self.initiating, self.buddies_panel, self.info_panel, self.owner, self) def _buddy_joined_cb (self, activity, buddy): logger.debug("buddy joined") self.buddies_panel.add_watcher(buddy) def _buddy_left_cb (self, activity, buddy): logger.debug("buddy left") self.buddies_panel.remove_watcher(buddy) sugar-connect-activity-22/activity/0000755000000000000000000000000011415661237016241 5ustar rootrootsugar-connect-activity-22/activity/activity-connect.svg0000644000000000000000000001351411415661237022251 0ustar rootroot ]> sugar-connect-activity-22/activity/activity.info0000644000000000000000000000023411415661237020751 0ustar rootroot[Activity] name = Connect bundle_id = org.laptop.Connect class = activity.ConnectActivity icon = activity-connect activity_version = 22 show_launcher = yes sugar-connect-activity-22/buddiespanel.py0000644000000000000000000001111311415661237017413 0ustar rootroot# Copyright 2007 One Laptop Per Child # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import gtk import hippo import logging from sugar.graphics.icon import CanvasIcon from sugar.graphics.xocolor import XoColor from sugar.graphics import style logger = logging.getLogger('connect-activity.buddiespanel') class BuddiesPanel(hippo.CanvasBox): def __init__(self): hippo.CanvasBox.__init__(self, spacing=4, padding=5, orientation=hippo.ORIENTATION_VERTICAL) self.players_box = hippo.CanvasBox(spacing=4, padding=5, orientation=hippo.ORIENTATION_VERTICAL) self.watchers_box = hippo.CanvasBox(spacing=4, padding=5, orientation=hippo.ORIENTATION_VERTICAL) self.append(self.players_box) self.append(hippo.CanvasWidget(widget=gtk.HSeparator())) self.append(self.watchers_box, hippo.PACK_EXPAND) self.players = {} self.watchers = {} def _create_buddy_vbox (self, buddy): buddy_color = buddy.props.color if not buddy_color: buddy_color = "#000000,#ffffff" icon = CanvasIcon( icon_name='computer-xo', xo_color=XoColor(buddy_color)) nick = buddy.props.nick if not nick: nick = "" name = hippo.CanvasText(text=nick, color=style.COLOR_WHITE.get_int()) vbox = hippo.CanvasBox(padding=5) vbox.append(icon) vbox.append(name) return vbox def add_watcher(self, buddy): op = buddy.object_path() if self.watchers.get(op) is not None: return # if the watcher is also a player, don't add them if self.players.get(op) is not None: return vbox = self._create_buddy_vbox (buddy) logger.debug("add watcher %s" % op) self.watchers_box.append(vbox) self.watchers[op] = vbox def add_player(self, buddy): op = buddy.object_path() if self.players.get(op) is not None: return # if the player is also a watcher, drop them from the watchers widget = self.watchers.pop(op, None) if widget is not None: self.watchers_box.remove(widget) logger.debug("add player %s" % op) assert len(self.players) < 2 hbox = hippo.CanvasBox(spacing=4, padding=5, orientation=hippo.ORIENTATION_HORIZONTAL) vbox = self._create_buddy_vbox(buddy) hbox.append(vbox) count_font = style.FONT_BOLD.get_pango_desc() count_font.set_size(30000) count = hippo.CanvasText(text="0", color=style.COLOR_WHITE.get_int(), font_desc=count_font) hbox.append(count) self.players_box.append(hbox) self.players[op] = hbox def set_is_playing(self, buddy): op = buddy.object_path() for player, hbox in self.players.items(): vbox = hbox.get_children()[0] icon, name = vbox.get_children() if player == op: name.props.font_desc = style.FONT_BOLD.get_pango_desc() else: name.props.font_desc = style.FONT_NORMAL.get_pango_desc() def set_count(self, buddy, val): hbox = self.players.get(buddy.object_path()) if hbox is None: return count = hbox.get_children()[1] count.props.text = str(val) def remove_watcher(self, buddy): op = buddy.object_path() widget = self.watchers.get(op) if widget is None: return self.watchers_box.remove(widget) del self.watchers[op] # removing someone from the game entirely should also remove them # from the players self.remove_player(buddy) def remove_player(self, buddy): op = buddy.object_path() widget = self.players.get(op) if widget is None: return self.players_box.remove(widget) del self.players[op] self.add_watcher(buddy) sugar-connect-activity-22/game.py0000644000000000000000000002362511415661237015700 0ustar rootroot# Copyright 2007-2008 One Laptop Per Child # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import logging from gettext import gettext as _ import gtk from dbus import Interface from dbus.service import method, signal from dbus.gobject_service import ExportedGObject SERVICE = "org.freedesktop.Telepathy.Tube.Connect" IFACE = SERVICE PATH = "/org/freedesktop/Telepathy/Tube/Connect" _logger = logging.getLogger('connect-activity.game') def redraw(grid): """Utility function to force a redraw of a Gtk widget.""" grid.queue_draw() def dump_grid(seq): grid = '' for row in seq: row_str = '' for col in row: if col == -1: row_str += ' |' else: row_str += '%d|' % col grid = '%s%s\n' % (grid, row_str) _logger.debug('Grid state is now:\n%s', grid) class ConnectGame(ExportedGObject): def __init__(self, tube, grid, is_initiator, buddies_panel, info_panel, owner, activity): super(ConnectGame, self).__init__(tube, PATH) self.tube = tube self.grid = grid self.is_initiator = is_initiator self.entered = False self.player_id = None self.buddies_panel = buddies_panel self.info_panel = info_panel self.owner = owner self.activity = activity # list indexed by player ID # 0, 1 are players 0, 1 # 2+ are the spectator queue, 2 is to play next self.ordered_bus_names = [] self.tube.watch_participants(self.participant_change_cb) self.grid.connect('insert-requested', self.insert_requested_cb) def participant_change_cb(self, added, removed): # Initiator is player 0, other player is player 1. _logger.debug('adding participants: %r', added) _logger.debug('removing participants: %r', removed) for handle, bus_name in added: buddy = self.tube.get_buddy(handle) _logger.debug('Buddy %r was added', buddy) if buddy is not None: self.buddies_panel.add_watcher(buddy) for handle in removed: buddy = self.tube.get_buddy(handle) _logger.debug('Buddy %r was removed', buddy) if buddy is not None: self.buddies_panel.remove_watcher(buddy) try: self.ordered_bus_names.remove(self.tube.participants[handle]) except ValueError: # already absent pass if not self.entered: self.tube.add_signal_receiver(self.insert_cb, 'Insert', IFACE, path=PATH, sender_keyword='sender') if self.is_initiator: _logger.debug('I am the initiator, so making myself player 0') self.add_hello_handler() self.ordered_bus_names = [self.tube.get_unique_name()] self.player_id = 0 self.buddies_panel.add_player(self.owner) else: _logger.debug('Hello, everyone! What did I miss?') self.Hello() self.entered = True @signal(dbus_interface=IFACE, signature='') def Hello(self): """Request that this player's Welcome method is called to bring it up to date with the game state. """ @method(dbus_interface=IFACE, in_signature='aanas', out_signature='') def Welcome(self, grid, bus_names): """To be called on the incoming player by the other players to inform them of the game state. FIXME: nominate a "referee" (initially the initiator) responsible for saying Welcome, elect a new referee when the current referee leaves? This could also be used to make the protocol robust against cheating/bugs """ if self.player_id is None: _logger.debug('Welcomed to the game. Player bus names are %r', bus_names) self.grid.grid = grid dump_grid(grid) self.ordered_bus_names = bus_names self.player_id = bus_names.index(self.tube.get_unique_name()) # OK, now I'm synced with the game, I can welcome others self.add_hello_handler() buddy = self.tube.get_buddy( self.tube.bus_name_to_handle[bus_names[0]]) self.buddies_panel.add_player(buddy) buddy = self.tube.get_buddy( self.tube.bus_name_to_handle[bus_names[1]]) self.buddies_panel.add_player(buddy) if self.get_active_player() == self.player_id: _logger.debug("It's my turn already!") self.change_turn() redraw(self.grid) else: _logger.debug("I've already been welcomed, doing nothing") def add_hello_handler(self): self.tube.add_signal_receiver(self.hello_cb, 'Hello', IFACE, path=PATH, sender_keyword='sender') @signal(dbus_interface=IFACE, signature='n') def Insert(self, column): """Signal that the local player has placed a disc.""" assert column >= 0 assert column < 7 def hello_cb(self, sender=None): """Tell the newcomer what's going on.""" _logger.debug('Newcomer %s has joined', sender) self.ordered_bus_names.append(sender) if len(self.ordered_bus_names) == 2: buddy = self.tube.get_buddy(self.tube.bus_name_to_handle[sender]) self.buddies_panel.add_player(buddy) _logger.debug('Bus names are now: %r', self.ordered_bus_names) _logger.debug('Welcoming newcomer and sending them the game state') self.tube.get_object(sender, PATH).Welcome(self.grid.grid, self.ordered_bus_names, dbus_interface=IFACE) if (self.player_id == 0 and len(self.ordered_bus_names) == 2): _logger.debug("This is my game and an opponent has joined. " "I go first") self.change_turn() def insert_cb(self, column, sender=None): # Someone placed a disc handle = self.tube.bus_name_to_handle[sender] _logger.debug('Insert(%d) from %s', column, sender) if self.tube.self_handle == handle: _logger.debug('Ignoring Insert signal from myself: %d', column) return try: winner = self.grid.insert(column, self.get_active_player()) except ValueError: return dump_grid(self.grid.grid) if winner is not None: _logger.debug('Player with handle %d wins', handle) self.info_panel.show(_('The other player wins!')) redraw(self.grid) return if self.grid.is_full(): _logger.debug('Game drawn') self.info_panel.show(_('Game ended in a draw')) redraw(self.grid) return self.change_turn() def change_turn(self): try: bus_name = self.ordered_bus_names[self.get_active_player()] buddy = self.tube.get_buddy( self.tube.bus_name_to_handle[bus_name]) self.buddies_panel.set_is_playing(buddy) except: _logger.error('argh!', exc_info=1) raise if self.get_active_player() == self.player_id: _logger.debug('It\'s my turn now') self.info_panel.show(_('Your turn')) self.grid.selected_column = 3 self.activity.grab_focus() else: _logger.debug('It\'s not my turn') self.grid.selected_column = None redraw(self.grid) def get_active_player(self): count = {} for row in self.grid.grid: for player in row: if player > -1: count[player] = count.get(player, 0) + 1 if count.get(0, 0) > count.get(1, 0): return 1 else: return 0 def key_press_event(self, widget, event): if self.grid.selected_column is None: _logger.debug('Ignoring keypress - not my turn') return _logger.debug('Keypress: keyval %s', event.keyval) if event.keyval in (gtk.keysyms.Left,): _logger.debug('<--') if self.grid.selected_column > 0: self.grid.selected_column -= 1 redraw(self.grid) elif event.keyval in (gtk.keysyms.Right,): _logger.debug('-->') if self.grid.selected_column < 6: self.grid.selected_column += 1 redraw(self.grid) elif event.keyval in (gtk.keysyms.Down, gtk.keysyms.space): _logger.debug('v') self.insert_requested_cb(self.grid, self.grid.selected_column) def insert_requested_cb(self, grid, col): winner = grid.insert(col, self.player_id) if winner == -1: return _logger.debug('Inserting at %d', col) dump_grid(grid.grid) redraw(grid) self.Insert(col) self.change_turn() if winner is not None: _logger.debug("I win") self.info_panel.show(_('You win!')) else: self.info_panel.show(_('Other player\'s turn')) if self.grid.is_full(): _logger.debug('Game drawn') self.info_panel.show(_('Game ended in a draw')) sugar-connect-activity-22/gridwidget.py0000644000000000000000000002337311415661237017120 0ustar rootroot# Copyright 2007 One Laptop Per Child # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import logging import cairo import gobject import gtk logger = logging.getLogger('connect-activity.gridwidget') class GridWidget(gtk.EventBox): "Gtk widget for discs in a grid.""" __gsignals__ = { 'insert-requested': (gobject.SIGNAL_RUN_FIRST, None, [int]), } def __init__(self): gtk.EventBox.__init__(self) self.output = gtk.DrawingArea() self.set_property('child', self.output) self.output.connect('expose-event', self.expose_cb) self.add_events(gtk.gdk.POINTER_MOTION_MASK) self.connect('button-release-event', self.__class__.button_release_cb) self.connect('motion-notify-event', self.__class__.motion_cb) self.columns = 7 self.rows = 6 self.grid = [[-1] * self.columns for i in xrange(self.rows)] self.colors = {0: (0.9, 0, 0, 1), 1: (0, 0, 0.9, 1)} self.selected_column = None self.selection_color = (0.1, 0.1, 0.7, 1) self.background_color = (0.7, 0.7, 0.7, 1) self.background_selection_color = (0.9, 0.9, 0.9, 1) self.highlighted_discs = [] self.highlighted_color = (1, 0, 0, 1) def check_coord (self, i, j): return i >= 0 and i < self.rows and j >= 0 and j < self.columns def insert(self, column, value): """Return: None : no winner 0, 1: player 0/1 wins the game """ discs = [row[column] for row in self.grid] if -1 not in discs: raise ValueError('Column is full') row = self.rows - list(reversed(discs)).index(-1) - 1 self.grid[row][column] = value return self.check_winner(row, column, value) def check_winner(self, row, column, player): # check column if row <= 2: discs = [self.grid[i][column] for i in range(row, row + 4)] if discs == [player] * 4: logger.debug("win column") self.highlighted_discs = [(i, column) for i in range(row, row + 4)] return player # check row discs = self.grid[row] count = 0 for i in range(self.columns): if discs[i] == player: count += 1 self.highlighted_discs.append((row, i)) if count == 4: break else: self.highlighted_discs = [] count = 0 if count == 4: logger.debug("win row") return player # check down left -> up right diagonal count = 1 self.highlighted_discs = [(row, column)] i, j = row - 1, column + 1 move_up = self.check_coord(i, j) while move_up: if self.grid[i][j] != player: break count += 1 self.highlighted_discs.append((i,j)) i, j = i - 1, j + 1 move_up = self.check_coord(i, j) i, j = row + 1, column - 1 move_down = self.check_coord(i, j) while move_down: if self.grid[i][j] != player: break count += 1 self.highlighted_discs.append((i,j)) i, j = i + 1, j - 1 move_down = self.check_coord(i, j) if count >= 4: logger.debug("win down left -> up right diag") return player # check down right -> up left diagonal count = 1 self.highlighted_discs = [(row, column)] i, j = row - 1, column - 1 move_up = self.check_coord(i, j) while move_up: if self.grid[i][j] != player: break count += 1 self.highlighted_discs.append((i,j)) i, j = i - 1, j - 1 move_up = self.check_coord(i, j) i, j = row + 1, column + 1 move_down = self.check_coord(i, j) while move_down: if self.grid[i][j] != player: break count += 1 self.highlighted_discs.append((i,j)) i, j = i + 1, j + 1 move_down = self.check_coord(i, j) if count >= 4: logger.debug("win down right -> up left diag") return player self.highlighted_discs = [] return None def is_full(self): """Check if the grid is full of pieces. Implies draw if no winner.""" return -1 not in [col for row in self.grid for col in row] def draw_background(self, rect, unit, ctx): ctx.set_source_rgba(*self.background_color) ctx.rectangle(0, 0, unit * self.columns, unit * self.rows) ctx.fill() if self.selected_column is not None: ctx.set_source_rgba(*self.background_selection_color) ctx.rectangle(self.selected_column * unit, 0, unit, self.rows * unit) ctx.fill() def draw_lines(self, rect, unit, ctx): ctx.set_line_width(unit / 128.0) ctx.set_source_rgba(0, 0, 0, 0.1) for i in xrange(self.rows + 1): ctx.move_to(0, i * unit) ctx.line_to(self.columns * unit, i * unit) for i in xrange(self.columns + 1): ctx.move_to(i * unit, 0) ctx.line_to(i * unit, self.rows * unit) ctx.stroke() if self.selected_column is not None: ctx.set_line_width(unit / 32.0) ctx.set_source_rgba(*self.selection_color) ctx.rectangle(self.selected_column * unit, 0, unit, self.rows * unit) ctx.stroke() def draw_disc(self, x, y, color, unit, ctx): ctx.set_source_rgba(*color) ctx.arc(x, y, 0.4 * unit, 0, -1e-10) ctx.fill_preserve() ctx.set_source_rgba(0, 0, 0, color[3]) ctx.stroke() def draw_discs(self, rect, unit, ctx): for j in xrange(self.rows): for i in xrange(self.columns): if self.grid[j][i] in self.colors: self.draw_disc((i + 0.5) * unit, (j + 0.5) * unit, self.colors[self.grid[j][i]], unit, ctx) if (i, j) in self.highlighted_discs: ctx.set_line_width(unit / 32.0) ctx.set_source_rgba(*self.highlighted_color) ctx.rectangle(j * unit, i * unit, unit, unit) ctx.stroke() if self.selected_column is not None: discs = [row[self.selected_column] for row in self.grid] if -1 not in discs: # column is full return row = self.rows - list(reversed(discs)).index(-1) - 1 self.draw_disc( (self.selected_column + 0.5) * unit, (row + 0.5) * unit, (0, 0, 0, 0.3), unit, ctx) def get_mouse_event_col(self, event): unit, x0, y0 = self.get_coordinates(self.get_rect()) col = (event.x - x0) / unit if col <= 0 or col >= self.columns: return None return int(col) def motion_cb(self, event): if self.selected_column is None: return col = self.get_mouse_event_col(event) if col is not None and col != self.selected_column: self.selected_column = col self.output.queue_draw() def button_release_cb(self, event): if self.selected_column is None: return self.motion_cb(event) col = self.get_mouse_event_col(event) self.emit('insert-requested', col) def queue_draw(self): self.output.queue_draw() def get_coordinates(self, rect): """Returns tuple (unit size, origin x, origin y) suitable for drawing a grid within @rect.""" if rect.height / float(self.rows) < rect.width / float(self.columns): # wide unit = rect.height / float(self.rows) x0 = rect.x + (rect.width - self.columns * unit) / 2.0 y0 = rect.y else: # narrow unit = rect.width / float(self.columns) x0 = rect.x y0 = rect.y + (rect.height - self.rows * unit) / 2.0 return unit, x0, y0 def draw(self, rect, ctx): """Draw a grid using the cairo context @ctx within the rectangle @rect.""" ctx.save() ctx.set_line_cap(cairo.LINE_CAP_ROUND) unit, x0, y0 = self.get_coordinates(rect) ctx.translate(x0, y0) self.draw_background(rect, unit, ctx) self.draw_discs(rect, unit, ctx) self.draw_lines(rect, unit, ctx) ctx.restore() def get_rect(self): """Return a subrectangle of the widget's allocation within which to draw the grid.""" rect = self.get_allocation() padding = 10 return gtk.gdk.Rectangle( padding, padding, rect.width - 2 * padding, rect.height - 2 * padding) def expose_cb(self, widget, event): ctx = widget.window.cairo_create() rect = self.get_rect() # XXX: this clips off some of the outer edge of the grid #ctx.rectangle(rect.x, rect.y, rect.width, rect.height) #ctx.clip() self.draw(rect, ctx) sugar-connect-activity-22/infopanel.py0000644000000000000000000000263511415661237016740 0ustar rootroot# Copyright 2007 One Laptop Per Child # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import hippo import pango from sugar.graphics import style class InfoPanel(hippo.CanvasBox): def __init__(self): hippo.CanvasBox.__init__(self, spacing=4, padding=5, orientation=hippo.ORIENTATION_VERTICAL) self.status_box = hippo.CanvasBox(spacing=4, padding=5, orientation=hippo.ORIENTATION_VERTICAL) self.append(self.status_box) def show(self, text): textwidget = hippo.CanvasText(text=text, font_desc=pango.FontDescription('Sans 16'), color=style.COLOR_WHITE.get_int(), xalign=hippo.ALIGNMENT_CENTER) self.status_box.remove_all() self.status_box.append(textwidget) sugar-connect-activity-22/po/0000755000000000000000000000000011415661237015023 5ustar rootrootsugar-connect-activity-22/po/Connect.pot0000644000000000000000000000202111415661237017133 0ustar rootroot# 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 , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/af.po0000644000000000000000000000217411415661237015755 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:79 msgid "To play, share or invite someone." msgstr "" #: activity.py:149 msgid "Waiting for another player to join." msgstr "" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:198 msgid "The other player wins!" msgstr "" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "" #: game.py:221 msgid "Your turn" msgstr "" #: game.py:278 msgid "You win!" msgstr "" #: game.py:280 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/am.po0000644000000000000000000000206611415661237015764 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/ar.po0000644000000000000000000000347311415661237015774 0ustar rootroot# translation of Connect.master.po to Arabic # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Khaled Hosny , 2007. msgid "" msgstr "" "Project-Id-Version: Connect.master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-08-01 13:24-0400\n" "Last-Translator: Khaled Hosny \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n>=3 && " "n<=10 ? 3 : n>=11 && n<=99 ? 4 : 5;\n" "X-Generator: Pootle 1.1.0rc2\n" "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" #: activity/activity.info:2 msgid "Connect" msgstr "وصّل" #: activity.py:79 msgid "To play, share or invite someone." msgstr "لتلعب، شارك أو ادعُ شخصا ما" #: activity.py:149 msgid "Waiting for another player to join." msgstr "بانتظار انضمام لاعب آخر." #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "انضممت للعبة. أنتظر دوري..." #: game.py:198 msgid "The other player wins!" msgstr "فاز اللاعب الآخر!" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "انتهت اللعبة بالتعادل" #: game.py:221 msgid "Your turn" msgstr "دورك" #: game.py:278 msgid "You win!" msgstr "فزت!" #: game.py:280 msgid "Other player's turn" msgstr "دور اللاعب الآخر" #~ msgid "Connect Activity" #~ msgstr "نشاط التوصيل" #~ msgid "Offline" #~ msgstr "بدون اتصال" #~ msgid "To play, share!" #~ msgstr "لتلعب، شارِك!" sugar-connect-activity-22/po/ay.po0000644000000000000000000000206611415661237016000 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/bg.po0000644000000000000000000000270411415661237015756 0ustar rootroot# Bulgarian translation of connect-activity. # Copyright (C) 2007 THE connect-activity'S COPYRIGHT HOLDER # This file is distributed under the same license as the connect-activity package. # Alexander Todorov , 2007. # , fuzzy # # msgid "" msgstr "" "Project-Id-Version: connect-activity VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2008-01-09 09:02+0000\n" "Last-Translator: Alexander Todorov \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Свързване" #: activity.py:63 msgid "To play, share or invite someone." msgstr "За игра или споделяне с някой." #: activity.py:133 msgid "Waiting for another player to join." msgstr "Изчакване включването на друг играч." #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "Включих се в играта. Изчаквам своя ред..." #: game.py:183 msgid "The other player wins!" msgstr "Другият играч победи!" #: game.py:200 msgid "Your turn" msgstr "Ваш ред" #: game.py:257 msgid "You win!" msgstr "Вие победихте!" #: game.py:259 msgid "Other player's turn" msgstr "Ред на другия играч" sugar-connect-activity-22/po/bn.po0000644000000000000000000000237111415661237015765 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: xo-bundled\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2007-12-23 17:09+0600\n" "Last-Translator: Khandakar Mujahidul Islam \n" "Language-Team: Bengali \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "সংযোগ" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "অন্য খেলোয়াড় জিতেছে!" #: game.py:200 msgid "Your turn" msgstr "আপনার পালা" #: game.py:257 msgid "You win!" msgstr "তুমি জিতেছ!" #: game.py:259 msgid "Other player's turn" msgstr "অন্য খেলোয়াড়ের পালা" sugar-connect-activity-22/po/bn_IN.po0000644000000000000000000000271111415661237016351 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: xo-bundled\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2008-02-04 00:17-0500\n" "Last-Translator: Sankarshan Mukhopadhyay \n" "Language-Team: Bengali \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "সংযোগ" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "অন্যের অপেক্ষা করা হচ্ছে" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "খেলায় যোগ করা হয়েছে। নিজের চালের অপেক্ষা করা হচ্ছে..." #: game.py:183 msgid "The other player wins!" msgstr "অন্য খেলোয়াড় জিতেছে!" #: game.py:200 msgid "Your turn" msgstr "আপনার চাল" #: game.py:257 msgid "You win!" msgstr "আপনি জিতেছেন!" #: game.py:259 msgid "Other player's turn" msgstr "অন্য খেলোয়াড়ের পালা" sugar-connect-activity-22/po/ca.po0000644000000000000000000000236211415661237015751 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2008-01-08 19:16+0000\n" "Last-Translator: Jaume \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Connecta" #: activity.py:63 msgid "To play, share or invite someone." msgstr "Per jugar, compartir o convidar algú" #: activity.py:133 msgid "Waiting for another player to join." msgstr "Esperant algú altri per jugar" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "Participant en un joc. Esperant el teu torn ..." #: game.py:183 msgid "The other player wins!" msgstr "L'atre/a jugador/a ha guanyat!" #: game.py:200 msgid "Your turn" msgstr "És el teu torn" #: game.py:257 msgid "You win!" msgstr "Has guanyat!" #: game.py:259 msgid "Other player's turn" msgstr "Li toca a l'altre/e jugador/a" sugar-connect-activity-22/po/de.po0000644000000000000000000000276611415661237015766 0ustar rootroot# This file is distributed under the same license as the PACKAGE package. # Fabian Affolter , 2007. msgid "" msgstr "" "Project-Id-Version: connect\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-06-07 17:39-0400\n" "Last-Translator: Markus Schlager \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" "X-Poedit-Language: German\n" #: activity/activity.info:2 msgid "Connect" msgstr "Verbinden" #: activity.py:79 msgid "To play, share or invite someone." msgstr "Zum spielen, zusammen spielen, oder jemand zum spielen einladen. " #: activity.py:149 msgid "Waiting for another player to join." msgstr "Warte auf Beitritt anderer Spieler." #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "Einem Spiel beigetreten. Warte auf meinen Zug..." #: game.py:198 msgid "The other player wins!" msgstr "Der andere Spieler gewinnt!" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "Spiel endete unentschieden" #: game.py:221 msgid "Your turn" msgstr "Dein Zug" #: game.py:278 msgid "You win!" msgstr "Du gewinnst!" #: game.py:280 msgid "Other player's turn" msgstr "Der andere Spieler ist am Zug" #~ msgid "Connect Activity" #~ msgstr "Verbindungs-Aktivität" #~ msgid "Offline" #~ msgstr "Offline" #~ msgid "To play, share!" #~ msgstr "Zum Spielen, teile!" sugar-connect-activity-22/po/dz.po0000644000000000000000000000206611415661237016004 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/el.po0000644000000000000000000000370411415661237015767 0ustar rootroot# Greek translation of Connect activity. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Simos Xenitellis , 2007. msgid "" msgstr "" "Project-Id-Version: Connect activity\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-06-04 06:34-0400\n" "Last-Translator: Γιάννης Κασκαμανίδης \n" "Language-Team: Greek \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 1.1.0rc2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Συνδεθείτε" #: activity.py:79 msgid "To play, share or invite someone." msgstr "Για να παίξεις, όρισε κοινή χρήση ή προσκάλεσε κάποιον άλλο παίκτη." #: activity.py:149 msgid "Waiting for another player to join." msgstr "Σε αναμονή για τη σύνδεση του άλλου παίκτη." #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "Συνδεθήκαμε σε παιχνίδι. Αναμένω τη σειρά μου..." #: game.py:198 msgid "The other player wins!" msgstr "Η άλλη πλευρά κερδίζει!" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "Το παιχνίδι τελείωσε ισόπαλο" #: game.py:221 msgid "Your turn" msgstr "Η σειρά σου" #: game.py:278 msgid "You win!" msgstr "Κέρδισες!" #: game.py:280 msgid "Other player's turn" msgstr "Η σειρά της άλλης πλευράς" #~ msgid "Connect Activity" #~ msgstr "Δραστηριότητα Συνδεθείτε" #~ msgid "Offline" #~ msgstr "Εκτός σύνδεσης" #~ msgid "To play, share!" #~ msgstr "Για να παίξετε, να μοιραστείτε!" sugar-connect-activity-22/po/en.po0000644000000000000000000000206611415661237015771 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/es.po0000644000000000000000000000270311415661237015774 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: Actividad Conectar\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2007-11-26 04:49+0000\n" "Last-Translator: Xavier Alvarez \n" "Language-Team: Fedora Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" "X-Poedit-Language: Spanish\n" #: activity/activity.info:2 msgid "Connect" msgstr "Conectar" #: activity.py:63 msgid "To play, share or invite someone." msgstr "Para jugar, comparte o invita a alguien." #: activity.py:133 msgid "Waiting for another player to join." msgstr "Esperando que otro jugador se conecte." #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "Jugando. Esperando mi turno..." #: game.py:183 msgid "The other player wins!" msgstr "El otro jugador ganó!" #: game.py:200 msgid "Your turn" msgstr "Tu turno" #: game.py:257 msgid "You win!" msgstr "Ganaste!" #: game.py:259 msgid "Other player's turn" msgstr "Turno del otro jugador" #~ msgid "Connect Activity" #~ msgstr "Actividad Conectar" #~ msgid "Offline" #~ msgstr "Fuera de línea" #~ msgid "To play, share!" #~ msgstr "Para jugar, comparte!" sugar-connect-activity-22/po/fa.po0000644000000000000000000000252311415661237015753 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2008-01-09 10:22+0000\n" "Last-Translator: Sohaib Obaidi \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "پیوستن" #: activity.py:63 msgid "To play, share or invite someone." msgstr "برای بازی ، شرکت یا دعوت کسی" #: activity.py:133 msgid "Waiting for another player to join." msgstr "برای پیوستن بازیکن دیگر منتظر هست" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "با یک بازی پیوست. برای نوبت خود منتظر هستم" #: game.py:183 msgid "The other player wins!" msgstr "بازیکن دیگر برد!" #: game.py:200 msgid "Your turn" msgstr "نوبت شما" #: game.py:257 msgid "You win!" msgstr "شما بردید!" #: game.py:259 msgid "Other player's turn" msgstr "نوبت بازیکن دیگر" sugar-connect-activity-22/po/fa_AF.po0000644000000000000000000000252611415661237016324 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2008-01-28 03:58-0500\n" "Last-Translator: Sohaib Obaidi \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "پیوستن" #: activity.py:63 msgid "To play, share or invite someone." msgstr "برای بازی ، شرکت یا دعوت کسی." #: activity.py:133 msgid "Waiting for another player to join." msgstr "برای پیوستن بازیکن دیگر منتظر هست." #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "با یک بازی پیوست. برای نوبت خود منتظر هست..." #: game.py:183 msgid "The other player wins!" msgstr "بازیکن دیگر برد!" #: game.py:200 msgid "Your turn" msgstr "نوبت شما" #: game.py:257 msgid "You win!" msgstr "شما بردید!" #: game.py:259 msgid "Other player's turn" msgstr "نوبت بازیکن دیگر" sugar-connect-activity-22/po/ff.po0000644000000000000000000000206611415661237015762 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/fr.po0000644000000000000000000000257611415661237016004 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2007-12-01 22:28+0000\n" "Last-Translator: samy boutayeb \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Connect" #: activity.py:63 msgid "To play, share or invite someone." msgstr "Pour jouer, partage l'activité ou invite quelqu'un" #: activity.py:133 msgid "Waiting for another player to join." msgstr "Attends qu'un autre joueur rejoigne le jeu." # Pas sur de la 1ere personne #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "Tu viens d'entrer dans une partie. Attends ton tour." #: game.py:183 msgid "The other player wins!" msgstr "Ton adversaire a gagné!" # toi/vous #: game.py:200 msgid "Your turn" msgstr "A ton tour" # Tu as/vous avez ? #: game.py:257 msgid "You win!" msgstr "Tu as gagné !" #: game.py:259 msgid "Other player's turn" msgstr "C'est le tour de ton adversaire" sugar-connect-activity-22/po/gu.po0000644000000000000000000000206611415661237016002 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/ha.po0000644000000000000000000000206611415661237015757 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/hi.po0000644000000000000000000000256711415661237015775 0ustar rootroot# translation of connect-activity.po to Hindi # G Karunakar , 2007. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. msgid "" msgstr "" "Project-Id-Version: connect-activity\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2007-11-21 22:37+0530\n" "Last-Translator: G Karunakar \n" "Language-Team: Hindi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "जुड़ें" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "खेल शुरु, मेरी बारी का इंतज़ार" #: game.py:183 msgid "The other player wins!" msgstr "दूसरा खिलाडी जीता" #: game.py:200 msgid "Your turn" msgstr "आपकी बारी" #: game.py:257 msgid "You win!" msgstr "आप जीते !" #: game.py:259 msgid "Other player's turn" msgstr "अगले की बारी" sugar-connect-activity-22/po/ht.po0000644000000000000000000000206611415661237016002 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/ig.po0000644000000000000000000000206611415661237015766 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/is.po0000644000000000000000000000243411415661237016001 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "Tengingar" #: activity.py:63 msgid "To play, share or invite someone." msgstr "Bjóddu einhverjum að vera með til þess að geta spilað" #: activity.py:133 msgid "Waiting for another player to join." msgstr "Bíð eftir öðrum leikmanni að tengjast." #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "Tengist leiknum. Bíð eftir minni umferð..." #: game.py:183 msgid "The other player wins!" msgstr "Hinn leikmaðurinn vann!" #: game.py:200 msgid "Your turn" msgstr "Þín umferð" #: game.py:257 msgid "You win!" msgstr "Þú vinnur!" #: game.py:259 msgid "Other player's turn" msgstr "Umferð hins leikmannsins" sugar-connect-activity-22/po/it.po0000644000000000000000000000256211415661237016004 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-05-27 05:24-0400\n" "Last-Translator: Carlo Falciola \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Connetti" #: activity.py:79 msgid "To play, share or invite someone." msgstr "Per giocare con, condividere con o invitare qualcuno." #: activity.py:149 msgid "Waiting for another player to join." msgstr "In attesa del collegamento di un altro giocatore." #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "Connesso ad una partita. In attesa del mio turno..." #: game.py:198 msgid "The other player wins!" msgstr "L'altro giocatore vince!" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "Partita finita in parità" #: game.py:221 msgid "Your turn" msgstr "Tocca a te" #: game.py:278 msgid "You win!" msgstr "Hai vinto!" #: game.py:280 msgid "Other player's turn" msgstr "Turno dell'altro giocatore" sugar-connect-activity-22/po/ja.po0000644000000000000000000000261011415661237015754 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2008-01-04 18:17+0000\n" "Last-Translator: Taizo Shiozaki \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 #, fuzzy msgid "Connect" msgstr "四目並べ" #: activity.py:63 #, fuzzy msgid "To play, share or invite someone." msgstr "誰かおともだちを招待してください。" #: activity.py:133 #, fuzzy msgid "Waiting for another player to join." msgstr "おともだちの参加を待っています。" #: activity.py:164 #, fuzzy msgid "Joined a game. Waiting for my turn..." msgstr "ゲームに参加しました。自分の番を待っています..." #: game.py:183 #, fuzzy msgid "The other player wins!" msgstr "相手が勝利しました!" #: game.py:200 #, fuzzy msgid "Your turn" msgstr "あなたの番です" #: game.py:257 #, fuzzy msgid "You win!" msgstr "あなたの勝ちです!" #: game.py:259 #, fuzzy msgid "Other player's turn" msgstr "相手の番です" sugar-connect-activity-22/po/km.po0000644000000000000000000000206611415661237015776 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/ko.po0000644000000000000000000000206611415661237016000 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/mk.po0000644000000000000000000000270211415661237015773 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2007-12-17 17:24+0000\n" "Last-Translator: novica \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 || n%10==1 ? 0 : 1;\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Поврзи се" #: activity.py:63 msgid "To play, share or invite someone." msgstr "Да играш, споделуваш или поканиш некого" #: activity.py:133 msgid "Waiting for another player to join." msgstr "Чекаме се приклучи друг играч" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "Се приклучи во играта. Чекај да дојдеш на ред..." #: game.py:183 msgid "The other player wins!" msgstr "Другиот играч победи!" #: game.py:200 msgid "Your turn" msgstr "Ти си на потег" #: game.py:257 msgid "You win!" msgstr "Ти победи!" #: game.py:259 msgid "Other player's turn" msgstr "Другиот играч е на потег" sugar-connect-activity-22/po/ml.po0000644000000000000000000000206611415661237015777 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/mn.po0000644000000000000000000000302511415661237015775 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-07-08 00:23-0400\n" "Last-Translator: Odontsetseg Bat-Erdene \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Холбогдох" #: activity.py:79 msgid "To play, share or invite someone." msgstr "Тоглохын тулд хэн нэгэнтэй хуваалцах эсвэл урих." #: activity.py:149 msgid "Waiting for another player to join." msgstr "Өөр тоглогчын нэгдхийг хүлээж байна." #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "Тоглоомд нэгдлээ. Өөрийн ээлжийг хүлээж байна..." #: game.py:198 msgid "The other player wins!" msgstr "Өөр тоглогч хожлоо!" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "Тоглоом ялагчгүй" #: game.py:221 msgid "Your turn" msgstr "Таны ээлж" #: game.py:278 msgid "You win!" msgstr "Та хожлоо!" #: game.py:280 msgid "Other player's turn" msgstr "Өрсөлдөн тоглогчын ээлж" sugar-connect-activity-22/po/mr.po0000644000000000000000000000322711415661237016005 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-06-21 01:10-0400\n" "Last-Translator: Rupali Sarode \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #: activity/activity.info:2 msgid "Connect" msgstr "जोडा" #: activity.py:79 msgid "To play, share or invite someone." msgstr "खेळ सुरू करण्या साठी दुसराल्या आमंत्रण द्या" #: activity.py:149 msgid "Waiting for another player to join." msgstr "दुसरा खेळाडू खेळ सुरू करे पर्यंत थांबा" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "खेळ जूडला, तू सुरू करण्यासाठी वाट पाहत आहे" #: game.py:198 msgid "The other player wins!" msgstr "दुसरा खेळाडू जिंकला" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "खेळ विन परिणाम संपला" #: game.py:221 msgid "Your turn" msgstr "तू खेळ" #: game.py:278 msgid "You win!" msgstr "तू जिंकला!" #: game.py:280 msgid "Other player's turn" msgstr "दुसर्‍या खेळाडूची वेळ" sugar-connect-activity-22/po/mvo.po0000644000000000000000000000217411415661237016170 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:79 msgid "To play, share or invite someone." msgstr "" #: activity.py:149 msgid "Waiting for another player to join." msgstr "" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:198 msgid "The other player wins!" msgstr "" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "" #: game.py:221 msgid "Your turn" msgstr "" #: game.py:278 msgid "You win!" msgstr "" #: game.py:280 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/nb.po0000644000000000000000000000217411415661237015766 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:79 msgid "To play, share or invite someone." msgstr "" #: activity.py:149 msgid "Waiting for another player to join." msgstr "" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:198 msgid "The other player wins!" msgstr "" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "" #: game.py:221 msgid "Your turn" msgstr "" #: game.py:278 msgid "You win!" msgstr "" #: game.py:280 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/ne.po0000644000000000000000000000274611415661237015776 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-07-31 00:57-0400\n" "Last-Translator: Bibek Kafle \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #: activity/activity.info:2 msgid "Connect" msgstr "जोड" #: activity.py:79 msgid "To play, share or invite someone." msgstr "खेल्नको लागि, साथीलाइ निम्तो देउ" #: activity.py:149 msgid "Waiting for another player to join." msgstr "साथीलाइ पर्खदै" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "आफ्नो पालो कुर्दै।।।" #: game.py:198 msgid "The other player wins!" msgstr "साथीले जित्यो" #: game.py:204 game.py:284 #, fuzzy msgid "Game ended in a draw" msgstr "गेम ड्रमा सकियो" #: game.py:221 msgid "Your turn" msgstr "तिम्रो पालो" #: game.py:278 msgid "You win!" msgstr "तिमीले जितेऊ" #: game.py:280 msgid "Other player's turn" msgstr "साथीको पालो" sugar-connect-activity-22/po/nl.po0000644000000000000000000000257211415661237016002 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-06-26 15:54-0400\n" "Last-Translator: Myckel Habets \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Verbinden" #: activity.py:79 msgid "To play, share or invite someone." msgstr "Om iemand uit te nodigen, mee te spelen of iets te delen." #: activity.py:149 msgid "Waiting for another player to join." msgstr "Wachten op een andere speler om mee te doen." #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "Meedoen met een spel gelukt. Wachten op mijn beurt..." #: game.py:198 msgid "The other player wins!" msgstr "De andere speler wint!" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "Spel eindigde in gelijkspel" #: game.py:221 msgid "Your turn" msgstr "Jouw beurt" #: game.py:278 msgid "You win!" msgstr "Jij wint!" #: game.py:280 msgid "Other player's turn" msgstr "Andere speler is aan de beurt" sugar-connect-activity-22/po/pa.po0000644000000000000000000000206611415661237015767 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/pap.po0000644000000000000000000000251711415661237016150 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-06-19 08:28-0400\n" "Last-Translator: Urso Wieske \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Konekta" #: activity.py:79 msgid "To play, share or invite someone." msgstr "Pa hunga, comparti o invita un hende." #: activity.py:149 msgid "Waiting for another player to join." msgstr "Wardando riba un otro hungador pa konekta." #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "A drenta den un wega. Wardando riba mi turno..." #: game.py:198 msgid "The other player wins!" msgstr "E otro hungador a gana!" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "E wega a kaba den un empate" #: game.py:221 msgid "Your turn" msgstr "Bo turno" #: game.py:278 msgid "You win!" msgstr "Bo a gana!" #: game.py:280 msgid "Other player's turn" msgstr "E otro hungador su turno" sugar-connect-activity-22/po/pis.po0000644000000000000000000000217411415661237016162 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:79 msgid "To play, share or invite someone." msgstr "" #: activity.py:149 msgid "Waiting for another player to join." msgstr "" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:198 msgid "The other player wins!" msgstr "" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "" #: game.py:221 msgid "Your turn" msgstr "" #: game.py:278 msgid "You win!" msgstr "" #: game.py:280 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/pl.po0000644000000000000000000000206611415661237016002 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/ps.po0000644000000000000000000000254611415661237016014 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2008-01-07 08:49+0000\n" "Last-Translator: usman mansoor ansari \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "پیوستېدل" #: activity.py:63 msgid "To play, share or invite someone." msgstr "يو چاسره لوپه شريكه كړئ، يا بلنه وركړئ" #: activity.py:133 msgid "Waiting for another player to join." msgstr "د بل لوبغاړي يوځايېنه وڅارئ." #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "په لوبه كې يوځاينه غوره كړئ، زما وار وڅارئ..." #: game.py:183 msgid "The other player wins!" msgstr "بل لوبغاړي وګټله!" #: game.py:200 msgid "Your turn" msgstr "ستا وار" #: game.py:257 msgid "You win!" msgstr "تاسۍ وګټله!" #: game.py:259 msgid "Other player's turn" msgstr "د بل لوبغاړي وار" sugar-connect-activity-22/po/pseudo.po0000644000000000000000000000360311415661237016664 0ustar rootroot# 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 , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: activity/activity.info:2 msgid "Connect" msgstr "[զք ЩЌठ ऊ ۦШи]حօղոչҁե" #: activity.py:63 msgid "To play, share or invite someone." msgstr "[Հ ե ҪҳԃӞ ٮﺫЖ ғյ ђ ԲҁҤԸѴҳ ԹԸکи ﻛЎ Іس Ќ ӊ фا Эﯕ६Фﯽ Ը ъѕԼآƵўъО ]Ҭю uӀەч, یӊձҕє օբ їոմїٲе یօмєюиэ." #: activity.py:133 msgid "Waiting for another player to join." msgstr "[Ёք ﻨںՕՄШﻨ Ո Ҷ ںҫ Ҙքӊօ фւ ե Ъ Аﻨڃ کҧ ی ձ ﻛ ա ڧەՈی Ҷ Ҿ Шङ ङ Դم бвЁЯ ]Шەւٲﻨդց քօҕ ەոюҭհչҕ ماەчєѓ ҭю ڑюїո." #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "[ҟ४ЦҁհђҺ Ќس ՀТ Ђ ЖӀйҢյеа КЪҳ طՍڑшՕ գЄ дФ ВƵ չ эҏ ی Тل լЊҲԃЎﻻӀՑە ]Јюїդչժ ձ ԍдмչ. سдїҭւиڧ ғюҕ мվ тսҕҧ..." #: game.py:183 msgid "The other player wins!" msgstr "[ҕﻨՀ Ҷٲ ﺫ ѕ ҤФٲԼآ سآя ڃЊ ワք ОИ प Ђڿ ییҬб Ф]Ҭђє օтӊэբ uاձўэբ шآռѕ!" #: game.py:200 msgid "Your turn" msgstr "[ĐӞ ४ չцڑ ҎаШЭ ФӞ]Ўօսբ ҭٮѓո" #: game.py:257 msgid "You win!" msgstr "[ڑЊ ﯕН м яОŻﺳҲ]Ұօٮ щїո!" #: game.py:259 msgid "Other player's turn" msgstr "[Ըا Ӟ գцキ Г ҳҳ żШќ ճچ ४ѓєҟԳ Їキƶ ل Ѵ ]Оէհєѓ ماەўєҕ'ѕ ٲٮяҧ" sugar-connect-activity-22/po/pt.po0000644000000000000000000000237611415661237016016 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2007-11-30 00:16+0000\n" "Last-Translator: Ricardo Giesta \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Conectar" #: activity.py:63 msgid "To play, share or invite someone." msgstr "Para jogar, compartilhar ou convidar alguém." #: activity.py:133 msgid "Waiting for another player to join." msgstr "À espera de um outro jogador para participar." #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "Juntou-se a um jogo. A esperar minha vez..." #: game.py:183 msgid "The other player wins!" msgstr "O outro jogador vence!" #: game.py:200 msgid "Your turn" msgstr "Sua vez" #: game.py:257 msgid "You win!" msgstr "Você ganha!" #: game.py:259 msgid "Other player's turn" msgstr "Vez do outro jogador" sugar-connect-activity-22/po/pt_BR.po0000644000000000000000000000237211415661237016375 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2008-01-20 10:03+0000\n" "Last-Translator: Eduardo H. Silva \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Conectar" #: activity.py:63 msgid "To play, share or invite someone." msgstr "Para jogar, compartilhe ou convide alguém." #: activity.py:133 msgid "Waiting for another player to join." msgstr "Esperando que um outro jogador se junte." #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "Juntou-se no jogo. Esperando o meu turno..." #: game.py:183 msgid "The other player wins!" msgstr "O outro jogador venceu!" #: game.py:200 msgid "Your turn" msgstr "Seu turno" #: game.py:257 msgid "You win!" msgstr "Você venceu!" #: game.py:259 msgid "Other player's turn" msgstr "Turno do outro jogador" sugar-connect-activity-22/po/qu.po0000644000000000000000000000206611415661237016014 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/ro.po0000644000000000000000000000237611415661237016013 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2007-11-23 00:15+0000\n" "Last-Translator: Adi Roiban \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Conectare" #: activity.py:63 msgid "To play, share or invite someone." msgstr "Pentru a reda, a partaja sau a invita pe cineva." #: activity.py:133 msgid "Waiting for another player to join." msgstr "Aștept să se alăture un jucător." #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "M-am alăturat unui joc. Aștept tura mea..." #: game.py:183 msgid "The other player wins!" msgstr "Jucătorul advers a câștigat!" #: game.py:200 msgid "Your turn" msgstr "Tura ta" #: game.py:257 msgid "You win!" msgstr "Ai câștigat!" #: game.py:259 msgid "Other player's turn" msgstr "Tura jucătorului advers" sugar-connect-activity-22/po/ru.po0000644000000000000000000000263411415661237016016 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2007-11-27 08:53+0000\n" "Last-Translator: Andrei Popov \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Устновить соединение" #: activity.py:63 msgid "To play, share or invite someone." msgstr "Пригласи или позови кого-нибудь, чтобы начать игру" #: activity.py:133 msgid "Waiting for another player to join." msgstr "Подожди, пока другой игрок подсоединятся" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "Я в игре. Жду своей очереди..." #: game.py:183 msgid "The other player wins!" msgstr "Твой соперник выиграл!" #: game.py:200 msgid "Your turn" msgstr "Твой ход" #: game.py:257 msgid "You win!" msgstr "Ты победил!" #: game.py:259 msgid "Other player's turn" msgstr "Ход твоего соперника" sugar-connect-activity-22/po/rw.po0000644000000000000000000000247611415661237016024 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-07-16 01:03+0200\n" "Last-Translator: \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "Guhuza" #: activity.py:79 msgid "To play, share or invite someone." msgstr "Gukina,gusangira cyangwa gutumira umuntu runaka." #: activity.py:149 msgid "Waiting for another player to join." msgstr "Gutegereza undi mukinyi kwiyungaho" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "Yiyunze kumukino.Ntegereje iyange nshuro..." #: game.py:198 msgid "The other player wins!" msgstr "Wamukinyi aratsinda!" #: game.py:204 #: game.py:284 msgid "Game ended in a draw" msgstr "Umukino washojwe impande zombi zinganya" #: game.py:221 msgid "Your turn" msgstr "Iyawe nshuro" #: game.py:278 msgid "You win!" msgstr "Uratsinda!" #: game.py:280 msgid "Other player's turn" msgstr "Inshuro y'undi" sugar-connect-activity-22/po/sd.po0000644000000000000000000000217411415661237015775 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:79 msgid "To play, share or invite someone." msgstr "" #: activity.py:149 msgid "Waiting for another player to join." msgstr "" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:198 msgid "The other player wins!" msgstr "" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "" #: game.py:221 msgid "Your turn" msgstr "" #: game.py:278 msgid "You win!" msgstr "" #: game.py:280 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/si.po0000644000000000000000000000206611415661237016002 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/sl.po0000644000000000000000000000251511415661237016004 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-07-11 01:54-0400\n" "Last-Translator: Denis Oštir \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.1.0rc2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Poveži se" #: activity.py:79 msgid "To play, share or invite someone." msgstr "Za igranje morate povabiti prijatelja." #: activity.py:149 msgid "Waiting for another player to join." msgstr "Čakam prijavo drugega igralca." #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "Pridružen igri. Čakam, da sem na vrsti ..." #: game.py:198 msgid "The other player wins!" msgstr "Drugi igralec je zmagal!" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "Igra se je končala z remijem" #: game.py:221 msgid "Your turn" msgstr "Tvoja poteza" #: game.py:278 msgid "You win!" msgstr "Zmagal si!" #: game.py:280 msgid "Other player's turn" msgstr "Nasprotnikova poteza" sugar-connect-activity-22/po/te.po0000644000000000000000000000321711415661237015776 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-07-05 06:59+0100\n" "Last-Translator: Satyanarayana Murthy Saladi \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "కలుపు" #: activity.py:79 msgid "To play, share or invite someone." msgstr "ఆడడానికి, ఎవరినైనా పిలువు లేక పంచుకో" #: activity.py:149 msgid "Waiting for another player to join." msgstr "ఇంకో ఆటగాడికై ఎదురు చూస్తున్నా" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "ఆటలో కలిసా. నా వంతుకై ఎదురు చూస్తున్నా" #: game.py:198 msgid "The other player wins!" msgstr "అవతలి ఆటగాడు గెలిసాడు!" #: game.py:204 #: game.py:284 msgid "Game ended in a draw" msgstr "ఆట డ్రా గా ముగిసింది" #: game.py:221 msgid "Your turn" msgstr "మీ వంతు" #: game.py:278 msgid "You win!" msgstr "మీరు గెలిచారు!" #: game.py:280 msgid "Other player's turn" msgstr "అవతలి ఆటగాడి వంతు" sugar-connect-activity-22/po/th.po0000644000000000000000000000270711415661237016004 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2007-12-10 05:55+0000\n" "Last-Translator: Manatsawin \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "เชื่อมต่อ" #: activity.py:63 msgid "To play, share or invite someone." msgstr "เล่น, แบ่งปันหรือชักชวนผู้อื่น" #: activity.py:133 msgid "Waiting for another player to join." msgstr "กำลังรอผู้เล่นคนอื่นเข้าร่วม" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "เข้าร่วมเกมแล้ว กำลังรอตาของเรา..." #: game.py:183 msgid "The other player wins!" msgstr "ผู้เล่นอีกคนชนะ!" #: game.py:200 msgid "Your turn" msgstr "ตาคุณ" #: game.py:257 msgid "You win!" msgstr "คุณชนะ!" #: game.py:259 msgid "Other player's turn" msgstr "ตาผู้เล่นอีกคน" sugar-connect-activity-22/po/tpi.po0000644000000000000000000000217411415661237016163 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.1.1rc4\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:79 msgid "To play, share or invite someone." msgstr "" #: activity.py:149 msgid "Waiting for another player to join." msgstr "" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:198 msgid "The other player wins!" msgstr "" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "" #: game.py:221 msgid "Your turn" msgstr "" #: game.py:278 msgid "You win!" msgstr "" #: game.py:280 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/tr.po0000644000000000000000000000206211415661237016010 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: 2008-02-18 23:05-0500\n" "Last-Translator: Serkan Cabi \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "Bağlan" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/ur.po0000644000000000000000000000275011415661237016015 0ustar rootroot# 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 , YEAR. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-04-08 00:30-0400\n" "PO-Revision-Date: 2008-03-11 06:35-0400\n" "Last-Translator: Huda Sarfraz \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "جڑیں" #: activity.py:79 msgid "To play, share or invite someone." msgstr "کھیلنے، بانٹنے، یا کسی کو دعوت دینے کے لیے۔" #: activity.py:149 msgid "Waiting for another player to join." msgstr "ایک اور کھلاڈی کے شامل ہونے کا انتظار ہو رہا ہے۔" #: activity.py:181 msgid "Joined a game. Waiting for my turn..." msgstr "کھيل ميں شامل۔ اپنی باری کا انتظار کر رہی/رہا ہوں..." #: game.py:198 msgid "The other player wins!" msgstr "دوسرا کھلاڈی جيت گيا!" #: game.py:204 game.py:284 msgid "Game ended in a draw" msgstr "" #: game.py:221 msgid "Your turn" msgstr "آپ کی باری" #: game.py:278 msgid "You win!" msgstr "آپ جیت گئے!" #: game.py:280 msgid "Other player's turn" msgstr "دوسرے کھلاڈی کی باری" sugar-connect-activity-22/po/vi.po0000644000000000000000000000206611415661237016005 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/yo.po0000644000000000000000000000206611415661237016016 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/zh_CN.po0000644000000000000000000000206611415661237016370 0ustar rootroot# 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 , YEAR. #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-10-31 13:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Translate Toolkit 1.0.1\n" #: activity/activity.info:2 msgid "Connect" msgstr "" #: activity.py:63 msgid "To play, share or invite someone." msgstr "" #: activity.py:133 msgid "Waiting for another player to join." msgstr "" #: activity.py:164 msgid "Joined a game. Waiting for my turn..." msgstr "" #: game.py:183 msgid "The other player wins!" msgstr "" #: game.py:200 msgid "Your turn" msgstr "" #: game.py:257 msgid "You win!" msgstr "" #: game.py:259 msgid "Other player's turn" msgstr "" sugar-connect-activity-22/po/zh_TW.po0000644000000000000000000000177511415661237016430 0ustar rootrootmsgid "" msgstr "" "Project-Id-Version: OLPC Connect\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: \n" "PO-Revision-Date: 2008-02-18 01:58-0500\n" "Last-Translator: Yuan Chao \n" "Language-Team: Yuan CHAO \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 1.0.2\n" #: activity/activity.info:2 msgid "Connect" msgstr "連線" #: activity.py:65 msgid "To play, share or invite someone." msgstr "分享或邀請朋友來進行遊戲" #: activity.py:144 msgid "Waiting for another player to join." msgstr "等待其他人加入遊戲" #: activity.py:211 msgid "Joined a game. Waiting for my turn..." msgstr "已進入遊戲。等待回合開始..." #: game.py:183 msgid "The other player wins!" msgstr "對方贏了!" #: game.py:200 msgid "Your turn" msgstr "你的回合" #: game.py:257 msgid "You win!" msgstr "你贏了!" #: game.py:259 msgid "Other player's turn" msgstr "對方的回合" sugar-connect-activity-22/setup.py0000755000000000000000000000150411415661237016122 0ustar rootroot#!/usr/bin/env python # Copyright (C) 2006, Red Hat, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from sugar.activity import bundlebuilder bundlebuilder.start('Connect') sugar-connect-activity-22/widgettest.py0000644000000000000000000000370311415661237017145 0ustar rootroot# Copyright 2007 One Laptop Per Child # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import gtk import gridwidget def redraw(grid): """Utility function to force a redraw of a Gtk widget.""" grid.window.invalidate_rect(grid.get_allocation(), False) def key_press_cb(window, event, grid, player): if grid.selected_column is None: return if gtk.gdk.keyval_name(event.keyval) in ('Left',): if grid.selected_column > 0: grid.selected_column -= 1 redraw(grid) elif gtk.gdk.keyval_name(event.keyval) in ('Right',): if grid.selected_column < 6: grid.selected_column += 1 redraw(grid) elif gtk.gdk.keyval_name(event.keyval) in ('Down', 'space'): if grid.insert(grid.selected_column, player[0]) != -1: player[:] = [{1 : 2, 2: 1}[player[0]]] redraw(grid) elif gtk.gdk.keyval_name(event.keyval) in ('Escape', 'q'): gtk.main_quit() def main(): grid = gridwidget.GridWidget() grid.selected_column = 3 window = gtk.Window() window.connect('destroy', gtk.main_quit) window.connect('key-press-event', key_press_cb, grid, [1]) window.add(grid) window.show_all() try: gtk.main() except KeyboardInterrupt: pass if __name__ == '__main__': main()