├── images ├── dice.png └── irkick.png ├── lang ├── JumpingCube_cs.qm ├── JumpingCube_da.qm ├── JumpingCube_de.qm ├── JumpingCube_el.qm ├── JumpingCube_en.qm ├── JumpingCube_es.qm ├── JumpingCube_fi.qm ├── JumpingCube_fr.qm ├── JumpingCube_hu.qm ├── JumpingCube_it.qm ├── JumpingCube_ko.qm ├── JumpingCube_nl.qm ├── JumpingCube_pl.qm ├── JumpingCube_ru.qm ├── JumpingCube_sv.qm ├── JumpingCube_tr.qm ├── JumpingCube_ja_JP.qm ├── JumpingCube_zh_CN.qm ├── JumpingCube_lang.qrc ├── JumpingCube_da.ts ├── JumpingCube_ja_JP.ts ├── JumpingCube_zh_CN.ts ├── JumpingCube_ru.ts ├── JumpingCube_ko.ts ├── JumpingCube_pl.ts ├── JumpingCube_sv.ts ├── JumpingCube_cs.ts ├── JumpingCube_nl.ts ├── JumpingCube_fi.ts ├── JumpingCube_fr.ts ├── JumpingCube_de.ts └── JumpingCube_tr.ts ├── JumpingCube_images.qrc ├── slavecptest.sh ├── cptest.sh ├── testit.sh ├── msgQue.h ├── msgQue.cpp ├── jumpingcubewindow.ui ├── gui ├── paintwidget.h └── paintwidget.cpp ├── jumpingcubewindow.h ├── topjcdialog.h ├── p3ExampleRS.h ├── JumpingCubePlugin.h ├── README.md ├── JumpingCube.pro ├── RSExampleItems.h ├── RSExampleItems.cpp ├── JumpingCubePlugin.cpp ├── p3ExampleRS.cpp ├── topjcdialog.ui ├── jumpingcubewindow.cpp └── topjcdialog.cpp /images/dice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/images/dice.png -------------------------------------------------------------------------------- /images/irkick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/images/irkick.png -------------------------------------------------------------------------------- /lang/JumpingCube_cs.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_cs.qm -------------------------------------------------------------------------------- /lang/JumpingCube_da.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_da.qm -------------------------------------------------------------------------------- /lang/JumpingCube_de.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_de.qm -------------------------------------------------------------------------------- /lang/JumpingCube_el.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_el.qm -------------------------------------------------------------------------------- /lang/JumpingCube_en.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_en.qm -------------------------------------------------------------------------------- /lang/JumpingCube_es.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_es.qm -------------------------------------------------------------------------------- /lang/JumpingCube_fi.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_fi.qm -------------------------------------------------------------------------------- /lang/JumpingCube_fr.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_fr.qm -------------------------------------------------------------------------------- /lang/JumpingCube_hu.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_hu.qm -------------------------------------------------------------------------------- /lang/JumpingCube_it.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_it.qm -------------------------------------------------------------------------------- /lang/JumpingCube_ko.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_ko.qm -------------------------------------------------------------------------------- /lang/JumpingCube_nl.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_nl.qm -------------------------------------------------------------------------------- /lang/JumpingCube_pl.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_pl.qm -------------------------------------------------------------------------------- /lang/JumpingCube_ru.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_ru.qm -------------------------------------------------------------------------------- /lang/JumpingCube_sv.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_sv.qm -------------------------------------------------------------------------------- /lang/JumpingCube_tr.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_tr.qm -------------------------------------------------------------------------------- /lang/JumpingCube_ja_JP.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_ja_JP.qm -------------------------------------------------------------------------------- /lang/JumpingCube_zh_CN.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chozabu/JumpingCube/master/lang/JumpingCube_zh_CN.qm -------------------------------------------------------------------------------- /JumpingCube_images.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/irkick.png 4 | images/dice.png 5 | 6 | 7 | -------------------------------------------------------------------------------- /slavecptest.sh: -------------------------------------------------------------------------------- 1 | kdesudo -u slavetester cp lib*.so* /home/slavetester/.retroshare/extensions/ 2 | kdesudo -u slavetester /home/chozabu/rsclean/trunk/retroshare-gui/src/RetroShare 3 | 4 | -------------------------------------------------------------------------------- /cptest.sh: -------------------------------------------------------------------------------- 1 | kdesudo -u retrotester cp libJumpingCube.so* /home/retrotester/.retroshare/extensions/ 2 | kdesudo -u retrotester /home/chozabu/rsclean/trunk/retroshare-gui/src/RetroShare 3 | 4 | -------------------------------------------------------------------------------- /testit.sh: -------------------------------------------------------------------------------- 1 | make clean 2 | qmake-qt4 3 | make clean 4 | make 5 | kdesudo -u retrotester cp libJumpingCube.so* /home/retrotester/.retroshare/extensions6/ 6 | kdesudo -u retrotester ../../retroshare-gui/src/RetroShare 7 | -------------------------------------------------------------------------------- /msgQue.h: -------------------------------------------------------------------------------- 1 | #ifndef MSGQUE_H 2 | #define MSGQUE_H 3 | 4 | #include "RSExampleItems.h" 5 | //class msgQue; 6 | //extern msgQue *msgque; 7 | 8 | class msgQue 9 | { 10 | public: 11 | msgQue(); 12 | virtual void storeMsg(RsExampleItem *item); 13 | virtual std::vector *getMsgList(); 14 | 15 | std::vector *buffer; 16 | }; 17 | 18 | #endif // MSGQUE_H 19 | -------------------------------------------------------------------------------- /msgQue.cpp: -------------------------------------------------------------------------------- 1 | #include "msgQue.h" 2 | 3 | msgQue::msgQue() 4 | { 5 | 6 | buffer = new std::vector; 7 | } 8 | 9 | 10 | void msgQue::storeMsg(RsExampleItem * item){ 11 | 12 | //should be doing a mutex lock here? 13 | buffer->push_back(*item); 14 | } 15 | 16 | 17 | //std::list 18 | std::vector *msgQue::getMsgList(){ 19 | //should also be doing a mutex lock here? 20 | std::vector *oldbuffer = buffer; 21 | buffer = new std::vector; 22 | return oldbuffer; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /lang/JumpingCube_lang.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | JumpingCube_cs.qm 4 | JumpingCube_da.qm 5 | JumpingCube_de.qm 6 | JumpingCube_el.qm 7 | JumpingCube_en.qm 8 | JumpingCube_es.qm 9 | JumpingCube_fi.qm 10 | JumpingCube_fr.qm 11 | JumpingCube_hu.qm 12 | JumpingCube_it.qm 13 | JumpingCube_ja_JP.qm 14 | JumpingCube_ko.qm 15 | JumpingCube_nl.qm 16 | JumpingCube_pl.qm 17 | JumpingCube_ru.qm 18 | JumpingCube_sv.qm 19 | JumpingCube_tr.qm 20 | JumpingCube_zh_CN.qm 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /jumpingcubewindow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | JumpingCubeWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 800 10 | 600 11 | 12 | 13 | 14 | MainWindow 15 | 16 | 17 | 18 | 19 | 20 | 0 21 | 0 22 | 800 23 | 21 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /gui/paintwidget.h: -------------------------------------------------------------------------------- 1 | #ifndef PAINTWIDGET_H 2 | #define PAINTWIDGET_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | class TopJCDialog; 10 | 11 | class PaintWidget : public QWidget 12 | { 13 | Q_OBJECT 14 | public: 15 | explicit PaintWidget(QWidget *parent = 0); 16 | void setImage(const QImage&); 17 | QImage getImage(); 18 | 19 | void fillImage(QColor color); 20 | virtual void paintAt(int x, int y); 21 | 22 | QColor color; 23 | uint8_t penWidth; 24 | TopJCDialog* tjd; 25 | 26 | signals: 27 | void haveUpdate(); 28 | 29 | 30 | public slots: 31 | 32 | protected: 33 | virtual void mouseReleaseEvent(QMouseEvent * event); 34 | virtual void paintEvent(QPaintEvent *); 35 | virtual void mouseMoveEvent(QMouseEvent *); 36 | 37 | private: 38 | QImage image; 39 | 40 | }; 41 | 42 | #endif // PAINTWIDGET_H 43 | -------------------------------------------------------------------------------- /jumpingcubewindow.h: -------------------------------------------------------------------------------- 1 | #ifndef JUMPINGCUBEWINDOW_H 2 | #define JUMPINGCUBEWINDOW_H 3 | 4 | #include 5 | 6 | 7 | #include 8 | 9 | 10 | namespace Ui { 11 | class JumpingCubeWindow; 12 | } 13 | 14 | class JumpingCubeWindow : public QMainWindow 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | int currentplayer; 20 | int myid; 21 | 22 | int boardWidth; 23 | int boardHeight; 24 | 25 | int **board; 26 | int **boardOwner; 27 | 28 | bool exploding; 29 | 30 | virtual void remoteClick(int x,int y); 31 | 32 | std::string peerid; 33 | explicit JumpingCubeWindow(QWidget *parent = 0); 34 | ~JumpingCubeWindow(); 35 | signals: 36 | void mClick(int x, int y); 37 | private slots: 38 | void on_timer(); 39 | private: 40 | QTimer *timer; 41 | Ui::JumpingCubeWindow *ui; 42 | virtual int getNumSides(int x, int y); 43 | virtual bool checkExplosions(); 44 | virtual void idClick(int x, int y, int player); 45 | 46 | protected: 47 | void paintEvent(QPaintEvent *event); 48 | void drawLines(QPainter *qp); 49 | virtual void mousePressEvent(QMouseEvent *e); 50 | }; 51 | 52 | #endif // JUMPINGCUBEWINDOW_H 53 | -------------------------------------------------------------------------------- /topjcdialog.h: -------------------------------------------------------------------------------- 1 | #ifndef TOPJCDIALOG_H 2 | #define TOPJCDIALOG_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include "msgQue.h" 12 | #include "jumpingcubewindow.h" 13 | 14 | class p3ExampleRS; 15 | 16 | namespace Ui { 17 | class TopJCDialog; 18 | } 19 | 20 | class TopJCDialog : public MainPage 21 | { 22 | Q_OBJECT 23 | 24 | public: 25 | explicit TopJCDialog(QWidget *parent = 0); 26 | ~TopJCDialog(); 27 | virtual bool addLogInfo(const std::string &info); 28 | virtual bool addPeerItem(const RsPeerId &info); 29 | p3ExampleRS *p3service; 30 | JumpingCubeWindow *jcw; 31 | msgQue * mMsgque; 32 | virtual void paintWAt(int x, int y); 33 | virtual void paintMouseMove(QMouseEvent *event); 34 | 35 | public slots: 36 | virtual void okClicked(); 37 | virtual void playClicked(); 38 | virtual void sendMClick(int x, int y); 39 | virtual void onBrushUIChange(); 40 | private slots: 41 | void on_timer(); 42 | private: 43 | Ui::TopJCDialog *ui; 44 | QTimer *timer; 45 | virtual void handleExampleItem( RsExampleItem * item ); 46 | 47 | }; 48 | 49 | #endif // TOPJCDIALOG_H 50 | -------------------------------------------------------------------------------- /p3ExampleRS.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef P3ZERORESERVERRS_H 4 | #define P3ZERORESERVERRS_H 5 | 6 | 7 | #include "RSExampleItems.h" 8 | 9 | #include "retroshare/rspeers.h" 10 | #include "plugins/rspqiservice.h" 11 | #include "pqi/pqimonitor.h" 12 | //#include "topjcdialog.h" 13 | 14 | #include "msgQue.h" 15 | 16 | 17 | class TopJCDialog; 18 | class RsPluginHandler; 19 | class RsPeers; 20 | 21 | class p3ExampleRS : public RsPQIService, // the service interface calls tick() 22 | public pqiMonitor // the monitor tells us when friends changed their status 23 | { 24 | public: 25 | p3ExampleRS(RsPluginHandler *pgHandler, RsPeers* peers, msgQue *msgin); 26 | 27 | virtual int tick(); 28 | virtual void statusChange(const std::list &plist); 29 | virtual void testit(); 30 | virtual void msgPeer(std::string peerId, std::string msg);//, std::string message){ 31 | virtual void msgPeerXY(std::string peerId, int x, int y); 32 | virtual void msgPeerXYT(std::string peerId, int x, int y, std::string msgtype); 33 | virtual void msgPeerBrush(std::string peerId, int w, int r, int g, int b, int a); 34 | msgQue * mMsgque; 35 | 36 | virtual RsServiceInfo getServiceInfo() ; 37 | 38 | private: 39 | void handleMessage( RsExampleItem *item ); 40 | void handleExampleItem( RsExampleItem * item ); 41 | 42 | private: 43 | 44 | RsPeers * m_peers; 45 | //TopJCDialog *tjd; 46 | }; 47 | 48 | #endif // P3ZERORESERVERRS_H 49 | -------------------------------------------------------------------------------- /JumpingCubePlugin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include "msgQue.h" 7 | 8 | class p3ExampleRS; 9 | 10 | class JumpingCubePlugin: public RsPlugin 11 | { 12 | public: 13 | JumpingCubePlugin() ; 14 | virtual ~JumpingCubePlugin() {} 15 | 16 | 17 | virtual RsCacheService *rs_cache_service() const ; 18 | virtual RsPQIService * rs_pqi_service() const; 19 | 20 | //virtual uint16_t rs_service_id() const { return RS_SERVICE_TYPE_RANK ; } 21 | 22 | //other things 23 | 24 | virtual MainPage *qt_page() const ; 25 | virtual QIcon *qt_icon() const ; 26 | virtual QTranslator *qt_translator(QApplication *app, const QString& languageCode, const QString& externalDir) const; 27 | 28 | virtual void getPluginVersion(int& major, int& minor, int &build, int& svn_rev) const ; 29 | virtual void setPlugInHandler(RsPluginHandler *pgHandler); 30 | 31 | virtual std::string configurationFileName() const { return std::string() ; } 32 | 33 | virtual std::string getShortPluginDescription() const ; 34 | virtual std::string getPluginName() const; 35 | virtual void setInterfaces(RsPlugInInterfaces& interfaces); 36 | private: 37 | mutable RsPluginHandler *mPlugInHandler; 38 | mutable RsFiles* mFiles; 39 | mutable RsPeers* mPeers; 40 | mutable MainPage* mainpage ; 41 | mutable TopJCDialog* tpage; 42 | mutable QIcon* mIcon ; 43 | mutable msgQue* mMsgque; 44 | 45 | mutable p3ExampleRS * mServiceP3; 46 | }; 47 | 48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #JumpingCube Game (and some paintchat) 2 | 3 | This is currently a simple game+paint+chat plugin for retroshare. 4 | 5 | It is not intended for practical use - mostly as a project for me to get a handle on RS. 6 | 7 | It uses some code from several other plugins, including electrons paintchat plugin. 8 | 9 | All data is sent using the "example" class - "encoded" as a string. 10 | 11 | Mouse XY positions are sent rather than image diffs. 12 | 13 | Expect mistakes, my C++ is very rusty, and im new to both QT and retroshare. I also know I dropped some ugly hacks. 14 | ![My image](http://chozabu.net/stuff/jumpingcubepaint.png) 15 | 16 | ## Quick Start: 17 | 18 | If you know what you are doing, do that! 19 | 20 | ###Install 21 | ####build 22 | #qmake-qt4;make 23 | ####deploy 24 | #cp lib* ~/.retroshare/extensions/ 25 | ####(Re)Start RS 26 | 27 | 28 | ###Usage 29 | RS should detect the plugin, the top left pane will show friends also running the plugin. 30 | 31 | click a friends ID to select them. 32 | 33 | type, then press the button or paint to send your friend data. 34 | press "start game" to have a game of "jumpingcube" with friend. 35 | 36 | learn the rules by playing! 37 | 38 | I first saw this game on a then new-ish acorn. 39 | A more recent implementation can be found here http://games.kde.org/game.php?game=kjumpingcube 40 | 41 | 42 | 43 | ## If you wish to test in a second instance of RetroShare 44 | ### Make a new user 45 | ``` 46 | useradd retrotester 47 | ``` 48 | ### Inspect then run the build and test script (KDE) 49 | ``` 50 | cat testit.sh 51 | ./testit.sh 52 | ``` 53 | ### Exit the new instance of retroshare when done testing 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /JumpingCube.pro: -------------------------------------------------------------------------------- 1 | !include("../Common/retroshare_plugin.pri"): error("Could not include file ../Common/retroshare_plugin.pri") 2 | 3 | CONFIG += qt uic qrc resources 4 | 5 | SOURCES = JumpingCubePlugin.cpp \ 6 | gui/paintwidget.cpp \ 7 | topjcdialog.cpp \ 8 | RSExampleItems.cpp \ 9 | p3ExampleRS.cpp \ 10 | msgQue.cpp \ 11 | jumpingcubewindow.cpp 12 | HEADERS = JumpingCubePlugin.h \ 13 | gui/paintwidget.h \ 14 | topjcdialog.h \ 15 | p3ExampleRS.h \ 16 | RSExampleItems.h \ 17 | msgQue.h \ 18 | jumpingcubewindow.h 19 | FORMS = \ 20 | topjcdialog.ui \ 21 | jumpingcubewindow.ui 22 | 23 | TARGET = JumpingCube 24 | 25 | RESOURCES = JumpingCube_images.qrc lang/JumpingCube_lang.qrc 26 | 27 | TRANSLATIONS += \ 28 | lang/JumpingCube_cs.ts \ 29 | lang/JumpingCube_da.ts \ 30 | lang/JumpingCube_de.ts \ 31 | lang/JumpingCube_el.ts \ 32 | lang/JumpingCube_en.ts \ 33 | lang/JumpingCube_es.ts \ 34 | lang/JumpingCube_fi.ts \ 35 | lang/JumpingCube_fr.ts \ 36 | lang/JumpingCube_hu.ts \ 37 | lang/JumpingCube_it.ts \ 38 | lang/JumpingCube_ja_JP.ts \ 39 | lang/JumpingCube_ko.ts \ 40 | lang/JumpingCube_nl.ts \ 41 | lang/JumpingCube_pl.ts \ 42 | lang/JumpingCube_ru.ts \ 43 | lang/JumpingCube_sv.ts \ 44 | lang/JumpingCube_tr.ts \ 45 | lang/JumpingCube_zh_CN.ts 46 | 47 | OTHER_FILES += \ 48 | cptest.sh 49 | -------------------------------------------------------------------------------- /RSExampleItems.h: -------------------------------------------------------------------------------- 1 | #ifndef RSEXAMPLEITEMS_H 2 | #define RSEXAMPLEITEMS_H 3 | 4 | #include "serialiser/rsserial.h" 5 | #include 6 | 7 | 8 | 9 | const uint8_t QOS_PRIORITY_RS_EXAMPLE = 3; 10 | extern const uint16_t RS_SERVICE_TYPE_EXAMPLE_PLUGIN; 11 | extern const uint32_t CONFIG_TYPE_EXAMPLE_PLUGIN; 12 | 13 | 14 | class RsExampleItem: public RsItem 15 | { 16 | public: 17 | RsExampleItem( ) 18 | : RsItem( RS_PKT_VERSION_SERVICE,RS_SERVICE_TYPE_EXAMPLE_PLUGIN, EXAMPLE_ITEM ) 19 | { 20 | setPriorityLevel(QOS_PRIORITY_RS_EXAMPLE); 21 | m_msg = "Hello World"; 22 | } 23 | RsExampleItem(void *data, uint32_t pktsize); 24 | 25 | enum RS_PKT_SUBTYPE { 26 | EXAMPLE_ITEM = 0x01 27 | // add any number of item types here 28 | }; 29 | 30 | virtual ~RsExampleItem() {}; 31 | virtual void clear() {}; 32 | virtual std::ostream& print(std::ostream &out, uint16_t indent = 0); 33 | 34 | virtual bool serialise(void *data,uint32_t& size); 35 | virtual uint32_t serial_size() const; 36 | 37 | const std::string & getMessage(){ return m_msg; } 38 | void setMessage(std::string msg){ m_msg = msg; } 39 | private: 40 | std::string m_msg; 41 | }; 42 | 43 | 44 | 45 | 46 | 47 | class RsExampleSerialiser: public RsSerialType 48 | { 49 | public: 50 | RsExampleSerialiser() 51 | :RsSerialType(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_EXAMPLE_PLUGIN) 52 | { 53 | } 54 | virtual ~RsExampleSerialiser() {} 55 | 56 | virtual uint32_t size (RsItem *item) 57 | { 58 | return dynamic_cast(item)->serial_size() ; 59 | } 60 | 61 | virtual bool serialise (RsItem *item, void *data, uint32_t *size) 62 | { 63 | return dynamic_cast(item)->serialise(data,*size) ; 64 | } 65 | virtual RsItem *deserialise(void *data, uint32_t *size); 66 | }; 67 | 68 | #endif // RSEXAMPLEITEMS_H 69 | -------------------------------------------------------------------------------- /gui/paintwidget.cpp: -------------------------------------------------------------------------------- 1 | #include "paintwidget.h" 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | PaintWidget::PaintWidget(QWidget *parent) : 11 | QWidget(parent),image(600,300,QImage::Format_RGB32),color(Qt::black),penWidth(8) 12 | { 13 | image.fill(qRgb(255, 255, 255)); 14 | } 15 | 16 | void PaintWidget::setImage(const QImage &img){ 17 | image=img.copy(); 18 | update(); 19 | } 20 | 21 | QImage PaintWidget::getImage(){ 22 | return image; 23 | } 24 | 25 | void PaintWidget::fillImage(QColor color){ 26 | image.fill(qRgb(255, 255, 255)); 27 | update(); 28 | } 29 | 30 | void PaintWidget::mouseMoveEvent(QMouseEvent *event) 31 | { 32 | QPainter p(&image); 33 | p.setPen(color); 34 | p.setBrush(color); 35 | if(penWidth==1){ 36 | p.drawPoint(event->pos()); 37 | }else{ 38 | p.drawEllipse(event->pos(),penWidth/2,penWidth/2); 39 | } 40 | //check if u want to clear Jenster-- 41 | // if (event->button() == Qt::RightButton) image.fill(qRgb(255, 255, 255)); 42 | 43 | // trigger repaint of widget 44 | update(); 45 | tjd->paintMouseMove(event); 46 | } 47 | 48 | 49 | void PaintWidget::paintAt(int x, int y) 50 | { 51 | QPainter p(&image); 52 | p.setPen(color); 53 | p.setBrush(color); 54 | if(penWidth==1){ 55 | p.drawPoint(x,y); 56 | }else{ 57 | p.drawEllipse(x,y,penWidth/2,penWidth/2); 58 | } 59 | // trigger repaint of widget 60 | update(); 61 | } 62 | 63 | qint64 getImgSize(QImage image){ 64 | QByteArray ba; 65 | QBuffer buffer(&ba); 66 | buffer.open(QIODevice::WriteOnly); 67 | image.save(&buffer, "PNG"); 68 | return buffer.buffer().toBase64().size(); 69 | } 70 | 71 | void PaintWidget::mouseReleaseEvent(QMouseEvent *event){ 72 | std::cout<<"PaintWidgte::mouseReleseEvent()"<button() == Qt::RightButton) { image.fill(qRgb(255, 255, 255));update(); } 75 | //check to see if we want to send to clipboard 76 | if (event->button() == Qt::MiddleButton) { 77 | QImage img = image.scaledToWidth(image.width()*0.5); 78 | while(getImgSize(img)> 5500){ 79 | img = img.scaledToWidth(img.width()*0.8); 80 | } 81 | QApplication::clipboard()->setImage(img); 82 | } 83 | 84 | 85 | 86 | emit haveUpdate(); 87 | } 88 | 89 | void PaintWidget::paintEvent(QPaintEvent *event) 90 | { 91 | QPainter p(this); 92 | p.drawImage(0,0,image); 93 | } 94 | -------------------------------------------------------------------------------- /RSExampleItems.cpp: -------------------------------------------------------------------------------- 1 | #include "RSExampleItems.h" 2 | #include "serialiser/rsbaseserial.h" 3 | 4 | 5 | #include 6 | #include 7 | 8 | 9 | const uint16_t RS_SERVICE_TYPE_EXAMPLE_PLUGIN = 0xDEAD; // gotta be unique among all plugins 10 | const uint32_t CONFIG_TYPE_EXAMPLE_PLUGIN = 0x0000BEEF; 11 | 12 | #define CURRENCY_STRLEN 3 13 | #define HOLLERITH_LEN_SPEC 4 14 | 15 | RsItem* RsExampleSerialiser::deserialise(void *data, uint32_t *pktsize) 16 | { 17 | std::cerr << "Zero Reserve: deserialise()" << std::endl; 18 | 19 | /* get the type and size */ 20 | uint32_t rstype = getRsItemId(data); 21 | 22 | if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) || (RS_SERVICE_TYPE_EXAMPLE_PLUGIN != getRsItemService(rstype))) 23 | return NULL ; 24 | 25 | try{ 26 | switch(getRsItemSubType(rstype)) 27 | { 28 | case RsExampleItem::EXAMPLE_ITEM: 29 | return new RsExampleItem(data, *pktsize); 30 | default: 31 | return NULL; 32 | } 33 | } 34 | catch(std::exception& e){ 35 | std::cerr << "RsExampleSerialiser: deserialization error: " << e.what() << std::endl; 36 | return NULL; 37 | } 38 | } 39 | 40 | 41 | 42 | 43 | //EXAMPLE ITEM 44 | std::ostream& RsExampleItem::print(std::ostream &out, uint16_t indent) 45 | { 46 | printRsItemBase(out, "RsExampleItem", indent); 47 | uint16_t int_Indent = indent + 2; 48 | printIndent(out, int_Indent); 49 | 50 | out << "Message : " << m_msg << std::endl; 51 | 52 | printIndent(out, int_Indent); 53 | printRsItemEnd(out, "RsExampleItem", indent); 54 | return out; 55 | } 56 | 57 | uint32_t RsExampleItem::serial_size() const 58 | { 59 | uint32_t s = 8; /* header */ 60 | s += m_msg.length() + HOLLERITH_LEN_SPEC; // strings need the length of the string + 32 bit to specify the length (Hollerith format) 61 | 62 | return s; 63 | } 64 | 65 | bool RsExampleItem::serialise(void *data, uint32_t& pktsize) 66 | { 67 | uint32_t tlvsize = serial_size() ; 68 | 69 | if (pktsize < tlvsize) 70 | return false; /* not enough space */ 71 | 72 | pktsize = tlvsize; 73 | 74 | bool ok = true; 75 | 76 | ok &= setRsItemHeader(data, tlvsize, PacketId(), tlvsize); 77 | 78 | uint32_t offset = 8; // skip header 79 | 80 | ok &= setRawString( data, tlvsize, &offset, m_msg ); 81 | 82 | if (offset != tlvsize){ 83 | ok = false; 84 | std::cerr << "RsExampleItem::serialise() Size Error! " << std::endl; 85 | } 86 | 87 | return ok; 88 | } 89 | 90 | RsExampleItem::RsExampleItem(void *data, uint32_t pktsize) 91 | : RsItem( RS_PKT_VERSION_SERVICE,RS_SERVICE_TYPE_EXAMPLE_PLUGIN, EXAMPLE_ITEM ) 92 | { 93 | /* get the type and size */ 94 | uint32_t rstype = getRsItemId(data); 95 | uint32_t rssize = getRsItemSize(data); 96 | 97 | uint32_t offset = 8; 98 | 99 | 100 | if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) || (RS_SERVICE_TYPE_EXAMPLE_PLUGIN != getRsItemService(rstype)) || (EXAMPLE_ITEM != getRsItemSubType(rstype))) 101 | throw std::runtime_error("Wrong packet type!") ; 102 | 103 | if (pktsize < rssize) /* check size */ 104 | throw std::runtime_error("Not enough size!") ; 105 | 106 | bool ok = true; 107 | 108 | 109 | ok &= getRawString(data, rssize, &offset, m_msg ); 110 | 111 | if (offset != rssize || !ok ) 112 | throw std::runtime_error("Deserialisation error!") ; 113 | } 114 | 115 | 116 | -------------------------------------------------------------------------------- /JumpingCubePlugin.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | 7 | #include "JumpingCubePlugin.h" 8 | //#include "LinksDialog.h" 9 | #include "topjcdialog.h" 10 | 11 | #include "p3ExampleRS.h" 12 | //static void *inited = new JumpingCubePlugin(); 13 | 14 | //inited->rs_cache_service(); 15 | 16 | extern "C" { 17 | void *RETROSHARE_PLUGIN_provide() 18 | { 19 | static JumpingCubePlugin *p = new JumpingCubePlugin() ; 20 | 21 | return (void*)p ; 22 | } 23 | 24 | // This symbol contains the svn revision number grabbed from the executable. 25 | // It will be tested by RS to load the plugin automatically, since it is safe to load plugins 26 | // with same revision numbers, assuming that the revision numbers are up-to-date. 27 | // 28 | uint32_t RETROSHARE_PLUGIN_revision = RS_REVISION_NUMBER ; 29 | 30 | // This symbol contains the svn revision number grabbed from the executable. 31 | // It will be tested by RS to load the plugin automatically, since it is safe to load plugins 32 | // with same revision numbers, assuming that the revision numbers are up-to-date. 33 | // 34 | uint32_t RETROSHARE_PLUGIN_api = RS_PLUGIN_API_VERSION ; 35 | } 36 | 37 | #define IMAGE_LINKS ":/images/dice.png" 38 | 39 | void JumpingCubePlugin::getPluginVersion(int& major, int& minor, int &build, int& svn_rev) const 40 | { 41 | major = RS_MAJOR_VERSION ; 42 | minor = RS_MINOR_VERSION ; 43 | build = RS_BUILD_NUMBER; 44 | svn_rev = RS_REVISION_NUMBER ; 45 | } 46 | 47 | JumpingCubePlugin::JumpingCubePlugin() 48 | { 49 | //mRanking = NULL ; 50 | mMsgque = new msgQue(); 51 | tpage = new TopJCDialog(); 52 | tpage->mMsgque = mMsgque; 53 | mainpage = NULL ; 54 | mIcon = NULL ; 55 | mPlugInHandler = NULL; 56 | mPeers = NULL; 57 | mFiles = NULL; 58 | mServiceP3 = NULL; 59 | } 60 | 61 | void JumpingCubePlugin::setInterfaces(RsPlugInInterfaces &interfaces){ 62 | 63 | mPeers = interfaces.mPeers; 64 | mFiles = interfaces.mFiles; 65 | } 66 | 67 | 68 | 69 | MainPage *JumpingCubePlugin::qt_page() const 70 | { 71 | if(mainpage == NULL) 72 | mainpage = tpage;//new TopJCDialog();//mPeers, mFiles) ; 73 | return mainpage ; 74 | } 75 | 76 | RsCacheService *JumpingCubePlugin::rs_cache_service() const 77 | { 78 | /*if(mRanking == NULL) 79 | { 80 | mRanking = new p3Ranking(mPlugInHandler) ; // , 3600 * 24 * 30 * 6); // 6 Months 81 | rsRanks = mRanking ; 82 | } 83 | 84 | return mRanking ;*/ 85 | return NULL; 86 | } 87 | 88 | 89 | RsPQIService * JumpingCubePlugin::rs_pqi_service() const 90 | { 91 | if(mServiceP3 == NULL){ 92 | mServiceP3 = new p3ExampleRS(mPlugInHandler, mPeers , mMsgque) ; 93 | tpage->p3service = mServiceP3; 94 | } 95 | 96 | return mServiceP3 ; 97 | } 98 | 99 | void JumpingCubePlugin::setPlugInHandler(RsPluginHandler *pgHandler){ 100 | mPlugInHandler = pgHandler; 101 | 102 | } 103 | 104 | QIcon *JumpingCubePlugin::qt_icon() const 105 | { 106 | if(mIcon == NULL) 107 | { 108 | Q_INIT_RESOURCE(JumpingCube_images) ; 109 | 110 | mIcon = new QIcon(IMAGE_LINKS) ; 111 | } 112 | 113 | return mIcon; 114 | } 115 | 116 | std::string JumpingCubePlugin::getShortPluginDescription() const 117 | { 118 | return "infosoon";//QApplication::translate("JumpingCubePlugin", "This plugin provides a set of cached links, and a voting system to promote them.").toUtf8().constData(); 119 | } 120 | 121 | std::string JumpingCubePlugin::getPluginName() const 122 | { 123 | return "JumpingCube";//QApplication::translate("JumpingCubePlugin", "JumpingCube").toUtf8().constData(); 124 | } 125 | 126 | QTranslator* JumpingCubePlugin::qt_translator(QApplication */*app*/, const QString& languageCode, const QString& externalDir) const 127 | { 128 | if (languageCode == "en") { 129 | return NULL; 130 | } 131 | 132 | QTranslator* translator = new QTranslator(); 133 | 134 | if (translator->load(externalDir + "/JumpingCube_" + languageCode + ".qm")) { 135 | return translator; 136 | } else if (translator->load(":/lang/JumpingCube_" + languageCode + ".qm")) { 137 | return translator; 138 | } 139 | 140 | delete(translator); 141 | return NULL; 142 | } 143 | -------------------------------------------------------------------------------- /p3ExampleRS.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of the Zero Reserve Plugin for Retroshare. 3 | 4 | Zero Reserve is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU Lesser General Public License as published by 6 | the Free Software Foundation, either version 3 of the License, or 7 | (at your option) any later version. 8 | 9 | Zero Reserve is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public License 15 | along with Zero Reserve. If not, see . 16 | */ 17 | 18 | #include "p3ExampleRS.h" 19 | 20 | #include "pqi/p3linkmgr.h" 21 | 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | 29 | 30 | // after getting data from 3 peers, we believe we're complete 31 | static const int INIT_THRESHOLD = 3; 32 | 33 | p3ExampleRS::p3ExampleRS(RsPluginHandler *pgHandler, RsPeers* peers, msgQue *msgin ) : 34 | RsPQIService( RS_SERVICE_TYPE_EXAMPLE_PLUGIN, CONFIG_TYPE_EXAMPLE_PLUGIN, pgHandler ), 35 | 36 | m_peers(peers) 37 | { 38 | addSerialType(new RsExampleSerialiser()); 39 | 40 | //pgHandler->getLinkMgr()->addMonitor( this ); 41 | mMsgque = msgin; 42 | //tjd = tjdin; 43 | //tjd->p3service = this; 44 | } 45 | 46 | void p3ExampleRS::msgPeer(std::string peerId, std::string msg){//, std::string message){ 47 | RsExampleItem * item = new RsExampleItem(); 48 | item->PeerId( RsPeerId(peerId) ); 49 | item->setMessage(msg); 50 | //item->m_msg = "hoozah!!"; 51 | sendItem( item ); 52 | } 53 | void p3ExampleRS::msgPeerXY(std::string peerId, int x, int y){//, std::string message){ 54 | /*RsMouseEvent * item = new RsMouseEvent(); 55 | item->PeerId( peerId ); 56 | item->x = x; 57 | item->y = y; 58 | sendItem( item );*/ 59 | std::stringstream ss; 60 | ss << "DATA " << x << " " <PeerId( RsPeerId(peerId) ); 75 | item->setMessage(msg); 76 | sendItem( item ); 77 | } 78 | void p3ExampleRS::msgPeerXYT(std::string peerId, int x, int y, std::string msgtype){ 79 | std::stringstream ss; 80 | ss << msgtype<< " " << x << " " <loginfo->append(info.data()); 92 | std::cout << "Would send data here" << std::endl; 93 | } 94 | 95 | void p3ExampleRS::statusChange(const std::list< pqipeer > &plist) 96 | { 97 | std::cerr << "Example: Status changed:" << std::endl; 98 | 99 | for (std::list< pqipeer >::const_iterator peerIt = plist.begin(); peerIt != plist.end(); peerIt++ ){ 100 | if( RS_PEER_CONNECTED & (*peerIt).actions ){ 101 | RsExampleItem * item = new RsExampleItem(); 102 | item->PeerId( (*peerIt).id ); 103 | std::stringstream ss; 104 | ss << "INIT " << "please"; 105 | //std::string msg = ss.str(); 106 | item->setMessage(ss.str()); 107 | sendItem( item ); 108 | //tjd->addPeerItem((*peerIt).id); 109 | //tjd->addPeerItem() 110 | } 111 | } 112 | } 113 | 114 | 115 | RsServiceInfo p3ExampleRS::getServiceInfo() 116 | { 117 | const std::string TURTLE_APP_NAME = "VOIP"; 118 | const uint16_t TURTLE_APP_MAJOR_VERSION = 1; 119 | const uint16_t TURTLE_APP_MINOR_VERSION = 0; 120 | const uint16_t TURTLE_MIN_MAJOR_VERSION = 1; 121 | const uint16_t TURTLE_MIN_MINOR_VERSION = 0; 122 | 123 | return RsServiceInfo(RS_SERVICE_TYPE_EXAMPLE_PLUGIN, 124 | TURTLE_APP_NAME, 125 | TURTLE_APP_MAJOR_VERSION, 126 | TURTLE_APP_MINOR_VERSION, 127 | TURTLE_MIN_MAJOR_VERSION, 128 | TURTLE_MIN_MINOR_VERSION); 129 | } 130 | 131 | 132 | int p3ExampleRS::tick() 133 | { 134 | RsItem *item = NULL; 135 | while(NULL != (item = recvItem())){ 136 | switch( item->PacketSubType() ) 137 | { 138 | case RsExampleItem::EXAMPLE_ITEM: 139 | handleExampleItem( dynamic_cast( item ) ); 140 | break; 141 | default: 142 | std::cerr << "Example: Received Item unknown" << std::endl; 143 | } 144 | delete item; 145 | } 146 | return 0; 147 | } 148 | 149 | 150 | void p3ExampleRS::handleExampleItem( RsExampleItem * item ) 151 | { 152 | std::string msg = item->getMessage(); 153 | mMsgque->storeMsg(item); 154 | /*std::cerr << item->PeerId() << " said: " << msg << std::endl; 155 | //msgque 156 | std::cerr << msg.substr(0,4) << std::endl; 157 | if (msg.substr(0,4).compare("DATA")==0){ 158 | //DATA mx=75 my=127 159 | // tokeniser from http://stackoverflow.com/questions/236129/how-to-split-a-string-in-c 160 | std::istringstream iss(msg); 161 | std::vector tokens; 162 | copy(std::istream_iterator(iss), 163 | std::istream_iterator(), 164 | std::back_inserter >(tokens)); 165 | std::string xstr = tokens.at(1); 166 | int x = atoi(xstr.c_str()); 167 | std::string ystr = tokens.at(2); 168 | int y = atoi(ystr.c_str()); 169 | std::cout << "CONVERTEDNUMS: " << x << y << std::endl; 170 | //tjd->paintWAt(x,y); 171 | }else{ 172 | //tjd->addLogInfo(item->PeerId()); 173 | //tjd->addLogInfo(item->getMessage()); 174 | } 175 | //item->RS_PKT_SUBTYPE*/ 176 | } 177 | 178 | 179 | -------------------------------------------------------------------------------- /topjcdialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | TopJCDialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 818 10 | 659 11 | 12 | 13 | 14 | Form 15 | 16 | 17 | 18 | 19 | 10 20 | 340 21 | 600 22 | 300 23 | 24 | 25 | 26 | 27 | 28 | 29 | 610 30 | 60 31 | 191 32 | 191 33 | 34 | 35 | 36 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 37 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 38 | p, li { white-space: pre-wrap; } 39 | </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> 40 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Data dump:</p> 41 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> 42 | 43 | 44 | 45 | 46 | 47 | 10 48 | 60 49 | 256 50 | 192 51 | 52 | 53 | 54 | 55 | 56 | 57 | 270 58 | 250 59 | 251 60 | 61 61 | 62 | 63 | 64 | 65 | 66 | 67 | 520 68 | 270 69 | 81 70 | 23 71 | 72 | 73 | 74 | Send 75 | 76 | 77 | 78 | 79 | 80 | 265 81 | 61 82 | 341 83 | 191 84 | 85 | 86 | 87 | 88 | 89 | 90 | 40 91 | 260 92 | 99 93 | 24 94 | 95 | 96 | 97 | Play Game 98 | 99 | 100 | 101 | 102 | 103 | 610 104 | 340 105 | 23 106 | 160 107 | 108 | 109 | 110 | 255 111 | 112 | 113 | Qt::Vertical 114 | 115 | 116 | 117 | 118 | 119 | 630 120 | 340 121 | 23 122 | 160 123 | 124 | 125 | 126 | 255 127 | 128 | 129 | Qt::Vertical 130 | 131 | 132 | 133 | 134 | 135 | 650 136 | 340 137 | 23 138 | 160 139 | 140 | 141 | 142 | 255 143 | 144 | 145 | Qt::Vertical 146 | 147 | 148 | 149 | 150 | 151 | 460 152 | 310 153 | 160 154 | 23 155 | 156 | 157 | 158 | 1 159 | 160 | 161 | 50 162 | 163 | 164 | 10 165 | 166 | 167 | Qt::Horizontal 168 | 169 | 170 | 171 | 172 | 173 | 680 174 | 340 175 | 23 176 | 160 177 | 178 | 179 | 180 | 255 181 | 182 | 183 | 200 184 | 185 | 186 | Qt::Vertical 187 | 188 | 189 | 190 | 191 | 192 | 420 193 | 320 194 | 41 195 | 16 196 | 197 | 198 | 199 | Width 200 | 201 | 202 | 203 | 204 | 205 | 620 206 | 500 207 | 71 208 | 16 209 | 210 | 211 | 212 | R G B A 213 | 214 | 215 | 216 | 217 | 218 | 610 219 | 520 220 | 120 221 | 80 222 | 223 | 224 | 225 | true 226 | 227 | 228 | 229 | 230 | 231 | PaintWidget 232 | QWidget 233 |
gui/paintwidget.h
234 | 1 235 |
236 |
237 | 238 | 239 |
240 | -------------------------------------------------------------------------------- /jumpingcubewindow.cpp: -------------------------------------------------------------------------------- 1 | #include "jumpingcubewindow.h" 2 | #include "ui_jumpingcubewindow.h" 3 | 4 | 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | 15 | JumpingCubeWindow::JumpingCubeWindow(QWidget *parent) : 16 | QMainWindow(parent), 17 | ui(new Ui::JumpingCubeWindow) 18 | { 19 | ui->setupUi(this); 20 | //ui->gameDisplay-> 21 | currentplayer = 0; 22 | boardWidth = 8; 23 | boardHeight = 8; 24 | 25 | board = new int*[boardWidth]; 26 | for (int i = 0; i < boardWidth; ++i) { 27 | board[i] = new int[boardHeight]; 28 | for (int j = 0; j < boardHeight; ++j) { 29 | board[i][j] = getNumSides(i,j); 30 | } 31 | } 32 | 33 | 34 | boardOwner = new int*[boardWidth]; 35 | for (int i = 0; i < boardWidth; ++i) { 36 | boardOwner[i] = new int[boardHeight]; 37 | for (int j = 0; j < boardHeight; ++j) { 38 | boardOwner[i][j] = -1; 39 | } 40 | } 41 | 42 | 43 | timer=new QTimer(this); 44 | connect(timer,SIGNAL(timeout()),SLOT(on_timer())); 45 | timer->start(500); 46 | 47 | exploding = false; 48 | 49 | } 50 | 51 | void JumpingCubeWindow::on_timer(){ 52 | if (exploding){ 53 | exploding = checkExplosions(); 54 | if (exploding)update(); 55 | } 56 | } 57 | 58 | 59 | void JumpingCubeWindow::paintEvent(QPaintEvent *e) 60 | { 61 | Q_UNUSED(e); 62 | QPainter qp(this); 63 | drawLines(&qp); 64 | } 65 | 66 | /*! 67 | * \brief JumpingCubeWindow::remoteClick function to send external input to the game board 68 | * \param x X as board position 69 | * \param y Y as board position 70 | */ 71 | void JumpingCubeWindow::remoteClick(int x, int y) 72 | { 73 | if (exploding)return; 74 | int player = 0; 75 | if(myid==0)player=1; 76 | if (player != currentplayer)return; 77 | if (boardOwner[x][y] != -1 && player != boardOwner[x][y]) return; 78 | idClick(x,y, player); 79 | 80 | } 81 | 82 | void JumpingCubeWindow::mousePressEvent(QMouseEvent *e){ 83 | if (exploding)return; 84 | int player = myid; 85 | if (player != currentplayer)return; 86 | int winWidth = this->size().rwidth(); 87 | int winHeight = this->size().rheight(); 88 | float cellwidth = winWidth/boardWidth; 89 | float cellheight = winHeight/boardHeight; 90 | int x = e->pos().x(); 91 | int y =e->pos().y(); 92 | x/=cellwidth; 93 | y/=cellheight; 94 | //TODO send packet here 95 | std::cerr << "got a mpe\n"; 96 | if (boardOwner[x][y] != -1 && player != boardOwner[x][y]) return; 97 | emit mClick(x,y); 98 | idClick(x,y, player); 99 | } 100 | 101 | void JumpingCubeWindow::idClick(int x, int y, int player){ 102 | boardOwner[x][y] = player; 103 | board[x][y]-=1; 104 | 105 | exploding = true; 106 | currentplayer++; 107 | if (currentplayer>1)currentplayer = 0; 108 | 109 | update(); 110 | } 111 | 112 | 113 | bool JumpingCubeWindow::checkExplosions() 114 | { 115 | bool exploded = false; 116 | for (int x=0;xsetPen(pen); 151 | //qp->drawLine(20, 40, 250, 40); 152 | int winWidth = this->size().rwidth(); 153 | int winHeight = this->size().rheight(); 154 | float cellwidth = winWidth/boardWidth; 155 | float cellheight = winHeight/boardHeight; 156 | 157 | for (int x=0;xdrawLine(xp, 0, xp, winHeight); 160 | } 161 | for (int y=0;ydrawLine(0, yp, winWidth, yp); 164 | } 165 | for (int x=0;xsetPen(rpen); 171 | else if (boardOwner[x][y] == 1)qp->setPen(gpen); 172 | if (board[x][y] == getNumSides(x,y) and false) 173 | qp->drawRect(xp+cellwidth/2-drawRad/2, yp+cellheight/2-drawRad/2, drawRad, drawRad); 174 | else { 175 | if (board[x][y] %2 == 0) 176 | qp->drawRect( xp+cellwidth/2-drawRad/2, yp+cellheight/2-drawRad/2, drawRad, drawRad); 177 | else 178 | qp->drawEllipse(xp+cellwidth/2-drawRad/2, yp+cellheight/2-drawRad/2, drawRad, drawRad); 179 | //else 180 | // qp->drawEllipse(xp+cellwidth/2-drawRad/2, yp+cellheight/2-drawRad/2, drawRad, drawRad); 181 | } 182 | std::stringstream ss; 183 | ss << boardOwner[x][y]; 184 | qp->drawText(xp,yp,ss.str().data()); 185 | qp->setPen(pen); 186 | } 187 | } 188 | 189 | 190 | /* 191 | 192 | pen.setStyle(Qt::DashLine); 193 | qp->setPen(pen); 194 | qp->drawLine(20, 80, 250, 80); 195 | 196 | pen.setStyle(Qt::DashDotLine); 197 | qp->setPen(pen); 198 | qp->drawLine(20, 120, 250, 120); 199 | 200 | pen.setStyle(Qt::DotLine); 201 | qp->setPen(pen); 202 | qp->drawLine(20, 160, 250, 160); 203 | 204 | pen.setStyle(Qt::DashDotDotLine); 205 | qp->setPen(pen); 206 | qp->drawLine(20, 200, 250, 200); 207 | 208 | QVector dashes; 209 | qreal space = 4; 210 | 211 | dashes << 1 << space << 5 << space; 212 | 213 | pen.setStyle(Qt::CustomDashLine); 214 | pen.setDashPattern(dashes); 215 | qp->setPen(pen); 216 | qp->drawLine(20, 240, 250, 240); 217 | */ 218 | } 219 | 220 | JumpingCubeWindow::~JumpingCubeWindow() 221 | { 222 | delete ui; 223 | } 224 | 225 | int JumpingCubeWindow::getNumSides(int x, int y) 226 | { 227 | int sides = 0; 228 | if (x!=0)sides++; 229 | if (x!=boardWidth-1)sides++; 230 | if (y!=0)sides++; 231 | if (y!=boardHeight-1)sides++; 232 | return sides; 233 | } 234 | -------------------------------------------------------------------------------- /topjcdialog.cpp: -------------------------------------------------------------------------------- 1 | #include "topjcdialog.h" 2 | #include "ui_topjcdialog.h" 3 | #include "p3ExampleRS.h" 4 | //#include "msgQue.h" 5 | 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | /** Constructor 14 | LinksDialog::LinksDialog(RsPeers *peers, RsFiles *files, QWidget *parent) 15 | : MainPage(parent), mPeers(peers), mFiles(files) 16 | { 17 | 18 | }**/ 19 | 20 | 21 | TopJCDialog::TopJCDialog(QWidget *parent) : 22 | MainPage(parent), 23 | ui(new Ui::TopJCDialog) 24 | { 25 | ui->setupUi(this); 26 | ui->loginfo->append("\nasd\n"); 27 | //p3ExampleRS *p3service = NULL; 28 | ui->paintWidget->tjd = this; 29 | 30 | connect(ui->okButton, SIGNAL(clicked()), this, SLOT(okClicked())); 31 | connect(ui->playGameButton, SIGNAL(clicked()), this, SLOT(playClicked())); 32 | connect(ui->rSlider, SIGNAL(sliderMoved(int)), this, SLOT(onBrushUIChange())); 33 | connect(ui->gSlider, SIGNAL(sliderMoved(int)), this, SLOT(onBrushUIChange())); 34 | connect(ui->bSlider, SIGNAL(sliderMoved(int)), this, SLOT(onBrushUIChange())); 35 | connect(ui->aSlider, SIGNAL(sliderMoved(int)), this, SLOT(onBrushUIChange())); 36 | connect(ui->wSlider, SIGNAL(sliderMoved(int)), this, SLOT(onBrushUIChange())); 37 | //connect(ui->paintWidget, SIGNAL(mouseMoveEvent()), this, SLOT(paintMouseMove())); 38 | //connect(ui->drawingArea, SIGNAL(mouseMoveEvent()), this, SLOT(paintMouseMove())); 39 | 40 | timer=new QTimer(this); 41 | connect(timer,SIGNAL(timeout()),SLOT(on_timer())); 42 | timer->start(500); 43 | 44 | jcw = NULL; 45 | 46 | 47 | } 48 | 49 | TopJCDialog::~TopJCDialog() 50 | { 51 | delete ui; 52 | } 53 | 54 | void TopJCDialog::paintWAt(int x, int y){ 55 | ui->paintWidget->paintAt(x,y); 56 | } 57 | 58 | 59 | void TopJCDialog::on_timer(){ 60 | 61 | std::vector *msges = mMsgque->getMsgList(); 62 | std::vector msgs = *msges; 63 | 64 | 65 | for(uint y=0; y tokenize(std::string msg){ 73 | std::istringstream iss(msg); 74 | std::vector tokens; 75 | copy(std::istream_iterator(iss), 76 | std::istream_iterator(), 77 | std::back_inserter >(tokens)); 78 | return tokens; 79 | } 80 | 81 | void TopJCDialog::handleExampleItem( RsExampleItem * item ) 82 | { 83 | std::string msg = item->getMessage(); 84 | std::cerr << item->PeerId() << " said: " << msg << std::endl; 85 | //msgque 86 | std::cerr << msg.substr(0,4) << std::endl; 87 | if (msg.substr(0,4).compare("DATA")==0){ 88 | //DATA mx=75 my=127 89 | // tokeniser from http://stackoverflow.com/questions/236129/how-to-split-a-string-in-c 90 | //std::istringstream iss(msg); 91 | std::cerr << "tokenising" << std::endl; 92 | std::vector tokens = tokenize(msg); 93 | /*copy(std::istream_iterator(iss), 94 | std::istream_iterator(), 95 | std::back_inserter >(tokens));*/ 96 | std::string xstr = tokens.at(1); 97 | int x = atoi(xstr.c_str()); 98 | std::string ystr = tokens.at(2); 99 | int y = atoi(ystr.c_str()); 100 | std::cerr << "CONVERTEDNUMS: " << x << y << std::endl; 101 | paintWAt(x,y); 102 | }else if (msg.substr(0,4).compare("BRSH")==0){ 103 | std::cerr << "tokenising" << std::endl; 104 | std::vector tokens = tokenize(msg); 105 | int w = atoi(tokens.at(1).c_str()); 106 | int r = atoi(tokens.at(2).c_str()); 107 | int g = atoi(tokens.at(3).c_str()); 108 | int b = atoi(tokens.at(4).c_str()); 109 | int a = atoi(tokens.at(5).c_str()); 110 | ui->paintWidget->color.setRgb(r,g,b,a); 111 | ui->paintWidget->penWidth=(w); 112 | 113 | ui->wSlider->setValue(w); 114 | ui->rSlider->setValue(r); 115 | ui->gSlider->setValue(g); 116 | ui->bSlider->setValue(b); 117 | ui->aSlider->setValue(a); 118 | QPalette pal = ui->previewCol->palette(); 119 | pal.setColor(ui->previewCol->backgroundRole(), ui->paintWidget->color); 120 | ui->previewCol->setPalette(pal); 121 | }else if (msg.substr(0,4).compare("INIT")==0){ 122 | addPeerItem(item->PeerId()); 123 | }else if (msg.substr(0,4).compare("CHAT")==0){ 124 | ui->chatWindow->append(item->PeerId().toStdString().data()); 125 | ui->chatWindow->append( rsPeers->getPeerName(item->PeerId()).c_str() ); 126 | ui->chatWindow->append(" says:"); 127 | msg = msg.erase(0,5); 128 | ui->chatWindow->append(msg.data()); 129 | ui->chatWindow->append(""); 130 | }else if (msg.substr(0,4).compare("JCGM")==0){ 131 | JumpingCubeWindow* jc = new JumpingCubeWindow(this); 132 | jc->myid = 0; 133 | std::string peerid = item->PeerId().toStdString(); 134 | jc->peerid = peerid; 135 | jc->show(); 136 | jcw = jc; 137 | connect(jc, SIGNAL(mClick(int, int)), this, SLOT(sendMClick(int, int))); 138 | }else if (msg.substr(0,4).compare("JCPR")==0){ 139 | std::vector tokens = tokenize(msg); 140 | std::string xstr = tokens.at(1); 141 | int x = atoi(xstr.c_str()); 142 | std::string ystr = tokens.at(2); 143 | int y = atoi(ystr.c_str()); 144 | std::cout << "CONVERTEDNUMS: " << x << y << std::endl; 145 | jcw->remoteClick(x,y); 146 | //emit incomingRemoteClick(2,2); 147 | }else{ 148 | addLogInfo("unknown message from:"); 149 | addLogInfo(item->PeerId().toStdString()); 150 | addLogInfo(item->getMessage()); 151 | } 152 | //item->RS_PKT_SUBTYPE 153 | } 154 | 155 | 156 | void TopJCDialog::paintMouseMove(QMouseEvent *event){ 157 | std::cout << "inpaintslot" << std::endl; 158 | int x = event->x(); 159 | int y = event->y(); 160 | std::cout << x; 161 | 162 | if (ui->onlinePeerView->currentItem() == NULL){ 163 | ui->loginfo->append("\nNothing selected, so returning \n"); 164 | return; 165 | } 166 | std::string peerid = ui->onlinePeerView->currentItem()->data(Qt::UserRole).toString().toStdString(); 167 | p3service->msgPeerXY(peerid, x,y); 168 | } 169 | 170 | void TopJCDialog::sendMClick(int x, int y){ 171 | std::cerr << "SENDING MESSAGE FROM CLICK"; 172 | std::string peerid = jcw->peerid;//#ui->onlinePeerView->currentItem()->text().toStdString(); 173 | p3service->msgPeerXYT(peerid, x,y,"JCPR"); 174 | } 175 | 176 | void TopJCDialog::onBrushUIChange() 177 | { 178 | std::cerr << "\nBrush Change\n\n"; 179 | int w = ui->wSlider->value(); 180 | int r = ui->rSlider->value(); 181 | int g = ui->gSlider->value(); 182 | int b = ui->bSlider->value(); 183 | int a = ui->aSlider->value(); 184 | ui->paintWidget->color.setRgb(r,g,b,a); 185 | ui->paintWidget->penWidth=(w); 186 | 187 | QPalette pal = ui->previewCol->palette(); 188 | pal.setColor(ui->previewCol->backgroundRole(), ui->paintWidget->color); 189 | ui->previewCol->setPalette(pal); 190 | 191 | if (ui->onlinePeerView->currentItem() == NULL){ 192 | ui->loginfo->append("\nNothing selected, so not sending brush \n"); 193 | return; 194 | } 195 | std::string peerid = ui->onlinePeerView->currentItem()->data(Qt::UserRole).toString().toStdString(); 196 | p3service->msgPeerBrush(peerid,w,r,g,b,a); 197 | 198 | } 199 | 200 | void TopJCDialog::okClicked(){ 201 | std::cout << "OKClicked" <loginfo->append("\n OK Clicked! \n"); 203 | ui->chatWindow->append( "you say:"); 204 | ui->chatWindow->append(ui->inputText->toPlainText().toStdString().data()); 205 | //p3service = p3servicein; 206 | //std::cout << "ITEM SELECTED IS: " << ui->onlinePeerView << std::endl; 207 | //ui->loginfo->append(ui->onlinePeerView->item(0)->text()); 208 | if (ui->onlinePeerView->currentItem() == NULL){ 209 | ui->chatWindow->append("To no-one - select a peer on the left"); 210 | ui->loginfo->append("Nothing selected, so returning"); 211 | ui->chatWindow->append(""); 212 | return; 213 | } 214 | ui->loginfo->append(ui->onlinePeerView->currentItem()->text()); 215 | //p3service->testit(); 216 | std::string msg = "CHAT "; 217 | msg.append(ui->inputText->toPlainText().toStdString()); 218 | ui->chatWindow->append(""); 219 | std::string peerid = ui->onlinePeerView->currentItem()->data(Qt::UserRole).toString().toStdString(); 220 | p3service->msgPeer(peerid, msg); 221 | } 222 | 223 | 224 | void TopJCDialog::playClicked(){ 225 | std::cout << "Play Clicked" <loginfo->append("Play Clicked!"); 227 | if (ui->onlinePeerView->currentItem() == NULL){ 228 | ui->chatWindow->append("select a peer on the left"); 229 | ui->loginfo->append("Nothing selected, so returning"); 230 | ui->chatWindow->append(""); 231 | return; 232 | } 233 | JumpingCubeWindow* jc = new JumpingCubeWindow(this); 234 | jc->myid = 1; 235 | std::string peerid = ui->onlinePeerView->currentItem()->data(Qt::UserRole).toString().toStdString(); 236 | jc->peerid = peerid; 237 | jc->show(); 238 | jcw = jc; 239 | connect(jc, SIGNAL(mClick(int, int)), this, SLOT(sendMClick(int, int))); 240 | 241 | 242 | std::string msg = "JCGM please"; 243 | p3service->msgPeer(peerid, msg); 244 | } 245 | 246 | 247 | //QPushButton TopJCDialog::getOKButton(){ 248 | // return ui->okButton; 249 | //std::cerr << "passing: " << info.data() << std::endl; 250 | //ui->loginfo->append(info.data()); 251 | //} 252 | 253 | bool TopJCDialog::addLogInfo(const std::string &info){ 254 | std::cerr << "passing: " << info.data() << std::endl; 255 | ui->loginfo->append(info.data()); 256 | return true; 257 | } 258 | bool TopJCDialog::addPeerItem(const RsPeerId &info){ 259 | //std::cerr << "passing: " << info.data() << std::endl; 260 | //ui->loginfo->append(info.data()); 261 | QListWidgetItem *peer = new QListWidgetItem(); 262 | peer->setData(Qt::UserRole, info.toStdString().data()); 263 | //std::cout << "\n\n\n\n\npeername\n" << rsPeers->getPeerName(info.data()).c_str() << "\n\n\n\n\n\n"; 264 | peer->setText(rsPeers->getPeerName(info).c_str()); 265 | ui->onlinePeerView->addItem(peer); 266 | //ui->onlinePeerView->addItem(info.data()); 267 | //if (ui->onlinePeerView->count() == 1)ui->onlinePeerView->selectAll(); 268 | return true; 269 | } 270 | 271 | 272 | -------------------------------------------------------------------------------- /lang/JumpingCube_da.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | 9 | 10 | 11 | 12 | Cancel 13 | Annuller 14 | 15 | 16 | 17 | Add a new Link 18 | 19 | 20 | 21 | 22 | Title: 23 | 24 | 25 | 26 | 27 | Url: 28 | 29 | 30 | 31 | 32 | Add Anonymous Link 33 | 34 | 35 | 36 | 37 | +2 Great! 38 | 39 | 40 | 41 | 42 | +1 Good 43 | 44 | 45 | 46 | 47 | 0 Okay 48 | 49 | 50 | 51 | 52 | -1 Sux 53 | 54 | 55 | 56 | 57 | -2 Bad Link 58 | 59 | 60 | 61 | 62 | Add Link to Cloud 63 | 64 | 65 | 66 | 67 | New Link 68 | 69 | 70 | 71 | 72 | Add Link Failure 73 | 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | 87 | 88 | 89 | 90 | LinksCloud 91 | 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | 100 | 101 | 102 | 103 | Score 104 | 105 | 106 | 107 | 108 | Peer / Link 109 | 110 | 111 | 112 | 113 | Sort by 114 | 115 | 116 | 117 | 118 | Combo 119 | 120 | 121 | 122 | 123 | Time 124 | 125 | 126 | 127 | 128 | Ranking 129 | 130 | 131 | 132 | 133 | In last 134 | 135 | 136 | 137 | 138 | Month 139 | 140 | 141 | 142 | 143 | Week 144 | 145 | 146 | 147 | 148 | Day 149 | 150 | 151 | 152 | 153 | From 154 | 155 | 156 | 157 | 158 | All Peers 159 | 160 | 161 | 162 | 163 | Own Links 164 | 165 | 166 | 167 | 168 | Show 169 | 170 | 171 | 172 | 173 | Top 100 174 | 175 | 176 | 177 | 178 | 101-200 179 | 180 | 181 | 182 | 183 | 201-300 184 | 185 | 186 | 187 | 188 | 301-400 189 | 190 | 191 | 192 | 193 | 401-500 194 | 195 | 196 | 197 | 198 | Bottom 100 199 | 200 | 201 | 202 | 203 | Link: 204 | 205 | 206 | 207 | 208 | Add Anonymous Link 209 | 210 | 211 | 212 | 213 | Add Link/Comment 214 | 215 | 216 | 217 | 218 | Title: 219 | 220 | 221 | 222 | 223 | Score: 224 | 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | 231 | 232 | 233 | 234 | 235 | +1 Good 236 | 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | 255 | 256 | 257 | 258 | Url: 259 | 260 | 261 | 262 | 263 | Links Cloud 264 | 265 | 266 | 267 | 268 | Add new link 269 | 270 | 271 | 272 | 273 | Share Link Anonymously 274 | 275 | 276 | 277 | 278 | Vote on Link 279 | 280 | 281 | 282 | 283 | Download 284 | 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | 297 | 298 | 299 | 300 | Missing Link Data 301 | 302 | 303 | 304 | 305 | Missing Comment 306 | 307 | 308 | 309 | 310 | Link Title Not Changed 311 | 312 | 313 | 314 | 315 | Do you want to continue? 316 | 317 | 318 | 319 | 320 | Expand 321 | 322 | 323 | 324 | 325 | Hide 326 | 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_ja_JP.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | 9 | 10 | 11 | 12 | Cancel 13 | キャンセル 14 | 15 | 16 | 17 | Add a new Link 18 | 19 | 20 | 21 | 22 | Title: 23 | 24 | 25 | 26 | 27 | Url: 28 | 29 | 30 | 31 | 32 | Add Anonymous Link 33 | 34 | 35 | 36 | 37 | +2 Great! 38 | 39 | 40 | 41 | 42 | +1 Good 43 | 44 | 45 | 46 | 47 | 0 Okay 48 | 49 | 50 | 51 | 52 | -1 Sux 53 | 54 | 55 | 56 | 57 | -2 Bad Link 58 | 59 | 60 | 61 | 62 | Add Link to Cloud 63 | 64 | 65 | 66 | 67 | New Link 68 | 69 | 70 | 71 | 72 | Add Link Failure 73 | 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | 87 | 88 | 89 | 90 | LinksCloud 91 | 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | 100 | 101 | 102 | 103 | Score 104 | 105 | 106 | 107 | 108 | Peer / Link 109 | 110 | 111 | 112 | 113 | Sort by 114 | 115 | 116 | 117 | 118 | Combo 119 | 120 | 121 | 122 | 123 | Time 124 | 125 | 126 | 127 | 128 | Ranking 129 | 130 | 131 | 132 | 133 | In last 134 | 135 | 136 | 137 | 138 | Month 139 | 140 | 141 | 142 | 143 | Week 144 | 145 | 146 | 147 | 148 | Day 149 | 150 | 151 | 152 | 153 | From 154 | 155 | 156 | 157 | 158 | All Peers 159 | 160 | 161 | 162 | 163 | Own Links 164 | 165 | 166 | 167 | 168 | Show 169 | 170 | 171 | 172 | 173 | Top 100 174 | 175 | 176 | 177 | 178 | 101-200 179 | 180 | 181 | 182 | 183 | 201-300 184 | 185 | 186 | 187 | 188 | 301-400 189 | 190 | 191 | 192 | 193 | 401-500 194 | 195 | 196 | 197 | 198 | Bottom 100 199 | 200 | 201 | 202 | 203 | Link: 204 | 205 | 206 | 207 | 208 | Add Anonymous Link 209 | 210 | 211 | 212 | 213 | Add Link/Comment 214 | 215 | 216 | 217 | 218 | Title: 219 | 220 | 221 | 222 | 223 | Score: 224 | 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | 231 | 232 | 233 | 234 | 235 | +1 Good 236 | 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | 255 | 256 | 257 | 258 | Url: 259 | 260 | 261 | 262 | 263 | Links Cloud 264 | 265 | 266 | 267 | 268 | Add new link 269 | 270 | 271 | 272 | 273 | Share Link Anonymously 274 | 275 | 276 | 277 | 278 | Vote on Link 279 | 280 | 281 | 282 | 283 | Download 284 | ダウンロード 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | 297 | 298 | 299 | 300 | Missing Link Data 301 | 302 | 303 | 304 | 305 | Missing Comment 306 | 307 | 308 | 309 | 310 | Link Title Not Changed 311 | 312 | 313 | 314 | 315 | Do you want to continue? 316 | 317 | 318 | 319 | 320 | Expand 321 | 展開 322 | 323 | 324 | 325 | Hide 326 | 非表示 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_zh_CN.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | 添加链接 9 | 10 | 11 | 12 | Cancel 13 | 取消 14 | 15 | 16 | 17 | Add a new Link 18 | 添加一个新的链接 19 | 20 | 21 | 22 | Title: 23 | 标题: 24 | 25 | 26 | 27 | Url: 28 | 网址: 29 | 30 | 31 | 32 | Add Anonymous Link 33 | 添加匿名链接 34 | 35 | 36 | 37 | +2 Great! 38 | +2 真棒! 39 | 40 | 41 | 42 | +1 Good 43 | +1 不错 44 | 45 | 46 | 47 | 0 Okay 48 | 0 还行 49 | 50 | 51 | 52 | -1 Sux 53 | -1 差 54 | 55 | 56 | 57 | -2 Bad Link 58 | -2 很差 59 | 60 | 61 | 62 | Add Link to Cloud 63 | 添加链接到云端 64 | 65 | 66 | 67 | New Link 68 | 新链接 69 | 70 | 71 | 72 | Add Link Failure 73 | 添加链接失败 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | 丢失链接和(或)标题 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | 这个插件提供一些缓存链接,和一个给这些链接评分的投票系统。 87 | 88 | 89 | 90 | LinksCloud 91 | LinksCloud 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | 标题/评论 100 | 101 | 102 | 103 | Score 104 | 得分 105 | 106 | 107 | 108 | Peer / Link 109 | 节点 / 链接 110 | 111 | 112 | 113 | Sort by 114 | 排序方式 115 | 116 | 117 | 118 | Combo 119 | 综合 120 | 121 | 122 | 123 | Time 124 | 时间 125 | 126 | 127 | 128 | Ranking 129 | 排行 130 | 131 | 132 | 133 | In last 134 | 前一 135 | 136 | 137 | 138 | Month 139 | 个月 140 | 141 | 142 | 143 | Week 144 | 145 | 146 | 147 | 148 | Day 149 | 150 | 151 | 152 | 153 | From 154 | 来自 155 | 156 | 157 | 158 | All Peers 159 | 所有节点 160 | 161 | 162 | 163 | Own Links 164 | 自己的链接 165 | 166 | 167 | 168 | Show 169 | 显示 170 | 171 | 172 | 173 | Top 100 174 | 前100 175 | 176 | 177 | 178 | 101-200 179 | 101-200 180 | 181 | 182 | 183 | 201-300 184 | 201-300 185 | 186 | 187 | 188 | 301-400 189 | 301-400 190 | 191 | 192 | 193 | 401-500 194 | 401-500 195 | 196 | 197 | 198 | Bottom 100 199 | 后100 200 | 201 | 202 | 203 | Link: 204 | 链接: 205 | 206 | 207 | 208 | Add Anonymous Link 209 | 添加匿名链接 210 | 211 | 212 | 213 | Add Link/Comment 214 | 添加链接/评论 215 | 216 | 217 | 218 | Title: 219 | 标题: 220 | 221 | 222 | 223 | Score: 224 | 得分: 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | +2 真棒! 231 | 232 | 233 | 234 | 235 | +1 Good 236 | +1 不错 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 0 还行 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | -1 烂 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | -2 很差 255 | 256 | 257 | 258 | Url: 259 | 网址: 260 | 261 | 262 | 263 | Links Cloud 264 | Links Cloud 265 | 266 | 267 | 268 | Add new link 269 | 添加新链接 270 | 271 | 272 | 273 | Share Link Anonymously 274 | 匿名分享链接 275 | 276 | 277 | 278 | Vote on Link 279 | 为链接投票 280 | 281 | 282 | 283 | Download 284 | 下载 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | 添加链接失败 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | 丢失链接和(或)标题 297 | 298 | 299 | 300 | Missing Link Data 301 | 丢失链接信息 302 | 303 | 304 | 305 | Missing Comment 306 | 丢失评论 307 | 308 | 309 | 310 | Link Title Not Changed 311 | 链接名未改变 312 | 313 | 314 | 315 | Do you want to continue? 316 | 想要继续? 317 | 318 | 319 | 320 | Expand 321 | 展开 322 | 323 | 324 | 325 | Hide 326 | 隐藏 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_ru.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | 9 | 10 | 11 | 12 | Cancel 13 | Отмена 14 | 15 | 16 | 17 | Add a new Link 18 | 19 | 20 | 21 | 22 | Title: 23 | Заголовок: 24 | 25 | 26 | 27 | Url: 28 | 29 | 30 | 31 | 32 | Add Anonymous Link 33 | 34 | 35 | 36 | 37 | +2 Great! 38 | 39 | 40 | 41 | 42 | +1 Good 43 | 44 | 45 | 46 | 47 | 0 Okay 48 | 49 | 50 | 51 | 52 | -1 Sux 53 | 54 | 55 | 56 | 57 | -2 Bad Link 58 | 59 | 60 | 61 | 62 | Add Link to Cloud 63 | 64 | 65 | 66 | 67 | New Link 68 | 69 | 70 | 71 | 72 | Add Link Failure 73 | 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | 87 | 88 | 89 | 90 | LinksCloud 91 | 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | Название / комментарий 100 | 101 | 102 | 103 | Score 104 | 105 | 106 | 107 | 108 | Peer / Link 109 | 110 | 111 | 112 | 113 | Sort by 114 | Сортировать по 115 | 116 | 117 | 118 | Combo 119 | 120 | 121 | 122 | 123 | Time 124 | 125 | 126 | 127 | 128 | Ranking 129 | 130 | 131 | 132 | 133 | In last 134 | 135 | 136 | 137 | 138 | Month 139 | 140 | 141 | 142 | 143 | Week 144 | 145 | 146 | 147 | 148 | Day 149 | 150 | 151 | 152 | 153 | From 154 | От 155 | 156 | 157 | 158 | All Peers 159 | 160 | 161 | 162 | 163 | Own Links 164 | 165 | 166 | 167 | 168 | Show 169 | Показать 170 | 171 | 172 | 173 | Top 100 174 | 175 | 176 | 177 | 178 | 101-200 179 | 180 | 181 | 182 | 183 | 201-300 184 | 185 | 186 | 187 | 188 | 301-400 189 | 190 | 191 | 192 | 193 | 401-500 194 | 195 | 196 | 197 | 198 | Bottom 100 199 | 200 | 201 | 202 | 203 | Link: 204 | 205 | 206 | 207 | 208 | Add Anonymous Link 209 | 210 | 211 | 212 | 213 | Add Link/Comment 214 | 215 | 216 | 217 | 218 | Title: 219 | Заголовок: 220 | 221 | 222 | 223 | Score: 224 | 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | 231 | 232 | 233 | 234 | 235 | +1 Good 236 | 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | 255 | 256 | 257 | 258 | Url: 259 | 260 | 261 | 262 | 263 | Links Cloud 264 | 265 | 266 | 267 | 268 | Add new link 269 | 270 | 271 | 272 | 273 | Share Link Anonymously 274 | 275 | 276 | 277 | 278 | Vote on Link 279 | 280 | 281 | 282 | 283 | Download 284 | Скачать 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | 297 | 298 | 299 | 300 | Missing Link Data 301 | 302 | 303 | 304 | 305 | Missing Comment 306 | 307 | 308 | 309 | 310 | Link Title Not Changed 311 | 312 | 313 | 314 | 315 | Do you want to continue? 316 | 317 | 318 | 319 | 320 | Expand 321 | Раскрыть 322 | 323 | 324 | 325 | Hide 326 | Скрыть 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_ko.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | 링크 추가 9 | 10 | 11 | 12 | Cancel 13 | 취소 14 | 15 | 16 | 17 | Add a new Link 18 | 새 링크 추가 19 | 20 | 21 | 22 | Title: 23 | 제목: 24 | 25 | 26 | 27 | Url: 28 | 주소: 29 | 30 | 31 | 32 | Add Anonymous Link 33 | 익명 링크 추가 34 | 35 | 36 | 37 | +2 Great! 38 | +2 멋져요 :D 39 | 40 | 41 | 42 | +1 Good 43 | +1 좋아요 :) 44 | 45 | 46 | 47 | 0 Okay 48 | 0 괜찮아요 : | 49 | 50 | 51 | 52 | -1 Sux 53 | -1 어우 :S 54 | 55 | 56 | 57 | -2 Bad Link 58 | -2 후졌어요 :( 59 | 60 | 61 | 62 | Add Link to Cloud 63 | 클라우드에 링크 추가 64 | 65 | 66 | 67 | New Link 68 | 새 링크 69 | 70 | 71 | 72 | Add Link Failure 73 | 잘못된 링크 추가 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | 링크 또는 제목이 빠졌습니다 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | 이 플러그인은 캐시에 저장한 링크 모음과, 링크를 알리기 위한 투표 시스템을 제공합니다. 87 | 88 | 89 | 90 | LinksCloud 91 | 링크클라우드 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | 제목 / 답글 100 | 101 | 102 | 103 | Score 104 | 점수 105 | 106 | 107 | 108 | Peer / Link 109 | 피어 / 링크 110 | 111 | 112 | 113 | Sort by 114 | 정렬순 115 | 116 | 117 | 118 | Combo 119 | 조합 120 | 121 | 122 | 123 | Time 124 | 시간 125 | 126 | 127 | 128 | Ranking 129 | 순위 130 | 131 | 132 | 133 | In last 134 | 최신 135 | 136 | 137 | 138 | Month 139 | 140 | 141 | 142 | 143 | Week 144 | 145 | 146 | 147 | 148 | Day 149 | 150 | 151 | 152 | 153 | From 154 | 보낸이 155 | 156 | 157 | 158 | All Peers 159 | 모든 피어 160 | 161 | 162 | 163 | Own Links 164 | 소유한 링크 165 | 166 | 167 | 168 | Show 169 | 표시 170 | 171 | 172 | 173 | Top 100 174 | 상위 100 175 | 176 | 177 | 178 | 101-200 179 | 101-200 180 | 181 | 182 | 183 | 201-300 184 | 201-300 185 | 186 | 187 | 188 | 301-400 189 | 301-400 190 | 191 | 192 | 193 | 401-500 194 | 401-500 195 | 196 | 197 | 198 | Bottom 100 199 | 하위 100 200 | 201 | 202 | 203 | Link: 204 | 링크: 205 | 206 | 207 | 208 | Add Anonymous Link 209 | 익명 링크 추가 210 | 211 | 212 | 213 | Add Link/Comment 214 | 링크/답글 추가 215 | 216 | 217 | 218 | Title: 219 | 제목: 220 | 221 | 222 | 223 | Score: 224 | 점수: 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | +2 멋져요 :D 231 | 232 | 233 | 234 | 235 | +1 Good 236 | +1 좋아요 :) 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 0 괜찮아요 : | 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | -1 어우 :S 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | -2 후졌어요 :( 255 | 256 | 257 | 258 | Url: 259 | 주소: 260 | 261 | 262 | 263 | Links Cloud 264 | 링크 클라우드 265 | 266 | 267 | 268 | Add new link 269 | 새 링크 추가 270 | 271 | 272 | 273 | Share Link Anonymously 274 | 익명으로 링크 공유 275 | 276 | 277 | 278 | Vote on Link 279 | 링크에 투표 280 | 281 | 282 | 283 | Download 284 | 다운로드 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | 잘못된 링크 추가 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | 링크 또는 제목이 빠졌습니다 297 | 298 | 299 | 300 | Missing Link Data 301 | 링크 데이터가 빠졌습니다 302 | 303 | 304 | 305 | Missing Comment 306 | 답글이 빠졌습니다 307 | 308 | 309 | 310 | Link Title Not Changed 311 | 링크 제목이 바뀌지 않았습니다 312 | 313 | 314 | 315 | Do you want to continue? 316 | 계속하시겠습니까? 317 | 318 | 319 | 320 | Expand 321 | 확장 322 | 323 | 324 | 325 | Hide 326 | 숨김 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_pl.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | Dodaj Link 9 | 10 | 11 | 12 | Cancel 13 | Anuluj 14 | 15 | 16 | 17 | Add a new Link 18 | Dodaj nowy Link 19 | 20 | 21 | 22 | Title: 23 | Tytuł: 24 | 25 | 26 | 27 | Url: 28 | Url: 29 | 30 | 31 | 32 | Add Anonymous Link 33 | Dodaj Link Anonimowy 34 | 35 | 36 | 37 | +2 Great! 38 | +2 Świetne! 39 | 40 | 41 | 42 | +1 Good 43 | +1 Dobre 44 | 45 | 46 | 47 | 0 Okay 48 | 0 W porządku 49 | 50 | 51 | 52 | -1 Sux 53 | -1 Ssie 54 | 55 | 56 | 57 | -2 Bad Link 58 | -2 Zły Link 59 | 60 | 61 | 62 | Add Link to Cloud 63 | Dodaj Link do Chmury 64 | 65 | 66 | 67 | New Link 68 | Nowy Link 69 | 70 | 71 | 72 | Add Link Failure 73 | 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | Brakujący Link i/lub Tytuł 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | 87 | 88 | 89 | 90 | LinksCloud 91 | 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | 100 | 101 | 102 | 103 | Score 104 | 105 | 106 | 107 | 108 | Peer / Link 109 | 110 | 111 | 112 | 113 | Sort by 114 | 115 | 116 | 117 | 118 | Combo 119 | 120 | 121 | 122 | 123 | Time 124 | Czas 125 | 126 | 127 | 128 | Ranking 129 | Ranking 130 | 131 | 132 | 133 | In last 134 | W ostatnim 135 | 136 | 137 | 138 | Month 139 | Miesiącu 140 | 141 | 142 | 143 | Week 144 | Tygodniu 145 | 146 | 147 | 148 | Day 149 | Dniu 150 | 151 | 152 | 153 | From 154 | Od 155 | 156 | 157 | 158 | All Peers 159 | 160 | 161 | 162 | 163 | Own Links 164 | Własne Linki 165 | 166 | 167 | 168 | Show 169 | Pokaż 170 | 171 | 172 | 173 | Top 100 174 | Top 100 175 | 176 | 177 | 178 | 101-200 179 | 101-200 180 | 181 | 182 | 183 | 201-300 184 | 201-300 185 | 186 | 187 | 188 | 301-400 189 | 301-400 190 | 191 | 192 | 193 | 401-500 194 | 401-500 195 | 196 | 197 | 198 | Bottom 100 199 | 200 | 201 | 202 | 203 | Link: 204 | Link: 205 | 206 | 207 | 208 | Add Anonymous Link 209 | Dodaj Link Anonimowy 210 | 211 | 212 | 213 | Add Link/Comment 214 | 215 | 216 | 217 | 218 | Title: 219 | Tytuł: 220 | 221 | 222 | 223 | Score: 224 | 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | +2 Świetne! 231 | 232 | 233 | 234 | 235 | +1 Good 236 | +1 Dobre 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 0 W porządku 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | -1 Ssie 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | -2 Zły Link 255 | 256 | 257 | 258 | Url: 259 | Url: 260 | 261 | 262 | 263 | Links Cloud 264 | 265 | 266 | 267 | 268 | Add new link 269 | Dodaj nowy link 270 | 271 | 272 | 273 | Share Link Anonymously 274 | Udostępnij Link Anonimowo 275 | 276 | 277 | 278 | Vote on Link 279 | Głosuj na Link 280 | 281 | 282 | 283 | Download 284 | Pobierz 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | Brakujący Link i/lub Tytuł 297 | 298 | 299 | 300 | Missing Link Data 301 | 302 | 303 | 304 | 305 | Missing Comment 306 | Brakujący Komentarz 307 | 308 | 309 | 310 | Link Title Not Changed 311 | 312 | 313 | 314 | 315 | Do you want to continue? 316 | Czy chcesz kontynuować? 317 | 318 | 319 | 320 | Expand 321 | Rozwiń 322 | 323 | 324 | 325 | Hide 326 | Ukryj 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_sv.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | Lägg till länk 9 | 10 | 11 | 12 | Cancel 13 | Avbryt 14 | 15 | 16 | 17 | Add a new Link 18 | Lägg till ny länk 19 | 20 | 21 | 22 | Title: 23 | Titel: 24 | 25 | 26 | 27 | Url: 28 | URL: 29 | 30 | 31 | 32 | Add Anonymous Link 33 | Lägg till länk anonymt 34 | 35 | 36 | 37 | +2 Great! 38 | +2 Toppen! 39 | 40 | 41 | 42 | +1 Good 43 | +1 Bra 44 | 45 | 46 | 47 | 0 Okay 48 | 0 Okay 49 | 50 | 51 | 52 | -1 Sux 53 | -1 Suger 54 | 55 | 56 | 57 | -2 Bad Link 58 | -2 Dålig länk 59 | 60 | 61 | 62 | Add Link to Cloud 63 | Lägg till länk i molnet 64 | 65 | 66 | 67 | New Link 68 | Ny länk 69 | 70 | 71 | 72 | Add Link Failure 73 | Kunde inte lägga till länk 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | Länk och/eller titel saknas 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | Det här tilläggsprogrammet tillför en uppsättning cachade länkar, och ett poängsystem för att klassificera dem. 87 | 88 | 89 | 90 | LinksCloud 91 | LänkMoln 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | Titel / Kommentar 100 | 101 | 102 | 103 | Score 104 | Poäng 105 | 106 | 107 | 108 | Peer / Link 109 | Användare / Länk 110 | 111 | 112 | 113 | Sort by 114 | Sortera enligt 115 | 116 | 117 | 118 | Combo 119 | Kombo 120 | 121 | 122 | 123 | Time 124 | Tid 125 | 126 | 127 | 128 | Ranking 129 | Ranking 130 | 131 | 132 | 133 | In last 134 | Sist in 135 | 136 | 137 | 138 | Month 139 | Månad 140 | 141 | 142 | 143 | Week 144 | Vecka 145 | 146 | 147 | 148 | Day 149 | Dag 150 | 151 | 152 | 153 | From 154 | Från 155 | 156 | 157 | 158 | All Peers 159 | Alla användare 160 | 161 | 162 | 163 | Own Links 164 | Egna länkar 165 | 166 | 167 | 168 | Show 169 | Visa 170 | 171 | 172 | 173 | Top 100 174 | Topp 100 175 | 176 | 177 | 178 | 101-200 179 | 101-200 180 | 181 | 182 | 183 | 201-300 184 | 201-300 185 | 186 | 187 | 188 | 301-400 189 | 301-400 190 | 191 | 192 | 193 | 401-500 194 | 401-500 195 | 196 | 197 | 198 | Bottom 100 199 | 100 från botten 200 | 201 | 202 | 203 | Link: 204 | Länk: 205 | 206 | 207 | 208 | Add Anonymous Link 209 | Lägg till länk anonymt 210 | 211 | 212 | 213 | Add Link/Comment 214 | Lägg till länk/kommentar 215 | 216 | 217 | 218 | Title: 219 | Titel: 220 | 221 | 222 | 223 | Score: 224 | Poäng: 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | +2 Toppen! 231 | 232 | 233 | 234 | 235 | +1 Good 236 | +1 Bra 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 0 Okay 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | -1 Suger 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | -2 Dålig länk 255 | 256 | 257 | 258 | Url: 259 | URL: 260 | 261 | 262 | 263 | Links Cloud 264 | Länkmoln 265 | 266 | 267 | 268 | Add new link 269 | Lägg till ny länk 270 | 271 | 272 | 273 | Share Link Anonymously 274 | Dela länk anonymt 275 | 276 | 277 | 278 | Vote on Link 279 | Rösta på länk 280 | 281 | 282 | 283 | Download 284 | Ladda ner 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | Kunde inte lägga till länk 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | Länk och/eller titel saknas 297 | 298 | 299 | 300 | Missing Link Data 301 | Länkdata saknas 302 | 303 | 304 | 305 | Missing Comment 306 | Kommentar saknas 307 | 308 | 309 | 310 | Link Title Not Changed 311 | Länktitel ej ändrad 312 | 313 | 314 | 315 | Do you want to continue? 316 | Vill du fortsätta? 317 | 318 | 319 | 320 | Expand 321 | Visa 322 | 323 | 324 | 325 | Hide 326 | Dölj 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_cs.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | Přidat odkaz 9 | 10 | 11 | 12 | Cancel 13 | Zrušit 14 | 15 | 16 | 17 | Add a new Link 18 | Přidat nový odkaz 19 | 20 | 21 | 22 | Title: 23 | Titulek 24 | 25 | 26 | 27 | Url: 28 | Url: 29 | 30 | 31 | 32 | Add Anonymous Link 33 | Přidat anonymní odkaz 34 | 35 | 36 | 37 | +2 Great! 38 | +2 Výborný 39 | 40 | 41 | 42 | +1 Good 43 | +1 Dobrý 44 | 45 | 46 | 47 | 0 Okay 48 | 0 OK 49 | 50 | 51 | 52 | -1 Sux 53 | -1 Špatný 54 | 55 | 56 | 57 | -2 Bad Link 58 | -2 Špatný odkaz 59 | 60 | 61 | 62 | Add Link to Cloud 63 | Přidat odkaz do Cloudu 64 | 65 | 66 | 67 | New Link 68 | Nový odkaz 69 | 70 | 71 | 72 | Add Link Failure 73 | Přidání odkazu selhalo 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | Chybí odkaz nebo titulek 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | Tento zásuvný modul poskytuje sadu mezipaměti odkazů, a hlasovací systém na jejich podporu 87 | 88 | 89 | 90 | LinksCloud 91 | LinksCloud 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | Titulek / Komentáře 100 | 101 | 102 | 103 | Score 104 | Skóre 105 | 106 | 107 | 108 | Peer / Link 109 | Peer / Odkaz 110 | 111 | 112 | 113 | Sort by 114 | Seřadit podle 115 | 116 | 117 | 118 | Combo 119 | Dvojité 120 | 121 | 122 | 123 | Time 124 | Čas 125 | 126 | 127 | 128 | Ranking 129 | Žebříček 130 | 131 | 132 | 133 | In last 134 | Jako poslední 135 | 136 | 137 | 138 | Month 139 | Měsíc 140 | 141 | 142 | 143 | Week 144 | Týden 145 | 146 | 147 | 148 | Day 149 | Den 150 | 151 | 152 | 153 | From 154 | Od 155 | 156 | 157 | 158 | All Peers 159 | Všechny peery 160 | 161 | 162 | 163 | Own Links 164 | Naše odkazy 165 | 166 | 167 | 168 | Show 169 | Zobrazit 170 | 171 | 172 | 173 | Top 100 174 | Top 100 175 | 176 | 177 | 178 | 101-200 179 | 101-200 180 | 181 | 182 | 183 | 201-300 184 | 201-300 185 | 186 | 187 | 188 | 301-400 189 | 301-400 190 | 191 | 192 | 193 | 401-500 194 | 401-500 195 | 196 | 197 | 198 | Bottom 100 199 | Spodní 100 200 | 201 | 202 | 203 | Link: 204 | Odkaz: 205 | 206 | 207 | 208 | Add Anonymous Link 209 | Přidat anonymní odkaz 210 | 211 | 212 | 213 | Add Link/Comment 214 | Přidat odkaz / komentář 215 | 216 | 217 | 218 | Title: 219 | Titulek: 220 | 221 | 222 | 223 | Score: 224 | Skóre: 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | +2 Výborný 231 | 232 | 233 | 234 | 235 | +1 Good 236 | +1 Dobrý 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 0 OK 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | -1 Špatný 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | -2 Špatný odkaz 255 | 256 | 257 | 258 | Url: 259 | Url: 260 | 261 | 262 | 263 | Links Cloud 264 | Odkazový Cloud 265 | 266 | 267 | 268 | Add new link 269 | Přidat nový odkaz 270 | 271 | 272 | 273 | Share Link Anonymously 274 | Sdílet odkaz anonymně 275 | 276 | 277 | 278 | Vote on Link 279 | Volte na odkaze 280 | 281 | 282 | 283 | Download 284 | Stáhnout 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | Přidání odkazu selhalo 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | Chybí odkaz nebo titulek 297 | 298 | 299 | 300 | Missing Link Data 301 | Chybějí odkazová data 302 | 303 | 304 | 305 | Missing Comment 306 | Chybějící komentář 307 | 308 | 309 | 310 | Link Title Not Changed 311 | Nebyl zadán titulek odkazu 312 | 313 | 314 | 315 | Do you want to continue? 316 | Chcete pokračovat? 317 | 318 | 319 | 320 | Expand 321 | Rozbalit 322 | 323 | 324 | 325 | Hide 326 | Skrýt 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_nl.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | Voeg een Link toe 9 | 10 | 11 | 12 | Cancel 13 | Annuleren 14 | 15 | 16 | 17 | Add a new Link 18 | Voeg een nieuwe Link toe 19 | 20 | 21 | 22 | Title: 23 | Titel: 24 | 25 | 26 | 27 | Url: 28 | Url: 29 | 30 | 31 | 32 | Add Anonymous Link 33 | Voeg een Anonieme Link toe 34 | 35 | 36 | 37 | +2 Great! 38 | +2 Geweldig! 39 | 40 | 41 | 42 | +1 Good 43 | +1 Goed 44 | 45 | 46 | 47 | 0 Okay 48 | 0 Oke 49 | 50 | 51 | 52 | -1 Sux 53 | -1 Slecht 54 | 55 | 56 | 57 | -2 Bad Link 58 | -2 Slechte Link 59 | 60 | 61 | 62 | Add Link to Cloud 63 | Voeg link toe aan de Cloud 64 | 65 | 66 | 67 | New Link 68 | Nieuwe Link 69 | 70 | 71 | 72 | Add Link Failure 73 | Link toevoegen mislukt 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | Ontbrekende Link en/of Titel 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | Deze plugin geeft u een set van gecachte links en een stem systeem om die te promoten 87 | 88 | 89 | 90 | LinksCloud 91 | LinksCloud 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | Titel / Opmerkingen 100 | 101 | 102 | 103 | Score 104 | Score 105 | 106 | 107 | 108 | Peer / Link 109 | Verbinding / Link 110 | 111 | 112 | 113 | Sort by 114 | Sorteer op 115 | 116 | 117 | 118 | Combo 119 | Combo 120 | 121 | 122 | 123 | Time 124 | Tijd 125 | 126 | 127 | 128 | Ranking 129 | Stand 130 | 131 | 132 | 133 | In last 134 | In last 135 | 136 | 137 | 138 | Month 139 | Maand 140 | 141 | 142 | 143 | Week 144 | Week 145 | 146 | 147 | 148 | Day 149 | Dag 150 | 151 | 152 | 153 | From 154 | Van 155 | 156 | 157 | 158 | All Peers 159 | Alle Verbindingen 160 | 161 | 162 | 163 | Own Links 164 | Links eigenaar 165 | 166 | 167 | 168 | Show 169 | Toon 170 | 171 | 172 | 173 | Top 100 174 | Top 100 175 | 176 | 177 | 178 | 101-200 179 | 101-200 180 | 181 | 182 | 183 | 201-300 184 | 201-300 185 | 186 | 187 | 188 | 301-400 189 | 301-400 190 | 191 | 192 | 193 | 401-500 194 | 401-500 195 | 196 | 197 | 198 | Bottom 100 199 | Onderste 100 200 | 201 | 202 | 203 | Link: 204 | Link: 205 | 206 | 207 | 208 | Add Anonymous Link 209 | Voeg een anonieme Link toe 210 | 211 | 212 | 213 | Add Link/Comment 214 | Voeg Link/Opmerking toe 215 | 216 | 217 | 218 | Title: 219 | Titel: 220 | 221 | 222 | 223 | Score: 224 | Score: 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | +2 Geweldig! 231 | 232 | 233 | 234 | 235 | +1 Good 236 | +1 Goed 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 0 Oke 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | -1 Slecht 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | -2 Slechte Link 255 | 256 | 257 | 258 | Url: 259 | Url: 260 | 261 | 262 | 263 | Links Cloud 264 | Links Cloud 265 | 266 | 267 | 268 | Add new link 269 | Voeg een nieuwe Link toe 270 | 271 | 272 | 273 | Share Link Anonymously 274 | Deel Link Anoniem 275 | 276 | 277 | 278 | Vote on Link 279 | Stem op Link 280 | 281 | 282 | 283 | Download 284 | Download 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | Link toevoegen mislukt 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | Ontbrekende Link en/of Titel 297 | 298 | 299 | 300 | Missing Link Data 301 | Ontbrekende Link data 302 | 303 | 304 | 305 | Missing Comment 306 | Ontbrekende Opmerkingen 307 | 308 | 309 | 310 | Link Title Not Changed 311 | Link titel niet veranderd 312 | 313 | 314 | 315 | Do you want to continue? 316 | Wilt u doorgaan? 317 | 318 | 319 | 320 | Expand 321 | Uitbreiden 322 | 323 | 324 | 325 | Hide 326 | Verberg 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_fi.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | Lisää linkki 9 | 10 | 11 | 12 | Cancel 13 | Peru 14 | 15 | 16 | 17 | Add a new Link 18 | Lisää uusi linkki 19 | 20 | 21 | 22 | Title: 23 | Otsikko: 24 | 25 | 26 | 27 | Url: 28 | Url: 29 | 30 | 31 | 32 | Add Anonymous Link 33 | Lisää nimetön linkki 34 | 35 | 36 | 37 | +2 Great! 38 | +2 Loistava! 39 | 40 | 41 | 42 | +1 Good 43 | +1 Hyvä 44 | 45 | 46 | 47 | 0 Okay 48 | 0 Kohtalainen 49 | 50 | 51 | 52 | -1 Sux 53 | -1 Huono 54 | 55 | 56 | 57 | -2 Bad Link 58 | -2 Kelvoton linkki 59 | 60 | 61 | 62 | Add Link to Cloud 63 | Lisää linkki pilveen 64 | 65 | 66 | 67 | New Link 68 | Uusi linkki 69 | 70 | 71 | 72 | Add Link Failure 73 | Vika lisättäessä linkkiä 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | Puuttuva linkki ja/tai otsikko 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | Tämä lisäosa näyttää joukon välimuistissa olevia linkkejä sekä äänestysjärjestelmän. 87 | 88 | 89 | 90 | LinksCloud 91 | LinksCloud 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | Otsikko / Kommentti 100 | 101 | 102 | 103 | Score 104 | Pisteet 105 | 106 | 107 | 108 | Peer / Link 109 | Vertainen / Linkki 110 | 111 | 112 | 113 | Sort by 114 | Järjestä 115 | 116 | 117 | 118 | Combo 119 | Yhdistelmä 120 | 121 | 122 | 123 | Time 124 | Aika 125 | 126 | 127 | 128 | Ranking 129 | Sijoitus 130 | 131 | 132 | 133 | In last 134 | Viime 135 | 136 | 137 | 138 | Month 139 | kuussa 140 | 141 | 142 | 143 | Week 144 | viikolla 145 | 146 | 147 | 148 | Day 149 | päivänä 150 | 151 | 152 | 153 | From 154 | Lähettäjä 155 | 156 | 157 | 158 | All Peers 159 | Kaikki vertaiset 160 | 161 | 162 | 163 | Own Links 164 | Omat linkit 165 | 166 | 167 | 168 | Show 169 | Näytä 170 | 171 | 172 | 173 | Top 100 174 | Ylimmät 100 175 | 176 | 177 | 178 | 101-200 179 | 101-200 180 | 181 | 182 | 183 | 201-300 184 | 201-300 185 | 186 | 187 | 188 | 301-400 189 | 301-400 190 | 191 | 192 | 193 | 401-500 194 | 401-500 195 | 196 | 197 | 198 | Bottom 100 199 | Alimmat 100 200 | 201 | 202 | 203 | Link: 204 | Linkki: 205 | 206 | 207 | 208 | Add Anonymous Link 209 | Lisää nimetön linkki 210 | 211 | 212 | 213 | Add Link/Comment 214 | Lisää linkki/kommentti 215 | 216 | 217 | 218 | Title: 219 | Otsikko: 220 | 221 | 222 | 223 | Score: 224 | Pisteet: 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | +2 Loistava! 231 | 232 | 233 | 234 | 235 | +1 Good 236 | +1 Hyvä 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 0 Kohtalainen 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | -1 Huono 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | -2 Kelvoton linkki 255 | 256 | 257 | 258 | Url: 259 | Url: 260 | 261 | 262 | 263 | Links Cloud 264 | Links Cloud 265 | 266 | 267 | 268 | Add new link 269 | Lisää uusi linkki 270 | 271 | 272 | 273 | Share Link Anonymously 274 | Jaa linkki nimettömänä 275 | 276 | 277 | 278 | Vote on Link 279 | Äänestä linkkiä 280 | 281 | 282 | 283 | Download 284 | Lataa 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | Vika lisättäessä linkkiä 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | Puuttuva linkki ja/tai otsikko 297 | 298 | 299 | 300 | Missing Link Data 301 | Linkin tiedot puuttuvat 302 | 303 | 304 | 305 | Missing Comment 306 | Kommentti puuttuu 307 | 308 | 309 | 310 | Link Title Not Changed 311 | Linkin otsikkoa ei muutettu 312 | 313 | 314 | 315 | Do you want to continue? 316 | Haluatko jatkaa? 317 | 318 | 319 | 320 | Expand 321 | Laajenna 322 | 323 | 324 | 325 | Hide 326 | Piilota 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_fr.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | Ajouter un lien 9 | 10 | 11 | 12 | Cancel 13 | Annuler 14 | 15 | 16 | 17 | Add a new Link 18 | Ajouter un nouveau lien 19 | 20 | 21 | 22 | Title: 23 | Titre : 24 | 25 | 26 | 27 | Url: 28 | Url : 29 | 30 | 31 | 32 | Add Anonymous Link 33 | Ajouter un lien anonyme 34 | 35 | 36 | 37 | +2 Great! 38 | +2 Parfait ! 39 | 40 | 41 | 42 | +1 Good 43 | +1 Bien 44 | 45 | 46 | 47 | 0 Okay 48 | 0 Ok 49 | 50 | 51 | 52 | -1 Sux 53 | -1 Bof 54 | 55 | 56 | 57 | -2 Bad Link 58 | -2 Mauvais lien 59 | 60 | 61 | 62 | Add Link to Cloud 63 | Ajouter lien au nuage 64 | 65 | 66 | 67 | New Link 68 | Nouveau lien 69 | 70 | 71 | 72 | Add Link Failure 73 | Échec ajout de lien 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | Lien et/ou tiitre manquant 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | Cette extension fournit un ensemble de liens en cache, et un système de vote pour les promouvoir. 87 | 88 | 89 | 90 | LinksCloud 91 | LinksCloud 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | Titre / Commentaire 100 | 101 | 102 | 103 | Score 104 | Score 105 | 106 | 107 | 108 | Peer / Link 109 | Contact / Lien 110 | 111 | 112 | 113 | Sort by 114 | Trier par 115 | 116 | 117 | 118 | Combo 119 | Combiné 120 | 121 | 122 | 123 | Time 124 | Temps 125 | 126 | 127 | 128 | Ranking 129 | Classement 130 | 131 | 132 | 133 | In last 134 | Par 135 | 136 | 137 | 138 | Month 139 | Mois 140 | 141 | 142 | 143 | Week 144 | Semaine 145 | 146 | 147 | 148 | Day 149 | Jour 150 | 151 | 152 | 153 | From 154 | De 155 | 156 | 157 | 158 | All Peers 159 | Tous les contacts 160 | 161 | 162 | 163 | Own Links 164 | Propre liens 165 | 166 | 167 | 168 | Show 169 | Montrer 170 | 171 | 172 | 173 | Top 100 174 | Top 100 175 | 176 | 177 | 178 | 101-200 179 | 101-200 180 | 181 | 182 | 183 | 201-300 184 | 201-300 185 | 186 | 187 | 188 | 301-400 189 | 301-400 190 | 191 | 192 | 193 | 401-500 194 | 401-500 195 | 196 | 197 | 198 | Bottom 100 199 | 100 derniers 200 | 201 | 202 | 203 | Link: 204 | Lien : 205 | 206 | 207 | 208 | Add Anonymous Link 209 | Ajouter un lien anonyme 210 | 211 | 212 | 213 | Add Link/Comment 214 | Ajouter Lien/Commentaire 215 | 216 | 217 | 218 | Title: 219 | Titre : 220 | 221 | 222 | 223 | Score: 224 | Score : 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | +2 Parfait ! 231 | 232 | 233 | 234 | 235 | +1 Good 236 | +1 Bien 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 0 Ok 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | -1 Bof 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | -2 Mauvais lien 255 | 256 | 257 | 258 | Url: 259 | Url : 260 | 261 | 262 | 263 | Links Cloud 264 | Links Cloud 265 | 266 | 267 | 268 | Add new link 269 | Ajouter un nouveau lien 270 | 271 | 272 | 273 | Share Link Anonymously 274 | Partager le lien anonymement 275 | 276 | 277 | 278 | Vote on Link 279 | Vote sur le lien 280 | 281 | 282 | 283 | Download 284 | Télécharger 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | Échec de l'ajout du lien 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | Lien et/ou titre manquant(s) 297 | 298 | 299 | 300 | Missing Link Data 301 | Data Link manquant 302 | 303 | 304 | 305 | Missing Comment 306 | Commentaire manquant 307 | 308 | 309 | 310 | Link Title Not Changed 311 | Le titre du lien n'a pas été changé 312 | 313 | 314 | 315 | Do you want to continue? 316 | Voulez-vous continuer ? 317 | 318 | 319 | 320 | Expand 321 | Montrer 322 | 323 | 324 | 325 | Hide 326 | Cacher 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_de.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | Link hinzufügen 9 | 10 | 11 | 12 | Cancel 13 | Abbrechen 14 | 15 | 16 | 17 | Add a new Link 18 | Neuen Link hinzufügen 19 | 20 | 21 | 22 | Title: 23 | Titel: 24 | 25 | 26 | 27 | Url: 28 | Url: 29 | 30 | 31 | 32 | Add Anonymous Link 33 | Anonym hinzufügen 34 | 35 | 36 | 37 | +2 Great! 38 | +2 Großartig! 39 | 40 | 41 | 42 | +1 Good 43 | +1 Gut 44 | 45 | 46 | 47 | 0 Okay 48 | 0 In Ordnung 49 | 50 | 51 | 52 | -1 Sux 53 | -1 Nervt 54 | 55 | 56 | 57 | -2 Bad Link 58 | -2 Schlechter Link 59 | 60 | 61 | 62 | Add Link to Cloud 63 | Link zur Wolke hinzufügen 64 | 65 | 66 | 67 | New Link 68 | Neuer Link 69 | 70 | 71 | 72 | Add Link Failure 73 | Link hinzufügen fehlgeschlagen 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | Titel und/oder Url fehlt 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | Dieses Plug-in stellt Links und ein Wahlsystem zur Verfügung, um sie zu verbreiten. 87 | 88 | 89 | 90 | LinksCloud 91 | Verknüpfungswolke 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | Titel / Kommentar 100 | 101 | 102 | 103 | Score 104 | Punkte 105 | 106 | 107 | 108 | Peer / Link 109 | Nachbar / Link 110 | 111 | 112 | 113 | Sort by 114 | Sortiere nach 115 | 116 | 117 | 118 | Combo 119 | Kombiniert 120 | 121 | 122 | 123 | Time 124 | Zeit 125 | 126 | 127 | 128 | Ranking 129 | Platzierung 130 | 131 | 132 | 133 | In last 134 | Im letzten 135 | 136 | 137 | 138 | Month 139 | Monat 140 | 141 | 142 | 143 | Week 144 | Woche 145 | 146 | 147 | 148 | Day 149 | Tag 150 | 151 | 152 | 153 | From 154 | Von 155 | 156 | 157 | 158 | All Peers 159 | Alle Nachbarn 160 | 161 | 162 | 163 | Own Links 164 | Eigene Links 165 | 166 | 167 | 168 | Show 169 | Zeige 170 | 171 | 172 | 173 | Top 100 174 | Top 100 175 | 176 | 177 | 178 | 101-200 179 | 101-200 180 | 181 | 182 | 183 | 201-300 184 | 201-300 185 | 186 | 187 | 188 | 301-400 189 | 301-400 190 | 191 | 192 | 193 | 401-500 194 | 401-500 195 | 196 | 197 | 198 | Bottom 100 199 | Letzten 100 200 | 201 | 202 | 203 | Link: 204 | Link: 205 | 206 | 207 | 208 | Add Anonymous Link 209 | Anonym hinzufügen 210 | 211 | 212 | 213 | Add Link/Comment 214 | Link/Kommentar hinzufügen 215 | 216 | 217 | 218 | Title: 219 | Titel: 220 | 221 | 222 | 223 | Score: 224 | Punkte: 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | +2 Großartig! 231 | 232 | 233 | 234 | 235 | +1 Good 236 | +1 Gut 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 0 In Ordnung 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | -1 Nervt 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | -2 Schlechter Link 255 | 256 | 257 | 258 | Url: 259 | Url: 260 | 261 | 262 | 263 | Links Cloud 264 | Verknüpfungswolke 265 | 266 | 267 | 268 | Add new link 269 | Neuen Link hinzufügen 270 | 271 | 272 | 273 | Share Link Anonymously 274 | Link anonym verteilen 275 | 276 | 277 | 278 | Vote on Link 279 | Stimme für Link 280 | 281 | 282 | 283 | Download 284 | Herunterladen 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | Link hinzufügen fehlgeschlagen 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | Fehlender Link und/oder Titel 297 | 298 | 299 | 300 | Missing Link Data 301 | Fehlende Linkdaten 302 | 303 | 304 | 305 | Missing Comment 306 | Fehlender Kommentar 307 | 308 | 309 | 310 | Link Title Not Changed 311 | Linktitel nicht geändert 312 | 313 | 314 | 315 | Do you want to continue? 316 | Willst du fortfahren? 317 | 318 | 319 | 320 | Expand 321 | Erweitern 322 | 323 | 324 | 325 | Hide 326 | Verbergen 327 | 328 | 329 | -------------------------------------------------------------------------------- /lang/JumpingCube_tr.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | AddLinksDialog 4 | 5 | 6 | 7 | Add Link 8 | Bağlantı Ekleyin 9 | 10 | 11 | 12 | Cancel 13 | İptal 14 | 15 | 16 | 17 | Add a new Link 18 | Yeni bir bağlantı ekleyin 19 | 20 | 21 | 22 | Title: 23 | Başlık: 24 | 25 | 26 | 27 | Url: 28 | İnternet adresi: 29 | 30 | 31 | 32 | Add Anonymous Link 33 | Anonim Bağlantı Ekleyin 34 | 35 | 36 | 37 | +2 Great! 38 | +2 Harika! 39 | 40 | 41 | 42 | +1 Good 43 | +1 İyi 44 | 45 | 46 | 47 | 0 Okay 48 | 0 İdare eder 49 | 50 | 51 | 52 | -1 Sux 53 | -1 Yaramaz 54 | 55 | 56 | 57 | -2 Bad Link 58 | -2 Kötü bağlantı 59 | 60 | 61 | 62 | Add Link to Cloud 63 | Bağlantıyı Buluta Ekleyin 64 | 65 | 66 | 67 | New Link 68 | Bağlantı Ekleyin 69 | 70 | 71 | 72 | Add Link Failure 73 | Bağlantı Eklenemedi 74 | 75 | 76 | 77 | Missing Link and/or Title 78 | Eksik Bağlantı ya da Başlık 79 | 80 | 81 | 82 | LinksCloudPlugin 83 | 84 | 85 | This plugin provides a set of cached links, and a voting system to promote them. 86 | Bu uyumlu ek, ön belleğe alınmış bağlantıları görüntüler ve oylanmasını sağlar. 87 | 88 | 89 | 90 | LinksCloud 91 | BağlantıBulutu 92 | 93 | 94 | 95 | LinksDialog 96 | 97 | 98 | Title / Comment 99 | Başlık / Yorum 100 | 101 | 102 | 103 | Score 104 | Not 105 | 106 | 107 | 108 | Peer / Link 109 | Bağlantı 110 | 111 | 112 | 113 | Sort by 114 | Sıralama 115 | 116 | 117 | 118 | Combo 119 | Bir Arada 120 | 121 | 122 | 123 | Time 124 | Zaman 125 | 126 | 127 | 128 | Ranking 129 | Derece 130 | 131 | 132 | 133 | In last 134 | Son 135 | 136 | 137 | 138 | Month 139 | Ay 140 | 141 | 142 | 143 | Week 144 | Hafta 145 | 146 | 147 | 148 | Day 149 | Gün 150 | 151 | 152 | 153 | From 154 | Kimden 155 | 156 | 157 | 158 | All Peers 159 | Tüm Bağlantılar 160 | 161 | 162 | 163 | Own Links 164 | Kendi Bağlantılarınız 165 | 166 | 167 | 168 | Show 169 | Görüntüleyin 170 | 171 | 172 | 173 | Top 100 174 | Üst 100 175 | 176 | 177 | 178 | 101-200 179 | 101-200 180 | 181 | 182 | 183 | 201-300 184 | 201-300 185 | 186 | 187 | 188 | 301-400 189 | 301-400 190 | 191 | 192 | 193 | 401-500 194 | 401-500 195 | 196 | 197 | 198 | Bottom 100 199 | Alt 100 200 | 201 | 202 | 203 | Link: 204 | Bağlantı: 205 | 206 | 207 | 208 | Add Anonymous Link 209 | Anonim Bağlantı Ekleyin 210 | 211 | 212 | 213 | Add Link/Comment 214 | Bağlantı/Yorum Ekleyin 215 | 216 | 217 | 218 | Title: 219 | Başlık: 220 | 221 | 222 | 223 | Score: 224 | Not: 225 | 226 | 227 | 228 | 229 | +2 Great! 230 | +2 Harika! 231 | 232 | 233 | 234 | 235 | +1 Good 236 | +1 İyi 237 | 238 | 239 | 240 | 241 | 0 Okay 242 | 0 İdare eder 243 | 244 | 245 | 246 | 247 | -1 Sux 248 | -1 Yaramaz 249 | 250 | 251 | 252 | 253 | -2 Bad Link 254 | -2 Kötü Bağlantı 255 | 256 | 257 | 258 | Url: 259 | İnternet Adresi: 260 | 261 | 262 | 263 | Links Cloud 264 | Bağlantı Bulutu 265 | 266 | 267 | 268 | Add new link 269 | Bağlantı ekleyin 270 | 271 | 272 | 273 | Share Link Anonymously 274 | Bağlantıyı Anonim Olarak Paylaşın 275 | 276 | 277 | 278 | Vote on Link 279 | Bağlantıyı Oylayın 280 | 281 | 282 | 283 | Download 284 | İndirin 285 | 286 | 287 | 288 | 289 | 290 | Add Link Failure 291 | Bağlantı Eklenemedi 292 | 293 | 294 | 295 | Missing Link and/or Title 296 | Eksik Bağlantı ya da Başlık 297 | 298 | 299 | 300 | Missing Link Data 301 | Eksik Bağlantı Verisi 302 | 303 | 304 | 305 | Missing Comment 306 | Eksik Yorum 307 | 308 | 309 | 310 | Link Title Not Changed 311 | Bağlantı Başlığı Değişmedi 312 | 313 | 314 | 315 | Do you want to continue? 316 | Devam etmek istiyor musunuz? 317 | 318 | 319 | 320 | Expand 321 | Genişletin 322 | 323 | 324 | 325 | Hide 326 | Gizleyin 327 | 328 | 329 | --------------------------------------------------------------------------------