From 8176f9cd559e2e9fbd0c4d2a164d295a0d6397ba Mon Sep 17 00:00:00 2001 From: Santiago Collazo Date: Tue, 25 Jun 2013 13:53:41 +0000 Subject: Merge remote branch 'ajay/0.97.7-as-base' into devel Conflicts: po/es.po --- diff --git a/configure.ac b/configure.ac index 2552569..680e50c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,11 @@ -AC_INIT([Sugar],[0.98.7],[],[sugar]) +AC_INIT([Sugar],[0.98.8],[],[sugar]) AC_PREREQ([2.59]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_SRCDIR([configure.ac]) -SUCROSE_VERSION="0.98.7" +SUCROSE_VERSION="0.98.8" AC_SUBST(SUCROSE_VERSION) AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 no-dist-gzip]) diff --git a/data/ISO-639-2_utf-8.txt b/data/ISO-639-2_utf-8.txt new file mode 100644 index 0000000..e2ba0be --- /dev/null +++ b/data/ISO-639-2_utf-8.txt @@ -0,0 +1,486 @@ +aar||aa|Afar|afar +abk||ab|Abkhazian|abkhaze +ace|||Achinese|aceh +ach|||Acoli|acoli +ada|||Adangme|adangme +ady|||Adyghe; Adygei|adyghé +afa|||Afro-Asiatic languages|afro-asiatiques, langues +afh|||Afrihili|afrihili +afr||af|Afrikaans|afrikaans +ain|||Ainu|aïnou +aka||ak|Akan|akan +akk|||Akkadian|akkadien +alb|sqi|sq|Albanian|albanais +ale|||Aleut|aléoute +alg|||Algonquian languages|algonquines, langues +alt|||Southern Altai|altai du Sud +amh||am|Amharic|amharique +ang|||English, Old (ca.450-1100)|anglo-saxon (ca.450-1100) +anp|||Angika|angika +apa|||Apache languages|apaches, langues +ara||ar|Arabic|arabe +arc|||Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)|araméen d'empire (700-300 BCE) +arg||an|Aragonese|aragonais +arm|hye|hy|Armenian|arménien +arn|||Mapudungun; Mapuche|mapudungun; mapuche; mapuce +arp|||Arapaho|arapaho +art|||Artificial languages|artificielles, langues +arw|||Arawak|arawak +asm||as|Assamese|assamais +ast|||Asturian; Bable; Leonese; Asturleonese|asturien; bable; léonais; asturoléonais +ath|||Athapascan languages|athapascanes, langues +aus|||Australian languages|australiennes, langues +ava||av|Avaric|avar +ave||ae|Avestan|avestique +awa|||Awadhi|awadhi +aym||ay|Aymara|aymara +aze||az|Azerbaijani|azéri +bad|||Banda languages|banda, langues +bai|||Bamileke languages|bamiléké, langues +bak||ba|Bashkir|bachkir +bal|||Baluchi|baloutchi +bam||bm|Bambara|bambara +ban|||Balinese|balinais +baq|eus|eu|Basque|basque +bas|||Basa|basa +bat|||Baltic languages|baltes, langues +bej|||Beja; Bedawiyet|bedja +bel||be|Belarusian|biélorusse +bem|||Bemba|bemba +ben||bn|Bengali|bengali +ber|||Berber languages|berbères, langues +bho|||Bhojpuri|bhojpuri +bih||bh|Bihari languages|langues biharis +bik|||Bikol|bikol +bin|||Bini; Edo|bini; edo +bis||bi|Bislama|bichlamar +bla|||Siksika|blackfoot +bnt|||Bantu (Other)|bantoues, autres langues +bos||bs|Bosnian|bosniaque +bra|||Braj|braj +bre||br|Breton|breton +btk|||Batak languages|batak, langues +bua|||Buriat|bouriate +bug|||Buginese|bugi +bul||bg|Bulgarian|bulgare +bur|mya|my|Burmese|birman +byn|||Blin; Bilin|blin; bilen +cad|||Caddo|caddo +cai|||Central American Indian languages|amérindiennes de L'Amérique centrale, langues +car|||Galibi Carib|karib; galibi; carib +cat||ca|Catalan; Valencian|catalan; valencien +cau|||Caucasian languages|caucasiennes, langues +ceb|||Cebuano|cebuano +cel|||Celtic languages|celtiques, langues; celtes, langues +cha||ch|Chamorro|chamorro +chb|||Chibcha|chibcha +che||ce|Chechen|tchétchène +chg|||Chagatai|djaghataï +chi|zho|zh|Chinese|chinois +chk|||Chuukese|chuuk +chm|||Mari|mari +chn|||Chinook jargon|chinook, jargon +cho|||Choctaw|choctaw +chp|||Chipewyan; Dene Suline|chipewyan +chr|||Cherokee|cherokee +chu||cu|Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic|slavon d'église; vieux slave; slavon liturgique; vieux bulgare +chv||cv|Chuvash|tchouvache +chy|||Cheyenne|cheyenne +cmc|||Chamic languages|chames, langues +cop|||Coptic|copte +cor||kw|Cornish|cornique +cos||co|Corsican|corse +cpe|||Creoles and pidgins, English based|créoles et pidgins basés sur l'anglais +cpf|||Creoles and pidgins, French-based |créoles et pidgins basés sur le français +cpp|||Creoles and pidgins, Portuguese-based |créoles et pidgins basés sur le portugais +cre||cr|Cree|cree +crh|||Crimean Tatar; Crimean Turkish|tatar de Crimé +crp|||Creoles and pidgins |créoles et pidgins +csb|||Kashubian|kachoube +cus|||Cushitic languages|couchitiques, langues +cze|ces|cs|Czech|tchèque +dak|||Dakota|dakota +dan||da|Danish|danois +dar|||Dargwa|dargwa +day|||Land Dayak languages|dayak, langues +del|||Delaware|delaware +den|||Slave (Athapascan)|esclave (athapascan) +dgr|||Dogrib|dogrib +din|||Dinka|dinka +div||dv|Divehi; Dhivehi; Maldivian|maldivien +doi|||Dogri|dogri +dra|||Dravidian languages|dravidiennes, langues +dsb|||Lower Sorbian|bas-sorabe +dua|||Duala|douala +dum|||Dutch, Middle (ca.1050-1350)|néerlandais moyen (ca. 1050-1350) +dut|nld|nl|Dutch; Flemish|néerlandais; flamand +dyu|||Dyula|dioula +dzo||dz|Dzongkha|dzongkha +efi|||Efik|efik +egy|||Egyptian (Ancient)|égyptien +eka|||Ekajuk|ekajuk +elx|||Elamite|élamite +eng||en|English|anglais +enm|||English, Middle (1100-1500)|anglais moyen (1100-1500) +epo||eo|Esperanto|espéranto +est||et|Estonian|estonien +ewe||ee|Ewe|éwé +ewo|||Ewondo|éwondo +fan|||Fang|fang +fao||fo|Faroese|féroïen +fat|||Fanti|fanti +fij||fj|Fijian|fidjien +fil|||Filipino; Pilipino|filipino; pilipino +fin||fi|Finnish|finnois +fiu|||Finno-Ugrian languages|finno-ougriennes, langues +fon|||Fon|fon +fre|fra|fr|French|français +frm|||French, Middle (ca.1400-1600)|français moyen (1400-1600) +fro|||French, Old (842-ca.1400)|français ancien (842-ca.1400) +frr|||Northern Frisian|frison septentrional +frs|||Eastern Frisian|frison oriental +fry||fy|Western Frisian|frison occidental +ful||ff|Fulah|peul +fur|||Friulian|frioulan +gaa|||Ga|ga +gay|||Gayo|gayo +gba|||Gbaya|gbaya +gem|||Germanic languages|germaniques, langues +geo|kat|ka|Georgian|géorgien +ger|deu|de|German|allemand +gez|||Geez|guèze +gil|||Gilbertese|kiribati +gla||gd|Gaelic; Scottish Gaelic|gaélique; gaélique écossais +gle||ga|Irish|irlandais +glg||gl|Galician|galicien +glv||gv|Manx|manx; mannois +gmh|||German, Middle High (ca.1050-1500)|allemand, moyen haut (ca. 1050-1500) +goh|||German, Old High (ca.750-1050)|allemand, vieux haut (ca. 750-1050) +gon|||Gondi|gond +gor|||Gorontalo|gorontalo +got|||Gothic|gothique +grb|||Grebo|grebo +grc|||Greek, Ancient (to 1453)|grec ancien (jusqu'à 1453) +gre|ell|el|Greek, Modern (1453-)|grec moderne (après 1453) +grn||gn|Guarani|guarani +gsw|||Swiss German; Alemannic; Alsatian|suisse alémanique; alémanique; alsacien +guj||gu|Gujarati|goudjrati +gwi|||Gwich'in|gwich'in +hai|||Haida|haida +hat||ht|Haitian; Haitian Creole|haïtien; créole haïtien +hau||ha|Hausa|haoussa +haw|||Hawaiian|hawaïen +heb||he|Hebrew|hébreu +her||hz|Herero|herero +hil|||Hiligaynon|hiligaynon +him|||Himachali languages; Western Pahari languages|langues himachalis; langues paharis occidentales +hin||hi|Hindi|hindi +hit|||Hittite|hittite +hmn|||Hmong; Mong|hmong +hmo||ho|Hiri Motu|hiri motu +hrv||hr|Croatian|croate +hsb|||Upper Sorbian|haut-sorabe +hun||hu|Hungarian|hongrois +hup|||Hupa|hupa +iba|||Iban|iban +ibo||ig|Igbo|igbo +ice|isl|is|Icelandic|islandais +ido||io|Ido|ido +iii||ii|Sichuan Yi; Nuosu|yi de Sichuan +ijo|||Ijo languages|ijo, langues +iku||iu|Inuktitut|inuktitut +ile||ie|Interlingue; Occidental|interlingue +ilo|||Iloko|ilocano +ina||ia|Interlingua (International Auxiliary Language Association)|interlingua (langue auxiliaire internationale) +inc|||Indic languages|indo-aryennes, langues +ind||id|Indonesian|indonésien +ine|||Indo-European languages|indo-européennes, langues +inh|||Ingush|ingouche +ipk||ik|Inupiaq|inupiaq +ira|||Iranian languages|iraniennes, langues +iro|||Iroquoian languages|iroquoises, langues +ita||it|Italian|italien +jav||jv|Javanese|javanais +jbo|||Lojban|lojban +jpn||ja|Japanese|japonais +jpr|||Judeo-Persian|judéo-persan +jrb|||Judeo-Arabic|judéo-arabe +kaa|||Kara-Kalpak|karakalpak +kab|||Kabyle|kabyle +kac|||Kachin; Jingpho|kachin; jingpho +kal||kl|Kalaallisut; Greenlandic|groenlandais +kam|||Kamba|kamba +kan||kn|Kannada|kannada +kar|||Karen languages|karen, langues +kas||ks|Kashmiri|kashmiri +kau||kr|Kanuri|kanouri +kaw|||Kawi|kawi +kaz||kk|Kazakh|kazakh +kbd|||Kabardian|kabardien +kha|||Khasi|khasi +khi|||Khoisan languages|khoïsan, langues +khm||km|Central Khmer|khmer central +kho|||Khotanese; Sakan|khotanais; sakan +kik||ki|Kikuyu; Gikuyu|kikuyu +kin||rw|Kinyarwanda|rwanda +kir||ky|Kirghiz; Kyrgyz|kirghiz +kmb|||Kimbundu|kimbundu +kok|||Konkani|konkani +kom||kv|Komi|kom +kon||kg|Kongo|kongo +kor||ko|Korean|coréen +kos|||Kosraean|kosrae +kpe|||Kpelle|kpellé +krc|||Karachay-Balkar|karatchai balkar +krl|||Karelian|carélien +kro|||Kru languages|krou, langues +kru|||Kurukh|kurukh +kua||kj|Kuanyama; Kwanyama|kuanyama; kwanyama +kum|||Kumyk|koumyk +kur||ku|Kurdish|kurde +kut|||Kutenai|kutenai +lad|||Ladino|judéo-espagnol +lah|||Lahnda|lahnda +lam|||Lamba|lamba +lao||lo|Lao|lao +lat||la|Latin|latin +lav||lv|Latvian|letton +lez|||Lezghian|lezghien +lim||li|Limburgan; Limburger; Limburgish|limbourgeois +lin||ln|Lingala|lingala +lit||lt|Lithuanian|lituanien +lol|||Mongo|mongo +loz|||Lozi|lozi +ltz||lb|Luxembourgish; Letzeburgesch|luxembourgeois +lua|||Luba-Lulua|luba-lulua +lub||lu|Luba-Katanga|luba-katanga +lug||lg|Ganda|ganda +lui|||Luiseno|luiseno +lun|||Lunda|lunda +luo|||Luo (Kenya and Tanzania)|luo (Kenya et Tanzanie) +lus|||Lushai|lushai +mac|mkd|mk|Macedonian|macédonien +mad|||Madurese|madourais +mag|||Magahi|magahi +mah||mh|Marshallese|marshall +mai|||Maithili|maithili +mak|||Makasar|makassar +mal||ml|Malayalam|malayalam +man|||Mandingo|mandingue +mao|mri|mi|Maori|maori +map|||Austronesian languages|austronésiennes, langues +mar||mr|Marathi|marathe +mas|||Masai|massaï +may|msa|ms|Malay|malais +mdf|||Moksha|moksa +mdr|||Mandar|mandar +men|||Mende|mendé +mga|||Irish, Middle (900-1200)|irlandais moyen (900-1200) +mic|||Mi'kmaq; Micmac|mi'kmaq; micmac +min|||Minangkabau|minangkabau +mis|||Uncoded languages|langues non codées +mkh|||Mon-Khmer languages|môn-khmer, langues +mlg||mg|Malagasy|malgache +mlt||mt|Maltese|maltais +mnc|||Manchu|mandchou +mni|||Manipuri|manipuri +mno|||Manobo languages|manobo, langues +moh|||Mohawk|mohawk +mon||mn|Mongolian|mongol +mos|||Mossi|moré +mul|||Multiple languages|multilingue +mun|||Munda languages|mounda, langues +mus|||Creek|muskogee +mwl|||Mirandese|mirandais +mwr|||Marwari|marvari +myn|||Mayan languages|maya, langues +myv|||Erzya|erza +nah|||Nahuatl languages|nahuatl, langues +nai|||North American Indian languages|nord-amérindiennes, langues +nap|||Neapolitan|napolitain +nau||na|Nauru|nauruan +nav||nv|Navajo; Navaho|navaho +nbl||nr|Ndebele, South; South Ndebele|ndébélé du Sud +nde||nd|Ndebele, North; North Ndebele|ndébélé du Nord +ndo||ng|Ndonga|ndonga +nds|||Low German; Low Saxon; German, Low; Saxon, Low|bas allemand; bas saxon; allemand, bas; saxon, bas +nep||ne|Nepali|népalais +new|||Nepal Bhasa; Newari|nepal bhasa; newari +nia|||Nias|nias +nic|||Niger-Kordofanian languages|nigéro-kordofaniennes, langues +niu|||Niuean|niué +nno||nn|Norwegian Nynorsk; Nynorsk, Norwegian|norvégien nynorsk; nynorsk, norvégien +nob||nb|Bokmål, Norwegian; Norwegian Bokmål|norvégien bokmål +nog|||Nogai|nogaï; nogay +non|||Norse, Old|norrois, vieux +nor||no|Norwegian|norvégien +nqo|||N'Ko|n'ko +nso|||Pedi; Sepedi; Northern Sotho|pedi; sepedi; sotho du Nord +nub|||Nubian languages|nubiennes, langues +nwc|||Classical Newari; Old Newari; Classical Nepal Bhasa|newari classique +nya||ny|Chichewa; Chewa; Nyanja|chichewa; chewa; nyanja +nym|||Nyamwezi|nyamwezi +nyn|||Nyankole|nyankolé +nyo|||Nyoro|nyoro +nzi|||Nzima|nzema +oci||oc|Occitan (post 1500); Provençal|occitan (après 1500); provençal +oji||oj|Ojibwa|ojibwa +ori||or|Oriya|oriya +orm||om|Oromo|galla +osa|||Osage|osage +oss||os|Ossetian; Ossetic|ossète +ota|||Turkish, Ottoman (1500-1928)|turc ottoman (1500-1928) +oto|||Otomian languages|otomi, langues +paa|||Papuan languages|papoues, langues +pag|||Pangasinan|pangasinan +pal|||Pahlavi|pahlavi +pam|||Pampanga; Kapampangan|pampangan +pan||pa|Panjabi; Punjabi|pendjabi +pap|||Papiamento|papiamento +pau|||Palauan|palau +peo|||Persian, Old (ca.600-400 B.C.)|perse, vieux (ca. 600-400 av. J.-C.) +per|fas|fa|Persian|persan +phi|||Philippine languages|philippines, langues +phn|||Phoenician|phénicien +pli||pi|Pali|pali +pol||pl|Polish|polonais +pon|||Pohnpeian|pohnpei +por||pt|Portuguese|portugais +pra|||Prakrit languages|prâkrit, langues +pro|||Provençal, Old (to 1500)|provençal ancien (jusqu'à 1500) +pus||ps|Pushto; Pashto|pachto +qaa-qtz|||Reserved for local use|réservée à l'usage local +que||qu|Quechua|quechua +raj|||Rajasthani|rajasthani +rap|||Rapanui|rapanui +rar|||Rarotongan; Cook Islands Maori|rarotonga; maori des îles Cook +roa|||Romance languages|romanes, langues +roh||rm|Romansh|romanche +rom|||Romany|tsigane +rum|ron|ro|Romanian; Moldavian; Moldovan|roumain; moldave +run||rn|Rundi|rundi +rup|||Aromanian; Arumanian; Macedo-Romanian|aroumain; macédo-roumain +rus||ru|Russian|russe +sad|||Sandawe|sandawe +sag||sg|Sango|sango +sah|||Yakut|iakoute +sai|||South American Indian (Other)|indiennes d'Amérique du Sud, autres langues +sal|||Salishan languages|salishennes, langues +sam|||Samaritan Aramaic|samaritain +san||sa|Sanskrit|sanskrit +sas|||Sasak|sasak +sat|||Santali|santal +scn|||Sicilian|sicilien +sco|||Scots|écossais +sel|||Selkup|selkoupe +sem|||Semitic languages|sémitiques, langues +sga|||Irish, Old (to 900)|irlandais ancien (jusqu'à 900) +sgn|||Sign Languages|langues des signes +shn|||Shan|chan +sid|||Sidamo|sidamo +sin||si|Sinhala; Sinhalese|singhalais +sio|||Siouan languages|sioux, langues +sit|||Sino-Tibetan languages|sino-tibétaines, langues +sla|||Slavic languages|slaves, langues +slo|slk|sk|Slovak|slovaque +slv||sl|Slovenian|slovène +sma|||Southern Sami|sami du Sud +sme||se|Northern Sami|sami du Nord +smi|||Sami languages|sames, langues +smj|||Lule Sami|sami de Lule +smn|||Inari Sami|sami d'Inari +smo||sm|Samoan|samoan +sms|||Skolt Sami|sami skolt +sna||sn|Shona|shona +snd||sd|Sindhi|sindhi +snk|||Soninke|soninké +sog|||Sogdian|sogdien +som||so|Somali|somali +son|||Songhai languages|songhai, langues +sot||st|Sotho, Southern|sotho du Sud +spa||es|Spanish; Castilian|espagnol; castillan +srd||sc|Sardinian|sarde +srn|||Sranan Tongo|sranan tongo +srp||sr|Serbian|serbe +srr|||Serer|sérère +ssa|||Nilo-Saharan languages|nilo-sahariennes, langues +ssw||ss|Swati|swati +suk|||Sukuma|sukuma +sun||su|Sundanese|soundanais +sus|||Susu|soussou +sux|||Sumerian|sumérien +swa||sw|Swahili|swahili +swe||sv|Swedish|suédois +syc|||Classical Syriac|syriaque classique +syr|||Syriac|syriaque +tah||ty|Tahitian|tahitien +tai|||Tai languages|tai, langues +tam||ta|Tamil|tamoul +tat||tt|Tatar|tatar +tel||te|Telugu|télougou +tem|||Timne|temne +ter|||Tereno|tereno +tet|||Tetum|tetum +tgk||tg|Tajik|tadjik +tgl||tl|Tagalog|tagalog +tha||th|Thai|thaï +tib|bod|bo|Tibetan|tibétain +tig|||Tigre|tigré +tir||ti|Tigrinya|tigrigna +tiv|||Tiv|tiv +tkl|||Tokelau|tokelau +tlh|||Klingon; tlhIngan-Hol|klingon +tli|||Tlingit|tlingit +tmh|||Tamashek|tamacheq +tog|||Tonga (Nyasa)|tonga (Nyasa) +ton||to|Tonga (Tonga Islands)|tongan (Îles Tonga) +tpi|||Tok Pisin|tok pisin +tsi|||Tsimshian|tsimshian +tsn||tn|Tswana|tswana +tso||ts|Tsonga|tsonga +tuk||tk|Turkmen|turkmène +tum|||Tumbuka|tumbuka +tup|||Tupi languages|tupi, langues +tur||tr|Turkish|turc +tut|||Altaic languages|altaïques, langues +tvl|||Tuvalu|tuvalu +twi||tw|Twi|twi +tyv|||Tuvinian|touva +udm|||Udmurt|oudmourte +uga|||Ugaritic|ougaritique +uig||ug|Uighur; Uyghur|ouïgour +ukr||uk|Ukrainian|ukrainien +umb|||Umbundu|umbundu +und|||Undetermined|indéterminée +urd||ur|Urdu|ourdou +uzb||uz|Uzbek|ouszbek +vai|||Vai|vaï +ven||ve|Venda|venda +vie||vi|Vietnamese|vietnamien +vol||vo|Volapük|volapük +vot|||Votic|vote +wak|||Wakashan languages|wakashanes, langues +wal|||Walamo|walamo +war|||Waray|waray +was|||Washo|washo +wel|cym|cy|Welsh|gallois +wen|||Sorbian languages|sorabes, langues +wln||wa|Walloon|wallon +wol||wo|Wolof|wolof +xal|||Kalmyk; Oirat|kalmouk; oïrat +xho||xh|Xhosa|xhosa +yao|||Yao|yao +yap|||Yapese|yapois +yid||yi|Yiddish|yiddish +yor||yo|Yoruba|yoruba +ypk|||Yupik languages|yupik, langues +zap|||Zapotec|zapotèque +zbl|||Blissymbols; Blissymbolics; Bliss|symboles Bliss; Bliss +zen|||Zenaga|zenaga +zgh|||Standard Moroccan Tamazight|amazighe standard marocain +zha||za|Zhuang; Chuang|zhuang; chuang +znd|||Zande languages|zandé, langues +zul||zu|Zulu|zoulou +zun|||Zuni|zuni +zxx|||No linguistic content; Not applicable|pas de contenu linguistique; non applicable +zza|||Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki|zaza; dimili; dimli; kirdki; kirmanjki; zazaki \ No newline at end of file diff --git a/data/Makefile.am b/data/Makefile.am index 2a92ce1..b8f1c67 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -19,6 +19,7 @@ sugar-72-contrast.gtkrc: gtkrc-contrast.em sugardir = $(pkgdatadir)/data sugar_DATA = \ activities.defaults \ + ISO-639-2_utf-8.txt \ kbdconfig \ mime.defaults \ GPLv2 \ diff --git a/extensions/cpsection/keyboard/model.py b/extensions/cpsection/keyboard/model.py index bfd7e31..16f6a01 100644 --- a/extensions/cpsection/keyboard/model.py +++ b/extensions/cpsection/keyboard/model.py @@ -1,3 +1,4 @@ +# Copyright (C) 2013 Sugar Labs # Copyright (C) 2009 OLPC # Author: Sayamindu Dasgupta # @@ -16,9 +17,11 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -import xklavier +from gi.repository import Xkl from gi.repository import GConf +from gi.repository import SugarExt +import logging _GROUP_NAME = 'grp' # The XKB name for group switch options @@ -27,29 +30,35 @@ _OPTIONS_KEY = '/desktop/sugar/peripherals/keyboard/options' _MODEL_KEY = '/desktop/sugar/peripherals/keyboard/model' +def _item_str(s): + '''Convert a zero-terminated byte array to a proper str''' + + i = s.find(b'\x00') + return s[:i].decode("utf-8") + + class KeyboardManager(object): def __init__(self, display): - self._engine = xklavier.Engine(display) - self._configregistry = xklavier.ConfigRegistry(self._engine) + self._engine = Xkl.Engine.get_instance(display) + self._configregistry = Xkl.ConfigRegistry.get_instance(self._engine) self._configregistry.load(False) - self._configrec = xklavier.ConfigRec() + self._configrec = Xkl.ConfigRec() self._configrec.get_from_server(self._engine) self._gconf_client = GConf.Client.get_default() def _populate_one(self, config_registry, item, store): - store.append([item.get_description(), item.get_name()]) + store.append([_item_str(item.description), _item_str(item.name)]) def _populate_two(self, config_registry, item, subitem, store): - layout = item.get_name() + layout = _item_str(item.name) if subitem: - description = '%s, %s' % (subitem.get_description(), \ - item.get_description()) - variant = subitem.get_name() + description = '%s, %s' % (_item_str(subitem.description), + _item_str(item.description)) + variant = _item_str(subitem.name) else: - description = 'Default layout, %s' % item.get_description() + description = 'Default layout, %s' % _item_str(item.description) variant = '' - store.append([description, ('%s(%s)' % (layout, variant))]) def get_models(self): @@ -69,8 +78,9 @@ class KeyboardManager(object): def get_layouts_for_language(self, language): """Return list of supported keyboard layouts for a given language""" layouts = [] - self._configregistry.foreach_language_variant(language, \ - self._populate_two, layouts) + self._configregistry.foreach_language_variant(language, + self._populate_two, + layouts) layouts.sort() return layouts @@ -85,18 +95,15 @@ class KeyboardManager(object): def get_current_model(self): """Return the enabled keyboard model""" model = self._gconf_client.get_string(_MODEL_KEY) - if model: - return model - else: - model = self._configrec.get_model() + if not model: + model = self._configrec.model self.set_model(model) - return model + return model def get_current_layouts(self): """Return the enabled keyboard layouts with variants""" # FIXME, gconf_client_get_list not introspectable #681433 - layouts_from_gconf = self._gconf_client.get( - '/desktop/sugar/peripherals/keyboard/layouts') + layouts_from_gconf = self._gconf_client.get(_LAYOUTS_KEY) layouts = [] if layouts_from_gconf: for gval in layouts_from_gconf.get_list(): @@ -105,8 +112,8 @@ class KeyboardManager(object): if layouts: return layouts - layouts = self._configrec.get_layouts() - variants = self._configrec.get_variants() + layouts = self._configrec.layouts + variants = self._configrec.variants layout_list = [] i = 0 @@ -118,22 +125,20 @@ class KeyboardManager(object): i += 1 self.set_layouts(layout_list) - return layout_list def get_current_option_group(self): """Return the enabled option for switching keyboard group""" options = [] # FIXME, gconf_client_get_list not introspectable #681433 - options_from_gconf = gconf_client.get(\ - '/desktop/sugar/peripherals/keyboard/options') + options_from_gconf = self._gconf_client.get(_OPTIONS_KEY) if options_from_gconf: for gval in options_from_gconf.get_list(): option = gval.get_string() options.append(option) if not options: - options = self._configrec.get_options() + options = self._configrec.options self.set_option_group(options) for option in options: @@ -163,7 +168,11 @@ class KeyboardManager(object): options = option_group else: options = [option_group] - self._gconf_client.set_list(_OPTIONS_KEY, GConf.ValueType.STRING, options) + # FIXME, gconf_client_set_list not introspectable #681433 + # self._gconf_client.set_list(_OPTIONS_KEY, GConf.ValueType.STRING, + # options) + SugarExt.gconf_client_set_string_list(self._gconf_client, + _OPTIONS_KEY, options) self._configrec.set_options(options) self._configrec.activate(self._engine) @@ -171,13 +180,16 @@ class KeyboardManager(object): """Sets the supplied keyboard layouts (with variants)""" if layouts is None or not layouts: return - self._gconf_client.set_list(_LAYOUTS_KEY, GConf.ValueType.STRING, layouts) + # FIXME, gconf_client_set_list not introspectable #681433 + # self._gconf_client.set_list(_LAYOUTS_KEY, GConf.ValueType.STRING, + # layouts) + SugarExt.gconf_client_set_string_list(self._gconf_client, + _LAYOUTS_KEY, layouts) layouts_list = [] variants_list = [] for layout in layouts: layouts_list.append(layout.split('(')[0]) variants_list.append(layout.split('(')[1][:-1]) - self._configrec.set_layouts(layouts_list) self._configrec.set_variants(variants_list) self._configrec.activate(self._engine) diff --git a/extensions/cpsection/keyboard/view.py b/extensions/cpsection/keyboard/view.py index 085ec10..46e508f 100644 --- a/extensions/cpsection/keyboard/view.py +++ b/extensions/cpsection/keyboard/view.py @@ -1,3 +1,4 @@ +# Copyright (C) 2013, Sugar Labs # Copyright (C) 2009, OLPC # Author: Sayamindu Dasgupta # @@ -15,9 +16,14 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +import os +import locale + from gi.repository import Gtk +from gi.repository import GdkX11 from gi.repository import GObject from gi.repository import Pango + import logging from gettext import gettext as _ @@ -25,7 +31,7 @@ from sugar3.graphics import style from sugar3.graphics.icon import Icon from jarabe.controlpanel.sectionview import SectionView - +from jarabe.config import data_path CLASS = 'Language' ICON = 'module-keyboard' @@ -33,14 +39,35 @@ TITLE = _('Keyboard') _APPLY_TIMEOUT = 500 +_iso_639_1_to_2 = {} + #TODO: This cpsection adds checks for xklavier in bin/sugar-session and # src/jarabe/controlpanel/gui.py. We should get rid of these checks # once python-xklavier has been packaged for all major distributions # For more information, see: http://dev.sugarlabs.org/ticket/407 -class LayoutCombo(Gtk.HBox): +def _build_ISO_639_dictionary(): + """ The keyboard section of the control panel requires a conversion + between ISO 639 two-character codes and three-character code. This + method uses the table available at: + http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt + """ + + ISO_DATA_FILE = 'ISO-639-2_utf-8.txt' + + path = os.path.join(data_path, ISO_DATA_FILE) + if os.path.exists(path): + f = open(path, 'r') + for line in f: + codes = line.split('|') + if codes[2] != '': + _iso_639_1_to_2[codes[2]] = codes[0] + else: + logging.error('%s not found' % (ISO_DATA_FILE)) + +class LayoutCombo(Gtk.HBox): """ Custom GTK widget with two comboboxes side by side, one for layout, and the other for variants for the selected layout. @@ -62,12 +89,12 @@ class LayoutCombo(Gtk.HBox): label = Gtk.Label(label=' %s ' % str(n + 1)) label.set_use_markup(True) label.modify_fg(Gtk.StateType.NORMAL, - style.COLOR_SELECTION_GREY.get_gdk_color()) + style.COLOR_SELECTION_GREY.get_gdk_color()) label.set_alignment(0.5, 0.5) self.pack_start(label, False, True, 0) - self._klang_store = Gtk.ListStore(GObject.TYPE_STRING, \ - GObject.TYPE_STRING) + self._klang_store = Gtk.ListStore(GObject.TYPE_STRING, + GObject.TYPE_STRING) for description, name in self._keyboard_manager.get_languages(): self._klang_store.append([name, description]) @@ -84,33 +111,52 @@ class LayoutCombo(Gtk.HBox): self._kvariant_store = None self._kvariant_combo = Gtk.ComboBox(model=None) self._kvariant_combo_changed_id = \ - self._kvariant_combo.connect('changed', \ - self._kvariant_combo_changed_cb) + self._kvariant_combo.connect('changed', + self._kvariant_combo_changed_cb) cell = Gtk.CellRendererText() cell.props.ellipsize = Pango.EllipsizeMode.MIDDLE cell.props.ellipsize_set = True self._kvariant_combo.pack_start(cell, True) self._kvariant_combo.add_attribute(cell, 'text', 1) - self.pack_start(self._kvariant_combo, expand=True, fill=True, padding=0) + self.pack_start(self._kvariant_combo, expand=True, fill=True, + padding=0) self._klang_combo.set_active(self._index) def select_layout(self, layout): """Select a given keyboard layout and show appropriate variants""" + self._kvariant_combo.handler_block(self._kvariant_combo_changed_id) - for i in range(0, len(self._klang_store)): - self._klang_combo.set_active(i) - for j in range(0, len(self._kvariant_store)): - if self._kvariant_store[j][0] == layout: - self._kvariant_combo.set_active(j) - self._kvariant_combo.handler_unblock(\ - self._kvariant_combo_changed_id) + + # Look for $LANG first + for lang in os.environ.get('LANG', + locale.getdefaultlocale()[0]).split(':'): + if lang[0:2] in _iso_639_1_to_2: + if self._look_for_lang_and_layout(_iso_639_1_to_2[lang[0:2]], + layout): return True + # Then look for any language + if self._look_for_lang_and_layout(None, layout): + return True + + # Finally, select a default self._kvariant_combo.handler_unblock(self._kvariant_combo_changed_id) self._klang_combo.set_active(0) return False + def _look_for_lang_and_layout(self, lang, layout): + for i in range(0, len(self._klang_store)): + if lang == self._klang_store[i][0] or lang is None: + self._klang_combo.set_active(i) + for j in range(0, len(self._kvariant_store)): + if self._kvariant_store[j][0] == layout: + self._kvariant_combo.set_active(j) + self._kvariant_combo.handler_unblock( + self._kvariant_combo_changed_id) + return True + return False + def get_layout(self): """Gets the selected layout (with variant)""" it = self._kvariant_combo.get_active_iter() @@ -118,8 +164,8 @@ class LayoutCombo(Gtk.HBox): return model.get(it, 0)[0] def _set_kvariant_store(self, lang): - self._kvariant_store = Gtk.ListStore(GObject.TYPE_STRING, \ - GObject.TYPE_STRING) + self._kvariant_store = Gtk.ListStore(GObject.TYPE_STRING, + GObject.TYPE_STRING) layouts = self._keyboard_manager.get_layouts_for_language(lang) for description, name in layouts: self._kvariant_store.append([name, description]) @@ -159,7 +205,11 @@ class Keyboard(SectionView): self._layout_table = Gtk.Table(rows=4, columns=2, homogeneous=False) - self._keyboard_manager = model.KeyboardManager(self.get_display()) + _build_ISO_639_dictionary() + + self._keyboard_manager = model.KeyboardManager( + GdkX11.x11_get_default_xdisplay()) + self._layout_combo_list = [] self._layout_addremovebox_list = [] @@ -196,8 +246,8 @@ class Keyboard(SectionView): box_kmodel.set_border_width(style.DEFAULT_SPACING * 2) box_kmodel.set_spacing(style.DEFAULT_SPACING) - kmodel_store = Gtk.ListStore(GObject.TYPE_STRING, \ - GObject.TYPE_STRING) + kmodel_store = Gtk.ListStore(GObject.TYPE_STRING, + GObject.TYPE_STRING) for description, name in self._keyboard_manager.get_models(): kmodel_store.append([name, description]) @@ -225,7 +275,8 @@ class Keyboard(SectionView): if self.__kmodel_sid is not None: GObject.source_remove(self.__kmodel_sid) self.__kmodel_sid = GObject.timeout_add(_APPLY_TIMEOUT, - self.__kmodel_timeout_cb, combobox) + self.__kmodel_timeout_cb, + combobox) def __kmodel_timeout_cb(self, combobox): it = combobox.get_active_iter() @@ -256,8 +307,8 @@ class Keyboard(SectionView): box_group_option.set_border_width(style.DEFAULT_SPACING * 2) box_group_option.set_spacing(style.DEFAULT_SPACING) - group_option_store = Gtk.ListStore(GObject.TYPE_STRING, \ - GObject.TYPE_STRING) + group_option_store = Gtk.ListStore(GObject.TYPE_STRING, + GObject.TYPE_STRING) for description, name in self._keyboard_manager.get_options_group(): group_option_store.append([name, description]) @@ -269,7 +320,7 @@ class Keyboard(SectionView): group_option_combo.add_attribute(cell, 'text', 1) self._group_switch_option = \ - self._keyboard_manager.get_current_option_group() + self._keyboard_manager.get_current_option_group() if not self._group_switch_option: group_option_combo.set_active(0) else: @@ -286,14 +337,13 @@ class Keyboard(SectionView): self._vbox.pack_start(box_group_option, False, True, 0) box_group_option.show_all() - group_option_combo.connect('changed', \ - self.__group_switch_changed_cb) + group_option_combo.connect('changed', self.__group_switch_changed_cb) def __group_switch_changed_cb(self, combobox): if self.__group_switch_sid is not None: GObject.source_remove(self.__group_switch_sid) - self.__group_switch_sid = GObject.timeout_add(_APPLY_TIMEOUT, - self.__group_switch_timeout_cb, combobox) + self.__group_switch_sid = GObject.timeout_add( + _APPLY_TIMEOUT, self.__group_switch_timeout_cb, combobox) def __group_switch_timeout_cb(self, combobox): it = combobox.get_active_iter() @@ -303,7 +353,7 @@ class Keyboard(SectionView): self._keyboard_manager.get_current_option_group(): return try: - self._keyboard_manager.set_option_group(\ + self._keyboard_manager.set_option_group( self._selected_group_switch_option) except Exception: logging.exception('Could not set new keyboard group switch option') @@ -328,8 +378,8 @@ class Keyboard(SectionView): self._layout_table.attach(add_remove_box, 1, 2, i, i + 1) layout_combo = LayoutCombo(self._keyboard_manager, i) - layout_combo.connect('selection-changed', \ - self.__layout_combo_selection_changed_cb) + layout_combo.connect('selection-changed', + self.__layout_combo_selection_changed_cb) self._layout_combo_list.append(layout_combo) self._layout_table.attach(layout_combo, 0, 1, i, i + 1) @@ -338,7 +388,8 @@ class Keyboard(SectionView): layout_combo.select_layout(self._klayouts[i]) self._vbox.pack_start(self._layout_table, False, True, 0) - self._layout_table.set_size_request(self._vbox.size_request()[0], -1) + self._layout_table.set_size_request( + self._vbox.get_size_request()[0], -1) self._layout_table.show() self._update_klayouts() @@ -366,13 +417,13 @@ class Keyboard(SectionView): add_button = Gtk.Button() add_button.set_image(add_icon) add_button.connect('clicked', - self.__add_button_clicked_cb) + self.__add_button_clicked_cb) remove_icon = Icon(icon_name='list-remove') remove_button = Gtk.Button() remove_button.set_image(remove_icon) remove_button.connect('clicked', - self.__remove_button_clicked_cb) + self.__remove_button_clicked_cb) add_remove_box = Gtk.HButtonBox() add_remove_box.set_layout(Gtk.ButtonBoxStyle.START) @@ -405,7 +456,7 @@ class Keyboard(SectionView): if self.__layout_sid is not None: GObject.source_remove(self.__layout_sid) self.__layout_sid = GObject.timeout_add(_APPLY_TIMEOUT, - self.__layout_timeout_cb) + self.__layout_timeout_cb) def __layout_timeout_cb(self): if self._selected_klayouts == \ diff --git a/extensions/deviceicon/battery.py b/extensions/deviceicon/battery.py index 21dc5f3..362822d 100644 --- a/extensions/deviceicon/battery.py +++ b/extensions/deviceicon/battery.py @@ -177,7 +177,7 @@ class BatteryPalette(Palette): class DeviceModel(GObject.GObject): __gproperties__ = { 'level': (int, None, None, 0, 100, 0, GObject.PARAM_READABLE), - 'time-remaining': (int, None, None, 0, GObject.constants.G_MAXINT32, 0, + 'time-remaining': (int, None, None, 0, GLib.MAXINT32, 0, GObject.PARAM_READABLE), # unit: seconds 'charging': (bool, None, None, False, GObject.PARAM_READABLE), 'discharging': (bool, None, None, False, GObject.PARAM_READABLE), diff --git a/po/POTFILES.in b/po/POTFILES.in index f2b63cf..e98be61 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -6,6 +6,9 @@ extensions/cpsection/aboutcomputer/model.py extensions/cpsection/aboutcomputer/view.py extensions/cpsection/accessibility/__init__.py extensions/cpsection/accessibility/view.py +extensions/cpsection/background/__init__.py +extensions/cpsection/background/view.py +extensions/cpsection/background/model.py extensions/cpsection/datetime/__init__.py extensions/cpsection/datetime/model.py extensions/cpsection/datetime/view.py diff --git a/po/ayc.po b/po/ayc.po index 8fc546d..d8768a4 100644 --- a/po/ayc.po +++ b/po/ayc.po @@ -6,11 +6,11 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-05 00:34-0400\n" -"PO-Revision-Date: 2012-09-28 15:22+0200\n" -"Last-Translator: EdgarQuispeChambi \n" +"POT-Creation-Date: 2013-01-20 21:08-0500\n" +"PO-Revision-Date: 2013-04-27 20:32+0200\n" +"Last-Translator: Chris \n" "Language-Team: LANGUAGE \n" -"Language: aym\n" +"Language: ayc\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -54,7 +54,7 @@ msgstr "phuqachata: %s" # "Error en modificadores de color especificados." #: ../extensions/cpsection/aboutme/model.py:94 msgid "Error in specified color modifiers." -msgstr "Samichatanaka chiqachäwi phuqachañana pantjata ." +msgstr "Samichatanaka chiqachäwi phuqachañana pantjata." # "Error en colores especificados." #: ../extensions/cpsection/aboutme/model.py:97 @@ -62,7 +62,7 @@ msgid "Error in specified colors." msgstr "Samichatanaka phuqachatana pantjata." # "Clic para cambiar su color:" -#: ../extensions/cpsection/aboutme/view.py:216 +#: ../extensions/cpsection/aboutme/view.py:212 msgid "Click to change your color:" msgstr "Samichata mayjt'ayañataki q'upt'ma:" @@ -109,7 +109,7 @@ msgstr "Firmware wakichata:" # "Firmware de la red inalámbrica:" #: ../extensions/cpsection/aboutcomputer/view.py:145 msgid "Wireless Firmware:" -msgstr "Firmware wakichata uka Red inalámbrica wakichataru wakisiri :" +msgstr "Firmware wakichata uka Red inalámbrica wakichataru wakisiri:" # "Licencia y derechos de autor" #: ../extensions/cpsection/aboutcomputer/view.py:168 @@ -144,7 +144,7 @@ msgid "Error timezone does not exist." msgstr "Pantjata, pacha chinuwa chhaqi." # "Zona horaria" -#: ../extensions/cpsection/datetime/view.py:70 ../data/sugar.schemas.in.h:54 +#: ../extensions/cpsection/datetime/view.py:66 ../data/sugar.schemas.in.h:54 msgid "Timezone" msgstr "Pacha chinu suyu" @@ -198,7 +198,7 @@ msgstr "Qillqanaka q'upt'aña" # "Modelo de teclado" #: ../extensions/cpsection/keyboard/view.py:190 msgid "Keyboard Model" -msgstr "Qillqaña kasta " +msgstr "Qillqaña kasta" # "Tecla(s) para cambiar el diseño" #: ../extensions/cpsection/keyboard/view.py:250 @@ -340,7 +340,7 @@ msgid "Automatic power management (increases battery life)" msgstr "kipqaki ch'ama apnaqawipa (batteria jaya jaqañataqi)" #: ../extensions/cpsection/updater/__init__.py:21 -#: ../src/jarabe/desktop/homebox.py:62 +#: ../src/jarabe/desktop/homebox.py:63 msgid "Software Update" msgstr "Software wakichata machaqaptayäwi" @@ -378,7 +378,7 @@ msgstr "amuyt'awimaxa machaqaptayatawa" #, python-format, msgid "You can install %s update" msgid_plural "You can install %s updates" -msgstr[0] " %s chani machaqachaña wakichasmawa" +msgstr[0] "%s chani machaqachaña wakichasmawa" msgstr[1] "%s chani machaqachañanaka wakichasmawa" #: ../extensions/cpsection/updater/view.py:159 @@ -435,213 +435,213 @@ msgstr "%.0f KB wakichata" msgid "%.1f MB" msgstr "%.1f MB wakichata" -#: ../extensions/deviceicon/battery.py:70 +#: ../extensions/deviceicon/battery.py:71 msgid "My Battery" msgstr "Batería utjirija" -#: ../extensions/deviceicon/battery.py:151 +#: ../extensions/deviceicon/battery.py:153 msgid "Removed" msgstr "Apsuta" -#: ../extensions/deviceicon/battery.py:154 +#: ../extensions/deviceicon/battery.py:156 msgid "Charging" msgstr "Ch'amanchaski" -#: ../extensions/deviceicon/battery.py:157 +#: ../extensions/deviceicon/battery.py:159 msgid "Very little power remaining" msgstr "pisi ch'amanikxiwa watiriyaxa" #. TRANS: do not translate %(hour)d:%(min).2d it is a variable, #. only translate the word "remaining" -#: ../extensions/deviceicon/battery.py:164 +#: ../extensions/deviceicon/battery.py:166 #, python-format msgid "%(hour)d:%(min).2d remaining" msgstr "Suyt'añawa %(hour)d:%(min).2d pacha" # "Cargada" -#: ../extensions/deviceicon/battery.py:167 +#: ../extensions/deviceicon/battery.py:169 msgid "Charged" msgstr "Ch'amanchata" #: ../extensions/deviceicon/frame.py:57 msgid "Show my keyboard" -msgstr "" +msgstr "Qillqañaja uñachayaña" -#: ../extensions/deviceicon/network.py:50 +#: ../extensions/deviceicon/network.py:51 #, python-format msgid "IP address: %s" msgstr "IP thaki katjawi: %s" -#: ../extensions/deviceicon/network.py:80 -#: ../extensions/deviceicon/network.py:296 -#: ../src/jarabe/desktop/networkviews.py:129 -#: ../src/jarabe/desktop/networkviews.py:495 +#: ../extensions/deviceicon/network.py:83 +#: ../extensions/deviceicon/network.py:299 +#: ../src/jarabe/desktop/networkviews.py:137 +#: ../src/jarabe/desktop/networkviews.py:509 msgid "Disconnect" msgstr "mistuña" -#: ../extensions/deviceicon/network.py:105 -#: ../extensions/deviceicon/network.py:288 -#: ../src/jarabe/desktop/networkviews.py:238 -#: ../src/jarabe/desktop/networkviews.py:533 -#: ../src/jarabe/desktop/networkviews.py:668 +#: ../extensions/deviceicon/network.py:108 +#: ../extensions/deviceicon/network.py:291 +#: ../src/jarabe/desktop/networkviews.py:252 +#: ../src/jarabe/desktop/networkviews.py:550 +#: ../src/jarabe/desktop/networkviews.py:691 msgid "Connecting..." msgstr "Mayachasa..." -#: ../extensions/deviceicon/network.py:110 -#: ../extensions/deviceicon/network.py:178 -#: ../src/jarabe/desktop/networkviews.py:245 -#: ../src/jarabe/desktop/networkviews.py:539 -#: ../src/jarabe/desktop/networkviews.py:674 +#: ../extensions/deviceicon/network.py:113 +#: ../extensions/deviceicon/network.py:181 +#: ../src/jarabe/desktop/networkviews.py:259 +#: ../src/jarabe/desktop/networkviews.py:556 +#: ../src/jarabe/desktop/networkviews.py:697 msgid "Connected" msgstr "Mayachata" -#: ../extensions/deviceicon/network.py:123 +#: ../extensions/deviceicon/network.py:126 msgid "No wireless connection" msgstr "Jani mayachaña utjiti" -#: ../extensions/deviceicon/network.py:137 +#: ../extensions/deviceicon/network.py:140 msgid "Channel" msgstr "thaki" -#: ../extensions/deviceicon/network.py:152 +#: ../extensions/deviceicon/network.py:155 msgid "Wired Network" msgstr "Mayachasïwi simpjata" -#: ../extensions/deviceicon/network.py:181 +#: ../extensions/deviceicon/network.py:184 msgid "Speed" msgstr "K'ata jaltäwi" -#: ../extensions/deviceicon/network.py:206 +#: ../extensions/deviceicon/network.py:209 msgid "Wireless modem" msgstr "Wayra taypi sariri Módem wakichata" -#: ../extensions/deviceicon/network.py:274 +#: ../extensions/deviceicon/network.py:277 msgid "Please wait..." msgstr "Maya k'ata suyt'ma..." -#: ../extensions/deviceicon/network.py:279 -#: ../src/jarabe/desktop/networkviews.py:125 -#: ../src/jarabe/desktop/networkviews.py:490 -#: ../src/jarabe/desktop/networkviews.py:624 +#: ../extensions/deviceicon/network.py:282 +#: ../src/jarabe/desktop/networkviews.py:131 +#: ../src/jarabe/desktop/networkviews.py:503 +#: ../src/jarabe/desktop/networkviews.py:642 msgid "Connect" msgstr "Mayachaña" -#: ../extensions/deviceicon/network.py:280 +#: ../extensions/deviceicon/network.py:283 msgid "Disconnected" msgstr "Mistuta" -#: ../extensions/deviceicon/network.py:287 -#: ../src/jarabe/controlpanel/toolbar.py:119 -#: ../src/jarabe/desktop/homebox.py:67 -#: ../src/jarabe/frame/activitiestray.py:606 -#: ../src/jarabe/frame/activitiestray.py:708 -#: ../src/jarabe/frame/activitiestray.py:736 -#: ../src/jarabe/journal/journaltoolbox.py:427 -#: ../src/jarabe/journal/palettes.py:153 +#: ../extensions/deviceicon/network.py:290 +#: ../src/jarabe/controlpanel/toolbar.py:121 +#: ../src/jarabe/desktop/homebox.py:68 ../src/jarabe/desktop/keydialog.py:100 +#: ../src/jarabe/frame/activitiestray.py:611 +#: ../src/jarabe/frame/activitiestray.py:713 +#: ../src/jarabe/frame/activitiestray.py:741 +#: ../src/jarabe/journal/journaltoolbox.py:428 +#: ../src/jarabe/journal/palettes.py:154 msgid "Cancel" msgstr "Tukuyaña" # Trate de conectarse de nuevo -#: ../extensions/deviceicon/network.py:326 +#: ../extensions/deviceicon/network.py:329 msgid "Try connection again" msgstr "Mayampi mayachasiña yant'ma" -#: ../extensions/deviceicon/network.py:329 +#: ../extensions/deviceicon/network.py:332 #, python-format msgid "Error: %s" msgstr "Pantjata: %s" # Sugerencia:% s -#: ../extensions/deviceicon/network.py:333 +#: ../extensions/deviceicon/network.py:336 #, python-format msgid "Suggestion: %s" msgstr "Unanchayäwi: %s" # Conectado a% s -#: ../extensions/deviceicon/network.py:342 +#: ../extensions/deviceicon/network.py:345 #, python-format msgid "Connected for %s" msgstr "Wakichataru mayachata %s" -#: ../extensions/deviceicon/network.py:348 -#: ../extensions/deviceicon/network.py:349 +#: ../extensions/deviceicon/network.py:351 +#: ../extensions/deviceicon/network.py:352 #, python-format msgid "%d KB" msgstr "%d KB wakichata" # Revise su Pin / configuración Puk. -#: ../extensions/deviceicon/network.py:354 +#: ../extensions/deviceicon/network.py:357 msgid "Check your PIN/PUK configuration." msgstr "Jumaru wakisir PIN uñakipma / wakichäwi PUK." # Compruebe el nombre del punto de acceso (APN) de configuración -#: ../extensions/deviceicon/network.py:357 +#: ../extensions/deviceicon/network.py:360 msgid "Check your Access Point Name (APN) configuration" msgstr "Jumaru wakisiri mantaña (APN) wakichañataki sutipa yant'ma" # Compruebe la configuración de Número. -#: ../extensions/deviceicon/network.py:361 +#: ../extensions/deviceicon/network.py:364 msgid "Check the Number configuration." msgstr "Jakhu chimpu wakichaña yant'ma." # Compruebe la configuración. -#: ../extensions/deviceicon/network.py:363 +#: ../extensions/deviceicon/network.py:366 msgid "Check your configuration." msgstr "Jumana wakichatama yant'ma." -#: ../extensions/deviceicon/network.py:606 +#: ../extensions/deviceicon/network.py:611 msgid "Mesh Network" msgstr "Red Malla mayachasïwi" -#: ../extensions/deviceicon/network.py:651 +#: ../extensions/deviceicon/network.py:655 #, python-format msgid "Mesh Network %s" msgstr "Red Malla mayachasïwi %s" -#: ../extensions/deviceicon/network.py:782 +#: ../extensions/deviceicon/network.py:774 msgid "No GSM connection available." msgstr "Janiwa mantañjamäkiti akïri wakichäwiru GSM." # Crear una conexión en el panel de control. -#: ../extensions/deviceicon/network.py:783 +#: ../extensions/deviceicon/network.py:775 msgid "Create a connection in the control panel." msgstr "Wakichatanaka thaqañaru maya mayachasiña apsma." -#: ../extensions/deviceicon/speech.py:53 +#: ../extensions/deviceicon/speech.py:54 msgid "Speech" msgstr "Arsuña" -#: ../extensions/deviceicon/speech.py:81 -#: ../extensions/deviceicon/speech.py:155 -#: ../extensions/deviceicon/speech.py:160 +#: ../extensions/deviceicon/speech.py:78 +#: ../extensions/deviceicon/speech.py:152 +#: ../extensions/deviceicon/speech.py:157 msgid "Say selected text" msgstr "Qillqata chhijllata arsuña" -#: ../extensions/deviceicon/speech.py:88 +#: ../extensions/deviceicon/speech.py:85 msgid "Stop playback" msgstr "Katuqaña sayt'ayaña" -#: ../extensions/deviceicon/speech.py:98 +#: ../extensions/deviceicon/speech.py:94 msgid "Pitch" msgstr "Ist'aña wakichata" -#: ../extensions/deviceicon/speech.py:112 +#: ../extensions/deviceicon/speech.py:109 msgid "Rate" msgstr "T'ijtäwi" -#: ../extensions/deviceicon/speech.py:150 +#: ../extensions/deviceicon/speech.py:147 msgid "Pause playback" msgstr "Katuqaña suyt'ayaña" -#: ../extensions/deviceicon/speaker.py:62 +#: ../extensions/deviceicon/speaker.py:61 msgid "My Speakers" msgstr "Arsurinaka utjirija" -#: ../extensions/deviceicon/speaker.py:142 +#: ../extensions/deviceicon/speaker.py:136 msgid "Unmute" msgstr "Aru churaña" -#: ../extensions/deviceicon/speaker.py:145 +#: ../extensions/deviceicon/speaker.py:139 msgid "Mute" msgstr "Ch'ujtayaña" @@ -657,7 +657,7 @@ msgstr "uñaqa" msgid "My touchpad" msgstr "Luk'anampi qillqaña wakichataja" -#: ../extensions/deviceicon/volume.py:74 ../src/jarabe/view/palettes.py:171 +#: ../extensions/deviceicon/volume.py:73 ../src/jarabe/view/palettes.py:185 msgid "Show contents" msgstr "Wakichatanaka qhanstayaña" @@ -923,13 +923,13 @@ msgstr "Qillqaña wakichata utjirinaka siqichata." msgid "Pitch value for the speech sugar service" msgstr "" "Aru Ist'aña wakichata qillqantata uka Azucar/Sugar wakichatana Aru " -"ch'amnchäwi wakichatataki " +"ch'amnchäwi wakichatataki" #: ../data/sugar.schemas.in.h:42 msgid "Pitch value used by the speech service in Sugar" msgstr "" "Aru Ist'aña wakichata qillqantata uka Azucar/Sugar wakichatana Aru " -"ch'amnchäwi wakichatana qhantaya " +"ch'amnchäwi wakichatana qhantaya" #: ../data/sugar.schemas.in.h:43 msgid "Power Automatic" @@ -1108,81 +1108,93 @@ msgid "To apply your changes you have to restart Sugar.\n" msgstr "Mayjt'atanaka wakichäwinakampi irnaqañataki akíri wakichata mayampi " "qhantayma Azúcar.\n" -#: ../src/jarabe/controlpanel/gui.py:298 ../src/jarabe/journal/palettes.py:181 -#: ../src/jarabe/journal/palettes.py:266 ../src/jarabe/journal/palettes.py:299 +#: ../src/jarabe/controlpanel/gui.py:315 ../src/jarabe/journal/palettes.py:182 +#: ../src/jarabe/journal/palettes.py:277 ../src/jarabe/journal/palettes.py:310 #: ../src/jarabe/journal/volumestoolbar.py:301 msgid "Warning" msgstr "Amtayäwi" -#: ../src/jarabe/controlpanel/gui.py:299 +#: ../src/jarabe/controlpanel/gui.py:316 #: ../src/jarabe/controlpanel/sectionview.py:41 msgid "Changes require restart" msgstr "Mayjt'ata wakichatanaka mayampi qhantayañawa wakisi" -#: ../src/jarabe/controlpanel/gui.py:302 +#: ../src/jarabe/controlpanel/gui.py:319 msgid "Cancel changes" msgstr "Mayjt'ayaña wakichäwi sayt'ayma" -#: ../src/jarabe/controlpanel/gui.py:307 ../src/jarabe/desktop/homebox.py:69 +#: ../src/jarabe/controlpanel/gui.py:324 ../src/jarabe/desktop/homebox.py:70 msgid "Later" msgstr "Qhipata" -#: ../src/jarabe/controlpanel/gui.py:311 +#: ../src/jarabe/controlpanel/gui.py:328 msgid "Restart now" msgstr "Jichha mayampi qhantayaña" -#: ../src/jarabe/controlpanel/toolbar.py:63 ../src/jarabe/intro/window.py:210 +#: ../src/jarabe/controlpanel/toolbar.py:56 +#: ../src/jarabe/desktop/viewtoolbar.py:100 +#: ../src/jarabe/journal/journaltoolbox.py:83 +#, python-format +msgid "Search in %s" +msgstr "Wakichata thaqaña %s" + +#: ../src/jarabe/controlpanel/toolbar.py:56 +msgid "Settings" +msgstr "Wakichañanaka" + +#: ../src/jarabe/controlpanel/toolbar.py:65 ../src/jarabe/intro/window.py:210 msgid "Done" msgstr "Phuqata" -#: ../src/jarabe/controlpanel/toolbar.py:125 -#: ../src/jarabe/desktop/favoritesview.py:335 +#: ../src/jarabe/controlpanel/toolbar.py:127 +#: ../src/jarabe/desktop/favoritesview.py:366 +#: ../src/jarabe/desktop/keydialog.py:104 msgid "Ok" msgstr "Ukawa" -#: ../src/jarabe/desktop/activitieslist.py:241 +#: ../src/jarabe/desktop/activitieslist.py:244 #, python-format msgid "Version %s" msgstr "Wakichäwi %s" -#: ../src/jarabe/desktop/activitieslist.py:342 -#: ../src/jarabe/journal/listview.py:411 +#: ../src/jarabe/desktop/activitieslist.py:345 +#: ../src/jarabe/journal/listview.py:425 msgid "Clear search" msgstr "Thaqsuña machaqachaña" -#: ../src/jarabe/desktop/activitieslist.py:415 +#: ../src/jarabe/desktop/activitieslist.py:418 msgid "No matching activities" msgstr "Janiwa ukhamkama luräwinaka utjiti" -#: ../src/jarabe/desktop/activitieslist.py:451 +#: ../src/jarabe/desktop/activitieslist.py:454 msgid "Confirm erase" msgstr "Apsunaqata thaqakipaña" -#: ../src/jarabe/desktop/activitieslist.py:453 +#: ../src/jarabe/desktop/activitieslist.py:456 #, python-format msgid "Confirm erase: Do you want to permanently erase %s?" msgstr "Apsunaqata thaqakipaña: ¿Sapa kutisa %s apsunaqañcha munta?" # "Guardar" -#: ../src/jarabe/desktop/activitieslist.py:457 -#: ../src/jarabe/frame/clipboardmenu.py:67 -#: ../src/jarabe/view/viewsource.py:284 +#: ../src/jarabe/desktop/activitieslist.py:460 +#: ../src/jarabe/frame/clipboardmenu.py:65 +#: ../src/jarabe/view/viewsource.py:285 msgid "Keep" msgstr "Imaña" -#: ../src/jarabe/desktop/activitieslist.py:460 -#: ../src/jarabe/desktop/activitieslist.py:514 -#: ../src/jarabe/journal/journaltoolbox.py:393 -#: ../src/jarabe/journal/journaltoolbox.py:422 -#: ../src/jarabe/journal/palettes.py:128 ../src/jarabe/journal/palettes.py:148 +#: ../src/jarabe/desktop/activitieslist.py:463 +#: ../src/jarabe/desktop/activitieslist.py:517 +#: ../src/jarabe/journal/journaltoolbox.py:394 +#: ../src/jarabe/journal/journaltoolbox.py:423 +#: ../src/jarabe/journal/palettes.py:129 ../src/jarabe/journal/palettes.py:149 msgid "Erase" msgstr "Apsunaqaña" -#: ../src/jarabe/desktop/activitieslist.py:530 +#: ../src/jarabe/desktop/activitieslist.py:533 msgid "Remove favorite" msgstr "Wakisiri wakichata Jithtayaña" -#: ../src/jarabe/desktop/activitieslist.py:534 +#: ../src/jarabe/desktop/activitieslist.py:537 msgid "Make favorite" msgstr "Wakisiri wakichata wakichaña" @@ -1192,51 +1204,51 @@ msgid "Freeform" msgstr "Mayjt'ayäwi wakichata" #. TRANS: label for the ring layout in the favorites view -#: ../src/jarabe/desktop/favoriteslayout.py:295 +#: ../src/jarabe/desktop/favoriteslayout.py:296 msgid "Ring" msgstr "Muyu wakichata" #. TRANS: label for the spiral layout in the favorites view -#: ../src/jarabe/desktop/favoriteslayout.py:437 +#: ../src/jarabe/desktop/favoriteslayout.py:450 msgid "Spiral" msgstr "Muyu q'iwi wakichata" #. TRANS: label for the box layout in the favorites view -#: ../src/jarabe/desktop/favoriteslayout.py:505 +#: ../src/jarabe/desktop/favoriteslayout.py:518 msgid "Box" msgstr "Kaja wakichata" #. TRANS: label for the box layout in the favorites view -#: ../src/jarabe/desktop/favoriteslayout.py:548 +#: ../src/jarabe/desktop/favoriteslayout.py:561 msgid "Triangle" msgstr "Kimsa k'uchu" -#: ../src/jarabe/desktop/favoritesview.py:326 +#: ../src/jarabe/desktop/favoritesview.py:357 msgid "Registration Failed" msgstr "Wakichata qillqantañana pantjata" -#: ../src/jarabe/desktop/favoritesview.py:329 +#: ../src/jarabe/desktop/favoritesview.py:360 msgid "Registration Successful" msgstr "Chiqapa qillqantaña" -#: ../src/jarabe/desktop/favoritesview.py:330 +#: ../src/jarabe/desktop/favoritesview.py:361 msgid "You are now registered with your school server." msgstr "Jichhaxa yatirinaka mayachäwi yanapiriru chiqapa qillqantatätawa." -#: ../src/jarabe/desktop/favoritesview.py:619 +#: ../src/jarabe/desktop/favoritesview.py:645 msgid "Register" msgstr "Qillqantata" -#: ../src/jarabe/desktop/favoritesview.py:621 -#: ../src/jarabe/desktop/favoritesview.py:635 +#: ../src/jarabe/desktop/favoritesview.py:648 +#: ../src/jarabe/desktop/favoritesview.py:664 msgid "Register again" msgstr "Machaqata qillqantaña" -#: ../src/jarabe/desktop/homebox.py:63 +#: ../src/jarabe/desktop/homebox.py:64 msgid "Update your activities to ensure compatibility with your new software" msgstr "Wakichäwinakama machaqachasa uka machaqa software wakichäwimpi mayachma" -#: ../src/jarabe/desktop/homebox.py:72 +#: ../src/jarabe/desktop/homebox.py:73 msgid "Check now" msgstr "Jichha yant'ma" @@ -1245,7 +1257,7 @@ msgstr "Jichha yant'ma" msgid "Neighborhood" msgstr "Mayachasiri masinaka" -#: ../src/jarabe/desktop/keydialog.py:89 +#: ../src/jarabe/desktop/keydialog.py:94 #, python-format msgid "" "A wireless encryption key is required for\n" @@ -1254,40 +1266,40 @@ msgstr "" "Wayra taypita mayachasiñataki chimpuwa wakisi uka\n" "wayra taypita mayachasiñataki '%s'." -#: ../src/jarabe/desktop/keydialog.py:137 +#: ../src/jarabe/desktop/keydialog.py:149 msgid "Key Type:" msgstr "Maya kasta chimpu:" -#: ../src/jarabe/desktop/keydialog.py:157 +#: ../src/jarabe/desktop/keydialog.py:169 msgid "Authentication Type:" msgstr "Maya kasta thurinchäwi:" -#: ../src/jarabe/desktop/keydialog.py:220 +#: ../src/jarabe/desktop/keydialog.py:232 msgid "WPA & WPA2 Personal" msgstr "WPA y WPA2 sapa mayni wakichatapa" -#: ../src/jarabe/desktop/keydialog.py:229 +#: ../src/jarabe/desktop/keydialog.py:241 msgid "Wireless Security:" msgstr "Wayra taypita mayachasiña chimputa:" #. TRANS: Action label for resuming an activity. -#: ../src/jarabe/desktop/meshbox.py:81 -#: ../src/jarabe/journal/journaltoolbox.py:506 -#: ../src/jarabe/journal/palettes.py:73 ../src/jarabe/view/palettes.py:86 +#: ../src/jarabe/desktop/meshbox.py:82 +#: ../src/jarabe/journal/journaltoolbox.py:517 +#: ../src/jarabe/journal/palettes.py:74 ../src/jarabe/view/palettes.py:97 msgid "Resume" msgstr "Arkaña" -#: ../src/jarabe/desktop/meshbox.py:86 -#: ../src/jarabe/frame/activitiestray.py:182 +#: ../src/jarabe/desktop/meshbox.py:88 +#: ../src/jarabe/frame/activitiestray.py:187 msgid "Join" msgstr "Jakisiña" -#: ../src/jarabe/desktop/networkviews.py:486 +#: ../src/jarabe/desktop/networkviews.py:497 #, python-format msgid "Ad-hoc Network %d" msgstr "Wakisiri mayachasïwi %d" -#: ../src/jarabe/desktop/networkviews.py:621 +#: ../src/jarabe/desktop/networkviews.py:637 #, python-format msgid "Mesh Network %d" msgstr "Malla mayachasïwi %d" @@ -1308,12 +1320,6 @@ msgstr "Arunaka siqi awati" msgid "2" msgstr "Wakichata 2" -#: ../src/jarabe/desktop/viewtoolbar.py:100 -#: ../src/jarabe/journal/journaltoolbox.py:82 -#, python-format -msgid "Search in %s" -msgstr "Wakichata thaqaña %s" - #: ../src/jarabe/desktop/viewtoolbar.py:149 msgid "Favorites view" msgstr "Wakisiri wakichatanaka awati" @@ -1322,67 +1328,67 @@ msgstr "Wakisiri wakichatanaka awati" msgid "1" msgstr "Wakichata 1" -#: ../src/jarabe/frame/activitiestray.py:187 -#: ../src/jarabe/frame/activitiestray.py:578 +#: ../src/jarabe/frame/activitiestray.py:192 +#: ../src/jarabe/frame/activitiestray.py:583 msgid "Decline" msgstr "Kutt'ayaña" -#: ../src/jarabe/frame/activitiestray.py:526 +#: ../src/jarabe/frame/activitiestray.py:531 #, python-format msgid "%dB" msgstr "%dB wakichata" -#: ../src/jarabe/frame/activitiestray.py:528 +#: ../src/jarabe/frame/activitiestray.py:533 #, python-format msgid "%dKB" msgstr "%dKB wakichata" -#: ../src/jarabe/frame/activitiestray.py:530 +#: ../src/jarabe/frame/activitiestray.py:535 #, python-format msgid "%dMB" msgstr "%dMB wakichata" #. TRANS: file transfer, bytes transferred, e.g. 128 of 1024 -#: ../src/jarabe/frame/activitiestray.py:548 +#: ../src/jarabe/frame/activitiestray.py:553 #, python-format msgid "%s of %s" msgstr "%s de %s wakichata" -#: ../src/jarabe/frame/activitiestray.py:562 +#: ../src/jarabe/frame/activitiestray.py:567 #, python-format msgid "Transfer from %s" msgstr "Apakipäwi qalltata %s" -#: ../src/jarabe/frame/activitiestray.py:573 +#: ../src/jarabe/frame/activitiestray.py:578 msgid "Accept" msgstr "Katuqaña" -#: ../src/jarabe/frame/activitiestray.py:630 -#: ../src/jarabe/frame/activitiestray.py:643 -#: ../src/jarabe/frame/activitiestray.py:761 +#: ../src/jarabe/frame/activitiestray.py:635 +#: ../src/jarabe/frame/activitiestray.py:648 +#: ../src/jarabe/frame/activitiestray.py:766 msgid "Dismiss" msgstr "Jaqsuña" -#: ../src/jarabe/frame/activitiestray.py:647 +#: ../src/jarabe/frame/activitiestray.py:652 msgid "The other participant canceled the file transfer" msgstr "Maynïri mayachasiri wakichata apakipäwi sayt'ayi" -#: ../src/jarabe/frame/activitiestray.py:695 +#: ../src/jarabe/frame/activitiestray.py:700 #, python-format msgid "Transfer to %s" msgstr "Apakipañataki %s" -#: ../src/jarabe/frame/clipboardmenu.py:56 +#: ../src/jarabe/frame/clipboardmenu.py:54 msgctxt "Clipboard" msgid "Remove" msgstr "Chhaqtayaña" -#: ../src/jarabe/frame/clipboardmenu.py:62 -#: ../src/jarabe/frame/clipboardmenu.py:85 +#: ../src/jarabe/frame/clipboardmenu.py:60 +#: ../src/jarabe/frame/clipboardmenu.py:83 msgid "Open" msgstr "Jist'araña" -#: ../src/jarabe/frame/clipboardmenu.py:90 +#: ../src/jarabe/frame/clipboardmenu.py:88 msgid "Open with" msgstr "Jist'arañataki" @@ -1425,18 +1431,18 @@ msgstr "Qhipäxaru" msgid "Next" msgstr "Jutiri" -#: ../src/jarabe/journal/expandedentry.py:145 +#: ../src/jarabe/journal/expandedentry.py:151 #: ../src/jarabe/journal/listmodel.py:145 ../src/jarabe/journal/model.py:703 -#: ../src/jarabe/journal/palettes.py:66 +#: ../src/jarabe/journal/palettes.py:67 #: ../src/jarabe/journal/volumestoolbar.py:131 msgid "Untitled" msgstr "Jani p'iqinchiri sutini" -#: ../src/jarabe/journal/expandedentry.py:259 +#: ../src/jarabe/journal/expandedentry.py:260 msgid "No preview" msgstr "Jani yant'aña uñjañani" -#: ../src/jarabe/journal/expandedentry.py:273 +#: ../src/jarabe/journal/expandedentry.py:274 #, python-format msgid "Kind: %s" msgstr "Akïri kasta: %s" @@ -1457,138 +1463,144 @@ msgstr "Uru chimpu: %s" msgid "Size: %s" msgstr "Taña: %s" -#: ../src/jarabe/journal/expandedentry.py:299 +#: ../src/jarabe/journal/expandedentry.py:302 #: ../src/jarabe/journal/misc.py:108 msgid "No date" msgstr "Jani uru chimpuni" -#: ../src/jarabe/journal/expandedentry.py:308 +#: ../src/jarabe/journal/expandedentry.py:311 msgid "Participants:" msgstr "Mayachasirinaka:" -#: ../src/jarabe/journal/expandedentry.py:349 +#: ../src/jarabe/journal/expandedentry.py:353 msgid "Description:" msgstr "Yatiyaña:" -#: ../src/jarabe/journal/expandedentry.py:352 +#: ../src/jarabe/journal/expandedentry.py:356 msgid "Tags:" msgstr "Sutiñchaña:" #: ../src/jarabe/journal/journalactivity.py:120 -#: ../src/jarabe/journal/journaltoolbox.py:82 -#: ../src/jarabe/journal/journaltoolbox.py:465 -#: ../src/jarabe/journal/palettes.py:218 +#: ../src/jarabe/journal/journaltoolbox.py:83 +#: ../src/jarabe/journal/journaltoolbox.py:466 +#: ../src/jarabe/journal/palettes.py:219 #: ../src/jarabe/journal/volumestoolbar.py:362 msgid "Journal" msgstr "Sapüru luräwi" -#: ../src/jarabe/journal/journaltoolbox.py:128 +#: ../src/jarabe/journal/journaltoolbox.py:129 msgid "Anytime" msgstr "Maya akatjamapachata" -#: ../src/jarabe/journal/journaltoolbox.py:130 +#: ../src/jarabe/journal/journaltoolbox.py:131 msgid "Today" msgstr "Jichhüru" -#: ../src/jarabe/journal/journaltoolbox.py:132 +#: ../src/jarabe/journal/journaltoolbox.py:133 msgid "Since yesterday" msgstr "Masüruta" #. TRANS: Filter entries modified during the last 7 days. -#: ../src/jarabe/journal/journaltoolbox.py:134 +#: ../src/jarabe/journal/journaltoolbox.py:135 msgid "Past week" msgstr "Qhipa simana" #. TRANS: Filter entries modified during the last 30 days. -#: ../src/jarabe/journal/journaltoolbox.py:136 +#: ../src/jarabe/journal/journaltoolbox.py:137 msgid "Past month" msgstr "Qhipa phaxsi" #. TRANS: Filter entries modified during the last 356 days. -#: ../src/jarabe/journal/journaltoolbox.py:138 +#: ../src/jarabe/journal/journaltoolbox.py:139 msgid "Past year" msgstr "Qhipa mara" -#: ../src/jarabe/journal/journaltoolbox.py:145 +#: ../src/jarabe/journal/journaltoolbox.py:146 msgid "Anyone" msgstr "Kawkipirisa" -#: ../src/jarabe/journal/journaltoolbox.py:147 +#: ../src/jarabe/journal/journaltoolbox.py:148 msgid "My friends" msgstr "Mayachasiri masinakaja" -#: ../src/jarabe/journal/journaltoolbox.py:148 +#: ../src/jarabe/journal/journaltoolbox.py:149 msgid "My class" msgstr "Mayachasiña wakichataja" -#: ../src/jarabe/journal/journaltoolbox.py:290 +#: ../src/jarabe/journal/journaltoolbox.py:291 msgid "Anything" msgstr "Kawkchapisa" -#: ../src/jarabe/journal/journaltoolbox.py:376 -#: ../src/jarabe/journal/palettes.py:95 +#: ../src/jarabe/journal/journaltoolbox.py:377 +#: ../src/jarabe/journal/palettes.py:96 msgid "Copy to" msgstr "Apaqañataki" -#: ../src/jarabe/journal/journaltoolbox.py:384 -#: ../src/jarabe/journal/palettes.py:106 ../src/jarabe/view/viewsource.py:278 +#: ../src/jarabe/journal/journaltoolbox.py:385 +#: ../src/jarabe/journal/palettes.py:107 ../src/jarabe/view/viewsource.py:279 msgid "Duplicate" msgstr "Payaptayaña" -#: ../src/jarabe/journal/journaltoolbox.py:417 -#: ../src/jarabe/journal/palettes.py:143 ../src/jarabe/journal/palettes.py:274 +#: ../src/jarabe/journal/journaltoolbox.py:418 +#: ../src/jarabe/journal/palettes.py:144 ../src/jarabe/journal/palettes.py:285 #: ../src/jarabe/journal/volumestoolbar.py:309 #, python-format msgid "Error while copying the entry. %s" msgstr "Wakichata payaptaña phuqkämiru pantjata. %s" -#: ../src/jarabe/journal/journaltoolbox.py:418 -#: ../src/jarabe/journal/palettes.py:144 ../src/jarabe/journal/palettes.py:275 +#: ../src/jarabe/journal/journaltoolbox.py:419 +#: ../src/jarabe/journal/palettes.py:145 ../src/jarabe/journal/palettes.py:286 #: ../src/jarabe/journal/volumestoolbar.py:310 msgid "Error" msgstr "Pantjata" -#: ../src/jarabe/journal/journaltoolbox.py:424 -#: ../src/jarabe/journal/palettes.py:150 +#: ../src/jarabe/journal/journaltoolbox.py:425 +#: ../src/jarabe/journal/palettes.py:151 #, python-format msgid "Do you want to permanently erase \"%s\"?" msgstr "¿\"%s\" chani wakichata sapa kuticha apsuña munta?" +#: ../src/jarabe/journal/journaltoolbox.py:476 +#: ../src/jarabe/journal/palettes.py:229 +#: ../src/jarabe/journal/volumestoolbar.py:210 +msgid "Documents" +msgstr "Wakichatanaka" + #. TRANS: Action label for starting an entry. -#: ../src/jarabe/journal/journaltoolbox.py:509 -#: ../src/jarabe/journal/palettes.py:76 +#: ../src/jarabe/journal/journaltoolbox.py:520 +#: ../src/jarabe/journal/palettes.py:77 msgid "Start" msgstr "Qalltawi" -#: ../src/jarabe/journal/journaltoolbox.py:537 +#: ../src/jarabe/journal/journaltoolbox.py:548 msgid "Sort by date modified" msgstr "Mayjt'ayäwi uru chimputjama lakintaña" -#: ../src/jarabe/journal/journaltoolbox.py:538 +#: ../src/jarabe/journal/journaltoolbox.py:549 msgid "Sort by date created" msgstr "Wakichata uñstayäwi uru chimputjama lakintaña" -#: ../src/jarabe/journal/journaltoolbox.py:539 +#: ../src/jarabe/journal/journaltoolbox.py:550 msgid "Sort by size" msgstr "Tañatjama lakintaña" -#: ../src/jarabe/journal/journaltoolbox.py:548 +#: ../src/jarabe/journal/journaltoolbox.py:559 msgid "Sort view" msgstr "Uñjaña wakichata lakintaña" -#: ../src/jarabe/journal/listview.py:323 +#: ../src/jarabe/journal/listview.py:337 msgid "Your Journal is empty" msgstr "Sapüru luraña wakichäwima ch'usawa" -#: ../src/jarabe/journal/listview.py:326 +#: ../src/jarabe/journal/listview.py:340 msgid "Your documents folder is empty" msgstr "Wakichatanakama imaña wakichäwi ch'usawa" -#: ../src/jarabe/journal/listview.py:328 +#: ../src/jarabe/journal/listview.py:342 msgid "The device is empty" msgstr "Wakichäwi wakichaña ch'usawa" -#: ../src/jarabe/journal/listview.py:330 +#: ../src/jarabe/journal/listview.py:344 msgid "No matching entries" msgstr "Katuqaña ukhampura wakichatanaka janiwa utjiti" @@ -1621,61 +1633,57 @@ msgid "Choose an object" msgstr "Maya apnaqaña wakichata katma" #: ../src/jarabe/journal/objectchooser.py:156 -#: ../src/jarabe/view/viewsource.py:414 +#: ../src/jarabe/view/viewsource.py:415 msgid "Close" msgstr "Jiwayaña" -#: ../src/jarabe/journal/palettes.py:74 +#: ../src/jarabe/journal/palettes.py:75 msgid "Resume with" msgstr "Uka wakichatampi mayampi qalltaña" -#: ../src/jarabe/journal/palettes.py:77 +#: ../src/jarabe/journal/palettes.py:78 msgid "Start with" msgstr "Uka wakichatampi qalltaña" -#: ../src/jarabe/journal/palettes.py:90 ../src/jarabe/journal/palettes.py:377 +#: ../src/jarabe/journal/palettes.py:91 ../src/jarabe/journal/palettes.py:388 msgid "No activity to start entry" msgstr "Machaqa luräwi qalltañataki maya luräwiwa jani jakisiti" -#: ../src/jarabe/journal/palettes.py:114 +#: ../src/jarabe/journal/palettes.py:115 msgid "Send to" msgstr "Uka wakichataru apayaña" -#: ../src/jarabe/journal/palettes.py:123 +#: ../src/jarabe/journal/palettes.py:124 msgid "View Details" msgstr "Wakichatanaka uñaña" -#: ../src/jarabe/journal/palettes.py:180 +#: ../src/jarabe/journal/palettes.py:181 msgid "Entries without a file cannot be sent." msgstr "Jani imaña wakichataru imata luräwinakaxa janiwa apaqañjamati." -#: ../src/jarabe/journal/palettes.py:265 ../src/jarabe/journal/palettes.py:298 +#: ../src/jarabe/journal/palettes.py:276 ../src/jarabe/journal/palettes.py:309 #: ../src/jarabe/journal/volumestoolbar.py:300 msgid "Entries without a file cannot be copied." msgstr "Jani imaña wakichataru imata luräwinakaxa janiwa apaqañjamati." -#: ../src/jarabe/journal/palettes.py:287 +#: ../src/jarabe/journal/palettes.py:298 msgid "Clipboard" msgstr "Laphi k'ipi" -#: ../src/jarabe/journal/palettes.py:342 +#: ../src/jarabe/journal/palettes.py:353 msgid "No friends present" msgstr "Janiwa masisanaka mantapxiti" -#: ../src/jarabe/journal/palettes.py:347 +#: ../src/jarabe/journal/palettes.py:358 msgid "No valid connection found" msgstr "Chiqapa mantata janiwa katuyasiti" -#: ../src/jarabe/journal/palettes.py:375 +#: ../src/jarabe/journal/palettes.py:386 msgid "No activity to resume entry" msgstr "Machaqa luräwi mayampi lurañataki maya luräwiwa jani utjiti" -#: ../src/jarabe/journal/volumestoolbar.py:210 -msgid "Documents" -msgstr "Wakichatanaka" - #: ../src/jarabe/journal/volumestoolbar.py:385 -#: ../src/jarabe/view/palettes.py:207 ../src/jarabe/view/palettes.py:269 +#: ../src/jarabe/view/palettes.py:226 ../src/jarabe/view/palettes.py:293 #, python-format msgid "%(free_space)d MB Free" msgstr "%(free_space)d MB utjiri wakichata" @@ -1810,7 +1818,7 @@ msgstr "Modem wakichata qalltkasina pantjasiwi." #: ../src/jarabe/model/network.py:272 msgid "Failed to select the specified GSM APN" -msgstr "(APN) GSM wakichataru mantaña thaqkasina pantjasiwi." +msgstr "(APN) GSM wakichataru mantaña thaqkasina pantjasiwi" #: ../src/jarabe/model/network.py:274 msgid "Not searching for networks." @@ -1877,88 +1885,88 @@ msgstr "Bluetooth wakichatampi mayachäwi suykämiru pantjasiwi." msgid "Unused." msgstr "Jani apanaqata." -#: ../src/jarabe/view/buddymenu.py:67 +#: ../src/jarabe/view/buddymenu.py:73 msgid "Remove friend" msgstr "Masi chhaqtayaña" -#: ../src/jarabe/view/buddymenu.py:70 +#: ../src/jarabe/view/buddymenu.py:76 msgid "Make friend" msgstr "Masi jikxataña" -#: ../src/jarabe/view/buddymenu.py:87 +#: ../src/jarabe/view/buddymenu.py:92 msgid "Shutdown" msgstr "Jiwayaña" -#: ../src/jarabe/view/buddymenu.py:95 +#: ../src/jarabe/view/buddymenu.py:99 msgid "Restart" msgstr "Wasitata qalltaña" -#: ../src/jarabe/view/buddymenu.py:101 +#: ../src/jarabe/view/buddymenu.py:105 msgid "Logout" msgstr "Mistuña" -#: ../src/jarabe/view/buddymenu.py:106 +#: ../src/jarabe/view/buddymenu.py:110 msgid "My Settings" msgstr "Wakichata chhiqachatanakaja" -#: ../src/jarabe/view/buddymenu.py:142 +#: ../src/jarabe/view/buddymenu.py:150 #, python-format msgid "Invite to %s" -msgstr "%s chaniru jawst'aña " +msgstr "%s chaniru jawst'aña" #: ../src/jarabe/view/launcher.py:145 #, python-format msgid "%s failed to start." -msgstr "%s wakichata qalltkasina pantjasiwi. " +msgstr "%s wakichata qalltkasina pantjasiwi." -#: ../src/jarabe/view/palettes.py:50 +#: ../src/jarabe/view/palettes.py:52 msgid "Starting..." msgstr "Qalltaskiwa..." -#: ../src/jarabe/view/palettes.py:60 +#: ../src/jarabe/view/palettes.py:62 msgid "Activity failed to start" msgstr "Luräwi qalltkasina pantjasiwi" #. TODO: share-with, keep -#: ../src/jarabe/view/palettes.py:93 +#: ../src/jarabe/view/palettes.py:103 msgid "View Source" msgstr "Qhanayiri uñakipaña" -#: ../src/jarabe/view/palettes.py:104 +#: ../src/jarabe/view/palettes.py:111 msgid "Stop" msgstr "Sayt'ayaña" -#: ../src/jarabe/view/palettes.py:141 +#: ../src/jarabe/view/palettes.py:154 msgid "Start new" msgstr "Mayampi qalltaña" -#: ../src/jarabe/view/palettes.py:223 +#: ../src/jarabe/view/palettes.py:242 msgctxt "Volume" msgid "Remove" msgstr "Chhaqtayaña" -#: ../src/jarabe/view/viewsource.py:267 +#: ../src/jarabe/view/viewsource.py:268 msgid "Instance Source" -msgstr "Jikxataña yatiyiri " +msgstr "Jikxataña yatiyiri" -#: ../src/jarabe/view/viewsource.py:316 +#: ../src/jarabe/view/viewsource.py:317 msgid "Source" msgstr "Naktayiri" -#: ../src/jarabe/view/viewsource.py:378 +#: ../src/jarabe/view/viewsource.py:379 msgid "Activity Bundle Source" msgstr "Luräwi wakichata yatiyiri" -#: ../src/jarabe/view/viewsource.py:397 +#: ../src/jarabe/view/viewsource.py:398 msgid "Sugar Toolkit Source" msgstr "Sugar Toolkit wakichata yatiyirinaka" -#: ../src/jarabe/view/viewsource.py:404 +#: ../src/jarabe/view/viewsource.py:405 #, python-format msgid "View source: %s" msgstr "Yatiyiri chimpupa uñjaña: %s" -#: ../src/jarabe/view/viewsource.py:405 +#: ../src/jarabe/view/viewsource.py:406 #, python-format msgid "View source: %r" msgstr "Yatiyiri chimpupa uñjaña: %r" diff --git a/po/ne.po b/po/ne.po index 2c0c61c..4b22f5e 100644 --- a/po/ne.po +++ b/po/ne.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-19 00:34-0400\n" -"PO-Revision-Date: 2012-10-28 11:14+0200\n" -"Last-Translator: aman0115 \n" +"POT-Creation-Date: 2013-01-20 21:08-0500\n" +"PO-Revision-Date: 2013-05-08 13:30+0200\n" +"Last-Translator: kayomars.puri \n" "Language-Team: LANGUAGE \n" "Language: ne\n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" #: ../extensions/cpsection/aboutme/__init__.py:24 msgid "About Me" -msgstr "मेरो बारेमा" +msgstr "मेरो बा" #: ../extensions/cpsection/aboutme/model.py:48 msgid "You must enter a name." @@ -53,7 +53,7 @@ msgstr "तोकिएको रङ्ग परिमार्जकहरु msgid "Error in specified colors." msgstr "तोकिएको रङ्गहरुमा त्रुटी छ।" -#: ../extensions/cpsection/aboutme/view.py:216 +#: ../extensions/cpsection/aboutme/view.py:212 msgid "Click to change your color:" msgstr "रङ्ग परिवर्तन गर्न क्लिक गरः" @@ -121,7 +121,7 @@ msgstr "मिती & समय" msgid "Error timezone does not exist." msgstr "त्रुटि, समयक्षेत्र उपलब्ध छैन।" -#: ../extensions/cpsection/datetime/view.py:70 ../data/sugar.schemas.in.h:54 +#: ../extensions/cpsection/datetime/view.py:66 ../data/sugar.schemas.in.h:54 msgid "Timezone" msgstr "समयक्षेत्र" @@ -397,31 +397,31 @@ msgstr "%.0f KB" msgid "%.1f MB" msgstr "%.1f KB" -#: ../extensions/deviceicon/battery.py:70 +#: ../extensions/deviceicon/battery.py:71 msgid "My Battery" msgstr "मेरो ब्यााटरी" -#: ../extensions/deviceicon/battery.py:151 +#: ../extensions/deviceicon/battery.py:153 msgid "Removed" msgstr "हटाइयो" -#: ../extensions/deviceicon/battery.py:154 +#: ../extensions/deviceicon/battery.py:156 msgid "Charging" msgstr "चार्ज हुँदैछ" -#: ../extensions/deviceicon/battery.py:157 +#: ../extensions/deviceicon/battery.py:159 msgid "Very little power remaining" msgstr "एकदमै थोरै शक्‍ति बाँकी छ" # %(hour)d:%(min).2d are variables (separated by a : ) #. TRANS: do not translate %(hour)d:%(min).2d it is a variable, #. only translate the word "remaining" -#: ../extensions/deviceicon/battery.py:164 +#: ../extensions/deviceicon/battery.py:166 #, python-format msgid "%(hour)d:%(min).2d remaining" msgstr "%(hour)d:%(min).2d बाँकी" -#: ../extensions/deviceicon/battery.py:167 +#: ../extensions/deviceicon/battery.py:169 msgid "Charged" msgstr "चार्ज भयो" @@ -429,15 +429,15 @@ msgstr "चार्ज भयो" msgid "Show my keyboard" msgstr "किबोर्ड देखाउ" -#: ../extensions/deviceicon/network.py:50 +#: ../extensions/deviceicon/network.py:51 #, python-format msgid "IP address: %s" msgstr "IP अड्रेस: %s" -#: ../extensions/deviceicon/network.py:80 -#: ../extensions/deviceicon/network.py:296 -#: ../src/jarabe/desktop/networkviews.py:130 -#: ../src/jarabe/desktop/networkviews.py:499 +#: ../extensions/deviceicon/network.py:83 +#: ../extensions/deviceicon/network.py:299 +#: ../src/jarabe/desktop/networkviews.py:137 +#: ../src/jarabe/desktop/networkviews.py:509 msgid "Disconnect" msgstr "विच्छेद भयो" @@ -445,162 +445,162 @@ msgstr "विच्छेद भयो" # 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 -#: ../extensions/deviceicon/network.py:105 -#: ../extensions/deviceicon/network.py:288 -#: ../src/jarabe/desktop/networkviews.py:241 -#: ../src/jarabe/desktop/networkviews.py:539 -#: ../src/jarabe/desktop/networkviews.py:674 +#: ../extensions/deviceicon/network.py:108 +#: ../extensions/deviceicon/network.py:291 +#: ../src/jarabe/desktop/networkviews.py:252 +#: ../src/jarabe/desktop/networkviews.py:550 +#: ../src/jarabe/desktop/networkviews.py:691 msgid "Connecting..." msgstr "जडान हुदैछ..." # TODO: show the channel number -#: ../extensions/deviceicon/network.py:110 -#: ../extensions/deviceicon/network.py:178 -#: ../src/jarabe/desktop/networkviews.py:248 -#: ../src/jarabe/desktop/networkviews.py:545 -#: ../src/jarabe/desktop/networkviews.py:680 +#: ../extensions/deviceicon/network.py:113 +#: ../extensions/deviceicon/network.py:181 +#: ../src/jarabe/desktop/networkviews.py:259 +#: ../src/jarabe/desktop/networkviews.py:556 +#: ../src/jarabe/desktop/networkviews.py:697 msgid "Connected" msgstr "जडान भयो" -#: ../extensions/deviceicon/network.py:123 +#: ../extensions/deviceicon/network.py:126 msgid "No wireless connection" msgstr "वायरलेस जडान छैन" -#: ../extensions/deviceicon/network.py:137 +#: ../extensions/deviceicon/network.py:140 msgid "Channel" msgstr "माध्यम" -#: ../extensions/deviceicon/network.py:152 +#: ../extensions/deviceicon/network.py:155 msgid "Wired Network" msgstr "तार युक्त सञ्जाल" -#: ../extensions/deviceicon/network.py:181 +#: ../extensions/deviceicon/network.py:184 msgid "Speed" msgstr "गति" -#: ../extensions/deviceicon/network.py:206 +#: ../extensions/deviceicon/network.py:209 msgid "Wireless modem" msgstr "वायरलेस मोडेम" -#: ../extensions/deviceicon/network.py:274 +#: ../extensions/deviceicon/network.py:277 msgid "Please wait..." msgstr "कृपया पर्खनुहोस्..." -#: ../extensions/deviceicon/network.py:279 -#: ../src/jarabe/desktop/networkviews.py:126 -#: ../src/jarabe/desktop/networkviews.py:494 -#: ../src/jarabe/desktop/networkviews.py:630 +#: ../extensions/deviceicon/network.py:282 +#: ../src/jarabe/desktop/networkviews.py:131 +#: ../src/jarabe/desktop/networkviews.py:503 +#: ../src/jarabe/desktop/networkviews.py:642 msgid "Connect" msgstr "जोड" -#: ../extensions/deviceicon/network.py:280 +#: ../extensions/deviceicon/network.py:283 msgid "Disconnected" msgstr "विच्छेद भयो" -#: ../extensions/deviceicon/network.py:287 +#: ../extensions/deviceicon/network.py:290 #: ../src/jarabe/controlpanel/toolbar.py:121 -#: ../src/jarabe/desktop/homebox.py:68 ../src/jarabe/desktop/keydialog.py:97 -#: ../src/jarabe/frame/activitiestray.py:606 -#: ../src/jarabe/frame/activitiestray.py:708 -#: ../src/jarabe/frame/activitiestray.py:736 -#: ../src/jarabe/journal/journaltoolbox.py:427 -#: ../src/jarabe/journal/palettes.py:153 +#: ../src/jarabe/desktop/homebox.py:68 ../src/jarabe/desktop/keydialog.py:100 +#: ../src/jarabe/frame/activitiestray.py:611 +#: ../src/jarabe/frame/activitiestray.py:713 +#: ../src/jarabe/frame/activitiestray.py:741 +#: ../src/jarabe/journal/journaltoolbox.py:428 +#: ../src/jarabe/journal/palettes.py:154 msgid "Cancel" msgstr "रद्द" -#: ../extensions/deviceicon/network.py:326 +#: ../extensions/deviceicon/network.py:329 msgid "Try connection again" msgstr "सम्बन्ध स्थापित गर्नको लागि पुन: प्रयास गर्नुहोस्" -#: ../extensions/deviceicon/network.py:329 +#: ../extensions/deviceicon/network.py:332 #, python-format msgid "Error: %s" msgstr "त्रुटि: %s" -#: ../extensions/deviceicon/network.py:333 +#: ../extensions/deviceicon/network.py:336 #, python-format msgid "Suggestion: %s" msgstr "सुझाव: %s" -#: ../extensions/deviceicon/network.py:342 +#: ../extensions/deviceicon/network.py:345 #, python-format msgid "Connected for %s" msgstr "%s सम्म जोडियो" -#: ../extensions/deviceicon/network.py:348 -#: ../extensions/deviceicon/network.py:349 +#: ../extensions/deviceicon/network.py:351 +#: ../extensions/deviceicon/network.py:352 #, python-format msgid "%d KB" msgstr "%d KB" -#: ../extensions/deviceicon/network.py:354 +#: ../extensions/deviceicon/network.py:357 msgid "Check your PIN/PUK configuration." msgstr "तिम्रो PIN/PUK विन्यासको जाँच गर।" -#: ../extensions/deviceicon/network.py:357 +#: ../extensions/deviceicon/network.py:360 msgid "Check your Access Point Name (APN) configuration" msgstr "तिम्रो एक्सेस पोइन्ट नेमको (APN) विन्यासको जाँच गर।" -#: ../extensions/deviceicon/network.py:361 +#: ../extensions/deviceicon/network.py:364 msgid "Check the Number configuration." msgstr "संख्या विन्यासको जाँच गर।" -#: ../extensions/deviceicon/network.py:363 +#: ../extensions/deviceicon/network.py:366 msgid "Check your configuration." msgstr "तिम्रो विन्यासको जाँच गर।" -#: ../extensions/deviceicon/network.py:607 +#: ../extensions/deviceicon/network.py:611 msgid "Mesh Network" msgstr "मेश सञ्जाल" -#: ../extensions/deviceicon/network.py:652 +#: ../extensions/deviceicon/network.py:655 #, python-format msgid "Mesh Network %s" msgstr "मेश सञ्जाल %s" -#: ../extensions/deviceicon/network.py:783 +#: ../extensions/deviceicon/network.py:774 msgid "No GSM connection available." msgstr "कुनै पनि GSM कनेक्सन उपलब्ध छैन।" -#: ../extensions/deviceicon/network.py:784 +#: ../extensions/deviceicon/network.py:775 msgid "Create a connection in the control panel." msgstr "कन्ट्रोल पानेल मा नयाँ कनेक्सन बनाऊ ।" -#: ../extensions/deviceicon/speech.py:53 +#: ../extensions/deviceicon/speech.py:54 msgid "Speech" msgstr "भाषण" -#: ../extensions/deviceicon/speech.py:81 -#: ../extensions/deviceicon/speech.py:155 -#: ../extensions/deviceicon/speech.py:160 +#: ../extensions/deviceicon/speech.py:78 +#: ../extensions/deviceicon/speech.py:152 +#: ../extensions/deviceicon/speech.py:157 msgid "Say selected text" msgstr "चुनिएका पाठ भन" -#: ../extensions/deviceicon/speech.py:88 +#: ../extensions/deviceicon/speech.py:85 msgid "Stop playback" msgstr "पाशर्व बन्द गर" -#: ../extensions/deviceicon/speech.py:98 +#: ../extensions/deviceicon/speech.py:94 msgid "Pitch" msgstr "पिच" -#: ../extensions/deviceicon/speech.py:112 +#: ../extensions/deviceicon/speech.py:109 msgid "Rate" msgstr "गति" -#: ../extensions/deviceicon/speech.py:150 +#: ../extensions/deviceicon/speech.py:147 msgid "Pause playback" msgstr "पाशर्व रोक" -#: ../extensions/deviceicon/speaker.py:62 +#: ../extensions/deviceicon/speaker.py:61 msgid "My Speakers" msgstr "मेरो स्पिकरहरु" -#: ../extensions/deviceicon/speaker.py:142 +#: ../extensions/deviceicon/speaker.py:136 msgid "Unmute" msgstr "आवाज खोल" -#: ../extensions/deviceicon/speaker.py:145 +#: ../extensions/deviceicon/speaker.py:139 msgid "Mute" msgstr "आवाज बन्द गर" @@ -616,7 +616,7 @@ msgstr "स्टाइलस" msgid "My touchpad" msgstr "मेरो टचप्याड" -#: ../extensions/deviceicon/volume.py:74 ../src/jarabe/view/palettes.py:171 +#: ../extensions/deviceicon/volume.py:73 ../src/jarabe/view/palettes.py:185 msgid "Show contents" msgstr "वस्तुहरु देखाउ" @@ -979,32 +979,32 @@ msgstr "" msgid "To apply your changes you have to restart Sugar.\n" msgstr "परिवर्तन लागू गर्न सुगर पुन:शुरु गर्नु पर्छ ।\n" -#: ../src/jarabe/controlpanel/gui.py:298 ../src/jarabe/journal/palettes.py:181 -#: ../src/jarabe/journal/palettes.py:266 ../src/jarabe/journal/palettes.py:299 +#: ../src/jarabe/controlpanel/gui.py:315 ../src/jarabe/journal/palettes.py:182 +#: ../src/jarabe/journal/palettes.py:277 ../src/jarabe/journal/palettes.py:310 #: ../src/jarabe/journal/volumestoolbar.py:301 msgid "Warning" msgstr "सावधान" -#: ../src/jarabe/controlpanel/gui.py:299 +#: ../src/jarabe/controlpanel/gui.py:316 #: ../src/jarabe/controlpanel/sectionview.py:41 msgid "Changes require restart" msgstr "परिवर्तनका लागि पुण: सुरु गर्न आवश्यक छ" -#: ../src/jarabe/controlpanel/gui.py:302 +#: ../src/jarabe/controlpanel/gui.py:319 msgid "Cancel changes" msgstr "परिवर्तनहरु रद्द गर" -#: ../src/jarabe/controlpanel/gui.py:307 ../src/jarabe/desktop/homebox.py:70 +#: ../src/jarabe/controlpanel/gui.py:324 ../src/jarabe/desktop/homebox.py:70 msgid "Later" msgstr "पछि" -#: ../src/jarabe/controlpanel/gui.py:311 +#: ../src/jarabe/controlpanel/gui.py:328 msgid "Restart now" msgstr "पुन: सुरु गर" #: ../src/jarabe/controlpanel/toolbar.py:56 #: ../src/jarabe/desktop/viewtoolbar.py:100 -#: ../src/jarabe/journal/journaltoolbox.py:82 +#: ../src/jarabe/journal/journaltoolbox.py:83 #, python-format msgid "Search in %s" msgstr "%s मा खोज" @@ -1018,30 +1018,30 @@ msgid "Done" msgstr "भयो" #: ../src/jarabe/controlpanel/toolbar.py:127 -#: ../src/jarabe/desktop/favoritesview.py:337 -#: ../src/jarabe/desktop/keydialog.py:101 +#: ../src/jarabe/desktop/favoritesview.py:366 +#: ../src/jarabe/desktop/keydialog.py:104 msgid "Ok" msgstr "हुन्छ" -#: ../src/jarabe/desktop/activitieslist.py:243 +#: ../src/jarabe/desktop/activitieslist.py:244 #, python-format msgid "Version %s" msgstr "संस्करण %s" -#: ../src/jarabe/desktop/activitieslist.py:344 -#: ../src/jarabe/journal/listview.py:411 +#: ../src/jarabe/desktop/activitieslist.py:345 +#: ../src/jarabe/journal/listview.py:425 msgid "Clear search" msgstr "खोजलाई सफा गर" -#: ../src/jarabe/desktop/activitieslist.py:417 +#: ../src/jarabe/desktop/activitieslist.py:418 msgid "No matching activities" msgstr "मिल्ने क्रियाकलाप छैन" -#: ../src/jarabe/desktop/activitieslist.py:453 +#: ../src/jarabe/desktop/activitieslist.py:454 msgid "Confirm erase" msgstr "साँच्चै मेट्ने" -#: ../src/jarabe/desktop/activitieslist.py:455 +#: ../src/jarabe/desktop/activitieslist.py:456 #, python-format msgid "Confirm erase: Do you want to permanently erase %s?" msgstr "मेट्ने पुष्टि : %s लाई सधैँको लागी मेट्न चहान्छौ?" @@ -1050,25 +1050,25 @@ msgstr "मेट्ने पुष्टि : %s लाई सधैँको # TODO: Implement stopping downloads # self._stop_item.connect('activate', self._stop_item_activate_cb) # self.append_menu_item(self._stop_item) -#: ../src/jarabe/desktop/activitieslist.py:459 -#: ../src/jarabe/frame/clipboardmenu.py:67 -#: ../src/jarabe/view/viewsource.py:284 +#: ../src/jarabe/desktop/activitieslist.py:460 +#: ../src/jarabe/frame/clipboardmenu.py:65 +#: ../src/jarabe/view/viewsource.py:285 msgid "Keep" msgstr "राख" -#: ../src/jarabe/desktop/activitieslist.py:462 -#: ../src/jarabe/desktop/activitieslist.py:516 -#: ../src/jarabe/journal/journaltoolbox.py:393 -#: ../src/jarabe/journal/journaltoolbox.py:422 -#: ../src/jarabe/journal/palettes.py:128 ../src/jarabe/journal/palettes.py:148 +#: ../src/jarabe/desktop/activitieslist.py:463 +#: ../src/jarabe/desktop/activitieslist.py:517 +#: ../src/jarabe/journal/journaltoolbox.py:394 +#: ../src/jarabe/journal/journaltoolbox.py:423 +#: ../src/jarabe/journal/palettes.py:129 ../src/jarabe/journal/palettes.py:149 msgid "Erase" msgstr "मेट" -#: ../src/jarabe/desktop/activitieslist.py:532 +#: ../src/jarabe/desktop/activitieslist.py:533 msgid "Remove favorite" msgstr "मनपर्ने हटाउ" -#: ../src/jarabe/desktop/activitieslist.py:536 +#: ../src/jarabe/desktop/activitieslist.py:537 msgid "Make favorite" msgstr "प्रिय बनाउ" @@ -1102,24 +1102,24 @@ msgstr "बाकस" msgid "Triangle" msgstr "त्रिकोण" -#: ../src/jarabe/desktop/favoritesview.py:328 +#: ../src/jarabe/desktop/favoritesview.py:357 msgid "Registration Failed" msgstr "दर्ता असफल भयो" -#: ../src/jarabe/desktop/favoritesview.py:331 +#: ../src/jarabe/desktop/favoritesview.py:360 msgid "Registration Successful" msgstr "दर्ता सफल भयो" -#: ../src/jarabe/desktop/favoritesview.py:332 +#: ../src/jarabe/desktop/favoritesview.py:361 msgid "You are now registered with your school server." msgstr "अब तपाईँको नाम बिद्यालयको सर्भरमा दर्ता भइसक्यो।" -#: ../src/jarabe/desktop/favoritesview.py:611 +#: ../src/jarabe/desktop/favoritesview.py:645 msgid "Register" msgstr "दर्ता" -#: ../src/jarabe/desktop/favoritesview.py:613 -#: ../src/jarabe/desktop/favoritesview.py:629 +#: ../src/jarabe/desktop/favoritesview.py:648 +#: ../src/jarabe/desktop/favoritesview.py:664 msgid "Register again" msgstr "दर्ता फेरी गर" @@ -1136,48 +1136,48 @@ msgstr "अहिले जाँच गर" msgid "Neighborhood" msgstr "छिमेक" -#: ../src/jarabe/desktop/keydialog.py:91 +#: ../src/jarabe/desktop/keydialog.py:94 #, python-format msgid "" "A wireless encryption key is required for\n" " the wireless network '%s'." msgstr "तारबिना सञ्जाल '%s' को लागि तारबिना कुञ्जीको जरुरी छ" -#: ../src/jarabe/desktop/keydialog.py:146 +#: ../src/jarabe/desktop/keydialog.py:149 msgid "Key Type:" msgstr "कुञ्जी प्रकार:" -#: ../src/jarabe/desktop/keydialog.py:166 +#: ../src/jarabe/desktop/keydialog.py:169 msgid "Authentication Type:" msgstr "प्रमाणीकरण प्रकार:" -#: ../src/jarabe/desktop/keydialog.py:229 +#: ../src/jarabe/desktop/keydialog.py:232 msgid "WPA & WPA2 Personal" msgstr "WPA र WPA2 निजी" -#: ../src/jarabe/desktop/keydialog.py:238 +#: ../src/jarabe/desktop/keydialog.py:241 msgid "Wireless Security:" msgstr "तारबिनाको लागि सुरक्षा" # TRANS: Action label for resuming an activity. #. TRANS: Action label for resuming an activity. -#: ../src/jarabe/desktop/meshbox.py:79 -#: ../src/jarabe/journal/journaltoolbox.py:506 -#: ../src/jarabe/journal/palettes.py:73 ../src/jarabe/view/palettes.py:86 +#: ../src/jarabe/desktop/meshbox.py:82 +#: ../src/jarabe/journal/journaltoolbox.py:517 +#: ../src/jarabe/journal/palettes.py:74 ../src/jarabe/view/palettes.py:97 msgid "Resume" msgstr "पुनरारम्भ" -#: ../src/jarabe/desktop/meshbox.py:84 -#: ../src/jarabe/frame/activitiestray.py:182 +#: ../src/jarabe/desktop/meshbox.py:88 +#: ../src/jarabe/frame/activitiestray.py:187 msgid "Join" msgstr "सहभागी होऊ" -#: ../src/jarabe/desktop/networkviews.py:490 +#: ../src/jarabe/desktop/networkviews.py:497 #, python-format msgid "Ad-hoc Network %d" msgstr "Ad-hoc सञ्जाल %d" -#: ../src/jarabe/desktop/networkviews.py:627 +#: ../src/jarabe/desktop/networkviews.py:637 #, python-format msgid "Mesh Network %d" msgstr "मेश सञ्जाल %d" @@ -1206,69 +1206,69 @@ msgstr "मन्पर्दो दृश्य" msgid "1" msgstr "१" -#: ../src/jarabe/frame/activitiestray.py:187 -#: ../src/jarabe/frame/activitiestray.py:578 +#: ../src/jarabe/frame/activitiestray.py:192 +#: ../src/jarabe/frame/activitiestray.py:583 msgid "Decline" msgstr "नाई" -#: ../src/jarabe/frame/activitiestray.py:526 +#: ../src/jarabe/frame/activitiestray.py:531 #, python-format msgid "%dB" msgstr "%dB" -#: ../src/jarabe/frame/activitiestray.py:528 +#: ../src/jarabe/frame/activitiestray.py:533 #, python-format msgid "%dKB" msgstr "%dKB" -#: ../src/jarabe/frame/activitiestray.py:530 +#: ../src/jarabe/frame/activitiestray.py:535 #, python-format msgid "%dMB" msgstr "%dMB" #. TRANS: file transfer, bytes transferred, e.g. 128 of 1024 -#: ../src/jarabe/frame/activitiestray.py:548 +#: ../src/jarabe/frame/activitiestray.py:553 #, python-format msgid "%s of %s" msgstr "%s को %s" -#: ../src/jarabe/frame/activitiestray.py:562 +#: ../src/jarabe/frame/activitiestray.py:567 #, python-format #, python-format, msgid "Transfer from %s" msgstr "%s बाट सार्नुहोस" -#: ../src/jarabe/frame/activitiestray.py:573 +#: ../src/jarabe/frame/activitiestray.py:578 msgid "Accept" msgstr "स्विकार" -#: ../src/jarabe/frame/activitiestray.py:630 -#: ../src/jarabe/frame/activitiestray.py:643 -#: ../src/jarabe/frame/activitiestray.py:761 +#: ../src/jarabe/frame/activitiestray.py:635 +#: ../src/jarabe/frame/activitiestray.py:648 +#: ../src/jarabe/frame/activitiestray.py:766 msgid "Dismiss" msgstr "खारेज गर्नुहोस्" -#: ../src/jarabe/frame/activitiestray.py:647 +#: ../src/jarabe/frame/activitiestray.py:652 msgid "The other participant canceled the file transfer" msgstr "अर्को सहभागीले फाइल सार्ने रद्द गर्यो" -#: ../src/jarabe/frame/activitiestray.py:695 +#: ../src/jarabe/frame/activitiestray.py:700 #, python-format #, python-format, msgid "Transfer to %s" msgstr "%s मा सार्नुहोस" -#: ../src/jarabe/frame/clipboardmenu.py:56 +#: ../src/jarabe/frame/clipboardmenu.py:54 msgctxt "Clipboard" msgid "Remove" msgstr "हटाउनुहोस्" -#: ../src/jarabe/frame/clipboardmenu.py:62 -#: ../src/jarabe/frame/clipboardmenu.py:85 +#: ../src/jarabe/frame/clipboardmenu.py:60 +#: ../src/jarabe/frame/clipboardmenu.py:83 msgid "Open" msgstr "खोल" -#: ../src/jarabe/frame/clipboardmenu.py:90 +#: ../src/jarabe/frame/clipboardmenu.py:88 msgid "Open with" msgstr "सगँ खोल" @@ -1309,18 +1309,18 @@ msgstr "पछाडि" msgid "Next" msgstr "अर्को" -#: ../src/jarabe/journal/expandedentry.py:145 +#: ../src/jarabe/journal/expandedentry.py:151 #: ../src/jarabe/journal/listmodel.py:145 ../src/jarabe/journal/model.py:703 -#: ../src/jarabe/journal/palettes.py:66 +#: ../src/jarabe/journal/palettes.py:67 #: ../src/jarabe/journal/volumestoolbar.py:131 msgid "Untitled" msgstr "बिना शिर्षक" -#: ../src/jarabe/journal/expandedentry.py:259 +#: ../src/jarabe/journal/expandedentry.py:260 msgid "No preview" msgstr "पूर्वावलोकन छैन" -#: ../src/jarabe/journal/expandedentry.py:273 +#: ../src/jarabe/journal/expandedentry.py:274 #, python-format msgid "Kind: %s" msgstr "प्रकार: %s" @@ -1341,143 +1341,149 @@ msgstr "मिति: %s" msgid "Size: %s" msgstr "साइज: %s" -#: ../src/jarabe/journal/expandedentry.py:299 +#: ../src/jarabe/journal/expandedentry.py:302 #: ../src/jarabe/journal/misc.py:108 msgid "No date" msgstr "मिति छैन" -#: ../src/jarabe/journal/expandedentry.py:308 +#: ../src/jarabe/journal/expandedentry.py:311 msgid "Participants:" msgstr "प्रतिभागीहरु:" -#: ../src/jarabe/journal/expandedentry.py:349 +#: ../src/jarabe/journal/expandedentry.py:353 msgid "Description:" msgstr "वर्णनः" -#: ../src/jarabe/journal/expandedentry.py:352 +#: ../src/jarabe/journal/expandedentry.py:356 msgid "Tags:" msgstr "चिनोहरु:" #: ../src/jarabe/journal/journalactivity.py:120 -#: ../src/jarabe/journal/journaltoolbox.py:82 -#: ../src/jarabe/journal/journaltoolbox.py:465 -#: ../src/jarabe/journal/palettes.py:218 +#: ../src/jarabe/journal/journaltoolbox.py:83 +#: ../src/jarabe/journal/journaltoolbox.py:466 +#: ../src/jarabe/journal/palettes.py:219 #: ../src/jarabe/journal/volumestoolbar.py:362 msgid "Journal" msgstr "पंजिका" -#: ../src/jarabe/journal/journaltoolbox.py:128 +#: ../src/jarabe/journal/journaltoolbox.py:129 msgid "Anytime" msgstr "कुनैबेला" -#: ../src/jarabe/journal/journaltoolbox.py:130 +#: ../src/jarabe/journal/journaltoolbox.py:131 msgid "Today" msgstr "आज" -#: ../src/jarabe/journal/journaltoolbox.py:132 +#: ../src/jarabe/journal/journaltoolbox.py:133 msgid "Since yesterday" msgstr "हिजो देखि" # TRANS: Filter entries modified during the last 7 days. #. TRANS: Filter entries modified during the last 7 days. -#: ../src/jarabe/journal/journaltoolbox.py:134 +#: ../src/jarabe/journal/journaltoolbox.py:135 msgid "Past week" msgstr "गत हप्ता" # TRANS: Filter entries modified during the last 30 days. #. TRANS: Filter entries modified during the last 30 days. -#: ../src/jarabe/journal/journaltoolbox.py:136 +#: ../src/jarabe/journal/journaltoolbox.py:137 msgid "Past month" msgstr "गत महिना" # TRANS: Filter entries modified during the last 356 days. #. TRANS: Filter entries modified during the last 356 days. -#: ../src/jarabe/journal/journaltoolbox.py:138 +#: ../src/jarabe/journal/journaltoolbox.py:139 msgid "Past year" msgstr "गत वर्ष" -#: ../src/jarabe/journal/journaltoolbox.py:145 +#: ../src/jarabe/journal/journaltoolbox.py:146 msgid "Anyone" msgstr "जो सुकै" -#: ../src/jarabe/journal/journaltoolbox.py:147 +#: ../src/jarabe/journal/journaltoolbox.py:148 msgid "My friends" msgstr "मेरा साथीहरु" -#: ../src/jarabe/journal/journaltoolbox.py:148 +#: ../src/jarabe/journal/journaltoolbox.py:149 msgid "My class" msgstr "मेरो कक्षा" # TRANS: Item in a combo box that filters by entry type. -#: ../src/jarabe/journal/journaltoolbox.py:290 +#: ../src/jarabe/journal/journaltoolbox.py:291 msgid "Anything" msgstr "कुनैपनि" -#: ../src/jarabe/journal/journaltoolbox.py:376 -#: ../src/jarabe/journal/palettes.py:95 +#: ../src/jarabe/journal/journaltoolbox.py:377 +#: ../src/jarabe/journal/palettes.py:96 msgid "Copy to" msgstr "मा प्रतिलिपी बनाउ" -#: ../src/jarabe/journal/journaltoolbox.py:384 -#: ../src/jarabe/journal/palettes.py:106 ../src/jarabe/view/viewsource.py:278 +#: ../src/jarabe/journal/journaltoolbox.py:385 +#: ../src/jarabe/journal/palettes.py:107 ../src/jarabe/view/viewsource.py:279 msgid "Duplicate" msgstr "नक्कल" -#: ../src/jarabe/journal/journaltoolbox.py:417 -#: ../src/jarabe/journal/palettes.py:143 ../src/jarabe/journal/palettes.py:274 +#: ../src/jarabe/journal/journaltoolbox.py:418 +#: ../src/jarabe/journal/palettes.py:144 ../src/jarabe/journal/palettes.py:285 #: ../src/jarabe/journal/volumestoolbar.py:309 #, python-format msgid "Error while copying the entry. %s" msgstr "प्रविष्टि कपि गर्दा त्रुटि। %s" -#: ../src/jarabe/journal/journaltoolbox.py:418 -#: ../src/jarabe/journal/palettes.py:144 ../src/jarabe/journal/palettes.py:275 +#: ../src/jarabe/journal/journaltoolbox.py:419 +#: ../src/jarabe/journal/palettes.py:145 ../src/jarabe/journal/palettes.py:286 #: ../src/jarabe/journal/volumestoolbar.py:310 msgid "Error" msgstr "त्रुटि" -#: ../src/jarabe/journal/journaltoolbox.py:424 -#: ../src/jarabe/journal/palettes.py:150 +#: ../src/jarabe/journal/journaltoolbox.py:425 +#: ../src/jarabe/journal/palettes.py:151 #, python-format msgid "Do you want to permanently erase \"%s\"?" msgstr "के तिमीलाई \"%s\" स्थायी रुपमा मेटाउन मन छ?" +#: ../src/jarabe/journal/journaltoolbox.py:476 +#: ../src/jarabe/journal/palettes.py:229 +#: ../src/jarabe/journal/volumestoolbar.py:210 +msgid "Documents" +msgstr "कागजातहरु" + # TRANS: Action label for starting an entry. #. TRANS: Action label for starting an entry. -#: ../src/jarabe/journal/journaltoolbox.py:509 -#: ../src/jarabe/journal/palettes.py:76 +#: ../src/jarabe/journal/journaltoolbox.py:520 +#: ../src/jarabe/journal/palettes.py:77 msgid "Start" msgstr "सुरु गर" -#: ../src/jarabe/journal/journaltoolbox.py:537 +#: ../src/jarabe/journal/journaltoolbox.py:548 msgid "Sort by date modified" msgstr "परिमार्जित मिति क्रमबद्व रुपमा राखनुहोस्" -#: ../src/jarabe/journal/journaltoolbox.py:538 +#: ../src/jarabe/journal/journaltoolbox.py:549 msgid "Sort by date created" msgstr "परिमार्जित मिति सृजित गरेको अनुसार क्रमबद्व रुपमा राखनुहोस्" -#: ../src/jarabe/journal/journaltoolbox.py:539 +#: ../src/jarabe/journal/journaltoolbox.py:550 msgid "Sort by size" msgstr "साइज अनुसार क्रमबद्व रुपमा राखनुहोस्" -#: ../src/jarabe/journal/journaltoolbox.py:548 +#: ../src/jarabe/journal/journaltoolbox.py:559 msgid "Sort view" msgstr "क्रमबद्ध दृश्य" -#: ../src/jarabe/journal/listview.py:323 +#: ../src/jarabe/journal/listview.py:337 msgid "Your Journal is empty" msgstr "तिम्रो पंजिका खाली छ" -#: ../src/jarabe/journal/listview.py:326 +#: ../src/jarabe/journal/listview.py:340 msgid "Your documents folder is empty" msgstr "तिम्रो कागजात फोल्डर खाली छ" -#: ../src/jarabe/journal/listview.py:328 +#: ../src/jarabe/journal/listview.py:342 msgid "The device is empty" msgstr "यन्त्र खाली छ" -#: ../src/jarabe/journal/listview.py:330 +#: ../src/jarabe/journal/listview.py:344 msgid "No matching entries" msgstr "मिल्ने लेखा छैन" @@ -1508,61 +1514,57 @@ msgid "Choose an object" msgstr "वस्तु छान" #: ../src/jarabe/journal/objectchooser.py:156 -#: ../src/jarabe/view/viewsource.py:414 +#: ../src/jarabe/view/viewsource.py:415 msgid "Close" msgstr "बन्द" -#: ../src/jarabe/journal/palettes.py:74 +#: ../src/jarabe/journal/palettes.py:75 msgid "Resume with" msgstr "पुनरारम्भ सहित" -#: ../src/jarabe/journal/palettes.py:77 +#: ../src/jarabe/journal/palettes.py:78 msgid "Start with" msgstr "शुरु सहित" -#: ../src/jarabe/journal/palettes.py:90 ../src/jarabe/journal/palettes.py:377 +#: ../src/jarabe/journal/palettes.py:91 ../src/jarabe/journal/palettes.py:388 msgid "No activity to start entry" msgstr "सुरु गर्न कुनै क्रियाकलाप छैन" -#: ../src/jarabe/journal/palettes.py:114 +#: ../src/jarabe/journal/palettes.py:115 msgid "Send to" msgstr "पठाउनु" -#: ../src/jarabe/journal/palettes.py:123 +#: ../src/jarabe/journal/palettes.py:124 msgid "View Details" msgstr "वृत्तांत हेर" -#: ../src/jarabe/journal/palettes.py:180 +#: ../src/jarabe/journal/palettes.py:181 msgid "Entries without a file cannot be sent." msgstr "फाइल नभएको प्रविष्टिहरु पठाउन सकिदैन।" -#: ../src/jarabe/journal/palettes.py:265 ../src/jarabe/journal/palettes.py:298 +#: ../src/jarabe/journal/palettes.py:276 ../src/jarabe/journal/palettes.py:309 #: ../src/jarabe/journal/volumestoolbar.py:300 msgid "Entries without a file cannot be copied." msgstr "फाइल नभाको प्रविष्टिहरु कपि हुन सकेन।" -#: ../src/jarabe/journal/palettes.py:287 +#: ../src/jarabe/journal/palettes.py:298 msgid "Clipboard" msgstr "क्लिपबोर्ड" -#: ../src/jarabe/journal/palettes.py:342 +#: ../src/jarabe/journal/palettes.py:353 msgid "No friends present" msgstr "कुनै पनि साथीहरु हाजीर छैनन्" -#: ../src/jarabe/journal/palettes.py:347 +#: ../src/jarabe/journal/palettes.py:358 msgid "No valid connection found" msgstr "कुनै पनि सदर संयोग भेटिएन" -#: ../src/jarabe/journal/palettes.py:375 +#: ../src/jarabe/journal/palettes.py:386 msgid "No activity to resume entry" msgstr "पुनरारम्भ गर्न कुनै क्रियाकलाप छैन" -#: ../src/jarabe/journal/volumestoolbar.py:210 -msgid "Documents" -msgstr "कागजातहरु" - #: ../src/jarabe/journal/volumestoolbar.py:385 -#: ../src/jarabe/view/palettes.py:207 ../src/jarabe/view/palettes.py:269 +#: ../src/jarabe/view/palettes.py:226 ../src/jarabe/view/palettes.py:293 #, python-format msgid "%(free_space)d MB Free" msgstr "%(free_space)d MB खालि" @@ -1754,31 +1756,31 @@ msgstr "ब्लूटूथ संयोजन असफल भयो वा msgid "Unused." msgstr "प्रयोग नभएको।" -#: ../src/jarabe/view/buddymenu.py:67 +#: ../src/jarabe/view/buddymenu.py:73 msgid "Remove friend" msgstr "साथी हटाऊ" -#: ../src/jarabe/view/buddymenu.py:70 +#: ../src/jarabe/view/buddymenu.py:76 msgid "Make friend" msgstr "साथी बनाऊ" -#: ../src/jarabe/view/buddymenu.py:87 +#: ../src/jarabe/view/buddymenu.py:92 msgid "Shutdown" msgstr "बन्द" -#: ../src/jarabe/view/buddymenu.py:95 +#: ../src/jarabe/view/buddymenu.py:99 msgid "Restart" msgstr "पून: सुरु" -#: ../src/jarabe/view/buddymenu.py:101 +#: ../src/jarabe/view/buddymenu.py:105 msgid "Logout" msgstr "लगआउट" -#: ../src/jarabe/view/buddymenu.py:106 +#: ../src/jarabe/view/buddymenu.py:110 msgid "My Settings" msgstr "मेरो सेटिंगहरु" -#: ../src/jarabe/view/buddymenu.py:142 +#: ../src/jarabe/view/buddymenu.py:150 #, python-format msgid "Invite to %s" msgstr "%s मा निम्ता देऊ" @@ -1788,55 +1790,55 @@ msgstr "%s मा निम्ता देऊ" msgid "%s failed to start." msgstr "%s सुरुहुन असफल।" -#: ../src/jarabe/view/palettes.py:50 +#: ../src/jarabe/view/palettes.py:52 msgid "Starting..." msgstr "शुरु हुदैछ..." -#: ../src/jarabe/view/palettes.py:60 +#: ../src/jarabe/view/palettes.py:62 msgid "Activity failed to start" msgstr "क्रियाकलाप सुरुहुन असफल" #. TODO: share-with, keep -#: ../src/jarabe/view/palettes.py:93 +#: ../src/jarabe/view/palettes.py:103 msgid "View Source" msgstr "स्रोत दृश्य" -#: ../src/jarabe/view/palettes.py:104 +#: ../src/jarabe/view/palettes.py:111 msgid "Stop" msgstr "बन्द गर" -#: ../src/jarabe/view/palettes.py:141 +#: ../src/jarabe/view/palettes.py:154 msgid "Start new" msgstr "नयाँ सुरु गर।" -#: ../src/jarabe/view/palettes.py:223 +#: ../src/jarabe/view/palettes.py:242 msgctxt "Volume" msgid "Remove" msgstr "हटाउनुहोस्" -#: ../src/jarabe/view/viewsource.py:267 +#: ../src/jarabe/view/viewsource.py:268 msgid "Instance Source" msgstr "दृष्टांत स्रोत" -#: ../src/jarabe/view/viewsource.py:316 +#: ../src/jarabe/view/viewsource.py:317 msgid "Source" msgstr "स्रोत" -#: ../src/jarabe/view/viewsource.py:378 +#: ../src/jarabe/view/viewsource.py:379 msgid "Activity Bundle Source" msgstr "क्रियाकलाप बन्डलको स्रोत" -#: ../src/jarabe/view/viewsource.py:397 +#: ../src/jarabe/view/viewsource.py:398 msgid "Sugar Toolkit Source" msgstr "सुगर टूलकिटको स्रोत" -#: ../src/jarabe/view/viewsource.py:404 +#: ../src/jarabe/view/viewsource.py:405 #, python-format #, python-format, msgid "View source: %s" msgstr "स्रोत दृश्य : %s" -#: ../src/jarabe/view/viewsource.py:405 +#: ../src/jarabe/view/viewsource.py:406 #, python-format msgid "View source: %r" msgstr "स्रोत दृश्य : %r" diff --git a/src/jarabe/desktop/activitieslist.py b/src/jarabe/desktop/activitieslist.py index 9fdaa16..71f3c61 100644 --- a/src/jarabe/desktop/activitieslist.py +++ b/src/jarabe/desktop/activitieslist.py @@ -33,11 +33,13 @@ from sugar3.graphics.icon import Icon, CellRendererIcon from sugar3.graphics.xocolor import XoColor from sugar3.graphics.alert import Alert from sugar3.graphics.palettemenu import PaletteMenuItem +from sugar3.graphics.palettemenu import PaletteMenuItemSeparator from jarabe.model import bundleregistry from jarabe.view.palettes import ActivityPalette from jarabe.journal import misc from jarabe.util.normalize import normalize_string +from jarabe.desktop.favoritesview import ActivityIconDatastoreListener gconf_client = GConf.Client.get_default() @@ -86,6 +88,7 @@ class ActivitiesTreeView(Gtk.TreeView): column = Gtk.TreeViewColumn() column.pack_start(cell_icon, True) + column.set_cell_data_func(cell_icon, self.__set_activity_icon_color) column.add_attribute(cell_icon, 'file-name', ListModel.COLUMN_ICON) self.append_column(column) @@ -137,6 +140,19 @@ class ActivitiesTreeView(Gtk.TreeView): def __erase_activated_cb(self, cell_renderer, bundle_id): self.emit('erase-activated', bundle_id) + def __set_activity_icon_color(self, column, cell, model, tree_iter, data): + listener = model[tree_iter][ListModel.COLUMN_DATASTORE_LISTENER] + if len(listener._journal_entries) > 0: + xo_color = misc.get_icon_color(listener._journal_entries[0]) + stroke_color = xo_color.get_stroke_color() + fill_color = xo_color.get_fill_color() + else: + stroke_color = style.COLOR_DESKTOP_ICON.get_svg() + fill_color = style.COLOR_TRANSPARENT.get_svg() + + cell.props.stroke_color = stroke_color + cell.props.fill_color = fill_color + def __favorite_set_data_cb(self, column, cell, model, tree_iter, data): favorite = model[tree_iter][ListModel.COLUMN_FAVORITE] if favorite: @@ -154,8 +170,20 @@ class ActivitiesTreeView(Gtk.TreeView): not row[ListModel.COLUMN_FAVORITE], True) + def _resume(self, journal_entry, activity_info): + if not journal_entry['activity_id']: + journal_entry['activity_id'] = activityfactory.create_activity_id() + misc.resume(journal_entry, activity_info.get_bundle_id()) + def __icon_clicked_cb(self, cell, path): - self._start_activity(path) + row = self.get_model()[path] + listener = row[ListModel.COLUMN_DATASTORE_LISTENER] + + if listener._journal_entries: + self._resume(listener._journal_entries[0], + listener._activity_info) + else: + misc.launch(listener._activity_info) def _start_activity(self, path): row = self.get_model()[path] @@ -196,9 +224,11 @@ class ListModel(Gtk.TreeModelSort): COLUMN_VERSION_TEXT = 5 COLUMN_DATE = 6 COLUMN_DATE_TEXT = 7 + COLUMN_DATASTORE_LISTENER = 8 def __init__(self): - self._model = Gtk.ListStore(str, bool, str, str, str, str, int, str) + self._model = Gtk.ListStore(str, bool, str, str, str, str, int, + str, ActivityIconDatastoreListener) self._model_filter = self._model.filter_new() Gtk.TreeModelSort.__init__(self, model=self._model_filter) self.set_sort_column_id(ListModel.COLUMN_TITLE, Gtk.SortType.ASCENDING) @@ -289,7 +319,8 @@ class ListModel(Gtk.TreeModelSort): version, _('Version %s') % version, int(timestamp), - elapsed_string]) + elapsed_string, + ActivityIconDatastoreListener(activity_info, self)]) def set_visible_func(self, func): self._model_filter.set_visible_func(func) @@ -297,6 +328,10 @@ class ListModel(Gtk.TreeModelSort): def refilter(self): self._model_filter.refilter() + def _update(self, force=False): + if force is True: + self.refresh_model() + class CellRendererFavorite(CellRendererIcon): __gtype_name__ = 'SugarCellRendererFavorite' @@ -325,6 +360,7 @@ class CellRendererActivityIcon(CellRendererIcon): def __init__(self, tree_view): CellRendererIcon.__init__(self, tree_view) + self._tree_view = tree_view self.props.width = style.GRID_CELL_SIZE self.props.height = style.GRID_CELL_SIZE @@ -346,13 +382,19 @@ class CellRendererActivityIcon(CellRendererIcon): bundle_id = row[ListModel.COLUMN_BUNDLE_ID] registry = bundleregistry.get_registry() - palette = ActivityListPalette(registry.get_bundle(bundle_id)) + palette = ActivityListPalette(registry.get_bundle(bundle_id), + row[ListModel.COLUMN_DATASTORE_LISTENER]._journal_entries) palette.connect('erase-activated', self.__erase_activated_cb) + palette.connect('entry-activate', self.__palette_entry_activate_cb) return palette def __erase_activated_cb(self, palette, bundle_id): self.emit('erase-activated', bundle_id) + def __palette_entry_activate_cb(self, palette, metadata, activity_info): + self._tree_view._resume(metadata, activity_info) + + class ClearMessageBox(Gtk.EventBox): def __init__(self, message, button_callback): @@ -528,14 +570,41 @@ class ActivityListPalette(ActivityPalette): __gsignals__ = { 'erase-activated': (GObject.SignalFlags.RUN_FIRST, None, ([str])), + 'entry-activate': (GObject.SignalFlags.RUN_FIRST, None, ([object, object])), + } - def __init__(self, activity_info): + def __init__(self, activity_info, journal_entries): ActivityPalette.__init__(self, activity_info) self._bundle_id = activity_info.get_bundle_id() self._version = activity_info.get_activity_version() + if journal_entries: + title = journal_entries[0]['title'] + self.props.secondary_text = GLib.markup_escape_text(title) + + menu_items = [] + for entry in journal_entries: + icon_file_name = misc.get_icon_name(entry) + color = misc.get_icon_color(entry) + + menu_item = PaletteMenuItem(text_label=entry['title'], + file_name=icon_file_name, + xo_color=color) + menu_item.connect('activate', self.__resume_entry_cb, + entry, activity_info) + menu_items.append(menu_item) + menu_item.show() + + if journal_entries: + separator = PaletteMenuItemSeparator() + menu_items.append(separator) + separator.show() + + for i in range(0, len(menu_items)): + self.menu_box.pack_start(menu_items[i], True, True, 0) + registry = bundleregistry.get_registry() self._favorite = registry.is_bundle_favorite(self._bundle_id, self._version) @@ -603,3 +672,7 @@ class ActivityListPalette(ActivityPalette): def __erase_activate_cb(self, menu_item): self.emit('erase-activated', self._bundle_id) + + def __resume_entry_cb(self, menu_item, entry, activity_info): + if entry is not None: + self.emit('entry-activate', entry, activity_info) diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py index ce3770b..3b07b4d 100644 --- a/src/jarabe/desktop/favoritesview.py +++ b/src/jarabe/desktop/favoritesview.py @@ -385,23 +385,17 @@ class FavoritesView(ViewContainer): icon.set_resume_mode(self._resume_mode) -class ActivityIcon(CanvasIcon): - __gtype_name__ = 'SugarFavoriteActivityIcon' - - _BORDER_WIDTH = style.zoom(9) +class ActivityIconDatastoreListener(GObject.GObject): _MAX_RESUME_ENTRIES = 5 - def __init__(self, activity_info): - CanvasIcon.__init__(self, cache=True, - file_name=activity_info.get_icon()) + def __init__(self, activity_info, container_instance): + GObject.GObject.__init__(self) + self._container_instance = container_instance self._activity_info = activity_info self._journal_entries = [] self._resume_mode = True - self.connect_after('button-release-event', - self.__button_release_event_cb) - datastore.updated.connect(self.__datastore_listener_updated_cb) datastore.deleted.connect(self.__datastore_listener_deleted_cb) @@ -438,23 +432,45 @@ class ActivityIcon(CanvasIcon): # related to this activity. checked_entries = [] for entry in entries: - if entry['activity'] == self.bundle_id: + if entry['activity'] == self._activity_info.get_bundle_id(): checked_entries.append(entry) self._journal_entries = checked_entries - self._update() + self._update(True) def __get_last_activity_error_handler_cb(self, error): logging.error('Error retrieving most recent activities: %r', error) - def _update(self): - self.palette = None - if not self._resume_mode or not self._journal_entries: - xo_color = XoColor('%s,%s' % (style.COLOR_DESKTOP_ICON.get_svg(), - style.COLOR_TRANSPARENT.get_svg())) + def _update(self, force=True): + self._container_instance._update() + + def _resume(self, journal_entry): + if not journal_entry['activity_id']: + journal_entry['activity_id'] = activityfactory.create_activity_id() + misc.resume(journal_entry, self._activity_info.get_bundle_id()) + + def _activate(self): + if self.palette is not None: + self.palette.popdown(immediate=True) + + if self._resume_mode and self._journal_entries: + self._resume(self._journal_entries[0]) else: - xo_color = misc.get_icon_color(self._journal_entries[0]) - self.props.xo_color = xo_color + misc.launch(self._activity_info) + + +class ActivityIcon(CanvasIcon, ActivityIconDatastoreListener): + __gtype_name__ = 'SugarFavoriteActivityIcon' + + _BORDER_WIDTH = style.zoom(9) + + def __init__(self, activity_info): + CanvasIcon.__init__(self, cache=True, + file_name=activity_info.get_icon()) + ActivityIconDatastoreListener.__init__(self, activity_info, self) + + self.connect_after('button-release-event', + self.__button_release_event_cb) def create_palette(self): palette = FavoritePalette(self._activity_info, self._journal_entries) @@ -482,20 +498,6 @@ class ActivityIcon(CanvasIcon): def __button_release_event_cb(self, icon, event): self._activate() - def _resume(self, journal_entry): - if not journal_entry['activity_id']: - journal_entry['activity_id'] = activityfactory.create_activity_id() - misc.resume(journal_entry, self._activity_info.get_bundle_id()) - - def _activate(self): - if self.palette is not None: - self.palette.popdown(immediate=True) - - if self._resume_mode and self._journal_entries: - self._resume(self._journal_entries[0]) - else: - misc.launch(self._activity_info) - def get_bundle_id(self): return self._activity_info.get_bundle_id() bundle_id = property(get_bundle_id, None) @@ -520,6 +522,15 @@ class ActivityIcon(CanvasIcon): self._resume_mode = resume_mode self._update() + def _update(self, force=True): + self.palette = None + if not self._resume_mode or not self._journal_entries: + xo_color = XoColor('%s,%s' % (style.COLOR_DESKTOP_ICON.get_svg(), + style.COLOR_TRANSPARENT.get_svg())) + else: + xo_color = misc.get_icon_color(self._journal_entries[0]) + self.props.xo_color = xo_color + class FavoritePalette(ActivityPalette): __gtype_name__ = 'SugarFavoritePalette' @@ -591,7 +602,7 @@ class CurrentActivityIcon(CanvasIcon): window = self._home_model.get_active_activity().get_window() window.activate(Gtk.get_current_event_time()) - def _update(self): + def _update(self, force=True): self.props.file_name = self._home_activity.get_icon_path() self.props.xo_color = self._home_activity.get_icon_color() self.props.pixel_size = style.STANDARD_ICON_SIZE -- cgit v0.9.1