From 629bf7de1b6d97a4f300376286598be637472a44 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 27 Aug 2008 21:04:42 +0000 Subject: Merge branch 'sucrose-0.82' of git+ssh://dev.laptop.org/git/sugar into sucrose-0.82 --- diff --git a/po/ht.po b/po/ht.po index 86a54e2..e3d2500 100644 --- a/po/ht.po +++ b/po/ht.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-06-21 00:30-0400\n" -"PO-Revision-Date: 2008-03-12 09:14-0400\n" -"Last-Translator: Jude Augusma \n" +"POT-Creation-Date: 2008-08-19 17:12-0400\n" +"PO-Revision-Date: 2008-08-18 16:47-0400\n" +"Last-Translator: lacrete \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,36 +17,36 @@ msgstr "" #: ../src/intro/intro.py:65 ../src/controlpanel/view/aboutme.py:100 msgid "Name:" -msgstr "Non" +msgstr "Non:" -#: ../src/intro/intro.py:94 +#: ../src/intro/intro.py:97 msgid "Click to change color:" -msgstr "Klike pou chanje koulè" +msgstr "Klike pou chanje koulè:" -#: ../src/intro/intro.py:145 +#: ../src/intro/intro.py:148 msgid "Back" msgstr "Retounen" -#: ../src/intro/intro.py:159 ../src/controlpanel/toolbar.py:61 +#: ../src/intro/intro.py:162 ../src/controlpanel/toolbar.py:61 msgid "Done" msgstr "Fini" -#: ../src/intro/intro.py:162 +#: ../src/intro/intro.py:165 msgid "Next" -msgstr "Prochen" +msgstr "Pwochen" #: ../src/view/BuddyMenu.py:58 msgid "Remove friend" -msgstr "Retire zanmi" +msgstr "Retire zanmi " #: ../src/view/BuddyMenu.py:61 msgid "Make friend" -msgstr "Fè zanmi" +msgstr "Fè zanmi " #: ../src/view/BuddyMenu.py:91 #, python-format msgid "Invite to %s" -msgstr "Envite sou %s" +msgstr "Envite nan %s" #: ../src/view/clipboardmenu.py:48 msgid "Remove" @@ -54,73 +54,119 @@ msgstr "Retire" #: ../src/view/clipboardmenu.py:53 ../src/view/clipboardmenu.py:79 msgid "Open" -msgstr "Louvri" +msgstr "Ouvri" #. self._stop_item = MenuItem(_('Stop download'), 'stock-close') #. TODO: Implement stopping downloads #. self._stop_item.connect('activate', self._stop_item_activate_cb) #. self.append_menu_item(self._stop_item) -#: ../src/view/clipboardmenu.py:63 +#: ../src/view/clipboardmenu.py:63 ../src/view/home/HomeBox.py:87 msgid "Keep" -msgstr "" +msgstr "Kenbe" #: ../src/view/clipboardmenu.py:84 msgid "Open with" -msgstr "" +msgstr "Ouvri ak" -#: ../src/view/clipboardmenu.py:212 +#: ../src/view/clipboardmenu.py:216 #, python-format msgid "Clipboard object: %s." msgstr "Objè ekritwa: %s." #: ../src/hardware/keydialog.py:150 msgid "Key Type:" -msgstr "Tip kle:" +msgstr "kalite kle:" #: ../src/hardware/keydialog.py:170 msgid "Authentication Type:" -msgstr "Tip otantifikasyon:" +msgstr "Kalite otantifikasyon:" #: ../src/hardware/keydialog.py:251 msgid "Encryption Type:" -msgstr "Tip kod sekrè" +msgstr "Kalite kod sekrè" + +#: ../src/hardware/schoolserver.py:17 +msgid "Cannot obtain data needed for registration." +msgstr "" + +#: ../src/hardware/schoolserver.py:31 +msgid "Cannot connect to the server." +msgstr "" -#: ../src/view/Shell.py:262 +#: ../src/hardware/schoolserver.py:36 +msgid "The server could not complete the request." +msgstr "" + +#: ../src/view/Shell.py:240 msgid "Screenshot" msgstr "Ekran projektwa" -#: ../src/view/home/HomeBox.py:147 -msgid "List view" -msgstr "" +#: ../src/view/home/HomeBox.py:81 +msgid "Confirm erase" +msgstr "Konfime sa ou efase a" -#: ../src/view/home/HomeBox.py:148 -msgid "L" +#: ../src/view/home/HomeBox.py:83 +#, python-format +msgid "Confirm erase: Do you want to permanently erase %s?" +msgstr "Konfime sa ou efase a: ou vle retire'l net %s?" + +#: ../src/view/home/HomeBox.py:90 ../src/view/palettes.py:120 +msgid "Erase" +msgstr "Efase" + +#: ../src/view/home/HomeBox.py:120 +msgid "Software Update" msgstr "" -#: ../src/view/home/HomeBox.py:204 -msgid "Favorites view" +#: ../src/view/home/HomeBox.py:121 +msgid "Update your activities to ensure compatibility with your new software" msgstr "" -#: ../src/view/home/HomeBox.py:205 -msgid "R" +#: ../src/view/home/HomeBox.py:125 ../src/controlpanel/toolbar.py:115 +msgid "Cancel" +msgstr "Anile" + +#: ../src/view/home/HomeBox.py:127 ../src/controlpanel/gui.py:275 +msgid "Later" +msgstr "Pi ta" + +#: ../src/view/home/HomeBox.py:130 +msgid "Check now" msgstr "" +#: ../src/view/home/HomeBox.py:266 +msgid "List view" +msgstr "Gade lis" + +#: ../src/view/home/HomeBox.py:267 +msgid "2" +msgstr "2" + +#: ../src/view/home/HomeBox.py:325 +msgid "Favorites view" +msgstr "Fas prefere" + +#: ../src/view/home/HomeBox.py:326 +msgid "1" +msgstr "1" + +# TRANS: label for the freeform layout in the favorites view #. TRANS: label for the freeform layout in the favorites view -#: ../src/view/home/HomeBox.py:211 +#: ../src/view/home/HomeBox.py:334 msgid "Freeform" -msgstr "" +msgstr "Fòm lib" +# TRANS: label for the ring layout in the favorites view #. TRANS: label for the ring layout in the favorites view -#: ../src/view/home/HomeBox.py:218 +#: ../src/view/home/HomeBox.py:341 msgid "Ring" -msgstr "" +msgstr "Zanno" #: ../src/view/home/MeshBox.py:97 msgid "Connect" -msgstr "" +msgstr "Konekte" #: ../src/view/home/MeshBox.py:106 -#, fuzzy msgid "Disconnect" msgstr "Dekonekte" @@ -129,101 +175,99 @@ msgstr "Dekonekte" # method for a device either (for various reasons) so this doesn't # have a good mapping #: ../src/view/home/MeshBox.py:118 -#, fuzzy msgid "Disconnecting..." -msgstr "Dekonekte..." +msgstr "An dekoneksyon..." # Only show disconnect when there's a mesh device, because mesh takes # priority over the normal wireless device. NM doesn't have a "disconnect" # method for a device either (for various reasons) so this doesn't # have a good mapping #: ../src/view/home/MeshBox.py:152 -#, fuzzy msgid "Connecting..." -msgstr "Dekonekte..." +msgstr "An koneksyon..." #. TODO: show the channel number #: ../src/view/home/MeshBox.py:159 msgid "Connected" -msgstr "" +msgstr "Konekte" -#: ../src/view/home/MeshBox.py:211 ../src/view/devices/network/mesh.py:38 -#: ../src/view/devices/network/mesh.py:65 -#: ../src/view/devices/network/mesh.py:69 +#: ../src/view/home/MeshBox.py:211 ../src/view/devices/network/mesh.py:41 +#: ../src/view/devices/network/mesh.py:68 +#: ../src/view/devices/network/mesh.py:72 msgid "Mesh Network" -msgstr "Rezo " +msgstr "Rezo maye" # Only show disconnect when there's a mesh device, because mesh takes # priority over the normal wireless device. NM doesn't have a "disconnect" # method for a device either (for various reasons) so this doesn't # have a good mapping -#: ../src/view/home/MeshBox.py:214 ../src/view/devices/network/wireless.py:116 -#: ../src/view/devices/network/mesh.py:86 +#: ../src/view/home/MeshBox.py:214 ../src/view/devices/network/wireless.py:119 +#: ../src/view/devices/network/mesh.py:89 msgid "Disconnect..." msgstr "Dekonekte..." -#: ../src/view/home/MeshBox.py:302 ../src/view/palettes.py:60 +#: ../src/view/home/MeshBox.py:302 ../src/view/palettes.py:61 msgid "Resume" msgstr "Repwann" -#: ../src/view/home/MeshBox.py:307 ../src/view/frame/activitiestray.py:219 +#: ../src/view/home/MeshBox.py:307 ../src/view/frame/activitiestray.py:205 msgid "Join" -msgstr "Rankontre" +msgstr "Rejwen'n" -#: ../src/view/devices/battery.py:42 +#: ../src/view/devices/battery.py:45 msgid "My Battery" -msgstr "" +msgstr "Batri-m" -#: ../src/view/devices/battery.py:111 +#: ../src/view/devices/battery.py:114 msgid "Charging" -msgstr "" +msgstr "Ap chaje" -#: ../src/view/devices/battery.py:114 +#: ../src/view/devices/battery.py:117 msgid "Very little power remaining" -msgstr "" +msgstr "Yon ti kras chaj ki rete" -#: ../src/view/devices/battery.py:120 +#: ../src/view/devices/battery.py:123 #, python-format msgid "%(hour)d:%(min).2d remaining" -msgstr "" +msgstr "%(hour)d:%(min).2d ki rete" -#: ../src/view/devices/battery.py:124 +#: ../src/view/devices/battery.py:127 msgid "Charged" -msgstr "" +msgstr "Fin chaje" -#: ../src/view/devices/speaker.py:40 +#: ../src/view/devices/speaker.py:44 msgid "My Speakers" -msgstr "" +msgstr "Opalè m' yo" -#: ../src/view/devices/speaker.py:104 +#: ../src/view/devices/speaker.py:119 msgid "Unmute" -msgstr "" +msgstr "Aktive son an" -#: ../src/view/devices/speaker.py:107 +#: ../src/view/devices/speaker.py:122 msgid "Mute" -msgstr "" +msgstr "Dezaktive son an" -#: ../src/view/devices/network/wireless.py:64 +#: ../src/view/devices/network/wireless.py:67 msgid "Disconnected" msgstr "Dekonekte" -#: ../src/view/devices/network/wireless.py:134 +#: ../src/view/devices/network/wireless.py:137 msgid "Channel" msgstr "Chanèl" -#: ../src/view/frame/zoomtoolbar.py:34 +#: ../src/view/frame/zoomtoolbar.py:37 msgid "Neighborhood" msgstr "Vwazinaj" -#: ../src/view/frame/zoomtoolbar.py:36 +#: ../src/view/frame/zoomtoolbar.py:39 msgid "Group" msgstr "Gwoup" -#: ../src/view/frame/zoomtoolbar.py:38 +#: ../src/view/frame/zoomtoolbar.py:41 msgid "Home" msgstr "Lakay" -#: ../src/view/frame/zoomtoolbar.py:40 +#: ../src/view/frame/zoomtoolbar.py:43 msgid "Activity" msgstr "Aktivite" @@ -233,6 +277,8 @@ msgid "" "sugar-control-panel: WARNING, found more than one option with the same name: " "%s module: %r" msgstr "" +"Sugar-control-panel: Atansyon, yo jwenn plizyè opsyon ak yon menm non: %s " +"modil: %r" #: ../src/controlpanel/cmd.py:28 #, python-format @@ -245,6 +291,7 @@ msgid "sugar-control-panel: %s" msgstr "Sugar-kontwòl-panèl: %s" #: ../src/controlpanel/cmd.py:33 +#, fuzzy msgid "" "Usage: sugar-control-panel [ option ] key [ args ... ] \n" " Control for the sugar environment. \n" @@ -254,81 +301,74 @@ msgid "" " -h key show information about this key \n" " -g key get the current value of the key \n" " -s key set the current value for the key \n" +" -c key clear the current value for the key \n" " " msgstr "" "Sèvi: Sugar-Kontwòl-panèl [opsyon] kle [args ... ]\n" -" Kontwòl pou anvironman sugar. \n" -" opsyon: \n" -" -h montre mesaj èd sa epi soti \n" -" -l fè lis tout opsyon disponib yo \n" -" -h kle montre enfòmasyon sou kle sa \n" -" -g kle pwan valè kouran kle-a \n" -" -s kle fikse valè Kouran pou kle-a \n" -" " - -#: ../src/controlpanel/cmd.py:45 +"\tKontwòl pou anvironman sugar. \n" +"\topsyon: \n" +"\t-h\tmontre mesaj èd sa epi soti \n" +"\t-l\tfè lis tout opsyon disponib yo \n" +"\t-h kle\tmontre enfòmasyon sou kle sa \n" +"\t-g kle\tpwan valè kouran kle-a \n" +"\t-s kle\tfikse valè Kouran pou kle-a \n" +"\t" + +#: ../src/controlpanel/cmd.py:46 msgid "To apply your changes you have to restart sugar.\n" msgstr "Pou aplike chanjman ou yo ou bezwen reyinisyalize program nan.\n" -#: ../src/controlpanel/toolbar.py:115 -msgid "Cancel" -msgstr "" - -#: ../src/controlpanel/toolbar.py:121 +#: ../src/controlpanel/toolbar.py:121 ../src/view/home/favoritesview.py:296 msgid "Ok" -msgstr "" +msgstr "Ok" -#: ../src/controlpanel/sectionview.py:34 ../src/controlpanel/gui.py:250 +#: ../src/controlpanel/sectionview.py:42 ../src/controlpanel/gui.py:267 msgid "Changes require restart" -msgstr "" +msgstr "Redemare pou aplike chanjman yo" -#: ../src/controlpanel/gui.py:249 +#: ../src/controlpanel/gui.py:266 msgid "Warning" -msgstr "" +msgstr "Avètisman" -#: ../src/controlpanel/gui.py:253 +#: ../src/controlpanel/gui.py:270 msgid "Cancel changes" -msgstr "" - -#: ../src/controlpanel/gui.py:257 -msgid "Later" -msgstr "" +msgstr "Anile chanjman yo" -#: ../src/controlpanel/gui.py:261 +#: ../src/controlpanel/gui.py:279 msgid "Restart now" -msgstr "" +msgstr "Redemare kounye a menm" #: ../src/controlpanel/model/aboutme.py:44 msgid "You must enter a name." -msgstr "" +msgstr "Ou dwe rantre yon non." -#: ../src/controlpanel/model/aboutme.py:67 +#: ../src/controlpanel/model/aboutme.py:69 #, python-format msgid "stroke: color=%s hue=%s" -msgstr "" +msgstr "stroke:_ koulè=%s hue=%s" -#: ../src/controlpanel/model/aboutme.py:70 +#: ../src/controlpanel/model/aboutme.py:72 #, python-format msgid "stroke: %s" -msgstr "" +msgstr "stroke:_ %s" -#: ../src/controlpanel/model/aboutme.py:72 +#: ../src/controlpanel/model/aboutme.py:74 #, python-format msgid "fill: color=%s hue=%s" -msgstr "" +msgstr "fill:_ koulè=%s hue=%s" -#: ../src/controlpanel/model/aboutme.py:74 +#: ../src/controlpanel/model/aboutme.py:76 #, python-format msgid "fill: %s" -msgstr "" +msgstr "fill: _ %s" -#: ../src/controlpanel/model/aboutme.py:85 +#: ../src/controlpanel/model/aboutme.py:87 msgid "Error in specified color modifiers." -msgstr "Erè nan modifikatè endike koulè yo" +msgstr "Erè nan modifikatè koulè espesifye yo" -#: ../src/controlpanel/model/aboutme.py:88 +#: ../src/controlpanel/model/aboutme.py:90 msgid "Error in specified colors." -msgstr "Erè nan koulè endike yo" +msgstr "Erè nan koulè espesifye yo" #: ../src/controlpanel/model/aboutxo.py:24 msgid "Not available" @@ -340,12 +380,11 @@ msgstr "Erè lè lokal pa egziste." #: ../src/controlpanel/model/frame.py:38 ../src/controlpanel/model/frame.py:60 msgid "Value must be an integer." -msgstr "" +msgstr "Valè-a dwe yon antye." #: ../src/controlpanel/model/language.py:28 -#, fuzzy msgid "Could not access ~/.i18n. Create standard settings." -msgstr "Pa ka rantre %s. Kreye reglaj estanda" +msgstr "Aksè enposib ~/.i18n. Kreye paramèt pa defo yo" #: ../src/controlpanel/model/language.py:104 #, python-format @@ -355,11 +394,11 @@ msgstr "Lang pou kod=%s pa ka tèmine." #: ../src/controlpanel/model/language.py:121 #, python-format msgid "Sorry I do not speak '%s'." -msgstr "Mwen regrèt mwen pa pale '%s'." +msgstr "Dezole mwen pa pale '%s'." #: ../src/controlpanel/model/network.py:48 msgid "You must enter a server." -msgstr "" +msgstr "Ou dwe endike yon sèvè." #: ../src/controlpanel/model/network.py:63 msgid "State is unknown." @@ -367,179 +406,224 @@ msgstr "Yo pa konnen eta l'" #: ../src/controlpanel/model/network.py:83 msgid "Error in specified radio argument use on/off." -msgstr "Erè nan itilizasyon limen/etenn agiman radio endike-a. " +msgstr "Agiman radio espesifye-a pa kòrèk sèvi limen/etenn. " + +#: ../src/controlpanel/model/power.py:57 +msgid "Error in automatic pm argument, use on/off." +msgstr "Agiman pou jere alimantasyon otomatik la pa kòrèk sèvi ak limen/etenn" + +#: ../src/controlpanel/model/power.py:86 +msgid "Error in extreme pm argument, use on/off." +msgstr "Agiman pou gere alimantasyon ak dèyo pa kòrèk sèvi ak limen/etenn" #: ../src/controlpanel/view/aboutme.py:32 msgid "About Me" -msgstr "" +msgstr "Enfòmasyon pèsonèl" #: ../src/controlpanel/view/aboutme.py:134 -#, fuzzy msgid "Click to change your color:" msgstr "Klike pou chanje koulè" #: ../src/controlpanel/view/aboutxo.py:26 msgid "About my XO" -msgstr "" +msgstr "Enfòmasyon sou XO mwen" #: ../src/controlpanel/view/aboutxo.py:47 msgid "Identity" -msgstr "" +msgstr "Idantite" #: ../src/controlpanel/view/aboutxo.py:56 msgid "Serial Number:" -msgstr "" +msgstr "Nimero seri:" #: ../src/controlpanel/view/aboutxo.py:79 msgid "Software" -msgstr "" +msgstr "Pwogram" #: ../src/controlpanel/view/aboutxo.py:88 msgid "Build:" -msgstr "" +msgstr "Bati:" #: ../src/controlpanel/view/aboutxo.py:103 msgid "Firmware:" -msgstr "" +msgstr "Mikrolojisyèl:" #: ../src/controlpanel/view/datetime.py:29 msgid "Date & Time" -msgstr "" +msgstr "Dat ak lè" #: ../src/controlpanel/view/datetime.py:72 msgid "Timezone" -msgstr "" +msgstr "Lè lokal" #: ../src/controlpanel/view/frame.py:28 msgid "Frame" -msgstr "" +msgstr "Ankadreman" #: ../src/controlpanel/view/frame.py:30 msgid "never" -msgstr "" +msgstr "Jamè" #: ../src/controlpanel/view/frame.py:31 msgid "instantaneous" -msgstr "" +msgstr "imediat" #: ../src/controlpanel/view/frame.py:32 #, python-format msgid "%s seconds" -msgstr "" +msgstr "%s segond" #: ../src/controlpanel/view/frame.py:56 msgid "Activation Delay" -msgstr "" +msgstr "Reta aktivasyon" #: ../src/controlpanel/view/frame.py:80 msgid "Corner" -msgstr "" +msgstr "Kwen" #: ../src/controlpanel/view/frame.py:115 msgid "Edge" -msgstr "" +msgstr "Bò" #: ../src/controlpanel/view/language.py:29 #: ../src/controlpanel/view/language.py:74 msgid "Language" -msgstr "" +msgstr "Lang" #: ../src/controlpanel/view/network.py:28 msgid "Network" -msgstr "" +msgstr "Rezo" #: ../src/controlpanel/view/network.py:53 msgid "Wireless" -msgstr "" +msgstr "San fil" #: ../src/controlpanel/view/network.py:61 msgid "Radio:" -msgstr "" +msgstr "Radio" #: ../src/controlpanel/view/network.py:94 msgid "Mesh" -msgstr "" +msgstr "Rezo maye" #: ../src/controlpanel/view/network.py:103 msgid "Server:" -msgstr "" +msgstr "Sèvè:" + +#: ../src/controlpanel/view/power.py:27 +msgid "Power" +msgstr "Alimantasyon" + +#: ../src/controlpanel/view/power.py:51 +msgid "Power management" +msgstr "Jere alimantasyon" -#: ../src/view/devices/network/mesh.py:108 +#: ../src/controlpanel/view/power.py:61 +msgid "Automatic power management (increases battery life)" +msgstr "automatic power management(ogmante tan batri a ap bay)" + +#: ../src/controlpanel/view/power.py:89 +msgid "" +"Extreme power management (disables wireless radio, increases battery life)" +msgstr "(retire posibilite capte ond wireless, ogmante tan batri a ap bay)" + +#: ../src/view/devices/network/mesh.py:111 msgid "Connected to a School Mesh Portal" -msgstr "Konekte sou rezo lekòl la" +msgstr "Konekte sou pòtay rezo lekòl la" -#: ../src/view/devices/network/mesh.py:110 +#: ../src/view/devices/network/mesh.py:113 msgid "Looking for a School Mesh Portal..." -msgstr "Ap chache rezo lekòl la" +msgstr "Ap chache pòtay rezo lekòl la" -#: ../src/view/devices/network/mesh.py:113 +#: ../src/view/devices/network/mesh.py:116 msgid "Connected to an XO Mesh Portal" -msgstr "Konekte sou yon rezo XO" +msgstr "Konekte sou pòtal yon rezo XO" -#: ../src/view/devices/network/mesh.py:115 +#: ../src/view/devices/network/mesh.py:118 msgid "Looking for an XO Mesh Portal..." msgstr "Ap chache yon rezo XO..." -#: ../src/view/devices/network/mesh.py:118 +#: ../src/view/devices/network/mesh.py:121 msgid "Connected to a Simple Mesh" msgstr "Konekte sou yon senp rezo" -#: ../src/view/devices/network/mesh.py:120 +#: ../src/view/devices/network/mesh.py:123 msgid "Starting a Simple Mesh" msgstr "Kòmanse yon senp rezo" -#: ../src/view/devices/network/mesh.py:127 +#: ../src/view/devices/network/mesh.py:130 msgid "Unknown Mesh" -msgstr "Rezo non idantifye" +msgstr "Rezo maye inkoni" -#: ../src/view/frame/activitiestray.py:224 +#: ../src/view/frame/activitiestray.py:210 msgid "Decline" -msgstr "" +msgstr "Refize" + +#: ../src/view/home/favoritesview.py:287 +msgid "Registration Failed" +msgstr "enskripsyon an pa fèt" + +# se yon kòd enfòmatik li pa dwe chanje +#: ../src/view/home/favoritesview.py:288 +#, python-format +msgid "%s" +msgstr "%s" -#: ../src/view/home/favoritesview.py:351 +#: ../src/view/home/favoritesview.py:290 +msgid "Registration Successful" +msgstr "enskripsyon an fèt" + +#: ../src/view/home/favoritesview.py:291 +msgid "You are now registered with your school server." +msgstr "ou pa enskri avek sèvè lekol ou a" + +#: ../src/view/home/favoritesview.py:407 msgid "Control Panel" -msgstr "" +msgstr "Pano kontwòl" -#: ../src/view/home/favoritesview.py:362 +#: ../src/view/home/favoritesview.py:418 msgid "Restart" -msgstr "" +msgstr "Redemare" -#: ../src/view/home/favoritesview.py:367 +#: ../src/view/home/favoritesview.py:423 msgid "Shutdown" -msgstr "Fèmen" +msgstr "Eten'n" -#: ../src/view/home/favoritesview.py:373 +#: ../src/view/home/favoritesview.py:429 msgid "Register" msgstr "Enskri" -#: ../src/view/palettes.py:41 +#: ../src/view/palettes.py:42 msgid "Starting..." -msgstr "ap louvri" +msgstr "Demaraj...." -#: ../src/view/palettes.py:71 +#: ../src/view/palettes.py:72 msgid "Stop" msgstr "Stope, rete" -#: ../src/view/palettes.py:96 +#: ../src/view/palettes.py:104 msgid "Start" -msgstr "" +msgstr "Demare" -#: ../src/view/palettes.py:119 +#: ../src/view/palettes.py:132 msgid "Remove favorite" -msgstr "" +msgstr "Siprime favori" -#: ../src/view/palettes.py:123 +#: ../src/view/palettes.py:136 msgid "Make favorite" -msgstr "" +msgstr "Ajoute nan favori" -#: ../src/view/palettes.py:169 +#: ../src/view/palettes.py:185 msgid "Show contents" -msgstr "" +msgstr "Afiche kontni yo" -#: ../src/view/palettes.py:193 +#: ../src/view/palettes.py:209 #, python-format msgid "%(free_space)d MB Free" -msgstr "" +msgstr "%(free_space)d MB vid" + +#~ msgid "R" +#~ msgstr "R" #~ msgid "off" #~ msgstr "Etenn" diff --git a/po/mn.po b/po/mn.po index ec3dfb6..2a8b511 100644 --- a/po/mn.po +++ b/po/mn.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-07-23 07:44-0400\n" +"POT-Creation-Date: 2008-08-19 17:12-0400\n" "PO-Revision-Date: 2008-08-07 01:30-0400\n" "Last-Translator: Odontsetseg Bat-Erdene \n" "Language-Team: LANGUAGE \n" @@ -19,19 +19,19 @@ msgstr "" msgid "Name:" msgstr "Нэр:" -#: ../src/intro/intro.py:94 +#: ../src/intro/intro.py:97 msgid "Click to change color:" msgstr "Энд дарж өнгөө солино уу" -#: ../src/intro/intro.py:145 +#: ../src/intro/intro.py:148 msgid "Back" msgstr "Буцах" -#: ../src/intro/intro.py:159 ../src/controlpanel/toolbar.py:61 +#: ../src/intro/intro.py:162 ../src/controlpanel/toolbar.py:61 msgid "Done" msgstr "Боллоо" -#: ../src/intro/intro.py:162 +#: ../src/intro/intro.py:165 msgid "Next" msgstr "Дараах" @@ -64,7 +64,7 @@ msgstr "Нээх" #. TODO: Implement stopping downloads #. self._stop_item.connect('activate', self._stop_item_activate_cb) #. self.append_menu_item(self._stop_item) -#: ../src/view/clipboardmenu.py:63 ../src/view/home/HomeBox.py:86 +#: ../src/view/clipboardmenu.py:63 ../src/view/home/HomeBox.py:87 msgid "Keep" msgstr "Хадгалах" @@ -89,48 +89,80 @@ msgstr "Нэвтрэх нууцлалын төрөл:" msgid "Encryption Type:" msgstr "Нууцлалын төрөл:" +#: ../src/hardware/schoolserver.py:17 +msgid "Cannot obtain data needed for registration." +msgstr "" + +#: ../src/hardware/schoolserver.py:31 +msgid "Cannot connect to the server." +msgstr "" + +#: ../src/hardware/schoolserver.py:36 +msgid "The server could not complete the request." +msgstr "" + #: ../src/view/Shell.py:240 msgid "Screenshot" msgstr "Дэлгэцний зураг" -#: ../src/view/home/HomeBox.py:80 +#: ../src/view/home/HomeBox.py:81 msgid "Confirm erase" msgstr "Арилгахыг зөвшөөрөх" -#: ../src/view/home/HomeBox.py:82 +#: ../src/view/home/HomeBox.py:83 #, python-format msgid "Confirm erase: Do you want to permanently erase %s?" msgstr "Арилгахыг зөвшөөрөх: Та %s бүр мөсөн арилгахыг хүсч байна уу?" -#: ../src/view/home/HomeBox.py:89 ../src/view/palettes.py:120 +#: ../src/view/home/HomeBox.py:90 ../src/view/palettes.py:120 msgid "Erase" msgstr "Арилгах" -#: ../src/view/home/HomeBox.py:215 +#: ../src/view/home/HomeBox.py:120 +msgid "Software Update" +msgstr "" + +#: ../src/view/home/HomeBox.py:121 +msgid "Update your activities to ensure compatibility with your new software" +msgstr "" + +#: ../src/view/home/HomeBox.py:125 ../src/controlpanel/toolbar.py:115 +msgid "Cancel" +msgstr "Болих" + +#: ../src/view/home/HomeBox.py:127 ../src/controlpanel/gui.py:275 +msgid "Later" +msgstr "Дараа" + +#: ../src/view/home/HomeBox.py:130 +msgid "Check now" +msgstr "" + +#: ../src/view/home/HomeBox.py:266 msgid "List view" msgstr "Жагсаалтыг харах" -#: ../src/view/home/HomeBox.py:216 +#: ../src/view/home/HomeBox.py:267 msgid "2" msgstr "2" -#: ../src/view/home/HomeBox.py:273 +#: ../src/view/home/HomeBox.py:325 msgid "Favorites view" msgstr "Дуртай зүйлсийг үзэх" -#: ../src/view/home/HomeBox.py:274 +#: ../src/view/home/HomeBox.py:326 msgid "1" msgstr "1" # TRANS: label for the freeform layout in the favorites view #. TRANS: label for the freeform layout in the favorites view -#: ../src/view/home/HomeBox.py:282 +#: ../src/view/home/HomeBox.py:334 msgid "Freeform" msgstr "Дурын хэлбэр" # TRANS: label for the ring layout in the favorites view #. TRANS: label for the ring layout in the favorites view -#: ../src/view/home/HomeBox.py:289 +#: ../src/view/home/HomeBox.py:341 msgid "Ring" msgstr "Цагираг" @@ -201,7 +233,7 @@ msgstr "Цэнэг маш бага байна" #: ../src/view/devices/battery.py:123 #, python-format msgid "%(hour)d:%(min).2d remaining" -msgstr "%(цаг)d:%(мин).2d үлдлээ" +msgstr "%(hour)d:%(min).2d үлдлээ" #: ../src/view/devices/battery.py:127 msgid "Charged" @@ -227,19 +259,19 @@ msgstr "Салгагдсан" msgid "Channel" msgstr "Суваг" -#: ../src/view/frame/zoomtoolbar.py:34 +#: ../src/view/frame/zoomtoolbar.py:37 msgid "Neighborhood" msgstr "Хөршүүд" -#: ../src/view/frame/zoomtoolbar.py:36 +#: ../src/view/frame/zoomtoolbar.py:39 msgid "Group" msgstr "Бүлэг" -#: ../src/view/frame/zoomtoolbar.py:38 +#: ../src/view/frame/zoomtoolbar.py:41 msgid "Home" msgstr "Нүүр хуудас" -#: ../src/view/frame/zoomtoolbar.py:40 +#: ../src/view/frame/zoomtoolbar.py:43 msgid "Activity" msgstr "Үйл ажиллагаа" @@ -261,6 +293,7 @@ msgid "sugar-control-panel: %s" msgstr "sugar-удирдах-самбар: %s" #: ../src/controlpanel/cmd.py:33 +#, fuzzy msgid "" "Usage: sugar-control-panel [ option ] key [ args ... ] \n" " Control for the sugar environment. \n" @@ -270,6 +303,7 @@ msgid "" " -h key show information about this key \n" " -g key get the current value of the key \n" " -s key set the current value for the key \n" +" -c key clear the current value for the key \n" " " msgstr "" "Хэрэглээ: sugar-удирдах-самбар [ сонголт ] товч [ аргумент ... ] \n" @@ -282,35 +316,27 @@ msgstr "" "-ы товч Товчны одоогийн ач холбогдлыг тохируулах \n" " " -#: ../src/controlpanel/cmd.py:45 +#: ../src/controlpanel/cmd.py:46 msgid "To apply your changes you have to restart sugar.\n" msgstr "Өөрчлөлтийг идэвхжүүлэхийн тулд та дахин эхлүүлэх шаардлагатай.\n" -#: ../src/controlpanel/toolbar.py:115 -msgid "Cancel" -msgstr "Болих" - -#: ../src/controlpanel/toolbar.py:121 ../src/view/home/favoritesview.py:294 +#: ../src/controlpanel/toolbar.py:121 ../src/view/home/favoritesview.py:296 msgid "Ok" msgstr "Тийм" -#: ../src/controlpanel/sectionview.py:34 ../src/controlpanel/gui.py:260 +#: ../src/controlpanel/sectionview.py:42 ../src/controlpanel/gui.py:267 msgid "Changes require restart" msgstr "Өөрчлөхийн тулд дахин эхлүүлэх хэрэгтэй" -#: ../src/controlpanel/gui.py:259 +#: ../src/controlpanel/gui.py:266 msgid "Warning" msgstr "Анхаар" -#: ../src/controlpanel/gui.py:263 +#: ../src/controlpanel/gui.py:270 msgid "Cancel changes" msgstr "Өөрчлөлтийг цуцлах" -#: ../src/controlpanel/gui.py:267 -msgid "Later" -msgstr "Дараа" - -#: ../src/controlpanel/gui.py:271 +#: ../src/controlpanel/gui.py:279 msgid "Restart now" msgstr "Одоо эхлүүлэх үү" @@ -536,36 +562,36 @@ msgstr "Үл мэдэгдэх тархалтын сүлжээ" msgid "Decline" msgstr "Үл зөвшөөрөх" -#: ../src/view/home/favoritesview.py:285 +#: ../src/view/home/favoritesview.py:287 msgid "Registration Failed" msgstr "Бүртгэл бүтэлгүйтлээ" -#: ../src/view/home/favoritesview.py:286 +#: ../src/view/home/favoritesview.py:288 #, python-format msgid "%s" msgstr "%s" -#: ../src/view/home/favoritesview.py:288 +#: ../src/view/home/favoritesview.py:290 msgid "Registration Successful" msgstr "Бүртгэл амжилттай" -#: ../src/view/home/favoritesview.py:289 +#: ../src/view/home/favoritesview.py:291 msgid "You are now registered with your school server." msgstr "Та одоо сургуулийн серверт бүртгэгдлээ." -#: ../src/view/home/favoritesview.py:405 +#: ../src/view/home/favoritesview.py:407 msgid "Control Panel" msgstr "Удирдах Самбар" -#: ../src/view/home/favoritesview.py:416 +#: ../src/view/home/favoritesview.py:418 msgid "Restart" msgstr "Дахин эхлүүлэх" -#: ../src/view/home/favoritesview.py:421 +#: ../src/view/home/favoritesview.py:423 msgid "Shutdown" msgstr "Унтраах" -#: ../src/view/home/favoritesview.py:427 +#: ../src/view/home/favoritesview.py:429 msgid "Register" msgstr "Бүртгүүлэх" diff --git a/po/pt.po b/po/pt.po index 40662e8..28e613c 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-08-19 17:12-0400\n" -"PO-Revision-Date: 2008-08-27 05:47-0400\n" +"PO-Revision-Date: 2008-08-27 12:13-0400\n" "Last-Translator: Eduardo H. Silva \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -29,7 +29,7 @@ msgstr "Voltar" #: ../src/intro/intro.py:162 ../src/controlpanel/toolbar.py:61 msgid "Done" -msgstr "Terminado" +msgstr "Finalizar" #: ../src/intro/intro.py:165 msgid "Next" diff --git a/src/controlpanel/model/language.py b/src/controlpanel/model/language.py index 3215465..d835f77 100644 --- a/src/controlpanel/model/language.py +++ b/src/controlpanel/model/language.py @@ -43,6 +43,12 @@ def read_all_languages(): if locale.endswith('utf8') and len(lang): locales.append((lang, territory, locale)) + #FIXME: This is a temporary workaround for locales that are essential to + # OLPC, but are not in Glibc yet. + locales.append(('Kreyol', 'Haiti', 'ht_HT.utf8')) + locales.append(('Dari', 'Afghanistan', 'fa_AF.utf8')) + locales.append(('Pashto', 'Afghanistan', 'ps_AF.utf8')) + locales.sort() return locales diff --git a/src/hardware/nmclient.py b/src/hardware/nmclient.py index 5a92176..ac9ddfd 100644 --- a/src/hardware/nmclient.py +++ b/src/hardware/nmclient.py @@ -214,7 +214,9 @@ class Device(gobject.GObject): ([gobject.TYPE_PYOBJECT])), 'network-disappeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([gobject.TYPE_PYOBJECT])) + ([gobject.TYPE_PYOBJECT])), + 'ip-changed': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, ([])), } def __init__(self, client, op): @@ -235,6 +237,7 @@ class Device(gobject.GObject): self._state = DEVICE_STATE_INACTIVE self._active_network = None self._active_net_sigid = 0 + self._ip_address = None obj = sys_bus.get_object(NM_SERVICE, self._op) self.dev = dbus.Interface(obj, NM_IFACE_DEVICES) @@ -251,6 +254,18 @@ class Device(gobject.GObject): return True return False + # 6248: remove for NM0.7; http://dev.laptop.org/ticket/6248#comment:2 + def _getproperties_for_ip_only_reply_cb(self, *props): + current_ip = props[6] + if current_ip != self._ip_address: + self._ip_address = current_ip + if self._valid: + self.emit('ip-changed') + + # 6248: remove for NM0.7; http://dev.laptop.org/ticket/6248#comment:2 + def _getproperties_for_ip_only_error_cb(self, err): + logging.warning("Device(%s): failed to update. (%s)" % (self._op, err)) + def _update_reply_cb(self, *props): self._iface = props[1] self._type = props[2] @@ -276,6 +291,11 @@ class Device(gobject.GObject): self._valid = True + # 6248: remove for NM0.7; http://dev.laptop.org/ticket/6248#comment:2 + if props[6] != self._ip_address: + self._ip_address = props[6] + self.emit('ip-changed') + if self._is_activating(): self.set_state(DEVICE_STATE_ACTIVATING) elif self._is_activated(): @@ -353,6 +373,9 @@ class Device(gobject.GObject): self._freq = freq / 1000000000.0 return self._freq + def get_ip_address(self): + return self._ip_address + def get_strength(self): return self._strength @@ -454,6 +477,13 @@ class Device(gobject.GObject): self._get_active_net_cb(state, *args), error_handler=self._get_active_net_error_cb) + if state == DEVICE_STATE_ACTIVATED: + # 6248: reimplement for NM0.7 + # see http://dev.laptop.org/ticket/6248#comment:2 + self.dev.getProperties( + reply_handler=self._getproperties_for_ip_only_reply_cb, + error_handler=self._getproperties_for_ip_only_error_cb) + def set_activation_stage(self, stage): if stage == self._act_stage: return @@ -461,6 +491,12 @@ class Device(gobject.GObject): if self._valid: self.emit('activation-stage-changed') + # 6248: reimplement for NM0.7 + # see http://dev.laptop.org/ticket/6248#comment:2 + self.dev.getProperties( + reply_handler=self._getproperties_for_ip_only_reply_cb, + error_handler=self._getproperties_for_ip_only_error_cb) + def get_activation_stage(self): return self._act_stage diff --git a/src/model/devices/network/mesh.py b/src/model/devices/network/mesh.py index 36626e6..ec2ca7b 100644 --- a/src/model/devices/network/mesh.py +++ b/src/model/devices/network/mesh.py @@ -28,11 +28,14 @@ class Device(device.Device): 'activation-stage': (int, None, None, 0, 7, 0, gobject.PARAM_READABLE), 'frequency': (float, None, None, 0, 2.72, 0, gobject.PARAM_READABLE), 'mesh-step': (int, None, None, 0, 4, 0, gobject.PARAM_READABLE), + 'ip-address' : (str, None, None, None, gobject.PARAM_READABLE), } def __init__(self, nm_device): device.Device.__init__(self) self._nm_device = nm_device + self._nm_device.connect('ip-changed', self._ip_changed_cb) + self.notify('ip-address') self._nm_device.connect('strength-changed', self._strength_changed_cb) @@ -47,6 +50,9 @@ class Device(device.Device): def _state_changed_cb(self, nm_device): self.notify('state') + def _ip_changed_cb(self, nm_device): + self.notify('ip-address') + def _activation_stage_changed_cb(self, nm_device): self.notify('activation-stage') @@ -62,6 +68,12 @@ class Device(device.Device): return self._nm_device.get_frequency() elif pspec.name == 'mesh-step': return self._nm_device.get_mesh_step() + elif pspec.name == 'ip-address': + return self.get_ip_address() + + def get_ip_address(self): + if self._nm_device is not None: + return self._nm_device.get_ip_address() def get_type(self): return 'network.mesh' diff --git a/src/model/devices/network/wireless.py b/src/model/devices/network/wireless.py index 8bf407e..b2efb49 100644 --- a/src/model/devices/network/wireless.py +++ b/src/model/devices/network/wireless.py @@ -44,7 +44,8 @@ class Device(device.Device): 'state' : (int, None, None, device.STATE_ACTIVATING, device.STATE_INACTIVE, 0, gobject.PARAM_READABLE), 'frequency': (float, None, None, 0.0, 9999.99, 0.0, - gobject.PARAM_READABLE) + gobject.PARAM_READABLE), + 'ip-address' : (str, None, None, None, gobject.PARAM_READABLE), } def __init__(self, nm_device): @@ -57,6 +58,7 @@ class Device(device.Device): self._ssid_changed_cb) self._nm_device.connect('state-changed', self._state_changed_cb) + self._nm_device.connect('ip-changed', self._ip_changed_cb) def _strength_changed_cb(self, nm_device): self.notify('strength') @@ -67,6 +69,9 @@ class Device(device.Device): def _state_changed_cb(self, nm_device): self.notify('state') + def _ip_changed_cb(self, nm_device): + self.notify('ip-address') + def do_get_property(self, pspec): if pspec.name == 'strength': return self._nm_device.get_strength() @@ -80,6 +85,8 @@ class Device(device.Device): return device.nm_state_to_state[nm_state] elif pspec.name == 'frequency': return self._nm_device.get_frequency() + elif pspec.name == 'ip-address': + return self._nm_device.get_ip_address() def get_type(self): return 'network.wireless' diff --git a/src/view/devices/network/mesh.py b/src/view/devices/network/mesh.py index 1d115e9..40746ce 100644 --- a/src/view/devices/network/mesh.py +++ b/src/view/devices/network/mesh.py @@ -20,24 +20,34 @@ from gettext import gettext as _ import gtk from sugar import profile -from sugar.graphics.tray import TrayIcon from sugar.graphics import style from sugar.graphics.palette import Palette +from sugar.graphics.toolbutton import ToolButton +from sugar.graphics.xocolor import XoColor from model.devices import device from model.devices.network import wireless from hardware import hardwaremanager +from view.devices.network.wireless import IP_ADDRESS_TEXT_TEMPLATE from view.frame.frameinvoker import FrameWidgetInvoker +from view.pulsingicon import PulsingIcon -class DeviceView(TrayIcon): +class DeviceView(ToolButton): FRAME_POSITION_RELATIVE = 400 def __init__(self, model): - TrayIcon.__init__(self, icon_name='network-mesh') + ToolButton.__init__(self) self._model = model + self._icon = PulsingIcon() + self._icon.props.icon_name = 'network-mesh' + pulse_color = XoColor("%s,%s" % (style.COLOR_BUTTON_GREY.get_svg(), + style.COLOR_TRANSPARENT.get_svg())) + self._icon.props.pulse_color = pulse_color + self._icon.props.base_color = pulse_color # only temporarily + self.palette = MeshPalette(_("Mesh Network"), model) self.set_palette(self.palette) self.palette.props.invoker = FrameWidgetInvoker(self) @@ -45,24 +55,38 @@ class DeviceView(TrayIcon): model.connect('notify::state', self._state_changed_cb) model.connect('notify::activation-stage', self._state_changed_cb) + model.connect('notify::ip-address', self._ip_address_changed_cb) + self._update_state() + self._update_ip_address() + self.set_icon_widget(self._icon) + self._icon.show() + + def _ip_address_changed_cb(self, model, pspec): + self._update_ip_address() def _state_changed_cb(self, model, pspec): self._update_state() + def _update_ip_address(self): + self.palette.set_ip_address(self._model.props.ip_address) + def _update_state(self): # FIXME Change icon colors once we have real icons state = self._model.props.state self.palette.update_state(state) + self._icon.props.pulsing = state == device.STATE_ACTIVATING if state == device.STATE_ACTIVATING: - self.icon.props.fill_color = style.COLOR_INACTIVE_FILL.get_svg() - self.icon.props.stroke_color = style.COLOR_INACTIVE_STROKE.get_svg() + self._icon.props.base_color = \ + XoColor("%s,%s" % (style.COLOR_INACTIVE_STROKE.get_svg(), + style.COLOR_INACTIVE_FILL.get_svg())) elif state == device.STATE_ACTIVATED: - self.icon.props.xo_color = profile.get_color() + self._icon.props.base_color = profile.get_color() elif state == device.STATE_INACTIVE: - self.icon.props.fill_color = style.COLOR_INACTIVE_FILL.get_svg() - self.icon.props.stroke_color = style.COLOR_INACTIVE_STROKE.get_svg() + self._icon.props.base_color = \ + XoColor("%s,%s" % (style.COLOR_INACTIVE_STROKE.get_svg(), + style.COLOR_INACTIVE_FILL.get_svg())) if state == device.STATE_INACTIVE: self.palette.set_primary_text(_("Mesh Network")) @@ -80,9 +104,21 @@ class MeshPalette(Palette): self._step_label = gtk.Label() self._step_label.show() + self._ip_address_label = gtk.Label() + def _padded(child, xalign=0, yalign=0.5): + padder = gtk.Alignment(xalign=xalign, yalign=yalign, + xscale=1, yscale=0.33) + padder.set_padding(style.DEFAULT_SPACING, + style.DEFAULT_SPACING, + style.DEFAULT_SPACING, + style.DEFAULT_SPACING) + padder.add(child) + return padder + vbox = gtk.VBox() - vbox.pack_start(self._step_label) - vbox.show() + vbox.pack_start(_padded(self._step_label)) + vbox.pack_start(_padded(self._ip_address_label)) + vbox.show_all() self.set_content(vbox) @@ -104,6 +140,13 @@ class MeshPalette(Palette): if network_manager and nm_device: network_manager.set_active_device(nm_device) + def set_ip_address(self, ip_address): + if ip_address is not None and ip_address != "0.0.0.0": + ip_address_text = IP_ADDRESS_TEXT_TEMPLATE % ip_address + else: + ip_address_text = "" + self._ip_address_label.set_text(ip_address_text) + def set_mesh_step(self, step, state): label = "" if step == 1: diff --git a/src/view/devices/network/wireless.py b/src/view/devices/network/wireless.py index a339928..f95f5c4 100644 --- a/src/view/devices/network/wireless.py +++ b/src/view/devices/network/wireless.py @@ -20,26 +20,40 @@ from gettext import gettext as _ import gtk from sugar.graphics.icon import get_icon_state -from sugar.graphics.tray import TrayIcon from sugar.graphics import style from sugar.graphics.palette import Palette +from sugar.graphics.toolbutton import ToolButton +from sugar.graphics.xocolor import XoColor from model.devices.network import wireless from model.devices import device from hardware import hardwaremanager from hardware import nmclient from view.frame.frameinvoker import FrameWidgetInvoker +from view.pulsingicon import PulsingIcon _ICON_NAME = 'network-wireless' -class DeviceView(TrayIcon): +IP_ADDRESS_TEXT_TEMPLATE = _("IP address: %s") + +class DeviceView(ToolButton): FRAME_POSITION_RELATIVE = 300 def __init__(self, model): - TrayIcon.__init__(self, icon_name=_ICON_NAME) + ToolButton.__init__(self) self._model = model + self._icon = PulsingIcon() + self._icon.props.icon_name = _ICON_NAME + pulse_color = XoColor("%s,%s" % (style.COLOR_BUTTON_GREY.get_svg(), + style.COLOR_TRANSPARENT.get_svg())) + self._icon.props.pulse_color = pulse_color + self._icon.props.base_color = pulse_color # only temporarily + self._inactive_color = XoColor("%s,%s" % ( + style.COLOR_INACTIVE_STROKE.get_html(), + style.COLOR_INACTIVE_FILL.get_html())) + meshdev = None network_manager = hardwaremanager.get_network_manager() for dev in network_manager.get_devices(): @@ -56,11 +70,16 @@ class DeviceView(TrayIcon): self.palette.set_frequency(self._model.props.frequency) model.connect('notify::name', self._name_changed_cb) + model.connect('notify::ip-address', self._ip_address_changed_cb) model.connect('notify::strength', self._strength_changed_cb) model.connect('notify::state', self._state_changed_cb) self._update_icon() self._update_state() + self._update_ip_address() + + self.set_icon_widget(self._icon) + self._icon.show() def _get_palette_primary_text(self): if self._model.props.state == device.STATE_INACTIVE: @@ -74,8 +93,12 @@ class DeviceView(TrayIcon): self.palette.set_frequency(self._model.props.frequency) self._counter += 1 + def _ip_address_changed_cb(self, model, pspec): + self._update_ip_address() + def _name_changed_cb(self, model, pspec): self.palette.set_primary_text(self._get_palette_primary_text()) + self._update_state() def _state_changed_cb(self, model, pspec): self._update_state() @@ -87,21 +110,24 @@ class DeviceView(TrayIcon): strength = 0 icon_name = get_icon_state(_ICON_NAME, strength) if icon_name: - self.icon.props.icon_name = icon_name + self._icon.props.icon_name = icon_name def _update_state(self): # FIXME Change icon colors once we have real icons state = self._model.props.state + self._icon.props.pulsing = state == device.STATE_ACTIVATING if state == device.STATE_ACTIVATING: - self.icon.props.fill_color = style.COLOR_INACTIVE_FILL.get_svg() - self.icon.props.stroke_color = style.COLOR_INACTIVE_STROKE.get_svg() + fill = style.COLOR_INACTIVE_FILL.get_svg() + stroke = style.COLOR_INACTIVE_STROKE.get_svg() elif state == device.STATE_ACTIVATED: (stroke, fill) = self._model.get_active_network_colors() - self.icon.props.stroke_color = stroke - self.icon.props.fill_color = fill elif state == device.STATE_INACTIVE: - self.icon.props.fill_color = style.COLOR_INACTIVE_FILL.get_svg() - self.icon.props.stroke_color = style.COLOR_INACTIVE_STROKE.get_svg() + fill = style.COLOR_INACTIVE_FILL.get_svg() + stroke = style.COLOR_INACTIVE_STROKE.get_svg() + self._icon.props.base_color = XoColor("%s,%s" % (stroke, fill)) + + def _update_ip_address(self): + self.palette.set_ip_address(self._model.props.ip_address) class WirelessPalette(Palette): def __init__(self, primary_text, meshdev): @@ -109,11 +135,26 @@ class WirelessPalette(Palette): self._meshdev = meshdev self._chan_label = gtk.Label() + self._chan_label.props.xalign = 0.0 self._chan_label.show() + self._ip_address_label = gtk.Label() + vbox = gtk.VBox() - vbox.pack_start(self._chan_label) - vbox.show() + + def _padded(child, xalign=0, yalign=0.5): + padder = gtk.Alignment(xalign=xalign, yalign=yalign, + xscale=1, yscale=0.33) + padder.set_padding(style.DEFAULT_SPACING, + style.DEFAULT_SPACING, + style.DEFAULT_SPACING, + style.DEFAULT_SPACING) + padder.add(child) + return padder + + vbox.pack_start(_padded(self._chan_label)) + vbox.pack_start(_padded(self._ip_address_label)) + vbox.show_all() if meshdev: disconnect_item = gtk.MenuItem(_('Disconnect...')) @@ -136,3 +177,9 @@ class WirelessPalette(Palette): chan = 0 self._chan_label.set_text("%s: %d" % (_("Channel"), chan)) + def set_ip_address(self, ip_address): + if ip_address is not None and ip_address != "0.0.0.0": + ip_address_text = IP_ADDRESS_TEXT_TEMPLATE % ip_address + else: + ip_address_text = "" + self._ip_address_label.set_text(ip_address_text) -- cgit v0.9.1