diff --git a/about.json b/about.json index 41a663248..6e0c37d38 100644 --- a/about.json +++ b/about.json @@ -1,10 +1,15 @@ { -"name": "Moodle Mobile", +"name": "lesroches", "license": { "name": "Apache 2.0", "link": "http://www.apache.org/licenses/LICENSE-2.0" }, "credits": [ + { + "fullname": "Rui Rocha", + "contribution": "Developer", + "company": "" +}, { "fullname": "Juan Leyva", "contribution": "Main developer", @@ -128,4 +133,4 @@ "license": "MIT" } ] -} \ No newline at end of file +} diff --git a/config.json b/config.json index f30631803..b056ffdde 100644 --- a/config.json +++ b/config.json @@ -1,14 +1,14 @@ { -"app_id" : "com.moodle.moodlemobile", -"versioncode" : "383", -"versionname" : "1.9", +"app_id" : "ch.lhemoodle.lesroches", +"versioncode" : "1", +"versionname" : "1.0", "cache_expiration_time" : 300000, "default_lang" : "en", "languages": {"ar": "عربي", "bg": "Български", "ca": "Català", "cs": "Čeština", "de": "Deutsch","en": "English", "es": "Español", "es_mx": "Español - México", "eu": "Euskara", "fa": "فارسی", "fr" : "Français", "he" : "עברית", "hu": "magyar", "it": "Italiano", "ja": "日本語","nl": "Nederlands", "ru": "Русский", "sv": "Svenska", "tr" : "Türkçe", "zh_cn" : "简体中文", "zh_tw" : "正體中文"}, -"plugins" : ["notifications", "messages", "upload", "events", "myfiles", "contents", "participants", "grades","addcontact", "addnote", "sendmessage", "forum", "label", "url", "page", "resource"], +"plugins" : ["notifications", "messages", "upload", "events", "myfiles", "contents", "participants", "grades","addcontact", "addnote", "sendmessage", "forum", "label", "url", "page", "resource","lesroches"], "wsservice" : "moodle_mobile_app", "wsextservice" : "local_mobile", -"presets" : {"url": "", "username": ""}, +"presets" : {"url": "http://www.lhemoodle.ch", "username": ""}, "sync_ws_on" : true, "sync_css_on" : true, "sync_cron": 300000, @@ -17,7 +17,7 @@ "log_length" : 100, "dev_debug": false, "extra_js": [], -"demo_sites": [{"key": "student", "url": "http://school.demo.moodle.net", "username": "student", "password": "moodle"}, {"key": "teacher", "url": "http://school.demo.moodle.net", "username": "teacher", "password": "moodle"}, {"key": "cva", "url": "http://mm.cvaconsulting.com/moodle", "username": "student", "password": "student"}], +"demo_sites": [], "notifications_enabled": true, "gcmpn": "694767596569", "reportbugmail": "mobile@moodle.com" diff --git a/config.xml b/config.xml index c0db40742..3104cf5de 100644 --- a/config.xml +++ b/config.xml @@ -2,9 +2,9 @@ + id = "ch.lhemoodle.lesroches" + versionCode = "385" + version = "1.11"> Moodle Mobile @@ -16,7 +16,7 @@ - 1.9 + 1.11 @@ -47,13 +47,25 @@ + + + + + + + + + + + + - - - - + + + + @@ -76,7 +88,7 @@ - + @@ -88,9 +100,14 @@ - + + + + + + diff --git a/css/styles.css b/css/styles.css index 83ea35320..1883881ca 100644 --- a/css/styles.css +++ b/css/styles.css @@ -42,8 +42,8 @@ html { body { color: #666666; font-family: Helvetica, sans-serif; - font-size: 14px; - font-size: .875rem; + font-size: 16px; + font-size: 1rem; line-height: 24px; background: #fa8f1c url(../img/bg-orange.png); } @@ -76,10 +76,15 @@ ol { h1 { font-size: 18px; font-size: 1.125rem; - color: #666666; - margin: 5px 0 0; + font-weight: normal; } h2 { + font-size: 17px; + font-size: 1.0625rem; + font-weight: normal; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2); +} +h3 { color: #666666; font-size: 100%; font-weight: normal; @@ -90,6 +95,18 @@ h2 { padding: 0 10px; background-color: #eeeeee; } +h4 { + font-size: 15px; + font-size: 0.9375rem; +} +h5 { + font-size: 14px; + font-size: 0.875; +} +h6 { + font-size: 13px; + font-size: 0.8125rem; +} b, strong { font-weight: bold; @@ -485,7 +502,6 @@ hr { color: #ffffff; height: 44px; line-height: 44px; - padding-right: 20px; overflow: hidden; background: #fa8f1c; border-bottom: 0; @@ -505,17 +521,49 @@ hr { height: 40px; margin-left: 5px; } -#page-title { - font-size: 16px; - font-size: 1rem; +.header-main .menu-home { + background-image: url(../img/ico-menu.png); +} +.header-main .menu-back { + background-image: url(../img/ico-back.png); +} +.header-main #page-title { text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2); letter-spacing: .5px; + display: block; + text-align: center; + padding-left: 10px; + padding-right: 10px; + overflow: hidden; } -.menu-home { - background-image: url(../img/ico-menu.png); +.header-sub { + padding-top: 10px; + padding-bottom: 10px; + min-height: 44px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } -.menu-back { - background-image: url(../img/ico-back.png); +.header-sub .back-row { + float: left; + margin-bottom: 10px; + margin-left: 5px; + display: block; +} +.header-sub .back-row a { + padding: 10px; +} +.header-sub h2 { + margin-bottom: 0; + overflow: hidden; +} +.header-sub h2 .img { + margin-top: 5px; +} +.header-sub #tablet-page-title, +.header-sub #back-arrow-title { + display: table; + margin: 0 auto; + padding-left: 10px; + padding-right: 10px; } /* - Common on three panels -------------------------------------------------------------------------- */ @@ -553,10 +601,11 @@ hr { border-radius: 50%; } .user-menu header h1 { + font-size: 20px; + font-size: 1.25rem; color: #ffffff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.2); - font-weight: normal; - line-height: 20px; + margin: 5px 0 0; } .user-menu h2 { color: #ffffff; @@ -658,7 +707,12 @@ hr { position: relative; } .content-index header { + border-top: 1px solid #eee; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} +.content-index header h2 { padding: 10px; + margin-bottom: 0; } .content-index section:last-of-type { border-bottom: 1px solid #eee; @@ -675,7 +729,7 @@ hr { .content-index .content-table { width: 100%; } -.content-index .content-name a { +.content-index .content-name > a { display: block; padding: 10px; } @@ -686,12 +740,23 @@ hr { .content-index .content-name.mod-label { overflow: auto; } -.content-index .content-name.mod-label h3 { - font-size: 100%; - font-weight: normal; - margin: 0; +.content-index .content-name.mod-label a > div { padding-right: 80px; } +.content-index .content-name.mod-label a > div h1, +.content-index .content-name.mod-label a > div h2, +.content-index .content-name.mod-label a > div h3, +.content-index .content-name.mod-label a > div h4, +.content-index .content-name.mod-label a > div h5, +.content-index .content-name.mod-label a > div h6 { + color: #666666; + font-weight: bold; + line-height: inherit; + letter-spacing: 0; + background-color: transparent; + text-shadow: none; + padding: 0; +} .content-index .content-name.mod-label img { width: auto; } @@ -765,10 +830,6 @@ hr { padding-right: 10px; word-wrap: break-word; } -.back-row a { - display: block; - padding: 10px; -} .path-mod-forum .forum { border-bottom: 15px solid #eee; } @@ -780,8 +841,8 @@ hr { margin-left: 32px; } .path-mod-forum .intro { - margin-left: 32px; - padding: 0 10px 10px; + padding: 10px; + margin-left: 4px; } .path-mod-forum .first-post > .subject { font-size: 1rem; @@ -790,9 +851,6 @@ hr { padding-top: 10px; border-bottom: 1px solid #eee; } -.path-mod-forum .forum-post:first-of-type { - border-top: 1px solid #eee; -} .path-mod-forum .forum-post:last-child { border-bottom: 0; } @@ -828,6 +886,10 @@ hr { padding: 0 10px 10px; margin-left: 50px; } +.path-mod-forum .content:first-of-type { + padding-top: 10px; + margin-left: 4px; +} .path-mod-forum .content ul, .path-mod-forum .content ol { margin-left: 20px; @@ -875,21 +937,25 @@ hr { padding: 2px 6px; margin: 4px; } -.path-mod-forum.forum-discussion .first-post { - border-top: 15px solid #eee; - border-bottom: 1px solid #eee; -} .path-mod-forum.forum-discussion .indent { border-top: 15px solid #eee; } -.fullpath { +.content-index .back-row { + padding-top: 10px; + padding-bottom: 10px; + margin-left: 5px; +} +.content-index .back-row a { + padding: 10px; +} +.content-index .fullpath { width: 100%; background-color: #eee; position: fixed; bottom: 0; padding: 4px 10px; } -.fullpath p { +.content-index .fullpath p { margin-bottom: 0; line-height: 20px; } @@ -897,6 +963,20 @@ hr { .notifications { padding: 10px; } +.messages .no-content, +.notifications .no-content { + display: table; + position: absolute; + width: 100%; + height: 100%; + text-align: center; + margin-left: -10px; +} +.messages .no-content p, +.notifications .no-content p { + display: table-cell; + vertical-align: middle; +} .message, .notification { padding: 0 10px; @@ -941,6 +1021,175 @@ hr { display: inline-block; padding: 8px; } +.path-messages.recent-messages img { + width: 40px; + height: 40px; + border-radius: 50%; +} +.path-messages.recent-messages p { + font-weight: bold; + line-height: 20px; + margin: 0; +} +.path-messages.recent-messages .preview { + font-weight: normal; +} +.path-messages .conversation { + background-color: #ffffff; + position: absolute; + margin-right: 50px; +} +.path-messages .conversation .conversation-area { + padding: 15px; + overflow-y: scroll; +} +.path-messages .conversation .conversation-area .datestamp { + text-align: center; + margin-bottom: 10px; + clear: both; +} +.path-messages .conversation .conversation-area .datestamp span { + color: #fff; + font-size: .75rem; + font-weight: bold; + background-color: #c9c9c9; + padding: 2px 10px; + border-radius: 10px; +} +.path-messages .conversation .conversation-area .bubble { + line-height: 20px; + word-wrap: break-word; + padding: 6px 12px; + margin-bottom: 10px; + width: auto; + max-width: 90%; + background: #ffffff; + border: 1px solid rgba(0, 0, 0, 0.3); + border-radius: 6px; + float: left; + clear: both; + position: relative; +} +.path-messages .conversation .conversation-area .bubble:before, +.path-messages .conversation .conversation-area .bubble:after { + content: ""; + display: block; + position: absolute; + border-style: solid; + border-color: transparent; +} +.path-messages .conversation .conversation-area .bubble:before { + border-width: 8px; + border-right-color: rgba(0, 0, 0, 0.3); + top: 8px; + left: -16px; +} +.path-messages .conversation .conversation-area .bubble:after { + border-width: 7px; + border-right-color: #ffffff; + top: 9px; + left: -14px; +} +.path-messages .conversation .conversation-area .bubble-alt { + background-color: #ffffff; + border-color: #fa8f1c; + float: right; +} +.path-messages .conversation .conversation-area .bubble-alt:before { + border-color: transparent; + border-left-color: #fa8f1c; + left: auto; + right: -16px; +} +.path-messages .conversation .conversation-area .bubble-alt:after { + border-color: transparent; + border-left-color: #ffffff; + left: auto; + right: -14px; +} +.path-messages .conversation .conversation-area .time { + color: #999; + font-size: .65rem; + float: right; + padding-left: 8px; + padding-top: 2px; +} +.path-messages .conversation .input-area { + padding: 8px 10px; + background-color: #eee; + border-top: 1px solid #ccc; + display: block; + width: 100%; +} +.path-messages .conversation .input-area form > div { + position: relative; + margin-right: 60px; +} +.path-messages .conversation .input-area form input { + display: block; + line-height: 20px; + padding: 6px 6px 4px; +} +.path-messages .conversation .input-area form input[type="text"] { + width: 100%; + border: 1px solid #eee; +} +.path-messages .conversation .input-area form input[type="submit"] { + color: #0088cc; + font-weight: bold; + background: transparent; + border: none; + position: absolute; + top: 0px; + left: 100%; + width: 50px; + margin-left: 10px; +} +.path-messages.contacts input[type="search"] { + width: 100%; + margin: 10px 0; +} +.path-messages.contacts .nav-item > a { + padding-top: 6px; +} +.path-messages.contacts img { + width: 30px; + height: 30px; + border-radius: 50%; +} +.path-messages.contacts p { + line-height: 30px; + margin: 0; +} +.path-messages.contact { + border-top: 1px solid #eee; +} +.path-messages.contact .media { + padding-left: 20px; + padding-right: 20px; + padding-bottom: 40px; + padding-top: 20px; +} +.path-messages.contact .media .img { + display: block; + vertical-align: baseline; +} +.path-messages.contact .media img { + width: 50px; + height: 50px; + border-radius: 50%; + vertical-align: bottom; +} +.path-messages.contact .media .bd { + font-size: 1rem; +} +.path-messages.contact .nav-item { + padding-left: 15px; + padding-right: 15px; +} +.path-messages.contact .nav-item a { + color: #0088cc; +} .events-list .name { line-height: 20px; } @@ -954,7 +1203,7 @@ hr { padding: 10px; } .event { - border-bottom: 1px solid #e0e0e0; + border-bottom: 1px solid #eee; } .event header { padding: 10px; @@ -964,24 +1213,28 @@ hr { } .event > div { padding: 10px; - border-top: 1px solid #e0e0e0; + border-top: 1px solid #eee; overflow: hidden; } .event .date p, -.event .course p { - padding-left: 26px; +.event .course p, +.event .option p { margin-bottom: 0; } -.event .time { +.event .date .time, +.event .course .time, +.event .option .time { font-size: 12px; } -.event .app-ico img { +.event .date input, +.event .course input, +.event .option input { + margin-right: 8px; +} +.event .media .app-ico img { width: 18px; height: auto; } -.event .description { - padding-left: 36px; -} .event .description img { margin: 20px 0 20px 20px; } @@ -1063,6 +1316,9 @@ hr { } /* - Participant on the right panel and Notification page on the center panel -------------------------------------------------------------------------- */ +.user-card { + border-top: 1px solid #eee; +} .user-card .content { border-bottom: 1px solid #eee; } @@ -1082,7 +1338,9 @@ hr { bottom: 0; padding-left: 110px; } -.user-card .media .bd h1 { +.user-card .media .bd p { + font-size: 18px; + font-size: 1.125rem; margin-bottom: 12px; } .user-card .user-data { @@ -1106,6 +1364,9 @@ hr { } /* - Settings on the right panel -------------------------------------------------------------------------- */ +.settings { + border-top: 1px solid #eee; +} .settings .nav-item { padding: 10px; } @@ -1172,17 +1433,20 @@ hr { .row-left { margin-right: 80px; } -.settings header { - padding: 10px; -} .settings .about { border-collapse: collapse; line-height: 20px; width: 100%; } +.settings .about thead th { + padding-top: 10px; + padding-bottom: 10px; +} .settings .about th { + font-weight: normal; text-align: left; - padding: 0 10px; + padding-left: 10px; + padding-right: 10px; } .settings .about td { padding: 10px; @@ -1197,9 +1461,6 @@ hr { background-color: #eeeeee; border-bottom: 1px solid #ffffff; } -.settings .about .section-name th { - font-weight: normal; -} /* - Dialog window -------------------------------------------------------------------------- */ #app-dialog { @@ -1399,6 +1660,9 @@ div.jqi button.jqidefaultbutton { } /* - Tablet minimum width 768px -------------------------------------------------------------------------- */ +.tablet .path-messages .conversation { + margin-right: 0; +} .tablet .grades thead { display: table-header-group; } @@ -1438,7 +1702,7 @@ div.jqi button.jqidefaultbutton { border-collapse: collapse; line-height: 20px; width: 100%; - border-top: 1px solid #e0e0e0; + border-top: 1px solid #eee; } .user-grade tr { border-bottom: 1px solid #eee; diff --git a/emulator/core_calendar_get_calendar_events.json b/emulator/core_calendar_get_calendar_events.json index 7e06d2d3b..8655eb4ef 100644 --- a/emulator/core_calendar_get_calendar_events.json +++ b/emulator/core_calendar_get_calendar_events.json @@ -1 +1,126 @@ -{"events":[{"id":9748,"name":"Mountain MoodleMoot","description":"

July 9-11, 2014 - Helena, Montana \"Mountain<\/p>\r\n

A small personable Moodle Moot in the heart of the Rockies<\/p>\r\n

Further information: www.mountainmoot.com<\/a><\/p>\r\n

Tag: #mtmoot<\/p>","format":1,"courseid":1,"groupid":0,"userid":24152,"repeatid":0,"modulename":"Forum","courseName": "Moots course", "instance":0,"eventtype":"course","timestart":1404916200,"timeduration":7200,"visible":1,"uuid":"","sequence":1,"timemodified":1390900746,"subscriptionid":null},{"id":9983,"name":"Moodle 2.7.1 scheduled release","description":"

 \r\nMoodle 2.7.1, Moodle 2.6.4 and Moodle 2.5.7 are scheduled to be released on this date.<\/p>","format":1,"courseid":1,"groupid":0,"userid":24152,"repeatid":0,"modulename":"0","instance":0,"eventtype":"site","timestart":1405372800,"timeduration":0,"visible":1,"uuid":"","sequence":1,"timemodified":1399930008,"subscriptionid":null},{"id":9867,"name":"Moodle Moot Colombia 2014","description":"

31 July - 1 August 2014<\/p>\r\n

Location: Bogota Colombia<\/p>\r\n

Further information: www.moodlemoot.org.co<\/a><\/p>\r\n

Tag: #mootco14<\/p>\r\n

<\/p>","format":1,"courseid":1,"groupid":0,"userid":24152,"repeatid":0,"modulename":"0","instance":0,"eventtype":"site","timestart":1406815200,"timeduration":115200,"visible":1,"uuid":"","sequence":1,"timemodified":1397212617,"subscriptionid":null},{"id":9719,"name":"MoodleMoot Romania 2014","description":"

18 - 23 August 2014<\/p>\r\n

Location: Cluj-Napoca, Romania<\/p>\r\n

Further information: www.moodle.ro\/moot2014<\/a><\/p>","format":1,"courseid":1,"groupid":0,"userid":24152,"repeatid":0,"modulename":"0","instance":0,"eventtype":"site","timestart":1408345200,"timeduration":460800,"visible":1,"uuid":"","sequence":1,"timemodified":1389259729,"subscriptionid":null},{"id":9984,"name":"Moodle 2.7.2 scheduled release","description":"

Moodle 2.7.2, Moodle 2.6.5 and Moodle 2.5.8 are scheduled to be released on this date.<\/p>","format":1,"courseid":1,"groupid":0,"userid":24152,"repeatid":0,"modulename":"0","instance":0,"eventtype":"site","timestart":1410211500,"timeduration":0,"visible":1,"uuid":"","sequence":1,"timemodified":1399930088,"subscriptionid":null},{"id":9957,"name":"MoodleMoot NZ14","description":"

Wednesday 1st October to Friday 3rd October 2014<\/p>\r\n

Location: Nelson, New Zealand
<\/span><\/p>\r\n

Further information: www.moodlemoot.co.nz<\/a>
<\/span><\/p>\r\n

Tag: #mootnz14<\/span><\/p>","format":1,"courseid":1,"groupid":0,"userid":24152,"repeatid":0,"modulename":"0","instance":0,"eventtype":"site","timestart":1412107200,"timeduration":201600,"visible":1,"uuid":"","sequence":1,"timemodified":1399405922,"subscriptionid":null}],"warnings":[]} \ No newline at end of file +{ + "events": [ + { + "id": 9748, + "name": "Mountain MoodleMoot", + "description": "

July 9-11, 2014 - Helena, Montana \"Mountain

\r\n

A small personable Moodle Moot in the heart of the Rockies

\r\n

Further information: www.mountainmoot.com

\r\n

Tag: #mtmoot

", + "format": 1, + "courseid": 1, + "groupid": 0, + "userid": 24152, + "repeatid": 0, + "modulename": "Forum", + "courseName": "Moots course", + "instance": 0, + "eventtype": "course", + "timestart": 1404916200, + "timeduration": 7200, + "visible": 1, + "uuid": "", + "sequence": 1, + "timemodified": 1390900746, + "subscriptionid": null + }, + { + "id": 9983, + "name": "Moodle 2.7.1 scheduled release", + "description": "

 \r\nMoodle 2.7.1, Moodle 2.6.4 and Moodle 2.5.7 are scheduled to be released on this date.

", + "format": 1, + "courseid": 1, + "groupid": 0, + "userid": 24152, + "repeatid": 0, + "modulename": "0", + "instance": 0, + "eventtype": "site", + "timestart": 1405372800, + "timeduration": 0, + "visible": 1, + "uuid": "", + "sequence": 1, + "timemodified": 1399930008, + "subscriptionid": null + }, + { + "id": 9867, + "name": "Moodle Moot Colombia 2014", + "description": "

31 July - 1 August 2014

\r\n

Location: Bogota Colombia

\r\n

Further information: www.moodlemoot.org.co

\r\n

Tag: #mootco14

\r\n

", + "format": 1, + "courseid": 1, + "groupid": 0, + "userid": 24152, + "repeatid": 0, + "modulename": "0", + "instance": 0, + "eventtype": "site", + "timestart": 1406815200, + "timeduration": 115200, + "visible": 1, + "uuid": "", + "sequence": 1, + "timemodified": 1397212617, + "subscriptionid": null + }, + { + "id": 9719, + "name": "MoodleMoot Romania 2014", + "description": "

18 - 23 August 2014

\r\n

Location: Cluj-Napoca, Romania

\r\n

Further information: www.moodle.ro/moot2014

", + "format": 1, + "courseid": 1, + "groupid": 0, + "userid": 24152, + "repeatid": 0, + "modulename": "0", + "instance": 0, + "eventtype": "site", + "timestart": 1408345200, + "timeduration": 460800, + "visible": 1, + "uuid": "", + "sequence": 1, + "timemodified": 1389259729, + "subscriptionid": null + }, + { + "id": 9984, + "name": "Moodle 2.7.2 scheduled release", + "description": "

Moodle 2.7.2, Moodle 2.6.5 and Moodle 2.5.8 are scheduled to be released on this date.

", + "format": 1, + "courseid": 1, + "groupid": 0, + "userid": 24152, + "repeatid": 0, + "modulename": "0", + "instance": 0, + "eventtype": "site", + "timestart": 1410211500, + "timeduration": 0, + "visible": 1, + "uuid": "", + "sequence": 1, + "timemodified": 1399930088, + "subscriptionid": null + }, + { + "id": 9957, + "name": "MoodleMoot NZ14", + "description": "

Wednesday 1st October to Friday 3rd October 2014

\r\n

Location: Nelson, New Zealand

\r\n

Further information: www.moodlemoot.co.nz

\r\n

Tag: #mootnz14

", + "format": 1, + "courseid": 1, + "groupid": 0, + "userid": 24152, + "repeatid": 0, + "modulename": "0", + "instance": 0, + "eventtype": "site", + "timestart": 1412107200, + "timeduration": 201600, + "visible": 1, + "uuid": "", + "sequence": 1, + "timemodified": 1399405922, + "subscriptionid": null + } + ], + "warnings": [] +} \ No newline at end of file diff --git a/emulator/core_course_get_contents.json b/emulator/core_course_get_contents.json index 1958fcd8f..97cda621c 100644 --- a/emulator/core_course_get_contents.json +++ b/emulator/core_course_get_contents.json @@ -23,7 +23,7 @@ "id": 4, "name": "Have your Say", "visible": 1, - "summary": "", + "summary": "

This is the second section description

Some information

", "summaryformat": 1, "modules": [ { diff --git a/emulator/local_mobile_core_files_get_files.json b/emulator/local_mobile_core_files_get_files.json index 8b42daf95..97cb0df2f 100644 --- a/emulator/local_mobile_core_files_get_files.json +++ b/emulator/local_mobile_core_files_get_files.json @@ -1 +1,55 @@ -{"parents":[{"contextid":1,"component":null,"filearea":null,"itemid":null,"filepath":null,"filename":"System"},{"contextid":62,"component":null,"filearea":null,"itemid":null,"filepath":null,"filename":"Terry Teacher"}],"files":[{"contextid":62,"component":"user","filearea":"private","itemid":0,"filepath":"\/Private folder 1 \u00f1\/","filename":"Private folder 1 \u00f1","isdir":true,"url":null,"timemodified":1406807749},{"contextid":62,"component":"user","filearea":"private","itemid":0,"filepath":"\/Private folder 2\/","filename":"Private folder 2","isdir":true,"url":null,"timemodified":1406807749},{"contextid":62,"component":"user","filearea":"private","itemid":0,"filepath":"\/","filename":"Ray.jpg","isdir":false,"url":"http:\/\/localhost\/m\/stable_24\/pluginfile.php\/62\/user\/private\/Ray.jpg","timemodified":1406807749}]} \ No newline at end of file +{ + "parents": [ + { + "contextid": 1, + "component": null, + "filearea": null, + "itemid": null, + "filepath": null, + "filename": "System" + }, + { + "contextid": 62, + "component": null, + "filearea": null, + "itemid": null, + "filepath": null, + "filename": "Terry Teacher" + } + ], + "files": [ + { + "contextid": 62, + "component": "user", + "filearea": "private", + "itemid": 0, + "filepath": "/Private folder 1 ñ/", + "filename": "Private folder 1 ñ", + "isdir": true, + "url": null, + "timemodified": 1406807749 + }, + { + "contextid": 62, + "component": "user", + "filearea": "private", + "itemid": 0, + "filepath": "/Private folder 2/", + "filename": "Private folder 2", + "isdir": true, + "url": null, + "timemodified": 1406807749 + }, + { + "contextid": 62, + "component": "user", + "filearea": "private", + "itemid": 0, + "filepath": "/", + "filename": "Ray.jpg", + "isdir": false, + "url": "http://localhost/m/stable_24/pluginfile.php/62/user/private/Ray.jpg", + "timemodified": 1406807749 + } + ] +} \ No newline at end of file diff --git a/emulator/local_mobile_core_grades_get_grades.json b/emulator/local_mobile_core_grades_get_grades.json index 7884a16e6..843bf6211 100644 --- a/emulator/local_mobile_core_grades_get_grades.json +++ b/emulator/local_mobile_core_grades_get_grades.json @@ -1 +1,33 @@ -{"items":[{"activityid":"4","itemnumber":0,"scaleid":0,"name":"Cuestionario sencillo","grademin":0,"grademax":10,"gradepass":0,"locked":false,"hidden":false,"grades":[{"userid":3,"grade":7,"locked":false,"hidden":false,"overridden":false,"feedback":null,"feedbackformat":0,"usermodified":3,"datesubmitted":1404987241,"dategraded":1404987241,"str_grade":"7.00","str_long_grade":"7.00 \/ 10.00","str_feedback":""}]}],"outcomes":[]} \ No newline at end of file +{ + "items": [ + { + "activityid": "4", + "itemnumber": 0, + "scaleid": 0, + "name": "Cuestionario sencillo", + "grademin": 0, + "grademax": 10, + "gradepass": 0, + "locked": false, + "hidden": false, + "grades": [ + { + "userid": 3, + "grade": 7, + "locked": false, + "hidden": false, + "overridden": false, + "feedback": null, + "feedbackformat": 0, + "usermodified": 3, + "datesubmitted": 1404987241, + "dategraded": 1404987241, + "str_grade": "7.00", + "str_long_grade": "7.00 / 10.00", + "str_feedback": "" + } + ] + } + ], + "outcomes": [] +} \ No newline at end of file diff --git a/emulator/local_mobile_core_message_get_contacts.json b/emulator/local_mobile_core_message_get_contacts.json new file mode 100644 index 000000000..3431a95d6 --- /dev/null +++ b/emulator/local_mobile_core_message_get_contacts.json @@ -0,0 +1,18 @@ +{ + "online": [], + "offline": [], + "strangers": [ + { + "id": 2, + "fullname": "Admin User", + "unread": 5 + }, + { + "id": 3, + "fullname": "Terry Teacher", + "profileimageurl": "emulator/userimage.png#", + "profileimageurlsmall": "emulator/userimage.png#", + "unread": 1 + } + ] +} \ No newline at end of file diff --git a/emulator/local_mobile_core_message_get_messages.json b/emulator/local_mobile_core_message_get_messages.json index 5c2d0747f..0219bc134 100644 --- a/emulator/local_mobile_core_message_get_messages.json +++ b/emulator/local_mobile_core_message_get_messages.json @@ -1 +1,59 @@ -{"messages":[{"id":3,"useridfrom":2,"useridto":3,"subject":"New message from Admin User","text":"abcdef","fullmessage":"abcdef\n\n---------------------------------------------------------------------\nThis is a copy of a message sent to you at \"\u201cMoodle25\u201d\". Go to http:\/\/prototype.moodle.net\/mobile\/moodle25\/message\/index.php?user=3&id=2 to reply.","fullmessageformat":0,"fullmessagehtml":"","smallmessage":"abcdef","notification":0,"contexturl":null,"contexturlname":null,"timecreated":1402090270,"timeread":1402912415,"usertofullname":"Andrew Student","userfromfullname":"Admin User"},{"id":2,"useridfrom":2,"useridto":3,"subject":"New message from Admin User","text":"ttre","fullmessage":"ttre\n\n---------------------------------------------------------------------\nThis is a copy of a message sent to you at \"\u201cMoodle25\u201d\". Go to http:\/\/prototype.moodle.net\/mobile\/moodle25\/message\/index.php?user=3&id=2 to reply.","fullmessageformat":0,"fullmessagehtml":"","smallmessage":"ttre","notification":0,"contexturl":null,"contexturlname":null,"timecreated":1402090251,"timeread":1402912415,"usertofullname":"Andrew Student","userfromfullname":"Admin User"},{"id":1,"useridfrom":2,"useridto":3,"subject":"New message from Admin User","text":"Welcome to my course!","fullmessage":"Welcome to my course!\n\n---------------------------------------------------------------------\nThis is a copy of a message sent to you at \"\u201cMoodle25\u201d\". Go to http:\/\/prototype.moodle.net\/mobile\/moodle25\/message\/index.php?user=3&id=2 to reply.","fullmessageformat":0,"fullmessagehtml":"","smallmessage":"Welcome to my course!","notification":0,"contexturl":null,"contexturlname":null,"timecreated":1401890036,"timeread":1402912415,"usertofullname":"Andrew Student","userfromfullname":"Admin User"}],"warnings":[]} \ No newline at end of file +{ + "messages": [ + { + "id": 3, + "useridfrom": 2, + "useridto": 3, + "subject": "New message from Admin User", + "text": "abcdef", + "fullmessage": "abcdef\n\n---------------------------------------------------------------------\nThis is a copy of a message sent to you at \"“Moodle25”\". Go to http://prototype.moodle.net/mobile/moodle25/message/index.php?user=3&id=2 to reply.", + "fullmessageformat": 0, + "fullmessagehtml": "", + "smallmessage": "abcdef", + "notification": 0, + "contexturl": null, + "contexturlname": null, + "timecreated": 1402090270, + "timeread": 1402912415, + "usertofullname": "Andrew Student", + "userfromfullname": "Admin User" + }, + { + "id": 2, + "useridfrom": 3, + "useridto": 2, + "subject": "New message from Admin User", + "text": "ttre", + "fullmessage": "ttre\n\n---------------------------------------------------------------------\nThis is a copy of a message sent to you at \"“Moodle25”\". Go to http://prototype.moodle.net/mobile/moodle25/message/index.php?user=3&id=2 to reply.", + "fullmessageformat": 0, + "fullmessagehtml": "", + "smallmessage": "ttre", + "notification": 0, + "contexturl": null, + "contexturlname": null, + "timecreated": 1402090251, + "timeread": 1402912415, + "usertofullname": "Andrew Student", + "userfromfullname": "Admin User" + }, + { + "id": 1, + "useridfrom": 2, + "useridto": 3, + "subject": "New message from Admin User", + "text": "Welcome to my course!", + "fullmessage": "Welcome to my course!\n\n---------------------------------------------------------------------\nThis is a copy of a message sent to you at \"“Moodle25”\". Go to http://prototype.moodle.net/mobile/moodle25/message/index.php?user=3&id=2 to reply.", + "fullmessageformat": 0, + "fullmessagehtml": "", + "smallmessage": "Welcome to my course!", + "notification": 0, + "contexturl": null, + "contexturlname": null, + "timecreated": 1401890036, + "timeread": 1402912415, + "usertofullname": "Andrew Student", + "userfromfullname": "Admin User" + } + ], + "warnings": [] +} \ No newline at end of file diff --git a/emulator/moodle_enrol_get_users_courses.json b/emulator/moodle_enrol_get_users_courses.json index 73bab14b1..a3968dbce 100644 --- a/emulator/moodle_enrol_get_users_courses.json +++ b/emulator/moodle_enrol_get_users_courses.json @@ -1 +1,18 @@ -[{"id":3,"shortname":"TestGrades","fullname":"Test course for grades","enrolledusercount":2,"idnumber":"","visible":1},{"id":2,"shortname":"Moodle Mountain","fullname":"Basic Moodle and Mountaineering","enrolledusercount":2,"idnumber":"","visible":1}] \ No newline at end of file +[ + { + "id": 3, + "shortname": "TestGrades", + "fullname": "Test course for grades", + "enrolledusercount": 2, + "idnumber": "", + "visible": 1 + }, + { + "id": 2, + "shortname": "Moodle Mountain", + "fullname": "Basic Moodle and Mountaineering", + "enrolledusercount": 2, + "idnumber": "", + "visible": 1 + } +] \ No newline at end of file diff --git a/emulator/moodle_user_get_course_participants_by_id.json b/emulator/moodle_user_get_course_participants_by_id.json index f2cedafb8..5890eabc0 100644 --- a/emulator/moodle_user_get_course_participants_by_id.json +++ b/emulator/moodle_user_get_course_participants_by_id.json @@ -1 +1,127 @@ -[{"id":3,"username":"student","fullname":"Andrew Student","email":"andre@dasdfa.zcvjd","department":"","firstaccess":1402891717,"lastaccess":1404990136,"description":"","descriptionformat":1,"city":"Perth","country":"AU","profileimageurlsmall":"emulator/userimage.png#","profileimageurl":"emulator/userimage.png#","preferences":[{"name":"auth_forcepasswordchange","value":"0"},{"name":"email_bounce_count","value":"1"},{"name":"email_send_count","value":"2"},{"name":"message_provider_mod_assign_assign_notification_loggedin","value":"email"},{"name":"message_provider_mod_assign_assign_notification_loggedoff","value":"email"},{"name":"message_provider_moodle_courserequestapproved_loggedin","value":"email,airnotifier"},{"name":"message_provider_moodle_courserequestapproved_loggedoff","value":"email,airnotifier"},{"name":"message_provider_moodle_courserequestrejected_loggedin","value":"email,airnotifier"},{"name":"message_provider_moodle_courserequestrejected_loggedoff","value":"email,airnotifier"},{"name":"message_provider_enrol_manual_expiry_notification_loggedin","value":"email"},{"name":"message_provider_enrol_manual_expiry_notification_loggedoff","value":"email"},{"name":"message_provider_enrol_self_expiry_notification_loggedin","value":"email"},{"name":"message_provider_enrol_self_expiry_notification_loggedoff","value":"email"},{"name":"message_provider_mod_lesson_graded_essay_loggedin","value":"email"},{"name":"message_provider_mod_lesson_graded_essay_loggedoff","value":"email"},{"name":"message_provider_moodle_instantmessage_loggedin","value":"popup,airnotifier"},{"name":"message_provider_moodle_instantmessage_loggedoff","value":"popup,email,airnotifier"},{"name":"message_provider_mod_forum_posts_loggedin","value":"email"},{"name":"message_provider_mod_forum_posts_loggedoff","value":"email"},{"name":"message_blocknoncontacts","value":"0"},{"name":"message_beepnewmessage","value":"0"},{"name":"_lastloaded","value":1404990183}],"roles":[{"roleid":5,"name":"","shortname":"student","sortorder":0}],"enrolledcourses":[{"id":3,"fullname":"Test course for grades","shortname":"TestGrades"},{"id":2,"fullname":"Basic Moodle and Mountaineering","shortname":"Moodle Mountain"}]}] \ No newline at end of file +[ + { + "id": 3, + "username": "student", + "fullname": "Andrew Student", + "email": "andre@dasdfa.zcvjd", + "department": "", + "firstaccess": 1402891717, + "lastaccess": 1404990136, + "description": "", + "descriptionformat": 1, + "city": "Perth", + "country": "AU", + "profileimageurlsmall": "emulator/userimage.png#", + "profileimageurl": "emulator/userimage.png#", + "preferences": [ + { + "name": "auth_forcepasswordchange", + "value": "0" + }, + { + "name": "email_bounce_count", + "value": "1" + }, + { + "name": "email_send_count", + "value": "2" + }, + { + "name": "message_provider_mod_assign_assign_notification_loggedin", + "value": "email" + }, + { + "name": "message_provider_mod_assign_assign_notification_loggedoff", + "value": "email" + }, + { + "name": "message_provider_moodle_courserequestapproved_loggedin", + "value": "email,airnotifier" + }, + { + "name": "message_provider_moodle_courserequestapproved_loggedoff", + "value": "email,airnotifier" + }, + { + "name": "message_provider_moodle_courserequestrejected_loggedin", + "value": "email,airnotifier" + }, + { + "name": "message_provider_moodle_courserequestrejected_loggedoff", + "value": "email,airnotifier" + }, + { + "name": "message_provider_enrol_manual_expiry_notification_loggedin", + "value": "email" + }, + { + "name": "message_provider_enrol_manual_expiry_notification_loggedoff", + "value": "email" + }, + { + "name": "message_provider_enrol_self_expiry_notification_loggedin", + "value": "email" + }, + { + "name": "message_provider_enrol_self_expiry_notification_loggedoff", + "value": "email" + }, + { + "name": "message_provider_mod_lesson_graded_essay_loggedin", + "value": "email" + }, + { + "name": "message_provider_mod_lesson_graded_essay_loggedoff", + "value": "email" + }, + { + "name": "message_provider_moodle_instantmessage_loggedin", + "value": "popup,airnotifier" + }, + { + "name": "message_provider_moodle_instantmessage_loggedoff", + "value": "popup,email,airnotifier" + }, + { + "name": "message_provider_mod_forum_posts_loggedin", + "value": "email" + }, + { + "name": "message_provider_mod_forum_posts_loggedoff", + "value": "email" + }, + { + "name": "message_blocknoncontacts", + "value": "0" + }, + { + "name": "message_beepnewmessage", + "value": "0" + }, + { + "name": "_lastloaded", + "value": 1404990183 + } + ], + "roles": [ + { + "roleid": 5, + "name": "", + "shortname": "student", + "sortorder": 0 + } + ], + "enrolledcourses": [ + { + "id": 3, + "fullname": "Test course for grades", + "shortname": "TestGrades" + }, + { + "id": 2, + "fullname": "Basic Moodle and Mountaineering", + "shortname": "Moodle Mountain" + } + ] + } +] \ No newline at end of file diff --git a/emulator/moodle_user_get_users_by_courseid.json b/emulator/moodle_user_get_users_by_courseid.json index 07d087560..b2e6cddbd 100644 --- a/emulator/moodle_user_get_users_by_courseid.json +++ b/emulator/moodle_user_get_users_by_courseid.json @@ -1 +1,160 @@ -[{"id":3,"username":"student","fullname":"Andrew Student","email":"andre@dasdfa.zcvjd","department":"","firstaccess":1402891717,"lastaccess":1404990136,"description":"","descriptionformat":1,"city":"Perth","country":"AU","profileimageurlsmall":"emulator/userimage.png#","profileimageurl":"emulator/userimage.png#","roles":[{"roleid":5,"name":"","shortname":"student","sortorder":0}],"preferences":[{"name":"auth_forcepasswordchange","value":"0"},{"name":"email_bounce_count","value":"1"},{"name":"email_send_count","value":"2"},{"name":"message_provider_mod_assign_assign_notification_loggedin","value":"email"},{"name":"message_provider_mod_assign_assign_notification_loggedoff","value":"email"},{"name":"message_provider_moodle_courserequestapproved_loggedin","value":"email,airnotifier"},{"name":"message_provider_moodle_courserequestapproved_loggedoff","value":"email,airnotifier"},{"name":"message_provider_moodle_courserequestrejected_loggedin","value":"email,airnotifier"},{"name":"message_provider_moodle_courserequestrejected_loggedoff","value":"email,airnotifier"},{"name":"message_provider_enrol_manual_expiry_notification_loggedin","value":"email"},{"name":"message_provider_enrol_manual_expiry_notification_loggedoff","value":"email"},{"name":"message_provider_enrol_self_expiry_notification_loggedin","value":"email"},{"name":"message_provider_enrol_self_expiry_notification_loggedoff","value":"email"},{"name":"message_provider_mod_lesson_graded_essay_loggedin","value":"email"},{"name":"message_provider_mod_lesson_graded_essay_loggedoff","value":"email"},{"name":"message_provider_moodle_instantmessage_loggedin","value":"popup,airnotifier"},{"name":"message_provider_moodle_instantmessage_loggedoff","value":"popup,email,airnotifier"},{"name":"message_provider_mod_forum_posts_loggedin","value":"email"},{"name":"message_provider_mod_forum_posts_loggedoff","value":"email"},{"name":"message_blocknoncontacts","value":"0"},{"name":"message_beepnewmessage","value":"0"},{"name":"_lastloaded","value":1404990136}],"enrolledcourses":[{"id":3,"fullname":"Test course for grades","shortname":"TestGrades"},{"id":2,"fullname":"Basic Moodle and Mountaineering","shortname":"Moodle Mountain"}]},{"id":4,"fullname":"Tom Student","email":"tom@nomailever.zzzz","firstaccess":0,"lastaccess":0,"description":"","descriptionformat":1,"city":"barcelona","country":"ES","profileimageurlsmall":"emulator/userimage.png#","profileimageurl":"emulator/userimage.png#","roles":[{"roleid":5,"name":"","shortname":"student","sortorder":0}],"enrolledcourses":[{"id":3,"fullname":"Test course for grades","shortname":"TestGrades"},{"id":2,"fullname":"Basic Moodle and Mountaineering","shortname":"Moodle Mountain"}]}] \ No newline at end of file +[ + { + "id": 3, + "username": "student", + "fullname": "Andrew Student", + "email": "andre@dasdfa.zcvjd", + "department": "", + "firstaccess": 1402891717, + "lastaccess": 1404990136, + "description": "", + "descriptionformat": 1, + "city": "Perth", + "country": "AU", + "profileimageurlsmall": "emulator/userimage.png#", + "profileimageurl": "emulator/userimage.png#", + "roles": [ + { + "roleid": 5, + "name": "", + "shortname": "student", + "sortorder": 0 + } + ], + "preferences": [ + { + "name": "auth_forcepasswordchange", + "value": "0" + }, + { + "name": "email_bounce_count", + "value": "1" + }, + { + "name": "email_send_count", + "value": "2" + }, + { + "name": "message_provider_mod_assign_assign_notification_loggedin", + "value": "email" + }, + { + "name": "message_provider_mod_assign_assign_notification_loggedoff", + "value": "email" + }, + { + "name": "message_provider_moodle_courserequestapproved_loggedin", + "value": "email,airnotifier" + }, + { + "name": "message_provider_moodle_courserequestapproved_loggedoff", + "value": "email,airnotifier" + }, + { + "name": "message_provider_moodle_courserequestrejected_loggedin", + "value": "email,airnotifier" + }, + { + "name": "message_provider_moodle_courserequestrejected_loggedoff", + "value": "email,airnotifier" + }, + { + "name": "message_provider_enrol_manual_expiry_notification_loggedin", + "value": "email" + }, + { + "name": "message_provider_enrol_manual_expiry_notification_loggedoff", + "value": "email" + }, + { + "name": "message_provider_enrol_self_expiry_notification_loggedin", + "value": "email" + }, + { + "name": "message_provider_enrol_self_expiry_notification_loggedoff", + "value": "email" + }, + { + "name": "message_provider_mod_lesson_graded_essay_loggedin", + "value": "email" + }, + { + "name": "message_provider_mod_lesson_graded_essay_loggedoff", + "value": "email" + }, + { + "name": "message_provider_moodle_instantmessage_loggedin", + "value": "popup,airnotifier" + }, + { + "name": "message_provider_moodle_instantmessage_loggedoff", + "value": "popup,email,airnotifier" + }, + { + "name": "message_provider_mod_forum_posts_loggedin", + "value": "email" + }, + { + "name": "message_provider_mod_forum_posts_loggedoff", + "value": "email" + }, + { + "name": "message_blocknoncontacts", + "value": "0" + }, + { + "name": "message_beepnewmessage", + "value": "0" + }, + { + "name": "_lastloaded", + "value": 1404990136 + } + ], + "enrolledcourses": [ + { + "id": 3, + "fullname": "Test course for grades", + "shortname": "TestGrades" + }, + { + "id": 2, + "fullname": "Basic Moodle and Mountaineering", + "shortname": "Moodle Mountain" + } + ] + }, + { + "id": 4, + "fullname": "Tom Student", + "email": "tom@nomailever.zzzz", + "firstaccess": 0, + "lastaccess": 0, + "description": "", + "descriptionformat": 1, + "city": "barcelona", + "country": "ES", + "profileimageurlsmall": "emulator/userimage.png#", + "profileimageurl": "emulator/userimage.png#", + "roles": [ + { + "roleid": 5, + "name": "", + "shortname": "student", + "sortorder": 0 + } + ], + "enrolledcourses": [ + { + "id": 3, + "fullname": "Test course for grades", + "shortname": "TestGrades" + }, + { + "id": 2, + "fullname": "Basic Moodle and Mountaineering", + "shortname": "Moodle Mountain" + } + ] + } +] \ No newline at end of file diff --git a/emulator/moodle_webservice_get_siteinfo.json b/emulator/moodle_webservice_get_siteinfo.json index 8aeeaace8..bd5a20f09 100644 --- a/emulator/moodle_webservice_get_siteinfo.json +++ b/emulator/moodle_webservice_get_siteinfo.json @@ -84,6 +84,30 @@ { "name": "local_mobile_gradereport_user_get_grades_table", "version": "2014052807" + }, + { + "name": "local_mobile_core_message_create_contacts", + "version": "2014052811" + }, + { + "name": "local_mobile_core_message_delete_contacts", + "version": "2014052811" + }, + { + "name": "local_mobile_core_message_block_contacts", + "version": "2014052811" + }, + { + "name": "local_mobile_core_message_unblock_contacts", + "version": "2014052811" + }, + { + "name": "local_mobile_core_message_get_contacts", + "version": "2014052811" + }, + { + "name": "local_mobile_core_message_search_contacts", + "version": "2014052811" } ], "downloadfiles": 1, diff --git a/icon.png b/icon.png index 6613ad610..b98d8a19f 100644 Binary files a/icon.png and b/icon.png differ diff --git a/img/error.png b/img/error.png new file mode 100644 index 000000000..0f5cfe074 Binary files /dev/null and b/img/error.png differ diff --git a/img/ico-contacts.png b/img/ico-contacts.png new file mode 100644 index 000000000..38d616cf1 Binary files /dev/null and b/img/ico-contacts.png differ diff --git a/img/icon/android/icon-144-xxhdpi.png b/img/icon/android/icon-144-xxhdpi.png new file mode 100644 index 000000000..70c15c651 Binary files /dev/null and b/img/icon/android/icon-144-xxhdpi.png differ diff --git a/img/icon/android/icon-36.png b/img/icon/android/icon-36.png new file mode 100644 index 000000000..3847d85ea Binary files /dev/null and b/img/icon/android/icon-36.png differ diff --git a/img/icon/android/icon-72.png b/img/icon/android/icon-72.png new file mode 100644 index 000000000..999ea0ec2 Binary files /dev/null and b/img/icon/android/icon-72.png differ diff --git a/img/icon/android/icon.png b/img/icon/android/icon.png new file mode 100644 index 000000000..7bee32bf9 Binary files /dev/null and b/img/icon/android/icon.png differ diff --git a/img/icon/ios/iTunesArtwork.png b/img/icon/ios/iTunesArtwork.png new file mode 100644 index 000000000..b98d8a19f Binary files /dev/null and b/img/icon/ios/iTunesArtwork.png differ diff --git a/img/icon/ios/iTunesArtwork@2x.png b/img/icon/ios/iTunesArtwork@2x.png new file mode 100644 index 000000000..67dc8820d Binary files /dev/null and b/img/icon/ios/iTunesArtwork@2x.png differ diff --git a/img/icon/ios/icon-120.png b/img/icon/ios/icon-120.png index 19a5940a8..24f02124d 100644 Binary files a/img/icon/ios/icon-120.png and b/img/icon/ios/icon-120.png differ diff --git a/img/icon/ios/icon-40.png b/img/icon/ios/icon-40.png new file mode 100644 index 000000000..8e4eec0d2 Binary files /dev/null and b/img/icon/ios/icon-40.png differ diff --git a/img/icon/ios/icon-40@2x.png b/img/icon/ios/icon-40@2x.png new file mode 100644 index 000000000..edde17902 Binary files /dev/null and b/img/icon/ios/icon-40@2x.png differ diff --git a/img/icon/ios/icon-40@3x.png b/img/icon/ios/icon-40@3x.png new file mode 100644 index 000000000..19a5940a8 Binary files /dev/null and b/img/icon/ios/icon-40@3x.png differ diff --git a/img/icon/ios/icon-57@2x.png b/img/icon/ios/icon-57@2x.png new file mode 100644 index 000000000..19ada89e2 Binary files /dev/null and b/img/icon/ios/icon-57@2x.png differ diff --git a/img/icon/ios/icon-60.png b/img/icon/ios/icon-60.png new file mode 100644 index 000000000..3931e25ab Binary files /dev/null and b/img/icon/ios/icon-60.png differ diff --git a/img/icon/ios/icon-60@2x.png b/img/icon/ios/icon-60@2x.png new file mode 100644 index 000000000..19a5940a8 Binary files /dev/null and b/img/icon/ios/icon-60@2x.png differ diff --git a/img/icon/ios/icon-60@3x.png b/img/icon/ios/icon-60@3x.png new file mode 100644 index 000000000..61e70d976 Binary files /dev/null and b/img/icon/ios/icon-60@3x.png differ diff --git a/img/icon/ios/icon-72@2x.png b/img/icon/ios/icon-72@2x.png new file mode 100644 index 000000000..c8bfe4152 Binary files /dev/null and b/img/icon/ios/icon-72@2x.png differ diff --git a/img/icon/ios/icon-76@2x.png b/img/icon/ios/icon-76@2x.png new file mode 100644 index 000000000..fdfc95618 Binary files /dev/null and b/img/icon/ios/icon-76@2x.png differ diff --git a/img/icon/ios/icon-small.png b/img/icon/ios/icon-small.png new file mode 100644 index 000000000..491521396 Binary files /dev/null and b/img/icon/ios/icon-small.png differ diff --git a/img/icon/ios/icon-small@2x.png b/img/icon/ios/icon-small@2x.png new file mode 100644 index 000000000..fc89d2ebc Binary files /dev/null and b/img/icon/ios/icon-small@2x.png differ diff --git a/img/icon/ios/icon-small@3x.png b/img/icon/ios/icon-small@3x.png new file mode 100644 index 000000000..de8d0016d Binary files /dev/null and b/img/icon/ios/icon-small@3x.png differ diff --git a/img/received.png b/img/received.png new file mode 100644 index 000000000..11ef29bc3 Binary files /dev/null and b/img/received.png differ diff --git a/img/sent.png b/img/sent.png new file mode 100644 index 000000000..d94891b7f Binary files /dev/null and b/img/sent.png differ diff --git a/lang/ar.json b/lang/ar.json index aa4563b62..a184cc40a 100644 --- a/lang/ar.json +++ b/lang/ar.json @@ -16,6 +16,8 @@ "author": "الكاتب", "average": "متوسط", "back": "للخلف", + "blockcontact": "أحجب عنوان الأتصال", + "blockedusers": "المستخدمين المحجوبين ({$a})", "browsephotoalbums": "ألبومات الصور", "cacheexpirationtime": "وقت انتهاء صلاحية ذاكرة التخزين المؤقت (بالميلي ثانية)", "cancel": "إلغاء", @@ -29,6 +31,7 @@ "confirmcontinuedownload": "هل أنت متأكد أنك تريد الاستمرار في تحميل الملف؟", "contact": "جهة اتصال", "contactadd": "تم إضافة جهة الإتصال إلى قائمة جهات الاتصال بالهاتف", + "contacts": "عناوين اتصال", "content": "المحتوى", "contents": "المحتويات", "contentyetnotavailable": "هذا النوع من النشاط لم يتبلور بعد عبر تطبيق المحمول", @@ -123,6 +126,7 @@ "networkerrormsg": "لم يتم تمكين الشبكة أو أنها لا تعمل.", "next": "استمر", "no": "لا", + "nomessagesfound": "لم يتم العثور على إي رسالة", "notaskstobesynchronized": "لا مهام للمزامنة", "noteadded": "أضيفت الملاحظة", "noticelargefile": "يرجى ملاحظة أن الملف الذي تطلب تحميله كبير، و ربما يستغرق بعض الوقت لإكماله.", @@ -131,8 +135,11 @@ "notificationsdisabled": "تم تعطيل الإشعارات", "notificationsenabled": "تمكين إشعارات كافة مواقع موودل الخاصة", "notificationshowtoenable": "", + "nousersfound": "لا يوجد مستخدمون", + "offlinecontacts": "الغير موجودون ({$a})", "offlinemode": "وضع دون اتصال", "ok": "حسنا", + "onlinecontacts": "الموجودون ({$a})", "participants": "المشاركين", "password": "كلمة المرور", "passwordlabel": "كلمة المرور", @@ -151,6 +158,7 @@ "recordaudio": "صوتي", "recordstored": "قد تم تخزينها التسجيل الخاص بكفي المساحة الخاصة بك", "remotesystemnotconfiguredfornotifications": "لم يتم تكوين تثبيت موودل لإرسال إشعارات الجوال. الرجاء الاتصال بمسؤول موودل الخاص بك إذا كنت تعتقد أنه يجب تمكين الإشعارات.", + "removecontact": "ازل عنوان الاتصال", "replay": "الرد", "reply": "رد", "reportabug": "الإبلاغ عن خطأ", diff --git a/lang/bg.json b/lang/bg.json index a33a0c73d..303fc7830 100644 --- a/lang/bg.json +++ b/lang/bg.json @@ -17,6 +17,8 @@ "author": "Автор", "average": "Средно", "back": "Назад", + "blockcontact": "Блокиране на контакт", + "blockedusers": "Блокирани потребители ({$a})", "browsephotoalbums": "Фото-албум", "cacheexpirationtime": "Продължителност на кеша (милисекунди)", "cancel": "Отказване", @@ -31,6 +33,7 @@ "confirmdeletetask": "Сигурни ли сте, че искате да изтриете тази задача?", "contact": "Контакти", "contactadd": "Контактът е добавен в контактите на телефона", + "contacts": "Контакти", "content": "Съдържание", "contents": "Съдържание", "contentyetnotavailable": "Този вид дейност не е достъпен през мобилното приложение", @@ -140,6 +143,7 @@ "next": "Следващо", "no": "Не", "noevents": "Няма събития", + "nomessagesfound": "Не бяха открити съобщения", "norefreshdisconnected": "Опресняването изисква връзка с мрежата", "notaskstobesynchronized": "Няма задачи за синхронизиране", "noteadded": "Бележката е добавена", @@ -148,8 +152,11 @@ "notifications": "Уведомления", "notificationsdisabled": "Уведомленията са изключени", "notificationsenabled": "Уведомленията са включени за всички Ваши Moodle сайтове", + "nousersfound": "Не са намерени потребители", + "offlinecontacts": "Контакти офлайн ({$a})", "offlinemode": "Режим офлайн", "ok": "Добре", + "onlinecontacts": "Контакти онлайн ({$a})", "openinbrowser": "Отваряне в браузър", "participants": "Участници", "password": "Парола", @@ -171,6 +178,7 @@ "recordaudio": "Аудио", "recordstored": "Вашият запис беше запазен в личните Ви файлове", "remotesystemnotconfiguredfornotifications": "Инсталацията на Moodle не е конфигурирана да изпраща мобилни съобщения. Моля, свържете се със Вашия Moodle администратор, ако мислите, че уведомленията трябва да са разрешени.", + "removecontact": "Премахване на контакт", "replay": "Отговор", "reply": "Отговаряне", "reportabug": "Съобщаване за нередност", diff --git a/lang/ca.json b/lang/ca.json index 5e1f5b64a..dddd3d376 100644 --- a/lang/ca.json +++ b/lang/ca.json @@ -17,6 +17,8 @@ "author": "Autor", "average": "Mitjana", "back": "Enrere", + "blockcontact": "Bloca contacte", + "blockedusers": "Usuaris bloquejats ({$a})", "browsephotoalbums": "Àlbums de fotos", "cacheexpirationtime": "Temps de venciment de memòria cau (milisegons)", "cancel": "Cancel·la", @@ -31,6 +33,7 @@ "confirmdeletetask": "Esteu segur que voleu esborrar la tasca?", "contact": "Contacte", "contactadd": "S'ha afegit el contacte a la llibreta de contactes del vostre telèfon", + "contacts": "Contactes", "content": "Contingut", "contents": "Continguts", "contentyetnotavailable": "Aquest tipus d'activitat no està disponible encara en l'aplicació mòbil", @@ -133,6 +136,7 @@ "networkerrormsg": "La connexió a la xarxa no està habilitada o no funciona.", "next": "Continua", "no": "No", + "nomessagesfound": "No s'han trobat missatges", "norefreshdisconnected": "L'opció d'actualitzar requereix una connexió a la xarxa", "notaskstobesynchronized": "No hi ha tasques pendents de sincronització", "noteadded": "S'ha afegit la nota", @@ -141,8 +145,11 @@ "notifications": "Notificacions", "notificationsdisabled": "Les notificacions no estan habilitades", "notificationsenabled": "Les notificacions estan habilitades", + "nousersfound": "No s'han trobat usuaris", + "offlinecontacts": "Contactes fora de línia ({$a})", "offlinemode": "Mode fora de línia", "ok": "D'acord", + "onlinecontacts": "Contactes en línia ({$a})", "participants": "Participants", "password": "Contrasenya", "passwordlabel": "Contrasenya", @@ -163,6 +170,7 @@ "recordaudio": "Àudio", "recordstored": "La vostra gravació s'ha emmagatzemat en la vostra àrea de fitxers privats", "remotesystemnotconfiguredfornotifications": "No s'ha configurat la instal·lació de Moodle per a enviar notificacions mòbils. Contacteu amb l'administració del vostre lloc Moodle si penseu que s'hauria d'habilitar.", + "removecontact": "Suprimeix contacte", "replay": "Reprodueix", "reply": "Contesta", "reportabug": "Informa d'un problema", diff --git a/lang/cs.json b/lang/cs.json index cead078d3..156b1d395 100644 --- a/lang/cs.json +++ b/lang/cs.json @@ -17,6 +17,8 @@ "author": "Autor", "average": "Průměr", "back": "Zpět", + "blockcontact": "Blokovat kontakt", + "blockedusers": "Blokovaní uživatelé ({$a})", "browsephotoalbums": "Fotoalba", "cacheexpirationtime": "Vypršení platnosti vyrovnávací paměti (milisekundy)", "cancel": "Zrušit", @@ -31,6 +33,7 @@ "confirmdeletetask": "Jste si jisti, že chcete smazat tento úkol?", "contact": "Kontakt", "contactadd": "Kontakt je přidán do vašeho seznamu kontaktů telefonu", + "contacts": "Kontakty", "content": "Obsah", "contents": "Obsah", "contentyetnotavailable": "Tento druh činnosti není dosud k dispozici prostřednictvím mobilní aplikace", @@ -68,6 +71,7 @@ "enablenotificationscheck": "

Měli byste nejprve zkontrolovat, zda váš Moodle podporuje mobilní upozornění (PUSH). Prosím, otevřete váš Moodle a přejděte do nabídky Nastavení \/ Nastavení mého profilu \/ Zasílání zpráv. Měli byste vidět sloupec s názvem Mobilní upozornění.<\/p>", "enablenotificationswarning": "

Aby byla upozornění povolena, potřebujeme uložit na webu Moodle informace, jako je model vašeho mobilního zařízení a operační systém. <\/p>", "enablerdebugger": "Povolit vzdálené ladění", + "enablesyncwifi": "Povolit synchronizaci pouze tehdy, když je dostupné Wi-Fi připojení", "error": "Chyba", "errorcamera": "Chyba přístupu k fotoaparátu", "errorcameramsg": "Zařízení nepodporuje kameru", @@ -140,6 +144,7 @@ "next": "Další", "no": "Ne", "noevents": "Nejsou žádné události", + "nomessagesfound": "Nebyly nalezeny žádné zprávy", "norefreshdisconnected": "Volba obnovit vyžaduje připojení k síti", "notaskstobesynchronized": "Nejsou žádné úkoly, které mají být synchronizovány", "noteadded": "Poznámka přidána", @@ -148,9 +153,14 @@ "notifications": "Upozornění", "notificationsdisabled": "Upozornění jsou zakázána", "notificationsenabled": "Upozornění jsou povolena", + "nousersfound": "Nebyly nalezeni žádní uživatelé", + "offlinecontacts": "Offline kontakty ({$a})", "offlinemode": "Režim offline", "ok": "OK", + "onlinecontacts": "Online kontakty ({$a})", "openinbrowser": "Otevřít v prohlížeči", + "others": "Ostatní", + "participant": "Účastník", "participants": "Účastníci", "password": "Heslo", "passwordlabel": "Heslo", @@ -171,6 +181,7 @@ "recordaudio": "Audio", "recordstored": "Záznam byl uložen do vaší privátního oblasti", "remotesystemnotconfiguredfornotifications": "Instalace Moodle není nakonfigurována pro zasílání upozornění na mobilní zařízení. Pokud si myslíte, že by upozornění měla být povolena, obraťte se na správce Moodlu.", + "removecontact": "Odstranit kontakt", "replay": "Přehrát", "reply": "Odpovědět", "reportabug": "Zobrazit chybu", @@ -232,7 +243,7 @@ "video": "Video", "videofilenameprefix": "iphone_upload-video", "videostored": "Vaše video bylo uloženo do privátní oblasti", - "view": "Zobrazit", + "view": "Zobrazení", "viewableonthisapp": "Viditelný v této aplikaci", "warning": "Varování", "webservicesnotenabled": "Na vašem webu nejsou povoleny webové služby. Pokud si myslíte, že by měl být povolen mobilní přístup, obraťte se prosím na správce Moodlu.", diff --git a/lang/de.json b/lang/de.json index 445dfa4ca..cb6ac7428 100644 --- a/lang/de.json +++ b/lang/de.json @@ -17,6 +17,8 @@ "author": "Autor\/in", "average": "Durchschnitt", "back": "Zurück", + "blockcontact": "Kontakt sperren", + "blockedusers": "Gesperrte Nutzer\/innen ({$a})", "browsephotoalbums": "Fotos", "cacheexpirationtime": "Cache-Dauer (Millisekunden)", "cancel": "Abbrechen", @@ -31,6 +33,7 @@ "confirmdeletetask": "Möchten Sie diesen Prozess wirklich löschen?", "contact": "Kontakt", "contactadd": "Kontakt in die Kontaktliste hinzugefügt", + "contacts": "Kontakte", "content": "Inhalt", "contents": "Inhalte", "contentyetnotavailable": "Diese Aktivität wird nicht von Moodle Mobile unterstützt.", @@ -138,6 +141,7 @@ "networkerrormsg": "Kein Netzwerk oder fehlerhaft", "next": "Weiter", "no": "Nein", + "nomessagesfound": "Es wurden keine Mitteilungen gefunden", "norefreshdisconnected": "Die Option 'Aktualisieren' erfordert eine Netzwerkverbindung.", "notaskstobesynchronized": "Kein Prozess zum Synchronisieren", "noteadded": "Hinweis hinzugefügt", @@ -146,8 +150,11 @@ "notifications": "Mitteilungen", "notificationsdisabled": "Mitteilungen sind deaktiviert", "notificationsenabled": "Mitteilungen für alle Ihre Moodle aktiviert", + "nousersfound": "Keine Nutzer\/innen gefunden", + "offlinecontacts": "Offline Kontakte ({$a})", "offlinemode": "Offline", "ok": "OK", + "onlinecontacts": "Online-Kontakte ({$a})", "participants": "Personen", "password": "Kennwort", "passwordlabel": "Kennwort", @@ -168,6 +175,7 @@ "recordaudio": "Audio", "recordstored": "Die Aufnahme wurde in 'Meine Dateien' gesichert.", "remotesystemnotconfiguredfornotifications": "Moodle ist nicht für das Senden von mobilen Mitteilungen konfiguriert. Wenden Sie sich an Ihren Administrator, falls Sie die mobilen Mitteilungen aktiviert haben möchten.", + "removecontact": "Kontakt entfernen", "replay": "Wiederholung", "reply": "Antworten", "reportabug": "Fehler melden", diff --git a/lang/en.json b/lang/en.json index 9988c9da6..9098cebaa 100644 --- a/lang/en.json +++ b/lang/en.json @@ -16,6 +16,8 @@ "author": "Author", "average": "Average", "back": "Back", +"blockcontact": "Block contact", +"blockedusers": "Blocked users ({$a})", "browsephotoalbums": "Photo albums", "cacheexpirationtime": "Cache expiration time (miliseconds)", "cancel": "Cancel", @@ -29,6 +31,7 @@ "confirmcontinuedownload": "Are you sure you want to continue downloading the file?", "confirmdeletetask": "Are you sure you want to delete this task?", "contact": "Contact", +"contacts": "Contacts", "contactadd": "Contact added to your phone contacts list", "content": "Content", "contents": "Contents", @@ -51,8 +54,10 @@ "development": "Development", "discussions": "discussions", "downloadtime": "Downloaded", +"disablenotificationforevent": "Disable notification for this event", "disablenotifications": "Disable notifications", "disablerdebugger": "Disable remote debugging", +"enableeventnotifications": "Enable events notifications", "enablecss3transitions": "Enable CSS3 Transitions", "errorcapturingaudio": "Error capturing audio", "events": "Calendar events", @@ -68,6 +73,7 @@ "enablenotifications": "Enable notifications", "enablenotificationscheck": "

You should check first if your Moodle site supports Mobile notifications, please open your Moodle site and go to Administration / My profile settings / Messaging. If Mobile Notifications are enabled you should see a column called Mobile Notifications

", "enablenotificationswarning": "

In order to enable notifications we need to store information like your mobile device model and operating system in the Moodle site.

", +"enablesyncwifi": "Allow sync only when on Wi-Fi", "error": "Error", "errorcamera": "Error accessing camera", "errorcameramsg": "Device does not support a camera", @@ -136,6 +142,7 @@ "next": "Next", "no": "No", "noevents": "There are no events", +"nomessagesfound": "No messages were found", "norefreshdisconnected": "The refresh option requires network connection", "notaskstobesynchronized": "No tasks to be synchronized", "noteadded": "Note added", @@ -145,9 +152,14 @@ "notificationsdisabled": "Notifications are disabled", "notificationpreferencesnotconfigured": "Your mobile notification preferences are not yet configured. To do this log into your Moodle site using a web browser and go to the Messaging settings under your user profile.", "notificationshowtoenable": "", +"nousersfound": "No users found", "offlinemode": "Offline mode", "ok": "OK", +"onlinecontacts": "Online contacts ({$a})", +"offlinecontacts": "Offline contacts ({$a})", "openinbrowser": "Open in browser", +"others": "Others", +"participant": "Participant", "participants": "Participants", "password": "Password", "passwordlabel": "Password", @@ -167,6 +179,7 @@ "recordstored": "Your recording has been stored in your private area", "recordaudio": "Audio", "remotesystemnotconfiguredfornotifications": "The Moodle installation is not configured for sending mobile notifications. Please contact your Moodle administrator if you think notifications should be enabled.", +"removecontact": "Remove contact", "replay": "Replay", "reply": "Reply", "reportabug": "Report a bug", @@ -204,7 +217,6 @@ "takephoto": "Take photo", "takepicture": "Camera", "taskqueue": "Task queue", -"therearentmessagesyet": "There are no messages", "therearentnotificationsyet": "There are no notifications", "threemonthsmore": "Show 3 months more", "timecreated": "Date added", diff --git a/lang/es.json b/lang/es.json index d19467e05..6a5f86959 100644 --- a/lang/es.json +++ b/lang/es.json @@ -17,6 +17,8 @@ "author": "Autor", "average": "Media", "back": "Atrás", + "blockcontact": "Bloquear contacto", + "blockedusers": "Usuarios bloqueados ({$a})", "browsephotoalbums": "Álbumes de fotos", "cacheexpirationtime": "Tiempo de expiración de caché (mili segundos)", "cancel": "Cancelar", @@ -31,6 +33,7 @@ "confirmdeletetask": "¿Está seguro de que desea borrar esta tarea?", "contact": "Contacto", "contactadd": "Contacto añadido a su libreta de contactos", + "contacts": "Contactos", "content": "Contenido", "contents": "Contenidos", "contentyetnotavailable": "Este tipo de actividad no está disponible aún", @@ -50,12 +53,14 @@ "details": "Detalles", "development": "Desarrollo", "deviceinfo": "Información de dispositivo", + "disablenotificationforevent": "Deshabilitar notificación para este evento", "disablenotifications": "Deshabilitar notificaciones", "disablerdebugger": "Deshabilitar depuración remota", "discussions": "discusiones", "docsurl": "http:\/\/docs.moodle.org\/es\/Mobile_app", "downloadremotefile": "Descargar archivo remoto", "downloadtime": "Descargado", + "enableeventnotifications": "Habilitar notificaciones de eventos", "email": "Email", "empty": "vacío", "enableautosync": "Habilitar sincronización automática", @@ -140,6 +145,7 @@ "next": "Siguiente", "no": "No", "noevents": "No hay eventos", + "nomessagesfound": "No se encontraron mensajes", "norefreshdisconnected": "La opción de \"Actualizar\" requiere conexión a Internet", "notaskstobesynchronized": "No hay tareas pendiente de sincronización", "noteadded": "Nota añadida", @@ -149,8 +155,11 @@ "notificationsdisabled": "Las notificaciones están deshabilitadas", "notificationsenabled": "Notificaciones habilitadas", "notificationshowtoenable": "", + "nousersfound": "No se encuentran usuarios", + "offlinecontacts": "Contactos fuera de línea ({$a})", "offlinemode": "Modo desconectado", "ok": "OK", + "onlinecontacts": "Contactos en línea ({$a})", "openinbrowser": "Abrir en navegador", "participants": "Participantes", "password": "Contraseña", @@ -172,6 +181,7 @@ "recordaudio": "Audio", "recordstored": "Tu grabación ha sido almacenada en tu zona de archivos privada", "remotesystemnotconfiguredfornotifications": "La instalación de Moodle no está configurada para enviar notificaciones móvil. Por favor, contacte con su administrador de Moodle si piensa que las notificaciones deberían estar habilitadas.", + "removecontact": "Eliminar contacto", "replay": "Reproducir", "reply": "Responder", "reportabug": "Informar de un problema", diff --git a/lang/es_mx.json b/lang/es_mx.json index 26726c035..f24abaa61 100644 --- a/lang/es_mx.json +++ b/lang/es_mx.json @@ -17,6 +17,8 @@ "author": "Autor", "average": "Promedio", "back": "Atrás", + "blockcontact": "Bloquear contacto", + "blockedusers": "Usuarios bloqueados ({$a})", "browsephotoalbums": "Álbumes de fotos", "cacheexpirationtime": "Tiempo de caducidad del caché (mili segundos)", "cancel": "Cancelar", @@ -31,6 +33,7 @@ "confirmdeletetask": "¿Está Usted seguro de querer eliminar esta tarea\/actividad?", "contact": "Contacto", "contactadd": "Contacto añadido a su libreta de contactos", + "contacts": "Contactos", "content": "Contenido", "contents": "Contenidos", "contentyetnotavailable": "Este tipo de actividad no está disponible mediante la App para móviles", @@ -135,6 +138,7 @@ "networkerrormsg": "Conexión no disponible o sin funcionar.", "next": "Continuar", "no": "No", + "nomessagesfound": "No se encontraron mensajes", "norefreshdisconnected": "La opción para refrescar requiere conexión a red", "notaskstobesynchronized": "No hay tareas pendiente de sincronización", "noteadded": "Nota añadida", @@ -144,8 +148,11 @@ "notificationsdisabled": "Las notificaciones están deshabilitadas", "notificationsenabled": "Notificaciones habilitadas para todos sus sitios Moodle", "notificationshowtoenable": "", + "nousersfound": "No se encuentran usuarios", + "offlinecontacts": "Contactos fuera de línea ({$a})", "offlinemode": "Modo desconectado", "ok": "OK", + "onlinecontacts": "Contactos en línea ({$a})", "participants": "Participantes", "password": "Contraseña", "passwordlabel": "Contraseña", @@ -166,6 +173,7 @@ "recordaudio": "Audio", "recordstored": "Tu grabación ha sido almacenada en tu zona de archivos privada", "remotesystemnotconfiguredfornotifications": "La instalación de Moodle no está configurada para enviar notificaciones a móviles. Por favor, contacte a su administrador de Moodle si Usted piensa que deberían de habilitarse las notificaciones.", + "removecontact": "Eliminar contacto", "replay": "Reproducir", "reply": "Respuesta", "reportabug": "Informar de un problema", diff --git a/lang/eu.json b/lang/eu.json index c5be183ea..98f083cfe 100644 --- a/lang/eu.json +++ b/lang/eu.json @@ -15,8 +15,10 @@ "audiorecordinstructions": "Grabatu botoia sakatu audio grabaketa hasteko. Gelditu botoia sakatu geratu eta fitxategia igotzeko.", "authenticating": "Egiaztatzen", "author": "Egilea", - "average": "Batez bestekoa", + "average": "Batezbestekoa", "back": "Atzera", + "blockcontact": "Blokeatu kontaktua", + "blockedusers": "Blokeatutako erabiltzaileak ({$a})", "browsephotoalbums": "Argazki bildumak", "cacheexpirationtime": "Cache-aren iraungitze denbora (milisegundotan)", "cancel": "Utzi", @@ -31,10 +33,12 @@ "confirmdeletetask": "Ziur al zaude ataza hau ezabatu nahi duzula?", "contact": "Kontaktua", "contactadd": "Kontaktua zure telefonoaren kontaktu zerrendan gehitu da", + "contacts": "Kontaktuak", "content": "Edukia", "contents": "Edukiak", "contentyetnotavailable": "Jarduera mota hau oraindik ez dago mobile app bidez eskuragarri", "continue": "Jarraitu", + "contributiontocoursetotal": "Ikastarora guztira egindako ekarpena", "country": "Herrialdea", "course": "Ikastaroa", "coursename": "Ikastaroaren izena", @@ -109,7 +113,7 @@ "invalidmoodleversion": "Moodle bertsio baliogabea. Gutxieneko bertsioa hurrengoa da:", "invalidscheme": "Baliozko URL bat eman, mesedez", "invalidsite": "Guneko URLa ez da baliozkoa", - "itemname": "Elementuaren izena", + "itemname": "Elementua kalifikatu", "keepsynchronising": "Jarraitu mezuak zerbitzariarekin sinkronizatzen", "langsynced": "Hizkuntza sinkronizaturik", "language": "Hizkuntza", @@ -138,6 +142,8 @@ "networkerrormsg": "Sarea ez dago gaituta edo ez dabil", "next": "Hurrengoa", "no": "Ez", + "noevents": "Ez dago ekitaldirik", + "nomessagesfound": "Ez da mezurik aurkitu", "norefreshdisconnected": "Freskatze aukerak sare-konexioa behar du", "notaskstobesynchronized": "Ez dago sinkronizatu beharreko atazarik", "noteadded": "Oharra gehituta", @@ -147,8 +153,12 @@ "notificationsdisabled": "Jakinarazpenak desgaituta daude", "notificationsenabled": "Jakinarazpenak zure Moodle gune guztientzat gaituta", "notificationshowtoenable": "", + "nousersfound": "Ez da erabiltzailerik aurkitu", + "offlinecontacts": "Lineaz kanpoko kontaktuak ({$a})", "offlinemode": "Lineazko kanpoko modua", "ok": "Ados", + "onlinecontacts": "On-line dauden kontaktuak ({$a})", + "openinbrowser": "Ireki nabigatzailean", "participants": "Partaideak", "password": "Pasahitza", "passwordlabel": "Pasahitza", @@ -169,6 +179,7 @@ "recordaudio": "Audio", "recordstored": "Zure grabaketa zure fitxategi pribatuen atalean gorde da", "remotesystemnotconfiguredfornotifications": "Moodle instalazioa ez dago Mobile jakinarazpenak bidaltzeko konfiguraturik. Zure Moodle administratzailearekin harremanetan jarri gaituta beharko luketela uste baduzu.", + "removecontact": "Ezabatu kontaktua", "replay": "Erantzun", "reply": "Erantzun", "reportabug": "Arazo baten berri eman", @@ -188,7 +199,7 @@ "settings": "Ezarpenak", "showall": "Erakutsi guztiak", "showlog": "Erakutsi agerraldia", - "showmore": "Erakutsi gehiago...", + "showmore": "Erakutsi gehiago", "siteexists": "Gune hau existitzen da jada.", "sitefiles": "Guneko fitxategiak", "siteinmaintenance": "Zure gunea mantenu-moduan dago", @@ -206,6 +217,7 @@ "takephoto": "Atera argazkia", "takepicture": "Kamera", "taskqueue": "Ataza ilara", + "therearentmessagesyet": "Ez dago mezurik", "therearentnotificationsyet": "Ez dago jakinarazpenik", "threemonthsmore": "Erakutsi beste 3 hilabete", "timecreated": "Data gehituta", @@ -229,7 +241,7 @@ "video": "Bideoa", "videofilenameprefix": "iphone_igoera-video", "videostored": "Zure bideoa zure gune pribatuan gorde da", - "view": "Ikusi", + "view": "Ikuspegia", "viewableonthisapp": "Ikusgai aplikazio honetan", "warning": "Abisua", "webservicesnotenabled": "Web zerbitzuak gaitu gabe daude zure gunean. Mesedez zure Moodle gunearen administratzailearen harremanetan jarri zaitez mobile sarbidea gaitu behar dela uste baduzu.", diff --git a/lang/fa.json b/lang/fa.json index c574a9c00..6217e61a2 100644 --- a/lang/fa.json +++ b/lang/fa.json @@ -4,7 +4,7 @@ "add": "افزودن", "addcontact": "افزودن مخاطب", "addedtoqueue": "درحالت آفلاین هستید.درخواست شما به صف عملیات افزوده شد", - "addfakenotifications": "", + "addfakenotifications": "افزودن هشدار فرضی", "addnote": "افزودن یادداشت", "address": "آدرس", "addsite": "افزودن سایت", @@ -16,6 +16,8 @@ "authenticating": "بررسی مجوز", "author": "مولف", "back": "بازگشت", + "blockcontact": "مسدود کردن مخاطب", + "blockedusers": "مسدود کردن کاربران ({$a})", "browsephotoalbums": "آلبوم تصاویر", "cacheexpirationtime": "زمان اعتبار کشها (miliseconds)", "cancel": "انصراف", @@ -30,6 +32,7 @@ "confirmdeletetask": "آیا این عملیات حذف گردد؟", "contact": "مخاطب", "contactadd": "مخاطب به فهرست تلفن همراه شما افزوده شد", + "contacts": "مخاطبین", "content": "محتوی", "contents": "محتوی", "contentyetnotavailable": "این نوع فعالیت در تلفن همراه پشتیبانی نمیشود", @@ -37,7 +40,7 @@ "country": "کشور", "course": "درس", "coursename": "نام درس", - "csssynced": "css همسان شد", + "csssynced": "css بهنگام شد", "date": "تاریخ", "days": "روز", "delete": "حذف", @@ -50,16 +53,16 @@ "deviceinfo": "اطلاعات دستگاه", "disablenotifications": "غیرفعالسازی هشدارها", "disablerdebugger": "غیرفعالسازی اشکالزدایی", - "discussions": "مباحثات", + "discussions": "مباحثه‌ها", "docsurl": "http:\/\/docs.moodle.com", "downloadremotefile": "دانلود فایل", "downloadtime": "دانلود شده", "email": "ایمیل", "empty": "خالی", "enableautosync": "فعالسازی هماهنگسازی خودکار", - "enableautosynccss": "هماهنگسازی CSS", - "enableautosynclang": "هماهنگسازی فایلهای زبان", - "enableautosyncws": "هماهنگسازی محتوی وفایلها", + "enableautosynccss": "بهنگام سازی CSS", + "enableautosynclang": "بهنگام سازی فایلهای زبان", + "enableautosyncws": "بهنگام سازی محتوا وفایلها", "enablecss3transitions": "فعالسازی css3", "enabledebugging": "فعالسازی اشکالزدایی", "enablenotifications": "فعالسازی هشدارها", @@ -90,6 +93,8 @@ "forcecsssync": "اجبار به هماهنگسازی css", "forcelangsync": "اجباربه هماهنگسازی زبان", "forceofflinemode": "اجبار به حالت آفلاین", + "forumnodiscussionsyet": "هیچ مباحثه ای در این تالار یافت نشد", + "forumnumreplies": "پاسخ‌ها", "fullname": "نام کامل", "general": "عمومی", "grade": "نمره", @@ -107,9 +112,10 @@ "invalidscheme": "لطفا نشانی سایت را صحیح وارد نمایید", "invalidsite": "نشانی سایت معتبر نیست", "itemname": "نام مورد", + "keepsynchronising": "پست‌های ارسالی همواره با سرور هماهنگ شوند", "langsynced": "زبان همسان شد", "language": "زبان", - "license": "License", + "license": "اجازه‌نامه", "loadcordovaemulator": "Load Cordova emulator", "loading": "بارگذاری", "localpath": "مسیر محلی", @@ -124,15 +130,16 @@ "minutes": "دقیقه", "mobileservicesnotenabled": "سرویس دسترسی موبایل در سایت شما فعال نیست", "modulename": "نام ماژول", - "months": "ماه‌ها", + "months": "ماه", "moodlehelp": "راهنما", "mycourses": "درسهای من", "myfiles": "فایلهای من", "name": "نام", "networkerror": "شبکه در دسترس نیت", "networkerrormsg": "شبکه قابل دسترسی نیست", - "next": "ادامه", + "next": "بعدی", "no": "خیر", + "nomessagesfound": "هیچ پیغامی پیدا نشد", "norefreshdisconnected": "بهنگام سازی نیازمند اتصال به شبکه است", "notaskstobesynchronized": "هیچ عملیاتی برای هماهنگسازی وجود ندارد", "noteadded": "یادداشت افزوده شد", @@ -142,8 +149,11 @@ "notificationsdisabled": "هشدارها غیر فعال شدند", "notificationsenabled": "سیستم هشدار برای سایت فعال است", "notificationshowtoenable": "سیستم هشدار فعال است", + "nousersfound": "کاربری پیدا نشد", + "offlinecontacts": "مخاطبین آفلاین ({$a})", "offlinemode": "حالت آفلاین", "ok": "موافق", + "onlinecontacts": "مخاطبین آنلاین ({$a})", "participants": "شرکت کنندگان", "password": "گذرواژه", "passwordlabel": "گذرواژه", @@ -152,6 +162,7 @@ "percentage": "درصد", "phone1": "تلفن", "phone2": "همراه", + "pluginname": "عبارت‌های ترجمه زبان در نسخه موبایل مودل", "preview": "پیش نمایش", "previous": "قبلی", "privatefiles": "فایلهای خصوصی", @@ -162,6 +173,7 @@ "recordaudio": "صوت", "recordstored": "فایل ضبط شده در فایلهای خصوصی شما آپلود خواهد شد", "remotesystemnotconfiguredfornotifications": "سایت شما از برنامه موبایل پشتیبانی نمیکند", + "removecontact": "حذف کردن مخاطب", "replay": "پاسخ", "reply": "پاسخ", "reportabug": "گزارش خطا", diff --git a/lang/fr.json b/lang/fr.json index 41fb6b671..e3b9dbb42 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -17,6 +17,8 @@ "author": "Auteur", "average": "Moyenne", "back": "Retour", + "blockcontact": "Bloquer ce contact", + "blockedusers": "Utilisateurs bloqués ({$a})", "browsephotoalbums": "Albums photos", "cacheexpirationtime": "Durée d'échéance du cache (ms)", "cancel": "Annuler", @@ -31,6 +33,7 @@ "confirmdeletetask": "Voulez-vous vraiment supprimer cette tâche ?", "contact": "Contact", "contactadd": "Contact ajouté aux contacts de votre appareil", + "contacts": "Contacts", "content": "Contenu", "contents": "Contenus", "contentyetnotavailable": "Ce type d'activité n'est pas encore disponible avec l'app mobile", @@ -135,6 +138,7 @@ "networkerrormsg": "Réseau désactivé ou en panne.", "next": "Continuer", "no": "Non", + "nomessagesfound": "Aucun message personnel trouvé", "norefreshdisconnected": "L'option d'actualisation requiert une connexion réseau", "notaskstobesynchronized": "Aucune tâche à synchroniser", "noteadded": "Note ajoutée", @@ -144,8 +148,11 @@ "notificationsdisabled": "Notifications désactivées", "notificationsenabled": "Notifications activées pour tous vos sites Moodle", "notificationshowtoenable": "", + "nousersfound": "Aucun utilisateur n'a été trouvé", + "offlinecontacts": "Contacts déconnectés ({$a})", "offlinemode": "Mode hors ligne", "ok": "OK", + "onlinecontacts": "Contacts en ligne ({$a})", "participants": "Participants", "password": "Mot de passe", "passwordlabel": "Mot de passe", @@ -166,6 +173,7 @@ "recordaudio": "Audio", "recordstored": "Votre séquence audio a été enregistrée dans votre zone privée", "remotesystemnotconfiguredfornotifications": "Cette installation Moodle ne peut pas envoyer de notifications mobiles. Veuillez contacter l'administrateur de votre Moodle pour activer ces notifications.", + "removecontact": "Supprimer ce contact", "replay": "Rejouer", "reply": "Répondre", "reportabug": "Signaler un bogue", diff --git a/lang/he.json b/lang/he.json index c5ce8baeb..fd6875c93 100644 --- a/lang/he.json +++ b/lang/he.json @@ -17,6 +17,8 @@ "author": "יוצר", "average": "ממוצע", "back": "אחורה", + "blockcontact": "חסום את איש הקשר.", + "blockedusers": "משתמשים חסומים ({$a})", "browsephotoalbums": "אלבום תמונות", "cacheexpirationtime": "זמן תפוגה לזיכרון מטמון (באלפיות השניה)", "cancel": "ביטול", @@ -31,6 +33,7 @@ "confirmdeletetask": "האם אתה בטוח שברצונך למחוק משימה זו?", "contact": "צור קשר", "contactadd": "איש הקשר נוסף לרשימת אנשי הקשר במכשירך", + "contacts": "אנשי קשר", "content": "תוכן", "contents": "תוכן", "contentyetnotavailable": "פעילות זו עדיין לא זמינה באפליקציה.", @@ -135,6 +138,7 @@ "networkerrormsg": "הרשת לא מופעלת או לא עובדת.", "next": "המשך", "no": "לא", + "nomessagesfound": "לא נמצאו מסרים", "norefreshdisconnected": "פעולת הרענון דורשת חיבור לרשת.", "notaskstobesynchronized": "אין משימות לסינכרון", "noteadded": "הערה נוספה", @@ -143,8 +147,11 @@ "notifications": "התראות", "notificationsdisabled": "ההתראות מנוטרלות", "notificationsenabled": "ההתראות מאופשרות בכל האתרים שלך", + "nousersfound": "לתשומת-לב", + "offlinecontacts": "אנשי קשר לא מקוונים ({$a})", "offlinemode": "מצב לא מקוון", "ok": "OK", + "onlinecontacts": "אנשי קשר מקוונים ({$a})", "participants": "משתתפים", "password": "סיסמה", "passwordlabel": "סיסמה", @@ -165,6 +172,7 @@ "recordaudio": "אודיו", "recordstored": "הקלטתך נשמרה באזור הפרטי שלך.", "remotesystemnotconfiguredfornotifications": "ההתקנה של המוודל אינה מוגדרת לשליחת התראות למובייל. אנא פנה למנהל האתר באם רצונך לשנות זאת.", + "removecontact": "הסרת איש הקשר", "replay": "נגן מחדש", "reply": "השב", "reportabug": "דווח על באג", diff --git a/lang/hu.json b/lang/hu.json index 52ab765e6..c53675c7c 100644 --- a/lang/hu.json +++ b/lang/hu.json @@ -17,6 +17,8 @@ "author": "Szerző", "average": "Átlag", "back": "Vissza", + "blockcontact": "Kapcsolat zárolása", + "blockedusers": "Kizárt felhasználók ({$a})", "browsephotoalbums": "Fotóalbumok", "cacheexpirationtime": "Gyorsítótár lejárata (ms)", "cancel": "Mégse", @@ -31,6 +33,7 @@ "confirmdeletetask": "Biztosan törölni kívánja ezt a feladatot?", "contact": "Kapcsolat", "contactadd": "Kapcsolat telefonos kapcsolataihoz hozzáadva.", + "contacts": "Kapcsolatok", "content": "Tartalom", "contents": "Tartalomjegyzék", "contentyetnotavailable": "A tevékenység mobil alkalmazáson keresztül még nem elérhető.", @@ -135,6 +138,7 @@ "networkerrormsg": "A hálózat nincs bekapcsolva vagy nem működik.", "next": "Tovább", "no": "Nem", + "nomessagesfound": "Nem találtam üzeneteket", "norefreshdisconnected": "A frissítéshez hálózati kapcsolatra van szükség", "notaskstobesynchronized": "Nincs szinkronizálandó feladat", "noteadded": "Megjegyzés hozzáadva", @@ -144,8 +148,11 @@ "notificationsdisabled": "Értesítések kikapcsolva", "notificationsenabled": "Értesítések minden Moodle-portálján bekapcsolva", "notificationshowtoenable": " ", + "nousersfound": "Nincs felhasználó", + "offlinecontacts": "Kapcsolódás nélküli ({$a}) kapcsolatok", "offlinemode": "Offline üzemmód", "ok": "Rendben", + "onlinecontacts": "Kapcsolódás közbeni ({$a}) kapcsolatok ", "participants": "Résztvevők", "password": "Jelszó", "passwordlabel": "Jelszó", @@ -166,6 +173,7 @@ "recordaudio": "Hang", "recordstored": "Hangrögzítését magánterületén tároljuk", "remotesystemnotconfiguredfornotifications": "Portálján a mobil értesítések nincsenek engedélyezve. A mobil üzenetküldés bekapcsolásához forduljon a rendszergazdához.", + "removecontact": "Kapcsolat törlése", "replay": "Újrajátszás", "reply": "Válasz", "reportabug": "Hiba jelentése", diff --git a/lang/it.json b/lang/it.json index a983bb5a0..faf46f526 100644 --- a/lang/it.json +++ b/lang/it.json @@ -17,6 +17,8 @@ "author": "Autore", "average": "Media", "back": "Indietro", + "blockcontact": "Blocca contatto", + "blockedusers": "Utenti bloccati ({$a})", "browsephotoalbums": "Album fotografico", "cacheexpirationtime": "Durata cache (millisecondi)", "cancel": "Annulla", @@ -31,6 +33,7 @@ "confirmdeletetask": "Sei sicuro di eliminare questa attività in coda?", "contact": "Contatto", "contactadd": "Il contatto è stato aggiunto alla rubrica", + "contacts": "Contatti", "content": "Contenuto", "contents": "Contenuti", "contentyetnotavailable": "Questo tipo di attività al momento non è disponibile per l'app mobile", @@ -140,6 +143,7 @@ "next": "Successivo", "no": "No", "noevents": "Non ci sono eventi", + "nomessagesfound": "Non è stato trovato nessun messaggio", "norefreshdisconnected": "Il refresh richiede una connessione di rete", "notaskstobesynchronized": "Non ci sono attività da sincronizzare", "noteadded": "Nota aggiunta", @@ -149,8 +153,11 @@ "notificationsdisabled": "Notifiche disabilitate", "notificationsenabled": "Notifiche abilitate per tutti i tuoi siti Moodle", "notificationshowtoenable": ".", + "nousersfound": "Non trovato alcun utente", + "offlinecontacts": "Contatti offline ({$a})", "offlinemode": "Modalità offline", "ok": "OK", + "onlinecontacts": "Contatti online ({$a})", "openinbrowser": "Apri nel browser", "participants": "Partecipanti", "password": "Password", @@ -172,6 +179,7 @@ "recordaudio": "Audio", "recordstored": "La registrazione è stata memorizzata nei tuoi file personali", "remotesystemnotconfiguredfornotifications": "L'installazione Moodle non è configurata per inviare notifiche mobile. Per favore contatta l'amministratore del sito per verificare la configurazione.", + "removecontact": "Cancella contatti", "replay": "Riproduci", "reply": "Rispondi", "reportabug": "Segnala un bug", diff --git a/lang/ja.json b/lang/ja.json index 3c5dd514d..52732f3ab 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -17,6 +17,8 @@ "author": "著者", "average": "平均", "back": "戻る", + "blockcontact": "コンタクトをブロック", + "blockedusers": "ブロックしたユーザ ({$a})", "browsephotoalbums": "フォトアルバム", "cacheexpirationtime": "キャッシュ有効期限(ミリ秒単位)", "cancel": "キャンセル", @@ -31,6 +33,7 @@ "confirmdeletetask": "本当にこのタスクを消去しますか?", "contact": "コンタクト", "contactadd": "コンタクトがあなたの電話の連絡帳に追加されました。", + "contacts": "コンタクト", "content": "コンテンツ", "contents": "コンテンツ", "contentyetnotavailable": "この活動はモバイル・アプリ経由では利用できません", @@ -68,10 +71,11 @@ "enablenotificationscheck": "

Moodleサイトがモバイル通知をサポートしているかを確認するには、まずMoodleサイトを開いて、管理 \/ マイプロファイル設定 \/ メッセージング の項目を開いてください。モバイル通知が有効ならば、モバイル通知の項目がチェックできるようになっているはずです。<\/p>", "enablenotificationswarning": "

通知を有効にするため、Moodleサイトにあなたのモバイルデバイスのモデルやオペレーティングシステム等の情報を登録する必要があります。<\/p>", "enablerdebugger": "リモートデバッグを有効にする", + "enablesyncwifi": "Wi-Fi環境でのみ同期する", "error": "エラー", "errorcamera": "カメラへのアクセスエラー", "errorcameramsg": "デバイスはカメラをサポートしていません", - "errorcapturingaudio": "音声キャプチャのエラー", + "errorcapturingaudio": "音声キャプチャーのエラー", "errorcapturingvideo": "ビデオキャプチャーのエラー", "errordownloading": "ファイルのダウンロードのエラー", "errorduringdevicetokenrequest": "デバイストークン要求中のエラー", @@ -140,6 +144,7 @@ "next": "次へ", "no": "いいえ", "noevents": "イベントはありません", + "nomessagesfound": "メッセージは見つかりませんでした", "norefreshdisconnected": "リフレッシュオプションにはネットワーク接続が必要です", "notaskstobesynchronized": "同期が必要なタスクはありません", "noteadded": "ノートが追加されました", @@ -148,9 +153,14 @@ "notifications": "通知", "notificationsdisabled": "通知は無効です", "notificationsenabled": "すべてのMoodleサイトに対して通知が有効です", + "nousersfound": "ユーザは見つかりませんでした", + "offlinecontacts": "オフラインのコンタクト ({$a})", "offlinemode": "オフラインモード", "ok": "はい", + "onlinecontacts": "オフラインのコンタクト ({$a})", "openinbrowser": "ブラウザを開く", + "others": "その他", + "participant": "参加者", "participants": "参加者", "password": "パスワード", "passwordlabel": "パスワード", @@ -171,6 +181,7 @@ "recordaudio": "音声", "recordstored": "記録があなたのプライベートエリアに保存されました", "remotesystemnotconfiguredfornotifications": "Moodleサイトがモバイル通知を送信するよう設定されていません。モバイル通知が必要と思うなら、あなたのMoodleサイト管理者に相談してください。", + "removecontact": "コンタクトを削除", "replay": "再生", "reply": "返信", "reportabug": "バグを報告", diff --git a/lang/nl.json b/lang/nl.json index b514695bd..5fffc9904 100644 --- a/lang/nl.json +++ b/lang/nl.json @@ -8,6 +8,7 @@ "addnote": "Notitie toevoegen", "address": "Adres", "addsite": "Voeg een site toe", + "allcachesinvalidated": "Alle cache ongeldig gemaakt", "allcachespurged": "Alle cache leeggemaakt", "areyousurereset": "Weet je zeker dat je de applicatie wil resetten? Al je sites zullen verwijderd worden.", "audionotavailable": "Hardware voor het opnemen van audio niet beschikbaar", @@ -16,6 +17,8 @@ "author": "Auteur", "average": "Gemiddelde", "back": "Terug", + "blockcontact": "Blokkeer contact", + "blockedusers": "Geblokkeerde gebruikers ({$a})", "browsephotoalbums": "Foto-albums", "cacheexpirationtime": "Cache verlooptijd (milliseconden)", "cancel": "Annuleer", @@ -30,10 +33,12 @@ "confirmdeletetask": "Weet je zeker dat je deze taak wenst te verwijderen?", "contact": "Contact", "contactadd": "Contact toegevoegd aan je contactenlijst van je telefoon", + "contacts": "Contacten", "content": "Inhoud", "contents": "Inhoud", "contentyetnotavailable": "Dit type activiteit is nog niet beschikbaar via de mobiele app", "continue": "Ga verder", + "contributiontocoursetotal": "Bijdrage bij het cursustotaal", "country": "Land", "course": "Cursus", "coursename": "Cursusnaam", @@ -57,15 +62,16 @@ "email": "E-mail", "empty": "leeg", "enableautosync": "Autosync inschakelen", - "enableautosynccss": "Automatisch synchroniseren van bijkomend CSS-bestand inschakelen", - "enableautosynclang": "Synchronisatie van taalpakket inschakelen", - "enableautosyncws": "Synchronisatie van operaties en data inschakelen", + "enableautosynccss": "Synchronisatie van bijkomende CSS", + "enableautosynclang": "Synchronisatie van taalbestanden", + "enableautosyncws": "Synchronisatie van operaties en data", "enablecss3transitions": "CSS3-transities inschakelen", "enabledebugging": "Foutopsporing inschakelen", "enablenotifications": "Meldingen inschakelen", "enablenotificationscheck": "Je dient eerst te controleren of jouw Moodle site mobiele notificaties ondersteunt. Log in op je Moodle site en ga naar Instellingen \/ Mijn profielinstellingen \/ Berichten sturen. Wanneer mobiele notificaties zijn geactiveerd, moet je een kolom zien genaamd Mobiele notificaties.", "enablenotificationswarning": "

Om foutopsporing mogelijk te maken moeten we informatie opslaan op de moodle site, zoals het model en besturingssysteem van je mobiel toestel.", "enablerdebugger": "Foutopsporing inschakelen", + "enablesyncwifi": "Enkel synchroniseren via wifi", "error": "Fout", "errorcamera": "Fout bij toegang tot de camera", "errorcameramsg": "Dit toestel ondersteunt geen camera", @@ -98,7 +104,7 @@ "grades": "Cijfers", "groupeventsnotdisplayed": "Groepsgebeurtenissen worden niet getoond", "help": "Help", - "helpmelogin": "

Om te kunnen aanmelden moet je er voor zorgen dat:<\/p>1. de Moodle-site versie 2.4 of hoger is.
2. de sitebeheerder mobiele toegang heeft ingeschakeld.

Om de app te testen in een Moodle demo site kun je teacher<\/i> of student<\/i> in het Gebruikersnaam<\/i>-veld typen en de op de Toevoegen<\/b>-knop klikken.<\/p>

Bezoek de Moodle documentatie-site voor meer gedetailleerde informatie en hulp.<\/a><\/p>", + "helpmelogin": "

Er zijn vele Moodle sites over de hele wereld. Deze app kan enkel verbinding maken met Moodle sites die expliciet mobiele toegang ingeschakeld hebben.<\/p>

Als je geen verbinding met jouw Moodle site kunt maken, vraag dan aan de beheerder van jouw site om http:\/\/docs.moodle.org\/en\/Mobile_app<\/a> te lezen en de toegang in te schakelen.<\/p>

Om de app te testen in een Moodle demo site kun je teacher<\/i> of student<\/i> in het Gebruikersnaam<\/i>-veld typen en de op de Toevoegen<\/b>-knop klikken.<\/p>", "hours": "Uren", "icantlogin": "Ik kan niet aanmelden", "imagestored": "Je afbeelding is opgeslagen bij je privé-bestanden", @@ -108,7 +114,7 @@ "invalidmoodleversion": "Ongeldige Moodleversie. De vereiste minimumversie is:", "invalidscheme": "Geef een geldige site-URL", "invalidsite": "Deze site-URL is niet geldig.", - "itemname": "Itemnaam", + "itemname": "Beoordelingsitem", "keepsynchronising": "Blijf berichten synchroniseren met de server", "langsynced": "Taalpakket gesynchroniseerd", "language": "Taal", @@ -137,6 +143,8 @@ "networkerrormsg": "Netwerk niet ingeschakeld of werkt niet.", "next": "Volgende", "no": "Nee", + "noevents": "Er zijn geen gebeurtenissen", + "nomessagesfound": "Er zijn geen berichten gevonden", "norefreshdisconnected": "De ververs-functie vereist een werkende netwerkverbinding", "notaskstobesynchronized": "Geen te synchroniseren taken", "noteadded": "Notitie toegevoegd", @@ -144,9 +152,16 @@ "notificationpreferencesnotconfigured": "Jouw mobiele notificaties zijn nog niet geconfigureerd. Om dit te doen, dien je via een browser in te loggen op je Moodle site en dit via Instellingen \/ Mijn profielinstellingen \/ Berichten sturen in te stellen.", "notifications": "Meldingen", "notificationsdisabled": "Meldingen uitgeschakeld", - "notificationsenabled": "Meldingen ingeschakeld", + "notificationsenabled": "Meldingen ingeschakeld voor al je Moodle sites", + "notificationshowtoenable": "", + "nousersfound": "Geen gebruikers gevonden", + "offlinecontacts": "Offline contacten ({$a})", "offlinemode": "Offline modus", "ok": "OK", + "onlinecontacts": "Online contacten ({$a})", + "openinbrowser": "Open in browser", + "others": "Andere", + "participant": "Deelnemers", "participants": "Deelnemers", "password": "Wachtwoord", "passwordlabel": "Wachtwoord", @@ -161,12 +176,13 @@ "privatefiles": "Private bestanden", "purgecaches": "Cache leegmaken", "range": "Bereik", - "rank": "Ranglijst", + "rank": "Volgorde", "rdebuggingenabledfor": "Foutopsporing zal ingeschakeld worden:", "record": "Opnemen", "recordaudio": "Audio", "recordstored": "Je opname is opgeslagen in bij je privé-bestanden", "remotesystemnotconfiguredfornotifications": "De Moodle site is niet geconfigureerd om mobiele notificaties te versturen. Neem contact op met de sitebeheerder.", + "removecontact": "Verwijder contact", "replay": "Opnieuw", "reply": "Antwoord", "reportabug": "Fout rapporteren", @@ -186,7 +202,7 @@ "settings": "Instellingen", "showall": "Toon alle", "showlog": "Toon log", - "showmore": "Toon meer...", + "showmore": "Toon meer", "siteexists": "Deze site bestaat al.", "sitefiles": "Sitebestanden", "siteinmaintenance": "Je Moodle site staat in onderhoudsmodus", @@ -227,13 +243,13 @@ "video": "Video", "videofilenameprefix": "iphone_upload-video", "videostored": "Jouw video is opgeslagen in je private bestanden", - "view": "Bekijken", + "view": "Bekijk", "viewableonthisapp": "Zichtbaar op deze app", "warning": "Waarschuwing", "webservicesnotenabled": "Web services zijn niet geactiveerd op jouw Moodle site. Neem contact op met de sitebeheerder.", "webservicesuccessfullyexecuted": "Web services zijn succesvol uitgevoerd", "website": "Website", - "weight": "weging", + "weight": "Weging", "welcome": "Welkom in de Moodle mobiele app", "writeherethebug": "Schrijf hier een gedetailleerde beschrijving van het probleem", "years": "Jaren", diff --git a/lang/pt_br.json b/lang/pt_br.json index b643f7046..f54a7543e 100644 --- a/lang/pt_br.json +++ b/lang/pt_br.json @@ -8,6 +8,7 @@ "addnote": "Adicionar uma anotação", "address": "Endereço", "addsite": "Adicionar um site", + "allcachesinvalidated": "Todos os caches foram invalidados", "allcachespurged": "Todos os caches forma eliminados", "areyousurereset": "Tem certeza de que deseja redefinir o aplicativo? Todos os seus sites serão excluídos.", "audionotavailable": "Hardware de entrada de áudio não disponível", @@ -16,6 +17,8 @@ "author": "Autor", "average": "Média", "back": "Voltar", + "blockcontact": "Bloquear contato", + "blockedusers": "Usuários bloqueados ({$a})", "browsephotoalbums": "Álbum de fotos", "cacheexpirationtime": "Tempo de expiração do cache (milisegundos)", "cancel": "Cancelar", @@ -26,20 +29,25 @@ "city": "Cidade", "close": "Feche", "completed": "Completo", + "confirmcontinuedownload": "Tem certeza que quer continuar a baixar o arquivo?", + "confirmdeletetask": "Tem certeza que quer remover esta tarefa?", "contact": "Contato", "contactadd": "Contato adicionado à sua lista de contatos do telefone.", + "contacts": "Contatos", "content": "Conteúdo", "contents": "Conteúdos", "contentyetnotavailable": "Este tipo de atividade não está disponível pelo aplicativo do celular ainda", "continue": "Continue", + "contributiontocoursetotal": "Contribuição ao total do curso", "country": "País", "course": "Curso", "coursename": "Nome do curso", "csssynced": "CSS remoto sincronizado", "date": "Data", "days": "Dias", - "delete": "Deletar", - "deletesite": "Deletar este site?", + "delete": "Remover", + "deletesite": "Remover este site?", + "deletesiteb": "Remover site", "deletesitefiles": "Tem certeza que deseja deletar os arquivos baixados a partir deste site?", "description": "Descrição", "details": "Detalhes", @@ -47,7 +55,7 @@ "deviceinfo": "Informações do dispositivo", "disablenotifications": "Desabilitar notificações", "disablerdebugger": "Desativar a depuração remota", - "discussions": "Tópicos", + "discussions": "discussões", "docsurl": "http:\/\/docs.moodle.org\/pt_br\/Mobile_app", "downloadremotefile": "Baixar o arquivo remoto", "downloadtime": "Transferido", @@ -63,16 +71,24 @@ "enablenotificationscheck": "

Você deve verificar primeiro se o seu site Moodle suporta notificações PUSH, por favor, abra o seu site Moodle e vá para Administração \/ Minhas configurações de perfil \/ Mensagens. Se notificações PUSH estão habilitados você deve ver uma coluna chamada Mobile PUSH Notifications<\/p>", "enablenotificationswarning": "

Para ativar as notificações de que precisamos para armazenar informações como o modelo do dispositivo móvel e do sistema operacional no site do Moodle. <\/p>", "enablerdebugger": "Ativar a depuração remota", + "enablesyncwifi": "Sincronizar somente se conectado ao Wi-Fi", "error": "Erro", "errorcamera": "Erro ao acessar a câmera", "errorcameramsg": "Dispositivo não suporta uma cêmera", "errorcapturingaudio": "Erro ao capturar áudio", + "errorcapturingvideo": "Erro ao capturar vídeo", + "errordownloading": "Erro ao baixar o arquivo", + "errorduringdevicetokenrequest": "Erro na requisição do token do dispositivo", "errorduringdevicetokenrequesttoapns": "Erro durante requisição de token do dispositivo ao APNS", + "errorlistingfiles": "Erro ao recuperar arquivos deste diretório", + "errornoconnectednocache": "O aparelho não está conectado e não tem as informações disponíveis para a opção solicitada", "errorregisteringdeviceinmoodle": "Erro ao registrar dispositivo ao Moodle", + "errorretrievinggradeinformation": "Erro ao buscar as notas", "erroruploading": "Erro ao enviar arquivo", "estimatedfreespace": "Espaço livre estimado", "events": "Eventos do Calendário", - "feedback": "Avaliação", + "feedback": "Feedback", + "filedownloaded": "Arquivo baixado", "filename": "Nome do arquivo", "filesize": "Tamanho", "fileuploaded": "Arquivo enviado", @@ -80,13 +96,16 @@ "forcecsssync": "Forçar sincronização do CSS agora", "forcelangsync": "Forçar sincronização do idioma agora", "forceofflinemode": "Forçar modo off-line", + "forumnodiscussionsyet": "Não existem tópicos neste fórum ainda", + "forumnumreplies": "respostas", "fullname": "Nome completo", "general": "Geral", "grade": "Notas", "grades": "Notas", + "groupeventsnotdisplayed": "Eventos para grupos não são mostrados", "help": "Ajuda", - "helpmelogin": "

Para efetuar o login, por favor verifique se:<\/p>1. O site Moodle é a versão 2.4 ou superior.
2. O administrador do site Moodle permitiu o acesso móvel.

Para testar o aplicativo em um site Moodle demo, digite teacher<\/i> ou estudent<\/i> no campo Usuário<\/i> e clique no botão Adicionar<\/b>.<\/p>

Visite o site de documentação do Moodle para informações mais detalhadas e ajuda.<\/a><\/p>", - "hours": "horas", + "helpmelogin": "

Existem milhares de sites usando Moodle no mundo. Este aplicativo somente pode conectar com um Moodle se este foi especialmente configurado para permitir o acesso móvel. <\/p>\nSe não conseguir se conectar com o seu Moodle, vai precisar entrar em contato com a administradora do seu Moodle e pedir ela acessar http:\/\/docs.moodle.org\/en\/Mobile_app<\/a><\/p>\n

Para testar o aplicativo em um site Moodle demo, digite teacher<\/i> ou estudent<\/i> no campo Usuário<\/i> e clique no botão Adicionar<\/b>.<\/p>", + "hours": "Horas", "icantlogin": "Não consigo conectar", "imagestored": "Sua imagem foi guardada em sua área privada", "info": "Informações", @@ -95,38 +114,53 @@ "invalidmoodleversion": "Versão do Moodle inválida. A versão mínima requerida é:", "invalidscheme": "Por favor, forneça uma URL válida", "invalidsite": "A URL do siteé inválida.", - "itemname": "Nome do Item", + "itemname": "Item de nota", + "keepsynchronising": "Continuar sincronizando posts com o servidor", "langsynced": "Idioma sincronizado", "language": "Idioma", - "lettergrade": "Notas por letras", + "lettergrade": "Nota letra", "license": "Licença", "loadcordovaemulator": "Carregar emulador Cordova", "loading": "Carregando", "localpath": "Caminho local", "location": "Localização", + "logininsiterequired": "É preciso logar no site num navegador.", "logout": "Sair", "lostconnection": "Perdemos conexão. Você precisa se reconectar. Seu token agora está inválido.", + "manageaccounts": "Gerenciar contas", "message": "Mensagem", "messages": "Mensagens", "messagesent": "Mensagem enviada", - "minutes": "minutos", + "minutes": "Minutos", + "mobileservicesnotenabled": "Os serviços móveis não estão habilitados no seu Moodle. Por favor contate a administradora do seu Moodle se achar que o acesso móvel deveria estar habilitado", "modulename": "Nome do módulo", "months": "Meses", "moodlehelp": "Ajuda", "mycourses": "Meus cursos", - "myfiles": "Meus arquivos privados", + "myfiles": "Meus arquivos", "name": "Nome", "networkerror": "Rede não acessível", "networkerrormsg": "Rede não habilitada ou não está funcionado", - "next": "Próxima", + "next": "Próximo", "no": "Não", + "noevents": "Sem eventos", + "nomessagesfound": "Não achamos mensagens", + "norefreshdisconnected": "Atualizar requer uma conexão de rede", "notaskstobesynchronized": "Não há tarefas a serem sincronizadas", "noteadded": "Nota adicionada", + "noticelargefile": "Note que o arquivo que pediu baixar é grande e que pode demorar um pouco.", + "notificationpreferencesnotconfigured": "As suas preferências de notificação móveis não foram configuradas ainda. Entre no seu site Moodle usando um navegador e vá para as configurações de Mensagens no seu perfil.", "notifications": "Notificação", "notificationsdisabled": "Notificações estão desativadas", "notificationsenabled": "Notificações", + "nousersfound": "Nenhum usuário encontrado", + "offlinecontacts": "Contatos off-line ({$a})", "offlinemode": "Modo off-line", "ok": "OK", + "onlinecontacts": "Contatos online ({$a})", + "openinbrowser": "Abrir num navegador", + "others": "Outros", + "participant": "Participante", "participants": "Participantes", "password": "Senha", "passwordlabel": "Senha", @@ -138,14 +172,16 @@ "pluginname": "Cadeias de idiomas no Moodle Mobile", "preview": "Visualização", "previous": "Anterior", - "privatefiles": "Arquivos pessoais", + "privatefiles": "Arquivos privados", "purgecaches": "Limpar caches", - "range": "Intervalo", - "rank": "Classificação", + "range": "Range", + "rank": "Posição", "rdebuggingenabledfor": "A depuração remota será ativado durante os seguintes segundos:", "record": "Registro", "recordaudio": "Áudio", "recordstored": "Sua gravação foi armazenada em sua área privada", + "remotesystemnotconfiguredfornotifications": "A instalação deste Moodle não está configurado para enviar notificações móveis. Por favor, contate o administrador do Moodle, se você achar que notificações devem ser ativadas.", + "removecontact": "Remover contato", "replay": "Repetição", "reply": "Responder", "reportabug": "Reportar um bug", @@ -155,18 +191,20 @@ "resetapp": "Reinicie o Aplicativo", "save": "Salve", "saving": "Salvando...", - "seconds": "segundos", + "seconds": "Segundos", "select": "Selecione", "selectsite": "Selecione um site", "send": "Enviar", "sendall": "Envie tudo", "sendmessage": "Envie uma mensagem", + "sendnow": "Enviar agora", "settings": "Configurações", "showall": "Mostrar todos", "showlog": "Mostrar log", - "showmore": "Mostrar mais ...", + "showmore": "Mostrar mais", "siteexists": "Este site já existe.", "sitefiles": "Arquivos do site", + "siteinmaintenance": "O site está em modo de manutenção", "sitename": "Nome do site", "sites": "Sites", "siteurl": "URL do site", @@ -176,6 +214,7 @@ "stop": "Pare", "strings": "Cadeias de caractere", "synchronization": "Sincronização", + "syncthistasknow": "Sincronizar esta tarefa agora", "system": "Sistema", "takephoto": "Tire uma foto", "takepicture": "Câmera", @@ -195,20 +234,26 @@ "upload": "Carregar", "uploading": "Enviando", "uploadingtoprivatefiles": "Enviando para sua área de arquivos pessoais", + "uselocalmobileplugin": "Esta página funciona melhor se o site do Moodle tiver o plugin móvel opcional instalado", "userfrom": "do(a)", "username": "Nome de Usuário", "usernamelabel": "Usuário", "usernamerequired": "Nome de usuário exigido", + "video": "Vídeo", "videofilenameprefix": "iphone_upload-video", + "videostored": "Seu vídeo foi armazenado no seu espaço de arquivos privados", "view": "Ver", "viewableonthisapp": "Visível neste aplicativo", "warning": "Aviso", + "webservicesnotenabled": "Web Services não estão ativados em seu site. Por favor, contate a administradora do seu Moodle se você achar que o acesso móvel deve ser ativado.", + "webservicesuccessfullyexecuted": "Serviço da Web executado com êxito", "website": "Site", - "weight": "peso", + "weight": "Peso", "welcome": "Bem vindo ao aplicativo Moodle Mobile", "writeherethebug": "Escreva aqui uma descrição detalhada do problema", - "years": "anos", + "years": "Anos", "yes": "Sim", + "youarein": "Você está em:", "yourpassword": "senha", "yoursiteurl": "https:\/\/seumoodle.com", "yourusername": "usuário" diff --git a/lang/ru.json b/lang/ru.json index f699a6b6d..e60dec0a2 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -15,8 +15,10 @@ "audiorecordinstructions": "Нажмите «Запись», чтобы начать запись звука; «Стоп» - чтобы остановить запись и загрузить файл.", "authenticating": "Аутентификация", "author": "Автор", - "average": "Средняя оценка", + "average": "Среднее", "back": "Назад", + "blockcontact": "Заблокировать контакт", + "blockedusers": "Заблокированные пользователи ({$a})", "browsephotoalbums": "Фотоальбом", "cacheexpirationtime": "Срок действия кэша (миллисекунд)", "cancel": "Отменить", @@ -31,10 +33,12 @@ "confirmdeletetask": "Вы уверены, что хотите удалить эту задачу?", "contact": "Контакты", "contactadd": "Контакт добавлен в адресную книгу телефона", + "contacts": "Контакты", "content": "Содержимое", "contents": "Содержание", "contentyetnotavailable": "Данный вид деятельности еще не доступен через мобильное приложение", "continue": "Продолжить", + "contributiontocoursetotal": "Вклад в курс", "country": "Страна", "course": "Курс", "coursename": "Название курса", @@ -67,6 +71,7 @@ "enablenotificationscheck": "

В первую очередь необходимо проверить поддержку вашим сайтом Moodle мобильных уведомлений. Откройте свой сайт Moodle и перейдите в Администрирование \/ Настройки моего профиля \/ Сообщения. Если мобильные уведомления включены, то Вы увидите колонку «Мобильные уведомления» <\/p>", "enablenotificationswarning": "

Для использования уведомлений необходима информация о модели мобильного устройства и операционной системы сайта Moodle. <\/p>", "enablerdebugger": "Включить отдалённую отладку", + "enablesyncwifi": "Разрешить синхронизацию только по Wi-Fi", "error": "Ошибка", "errorcamera": "Ошибка подключения камеры", "errorcameramsg": "Устройство не поддерживает камеру", @@ -109,7 +114,7 @@ "invalidmoodleversion": "Неверная версия Moodle. Минимальная требуемая версия:", "invalidscheme": "Укажите действующий URL-адрес сайта.", "invalidsite": "URL-адрес сайта недействителен.", - "itemname": "Название", + "itemname": "Элемент оценки", "keepsynchronising": "Дождитесь синхронизации сообщений с сервера", "langsynced": "Язык синхронизирован", "language": "Язык", @@ -138,6 +143,8 @@ "networkerrormsg": "Сеть не включена или не работает.", "next": "Следующая", "no": "Нет", + "noevents": "Нет событий", + "nomessagesfound": "Сообщения не найдены", "norefreshdisconnected": "Настройки обновлены, требуется сетевое соединение", "notaskstobesynchronized": "Нет задач, которые должны быть синхронизированы", "noteadded": "Заметка добавлена", @@ -146,8 +153,14 @@ "notifications": "Уведомления", "notificationsdisabled": "Уведомления отключены", "notificationsenabled": "Уведомления включены для всех ваших сайтов Moodle", + "nousersfound": "Пользователи не найдены", + "offlinecontacts": "Оффлайн контакты ({$a})", "offlinemode": "Автономный режим", "ok": "ОК", + "onlinecontacts": "Онлайн контакты ({$a})", + "openinbrowser": "Открыть в браузере", + "others": "Другие", + "participant": "Участник", "participants": "Участники", "password": "Пароль", "passwordlabel": "Пароль", @@ -162,12 +175,13 @@ "privatefiles": "Личные файлы", "purgecaches": "Очистка кэша", "range": "Диапазон", - "rank": "Место", + "rank": "Ранг", "rdebuggingenabledfor": "Отдалённая отладка будет включена на следующее время (в секундах):", "record": "Запись", "recordaudio": "Аудио", "recordstored": "Ваша запись была сохранена в личной области", "remotesystemnotconfiguredfornotifications": "Сайт Moodle не настроен для отправки мобильных уведомлений. Пожалуйста, обратитесь к администратору Moodle, если Вы считаете, что уведомления должны быть включены.", + "removecontact": "Удалить контакт", "replay": "Повтор", "reply": "Ответить", "reportabug": "Сообщить об ошибке", @@ -187,7 +201,7 @@ "settings": "Настройки", "showall": "Показать все", "showlog": "Показать журнал событий", - "showmore": "Показать больше ...", + "showmore": "Показать больше", "siteexists": "Этот сайт уже имеется.", "sitefiles": "Файлы сайта", "siteinmaintenance": "Ваш сайт находится в режиме обслуживания", @@ -228,13 +242,13 @@ "video": "Видео", "videofilenameprefix": "iphone_upload-video", "videostored": "Ваше видео было загружено в личную область", - "view": "Просмотр", + "view": "Вид", "viewableonthisapp": "Видимое на этом приложени", "warning": "Предупреждение", "webservicesnotenabled": "Сетевые службы не включены на сайте. Пожалуйста, обратитесь к администратору сайта Moodle, если Вы считаете, что мобильный доступ должен быть включен.", "webservicesuccessfullyexecuted": "Сетевая служба успешно выполняется", "website": "Сайт", - "weight": "вес", + "weight": "Вес", "welcome": "Добро пожаловать в мобильное приложение Moodle", "writeherethebug": "Напишите здесь подробное описание проблемы", "years": "Годы", diff --git a/lang/sv.json b/lang/sv.json index 5ee445689..18340bf09 100644 --- a/lang/sv.json +++ b/lang/sv.json @@ -17,6 +17,8 @@ "author": "Författare", "average": "Medelvärde", "back": "Back", + "blockcontact": "Blockera kontakt", + "blockedusers": "Blockerade användare ({$a})", "browsephotoalbums": "Fotoalbum", "cacheexpirationtime": "Cache utgångs tid (millisekunder)", "cancel": "Avbryt", @@ -31,6 +33,7 @@ "confirmdeletetask": "Är du säker på att du vill ta bort detta?", "contact": "Kontakt", "contactadd": "Kontakt läggs till telefonens kontaktlista", + "contacts": "Kontakter", "content": "Innehåll", "contents": "Innehåll", "contentyetnotavailable": "Denna typ av aktivitet är ännu inte tillgänglig via den mobila applikationen", @@ -135,6 +138,7 @@ "networkerrormsg": "Nätverket är inte aktiverat eller fungerar inte", "next": "Fortsätt", "no": "Nej", + "nomessagesfound": "Det gick inte att hitta några nya meddelanden", "norefreshdisconnected": "Alternativet uppdatering kräver nätverksanslutning", "notaskstobesynchronized": "Inga uppgifter som ska synkroniseras", "noteadded": "Anteckningar lagt till", @@ -143,8 +147,11 @@ "notifications": "Meddelanden", "notificationsdisabled": "Meddelanden är inaktiverade", "notificationsenabled": "Meddelanden aktiverade", + "nousersfound": "Det gick inte att hitta några användare", + "offlinecontacts": "Kontakter i frånkopplat läge ({$a})", "offlinemode": "Offline-läge", "ok": "OK", + "onlinecontacts": "Kontakter i uppkopplat läge ({$a})", "participants": "Deltagare", "password": "Lösenord", "passwordlabel": "Password", @@ -165,6 +172,7 @@ "recordaudio": "Ljud", "recordstored": "Din inspelning har lagrats i dina privata filer", "remotesystemnotconfiguredfornotifications": "Moodle installationen är inte konfigurerad för att skicka mobila meddelanden. Kontakta din Moodleadministrator om du tycker att meddelanden ska aktiveras.", + "removecontact": "Ta bort kontakt", "replay": "Spela upp", "reply": "Svara", "reportabug": "Rapportera ett fel", diff --git a/lang/tr.json b/lang/tr.json index a5456c275..270a13842 100644 --- a/lang/tr.json +++ b/lang/tr.json @@ -3,38 +3,42 @@ "activity": "Etkinlik", "add": "Ekle", "addcontact": "Rehbere ekle", - "addedtoqueue": "Şu an çevrimdışısınız,işlerini kayadan alınmış ve görev sırasına eklemiştir.", + "addedtoqueue": "Şu an çevrimdışısınız,işleriniz kayda alınmış ve görev sırasına eklemiştir.", "addfakenotifications": "Sahte bildirim ekle", "addnote": "Not ekle", "address": "Adres", "addsite": "Site ekle", - "allcachesinvalidated": "Tüm onbelleklerin tarihi gecersiz", - "allcachespurged": "Tüm önbeşlekşer temizlendi", - "areyousurereset": "Ayarları sıfırlamak istediğiniz den eminmisin. Bunu yaptığınız da tum kayıtları site leriniz silinecektir", + "allcachesinvalidated": "Tüm önbelleklerin tarihi gecersiz", + "allcachespurged": "Tüm önbellekler temizlendi", + "areyousurereset": "Ayarları sıfırlamak istediğinizden emin misiniz? Bunu yaptığınız da tüm kayıtlı siteleriniz silinecektir.", "audionotavailable": "Ses giriş cihazınız kullanılamıyor", - "audiorecordinstructions": "Ses kaydını başlatmak için kayıt düğmesine basınız. Dosya yuklemesini durdurmak için durdur düğmesine basın.", - "authenticating": "Kabul", + "audiorecordinstructions": "Ses kaydını başlatmak için kayıt düğmesine basınız. Dosya yuklemesini durdurmak için durdur düğmesine basınız.", + "authenticating": "Kimlik doğrulanıyor", "author": "Yazan", "average": "Ortalama", "back": "Geri", + "blockcontact": "Kişiyi engelle", + "blockedusers": "Engellenen kullanıcılar ({$a})", "browsephotoalbums": "Fotoğraf albümü", "cacheexpirationtime": "Önbellek zaman aşımı (milisaniye)", "cancel": "Vazgeç", "cannotaddnote": "Ağa ulaşılamıyor. Notunuz görev kaydına eklenmiştir. Çevrim içi olduğunuzda yeniden gondermeyi deneyebilirsiniz.", - "cannotconnect": "Bağlantı kurulamıyor:dogru adres girdiğinizden ve sitenizin Moodle 2.4 ve sonrası sürüme sahip olduğundan emin olun.", - "cannotconnectssl": "Bağlantı kurulamıyor:dogru adres girdiğinizden ve sitenizin Moodle 2.4 ve sonrası sürüme sahip olduğundan ve sbl sertifikanızın gecerli olduğudan emin olun.", - "cannotsendmessage": "Ağa ulaşılamıyor. mesajınız görev kaydına eklenmiştir. Çevrim içi olduğunuzda yeniden gondermeyi deneyebilirsin", + "cannotconnect": "Bağlantı kurulamıyor: Doğru adres girdiğinizden ve sitenizin Moodle 2.4 ve sonrası sürüme sahip olduğundan emin olun.", + "cannotconnectssl": "Bağlantı kurulamıyor: Doğru adres girdiğinizden ve sitenizin Moodle 2.4 ve sonrası sürüme sahip olduğundan ve sbl sertifikanızın gecerli olduğudan emin olun.", + "cannotsendmessage": "Ağa ulaşılamıyor. mesajınız görev kaydına eklenmiştir. Çevrim içi olduğunuzda yeniden gondermeyi deneyebilirsiniz.", "city": "Şehir", "close": "Kapat", "completed": "Tamamlandı", "confirmcontinuedownload": "Dosyayı indirmek istediğinizden eminmisiniz?", "confirmdeletetask": "Bu görevi silmek istediğinizden eminmisiniz?", "contact": "Kişi", - "contactadd": "Kişi telefon rehnerinize eklendi", + "contactadd": "Kişi telefon rehberinize eklendi", + "contacts": "Kişiler", "content": "İçerik", - "contents": "Içerik(ler)", + "contents": "İçerik(ler)", "contentyetnotavailable": "Bu etkinlik türü mobil uygulamada kullanılamaz.", "continue": "Devam et", + "contributiontocoursetotal": "Katıldığınız toplam kurs sayısı", "country": "Ülke", "course": "Kurs", "coursename": "Kurs adı", @@ -47,31 +51,41 @@ "deletesitefiles": "Bu siteden indirdiğiniz dosyaları silmek istediğinizden eminmisiniz?", "description": "Açıklama", "details": "Detaylar", - "development": "Geliştirme", + "development": "Gelişmiş ayarlar", "deviceinfo": "Aygıt bilgisi", "disablenotifications": "Uyarıları iptal et", - "disablerdebugger": "Uzaktan hata ayıklamayı devredelim dışı bırak", + "disablerdebugger": "Uzaktan hata ayıklamayı devre dışı bırak", "discussions": "tartışma", "docsurl": "http:\/\/docs.moodle.org\/en\/Mobile_app", "downloadremotefile": "Harici dosya indirin", "downloadtime": "İndirildi", - "email": "E-posta", - "empty": "Indirildi", + "email": "E-posta gönder", + "empty": "boş", "enableautosync": "Otomatik senkronizasyonu etkinleştir", + "enableautosynccss": "Ek CSS Senkronizasyon", "enableautosynclang": "Dil dosyalarının senkronizasyonu", + "enableautosyncws": "İşlemler ve veri senkronizasyonu", + "enablecss3transitions": "CSS3 Geçişlerini etkinleştiriniz", "enabledebugging": "Hata ayıklamayı etkinleştir", - "enablenotifications": "Uyarıları etkinleştir", - "enablenotificationscheck": "

Öncelikle Moodle sitenizin Mobil uyarıları desteklediğiinden emin olun. Bunun için Moodle sitenizin \/ Site Yönetimi \/ Profil ayarları \/ Mesajlaşma bolümünü Kontrol edin eğer bu bölüm aktifleştirilmiş ise Mobil bildirimler satırını förmelisiniz.

", - "enablerdebugger": "Uzaktan hata ayıklamayı etkinleştir", + "enablenotifications": "Uyarıları etkinleştiriniz", + "enablenotificationscheck": "

Öncelikle Moodle sitenizin Mobil uyarıları desteklediğiinden emin olun. Bunun için Moodle sitenizin \/ Site Yönetimi \/ Profil ayarları \/ Mesajlaşma bolümünü Kontrol edin eğer bu bölüm aktifleştirilmiş ise Mobil bildirimler satırını görmelisiniz.

", + "enablenotificationswarning": "

Bildirimleri etkinleştirmenize, biz Moodle sitede mobil cihaz modeli ve işletim sistemi vb bilgileri toplamak için hitiyaç duyuyoruz. <\/p>", + "enablerdebugger": "Uzaktan hata ayıklamayı etkinleştiriniz", + "enablesyncwifi": "Sadce Kablosuz bağlantı açıkken güncelleştirmeye izin veriniz", "error": "Hata", "errorcamera": "Kameraya erişilemiyor", - "errorcameramsg": "cihazınızın kamera desteği yok", + "errorcameramsg": "Cihazınızın kamera desteği yok", "errorcapturingaudio": "Ses çalma hatası", "errorcapturingvideo": "Video oynatma hatası", - "errordownloading": "Dosya indirmek indirmesinde hata", + "errordownloading": "Dosya indirmede hata", + "errorduringdevicetokenrequest": "Cihaz istek alırken hata oluştu", + "errorduringdevicetokenrequesttoapns": "APNS isteği alırken hata oluştu", + "errorlistingfiles": "Klasördeki dosyalar alınırken hata oluştu", + "errornoconnectednocache": "Cihaz bağlı değil, ve istediğiniz seçeneğe ait bilgiler önbellekte mevcut değil.", + "errorregisteringdeviceinmoodle": "Cihazınızın Moodle'a kaydı esnasında hata olustu", "errorretrievinggradeinformation": "Not bilgileri alınırken hata oluştu", "erroruploading": "Dosya yüklemede hata oluştu", - "estimatedfreespace": "Tatmini boş alan", + "estimatedfreespace": "Tahmini boş alan", "events": "Takvim etkinliği", "feedback": "Geribildirim", "filedownloaded": "Dosya indirildi", @@ -79,37 +93,46 @@ "filesize": "Boyut", "fileuploaded": "Dosya yüklendi", "fileurl": "Dosya URL'si", + "forcecsssync": "CSS senkronizasyonuna zorla", + "forcelangsync": "Dil senkronizasyonuna zorla", + "forceofflinemode": "Çevrimdışı moda zorla", "forumnodiscussionsyet": "Bu forum da henuz hiç tartışma başlığı yok", "forumnumreplies": "cevaplar", "fullname": "Tam isim", "general": "Genel", - "grade": "Derece", - "grades": "Derece", - "groupeventsnotdisplayed": "Grup yaklaşan olaylar görüntülenemiyor", + "grade": "Puan", + "grades": "Puan(lar)", + "groupeventsnotdisplayed": "Grup olayları görüntülenemiyor", "help": "Yardım", - "helpmelogin": "

Dünyada binlerce Moodle Sitesi var. Bu uygulama sadece Moodle App girişine izin verilmiş olan Moodle Sitelerinde çalışır<\/>

Eğer moodle sitenizle bağlantı kuramıyorsanız, Moodle yöneticinize başvurun nereyle bağlantı kuramıyorsanız, yöneticizle iletişime geçin ve şu linkteki açıklamaları okumasını isteyin a href=\"http:\/\/docs.moodle.org\/en\/Mobile_app\" target=\"_blank\">http:\/\/docs.moodle.org\/en\/Mobile_app<\/a><\/p>

Deneme yapmak için Moodle demo sitesinde ilgili alanlara teacher<\/i> or student<\/i> in the Site URL<\/i> seçeneklerini girin ve akle butonuna tıklayın", + "helpmelogin": "

Dünyada binlerce Moodle Sitesi var. Bu uygulama sadece Moodle App girişine izin verilmiş olan Moodle Sitelerinde çalışır<\/>

Eğer moodle sitenizle bağlantı kuramıyorsanız, Moodle yöneticinize başvurun nereyle bağlantı kuramıyorsanız, yöneticizle iletişime geçin ve şu linkteki açıklamaları okumasını isteyin http:\/\/docs.moodle.org\/en\/Mobile_app<\/a><\/p>

Deneme yapmak için Moodle demo sitesinde ilgili alanlara öğretmen<\/i> veya öğrenci<\/i>içinde Site URL<\/i> seçeneklerini girin ve ekle butonuna tıklayın", "hours": "Saat", "icantlogin": "Giriş yapamıyorum", + "imagestored": "Resimleriniz özel depolalama alanınıza kaydedildi.", "info": "bilgi", "initializing": "Yükleniyor....", - "invalidaccount": "Lütfen giriş bilgileriniz kontrol ediniz veya Site ayarllarını kontrol edmesi için yöneticinize başvurun", + "invalidaccount": "Lütfen giriş bilgileriniz kontrol ediniz veya Site ayarlarını kontrol etmesi için yöneticinize başvurun.", "invalidmoodleversion": "Geçersiz Moodle sürümü. Sitenizin Sürümünün şundan aşağı olmaması gerekir:", - "invalidscheme": "Geçerli bir site adresi girin", + "invalidscheme": "Geçerli bir site adresi giriniz.", "invalidsite": "Bu site adresi geçersizdir.", - "itemname": "Öge adı", + "itemname": "Not ögesi", + "keepsynchronising": "Mesajlarınızı sunucuyla senkron tutun", "langsynced": "Dil güncellendi", - "language": "Dil", - "lettergrade": "Harf notu", + "language": "Lisan", + "lettergrade": "Harf derecesi", "license": "Lisans", + "loadcordovaemulator": "Cordova emülatörü yükleniyor", "loading": "Yükleniyor", "localpath": "Yerel adres", "location": "Yer", + "logininsiterequired": "Bir tarayıcı penceresinde siteye giriş yapmanız gerekiyor.", "logout": "Çıkış", + "lostconnection": "Bağlantınızı kaybettik, yeniden bağlanmanız gerekiyor. Verileriniz artık geçerli değil.", "manageaccounts": "Hesapları Yönet", "message": "Mesaj", "messages": "Mesaj(lar)", "messagesent": "Mesajınız gönderildi", "minutes": "Dakika", + "mobileservicesnotenabled": "Mobil Hizmetler sitenizde etkin değildir. Mobil erişimin etkin olduğunu düşünüyorsanız, Lütfen Moodle site yöneticinize başvurun.", "modulename": "Modül Adı", "months": "Ay(lar)", "moodlehelp": "Yardım", @@ -117,17 +140,28 @@ "myfiles": "Dosyalarım", "name": "İsim", "networkerror": "Ağ erişilemez", + "networkerrormsg": "Ağ etkin değil ya da çalışmıyor.", "next": "İleri", "no": "Hayır", "noevents": "Hiç bildiriminiz yok", + "nomessagesfound": "Hiç mesaj bulunamadı", "norefreshdisconnected": "Yenileme yapabilmeniz için ağ bağlantısı gereklidir", "notaskstobesynchronized": "Görevler güncellenemedi", "noteadded": "Not eklendi", + "noticelargefile": "İndirmek istedğiniz dosya oldukça büyük, indirmenin tamamlanmasının biraz zaman alacağını lütfen unutmayın", + "notificationpreferencesnotconfigured": "Mobil bildirim tercihleri henüz yapılandırılmamış. Bir web tarayıcısı kullanarak Moodle giriş yapın ve kullanıcı profilinde Mesaj ayarlarını yapılandırın.", "notifications": "Bildirimler", "notificationsdisabled": "Bildirimler kapatıldı", - "offlinemode": "Çevrimdışı kipi", + "notificationsenabled": "Bildirimler tüm moodle siteliriniz için etkinleştirildi.", + "notificationshowtoenable": "Uyarıları görüntülemeyi etkinleştirin", + "nousersfound": "Kullanıcı bulunamadı", + "offlinecontacts": "Çevrimdişi kullanıcılar ({$a})", + "offlinemode": "Çevrimdışı kip", "ok": "Tamam", + "onlinecontacts": "Çevrimiçi kişiler ({$a})", "openinbrowser": "Tarayıcıda aç", + "others": "Diğerleri", + "participant": "Katılımcı", "participants": "Katılımcılar", "password": "Şifre", "passwordlabel": "Şifre", @@ -136,17 +170,26 @@ "percentage": "Yüzde", "phone1": "Telefon", "phone2": "Mobil", + "pluginname": "Moodle Mobil dil dizeleri", "preview": "Önizleme", "previous": "Önceki", + "privatefiles": "Özle dosyalar", "purgecaches": "Önelleği temizle", "range": "Aralık", - "rank": "sıra", + "rank": "Derece", + "rdebuggingenabledfor": "Uzaktan hata ayıklama şu saniye boyunca etkin olacak:", "record": "Kayıt", "recordaudio": "Ses", + "recordstored": "Kayıtlarınız özel alanda depolandı", + "remotesystemnotconfiguredfornotifications": "Moodle kurulumunuz mobil bildirimleri göndermek için yapılandırılmamış. Eğer bildirimleri etkin olduğunu düşünüyorsanız, Lütfen Moodle yöneticinize başvurun.", + "removecontact": "Kişiyi kaldır", "replay": "Tekrar çal", - "reply": "Yanıtla", + "reply": "Terkarla", + "reportabug": "Hata bildir", + "reportbuginfo": "E-posta yoluyla bir hata raporu göndermek için e-posta düğmesine tıklayın

E-posta gövdesinde sorunun ayrıntılı bir açıklamasını yazmayı unutmayın<\/b>

Bazı hata ayıklama bilgileri eklenecektir (özel bilgi eklenmeyecektir)", "requiredfields": "Tüm zorunlu olanlar doldurulmalıdır.", - "reset": "Temizle", + "reset": "Sıfırla", + "resetapp": "Uygulamaları sıfırla", "save": "Kaydet", "saving": "Kaydediliyor.....", "seconds": "Saniye", @@ -167,15 +210,19 @@ "sites": "Site(ler)", "siteurl": "Sİte Adresi", "siteurllabel": "Site adresi", - "siteurlrequired": "Site adresi gereklidir örgneğin http:\/\/www.yourmoodlesite.abc veya https:\/\/www.yourmoodlesite.efg<\/i> gibi", + "siteurlrequired": "Site adresi gereklidir, örneğin http:\/\/www.yourmoodlesite.abc veya https:\/\/www.yourmoodlesite.efg<\/i> gibi", + "spaceusage": "Kullanılan alan", "stop": "Dur", + "strings": "Dizeler", "synchronization": "Eşitleme", + "syncthistasknow": "Şu anki görevi senkronize et", "system": "Sistem", - "takephoto": "Fotoğraf cek", + "takephoto": "Fotoğraf çek", "takepicture": "Kamera", - "therearentmessagesyet": "Hiç mesajını yok", - "therearentnotificationsyet": "Hiç uyarınız yok", - "threemonthsmore": "3 Aydın ve daha fazla olanınıda göster", + "taskqueue": "Görev kuyruğu", + "therearentmessagesyet": "Hiç mesajınız yok", + "therearentnotificationsyet": "Hiç bildiriminiz yok", + "threemonthsmore": "3 ay ve daha fazlasını göster", "timecreated": "Tarih eklendi", "timeduration": "Zaman aralığı", "timemodified": "Son duzenlenme tarihi", @@ -184,23 +231,32 @@ "totalusage": "Toplam kullanım", "type": "Tür", "unexpectederror": "Beklenmeyen hata. Lütfen uygulamanızı yeniden açın ve tekrar deneyin", - "update": "Guncelle", - "updatesite": "Siteyi guncelle", + "update": "Güncelle", + "updatesite": "Siteyi güncelle", "upload": "Yükleme", "uploading": "Yükleniyor", + "uploadingtoprivatefiles": "Özel dosya alanınıza yükleniyor", + "uselocalmobileplugin": "Mobile eklentisi yüklenmiş olan Moodle sitelerinde bu sayfa daha iyi çalışır.", + "userfrom": "Kimden", "username": "Kullanıcadı", "usernamelabel": "Kullanıcıadı", "usernamerequired": "Kullanıcı adı gerekiyor", "video": "Video", - "view": "Bakma", + "videofilenameprefix": "iphone_upload-video", + "videostored": "Videonuz özel saklama alanına yüklendi", + "view": "Görünüm", + "viewableonthisapp": "Uygulama üzerinde görüntülenebilir", "warning": "Uyarı", - "website": "website", - "weight": "ağırlık", - "welcome": "Moodle mail uygulamasına hoş geldiniz", - "writeherethebug": "Bursa sorununuzla ilgili acıklama giriniz", - "years": "Uıl", + "webservicesnotenabled": "Sitenizin Web Hizmetleri ektin değildir. Mobil erişimin etkin olduğunu düşünüyrosanız. Moodle site yöneticinize başvurun.", + "webservicesuccessfullyexecuted": "Web hizmeti başarıyla çalıştırıldı", + "website": "Websitesi", + "weight": "Ağırlık", + "welcome": "Moodle mobil uygulamasına hoş geldiniz", + "writeherethebug": "Buraya sorununuzla ilgili açıklama giriniz", + "years": "Yıl(lar)", "yes": "Evet", + "youarein": "Şuradasınız:", "yourpassword": "Şifre", - "yoursiteurl": "https:\/\/siztinsetiniz.com", + "yoursiteurl": "https:\/\/siztinmoodleniz.com", "yourusername": "kullanıcı adı" } \ No newline at end of file diff --git a/lang/zh_cn.json b/lang/zh_cn.json index a40449cd3..411937ee3 100644 --- a/lang/zh_cn.json +++ b/lang/zh_cn.json @@ -5,7 +5,7 @@ "addcontact": "添加为联系人", "addedtoqueue": "您已下线;您的操作已经被添加到任务队列中。", "addfakenotifications": "添加假冒通知", - "addnote": "添加关注", + "addnote": "添加笔记", "address": "地址", "addsite": "添加站点", "allcachesinvalidated": "所有缓存已失效", @@ -17,6 +17,8 @@ "author": "作者", "average": "平均", "back": "后退", + "blockcontact": "屏蔽联系人", + "blockedusers": "屏蔽用户({$a})", "browsephotoalbums": "相册", "cacheexpirationtime": "缓存过期时间(毫秒)", "cancel": "取消", @@ -31,6 +33,7 @@ "confirmdeletetask": "您确定要删除本任务?", "contact": "联系方式", "contactadd": "联系人已被添加至您的手机通讯录中", + "contacts": "联系人", "content": "内容", "contents": "内容", "contentyetnotavailable": "还无法通过APP参与此类活动", @@ -140,6 +143,7 @@ "next": "往后", "no": "否", "noevents": "没有事件", + "nomessagesfound": "没有消息", "norefreshdisconnected": "刷新选项需要联网", "notaskstobesynchronized": "没有要同步的任务", "noteadded": "关注已添加", @@ -148,8 +152,11 @@ "notifications": "通知", "notificationsdisabled": "通知已被禁用", "notificationsenabled": "已启用通知功能,用于您的所有Moodle站点", + "nousersfound": "未找到用户", + "offlinecontacts": "离线联系人 ({$a})", "offlinemode": "离线模式", "ok": "确定", + "onlinecontacts": "在线联系人 ({$a})", "openinbrowser": "在浏览器中打开", "participants": "课程参与者", "password": "密码", @@ -171,6 +178,7 @@ "recordaudio": "音频", "recordstored": "您的录音已保存到您的私人空间。", "remotesystemnotconfiguredfornotifications": "该Moodle站点还未进行发送移动通知设置。如果您认为应当启用通知功能,请联系站点管理员。", + "removecontact": "删除联系人", "replay": "回放", "reply": "回复", "reportabug": "报告bug", diff --git a/lang/zh_tw.json b/lang/zh_tw.json index 4aaaf68bf..c6bd0443c 100644 --- a/lang/zh_tw.json +++ b/lang/zh_tw.json @@ -17,6 +17,8 @@ "author": "作者", "average": "平均", "back": "返回", + "blockcontact": "封鎖聯絡人", + "blockedusers": "被封鎖的用戶 ({$a})", "browsephotoalbums": "瀏覽相本", "cacheexpirationtime": "快取到期時間(毫秒)", "cancel": "取消", @@ -31,6 +33,7 @@ "confirmdeletetask": "您確定要刪除此項任務?", "contact": "連絡人", "contactadd": "連絡人已加到您電話的通訊錄中。", + "contacts": "通訊錄", "content": "內容", "contents": "內容", "contentyetnotavailable": "此型態之活動不能經由手機app找到。", @@ -138,6 +141,7 @@ "networkerrormsg": "網路未啟用或未運作。", "next": "繼續", "no": "否", + "nomessagesfound": "沒有找到簡訊", "norefreshdisconnected": "更新功能需要網路連線", "notaskstobesynchronized": "沒有同步的任務", "noteadded": "筆記已加入", @@ -147,8 +151,11 @@ "notificationsdisabled": "通知功能已停用", "notificationsenabled": "您全部的Moodle網站啟用通知功能。", "notificationshowtoenable": ".", + "nousersfound": "找不到用戶", + "offlinecontacts": "離線的聯絡人 ({$a})", "offlinemode": "離線模式", "ok": "好", + "onlinecontacts": "在線上的聯絡人 ({$a})", "participants": "參與者", "password": "密碼", "passwordlabel": "密碼", @@ -169,6 +176,7 @@ "recordaudio": "錄製聲音", "recordstored": "您的錄音已儲存在您的私人檔案區。", "remotesystemnotconfiguredfornotifications": "您Moodle並未設定好傳送行動裝置通知。如果您覺得須啟用通知功能請連絡Moodle入口網站管理員。", + "removecontact": "刪除聯絡人", "replay": "回覆", "reply": "回覆", "reportabug": "回報問題", diff --git a/less/styles.less b/less/styles.less index cf3d53c23..0e8fe04ef 100755 --- a/less/styles.less +++ b/less/styles.less @@ -32,17 +32,27 @@ @headerBorder: 0; @headerBoxShadow: 10px 0 20px rgba(0, 0, 0, 0.3); +@subHeaderBoxShadow: 0 0 10px rgba(0, 0, 0, 0.1); + //-----Content----- @contentBackground: #fff; @textColor: #666; @linkColor: #08c; -@headingsColor: @textColor; @sectionHeadingColor: @textColor; @sectionHeadingTextShadow: 0px 1px 1px rgba(0, 0, 0, 0.2); @sectionHeadingBackground: #eee; + +//-----Messages----- +@messageBackground: @contentBackground; + +@bubbleBackground: #fff; +@bubbleBackgroundAlt: #fff; +@bubbleBorder: rgba(0,0,0,0.3); +@bubbleBorderAlt: rgba(250,143,28,1); + /* Font Icon --------------------------------------------------------*/ @font-face { @@ -89,8 +99,8 @@ html { body { color: @textColor; font-family: Helvetica, sans-serif; - font-size: 14px; - font-size: .875rem; + font-size: 16px; + font-size: 1rem; line-height: 24px; background: @bodyBackground; } @@ -126,11 +136,17 @@ ol { h1 { font-size: 18px; font-size: 1.125rem; - color: @headingsColor; - margin: 5px 0 0; + font-weight: normal; } h2 { + font-size: 17px; + font-size: 1.0625rem; + font-weight: normal; + text-shadow: @sectionHeadingTextShadow; +} + +h3 { color: @sectionHeadingColor; font-size: 100%; font-weight: normal; @@ -142,6 +158,21 @@ h2 { background-color: @sectionHeadingBackground; } +h4 { + font-size: 15px; + font-size: 0.9375rem; +} + +h5 { + font-size: 14px; + font-size: 0.875; +} + +h6 { + font-size: 13px; + font-size: 0.8125rem; +} + b, strong { font-weight: bold; @@ -547,7 +578,6 @@ hr { color: @headerTextColor; height: 44px; line-height: 44px; - padding-right: 20px; overflow: hidden; background: @headerBackground; border-bottom: @headerBorder; @@ -566,21 +596,51 @@ hr { } } } + .menu-home { + background-image: url(../img/ico-menu.png); + } + .menu-back { + background-image: url(../img/ico-back.png); + } + #page-title { + text-shadow: @headerTextShadow; + letter-spacing: .5px; + display: block; + text-align: center; + padding-left: 10px; + padding-right: 10px; + overflow: hidden; + } } -#page-title { - font-size: 16px; - font-size: 1rem; - text-shadow: @headerTextShadow; - letter-spacing: .5px; -} - -.menu-home { - background-image: url(../img/ico-menu.png); -} - -.menu-back { - background-image: url(../img/ico-back.png); +.header-sub { + padding-top: 10px; + padding-bottom: 10px; + min-height: 44px; + box-shadow: @subHeaderBoxShadow; + .back-row { + float: left; + margin-bottom: 10px; + margin-left: 5px; + display: block; + a { + padding: 10px; + } + } + h2 { + margin-bottom: 0; + overflow: hidden; + .img { + margin-top: 5px; + } + } + #tablet-page-title, + #back-arrow-title { + display: table; + margin: 0 auto; + padding-left: 10px; + padding-right: 10px; + } } /* - Common on three panels @@ -621,10 +681,11 @@ hr { border-radius: 50%; } h1 { + font-size: 20px; + font-size: 1.25rem; color: @menuHeaderTextColor; text-shadow: @menuHeaderTextShadow; - font-weight: normal; - line-height: 20px; + margin: 5px 0 0; } } h2 { @@ -736,7 +797,12 @@ hr { width: 100%; position: relative; header { - padding: 10px; + border-top: 1px solid #eee; + box-shadow: @subHeaderBoxShadow; + h2 { + padding: 10px; + margin-bottom: 0; + } } section:last-of-type { border-bottom: 1px solid #eee; @@ -754,7 +820,7 @@ hr { width: 100%; } .content-name { - a { + > a { display: block; padding: 10px; } @@ -764,12 +830,23 @@ hr { } &.mod-label { overflow: auto; - h3 { - font-size: 100%; - font-weight: normal; - margin: 0; + a > div { padding-right: 80px; - }; + h1, + h2, + h3, + h4, + h5, + h6 { + color: @textColor; + font-weight: bold; + line-height: inherit; + letter-spacing: 0; + background-color: transparent; + text-shadow: none; + padding: 0; + } + } img { width: auto; } @@ -853,12 +930,6 @@ hr { word-wrap: break-word; } -//-----Folder, Forum discussions and My files----- -.back-row a { - display: block; - padding: 10px; -} - //-----Forum discussions----- .path-mod-forum { .forum { @@ -872,8 +943,8 @@ hr { } } .intro { - margin-left: 32px; - padding: 0 10px 10px; + padding: 10px; + margin-left: 4px; } .first-post { > .subject { @@ -883,9 +954,6 @@ hr { .forum-post { padding-top: 10px; border-bottom: 1px solid #eee; - &:first-of-type { - border-top: 1px solid #eee; - } &:last-child { border-bottom: 0; } @@ -921,6 +989,10 @@ hr { .content { padding: 0 10px 10px; margin-left: 50px; + &:first-of-type { + padding-top: 10px; + margin-left: 4px; + } ul, ol { margin-left: 20px; @@ -974,27 +1046,32 @@ hr { } } &.forum-discussion { - .first-post { - border-top: 15px solid #eee; - border-bottom: 1px solid #eee; - } .indent { border-top: 15px solid #eee; } } } - //-----My Files----- -.fullpath { - width: 100%; - background-color: #eee; - position: fixed; - bottom: 0; - padding: 4px 10px; - p { - margin-bottom: 0; - line-height: 20px; +.content-index { + .back-row { + padding-top: 10px; + padding-bottom: 10px; + margin-left: 5px; + a { + padding: 10px; + } + } + .fullpath { + width: 100%; + background-color: #eee; + position: fixed; + bottom: 0; + padding: 4px 10px; + p { + margin-bottom: 0; + line-height: 20px; + } } } @@ -1002,6 +1079,18 @@ hr { .messages, .notifications { padding: 10px; + .no-content { + display: table; + position: absolute; + width: 100%; + height: 100%; + text-align: center; + margin-left: -10px; + p { + display: table-cell; + vertical-align: middle; + } + } } .message, @@ -1042,6 +1131,185 @@ hr { } } +//-----Messages----- +.path-messages { + &.recent-messages { + img { + width: 40px; + height: 40px; + border-radius: 50%; + } + p { + font-weight: bold; + line-height: 20px; + margin: 0; + } + .preview { + font-weight: normal; + } + } + .conversation { + background-color: @messageBackground; + position: absolute;; + margin-right: 50px; + .conversation-area { + padding: 15px; + overflow-y: scroll; + .datestamp { + text-align: center; + margin-bottom: 10px; + clear: both; + span { + color: #fff; + font-size: .75rem; + font-weight: bold; + background-color: #c9c9c9; + padding: 2px 10px; + border-radius: 10px; + } + } + .bubble { + line-height: 20px; + word-wrap: break-word; + padding: 6px 12px; + margin-bottom: 10px; + width: auto; + max-width: 90%; + background: @bubbleBackground; + border: 1px solid @bubbleBorder; + border-radius: 6px; + float: left; + clear: both; + position: relative; + &:before, + &:after { + content: ""; + display: block; + position: absolute; + border-style: solid; + border-color: transparent; + } + &:before { + border-width: 8px; + border-right-color: @bubbleBorder; + top: 8px; + left: -16px; + } + &:after { + border-width: 7px; + border-right-color: @bubbleBackground; + top: 9px; + left: -14px; + } + } + .bubble-alt { + background-color: @bubbleBackgroundAlt; + border-color: @bubbleBorderAlt; + float: right; + &:before { + border-color: transparent; + border-left-color: @bubbleBorderAlt; + left: auto; + right: -16px; + } + &:after { + border-color: transparent; + border-left-color:@bubbleBackgroundAlt; + left: auto; + right: -14px; + } + } + .time { + color: #999; + font-size: .65rem; + float: right; + padding-left: 8px; + padding-top: 2px; + } + } + .input-area { + padding: 8px 10px; + background-color: #eee; + border-top: 1px solid #ccc; + display: block; + width: 100%; + form { + > div { + position: relative; + margin-right: 60px; + } + input { + display: block; + line-height: 20px; + padding: 6px 6px 4px; + } + input[type="text"] { + width: 100%; + border: 1px solid #eee; + } + input[type="submit"] { + color: @linkColor; + font-weight: bold; + background: transparent; + border: none; + position: absolute; + top: 0px; + left: 100%; + width: 50px; + margin-left: 10px; + } + } + } + } + &.contacts { + input[type="search"] { + width: 100%; + margin: 10px 0; + } + .nav-item > a { + padding-top: 6px; + } + img { + width: 30px; + height: 30px; + border-radius: 50%; + } + p { + line-height: 30px; + margin: 0; + } + } + &.contact { + border-top: 1px solid #eee; + .media { + padding-left: 20px; + padding-right: 20px; + padding-bottom: 40px; + padding-top: 20px; + .img { + display: block; + vertical-align: baseline; + } + img { + width: 50px; + height: 50px; + border-radius: 50%; + vertical-align: bottom; + } + .bd { + font-size: 1rem; + } + } + .nav-item { + padding-left: 15px; + padding-right: 15px; + a { + color: @linkColor; + } + } + } +} + //-----Calendar----- .events-list { .name { @@ -1059,7 +1327,7 @@ hr { } .event { - border-bottom: 1px solid #e0e0e0; + border-bottom: 1px solid #eee; header { padding: 10px; img { @@ -1068,25 +1336,29 @@ hr { } > div { padding: 10px; - border-top: 1px solid #e0e0e0; + border-top: 1px solid #eee; overflow: hidden; } .date, - .course { + .course, + .option { p { - padding-left: 26px; margin-bottom: 0; } + .time { + font-size: 12px; + } + input { + margin-right: 8px; + } } - .time { - font-size: 12px; - } - .app-ico img { - width: 18px; - height: auto; + .media { + .app-ico img { + width: 18px; + height: auto; + } } .description { - padding-left: 36px; img { margin: 20px 0 20px 20px; } @@ -1178,6 +1450,7 @@ hr { /* - Participant on the right panel and Notification page on the center panel -------------------------------------------------------------------------- */ .user-card { + border-top: 1px solid #eee; .content { border-bottom: 1px solid #eee; } @@ -1195,7 +1468,9 @@ hr { position: absolute; bottom: 0; padding-left: 110px; - h1 { + p { + font-size: 18px; + font-size: 1.125rem; margin-bottom: 12px; } } @@ -1224,6 +1499,7 @@ hr { /* - Settings on the right panel -------------------------------------------------------------------------- */ .settings { + border-top: 1px solid #eee; .nav-item { padding: 10px; } @@ -1308,16 +1584,19 @@ hr { //-----About----- .settings { - header { - padding: 10px; - } .about { border-collapse: collapse; line-height: 20px; width: 100%; + thead th { + padding-top: 10px; + padding-bottom: 10px; + } th { + font-weight: normal; text-align: left; - padding: 0 10px; + padding-left: 10px; + padding-right: 10px; } td { padding: 10px; @@ -1331,9 +1610,6 @@ hr { text-shadow: @sectionHeadingTextShadow; background-color: @sectionHeadingBackground; border-bottom: 1px solid @contentBackground; - th { - font-weight: normal; - } } } } @@ -1547,6 +1823,11 @@ div.jqi { /* - Tablet minimum width 768px -------------------------------------------------------------------------- */ .tablet { + .path-messages { + .conversation { + margin-right: 0; + } + } .grades { thead { display: table-header-group; @@ -1590,7 +1871,7 @@ div.jqi { border-collapse: collapse; line-height: 20px; width: 100%; - border-top: 1px solid #e0e0e0; + border-top: 1px solid #eee; tr { border-bottom: 1px solid #eee; } diff --git a/lib/mm.db.js b/lib/mm.db.js index 52ac1867b..197bd9975 100755 --- a/lib/mm.db.js +++ b/lib/mm.db.js @@ -42,6 +42,14 @@ MM.db = { MM.collections[collection].each(fn); }, insert: function(collection, model) { + // Insert allways the current site identifier. + if (typeof model.site == "undefined" && + MM.config && + MM.config.current_site && + MM.config.current_site.id) { + + model.site = MM.config.current_site.id; + } return MM.collections[collection].create(model); }, remove: function(collection, modelId) { diff --git a/lib/mm.emulator.js b/lib/mm.emulator.js index ec3dda16e..ccd79837b 100755 --- a/lib/mm.emulator.js +++ b/lib/mm.emulator.js @@ -55,11 +55,14 @@ MM.cordova = { // Notifications window.plugins = {}; + window.plugin = {}; // Connection API. window.Connection = { "NONE": 0, - "WIFI": 1 + "WIFI": 1, + "CELL_2G": 2, + "CELL_3G": 3 }; navigator.network = { @@ -114,6 +117,24 @@ MM.cordova = { PERSISTENT: 1 }; + window.plugin.notification = { + local: {} + }; + + window.plugin.notification.local.add = function(n) { + console.log("Notification created: "); + console.log(n); + }; + + window.plugin.notification.local.cancel = function(id) { + console.log("Notification with id: " + id + " cancelled"); + }; + + window.plugin.notification.local.cancelAll = function() { + console.log("All local notifications cancelled"); + }; + + // Check with API wrapper we should load. if (MM.inNodeWK) { MM.cordova.loadNodeJSAPI(); diff --git a/lib/mm.fs.js b/lib/mm.fs.js index e7d99b80f..4413f75c8 100755 --- a/lib/mm.fs.js +++ b/lib/mm.fs.js @@ -102,7 +102,7 @@ MM.fs = { var msg = 'Critical error accessing file system, directory ' + MM.fs.basePath + ' can\'t be created'; MM.log(msg, "FS"); if (err) { - console.log("Error dump", "FS"); + //console.log("Error dump", "FS"); } MM.popErrorMessage(msg); } diff --git a/lib/mm.js b/lib/mm.js index a09387294..fe523f9b8 100755 --- a/lib/mm.js +++ b/lib/mm.js @@ -46,6 +46,15 @@ var MM = { currentService: "", webWorker: null, blobWorker: null, + /** @type {Object} Use non-deprecated functions when possible */ + deprecatedFunctions: { + "moodle_webservice_get_siteinfo": "core_webservice_get_site_info", + "moodle_enrol_get_users_courses": "core_enrol_get_users_courses", + "moodle_notes_create_notes": "core_notes_create_notes", + "moodle_message_send_instantmessages": "core_message_send_instant_messages", + "moodle_user_get_users_by_courseid": "core_enrol_get_enrolled_users", + "moodle_user_get_course_participants_by_id": "core_user_get_course_user_profiles", + }, /** * Initial setup of the app: device type detection, routes, models, settings. @@ -237,7 +246,9 @@ var MM = { syncEl: {type: 'model'}, sync: {type: 'collection', model: 'syncEl'}, service: {type: 'model'}, - services: {type: 'collection', model: 'service'} + services: {type: 'collection', model: 'service'}, + user: {type: 'model'}, + users: {type: 'collection', model: 'user'} }; this.loadModels(storage); }, @@ -294,6 +305,22 @@ var MM = { return connected; }, + deviceWifiConnected: function() { + // If we are in computer, return if the device is just connected or not. + if (MM.inComputer) { + return MM.deviceConnected(); + } + + var connected = true; + + var network = MM._getNetwork(); + if (typeof(network) != 'undefined') { + var networkState = network.connection.type; + connected = networkState == Connection.WIFI; + } + return connected; + }, + _renderManageAccounts: function(sites) { if (!sites) { sites = []; @@ -462,6 +489,16 @@ var MM = { e.stopPropagation(); }); + // Heading icons (used by some plugins like messages). + var hilr = $("#header-icon-left, #header-icon-right"); + $(hilr).css("position", "absolute"); + $(hilr).css("z-index", "9999"); + $(hilr).css("top", "6px"); + $(hilr).css("display", "none"); + + $("#header-icon-left").css("left", MM.panels.sizes.threePanels.center - 25); + $("#header-icon-right").css("left", MM.panels.sizes.threePanels.center + MM.panels.sizes.threePanels.right - 25); + // Swipe detection. $('#panel-center, #panel-right').swipe({ swipeLeft: function(event, direction, distance, duration, fingerCount) { @@ -484,10 +521,18 @@ var MM = { */ setUpPhoneModeLayout: function() { $('#mainmenu').bind(MM.quickClick, function(e) { - MM.panels.goBack(); + MM.panels.menuShow(); e.preventDefault(); }); + // Heading icons (used by some plugins like messages). + var hilr = $("#header-icon-left, #header-icon-right"); + $(hilr).css("position", "absolute"); + $(hilr).css("z-index", "9999"); + $(hilr).css("top", "6px"); + $(hilr).css("right", "10px"); + $(hilr).css("display", "none"); + var excludedElements = "button, input, select, textarea, .noSwipe"; if (MM.deviceOS == 'android') { excludedElements += ", a"; @@ -703,6 +748,12 @@ var MM = { var r = MM.db.insert('courses', storedCourse); } + // Check calendar events for new notifications. + if (MM.plugins.events && MM.plugins.events.isPluginVisible()) { + MM.plugins.events.checkLocalNotifications(); + } + + MM._showMainAppPanels(); if (MM.deviceType == 'tablet') { @@ -1091,6 +1142,30 @@ var MM = { return /^http(s)?\:\/\/.*/i.test(url) }, + _saveTokenSuccess: function(site, token) { + // Now we check for the minimum required version. + // We check for WebServices present, not for Moodle version. + // This may allow some hacks like using local plugins for adding missin functions in previous versions. + var validMoodleVersion = false; + $.each(site.functions, function(index, el) { + // core_get_component_strings Since Moodle 2.4 + if (el.name.indexOf("component_strings") > -1) { + validMoodleVersion = true; + return false; + } + }); + if (!validMoodleVersion) { + MM.popErrorMessage(MM.lang.s('invalidmoodleversion') + "2.4"); + return false; + } + site.id = hex_md5(site.siteurl + site.username); + site.token = token; + var newSite = MM.db.insert('sites', site); + MM.setConfig('current_site', site); + MM.loadSite(newSite.id); + MM.closeModalLoading(); + }, + /** * Save the token retrieved and load the full siteinfo object. * @param {str} token The user token @@ -1110,29 +1185,23 @@ var MM = { }; // We have a valid token, try to get the site info. - MM.moodleWSCall('moodle_webservice_get_siteinfo', {}, function(site) { - // Now we check for the minimum required version. - // We check for WebServices present, not for Moodle version. - // This may allow some hacks like using local plugins for adding missin functions in previous versions. - var validMoodleVersion = false; - $.each(site.functions, function(index, el) { - // core_get_component_strings Since Moodle 2.4 - if (el.name.indexOf("component_strings") > -1) { - validMoodleVersion = true; - return false; - } - }); - if (!validMoodleVersion) { - MM.popErrorMessage(MM.lang.s('invalidmoodleversion') + "2.4"); - return false; + MM.moodleWSCall('moodle_webservice_get_siteinfo', {}, + function(site) { + MM._saveTokenSuccess(site, token); + }, + preSets, + function(e) { + // An error may happen if the site use the core_webservice_get_site_info instead the old one. + MM.moodleWSCall( + 'core_webservice_get_site_info', + {}, + function(site) { + MM._saveTokenSuccess(site, token); + }, + preSets + ); } - site.id = hex_md5(site.siteurl + site.username); - site.token = token; - var newSite = MM.db.insert('sites', site); - MM.setConfig('current_site', site); - MM.loadSite(newSite.id); - MM.closeModalLoading(); - }, preSets); + ); }, @@ -1143,9 +1212,12 @@ var MM = { * @param {string} username User name. * @param {string} password Password. * @param {string} siteurl The site url. + * @param {bool} retry We are retrying with a prefixed URL. * @return {boolean} Allways returns false */ - saveSite: function(username, password, siteurl) { + saveSite: function(username, password, siteurl, retry) { + retry = retry || false; + MM.showModalLoading(MM.lang.s("authenticating")); var loginURL = siteurl + '/login/token.php'; MM.siteurl = siteurl; @@ -1169,7 +1241,18 @@ var MM = { var error = MM.lang.s('invalidaccount'); if (typeof(json.error) != 'undefined') { - error = json.error; + // We only allow one retry (to avoid loops). + if (!retry && json.errorcode == "requirecorrectaccess") { + MM.log("Retry with prefixed URL"); + siteurl = siteurl.replace("https://", "https://www."); + siteurl = siteurl.replace("http://", "http://www."); + $("#url").val(siteurl); + + MM.saveSite(username, password, siteurl, true); + return; + } else { + error = json.error; + } } MM.popErrorMessage(error); } @@ -1412,6 +1495,13 @@ var MM = { return; } + // Check if is a deprecated function. + if (typeof MM.deprecatedFunctions[method] != "undefined") { + if (MM.util.wsAvailable(MM.deprecatedFunctions[method])) { + // Use the non-deprecated function. + method = MM.deprecatedFunctions[method]; + } + } data.wsfunction = method; data.wstoken = preSets.wstoken; diff --git a/lib/mm.lang.js b/lib/mm.lang.js index 0a5e491c8..d75e10736 100755 --- a/lib/mm.lang.js +++ b/lib/mm.lang.js @@ -164,7 +164,7 @@ MM.lang = { * @param {string} id The unique id of the string to be translated. * @param {string} component Core for regular strings or pluginname for plugins. */ - s: function(id, component) { + s: function(id, component, replace) { if (typeof(component) == 'undefined') { component = 'core'; @@ -201,6 +201,11 @@ MM.lang = { if (!translated) { translated = '[[' + id + ']]'; } + + if (typeof(replace) != 'undefined') { + translated = translated.replace("{$a}", replace); + } + return translated; }, }; diff --git a/lib/mm.panels.js b/lib/mm.panels.js index 596387fa9..bf7acde28 100644 --- a/lib/mm.panels.js +++ b/lib/mm.panels.js @@ -46,10 +46,47 @@ MM.panels = { * @param {string} html The html to be inserted. */ html: function(position, html) { - // If we are in the center or right panel, we need to add a small br for preventing contents half displayed. - if (position != "left") { - html += "
"; + // Automatically add the file with the back arrow appending the title there. + if (MM.deviceType == "phone") { + var panelCenter = $('#panel-center'); + var panelRight = $('#panel-right'); + + var showBackArrow = false; + + // Where the app were when the link was pressed. + if (panelCenter.css("display") == "block" && position != "center") { + if (html.indexOf("back-row") < 0) { + showBackArrow = true; + } + } + + if (panelRight.css("display") == "block" && position == "right") { + // Prevent double black arrows + if (html.indexOf("back-row") < 0) { + showBackArrow = true; + } + } + + if (showBackArrow) { + html = '

' + html; + } + + } else { + var showPanelTitle = false; + + if (position == "right") { + showPanelTitle = true; + } + + if (showPanelTitle && html.indexOf("back-row") >= 0) { + showPanelTitle = false; + } + + if (showPanelTitle) { + html = '

' + html; + } } + $('#panel-' + position).html(html); // For Android, we open external links in a system browser. _blank -> external browser MM.handleExternalLinks('#panel-'+position+' a[target="_blank"]'); @@ -79,6 +116,16 @@ MM.panels = { }, + showHeadingIcons: function(position) { + // Populate the header icons with the content in the hidden div in the panel. + if ((!position || position == "center") && $("#header-icon-left-content").length) { + $("#header-icon-left").css("display", "block").html($("#header-icon-left-content").html()); + } + if ((!position || position == "right") && $("#header-icon-right-content").length) { + $("#header-icon-right").css("display", "block").html($("#header-icon-right-content").html()); + } + }, + /** * Show de loading icon in a panel * @param {string} position The panel where to show the loading icon. @@ -130,12 +177,16 @@ MM.panels = { var panelCenter = $('#panel-center'); var panelRight = $('#panel-right'); + // Hide header icons. + $("#header-icon-left").css("display", "none"); + $("#header-icon-right").css("display", "none"); + MM.panels.html(position, content); MM.panels.currentPanel = position; if (MM.deviceType == 'tablet') { // Clean the page title. - if (!settings || !settings.keepTitle) { + if (position != 'right' && (!settings || !settings.keepTitle)) { pageTitle.html(""); } @@ -143,31 +194,45 @@ MM.panels = { if (settings && settings.hideRight) { MM.panels.hideRight = true; } - if (settings && settings.title) { + if (position != 'right' && settings && settings.title) { pageTitle.html(settings.title); } + + if (!MM.panels.hideRight && position == 'right') { + var panelTitle = $("#tablet-page-title"); + if (panelTitle) { + panelTitle.html(settings.title); + } + } + MM.panels.menuShow(false, settings); + + MM.panels.showHeadingIcons(); + } else { // Clean the page title. MM.panels.previousPanelPageTitle = pageTitle.html(); - if (!settings || !settings.keepTitle) { - pageTitle.html(""); + + if (position != 'right') { + if (!settings || !settings.keepTitle) { + pageTitle.html(""); + } } // Short text for page title (MOBILE-462). // We can't do this using CSS text-overflow because of the header dynamic width. - if (settings && settings.title) { + if (position != 'right' && settings && settings.title) { settings.title = MM.util.shortenText(settings.title, 35); } if (position == 'center') { // Detect if we are in the center. if (panelCenter.css('display') == 'block') { - $(".header-main .nav-item.home").removeClass("menu-back").addClass("menu-home"); if (settings && settings.title) { pageTitle.html(settings.title); } $(document).scrollTop(0); + MM.panels.showHeadingIcons('center'); return; } panelRight.css('display', 'none'); @@ -179,11 +244,11 @@ MM.panels = { panelCenter.animate({ left: 0 }, 300, function () { - $(".header-main .nav-item.home").removeClass("menu-back").addClass("menu-home"); if (settings && settings.title) { pageTitle.html(settings.title); } $(document).scrollTop(0); + MM.panels.showHeadingIcons('center'); }); $('.header-wrapper').animate({ @@ -208,11 +273,11 @@ MM.panels = { panelRight.animate({ left: 0 }, 300, function(){ - $(".header-main .nav-item.home").removeClass("menu-home").addClass("menu-back"); - if (settings && settings.title) { - pageTitle.html(settings.title); + if (settings && settings.title) { + $("#back-arrow-title").html(settings.title); } $(document).scrollTop(0); + MM.panels.showHeadingIcons('right'); }); } } @@ -231,6 +296,9 @@ MM.panels = { return; } + $("#header-icon-left").css("display", "none"); + $("#header-icon-right").css("display", "none"); + var hideHeader = false; // Clear modal panels. @@ -273,14 +341,10 @@ MM.panels = { display: 'block' }, 300, function() { $(this).css('display', 'block'); - if (showPanel == "#panel-right") { - $(".header-main .nav-item.home").removeClass("menu-home").addClass("menu-back"); - } else { - $(".header-main .nav-item.home").removeClass("menu-back").addClass("menu-home"); - } MM.panels.nextPanelPageTitle = $("#page-title").html(); $("#page-title").html(MM.panels.previousPanelPageTitle); $(document).scrollTop(0); + MM.panels.showHeadingIcons(MM.panels.currentPanel); if (typeof(callBack) === "function") { callBack(); } @@ -300,6 +364,10 @@ MM.panels = { */ goFront: function(callBack) { var showBackArrow = false; + var nextPanel = ""; + + $("#header-icon-left").css("display", "none"); + $("#header-icon-right").css("display", "none"); // Clear modal panels. if (typeof(MM.plugins.contents.infoBox) != "undefined") { @@ -309,6 +377,7 @@ MM.panels = { if ($('#panel-left').css('display') == 'block') { hidePanel = '#panel-left'; showPanel = '#panel-center'; + nextPanel = "center"; if (MM.panels.previousPanel != 'center') { return; @@ -318,6 +387,7 @@ MM.panels = { else if ($('#panel-center').css('display') == 'block') { hidePanel = '#panel-center'; showPanel = '#panel-right'; + nextPanel = "right"; if (MM.panels.previousPanel != 'right') { return; @@ -339,14 +409,11 @@ MM.panels = { }, 300, function() { $(this).css('display', 'block'); if (MM.deviceType == "phone") { - if (showBackArrow) { - $(".header-main .nav-item.home").removeClass("menu-home").addClass("menu-back"); - } else { - $(".header-main .nav-item.home").removeClass("menu-back").addClass("menu-home"); - } MM.panels.previousPanelPageTitle = $("#page-title").html(); $("#page-title").html(MM.panels.nextPanelPageTitle); $(document).scrollTop(0); + MM.panels.showHeadingIcons(nextPanel); + if (typeof(callBack) === "function") { callBack(); } @@ -372,6 +439,17 @@ MM.panels = { var panelCenter = $('#panel-center'); var panelRight = $('#panel-right'); + + if (MM.deviceType == 'phone') { + if ($('#panel-center').css('display') == 'block') { + MM.panels.goBack(); + } + else if ($('#panel-right').css('display') == 'block') { + MM.panels.goBack(MM.panels.goBack); + } + return; + } + // Clear modal panels. if (typeof(MM.plugins.contents.infoBox) != "undefined") { MM.plugins.contents.infoBox.remove(); diff --git a/lib/mm.settings.js b/lib/mm.settings.js index 2d54adf5b..c89ef74a0 100755 --- a/lib/mm.settings.js +++ b/lib/mm.settings.js @@ -60,12 +60,35 @@ MM.settings = { }); }, + _deleteSiteReferences: function(site) { + // Iterate all the collections, except the settings one. + var els, siteId; + + siteId = site.get('id'); + + // Special cases, the site attribute doesn't exist there. + MM.db.remove("sites", siteId); + MM.db.remove("services", hex_md5(site.get('siteurl'))); + + for (var collection in MM.collections) { + if(MM.collections.hasOwnProperty(collection) && collection != "settings"){ + els = MM.db.where(collection, {'site': siteId}); + _.each(els, function(el) { + MM.db.remove(collection, el.get("id")); + }); + } + } + }, + deleteSite: function(siteId) { var site = MM.db.get('sites', siteId); MM.popConfirm(MM.lang.s('deletesite'), function() { var count = MM.db.length('sites'); + + MM.settings._deleteSiteReferences(site); + MM.setConfig("current_site", null); + if (count == 1) { - MM.db.remove('sites', siteId); // Remove file directory. MM.fs.removeDirectory(siteId, function() { @@ -74,7 +97,6 @@ MM.settings = { function() {}); MM._displayAddSite(); } else { - MM.db.remove('sites', siteId); MM.fs.removeDirectory(siteId, function() { MM.settings._deleteSiteFilesReferences(siteId); @@ -83,6 +105,10 @@ MM.settings = { MM._renderManageAccounts(); MM._displayManageAccounts(); } + MM.setConfig("current_token", null); + MM.config.current_site = null; + MM.config.current_token = null; + MM.site = null; }); }, @@ -100,7 +126,8 @@ MM.settings = { showSync: function() { var settings = [ {id: 'sync_ws_on', type: 'checkbox', label: MM.lang.s('enableautosyncws'), checked: true, handler: MM.settings.checkboxHandler}, - {id: 'sync_css_on', type: 'checkbox', label: MM.lang.s('enableautosynclang'), checked: true, handler: MM.settings.checkboxHandler} + {id: 'sync_css_on', type: 'checkbox', label: MM.lang.s('enableautosynclang'), checked: true, handler: MM.settings.checkboxHandler}, + {id: 'sync_wifi_on', type: 'checkbox', label: MM.lang.s('enablesyncwifi'), checked: false, handler: MM.settings.checkboxHandler}, ]; // Load default values @@ -123,7 +150,7 @@ MM.settings = { }); var tpl = '\ -

<%= MM.lang.s("taskqueue") %>

\ +

<%= MM.lang.s("taskqueue") %>

\ <% if (tasks.length == 0) { %>\

<%= MM.lang.s("notaskstobesynchronized") %>

\ <% } %>\ @@ -148,7 +175,7 @@ MM.settings = { tpl = '
' + syncSettings + tpl + '
'; var html = MM.tpl.render(tpl, {tasks: syncTasks}); - MM.panels.show('right', html, {title: MM.lang.s("settings") + " - " + MM.lang.s("synchronization")}); + MM.panels.show('right', html, {title: MM.lang.s("synchronization")}); // Once the html is rendered, we pretify the widgets. MM.widgets.enhance(settings); MM.widgets.addHandlers(settings); @@ -217,7 +244,7 @@ MM.settings = { var tpl = '\
\ -

<%= MM.lang.s("spaceusage") %>

\ +

<%= MM.lang.s("spaceusage") %>

\