on xenial help sign in
[ David Callé ]
5cf4e16Diego Sarmentero
Bottombar/Bottombar.qml+1−1
@@ -122,7 +122,7 @@ Item {
122 id: dragArea
122 id: dragArea
123 objectName: "hudDragArea"
123 objectName: "hudDragArea"
124 width: parent.width
124 width: parent.width
125− height: distanceThreshold
125+ height: shell.edgeSize
126 anchors.bottom: parent.bottom
126 anchors.bottom: parent.bottom
127
127
128 distanceThreshold: units.gu(8)
128 distanceThreshold: units.gu(8)
Components/ApplicationManagerWrapper.qml−29
@@ -25,7 +25,6 @@ Item {
25 property variant mainStageFocusedApplication: null
25 property variant mainStageFocusedApplication: null
26 property variant sideStageFocusedApplication: null
26 property variant sideStageFocusedApplication: null
27 property bool sideStageEnabled: true
27 property bool sideStageEnabled: true
28− signal focusRequested(string desktopFile)
29 property bool keyboardVisible: ApplicationManager.keyboardVisible
28 property bool keyboardVisible: ApplicationManager.keyboardVisible
30 property int keyboardHeight: ApplicationManager.keyboardHeight
29 property int keyboardHeight: ApplicationManager.keyboardHeight
31
30
@@ -155,32 +154,4 @@ Item {
155 }
154 }
156 return desktopFile.substring(left+1, right);
155 return desktopFile.substring(left+1, right);
157 }
156 }
158−
159− Connections {
160− target: ApplicationManager
161− onFocusRequested: {
162− // FIXME: hardcoded mapping from ApplicationManager.FavoriteApplications
163− // enum to desktop files
164− var desktopFile
165− if (favoriteApplication == ApplicationManager.CameraApplication) {
166− desktopFile = "/usr/share/applications/camera-app.desktop"
167− } else if (favoriteApplication == ApplicationManager.GalleryApplication) {
168− desktopFile = "/usr/share/applications/gallery-app.desktop"
169− } else if (favoriteApplication == ApplicationManager.ShareApplication) {
170− desktopFile = "/usr/share/applications/share-app.desktop"
171− } else if (favoriteApplication == ApplicationManager.BrowserApplication) {
172− desktopFile = "/usr/share/applications/webbrowser-app.desktop"
173− } else if (favoriteApplication == ApplicationManager.PhoneApplication) {
174− desktopFile = "/usr/share/applications/phone-app.desktop"
175− } else if (favoriteApplication == ApplicationManager.DialerApplication) {
176− desktopFile = "/usr/share/applications/dialer-app.desktop"
177− } else if (favoriteApplication == ApplicationManager.MessagingApplication) {
178− desktopFile = "/usr/share/applications/messaging-app.desktop"
179− } else if (favoriteApplication == ApplicationManager.AddressbookApplication) {
180− desktopFile = "/usr/share/applications/address-book-app.desktop"
181− }
182−
183− applicationManager.focusRequested(desktopFile);
184− }
185− }
186}
157}
Components/FilterGrid.qml+4−3
@@ -57,6 +57,8 @@ Item {
57 property alias delegate: iconTileGrid.delegate
57 property alias delegate: iconTileGrid.delegate
58 property alias cellWidth: iconTileGrid.cellWidth
58 property alias cellWidth: iconTileGrid.cellWidth
59 property alias cellHeight: iconTileGrid.cellHeight
59 property alias cellHeight: iconTileGrid.cellHeight
60+ property alias delegateCreationBegin: iconTileGrid.delegateCreationBegin
61+ property alias delegateCreationEnd: iconTileGrid.delegateCreationEnd
60 readonly property alias flicking: iconTileGrid.flicking
62 readonly property alias flicking: iconTileGrid.flicking
61 readonly property alias moving: iconTileGrid.moving
63 readonly property alias moving: iconTileGrid.moving
62 readonly property alias pressDelay: iconTileGrid.pressDelay
64 readonly property alias pressDelay: iconTileGrid.pressDelay
@@ -64,7 +66,7 @@ Item {
64 height: !filterAnimation.running ? childrenRect.height : height
66 height: !filterAnimation.running ? childrenRect.height : height
65 clip: filterAnimation.running
67 clip: filterAnimation.running
66
68
67− NumberAnimation {
69+ SmoothedAnimation {
68 property bool filterEndValue
70 property bool filterEndValue
69 id: filterAnimation
71 id: filterAnimation
70 target: root
72 target: root
@@ -73,7 +75,7 @@ Item {
73 // Duration and easing here match the ListViewWithPageHeader::m_contentYAnimation
75 // Duration and easing here match the ListViewWithPageHeader::m_contentYAnimation
74 // otherwise since both animations can run at the same time you'll get
76 // otherwise since both animations can run at the same time you'll get
75 // some visual weirdness.
77 // some visual weirdness.
76− duration: 200
78+ velocity: units.gu(100)
77 easing.type: Easing.InOutQuad
79 easing.type: Easing.InOutQuad
78 onStopped: {
80 onStopped: {
79 root.filter = filterEndValue;
81 root.filter = filterEndValue;
@@ -102,6 +104,5 @@ Item {
102 model: root.model
104 model: root.model
103 limit: (filter && !filterAnimation.running) ? collapsedRowCount * iconTileGrid.columns : -1
105 limit: (filter && !filterAnimation.running) ? collapsedRowCount * iconTileGrid.columns : -1
104 }
106 }
105−
106 }
107 }
107}
108}
Components/LazyImage.qml+22−9
@@ -52,7 +52,7 @@ Item {
52 id: placeholder
52 id: placeholder
53 objectName: "placeholder"
53 objectName: "placeholder"
54 color: "#22FFFFFF"
54 color: "#22FFFFFF"
55− anchors.fill: parent
55+ anchors.fill: shape
56 visible: opacity != 0
56 visible: opacity != 0
57
57
58 ActivityIndicator {
58 ActivityIndicator {
@@ -79,7 +79,10 @@ Item {
79 UbuntuShape {
79 UbuntuShape {
80 id: shape
80 id: shape
81 objectName: "shape"
81 objectName: "shape"
82+ height: root.initialHeight
83+ width: root.initialWidth
82− anchors.fill: parent
84+ anchors.centerIn: root.scaleTo == "fit" ? parent : undefined
85+
83 opacity: 0
86 opacity: 0
84 visible: opacity != 0
87 visible: opacity != 0
85
88
@@ -88,16 +91,19 @@ Item {
88 objectName: "image"
91 objectName: "image"
89
92
90 property url nextSource
93 property url nextSource
94+ property string format: image.implicitWidth > image.implicitHeight ? "landscape" : "portrait"
91
95
92− width: root.scaleTo == "height" ? implicitWidth * root.height / implicitHeight : implicitWidth
93− height: root.scaleTo == "width" ? implicitHeight * root.width / implicitWidth : implicitHeight
94− fillMode: Image.PreserveAspectCrop
96+ fillMode: Image.PreserveAspectFit
95 asynchronous: true
97 asynchronous: true
96 cache: false
98 cache: false
97 horizontalAlignment: Image.AlignHCenter
99 horizontalAlignment: Image.AlignHCenter
98 verticalAlignment: Image.AlignVCenter
100 verticalAlignment: Image.AlignVCenter
99− sourceSize.width: root.scaleTo == "width" ? root.width : 0
101+ sourceSize.width: root.scaleTo == "width" ? root.width
102+ : root.scaleTo == "fit" && root.width < root.height ? root.width
103+ : undefined
100− sourceSize.height: root.scaleTo == "height" ? root.height : 0
104+ sourceSize.height: root.scaleTo == "height" ? root.height
105+ : root.scale == "fit" && root.height < root.width ? root.height
106+ : undefined
101 }
107 }
102 }
108 }
103
109
@@ -117,9 +123,14 @@ Item {
117 State {
123 State {
118 name: "ready"
124 name: "ready"
119 when: image.status === Image.Ready && image.source != ""
125 when: image.status === Image.Ready && image.source != ""
120− PropertyChanges { target: root; implicitWidth: image.width; implicitHeight: image.height }
126+ PropertyChanges { target: root; implicitWidth: shape.width; implicitHeight: shape.height }
121− PropertyChanges { target: shape; opacity: 1 }
122 PropertyChanges { target: placeholder; opacity: 0 }
127 PropertyChanges { target: placeholder; opacity: 0 }
128+ PropertyChanges { target: shape; opacity: 1
129+ width: root.scaleTo == "width" || (root.scaleTo == "fit" && image.format == "landscape") ? root.width
130+ : root.scaleTo == "" ? image.implicitWidth : image.implicitWidth * height / image.implicitHeight
131+ height: root.scaleTo == "height" || (root.scaleTo == "fit" && image.format == "portrait") ? root.height
132+ : root.scaleTo == "" ? image.implicitHeight : image.implicitHeight * width / image.implicitWidth
133+ }
123 },
134 },
124 State {
135 State {
125 name: "error"
136 name: "error"
@@ -138,6 +149,7 @@ Item {
138 ParallelAnimation {
149 ParallelAnimation {
139 NumberAnimation { target: shape; property: "opacity"; easing.type: Easing.Linear }
150 NumberAnimation { target: shape; property: "opacity"; easing.type: Easing.Linear }
140 UbuntuNumberAnimation { target: root; properties: "implicitWidth,implicitHeight" }
151 UbuntuNumberAnimation { target: root; properties: "implicitWidth,implicitHeight" }
152+ UbuntuNumberAnimation { target: shape; properties: "width,height" }
141 NumberAnimation {
153 NumberAnimation {
142 targets: [placeholder, activity, errorImage]; property: "opacity";
154 targets: [placeholder, activity, errorImage]; property: "opacity";
143 easing.type: Easing.Linear; duration: UbuntuAnimation.SnapDuration
155 easing.type: Easing.Linear; duration: UbuntuAnimation.SnapDuration
@@ -157,6 +169,7 @@ Item {
157 easing.type: Easing.Linear; duration: UbuntuAnimation.SnapDuration
169 easing.type: Easing.Linear; duration: UbuntuAnimation.SnapDuration
158 }
170 }
159 UbuntuNumberAnimation { target: root; properties: "implicitWidth,implicitHeight" }
171 UbuntuNumberAnimation { target: root; properties: "implicitWidth,implicitHeight" }
172+ UbuntuNumberAnimation { target: shape; properties: "width,height" }
160 }
173 }
161 PropertyAction { target: shape; property: "visible" }
174 PropertyAction { target: shape; property: "visible" }
162 }
175 }
Components/ResponsiveGridView.qml+2
@@ -39,6 +39,8 @@ Item {
39 readonly property alias flicking: gridView.flicking
39 readonly property alias flicking: gridView.flicking
40 readonly property alias moving: gridView.moving
40 readonly property alias moving: gridView.moving
41 readonly property alias pressDelay: gridView.pressDelay
41 readonly property alias pressDelay: gridView.pressDelay
42+ property alias delegateCreationBegin: gridView.delegateCreationBegin
43+ property alias delegateCreationEnd: gridView.delegateCreationEnd
42
44
43 function contentHeightForRows(rows) {
45 function contentHeightForRows(rows) {
44 return rows * cellHeight + verticalSpacing
46 return rows * cellHeight + verticalSpacing
Components/Tile.qml+6−63
@@ -18,70 +18,13 @@ import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19
19
20AbstractButton {
20AbstractButton {
21− id: root
22− property alias source: image.source
21+ property url source
23− property alias fillMode: image.fillMode
22+ property int fillMode: Image.PreserveAspectCrop
24− property alias horizontalAlignment: image.horizontalAlignment
23+ property int horizontalAlignment: Text.AlignHCenter
25− property alias verticalAlignment: image.verticalAlignment
24+ property string text
26− property alias text: label.text
27 property int imageWidth
25 property int imageWidth
28 property int imageHeight
26 property int imageHeight
27+ property int maximumLineCount: 1
29
28
30− UbuntuShape {
29+ style: TileStyle {}
31− id: icon
32− anchors {
33− top: parent.top
34− horizontalCenter: parent.horizontalCenter
35− }
36− radius: "medium"
37− width: imageWidth
38− height: imageHeight
39− image: Image {
40− id: image
41− objectName: "image"
42− sourceSize { width: icon.width; height: icon.height }
43− asynchronous: true
44− cache: false
45− }
46− }
47−
48− UbuntuShape {
49− id: borderPressed
50− objectName: "borderPressed"
51−
52− anchors.fill: icon
53− radius: "medium"
54− borderSource: "radius_pressed.sci"
55− opacity: root.pressed ? 1.0 : 0.0
56− Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
57− }
58−
59− Item {
60− anchors {
61− left: parent.left
62− right: parent.right
63− top: icon.bottom
64− }
65− height: units.gu(2)
66−
67− Label {
68− id: label
69− objectName: "label"
70− anchors {
71− baseline: parent.bottom
72− left: parent.left
73− right: parent.right
74− leftMargin: units.gu(1)
75− rightMargin: units.gu(1)
76− }
77−
78− color: Theme.palette.selected.backgroundText
79− opacity: 0.9
80− style: Text.Raised
81− styleColor: "black"
82− fontSize: "small"
83− elide: Text.ElideMiddle
84− horizontalAlignment: Text.AlignHCenter
85− }
86− }
87}
30}
Components/TileStyle.qmlnew file+81
@@ -0,0 +1,81 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Ubuntu.Components 0.1
19+
20+Item {
21+ id: tile
22+
23+ anchors.fill: parent
24+
25+ UbuntuShape {
26+ id: icon
27+ anchors {
28+ top: parent.top
29+ horizontalCenter: parent.horizontalCenter
30+ }
31+ radius: "medium"
32+ width: styledItem.imageWidth
33+ height: styledItem.imageHeight
34+ image: Image {
35+ id: image
36+ objectName: "image"
37+ sourceSize { width: icon.width; height: icon.height }
38+ asynchronous: true
39+ cache: false
40+ source: styledItem.source
41+ fillMode: styledItem.fillMode
42+ horizontalAlignment: Image.AlignHCenter
43+ verticalAlignment: Image.AlignVCenter
44+ }
45+ }
46+
47+ UbuntuShape {
48+ id: borderPressed
49+ objectName: "borderPressed"
50+
51+ anchors.fill: icon
52+ radius: "medium"
53+ borderSource: "radius_pressed.sci"
54+ opacity: styledItem.pressed ? 1.0 : 0.0
55+ Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
56+ }
57+
58+ Label {
59+ id: label
60+ objectName: "label"
61+ anchors {
62+ baseline: icon.bottom
63+ baselineOffset: units.gu(2)
64+ left: parent.left
65+ right: parent.right
66+ leftMargin: units.gu(1)
67+ rightMargin: units.gu(1)
68+ }
69+
70+ color: Theme.palette.selected.backgroundText
71+ opacity: 0.9
72+ style: Text.Raised
73+ styleColor: "black"
74+ fontSize: "small"
75+ elide: Text.ElideMiddle
76+ horizontalAlignment: styledItem.horizontalAlignment
77+ text: styledItem.text
78+ wrapMode: Text.Wrap
79+ maximumLineCount: styledItem.maximumLineCount
80+ }
81+}
Components/VolumeControl.qml+1−1
@@ -28,7 +28,7 @@ Item {
28 busName: "com.canonical.indicator.sound"
28 busName: "com.canonical.indicator.sound"
29 objectPath: "/com/canonical/indicator/sound"
29 objectPath: "/com/canonical/indicator/sound"
30
30
31− property variant actionObject: action("scroll")
31+ property variant actionObject: action("volume")
32 }
32 }
33
33
34 function volumeUp() {
34 function volumeUp() {
Dash/Apps/AppsAvailableForDownloadModel.qmldeleted−81
@@ -1,81 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import "../../Applications"
19−
20−ListModel {
21− ListElement {
22− uri: "application://evernote.desktop"
23− icon: "../../graphics/applicationIcons/evernote.png"
24− category: 0
25− mimetype: "application/x-desktop"
26− title: "Evernote"
27− comment: ""
28− dndUri: "file:///usr/share/applications/evernote.desktop"
29− metadata: ""
30− }
31− ListElement {
32− uri: "application://map.desktop"
33− icon: "../../graphics/applicationIcons/map.png"
34− category: 0
35− mimetype: "application/x-desktop"
36− title: "Map"
37− comment: ""
38− dndUri: "file:///usr/share/applications/map.desktop"
39− metadata: ""
40− }
41− ListElement {
42− uri: "application://pinterest.desktop"
43− icon: "../../graphics/applicationIcons/pinterest.png"
44− category: 0
45− mimetype: "application/x-desktop"
46− title: "Pinterest"
47− comment: ""
48− dndUri: "file:///usr/share/applications/pinterest.desktop"
49− metadata: ""
50− }
51− ListElement {
52− uri: "application://soundcloud.desktop"
53− icon: "../../graphics/applicationIcons/soundcloud.png"
54− category: 0
55− mimetype: "application/x-desktop"
56− title: "Soundcloud"
57− comment: ""
58− dndUri: "file:///usr/share/applications/soundcloud.desktop"
59− metadata: ""
60− }
61− ListElement {
62− uri: "application://wikipedia.desktop"
63− icon: "../../graphics/applicationIcons/wikipedia.png"
64− category: 0
65− mimetype: "application/x-desktop"
66− title: "Wikipedia"
67− comment: ""
68− dndUri: "file:///usr/share/applications/wikipedia.desktop"
69− metadata: ""
70− }
71− ListElement {
72− uri: "application://youtube.desktop"
73− icon: "../../graphics/applicationIcons/youtube.png"
74− category: 0
75− mimetype: "application/x-desktop"
76− title: "Youtube"
77− comment: ""
78− dndUri: "file:///usr/share/applications/youtube.desktop"
79− metadata: ""
80− }
81−}
Dash/Apps/DashPluginFilterGrid.qmlnew file+49
@@ -0,0 +1,49 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Ubuntu.Components 0.1
19+import "../../Components"
20+import "../Generic"
21+
22+GenericFilterGrid {
23+ id: filtergrid
24+
25+ delegate: Tile {
26+ id: tile
27+ objectName: "delegate" + index
28+ width: filtergrid.cellWidth
29+ height: filtergrid.cellHeight
30+ text: model.title
31+ imageWidth: filtergrid.iconWidth
32+ imageHeight: filtergrid.iconHeight
33+ source: model.icon
34+
35+ style: FlatTileStyle {
36+ disabled: model.rendererHints['scope_disabled'] === 1;
37+ }
38+
39+ onClicked: {
40+ var data = { model: model }
41+ filtergrid.clicked(index, data, tile.y)
42+ }
43+
44+ onPressAndHold: {
45+ var data = { model: model }
46+ filtergrid.pressAndHold(index, data, tile.y)
47+ }
48+ }
49+}
Dash/Apps/FrequentlyUsedAppsModel.qml+4−4
@@ -68,13 +68,13 @@ ListModel {
68 metadata: ""
68 metadata: ""
69 }
69 }
70 ListElement {
70 ListElement {
71− uri: "application:///usr/share/applications/facebook-webapp.desktop"
71+ uri: "appid://com.ubuntu.developer.webapps.webapp-facebook/webapp-facebook/current-user-version"
72 icon: "../../graphics/applicationIcons/facebook.png"
72 icon: "../../graphics/applicationIcons/facebook.png"
73 category: 0
73 category: 0
74 mimetype: "application/x-desktop"
74 mimetype: "application/x-desktop"
75 title: "Facebook"
75 title: "Facebook"
76 comment: ""
76 comment: ""
77− dndUri: "file:///usr/share/applications/facebook-webapp.desktop"
77+ dndUri: "appid://com.ubuntu.developer.webapps.webapp-facebook/webapp-facebook/current-user-version"
78 metadata: ""
78 metadata: ""
79 }
79 }
80 ListElement {
80 ListElement {
@@ -88,13 +88,13 @@ ListModel {
88 metadata: ""
88 metadata: ""
89 }
89 }
90 ListElement {
90 ListElement {
91− uri: "application:///usr/share/applications/gmail-webapp.desktop"
91+ uri: "appid://com.ubuntu.developer.webapps.webapp-gmail/webapp-gmail/current-user-version"
92 icon: "../../graphics/applicationIcons/gmail.png"
92 icon: "../../graphics/applicationIcons/gmail.png"
93 category: 0
93 category: 0
94 mimetype: "application/x-desktop"
94 mimetype: "application/x-desktop"
95 title: "GMail"
95 title: "GMail"
96 comment: ""
96 comment: ""
97− dndUri: "file:///usr/share/applications/gmail-webapp.desktop"
97+ dndUri: "appid://com.ubuntu.developer.webapps.webapp-gmail/webapp-gmail/current-user-version"
98 metadata: ""
98 metadata: ""
99 }
99 }
100 ListElement {
100 ListElement {
Dash/Apps/RunningApplicationTile.qml+2−2
@@ -124,8 +124,8 @@ AbstractButton {
124
124
125 CloseIcon {
125 CloseIcon {
126 anchors {
126 anchors {
127− right: shapedApplicationImage.right
127+ left: shapedApplicationImage.left
128− rightMargin: -units.gu(1)
128+ leftMargin: -units.gu(1)
129 top: parent.top
129 top: parent.top
130 topMargin: -units.gu(1)
130 topMargin: -units.gu(1)
131 }
131 }
Dash/Dash.qml+3
@@ -22,6 +22,9 @@ import "../Components"
22
22
23Showable {
23Showable {
24 id: dash
24 id: dash
25+ objectName: "dash"
26+
27+ visible: shown
25
28
26 property alias contentProgress: dashContent.contentProgress
29 property alias contentProgress: dashContent.contentProgress
27 property string showScopeOnLoaded: "home.scope"
30 property string showScopeOnLoaded: "home.scope"
Dash/DashContent.qml+6−6
@@ -83,7 +83,7 @@ Item {
83 id: dashContentList
83 id: dashContentList
84 objectName: "dashContentList"
84 objectName: "dashContentList"
85
85
86− interactive: dashContent.scopes.loaded
86+ interactive: dashContent.scopes.loaded && !currentItem.previewShown && !currentItem.moving
87
87
88 anchors.fill: parent
88 anchors.fill: parent
89 model: dashContent.model
89 model: dashContent.model
@@ -116,6 +116,9 @@ Item {
116 source: scopeMapper.map(scope.id)
116 source: scopeMapper.map(scope.id)
117 objectName: scope.id + " loader"
117 objectName: scope.id + " loader"
118
118
119+ readonly property bool previewShown: item.previewShown
120+ readonly property bool moving: item.moving
121+
119 // these are needed for autopilot tests
122 // these are needed for autopilot tests
120 readonly property string scopeId: scope.id
123 readonly property string scopeId: scope.id
121 readonly property bool isCurrent: ListView.isCurrentItem
124 readonly property bool isCurrent: ListView.isCurrentItem
@@ -123,7 +126,7 @@ Item {
123
126
124 onLoaded: {
127 onLoaded: {
125 item.scope = Qt.binding(function() { return scope })
128 item.scope = Qt.binding(function() { return scope })
126− item.isCurrent = Qt.binding(function() { return ListView.isCurrentItem })
129+ item.isCurrent = Qt.binding(function() { return visible && ListView.isCurrentItem })
127 item.searchHistory = Qt.binding(function() { return shell.searchHistory })
130 item.searchHistory = Qt.binding(function() { return shell.searchHistory })
128 dashContentList.movementStarted.connect(item.movementStarted)
131 dashContentList.movementStarted.connect(item.movementStarted)
129 dashContent.positionedAtBeginning.connect(item.positionedAtBeginning)
132 dashContent.positionedAtBeginning.connect(item.positionedAtBeginning)
@@ -135,10 +138,7 @@ Item {
135 onEndReached: contentEndReached()
138 onEndReached: contentEndReached()
136 onPreviewShownChanged: {
139 onPreviewShownChanged: {
137 if (item.previewShown) {
140 if (item.previewShown) {
138− previewShown()
141+ dashContent.previewShown()
139− dashContentList.interactive = false
140− } else {
141− dashContentList.interactive = true
142 }
142 }
143 }
143 }
144 }
144 }
Dash/DashMusic.qmldeleted−96
@@ -1,96 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−import "../Components"
20−import "../Components/ListItems" as ListItems
21−import "Music"
22−
23−ScopeView {
24− id: scopeView
25−
26− property var categoryNames: [
27− i18n.tr("Featured"),
28− i18n.tr("Recent"),
29− i18n.tr("New Releases"),
30− i18n.tr("Top Charting")
31− ]
32−
33− onIsCurrentChanged: {
34− pageHeader.resetSearch();
35− }
36−
37− onMovementStarted: categoryView.showHeader()
38−
39− Binding {
40− target: scopeView.scope
41− property: "searchQuery"
42− value: pageHeader.searchQuery
43− }
44−
45− Connections {
46− target: panel
47− onSearchClicked: if (isCurrent) {
48− pageHeader.triggerSearch()
49− categoryView.showHeader()
50− }
51− }
52−
53− function getRenderer(categoryId) {
54− switch (categoryId) {
55− case "featured": return "Music/MusicCarousel.qml"
56− default: return "Music/MusicFilterGrid.qml"
57− }
58− }
59−
60− ScopeListView {
61− id: categoryView
62− anchors.fill: parent
63− model: scopeView.categories
64−
65− onAtYEndChanged: if (atYEnd) endReached()
66− onMovingChanged: if (moving && atYEnd) endReached()
67−
68− delegate: ListItems.Base {
69− id: base
70− highlightWhenPressed: false
71−
72− property string categoryId: model.categoryId
73−
74− Loader {
75− anchors { top: parent.top; left: parent.left; right: parent.right }
76− source: scopeView.getRenderer(base.categoryId)
77− onLoaded: {
78− item.model = results
79− }
80− }
81− }
82−
83− sectionProperty: "name"
84− sectionDelegate: ListItems.Header {
85− width: categoryView.width
86− text: i18n.tr(section)
87− }
88− pageHeader: PageHeader {
89− id: pageHeader
90− width: categoryView.width
91− text: i18n.tr("Music")
92− searchEntryEnabled: true
93− searchHistory: scopeView.searchHistory
94− }
95− }
96−}
Dash/DashVideos.qmldeleted−201
@@ -1,201 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−import "../Components"
20−import "../Components/ListItems" as ListItems
21−import "Video"
22−
23−ScopeView {
24− id: scopeView
25− property alias previewShown: previewLoader.onScreen
26−
27− property var categoryNames: [
28− i18n.tr("Featured"),
29− i18n.tr("Recent"),
30− i18n.tr("New Releases"),
31− i18n.tr("Popular Online")
32− ]
33−
34− onIsCurrentChanged: {
35− pageHeader.resetSearch();
36− }
37−
38− onMovementStarted: categoryView.showHeader()
39−
40− Binding {
41− target: scopeView.scope
42− property: "searchQuery"
43− value: pageHeader.searchQuery
44− }
45−
46− Connections {
47− target: panel
48− onSearchClicked: if (isCurrent) {
49− pageHeader.triggerSearch()
50− categoryView.showHeader()
51− }
52− }
53−
54− function getRenderer(categoryId) {
55− switch (categoryId) {
56− case "featured": return "Video/VideosCarousel.qml"
57− default: return "Video/VideosFilterGrid.qml"
58− }
59− }
60−
61− OpenEffect {
62− id: effect
63− anchors {
64− fill: parent
65− bottomMargin: -bottomOverflow
66− }
67− sourceItem: categoryView
68−
69− enabled: gap > 0.0
70−
71− topGapPx: (1 - gap) * positionPx
72− topOpacity: Math.max(0, (1 - gap * 1.2))
73− bottomGapPx: positionPx + gap * (targetBottomGapPx - positionPx)
74− bottomOverflow: units.gu(6)
75− bottomOpacity: 1 - (gap * 0.8)
76−
77− property int targetBottomGapPx: height - units.gu(8) - bottomOverflow
78− property real gap: previewLoader.open ? 1.0 : 0.0
79−
80− Behavior on gap {
81− NumberAnimation {
82− duration: 200
83− easing.type: Easing.InOutQuad
84− onRunningChanged: {
85− if (!previewLoader.open && !running) {
86− previewLoader.onScreen = false;
87− }
88− }
89− }
90− }
91− }
92−
93− ScopeListView {
94− id: categoryView
95− anchors.fill: parent
96− model: scopeView.categories
97− forceNoClip: previewLoader.onScreen
98−
99− onAtYEndChanged: if (atYEnd) endReached()
100− onMovingChanged: if (moving && atYEnd) endReached()
101−
102− delegate: ListItems.Base {
103− id: base
104− highlightWhenPressed: false
105− property string categoryId: model.categoryId
106−
107− Loader {
108− id: loader
109− anchors { top: parent.top; left: parent.left; right: parent.right }
110− source: scopeView.getRenderer(base.categoryId)
111− onLoaded: {
112− item.model = results
113− }
114−
115− Connections {
116− target: loader.item
117− onClicked: {
118− var dataItem;
119− // VideosCarousel and VideosFilterGrid have different
120− // clicked signals, accomodate for that
121− if (categoryId == "featured") {
122− var fileUri = delegateItem.model.uri.replace(/^[^:]+:/, "")
123− dataItem = {fileUri: fileUri, nfoUri: delegateItem.model.comment}
124− } else {
125− dataItem = data;
126− }
127− if (dataItem.nfoUri != "") {
128− previewLoader.videoData = dataItem;
129− previewLoader.open = true;
130− effect.positionPx = mapToItem(categoryView, 0, itemY).y;
131− }
132− }
133− }
134− }
135− }
136−
137− sectionProperty: "name"
138− sectionDelegate: ListItems.Header {
139− width: categoryView.width
140− text: i18n.tr(section)
141− }
142−
143− pageHeader: PageHeader {
144− id: pageHeader
145− width: categoryView.width
146− text: i18n.tr("Videos")
147− searchEntryEnabled: true
148− searchHistory: scopeView.searchHistory
149− }
150− }
151−
152− Loader {
153− id: previewLoader
154− height: effect.bottomGapPx - effect.topGapPx
155− anchors {
156− top: parent.top
157− topMargin: effect.topGapPx
158− left: parent.left
159− right: parent.right
160− }
161− sourceComponent: onScreen ? previewComponent : undefined
162−
163− property bool open: false
164− property bool onScreen: false
165− property var videoData
166−
167−
168− onOpenChanged: {
169− if (open) {
170− onScreen = true;
171− }
172− }
173−
174− onLoaded: {
175− item.item = videoData;
176− }
177− }
178−
179− Component {
180− id: previewComponent
181−
182− VideoPreview {
183− id: preview
184− anchors.fill: parent
185− onClose: open = false;
186− }
187− }
188−
189− // TODO: Move as InverseMouseArea to DashPreview
190− MouseArea {
191− enabled: previewLoader.onScreen
192− anchors {
193− fill: parent
194− topMargin: effect.bottomGapPx
195− }
196− onClicked: {
197− previewLoader.open = false;
198− }
199− }
200−
201−}
Dash/Generic/FlatTileStyle.qmlnew file+79
@@ -0,0 +1,79 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Ubuntu.Components 0.1
19+
20+Item {
21+ id: tile
22+
23+ property bool disabled: false
24+
25+ anchors.fill: parent
26+
27+ Image {
28+ id: icon
29+ objectName: "image"
30+ width: styledItem.imageWidth
31+ height: styledItem.imageHeight
32+
33+ anchors.horizontalCenter: parent.horizontalCenter
34+
35+ sourceSize { width: width; height: height }
36+ asynchronous: true
37+ cache: false
38+ source: styledItem.source
39+ fillMode: styledItem.fillMode
40+ opacity: tile.disabled ? 0.3 : 1.0
41+ horizontalAlignment: Image.AlignHCenter
42+ verticalAlignment: Image.AlignVCenter
43+ }
44+
45+ UbuntuShape {
46+ id: borderPressed
47+ objectName: "borderPressed"
48+
49+ anchors.fill: icon
50+ radius: "medium"
51+ borderSource: "radius_pressed.sci"
52+ opacity: styledItem.pressed ? 1.0 : 0.0
53+ Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
54+ }
55+
56+ Label {
57+ id: label
58+ objectName: "label"
59+ anchors {
60+ baseline: icon.bottom
61+ baselineOffset: units.gu(2)
62+ left: parent.left
63+ right: parent.right
64+ leftMargin: units.gu(1)
65+ rightMargin: units.gu(1)
66+ }
67+
68+ color: Theme.palette.selected.backgroundText
69+ opacity: 0.9
70+ style: Text.Raised
71+ styleColor: "black"
72+ fontSize: "small"
73+ elide: Text.ElideMiddle
74+ horizontalAlignment: styledItem.horizontalAlignment
75+ text: styledItem.text
76+ wrapMode: Text.Wrap
77+ maximumLineCount: styledItem.maximumLineCount
78+ }
79+}
Dash/Generic/GenericFilterGrid.qml−3
@@ -39,11 +39,8 @@ FilterGrid {
39 text: model.title
39 text: model.title
40 imageWidth: filtergrid.iconWidth
40 imageWidth: filtergrid.iconWidth
41 imageHeight: filtergrid.iconHeight
41 imageHeight: filtergrid.iconHeight
42−
43 source: model.icon
42 source: model.icon
44
43
45− fillMode: Image.PreserveAspectCrop
46−
47 onClicked: {
44 onClicked: {
48 var data = { model: model }
45 var data = { model: model }
49 filtergrid.clicked(index, data, tile.y)
46 filtergrid.clicked(index, data, tile.y)
Dash/Generic/GenericPreview.qml+1−1
@@ -125,7 +125,7 @@ DashPreview {
125 fontSize: "small"
125 fontSize: "small"
126 opacity: 0.6
126 opacity: 0.6
127 color: "white"
127 color: "white"
128− text: previewData.description.replace(/[\r\n]+/g, "<br />")
128+ text: previewData.description.replace(/[\r\n]/g, "<br />")
129 style: Text.Raised
129 style: Text.Raised
130 styleColor: "black"
130 styleColor: "black"
131 wrapMode: Text.WordWrap
131 wrapMode: Text.WordWrap
Dash/Generic/WeatherFilterGrid.qmlnew file+49
@@ -0,0 +1,49 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Ubuntu.Components 0.1
19+import "../../Components"
20+
21+GenericFilterGrid {
22+ id: filtergrid
23+
24+ delegateHeight: units.gu(11.5)
25+
26+ delegate: Tile {
27+ id: tile
28+ objectName: "delegate" + index
29+ width: filtergrid.cellWidth
30+ height: filtergrid.cellHeight
31+ text: model.title
32+ imageWidth: filtergrid.iconWidth
33+ imageHeight: filtergrid.iconHeight
34+ source: model.icon
35+ maximumLineCount: 2
36+
37+ style: FlatTileStyle {}
38+
39+ onClicked: {
40+ var data = { model: model }
41+ filtergrid.clicked(index, data, tile.y)
42+ }
43+
44+ onPressAndHold: {
45+ var data = { model: model }
46+ filtergrid.pressAndHold(index, data, tile.y)
47+ }
48+ }
49+}
Dash/GenericScopeView.qml+40−1
@@ -24,6 +24,8 @@ ScopeView {
24 readonly property alias previewShown: previewLoader.onScreen
24 readonly property alias previewShown: previewLoader.onScreen
25 property bool enableHeightBehaviorOnNextCreation: false
25 property bool enableHeightBehaviorOnNextCreation: false
26
26
27+ moving: categoryView.moving
28+
27 onIsCurrentChanged: {
29 onIsCurrentChanged: {
28 pageHeader.resetSearch();
30 pageHeader.resetSearch();
29 previewLoader.open = false;
31 previewLoader.open = false;
@@ -73,6 +75,7 @@ ScopeView {
73 property string expandedCategoryId: ""
75 property string expandedCategoryId: ""
74
76
75 delegate: ListItems.Base {
77 delegate: ListItems.Base {
78+ id: baseItem
76 highlightWhenPressed: false
79 highlightWhenPressed: false
77
80
78 readonly property bool expandable: rendererLoader.item ? rendererLoader.item.expandable : false
81 readonly property bool expandable: rendererLoader.item ? rendererLoader.item.expandable : false
@@ -98,6 +101,7 @@ ScopeView {
98 // TODO: the running apps grid doesn't support standard scope results model yet
101 // TODO: the running apps grid doesn't support standard scope results model yet
99 item.firstModel = Qt.binding(function() { return results.firstModel })
102 item.firstModel = Qt.binding(function() { return results.firstModel })
100 item.secondModel = Qt.binding(function() { return results.secondModel })
103 item.secondModel = Qt.binding(function() { return results.secondModel })
104+ item.canEnableTerminationMode = Qt.binding(function() { return scopeView.isCurrent })
101 } else {
105 } else {
102 item.model = Qt.binding(function() { return results })
106 item.model = Qt.binding(function() { return results })
103 }
107 }
@@ -108,6 +112,7 @@ ScopeView {
108 item.filter = shouldFilter;
112 item.filter = shouldFilter;
109 }
113 }
110 }
114 }
115+ updateDelegateCreationRange();
111 }
116 }
112
117
113 Component.onDestruction: {
118 Component.onDestruction: {
@@ -164,6 +169,33 @@ ScopeView {
164 }
169 }
165 }
170 }
166 }
171 }
172+ onContentYChanged: rendererLoader.updateDelegateCreationRange();
173+ onHeightChanged: rendererLoader.updateDelegateCreationRange();
174+ }
175+
176+ function updateDelegateCreationRange() {
177+ // Do not update the range if we are overshooting up or down, since we'll come back
178+ // to the stable position and delete/create items without any reason
179+ if (categoryView.contentY < categoryView.originY) {
180+ return;
181+ } else if (categoryView.contentY + categoryView.height > categoryView.contentHeight) {
182+ return;
183+ }
184+
185+ if (item.hasOwnProperty("delegateCreationBegin")) {
186+ if (baseItem.y + baseItem.height <= 0) {
187+ // Not visible (item at top of the list)
188+ item.delegateCreationBegin = baseItem.height
189+ item.delegateCreationEnd = baseItem.height
190+ } else if (baseItem.y >= categoryView.height) {
191+ // Not visible (item at bottom of the list)
192+ item.delegateCreationBegin = 0
193+ item.delegateCreationEnd = 0
194+ } else {
195+ item.delegateCreationBegin = Math.max(-baseItem.y, 0)
196+ item.delegateCreationEnd = Math.min(categoryView.height + item.delegateCreationBegin, baseItem.height)
197+ }
198+ }
167 }
199 }
168 }
200 }
169 }
201 }
@@ -208,8 +240,15 @@ ScopeView {
208 switch (rendererId) {
240 switch (rendererId) {
209 case "grid": {
241 case "grid": {
210 switch (contentType) {
242 switch (contentType) {
211− case "video": return "Generic/GenericFilterGridPotrait.qml";
243+ case "video": return "Video/VideoFilterGrid.qml";
212 case "music": return "Music/MusicFilterGrid.qml";
244 case "music": return "Music/MusicFilterGrid.qml";
245+ case "apps": {
246+ if (rendererHint == "toggled")
247+ return "Apps/DashPluginFilterGrid.qml";
248+ else
249+ return "Generic/GenericFilterGrid.qml";
250+ }
251+ case "weather": return "Generic/WeatherFilterGrid.qml";
213 default: return "Generic/GenericFilterGrid.qml";
252 default: return "Generic/GenericFilterGrid.qml";
214 }
253 }
215 }
254 }
Dash/Music/MusicFilterGrid.qml+21−22
@@ -16,42 +16,41 @@
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18import "../../Components"
18import "../../Components"
19+import "../Generic"
19
20
20−FilterGrid {
21+GenericFilterGrid {
21− id: filterGrid
22+ id: filtergrid
22
23
23− minimumHorizontalSpacing: units.gu(2)
24− maximumNumberOfColumns: 5
25− delegateWidth: units.gu(17)
24+ delegateWidth: units.gu(11)
26− delegateHeight: iconHeight + units.gu(3.5)
25+ delegateHeight: units.gu(16)
27− verticalSpacing: units.gu(2)
28
26
29− readonly property int iconWidth: (width / columns) * 0.8
27+ iconWidth: units.gu(11)
30− readonly property int iconHeight: iconWidth
28+ iconHeight: units.gu(11)
31
29
32− signal clicked(int index, var delegateItem, real itemY)
33− signal pressAndHold(int index, var delegateItem, real itemY)
34−
35− delegate: AlbumTile {
30+ delegate: Tile {
36 id: tile
31 id: tile
37 objectName: "delegate" + index
32 objectName: "delegate" + index
38− width: filterGrid.cellWidth
33+ width: filtergrid.cellWidth
39− height: filterGrid.cellHeight
34+ height: filtergrid.cellHeight
40− iconWidth: filterGrid.iconWidth
41− iconHeight: filterGrid.iconHeight
42−
43− artist: model.title
44− album: model.comment
35+ text: model.comment
36+ imageWidth: filtergrid.iconWidth
37+ imageHeight: filtergrid.iconHeight
45 source: model.icon
38 source: model.icon
39+ maximumLineCount: 2
40+ horizontalAlignment: Text.AlignLeft
41+
42+ style: MusicTileStyle {
43+ artist: model.title
44+ }
46
45
47 onClicked: {
46 onClicked: {
48 var data = { model: model }
47 var data = { model: model }
49− filterGrid.clicked(index, data, tile.y)
48+ filtergrid.clicked(index, data, tile.y)
50 }
49 }
51
50
52 onPressAndHold: {
51 onPressAndHold: {
53 var data = { model: model }
52 var data = { model: model }
54− filterGrid.pressAndHold(index, data, tile.y)
53+ filtergrid.pressAndHold(index, data, tile.y)
55 }
54 }
56 }
55 }
57}
56}
Dash/Music/MusicTileStyle.qmlnew file+101
@@ -0,0 +1,101 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Ubuntu.Components 0.1
19+
20+Item {
21+ id: tile
22+
23+ property alias artist: artistLabel.text
24+
25+ anchors.fill: parent
26+
27+ UbuntuShape {
28+ id: icon
29+ anchors {
30+ top: parent.top
31+ horizontalCenter: parent.horizontalCenter
32+ }
33+ radius: "medium"
34+ width: styledItem.imageWidth
35+ height: styledItem.imageHeight
36+ image: Image {
37+ id: image
38+ objectName: "image"
39+ sourceSize { width: icon.width; height: icon.height }
40+ asynchronous: true
41+ cache: false
42+ source: styledItem.source
43+ fillMode: styledItem.fillMode
44+ horizontalAlignment: Image.AlignHCenter
45+ verticalAlignment: Image.AlignVCenter
46+ }
47+ }
48+
49+ UbuntuShape {
50+ id: borderPressed
51+ objectName: "borderPressed"
52+
53+ anchors.fill: icon
54+ radius: "medium"
55+ borderSource: "radius_pressed.sci"
56+ opacity: styledItem.pressed ? 1.0 : 0.0
57+ Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
58+ }
59+
60+ Label {
61+ id: label
62+ objectName: "label"
63+ anchors {
64+ baseline: icon.bottom
65+ baselineOffset: units.gu(2)
66+ left: icon.left
67+ right: parent.right
68+ rightMargin: units.gu(1)
69+ }
70+
71+ color: Theme.palette.selected.backgroundText
72+ opacity: 0.9
73+ style: Text.Raised
74+ styleColor: "black"
75+ fontSize: "small"
76+ font.weight: Font.Bold
77+ elide: Text.ElideRight
78+ horizontalAlignment: styledItem.horizontalAlignment
79+ text: styledItem.text
80+ wrapMode: Text.Wrap
81+ maximumLineCount: styledItem.maximumLineCount
82+ }
83+
84+ Label {
85+ id: artistLabel
86+ anchors {
87+ top: label.bottom
88+ left: label.left
89+ right: label.right
90+ rightMargin: units.gu(1)
91+ }
92+
93+ color: Theme.palette.selected.backgroundText
94+ opacity: 0.9
95+ style: Text.Raised
96+ styleColor: "black"
97+ fontSize: "x-small"
98+ elide: Text.ElideMiddle
99+ horizontalAlignment: styledItem.horizontalAlignment
100+ }
101+}
Dash/ScopeDelegateMapper.qml+2−4
@@ -17,10 +17,8 @@
17import QtQuick 2.0
17import QtQuick 2.0
18
18
19QtObject {
19QtObject {
20− property var scopeDelegateMapping: {"mockmusicmaster.scope": "DashMusic.qml",
21− "applications.scope": "DashApps.qml",
20+ property var scopeDelegateMapping: {"applications.scope": "DashApps.qml",
22− "home.scope": "DashHome.qml",
21+ "home.scope": "DashHome.qml"
23− "mockvideosmaster.scope": "DashVideos.qml"
24 }
22 }
25 property string genericScope: "GenericScopeView.qml"
23 property string genericScope: "GenericScopeView.qml"
26
24
Dash/ScopeView.qml+12−3
@@ -23,6 +23,7 @@ FocusScope {
23 property SortFilterProxyModel categories: categoryFilter
23 property SortFilterProxyModel categories: categoryFilter
24 property bool isCurrent
24 property bool isCurrent
25 property ListModel searchHistory
25 property ListModel searchHistory
26+ property bool moving: false
26
27
27 signal endReached
28 signal endReached
28 signal movementStarted
29 signal movementStarted
@@ -31,14 +32,22 @@ FocusScope {
31 // FIXME delay the search so that daemons have time to settle, note that
32 // FIXME delay the search so that daemons have time to settle, note that
32 // removing this will break ScopeView::test_changeScope
33 // removing this will break ScopeView::test_changeScope
33 onScopeChanged: {
34 onScopeChanged: {
35+ if (scope) {
34− timer.restart();
36+ timer.restart();
35− scope.activateApplication.connect(activateApp);
37+ scope.activateApplication.connect(activateApp);
38+ }
36 }
39 }
37
40
38 function activateApp(desktopFilePath) {
41 function activateApp(desktopFilePath) {
39 shell.activateApplication(desktopFilePath);
42 shell.activateApplication(desktopFilePath);
40 }
43 }
41
44
45+ Binding {
46+ target: scope
47+ property: "isActive"
48+ value: isCurrent
49+ }
50+
42 Timer {
51 Timer {
43 id: timer
52 id: timer
44 interval: 2000
53 interval: 2000
@@ -47,7 +56,7 @@ FocusScope {
47
56
48 SortFilterProxyModel {
57 SortFilterProxyModel {
49 id: categoryFilter
58 id: categoryFilter
50− model: scope.categories
59+ model: scope ? scope.categories : null
51 dynamicSortFilter: true
60 dynamicSortFilter: true
52 filterRole: Categories.RoleCount
61 filterRole: Categories.RoleCount
53 filterRegExp: /^0$/
62 filterRegExp: /^0$/
Dash/Video/VideosFilterGrid.qml → Dash/Video/VideoFilterGrid.qmlrenamed+17−13
@@ -16,20 +16,16 @@
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18import "../../Components"
18import "../../Components"
19+import "../Generic"
19
20
20−FilterGrid {
21+GenericFilterGrid {
21 id: filtergrid
22 id: filtergrid
22
23
23− minimumHorizontalSpacing: units.gu(0.5)
24− maximumNumberOfColumns: 5
25 delegateWidth: units.gu(11)
24 delegateWidth: units.gu(11)
26− delegateHeight: iconHeight + units.gu(2.5)
25+ delegateHeight: units.gu(15)
27− verticalSpacing: units.gu(2)
28
26
29− readonly property int iconWidth: (width / columns) * 0.8
27+ iconWidth: units.gu(11)
30− readonly property int iconHeight: iconWidth * 16 / 11
28+ iconHeight: units.gu(11)
31−
32− signal clicked(int index, var data, real itemY)
33
29
34 delegate: Tile {
30 delegate: Tile {
35 id: tile
31 id: tile
@@ -40,11 +36,19 @@ FilterGrid {
40 imageWidth: filtergrid.iconWidth
36 imageWidth: filtergrid.iconWidth
41 imageHeight: filtergrid.iconHeight
37 imageHeight: filtergrid.iconHeight
42 source: model.icon
38 source: model.icon
43− fillMode: Image.PreserveAspectCrop
39+ maximumLineCount: 2
40+ horizontalAlignment: Text.AlignLeft
41+
42+ style: VideoTileStyle {}
43+
44 onClicked: {
44 onClicked: {
45− var fileUri = model.uri.replace(/^[^:]+:/, "")
45+ var data = { model: model }
46− var data = {fileUri: fileUri, nfoUri: model.comment}
47− filtergrid.clicked(index, data, tile.y);
46+ filtergrid.clicked(index, data, tile.y)
47+ }
48+
49+ onPressAndHold: {
50+ var data = { model: model }
51+ filtergrid.pressAndHold(index, data, tile.y)
48 }
52 }
49 }
53 }
50}
54}
Dash/Video/VideoTileStyle.qmlnew file+86
@@ -0,0 +1,86 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Ubuntu.Components 0.1
19+
20+Item {
21+ id: tile
22+
23+ anchors.fill: parent
24+
25+ Image {
26+ id: icon
27+ anchors {
28+ top: parent.top
29+ horizontalCenter: parent.horizontalCenter
30+ }
31+ width: styledItem.imageWidth
32+ height: styledItem.imageHeight
33+ source: "graphics/movie_icon_holder.png"
34+
35+ Image {
36+ id: image
37+ objectName: "image"
38+ anchors {
39+ fill: parent;
40+ topMargin: units.gu(2);
41+ bottomMargin: units.gu(2)
42+ }
43+ sourceSize { width: icon.width; height: icon.height }
44+ asynchronous: true
45+ cache: false
46+ source: styledItem.source
47+ fillMode: styledItem.fillMode
48+ horizontalAlignment: Image.AlignHCenter
49+ verticalAlignment: Image.AlignVCenter
50+ }
51+ }
52+
53+ UbuntuShape {
54+ id: borderPressed
55+ objectName: "borderPressed"
56+
57+ anchors.fill: icon
58+ radius: "medium"
59+ borderSource: "radius_pressed.sci"
60+ opacity: styledItem.pressed ? 1.0 : 0.0
61+ Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
62+ }
63+
64+ Label {
65+ id: label
66+ objectName: "label"
67+ anchors {
68+ baseline: icon.bottom
69+ baselineOffset: units.gu(2)
70+ left: icon.left
71+ right: parent.right
72+ rightMargin: units.gu(1)
73+ }
74+
75+ color: Theme.palette.selected.backgroundText
76+ opacity: 0.9
77+ style: Text.Raised
78+ styleColor: "black"
79+ fontSize: "small"
80+ elide: Text.ElideRight
81+ horizontalAlignment: styledItem.horizontalAlignment
82+ text: styledItem.text
83+ wrapMode: Text.Wrap
84+ maximumLineCount: styledItem.maximumLineCount
85+ }
86+}
Dash/Video/graphics/movie_icon_holder@27.pngnew file

Binary file not shown.

Greeter/PinLockscreen.qml+5
@@ -32,6 +32,8 @@ Column {
32 signal entered(string passphrase)
32 signal entered(string passphrase)
33 signal cancel()
33 signal cancel()
34
34
35+ property bool entryEnabled: true
36+
35 function clear(playAnimation) {
37 function clear(playAnimation) {
36 pinentryField.text = "";
38 pinentryField.text = "";
37 if (playAnimation) {
39 if (playAnimation) {
@@ -140,6 +142,7 @@ Column {
140 width: root.padWidth / 3
142 width: root.padWidth / 3
141 height: root.padHeight / 4
143 height: root.padHeight / 4
142 text: index + 1
144 text: index + 1
145+ enabled: entryEnabled
143
146
144 onClicked: {
147 onClicked: {
145 pinentryField.text = pinentryField.text + text;
148 pinentryField.text = pinentryField.text + text;
@@ -161,6 +164,7 @@ Column {
161 height: root.padHeight / 4
164 height: root.padHeight / 4
162 text: "0"
165 text: "0"
163 onClicked: pinentryField.text = pinentryField.text + text
166 onClicked: pinentryField.text = pinentryField.text + text
167+ enabled: entryEnabled
164 }
168 }
165
169
166 PinPadButton {
170 PinPadButton {
@@ -169,6 +173,7 @@ Column {
169 height: root.padHeight / 4
173 height: root.padHeight / 4
170 iconName: "erase"
174 iconName: "erase"
171 onClicked: pinentryField.text = pinentryField.text.substring(0, pinentryField.text.length-1)
175 onClicked: pinentryField.text = pinentryField.text.substring(0, pinentryField.text.length-1)
176+ enabled: entryEnabled
172 }
177 }
173 }
178 }
174 }
179 }
Notifications/Notification.qml+7−4
@@ -35,8 +35,9 @@ UbuntuShape {
35
35
36 objectName: "background"
36 objectName: "background"
37 implicitHeight: contentColumn.height + contentColumn.spacing * 2
37 implicitHeight: contentColumn.height + contentColumn.spacing * 2
38− color: Qt.rgba(0, 0, 0, 0.85)
38+ color: Qt.rgba(0.132, 0.117, 0.109, 0.97)
39 opacity: 0
39 opacity: 0
40+ radius: "medium"
40
41
41 clip: true
42 clip: true
42
43
@@ -128,6 +129,8 @@ UbuntuShape {
128 id: labelColumn
129 id: labelColumn
129 width: parent.width - x
130 width: parent.width - x
130
131
132+ anchors.verticalCenter: (icon.visible && !bodyLabel.visible) ? icon.verticalCenter : undefined
133+
131 Label {
134 Label {
132 id: summaryLabel
135 id: summaryLabel
133
136
@@ -190,8 +193,8 @@ UbuntuShape {
190 left: parent.left
193 left: parent.left
191 right: parent.right
194 right: parent.right
192 }
195 }
193− visible: notification.type == Notification.SnapDecision
196+ visible: notification.type == Notification.SnapDecision && actionRepeater.count > 0
194− height: units.gu(4)
197+ height: units.gu(5)
195
198
196 property real buttonWidth: (width - contentColumn.spacing) / 2
199 property real buttonWidth: (width - contentColumn.spacing) / 2
197 property bool expanded
200 property bool expanded
@@ -282,7 +285,7 @@ UbuntuShape {
282 }
285 }
283
286
284 text: loader.actionLabel
287 text: loader.actionLabel
285− height: units.gu(4)
288+ height: units.gu(5)
286 gradient: UbuntuColors.greyGradient
289 gradient: UbuntuColors.greyGradient
287 onClicked: notification.notification.invokeAction(loader.actionId)
290 onClicked: notification.notification.invokeAction(loader.actionId)
288 }
291 }
Notifications/NotificationMenuItemFactory.qml+8−9
@@ -41,19 +41,14 @@ Loader {
41 if (component !== undefined) {
41 if (component !== undefined) {
42 return component;
42 return component;
43 }
43 }
44− } else {
45− if (menuData.isSeparator) {
46− return divMenu;
47− }
48 }
44 }
49− return standardMenu;
50 }
45 }
51
46
52 Component {
47 Component {
53 id: textfield
48 id: textfield
54
49
55 Column {
50 Column {
56− spacing: units.gu(.5)
51+ spacing: units.gu(2)
57
52
58 anchors.left: parent.left; anchors.right: parent.right
53 anchors.left: parent.left; anchors.right: parent.right
59
54
@@ -63,8 +58,6 @@ Loader {
63 }
58 }
64
59
65 Label {
60 Label {
66− fontSize: "medium"
67− color: "white"
68 text: menuData.label
61 text: menuData.label
69 }
62 }
70
63
@@ -72,7 +65,7 @@ Loader {
72 id: textfield
65 id: textfield
73
66
74 anchors.left: parent.left; anchors.right: parent.right
67 anchors.left: parent.left; anchors.right: parent.right
75−
68+ height: units.gu(5)
76 onTextChanged: {
69 onTextChanged: {
77 menuModel.changeState(menuIndex, text);
70 menuModel.changeState(menuIndex, text);
78 }
71 }
@@ -85,8 +78,14 @@ Loader {
85 PinLockscreen {
78 PinLockscreen {
86 anchors.left: parent.left; anchors.right: parent.right
79 anchors.left: parent.left; anchors.right: parent.right
87
80
81+ Component.onCompleted: {
82+ menuModel.loadExtendedAttributes(menuIndex, {'x-canonical-pin-length': 'int'});
83+ pinLength = menuData.ext.xCanonicalPinLength;
84+ }
85+
88 onEntered: {
86 onEntered: {
89 menuModel.changeState(menuIndex, passphrase);
87 menuModel.changeState(menuIndex, passphrase);
88+ entryEnabled = false;
90 }
89 }
91
90
92 onCancel: {
91 onCancel: {
Panel/IndicatorRow.qml+51−12
@@ -27,6 +27,8 @@ Item {
27 property alias row: row
27 property alias row: row
28 property QtObject indicatorsModel: null
28 property QtObject indicatorsModel: null
29 property var visibleIndicators: defined
29 property var visibleIndicators: defined
30+ property int overFlowWidth: width
31+ property bool showAll: false
30
32
31 width: units.gu(40)
33 width: units.gu(40)
32 height: units.gu(3)
34 height: units.gu(3)
@@ -42,6 +44,15 @@ Item {
42 }
44 }
43 }
45 }
44
46
47+ Timer {
48+ id: allVisible
49+ interval: 1000
50+
51+ onTriggered: {
52+ showAll = false;
53+ }
54+ }
55+
45 Row {
56 Row {
46 id: row
57 id: row
47
58
@@ -54,16 +65,31 @@ Item {
54 objectName: "rowRepeater"
65 objectName: "rowRepeater"
55 model: indicatorsModel ? indicatorsModel : undefined
66 model: indicatorsModel ? indicatorsModel : undefined
56
67
68+ property int lastCount: 0
69+ onCountChanged: {
70+ if (lastCount < count) {
71+ showAll = true;
72+ allVisible.start();
73+ }
74+ lastCount = count;
75+ }
76+
57 Item {
77 Item {
58 id: itemWrapper
78 id: itemWrapper
59 height: indicatorRow.height
79 height: indicatorRow.height
60 width: indicatorItem.width
80 width: indicatorItem.width
61 visible: indicatorItem.indicatorVisible
81 visible: indicatorItem.indicatorVisible
82+ opacity: 1.0
83+ y: 0
84+ state: "standard"
62
85
63 property int ownIndex: index
86 property int ownIndex: index
64 property alias highlighted: indicatorItem.highlighted
87 property alias highlighted: indicatorItem.highlighted
65 property alias dimmed: indicatorItem.dimmed
88 property alias dimmed: indicatorItem.dimmed
66
89
90+ property bool hidden: !showAll && !indicatorItem.highlighted && (indicatorRow.state == "locked" || indicatorRow.state == "commit")
91+ property bool overflow: row.width - itemWrapper.x > overFlowWidth
92+
67 IndicatorItem {
93 IndicatorItem {
68 id: indicatorItem
94 id: indicatorItem
69 height: parent.height
95 height: parent.height
@@ -87,22 +113,35 @@ Item {
87 }
113 }
88 indicatorRow.visibleIndicators[model.identifier] = indicatorVisible;
114 indicatorRow.visibleIndicators[model.identifier] = indicatorVisible;
89 indicatorRow.visibleIndicatorsChanged();
115 indicatorRow.visibleIndicatorsChanged();
116+
117+ if (indicatorVisible) {
118+ showAll = true;
119+ allVisible.start();
120+ }
90 }
121 }
91 }
122 }
92
123
93− opacity: {
124+ states: [
94− if (!indicatorItem.highlighted && (indicatorRow.state == "locked" || indicatorRow.state == "commit")) {
125+ State {
95− return 0.0;
126+ name: "standard"
96− } else {
127+ when: !hidden && !overflow
97− return 1.0;
128+ },
129+ State {
130+ name: "overflow"
131+ when: hidden || overflow
132+ PropertyChanges { target: itemWrapper; opacity: 0.0 }
98 }
133 }
99− }
134+ ]
100− Behavior on opacity {
135+
136+ transitions: [
137+ Transition {
101− StandardAnimation {
138+ StandardAnimation {
102− // flow away from current index
139+ target: itemWrapper
103− duration: (rowRepeater.count - Math.abs(indicatorRow.currentItemIndex - index)) * (500/rowRepeater.count)
140+ property: "opacity"
141+ duration: 300
104− }
142+ }
105− }
143+ }
144+ ]
106 }
145 }
107 }
146 }
108 }
147 }
Panel/Indicators.qml+2
@@ -29,6 +29,8 @@ Showable {
29 property real openedHeight: units.gu(71)
29 property real openedHeight: units.gu(71)
30 property int panelHeight: units.gu(3)
30 property int panelHeight: units.gu(3)
31 property bool pinnedMode: true //should be set true if indicators menu can cover whole screen
31 property bool pinnedMode: true //should be set true if indicators menu can cover whole screen
32+ property alias overFlowWidth: indicatorRow.overFlowWidth
33+ property alias showAll: indicatorRow.showAll
32
34
33 property int hintValue
35 property int hintValue
34 readonly property int lockThreshold: openedHeight / 2
36 readonly property int lockThreshold: openedHeight / 2
Panel/Indicators/client/IndicatorsList.qml+1−1
@@ -45,7 +45,7 @@ Page {
45 anchors.right: parent.right
45 anchors.right: parent.right
46 objectName: identifier
46 objectName: identifier
47
47
48− text: title
48+ text: identifier
49
49
50 onClicked: {
50 onClicked: {
51 var new_page = Qt.createComponent("IndicatorsPage.qml");
51 var new_page = Qt.createComponent("IndicatorsPage.qml");
Panel/Panel.qml+3−2
@@ -73,6 +73,7 @@ Item {
73
73
74 Indicators {
74 Indicators {
75 id: indicatorsMenu
75 id: indicatorsMenu
76+ objectName: "indicators"
76
77
77 anchors.right: parent.right
78 anchors.right: parent.right
78 y: panelBackground.y
79 y: panelBackground.y
@@ -82,6 +83,7 @@ Item {
82 panelHeight: __panelMinusSeparatorLineHeight
83 panelHeight: __panelMinusSeparatorLineHeight
83 openedHeight: parent.height + (pinnedMode ? 0 : root.panelHeight)
84 openedHeight: parent.height + (pinnedMode ? 0 : root.panelHeight)
84 pinnedMode: !fullscreenMode
85 pinnedMode: !fullscreenMode
86+ overFlowWidth: search.state=="hidden" ? parent.width : parent.width - search.width
85
87
86 property real unitProgress: (height - panelHeight) / (openedHeight - panelHeight)
88 property real unitProgress: (height - panelHeight) / (openedHeight - panelHeight)
87 }
89 }
@@ -120,14 +122,13 @@ Item {
120 return "hidden";
122 return "hidden";
121 }
123 }
122 }
124 }
123− if (root.searchVisible) {
125+ if (root.searchVisible && !indicatorsMenu.showAll) {
124 return "visible";
126 return "visible";
125 }
127 }
126
128
127 return "hidden";
129 return "hidden";
128 }
130 }
129
131
130− width: units.gu(13)
131 height: __panelMinusSeparatorLineHeight
132 height: __panelMinusSeparatorLineHeight
132 anchors {
133 anchors {
133 top: panelBackground.top
134 top: panelBackground.top
Panel/SearchIndicator.qml+9−8
@@ -21,7 +21,7 @@ import "../Components"
21Item {
21Item {
22 id: search
22 id: search
23
23
24− width: units.gu(9)
24+ width: container.width + units.gu(2)
25 height: units.gu(3)
25 height: units.gu(3)
26
26
27 property string headerText: i18n.tr("Search")
27 property string headerText: i18n.tr("Search")
@@ -34,21 +34,24 @@ Item {
34 onClicked: search.clicked()
34 onClicked: search.clicked()
35 }
35 }
36
36
37− Item {
37+ Row {
38 id: container
38 id: container
39 objectName: "container"
39 objectName: "container"
40
40
41− width: parent.width
42 height: parent.height
41 height: parent.height
42+ width: childrenRect.width
43+ anchors {
44+ left: parent.left
45+ leftMargin: units.gu(1)
46+ }
47+ spacing: units.gu(1)
43
48
44− Behavior on opacity { StandardAnimation {} }
49+ Behavior on opacity { StandardAnimation { duration: 300 } }
45
50
46 Image {
51 Image {
47 id: icon
52 id: icon
48 source: "graphics/search.png"
53 source: "graphics/search.png"
49 anchors.verticalCenter: parent.verticalCenter
54 anchors.verticalCenter: parent.verticalCenter
50− anchors.left: parent.left
51− anchors.leftMargin: units.gu(1)
52 }
55 }
53
56
54 Label {
57 Label {
@@ -56,8 +59,6 @@ Item {
56 color: Qt.rgba(0.8, 0.8, 0.8, 1.0)
59 color: Qt.rgba(0.8, 0.8, 0.8, 1.0)
57 fontSize: "small"
60 fontSize: "small"
58 font.capitalization: Font.AllUppercase
61 font.capitalization: Font.AllUppercase
59− anchors.left: icon.right
60− anchors.leftMargin: units.gu(1)
61 anchors.verticalCenter: parent.verticalCenter
62 anchors.verticalCenter: parent.verticalCenter
62 }
63 }
63 }
64 }
Shell.qml+60−45
@@ -99,17 +99,6 @@ FocusScope {
99 }
99 }
100 }
100 }
101
101
102− Connections {
103− target: applicationManager
104− ignoreUnknownSignals: true
105− onFocusRequested: {
106− // TODO: this should be protected to only unlock for certain applications / certain usecases
107− // potentially only in connection with a notification
108− greeter.hide();
109− shell.activateApplication(desktopFile);
110− }
111− }
112−
113 function activateApplication(desktopFile, argument) {
102 function activateApplication(desktopFile, argument) {
114 if (applicationManager) {
103 if (applicationManager) {
115 // For newly started applications, as it takes them time to draw their first frame
104 // For newly started applications, as it takes them time to draw their first frame
@@ -160,10 +149,6 @@ FocusScope {
160 }
149 }
161 }
150 }
162
151
163− OSKController {
164− anchors.fill: parent // as needs to know the geometry of the shell
165− }
166−
167 VolumeControl {
152 VolumeControl {
168 id: volumeControl
153 id: volumeControl
169 }
154 }
@@ -405,7 +390,7 @@ FocusScope {
405
390
406 width: shell.edgeSize
391 width: shell.edgeSize
407 direction: Direction.Leftwards
392 direction: Direction.Leftwards
408− enabled: edgeDemo.dashEnabled
393+ enabled: greeter.showProgress == 0 && edgeDemo.dashEnabled
409 property bool haveApps: mainStage.applications.count > 0 || sideStage.applications.count > 0
394 property bool haveApps: mainStage.applications.count > 0 || sideStage.applications.count > 0
410
395
411 maxTotalDragDistance: haveApps ? parent.width : parent.width * 0.7
396 maxTotalDragDistance: haveApps ? parent.width : parent.width * 0.7
@@ -472,6 +457,26 @@ FocusScope {
472
457
473 dragHandleWidth: shell.edgeSize
458 dragHandleWidth: shell.edgeSize
474
459
460+ property var previousMainApp: null
461+ property var previousSideApp: null
462+
463+ function removeApplicationFocus() {
464+ greeter.previousMainApp = applicationManager.mainStageFocusedApplication;
465+ greeter.previousSideApp = applicationManager.sideStageFocusedApplication;
466+ applicationManager.unfocusCurrentApplication();
467+ }
468+
469+ function restoreApplicationFocus() {
470+ if (greeter.previousMainApp) {
471+ applicationManager.focusApplication(greeter.previousMainApp);
472+ greeter.previousMainApp = null;
473+ }
474+ if (greeter.previousSideApp) {
475+ applicationManager.focusApplication(greeter.previousSideApp);
476+ greeter.previousSideApp = null;
477+ }
478+ }
479+
475 onShownChanged: {
480 onShownChanged: {
476 if (shown) {
481 if (shown) {
477 lockscreen.reset();
482 lockscreen.reset();
@@ -482,6 +487,9 @@ FocusScope {
482 greeter.selected(0);
487 greeter.selected(0);
483 }
488 }
484 greeter.forceActiveFocus();
489 greeter.forceActiveFocus();
490+ removeApplicationFocus();
491+ } else {
492+ restoreApplicationFocus();
485 }
493 }
486 }
494 }
487
495
@@ -498,6 +506,29 @@ FocusScope {
498 launcher.tease();
506 launcher.tease();
499 }
507 }
500 }
508 }
509+
510+ Connections {
511+ target: applicationManager
512+ ignoreUnknownSignals: true
513+ // If any app is focused when greeter is open, it's due to a user action
514+ // like a snap decision (say, an incoming call).
515+ // TODO: these should be protected to only unlock for certain applications / certain usecases
516+ // potentially only in connection with a notification.
517+ onMainStageFocusedApplicationChanged: {
518+ if (greeter.shown && applicationManager.mainStageFocusedApplication) {
519+ greeter.previousMainApp = null // make way for new focused app
520+ greeter.previousSideApp = null
521+ greeter.hide()
522+ }
523+ }
524+ onSideStageFocusedApplicationChanged: {
525+ if (greeter.shown && applicationManager.sideStageFocusedApplication) {
526+ greeter.previousMainApp = null // make way for new focused app
527+ greeter.previousSideApp = null
528+ greeter.hide()
529+ }
530+ }
531+ }
501 }
532 }
502
533
503 InputFilterArea {
534 InputFilterArea {
@@ -510,34 +541,11 @@ FocusScope {
510 id: powerConnection
541 id: powerConnection
511 target: Powerd
542 target: Powerd
512
543
513− property var previousMainApp: null
514− property var previousSideApp: null
515−
516− function setFocused(focused) {
517− if (!focused) {
518− powerConnection.previousMainApp = applicationManager.mainStageFocusedApplication;
519− powerConnection.previousSideApp = applicationManager.sideStageFocusedApplication;
520− applicationManager.unfocusCurrentApplication();
521− } else {
522− if (powerConnection.previousMainApp) {
523− applicationManager.focusApplication(powerConnection.previousMainApp);
524− powerConnection.previousMainApp = null;
525− }
526− if (powerConnection.previousSideApp) {
527− applicationManager.focusApplication(powerConnection.previousSideApp);
528− powerConnection.previousSideApp = null;
529− }
530− }
531− }
532−
533 onDisplayPowerStateChange: {
544 onDisplayPowerStateChange: {
534 // We ignore any display-off signals when the proximity sensor
545 // We ignore any display-off signals when the proximity sensor
535 // is active. This usually indicates something like a phone call.
546 // is active. This usually indicates something like a phone call.
536 if (status == Powerd.Off && (flags & Powerd.UseProximity) == 0) {
547 if (status == Powerd.Off && (flags & Powerd.UseProximity) == 0) {
537− powerConnection.setFocused(false);
538 greeter.showNow();
548 greeter.showNow();
539− } else if (status == Powerd.On) {
540− powerConnection.setFocused(true);
541 }
549 }
542
550
543 // No reason to chew demo CPU when user isn't watching
551 // No reason to chew demo CPU when user isn't watching
@@ -550,13 +558,9 @@ FocusScope {
550 }
558 }
551
559
552 function showHome() {
560 function showHome() {
561+ var animate = !greeter.shown && !stages.shown
553 greeter.hide()
562 greeter.hide()
554− // Animate if moving between application and dash
555− if (!stages.shown) {
556− dash.setCurrentScope("home.scope", true, false)
563+ dash.setCurrentScope("home.scope", animate, false)
557− } else {
558− dash.setCurrentScope("home.scope", false, false)
559− }
560 stages.hide()
564 stages.hide()
561 }
565 }
562
566
@@ -694,10 +698,17 @@ FocusScope {
694 PropertyChanges { target: notifications; width: units.gu(38) }
698 PropertyChanges { target: notifications; width: units.gu(38) }
695 }
699 }
696 ]
700 ]
701+
702+ InputFilterArea {
703+ anchors { left: parent.left; right: parent.right }
704+ height: parent.contentHeight
705+ blockInput: height > 0
706+ }
697 }
707 }
698 }
708 }
699
709
700 focus: true
710 focus: true
711+ onFocusChanged: if (!focus) forceActiveFocus();
701
712
702 InputFilterArea {
713 InputFilterArea {
703 anchors {
714 anchors {
@@ -725,6 +736,10 @@ FocusScope {
725 value: "unity8"
736 value: "unity8"
726 }
737 }
727
738
739+ OSKController {
740+ anchors.fill: parent // as needs to know the geometry of the shell
741+ }
742+
728 //FIXME: This should be handled in the input stack, keyboard shouldnt propagate
743 //FIXME: This should be handled in the input stack, keyboard shouldnt propagate
729 MouseArea {
744 MouseArea {
730 anchors.bottom: parent.bottom
745 anchors.bottom: parent.bottom
debian/changelog+91
@@ -1,3 +1,94 @@
1+unity8 (7.82+13.10.20131010-0ubuntu1) saucy; urgency=low
2+
3+ [ David Callé ]
4+ * Small logic change in preview descriptions line breaks. Multiple new
5+ lines are now replaced by multiple br tags.
6+
7+ [ Nick Dedekind ]
8+ * Use indicator identifier for indicators-client list item label.
9+ * Make sure overflow indicators are hidden and not the search label.
10+
11+ [ Mirco Müller ]
12+ * Tweaks to notifications to improve spec-compliance. - updated
13+ notifications-qmltest to reflect the use of a variant-map for the
14+ hints - made text-fields as heigh as buttons - made the summary
15+ align horizontally to the icon - updated button-height and bubble-
16+ background.
17+
18+ [ Pawel Stolowski ]
19+ * Handle category_order_changes signal from scopes (used in Home only)
20+ and reorder categories accordingly.
21+ * Implementation of albumart image provider for audio content.
22+
23+ [ Michael Terry ]
24+ * Hide the greeter when an app is focused, fixing snap decisions
25+ launching an app in the greeter (like receiving a call).
26+
27+ [ Michael Zanetti ]
28+ * Launcher - remove support for pinning items in the backend After the
29+ latest design changes, recent apps is everything that is contained
30+ in the ApplicationManager. So no need for storing anything else than
31+ pinned apps in the config.
32+
33+ [ Michał Sawicz ]
34+ * Remove the mir socket before starting unity8 during autopilot tests.
35+
36+ [ Ubuntu daily release ]
37+ * Automatic snapshot from revision 420
38+
39+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 10 Oct 2013 04:15:13 +0000
40+
41+unity8 (7.82+13.10.20131008.1-0ubuntu1) saucy; urgency=low
42+
43+ [ Michal Hruby ]
44+ * Add Scope::isActive property and corresponding tests. (LP: #1230352)
45+
46+ [ Daniel d'Andrada ]
47+ * Move OSKController to the front as it will now also block input
48+ meant to the OSK That's in the unity-mir implementation. The
49+ SurfaceFlinger one is still an empty noop. Currently, when the OSK
50+ is up, both shell and OSK get user input, thus we need the
51+ OSKController to shield our shell components from them. (LP:
52+ #1236773)
53+
54+ [ Michał Sawicz ]
55+ * Add Scope::isActive property and corresponding tests. (LP: #1230352)
56+ * Force focus back on shell in case it loses it for some reason.
57+
58+ [ Ubuntu daily release ]
59+ * Automatic snapshot from revision 409
60+
61+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 08 Oct 2013 19:14:20 +0000
62+
63+unity8 (7.82+13.10.20131008-0ubuntu1) saucy; urgency=low
64+
65+ [ Michał Sawicz ]
66+ * update previews to match design. (LP: #1224555)
67+ * Add an InputFilterArea in Notifications. (LP: #1233411, #1235215)
68+
69+ [ Ying-Chun Liu ]
70+ * update previews to match design. (LP: #1224555)
71+
72+ [ Albert Astals ]
73+ * Unrevert 376 by reverting r395 and a small fix to fix the cpu
74+ hogging issue . (LP: #1124567)
75+
76+ [ Michael Terry ]
77+ * Add Showable.showNow() method and use it in Shell to immediately
78+ show greeter when we blank the screen rather than animating it. (LP:
79+ #1233564)
80+
81+ [ Michael Zanetti ]
82+ * update previews to match design. (LP: #1224555)
83+
84+ [ Diego Sarmentero ]
85+ * update previews to match design. (LP: #1224555)
86+
87+ [ Ubuntu daily release ]
88+ * Automatic snapshot from revision 404
89+
90+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 08 Oct 2013 02:57:55 +0000
91+
1unity8 (7.82+13.10.20131007-0ubuntu1) saucy; urgency=low
92unity8 (7.82+13.10.20131007-0ubuntu1) saucy; urgency=low
2
93
3 [ Michał Sawicz ]
94 [ Michał Sawicz ]
debian/control+2
@@ -26,6 +26,7 @@ Build-Depends: cmake,
26 libupstart-dev,
26 libupstart-dev,
27 libusermetricsoutput1-dev,
27 libusermetricsoutput1-dev,
28 libxcb1-dev,
28 libxcb1-dev,
29+ libglib2.0-dev,
29 pkg-config,
30 pkg-config,
30 python:any (>= 2.7),
31 python:any (>= 2.7),
31 python-setuptools,
32 python-setuptools,
@@ -41,6 +42,7 @@ Build-Depends: cmake,
41 qtdeclarative5-test-plugin,
42 qtdeclarative5-test-plugin,
42 qtdeclarative5-ubuntu-ui-toolkit-plugin,
43 qtdeclarative5-ubuntu-ui-toolkit-plugin,
43 qtdeclarative5-xmllistmodel-plugin,
44 qtdeclarative5-xmllistmodel-plugin,
45+ libqt5xmlpatterns5-dev,
44 ttf-ubuntu-font-family,
46 ttf-ubuntu-font-family,
45Standards-Version: 3.9.4
47Standards-Version: 3.9.4
46Homepage: http://launchpad.net/unity
48Homepage: http://launchpad.net/unity
plugins/AccountsService/AccountsService.cpp+3−1
@@ -24,7 +24,9 @@
24AccountsService::AccountsService(QObject* parent)
24AccountsService::AccountsService(QObject* parent)
25 : QObject(parent),
25 : QObject(parent),
26 m_service(new AccountsServiceDBusAdaptor(this)),
26 m_service(new AccountsServiceDBusAdaptor(this)),
27− m_user(qgetenv("USER"))
27+ m_user(qgetenv("USER")),
28+ m_demoEdges(false),
29+ m_statsWelcomeScreen(false)
28{
30{
29 connect(m_service, SIGNAL(propertiesChanged(const QString &, const QString &, const QStringList &)),
31 connect(m_service, SIGNAL(propertiesChanged(const QString &, const QString &, const QStringList &)),
30 this, SLOT(propertiesChanged(const QString &, const QString &, const QStringList &)));
32 this, SLOT(propertiesChanged(const QString &, const QString &, const QStringList &)));
plugins/Unity/CMakeLists.txt+1−1
@@ -6,7 +6,7 @@ add_subdirectory(Indicators)
6# Dependencies
6# Dependencies
7include(FindPkgConfig)
7include(FindPkgConfig)
8pkg_check_modules(QTDEE REQUIRED libdee-qt5>=3.2)
8pkg_check_modules(QTDEE REQUIRED libdee-qt5>=3.2)
9−pkg_check_modules(UNITYCORE REQUIRED unity-core-6.0)
9+pkg_check_modules(UNITYCORE REQUIRED unity-core-6.0>=7.1.1)
10
10
11include_directories(
11include_directories(
12 ${CMAKE_CURRENT_SOURCE_DIR}
12 ${CMAKE_CURRENT_SOURCE_DIR}
plugins/Unity/Indicators/indicatorsmanager.cpp+20−24
@@ -47,34 +47,13 @@ public:
47IndicatorsManager::IndicatorsManager(QObject* parent)
47IndicatorsManager::IndicatorsManager(QObject* parent)
48 : QObject(parent)
48 : QObject(parent)
49 , m_loaded(false)
49 , m_loaded(false)
50− , m_upstart(NULL)
51{
50{
52− auto upstartsession = qgetenv("UPSTART_SESSION");
53− if (!upstartsession.isNull()) {
54− DBusConnection * conn = NULL;
55− conn = dbus_connection_open(upstartsession.constData(), NULL);
56− if (conn != NULL) {
57− m_upstart = nih_dbus_proxy_new(NULL, conn,
58− NULL,
59− DBUS_PATH_UPSTART,
60− NULL, NULL);
61− dbus_connection_unref(conn);
62− }
63− }
64−
65− if (m_upstart != NULL) {
66− m_upstart->auto_start = FALSE;
67− }
68}
51}
69
52
70IndicatorsManager::~IndicatorsManager()
53IndicatorsManager::~IndicatorsManager()
71{
54{
72 unload();
55 unload();
73
56
74− if (m_upstart != NULL) {
75− nih_unref(m_upstart, NULL);
76− m_upstart = NULL;
77− }
78}
57}
79
58
80void IndicatorsManager::load()
59void IndicatorsManager::load()
@@ -235,17 +214,34 @@ void IndicatorsManager::setLoaded(bool loaded)
235 m_loaded = loaded;
214 m_loaded = loaded;
236 Q_EMIT loadedChanged(m_loaded);
215 Q_EMIT loadedChanged(m_loaded);
237
216
238− if (m_upstart != NULL) {
217+ auto upstartsession = qgetenv("UPSTART_SESSION");
218+ NihDBusProxy * upstart = NULL;
219+
220+ if (!upstartsession.isNull()) {
221+ DBusConnection * conn = NULL;
222+ conn = dbus_connection_open(upstartsession.constData(), NULL);
223+ if (conn != NULL) {
224+ upstart = nih_dbus_proxy_new(NULL, conn,
225+ NULL,
226+ DBUS_PATH_UPSTART,
227+ NULL, NULL);
228+ dbus_connection_unref(conn);
229+ }
230+ }
231+
232+ if (upstart != NULL) {
239 int event_sent = 0;
233 int event_sent = 0;
240 if (m_loaded) {
234 if (m_loaded) {
241− event_sent = upstart_emit_event_sync(NULL, m_upstart, "indicator-services-start", NULL, 0);
235+ event_sent = upstart_emit_event_sync(NULL, upstart, "indicator-services-start", NULL, 0);
242 } else {
236 } else {
243− event_sent = upstart_emit_event_sync(NULL, m_upstart, "indicator-services-end", NULL, 0);
237+ event_sent = upstart_emit_event_sync(NULL, upstart, "indicator-services-end", NULL, 0);
244 }
238 }
245
239
246 if (event_sent != 0) {
240 if (event_sent != 0) {
247 qWarning() << "Unable to send indicator event to Upstart";
241 qWarning() << "Unable to send indicator event to Upstart";
248 }
242 }
243+ nih_unref(upstart, NULL);
244+ upstart = NULL;
249 }
245 }
250 }
246 }
251}
247}
plugins/Unity/Indicators/indicatorsmanager.h−1
@@ -71,7 +71,6 @@ private:
71 QHash<QString, IndicatorData*> m_indicatorsData;
71 QHash<QString, IndicatorData*> m_indicatorsData;
72 QSharedPointer<QFileSystemWatcher> m_fsWatcher;
72 QSharedPointer<QFileSystemWatcher> m_fsWatcher;
73 bool m_loaded;
73 bool m_loaded;
74− NihDBusProxy * m_upstart;
75};
74};
76
75
77#endif // INDICATORS_MANAGER_H
76#endif // INDICATORS_MANAGER_H
plugins/Unity/Indicators/qml/MenuItemFactory.qml+1
@@ -115,6 +115,7 @@ Item {
115 text: menu && menu.label ? menu.label : ""
115 text: menu && menu.label ? menu.label : ""
116 icon: menu ? menu.icon : ""
116 icon: menu ? menu.icon : ""
117 value : menu ? menu.actionState : 0.0
117 value : menu ? menu.actionState : 0.0
118+ enabled: menu ? menu.sensitive : false
118 }
119 }
119 }
120 }
120
121
plugins/Unity/Launcher/backend/launcherbackend.cpp−33
@@ -30,12 +30,9 @@
30class LauncherBackendItem
30class LauncherBackendItem
31{
31{
32public:
32public:
33− LauncherBackendItem(): pinned(false) {}
34−
35 QString desktopFile;
33 QString desktopFile;
36 QString displayName;
34 QString displayName;
37 QString icon;
35 QString icon;
38− bool pinned;
39};
36};
40
37
41LauncherBackend::LauncherBackend(QObject *parent):
38LauncherBackend::LauncherBackend(QObject *parent):
@@ -135,32 +132,6 @@ QString LauncherBackend::icon(const QString &appId) const
135 return iconName;
132 return iconName;
136}
133}
137
134
138−bool LauncherBackend::isPinned(const QString &appId) const
139−{
140− LauncherBackendItem *item = m_itemCache.value(appId);
141− if (item) {
142− return item->pinned;
143− }
144− return false;
145−}
146−
147−void LauncherBackend::setPinned(const QString &appId, bool pinned)
148−{
149− if (!m_storedApps.contains(appId)) {
150− return;
151− }
152−
153− LauncherBackendItem *item = m_itemCache.value(appId);
154− if (!item) {
155− item = new LauncherBackendItem();
156− m_itemCache.insert(appId, item);
157− }
158− if (item->pinned != pinned) {
159− item->pinned = pinned;
160− syncToAccounts();
161− }
162−}
163−
164QList<QuickListEntry> LauncherBackend::quickList(const QString &appId) const
135QList<QuickListEntry> LauncherBackend::quickList(const QString &appId) const
165{
136{
166 // TODO: Get static (from .desktop file) and dynamic (from the app itself)
137 // TODO: Get static (from .desktop file) and dynamic (from the app itself)
@@ -233,7 +204,6 @@ void LauncherBackend::syncFromAccounts()
233 if (!m_itemCache.contains(appId)) {
204 if (!m_itemCache.contains(appId)) {
234 m_itemCache.insert(appId, parseDesktopFile(df));
205 m_itemCache.insert(appId, parseDesktopFile(df));
235 }
206 }
236− m_itemCache.value(appId)->pinned = true;
237 }
207 }
238 }
208 }
239 }
209 }
@@ -305,7 +275,6 @@ LauncherBackendItem* LauncherBackend::parseDesktopFile(const QString &desktopFil
305 } else {
275 } else {
306 item->icon = "image://theme/" + iconString;
276 item->icon = "image://theme/" + iconString;
307 }
277 }
308− item->pinned = false;
309 return item;
278 return item;
310}
279}
311
280
@@ -326,7 +295,6 @@ void LauncherBackend::loadFromVariant(const QVariantMap &details)
326 item->desktopFile = details.value("desktopFile").toString();
295 item->desktopFile = details.value("desktopFile").toString();
327 item->displayName = details.value("name").toString();
296 item->displayName = details.value("name").toString();
328 item->icon = details.value("icon").toString();
297 item->icon = details.value("icon").toString();
329− item->pinned = details.value("is-pinned").toBool();
330
298
331 m_itemCache.insert(appId, item);
299 m_itemCache.insert(appId, item);
332 m_storedApps.append(appId);
300 m_storedApps.append(appId);
@@ -340,7 +308,6 @@ QVariantMap LauncherBackend::itemToVariant(const QString &appId) const
340 details.insert("name", item->displayName);
308 details.insert("name", item->displayName);
341 details.insert("icon", item->icon);
309 details.insert("icon", item->icon);
342 details.insert("desktopFile", item->desktopFile);
310 details.insert("desktopFile", item->desktopFile);
343− details.insert("is-pinned", item->pinned);
344 return details;
311 return details;
345}
312}
346
313
plugins/Unity/Launcher/backend/launcherbackend.h−15
@@ -88,21 +88,6 @@ public:
88 */
88 */
89 QString icon(const QString &appId) const;
89 QString icon(const QString &appId) const;
90
90
91− /**
92− * @brief Is the app manually pinned?
93− * @returns true if pinned, otherwise false.
94− */
95− bool isPinned(const QString &appId) const;
96−
97− /**
98− * @brief Change the pinned state of an application.
99− * @param appId The application where the pinned flag should be set.
100− * @param pinned true if pinned, otherwise false.
101− */
102− void setPinned(const QString &appId, bool pinned);
103−
104− //TODO: Fill in getters for all the other things needed from the .desktop file.
105−
106 /**
91 /**
107 * @brief Get the QuickList for an application.
92 * @brief Get the QuickList for an application.
108 * @param appId The ID of the application.
93 * @param appId The ID of the application.
plugins/Unity/Launcher/launchermodel.cpp+3−7
@@ -38,11 +38,7 @@ LauncherModel::LauncherModel(QObject *parent):
38 m_backend->displayName(entry),
38 m_backend->displayName(entry),
39 m_backend->icon(entry),
39 m_backend->icon(entry),
40 this);
40 this);
41− if (m_backend->isPinned(entry)) {
42− item->setPinned(true);
41+ item->setPinned(true);
43− } else {
44− item->setRecent(true);
45− }
46 m_list.append(item);
42 m_list.append(item);
47 }
43 }
48}
44}
@@ -129,11 +125,12 @@ void LauncherModel::pin(const QString &appId, int index)
129 if (currentIndex >= 0) {
125 if (currentIndex >= 0) {
130 if (index == -1 || index == currentIndex) {
126 if (index == -1 || index == currentIndex) {
131 m_list.at(currentIndex)->setPinned(true);
127 m_list.at(currentIndex)->setPinned(true);
132− m_backend->setPinned(appId, true);
133 QModelIndex modelIndex = this->index(currentIndex);
128 QModelIndex modelIndex = this->index(currentIndex);
134 Q_EMIT dataChanged(modelIndex, modelIndex);
129 Q_EMIT dataChanged(modelIndex, modelIndex);
135 } else {
130 } else {
136 move(currentIndex, index);
131 move(currentIndex, index);
132+ // move() will store the list to the backend itself, so just exit at this point.
133+ return;
137 }
134 }
138 } else {
135 } else {
139 if (index == -1) {
136 if (index == -1) {
@@ -144,7 +141,6 @@ void LauncherModel::pin(const QString &appId, int index)
144 m_backend->displayName(appId),
141 m_backend->displayName(appId),
145 m_backend->icon(appId));
142 m_backend->icon(appId));
146 item->setPinned(true);
143 item->setPinned(true);
147− m_backend->setPinned(appId, true);
148 m_list.insert(index, item);
144 m_list.insert(index, item);
149 endInsertRows();
145 endInsertRows();
150 }
146 }
plugins/Unity/categories.cpp+70−17
@@ -90,9 +90,37 @@ void Categories::onCategoriesModelChanged(unity::glib::Object<DeeModel> model)
90 delete model;
90 delete model;
91 }
91 }
92 m_results.clear();
92 m_results.clear();
93+ m_categoryOrder.clear();
94+
93 setModel(model);
95 setModel(model);
94}
96}
95
97
98+void Categories::onCategoryOrderChanged(const std::vector<unsigned int>& cat_order)
99+{
100+ for (unsigned int pos = 0; pos<cat_order.size(); pos++)
101+ {
102+ unsigned int cat = cat_order[pos];
103+ const int old_pos = m_categoryOrder.indexOf(cat);
104+
105+ if (old_pos < 0) {
106+ qWarning() << "No such category index:" << cat;
107+ continue;
108+ }
109+
110+ if (static_cast<int>(pos) != old_pos) {
111+ int target_pos = pos;
112+ if (target_pos > old_pos)
113+ target_pos++;
114+ const bool status = beginMoveRows(QModelIndex(), old_pos, old_pos, QModelIndex(), target_pos);
115+ if (status)
116+ m_categoryOrder.move(old_pos, pos);
117+ else
118+ qWarning() << "beginMoveRows failed:" << old_pos << target_pos;
119+ endMoveRows();
120+ }
121+ }
122+}
123+
96void
124void
97Categories::setUnityScope(const unity::dash::Scope::Ptr& scope)
125Categories::setUnityScope(const unity::dash::Scope::Ptr& scope)
98{
126{
@@ -101,9 +129,9 @@ Categories::setUnityScope(const unity::dash::Scope::Ptr& scope)
101 // no need to call this, we'll get notified
129 // no need to call this, we'll get notified
102 //setModel(m_unityScope->categories()->model());
130 //setModel(m_unityScope->categories()->model());
103
131
104− m_categoriesChangedConnection.disconnect();
132+ m_signals.disconnectAll();
105− m_categoriesChangedConnection =
106− m_unityScope->categories()->model.changed.connect(sigc::mem_fun(this, &Categories::onCategoriesModelChanged));
133+ m_signals << m_unityScope->categories()->model.changed.connect(sigc::mem_fun(this, &Categories::onCategoriesModelChanged));
134+ m_signals << m_unityScope->category_order.changed.connect(sigc::mem_fun(this, &Categories::onCategoryOrderChanged));
107}
135}
108
136
109void
137void
@@ -111,7 +139,9 @@ Categories::onCountChanged()
111{
139{
112 CategoryResults* results = qobject_cast<CategoryResults*>(sender());
140 CategoryResults* results = qobject_cast<CategoryResults*>(sender());
113 if (results) {
141 if (results) {
142+ if (!m_updatedCategories.contains(results->categoryIndex())) {
114− m_updatedCategories << results->categoryIndex();
143+ m_updatedCategories << results->categoryIndex();
144+ }
115 m_timer.start();
145 m_timer.start();
116 }
146 }
117}
147}
@@ -142,7 +172,8 @@ Categories::onEmitCountChanged()
142 roles.append(Categories::RoleCount);
172 roles.append(Categories::RoleCount);
143 Q_FOREACH(int categoryIndex, m_updatedCategories) {
173 Q_FOREACH(int categoryIndex, m_updatedCategories) {
144 if (!m_results.contains(categoryIndex)) continue;
174 if (!m_results.contains(categoryIndex)) continue;
175+ const int realIndex = m_categoryOrder.indexOf(categoryIndex);
145− QModelIndex changedIndex = index(categoryIndex);
176+ const QModelIndex changedIndex = index(realIndex);
146 Q_EMIT dataChanged(changedIndex, changedIndex, roles);
177 Q_EMIT dataChanged(changedIndex, changedIndex, roles);
147 }
178 }
148 m_updatedCategories.clear();
179 m_updatedCategories.clear();
@@ -196,48 +227,70 @@ Categories::data(const QModelIndex& index, int role) const
196 return QVariant();
227 return QVariant();
197 }
228 }
198
229
230+ if (m_categoryOrder.size() != rowCount())
231+ {
232+ // populate category order vector with 0..n
233+ m_categoryOrder.clear();
234+ const unsigned int lim = rowCount();
235+ for (unsigned int i = 0; i<lim; i++) {
236+ m_categoryOrder.append(i);
237+ }
238+ }
239+
240+ int realRow = index.row();
241+ if (index.row() < m_categoryOrder.size()) {
242+ realRow = m_categoryOrder[index.row()];
243+ } else {
244+ qWarning() << "Invalid index" << index.row();
245+ return QVariant();
246+ }
247+
248+ const QModelIndex realIndex = createIndex(realRow, index.column());
249+
199 switch (role) {
250 switch (role) {
200 case RoleCategoryId:
251 case RoleCategoryId:
201− return DeeListModel::data(index, CategoryColumn::ID);
252+ return DeeListModel::data(realIndex, CategoryColumn::ID);
202 case RoleName:
253 case RoleName:
203− return DeeListModel::data(index, CategoryColumn::DISPLAY_NAME);
254+ return DeeListModel::data(realIndex, CategoryColumn::DISPLAY_NAME);
204 case RoleIcon:
255 case RoleIcon:
205− return DeeListModel::data(index, CategoryColumn::ICON_HINT);
256+ return DeeListModel::data(realIndex, CategoryColumn::ICON_HINT);
206 case RoleRenderer:
257 case RoleRenderer:
207− return DeeListModel::data(index, CategoryColumn::RENDERER_NAME);
258+ return DeeListModel::data(realIndex, CategoryColumn::RENDERER_NAME);
208 case RoleContentType:
259 case RoleContentType:
209 {
260 {
210− auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
261+ auto hints = DeeListModel::data(realIndex, CategoryColumn::HINTS).toHash();
211 return hints.contains("content-type") ? hints["content-type"] : QVariant(QString("default"));
262 return hints.contains("content-type") ? hints["content-type"] : QVariant(QString("default"));
212 }
263 }
213 case RoleRendererHint:
264 case RoleRendererHint:
214 {
265 {
215− auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
266+ auto hints = DeeListModel::data(realIndex, CategoryColumn::HINTS).toHash();
216 return hints.contains("renderer-hint") ? hints["renderer-hint"] : QVariant(QString());
267 return hints.contains("renderer-hint") ? hints["renderer-hint"] : QVariant(QString());
217 }
268 }
218 case RoleProgressSource:
269 case RoleProgressSource:
219 {
270 {
220− auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
271+ auto hints = DeeListModel::data(realIndex, CategoryColumn::HINTS).toHash();
221 return hints.contains("progress-source") ? hints["progress-source"] : QVariant();
272 return hints.contains("progress-source") ? hints["progress-source"] : QVariant();
222 }
273 }
223 case RoleHints:
274 case RoleHints:
224− return DeeListModel::data(index, CategoryColumn::HINTS);
275+ return DeeListModel::data(realIndex, CategoryColumn::HINTS);
225 case RoleResults:
276 case RoleResults:
226 if (m_overriddenCategories.size() > 0)
277 if (m_overriddenCategories.size() > 0)
227 {
278 {
228− auto id = DeeListModel::data(index, CategoryColumn::ID).toString();
279+ auto id = DeeListModel::data(realIndex, CategoryColumn::ID).toString();
229 if (m_overriddenCategories.find(id) != m_overriddenCategories.end())
280 if (m_overriddenCategories.find(id) != m_overriddenCategories.end())
230 return QVariant::fromValue(m_overriddenCategories[id]);
281 return QVariant::fromValue(m_overriddenCategories[id]);
231 }
282 }
232− return QVariant::fromValue(getResults(index.row()));
283+ return QVariant::fromValue(getResults(realRow));
233 case RoleCount:
284 case RoleCount:
234 if (m_overriddenCategories.size() > 0)
285 if (m_overriddenCategories.size() > 0)
235 {
286 {
236− auto id = DeeListModel::data(index, CategoryColumn::ID).toString();
287+ auto id = DeeListModel::data(realIndex, CategoryColumn::ID).toString();
237 if (m_overriddenCategories.find(id) != m_overriddenCategories.end())
288 if (m_overriddenCategories.find(id) != m_overriddenCategories.end())
289+ {
238 return QVariant::fromValue(m_overriddenCategories[id]->rowCount());
290 return QVariant::fromValue(m_overriddenCategories[id]->rowCount());
291+ }
239 }
292 }
240− return QVariant::fromValue(getResults(index.row())->rowCount());
293+ return QVariant::fromValue(getResults(realRow)->rowCount());
241 default:
294 default:
242 return QVariant();
295 return QVariant();
243 }
296 }
plugins/Unity/categories.h+10−1
@@ -32,6 +32,9 @@
32#include <QSet>
32#include <QSet>
33#include <QTimer>
33#include <QTimer>
34
34
35+// local
36+#include "signalslist.h"
37+
35class Categories : public DeeListModel
38class Categories : public DeeListModel
36{
39{
37 Q_OBJECT
40 Q_OBJECT
@@ -71,6 +74,7 @@ private Q_SLOTS:
71
74
72private:
75private:
73 void onCategoriesModelChanged(unity::glib::Object<DeeModel> model);
76 void onCategoriesModelChanged(unity::glib::Object<DeeModel> model);
77+ void onCategoryOrderChanged(const std::vector<unsigned int>& cat_order);
74
78
75 DeeListModel* getResults(int index) const;
79 DeeListModel* getResults(int index) const;
76
80
@@ -80,7 +84,12 @@ private:
80 QHash<int, QByteArray> m_roles;
84 QHash<int, QByteArray> m_roles;
81 QMap<QString, QAbstractItemModel*> m_overriddenCategories;
85 QMap<QString, QAbstractItemModel*> m_overriddenCategories;
82 mutable QMap<int, DeeListModel*> m_results;
86 mutable QMap<int, DeeListModel*> m_results;
83− sigc::connection m_categoriesChangedConnection;
87+ SignalsList m_signals;
88+
89+ /* Category order array contains indices of actual categories in the underlying DeeListModel.
90+ It's used internally to reflect category order reported by scope.
91+ */
92+ mutable QList<unsigned int> m_categoryOrder;
84};
93};
85
94
86#endif // CATEGORIES_H
95#endif // CATEGORIES_H
plugins/Unity/categoryresults.cpp+2−1
@@ -81,8 +81,9 @@ CategoryResults::data(const QModelIndex& index, int role) const
81 case RoleIconHint: {
81 case RoleIconHint: {
82 QString giconString(DeeListModel::data(index, ResultsColumn::ICON_HINT).toString());
82 QString giconString(DeeListModel::data(index, ResultsColumn::ICON_HINT).toString());
83 if (giconString.isEmpty()) {
83 if (giconString.isEmpty()) {
84+ QString mimetype(DeeListModel::data(index, ResultsColumn::MIMETYPE).toString());
84 QString uri(DeeListModel::data(index, ResultsColumn::URI).toString());
85 QString uri(DeeListModel::data(index, ResultsColumn::URI).toString());
85− QString thumbnailerUri(uriToThumbnailerProviderString(uri));
86+ QString thumbnailerUri(uriToThumbnailerProviderString(uri, mimetype, DeeListModel::data(index, ResultsColumn::METADATA).toHash()));
86 if (!thumbnailerUri.isNull()) {
87 if (!thumbnailerUri.isNull()) {
87 return QVariant::fromValue(thumbnailerUri);
88 return QVariant::fromValue(thumbnailerUri);
88 }
89 }
plugins/Unity/iconutils.cpp+24−3
@@ -25,6 +25,7 @@
25
25
26#define BASE_THEME_ICON_URI "image://theme/"
26#define BASE_THEME_ICON_URI "image://theme/"
27#define BASE_THUMBNAILER_URI "image://thumbnailer/"
27#define BASE_THUMBNAILER_URI "image://thumbnailer/"
28+#define BASE_ALBUMART_URI "image://albumart/"
28
29
29QString gIconToDeclarativeImageProviderString(QString const &giconString)
30QString gIconToDeclarativeImageProviderString(QString const &giconString)
30{
31{
@@ -91,11 +92,31 @@ QString gIconToDeclarativeImageProviderString(QString const &giconString)
91 return result;
92 return result;
92}
93}
93
94
94−QString uriToThumbnailerProviderString(QString const &uri)
95+QString uriToThumbnailerProviderString(QString const &uri, QString const &mimetype, QVariantHash const &metadata)
95{
96{
96 if (uri.startsWith(QLatin1String("file:///"))) {
97 if (uri.startsWith(QLatin1String("file:///"))) {
98+ bool isAudio = mimetype.startsWith(QLatin1String("audio/"));
99+ QString thumbnailerUri;
100+ if (isAudio) {
101+ thumbnailerUri = BASE_ALBUMART_URI;
102+ if (metadata.contains("content")) {
103+ QVariantHash contentHash = metadata["content"].toHash();
104+ if (contentHash.contains("content")) { // nested content in Home?
105+ contentHash = contentHash["content"].toHash();
106+ }
107+ if (contentHash.contains("album") &&
108+ contentHash.contains("artist")) {
109+ const QString album = contentHash["album"].toString();
110+ const QString artist = contentHash["artist"].toString();
111+ thumbnailerUri.append(QUrl::toPercentEncoding(artist));
112+ thumbnailerUri.append("/");
113+ thumbnailerUri.append(QUrl::toPercentEncoding(album));
114+ }
115+ }
116+ } else {
97− QString thumbnailerUri(BASE_THUMBNAILER_URI);
117+ thumbnailerUri = BASE_THUMBNAILER_URI;
98− thumbnailerUri.append(uri.midRef(7));
118+ thumbnailerUri.append(uri.midRef(7));
119+ }
99 return thumbnailerUri;
120 return thumbnailerUri;
100 }
121 }
101
122
plugins/Unity/iconutils.h+2−1
@@ -21,8 +21,9 @@
21#define ICONUTILS_H
21#define ICONUTILS_H
22
22
23#include <QString>
23#include <QString>
24+#include <QVariant>
24
25
25QString gIconToDeclarativeImageProviderString(QString const &giconString);
26QString gIconToDeclarativeImageProviderString(QString const &giconString);
26−QString uriToThumbnailerProviderString(QString const &uri);
27+QString uriToThumbnailerProviderString(QString const &uri, QString const &mimetype, QVariantHash const &metadata);
27
28
28#endif
29#endif
plugins/Unity/preview.cpp+1−1
@@ -113,7 +113,7 @@ QString Preview::image() const
113 return result;
113 return result;
114 } else {
114 } else {
115 QString sourceMedia(QString::fromStdString(m_unityPreview->image_source_uri()));
115 QString sourceMedia(QString::fromStdString(m_unityPreview->image_source_uri()));
116− QString thumbnailUri(uriToThumbnailerProviderString(sourceMedia));
116+ QString thumbnailUri(uriToThumbnailerProviderString(sourceMedia, m_result->mimeType(), m_result->metadata().toHash()));
117 if (!thumbnailUri.isNull()) return thumbnailUri;
117 if (!thumbnailUri.isNull()) return thumbnailUri;
118 }
118 }
119 } else {
119 } else {
plugins/Unity/scope.cpp+44−6
@@ -40,9 +40,12 @@
40
40
41Scope::Scope(QObject *parent) : QObject(parent)
41Scope::Scope(QObject *parent) : QObject(parent)
42 , m_formFactor("phone")
42 , m_formFactor("phone")
43+ , m_isActive(false)
43 , m_searchInProgress(false)
44 , m_searchInProgress(false)
44{
45{
45 m_categories.reset(new Categories(this));
46 m_categories.reset(new Categories(this));
47+
48+ connect(this, &Scope::isActiveChanged, this, &Scope::scopeIsActiveChanged);
46}
49}
47
50
48QString Scope::id() const
51QString Scope::id() const
@@ -110,6 +113,11 @@ QString Scope::formFactor() const
110 return m_formFactor;
113 return m_formFactor;
111}
114}
112
115
116+bool Scope::isActive() const
117+{
118+ return m_isActive;
119+}
120+
113Filters* Scope::filters() const
121Filters* Scope::filters() const
114{
122{
115 return m_filters.get();
123 return m_filters.get();
@@ -127,10 +135,12 @@ void Scope::setSearchQuery(const QString& search_query)
127 if (m_searchQuery.isNull() || search_query != m_searchQuery) {
135 if (m_searchQuery.isNull() || search_query != m_searchQuery) {
128 m_searchQuery = search_query;
136 m_searchQuery = search_query;
129 m_cancellable.Renew();
137 m_cancellable.Renew();
130− m_searchInProgress = true;
131 m_unityScope->Search(search_query.toStdString(), std::bind(&Scope::onSearchFinished, this, _1, _2, _3), m_cancellable);
138 m_unityScope->Search(search_query.toStdString(), std::bind(&Scope::onSearchFinished, this, _1, _2, _3), m_cancellable);
132 Q_EMIT searchQueryChanged();
139 Q_EMIT searchQueryChanged();
140+ if (!m_searchInProgress) {
141+ m_searchInProgress = true;
133− Q_EMIT searchInProgressChanged();
142+ Q_EMIT searchInProgressChanged();
143+ }
134 }
144 }
135}
145}
136
146
@@ -152,6 +162,13 @@ void Scope::setFormFactor(const QString& form_factor) {
152 }
162 }
153}
163}
154
164
165+void Scope::setActive(const bool active) {
166+ if (active != m_isActive) {
167+ m_isActive = active;
168+ Q_EMIT isActiveChanged(m_isActive);
169+ }
170+}
171+
155unity::dash::LocalResult Scope::createLocalResult(const QVariant &uri, const QVariant &icon_hint,
172unity::dash::LocalResult Scope::createLocalResult(const QVariant &uri, const QVariant &icon_hint,
156 const QVariant &category, const QVariant &result_type,
173 const QVariant &category, const QVariant &result_type,
157 const QVariant &mimetype, const QVariant &title,
174 const QVariant &mimetype, const QVariant &title,
@@ -308,6 +325,7 @@ void Scope::setUnityScope(const unity::dash::Scope::Ptr& scope)
308 m_unityScope->visible.changed.connect(sigc::mem_fun(this, &Scope::visibleChanged));
325 m_unityScope->visible.changed.connect(sigc::mem_fun(this, &Scope::visibleChanged));
309 m_unityScope->shortcut.changed.connect(sigc::mem_fun(this, &Scope::shortcutChanged));
326 m_unityScope->shortcut.changed.connect(sigc::mem_fun(this, &Scope::shortcutChanged));
310 m_unityScope->connected.changed.connect(sigc::mem_fun(this, &Scope::connectedChanged));
327 m_unityScope->connected.changed.connect(sigc::mem_fun(this, &Scope::connectedChanged));
328+ m_unityScope->results_dirty.changed.connect(sigc::mem_fun(this, &Scope::resultsDirtyToggled));
311
329
312 /* FIXME: signal should be forwarded instead of calling the handler directly */
330 /* FIXME: signal should be forwarded instead of calling the handler directly */
313 m_unityScope->activated.connect(sigc::mem_fun(this, &Scope::onActivated));
331 m_unityScope->activated.connect(sigc::mem_fun(this, &Scope::onActivated));
@@ -334,13 +352,31 @@ void Scope::synchronizeStates()
334 /* Forward local states to m_unityScope */
352 /* Forward local states to m_unityScope */
335 if (!m_searchQuery.isNull()) {
353 if (!m_searchQuery.isNull()) {
336 m_cancellable.Renew();
354 m_cancellable.Renew();
337− m_searchInProgress = true;
338 m_unityScope->Search(m_searchQuery.toStdString(), std::bind(&Scope::onSearchFinished, this, _1, _2, _3), m_cancellable);
355 m_unityScope->Search(m_searchQuery.toStdString(), std::bind(&Scope::onSearchFinished, this, _1, _2, _3), m_cancellable);
356+ if (!m_searchInProgress) {
357+ m_searchInProgress = true;
339− Q_EMIT searchInProgressChanged();
358+ Q_EMIT searchInProgressChanged();
359+ }
340 }
360 }
341 }
361 }
342}
362}
343
363
364+void Scope::scopeIsActiveChanged()
365+{
366+ if (!isActive() || !m_unityScope || !m_unityScope->results_dirty()) return;
367+
368+ // force new search
369+ synchronizeStates();
370+}
371+
372+void Scope::resultsDirtyToggled(bool results_dirty)
373+{
374+ if (!results_dirty || !isActive()) return;
375+
376+ // force new search
377+ synchronizeStates();
378+}
379+
344void Scope::onSearchFinished(std::string const& /* query */, unity::glib::HintsMap const& hints, unity::glib::Error const& err)
380void Scope::onSearchFinished(std::string const& /* query */, unity::glib::HintsMap const& hints, unity::glib::Error const& err)
345{
381{
346 QString hint;
382 QString hint;
@@ -348,8 +384,10 @@ void Scope::onSearchFinished(std::string const& /* query */, unity::glib::HintsM
348 GError* error = const_cast<unity::glib::Error&>(err);
384 GError* error = const_cast<unity::glib::Error&>(err);
349
385
350 if (!err || !g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
386 if (!err || !g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
387+ if (m_searchInProgress) {
351− m_searchInProgress = false;
388+ m_searchInProgress = false;
352− Q_EMIT searchInProgressChanged();
389+ Q_EMIT searchInProgressChanged();
390+ }
353 } else {
391 } else {
354 // no need to check the results hint, we're still searching
392 // no need to check the results hint, we're still searching
355 return;
393 return;
plugins/Unity/scope.h+7
@@ -54,6 +54,7 @@ class Scope : public QObject
54 Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
54 Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
55 Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
55 Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
56 Q_PROPERTY(QString formFactor READ formFactor WRITE setFormFactor NOTIFY formFactorChanged)
56 Q_PROPERTY(QString formFactor READ formFactor WRITE setFormFactor NOTIFY formFactorChanged)
57+ Q_PROPERTY(bool isActive READ isActive WRITE setActive NOTIFY isActiveChanged)
57
58
58public:
59public:
59 explicit Scope(QObject *parent = 0);
60 explicit Scope(QObject *parent = 0);
@@ -73,11 +74,13 @@ public:
73 QString searchQuery() const;
74 QString searchQuery() const;
74 QString noResultsHint() const;
75 QString noResultsHint() const;
75 QString formFactor() const;
76 QString formFactor() const;
77+ bool isActive() const;
76
78
77 /* setters */
79 /* setters */
78 void setSearchQuery(const QString& search_query);
80 void setSearchQuery(const QString& search_query);
79 void setNoResultsHint(const QString& hint);
81 void setNoResultsHint(const QString& hint);
80 void setFormFactor(const QString& form_factor);
82 void setFormFactor(const QString& form_factor);
83+ void setActive(const bool);
81
84
82 Q_INVOKABLE void activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
85 Q_INVOKABLE void activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
83 const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
86 const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
@@ -106,6 +109,7 @@ Q_SIGNALS:
106 void searchQueryChanged();
109 void searchQueryChanged();
107 void noResultsHintChanged();
110 void noResultsHintChanged();
108 void formFactorChanged();
111 void formFactorChanged();
112+ void isActiveChanged(bool);
109 void filtersChanged();
113 void filtersChanged();
110
114
111 // signals triggered by activate(..) or preview(..) requests.
115 // signals triggered by activate(..) or preview(..) requests.
@@ -119,6 +123,7 @@ Q_SIGNALS:
119
123
120private Q_SLOTS:
124private Q_SLOTS:
121 void synchronizeStates();
125 void synchronizeStates();
126+ void scopeIsActiveChanged();
122 void onSearchFinished(std::string const &, unity::glib::HintsMap const &, unity::glib::Error const&);
127 void onSearchFinished(std::string const &, unity::glib::HintsMap const &, unity::glib::Error const&);
123
128
124private:
129private:
@@ -130,6 +135,7 @@ private:
130 void onActivated(unity::dash::LocalResult const& result, unity::dash::ScopeHandledType type, unity::glib::HintsMap const& hints);
135 void onActivated(unity::dash::LocalResult const& result, unity::dash::ScopeHandledType type, unity::glib::HintsMap const& hints);
131 void onPreviewReady(unity::dash::LocalResult const& result, unity::dash::Preview::Ptr const& preview);
136 void onPreviewReady(unity::dash::LocalResult const& result, unity::dash::Preview::Ptr const& preview);
132 void fallbackActivate(const QString& uri);
137 void fallbackActivate(const QString& uri);
138+ void resultsDirtyToggled(bool);
133
139
134 unity::dash::Scope::Ptr m_unityScope;
140 unity::dash::Scope::Ptr m_unityScope;
135 std::unique_ptr<Categories> m_categories;
141 std::unique_ptr<Categories> m_categories;
@@ -137,6 +143,7 @@ private:
137 QString m_searchQuery;
143 QString m_searchQuery;
138 QString m_noResultsHint;
144 QString m_noResultsHint;
139 QString m_formFactor;
145 QString m_formFactor;
146+ bool m_isActive;
140 bool m_searchInProgress;
147 bool m_searchInProgress;
141 unity::glib::Cancellable m_cancellable;
148 unity::glib::Cancellable m_cancellable;
142 unity::glib::Cancellable m_previewCancellable;
149 unity::glib::Cancellable m_previewCancellable;
plugins/Utils/CMakeLists.txt+12−1
@@ -1,11 +1,19 @@
1+# Dependencies
2+include(FindPkgConfig)
3+
4+pkg_search_module(GIO REQUIRED gio-2.0)
5+
1include_directories(
6include_directories(
2 ${CMAKE_CURRENT_SOURCE_DIR}
7 ${CMAKE_CURRENT_SOURCE_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
8 ${CMAKE_CURRENT_BINARY_DIR}
4 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
9 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
10+ ${GIO_INCLUDE_DIRS}
5)
11)
6
12
7set(QMLPLUGIN_SRC
13set(QMLPLUGIN_SRC
14+ albumartprovider.cpp
8 applicationpaths.h
15 applicationpaths.h
16+ mediaartcache.cpp
9 qlimitproxymodelqml.cpp
17 qlimitproxymodelqml.cpp
10 qsortfilterproxymodelqml.cpp
18 qsortfilterproxymodelqml.cpp
11 ubuntuwindow.cpp
19 ubuntuwindow.cpp
@@ -16,13 +24,16 @@ set(QMLPLUGIN_SRC
16add_library(Utils-qml SHARED
24add_library(Utils-qml SHARED
17 ${QMLPLUGIN_SRC}
25 ${QMLPLUGIN_SRC}
18 )
26 )
27+
28+target_link_libraries(Utils-qml ${GIO_LDFLAGS})
29+
19# Because this is an internal support library, we want
30# Because this is an internal support library, we want
20# to expose all symbols in it. Consider changing this
31# to expose all symbols in it. Consider changing this
21# either to a static library or just using the
32# either to a static library or just using the
22# files directly in targets.
33# files directly in targets.
23set_target_properties(Utils-qml PROPERTIES COMPILE_FLAGS -fvisibility=default)
34set_target_properties(Utils-qml PROPERTIES COMPILE_FLAGS -fvisibility=default)
24
35
25−qt5_use_modules(Utils-qml Qml Quick DBus)
36+qt5_use_modules(Utils-qml Qml Quick DBus Network XmlPatterns)
26
37
27# export the qmldir qmltypes and plugin files
38# export the qmldir qmltypes and plugin files
28export_qmlfiles(Utils Utils)
39export_qmlfiles(Utils Utils)
plugins/Utils/albumartprovider.cppnew file+231
@@ -0,0 +1,231 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Jussi Pakkanen <jussi.pakkanen@canonical.com>
17+ * Pawel Stolowski <pawel.stolowski@canonical.com>
18+*/
19+
20+#include "albumartprovider.h"
21+#include <QString>
22+#include <QNetworkAccessManager>
23+#include <QEventLoop>
24+#include <QNetworkRequest>
25+#include <QNetworkReply>
26+#include <QXmlQuery>
27+#include <QTemporaryFile>
28+#include <QBuffer>
29+#include <QDebug>
30+#include <QFile>
31+#include <QStringList>
32+#include <QByteArray>
33+#include <QImage>
34+#include <QUrl>
35+
36+using namespace std;
37+
38+const std::string AlbumArtProvider::DEFAULT_ALBUM_ART = "/usr/share/unity/icons/album_missing.png";
39+const std::string AlbumArtProvider::UNITY_LENS_SCHEMA = "com.canonical.Unity.Lenses";
40+
41+AlbumArtProvider::AlbumArtProvider()
42+ : QQuickImageProvider(QQmlImageProviderBase::Image, QQmlImageProviderBase::ForceAsynchronousImageLoading),
43+ m_settings(nullptr)
44+{
45+ auto schemas = g_settings_list_schemas();
46+ if (schemas) {
47+ for (int i = 0; schemas[i]; i++) {
48+ if (g_strcmp0(schemas[i], UNITY_LENS_SCHEMA.c_str()) == 0) {
49+ m_settings = g_settings_new(UNITY_LENS_SCHEMA.c_str());
50+ break;
51+ }
52+ }
53+ }
54+ if (m_settings == nullptr) {
55+ qWarning() << "Missing" << QString::fromStdString(UNITY_LENS_SCHEMA) << "schema";
56+ }
57+}
58+
59+AlbumArtProvider::~AlbumArtProvider()
60+{
61+ if (m_settings)
62+ g_object_unref(m_settings);
63+}
64+
65+std::string AlbumArtProvider::get_lastfm_url(const albuminfo &ai) {
66+ QString artist = QString::fromStdString(ai.artist);
67+ QString album = QString::fromStdString(ai.album);
68+
69+ /// @todo: this is the old API which will probably get axed at some point in the future
70+ /// The new 2.0 API requires an API key, but supports JSON output, etc, so switching
71+ /// to it should be done ASAP.
72+ QString request = QString("http://ws.audioscrobbler.com/1.0/album/%1/%2/info.xml").arg(artist)
73+ .arg(album)
74+ .toHtmlEscaped();
75+ QScopedPointer<QNetworkAccessManager> am(new QNetworkAccessManager);
76+ QNetworkReply *reply = am->get(QNetworkRequest(QUrl(request)));
77+ QEventLoop loop;
78+ QObject::connect(am.data(), &QNetworkAccessManager::finished, &loop, &QEventLoop::quit);
79+ loop.exec();
80+
81+ if (reply->error() != QNetworkReply::NoError) {
82+ qWarning() << "Error getting the XML:" << reply->errorString();
83+ return "";
84+ }
85+
86+ QXmlQuery query;
87+ QBuffer tmp;
88+ tmp.setData(reply->readAll());
89+ tmp.open(QIODevice::ReadOnly);
90+ query.bindVariable("reply", &tmp);
91+ query.setQuery("doc($reply)/album/coverart/large[1]/text()");
92+ QString image;
93+ query.evaluateTo(&image);
94+ image = image.trimmed();
95+
96+ // return empty if last.fm tries to offer their default
97+ // fallback artwork
98+ if (image.contains("catalogue/noimage")) {
99+ return "";
100+ }
101+
102+ return image.toStdString();
103+}
104+
105+bool AlbumArtProvider::download_and_store(const std::string &image_url, const std::string &output_file) {
106+ QString url = QString::fromStdString(image_url);
107+ QString fileName = QString::fromStdString(output_file);
108+
109+ QScopedPointer<QNetworkAccessManager> am(new QNetworkAccessManager);
110+ QNetworkReply *reply = am->get(QNetworkRequest(QUrl(url)));
111+ QEventLoop loop;
112+ QObject::connect(am.data(), &QNetworkAccessManager::finished, &loop, &QEventLoop::quit);
113+ loop.exec();
114+
115+ if (reply->error() != QNetworkReply::NoError) {
116+ qWarning() << "Error getting the image:" << reply->errorString();
117+ return false;
118+ }
119+
120+ QFile file(fileName);
121+ if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
122+ qWarning() << "Could not open file for writing:" << file.errorString();
123+ return false;
124+ }
125+ if (file.write(reply->readAll()) == -1){
126+ qWarning() << "Could not write the image:" << file.error();
127+ return false;
128+ }
129+
130+ return true;
131+}
132+
133+void AlbumArtProvider::fix_format(const std::string &fname) {
134+ // MediaArtSpec requires jpg. Convert to it if necessary.
135+ FILE *f = fopen(fname.c_str(), "r");
136+ if(!f)
137+ return;
138+ unsigned char buf[2];
139+ fread(buf, 1, 2, f);
140+ fclose(f);
141+ if(buf[0] == 0xff && buf[1] == 0xd8) {
142+ return;
143+ }
144+ QImage im(fname.c_str());
145+ im.save(fname.c_str(), "JPEG");
146+}
147+
148+std::string AlbumArtProvider::get_image(const std::string &artist, const std::string &album) {
149+ albuminfo info;
150+
151+ info.artist = artist;
152+ info.album = album;
153+
154+ if(info.album.empty() || info.artist.empty()) {
155+ return DEFAULT_ALBUM_ART;
156+ }
157+ if(cache.has_art(info.artist, info.album)) {
158+ // Image may have expired from cache between these two lines.
159+ // It might expire before we return. C'est la vie.
160+ return cache.get_art_file(info.artist, info.album);
161+ }
162+
163+ if (m_settings != nullptr && g_strcmp0(g_settings_get_string(m_settings, "remote-content-search"), "all") !=0) {
164+ qDebug() << "Remote content disabled";
165+ return DEFAULT_ALBUM_ART;
166+ }
167+
168+ std::string image_url = get_lastfm_url(info);
169+ if(image_url.empty()) {
170+ return DEFAULT_ALBUM_ART;
171+ }
172+ QTemporaryFile tempFile;
173+ tempFile.open();
174+ tempFile.setAutoRemove(true);
175+ QString fname = tempFile.fileName();
176+ std::string tmpname = fname.toUtf8().data();
177+
178+ if(!download_and_store(image_url, tmpname)) {
179+ return DEFAULT_ALBUM_ART;
180+ }
181+ fix_format(tmpname.c_str());
182+ QFile f(fname);
183+ if(!f.open(QIODevice::ReadWrite)) {
184+ return DEFAULT_ALBUM_ART;
185+ }
186+ QByteArray arr = f.readAll();
187+ f.close();
188+
189+ cache.add_art(info.artist, info.album, arr.data(), arr.size());
190+ try {
191+ std::string res = cache.get_art_file(info.artist, info.album);
192+ if(res.empty())
193+ return DEFAULT_ALBUM_ART;
194+ return res;
195+ } catch(...) {
196+ }
197+ return DEFAULT_ALBUM_ART;
198+}
199+
200+QImage AlbumArtProvider::requestImage(const QString &id, QSize *realSize, const QSize &requestedSize) {
201+ Q_UNUSED(requestedSize)
202+
203+ const QStringList parts = id.split("/");
204+ if (parts.size() != 2) {
205+ qWarning() << "Invalid albumart uri:" << id;
206+ return QImage(QString::fromStdString(DEFAULT_ALBUM_ART));
207+ }
208+ const std::string artist = QUrl::fromPercentEncoding(parts[0].toUtf8()).toStdString();
209+ const std::string album = QUrl::fromPercentEncoding(parts[1].toUtf8()).toStdString();
210+
211+ std::string tgt_path;
212+ try {
213+ tgt_path = get_image(artist, album);
214+ if(!tgt_path.empty()) {
215+ QString tgt(tgt_path.c_str());
216+ QImage image;
217+ image.load(tgt);
218+ // FIXME: Rescale to requested size preserving aspect.
219+ *realSize = image.size();
220+ return image;
221+ }
222+ } catch(std::exception &e) {
223+ qDebug() << "Album art loader failed: " << e.what();
224+ } catch(...) {
225+ qDebug() << "Unknown error when generating image.";
226+ }
227+
228+ QImage fallback(QString::fromStdString(DEFAULT_ALBUM_ART));
229+ *realSize = fallback.size();
230+ return fallback;
231+}
plugins/Utils/albumartprovider.hnew file+56
@@ -0,0 +1,56 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Jussi Pakkanen <jussi.pakkanen@canonical.com>
17+*/
18+
19+#ifndef ALBUMART_PROVIDER_H_
20+#define ALBUMART_PROVIDER_H_
21+
22+#include <string>
23+#include <stdexcept>
24+#include <QQuickImageProvider>
25+#include <gio/gio.h>
26+
27+#include "mediaartcache.h"
28+
29+struct albuminfo {
30+ std::string artist;
31+ std::string album;
32+};
33+
34+class AlbumArtProvider : public QQuickImageProvider
35+{
36+public:
37+ AlbumArtProvider();
38+ ~AlbumArtProvider();
39+ QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize);
40+
41+ std::string get_image(const std::string &artist, const std::string &album);
42+
43+ const static std::string DEFAULT_ALBUM_ART;
44+ const static std::string UNITY_LENS_SCHEMA;
45+private:
46+ MediaArtCache cache;
47+ GSettings *m_settings;
48+
49+ void fix_format(const std::string &fname);
50+
51+ std::string get_lastfm_url(const albuminfo &ai);
52+
53+ bool download_and_store(const std::string &image_url, const std::string &output_file);
54+};
55+
56+#endif
plugins/Utils/mediaartcache.cppnew file+178
@@ -0,0 +1,178 @@
1+/*
2+ * This file is part of the Ubuntu TV Media Scanner
3+ * Copyright (C) 2012-2013 Canonical Ltd.
4+ *
5+ * This program is free software: you can redistribute it and/or modify
6+ * it under the terms of the GNU Lesser General Public License version 3 as
7+ * published by the Free Software Foundation.
8+ *
9+ * This program is distributed in the hope that it will be useful,
10+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+ * GNU Lesser General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU Lesser General Public License
15+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
16+ *
17+ * Authored by: Jussi Pakkanen <jussi.pakkanen@canonical.com>
18+ */
19+
20+#include"mediaartcache.h"
21+
22+#include<dirent.h>
23+#include<sys/stat.h>
24+#include<fcntl.h>
25+#include<unistd.h>
26+#include<errno.h>
27+#include<stdio.h>
28+#include<string.h>
29+#include<stdlib.h>
30+#include<assert.h>
31+#include<utime.h>
32+
33+#include<glib.h>
34+
35+#include<vector>
36+#include<algorithm>
37+#include<stdexcept>
38+
39+using namespace std;
40+
41+static string md5(const string &str) {
42+ const unsigned char *buf = (const unsigned char *)str.c_str();
43+ char *normalized = g_utf8_normalize((const gchar*)buf, str.size(), G_NORMALIZE_ALL);
44+ string final;
45+ gchar *result;
46+
47+ if(normalized) {
48+ buf = (const unsigned char*)normalized;
49+ }
50+ gssize bytes = str.length();
51+
52+ result = g_compute_checksum_for_data(G_CHECKSUM_MD5, buf, bytes);
53+ final = result;
54+ g_free((gpointer)normalized);
55+ g_free(result);
56+ return final;
57+}
58+
59+MediaArtCache::MediaArtCache() {
60+ string xdg_base = g_get_user_cache_dir();
61+
62+ if (xdg_base == "") {
63+ string s("Could not determine cache dir.");
64+ throw runtime_error(s);
65+ }
66+ int ec = mkdir(xdg_base.c_str(), S_IRUSR | S_IWUSR | S_IXUSR);
67+ if (ec < 0 && errno != EEXIST) {
68+ string s("Could not create base dir.");
69+ throw runtime_error(s);
70+ }
71+ root_dir = xdg_base + "/media-art";
72+ ec = mkdir(root_dir.c_str(), S_IRUSR | S_IWUSR | S_IXUSR);
73+ if (ec < 0 && errno != EEXIST) {
74+ string s("Could not create cache dir.");
75+ throw runtime_error(s);
76+ }
77+}
78+
79+bool MediaArtCache::has_art(const std::string &artist, const std::string &album) const {
80+ string fname = get_art_file(artist, album);
81+ return access(fname.c_str(), R_OK) == 0;
82+}
83+
84+void MediaArtCache::add_art(const std::string &artist, const std::string &album,
85+ char *data, unsigned int datalen) {
86+ string abs_fname = get_full_filename(artist, album);
87+ GError *err = nullptr;
88+ if(!g_file_set_contents(abs_fname.c_str(), data, datalen, &err)) {
89+ string e("Could not write file ");
90+ e += abs_fname;
91+ e += ": ";
92+ e += err->message;
93+ g_error_free(err);
94+ throw runtime_error(e);
95+ }
96+}
97+
98+string MediaArtCache::get_art_file(const std::string &artist, const std::string &album) const {
99+ string abs_fname = get_full_filename(artist, album);
100+
101+ if (access(abs_fname.c_str(), R_OK) == 0) {
102+ utime(abs_fname.c_str(), nullptr); // update access times to current time
103+ return abs_fname;
104+ }
105+ return "";
106+}
107+
108+std::string MediaArtCache::get_full_filename(const std::string &artist, const std::string & album) const {
109+ return root_dir + "/" + compute_base_name(artist, album);
110+}
111+
112+
113+std::string MediaArtCache::compute_base_name(const std::string &artist, const std::string &album) const {
114+ string type = "album";
115+ string h1 = md5(artist);
116+ string h2 = md5(album);
117+ return type + "-" + h1 + "-" + h2 + ".jpg";
118+}
119+
120+
121+void MediaArtCache::clear() const {
122+ DIR *d = opendir(root_dir.c_str());
123+ if(!d) {
124+ string s = "Something went wrong.";
125+ throw runtime_error(s);
126+ }
127+ struct dirent *entry, *de;
128+ entry = (dirent*)malloc(sizeof(dirent) + NAME_MAX);
129+ while(readdir_r(d, entry, &de) == 0 && de) {
130+ string basename = entry->d_name;
131+ if (basename == "." || basename == "..")
132+ continue;
133+ string fname = root_dir + "/" + basename;
134+ if(remove(fname.c_str()) < 0) {
135+ // This is not really an error worth
136+ // halting everything for.
137+ fprintf(stderr, "Could not delete file %s: %s.\n", fname.c_str(),
138+ strerror(errno));
139+ }
140+ }
141+ free(entry);
142+ closedir(d);
143+}
144+
145+void MediaArtCache::prune() {
146+ vector<pair<double, string>> mtimes;
147+ DIR *d = opendir(root_dir.c_str());
148+ if(!d) {
149+ string s = "Something went wrong.";
150+ throw runtime_error(s);
151+ }
152+ struct dirent *entry, *de;
153+ entry = (dirent*)malloc(sizeof(dirent) + NAME_MAX);
154+ while(readdir_r(d, entry, &de) == 0 && de) {
155+ string basename = entry->d_name;
156+ if (basename == "." || basename == "..")
157+ continue;
158+ string fname = root_dir + "/" + basename;
159+ struct stat sbuf;
160+ if(stat(fname.c_str(), &sbuf) != 0) {
161+ continue;
162+ }
163+ // Use mtime because atime is not guaranteed to work if, for example
164+ // the filesystem is mounted with noatime or relatime.
165+ mtimes.push_back(make_pair(sbuf.st_mtim.tv_sec + sbuf.st_mtim.tv_nsec/1000000000.0, fname));
166+ }
167+ free(entry);
168+ closedir(d);
169+ if (mtimes.size() <= MAX_SIZE)
170+ return;
171+ sort(mtimes.begin(), mtimes.end());
172+ for(size_t i=0; i < mtimes.size()-MAX_SIZE; i++) {
173+ if(remove(mtimes[i].second.c_str()) < 0) {
174+ fprintf(stderr, "Could not remove file %s: %s.\n",
175+ mtimes[i].second.c_str(), strerror(errno));
176+ }
177+ }
178+}
plugins/Utils/mediaartcache.hnew file+54
@@ -0,0 +1,54 @@
1+/*
2+ * This file is part of the Ubuntu TV Media Scanner
3+ * Copyright (C) 2012-2013 Canonical Ltd.
4+ *
5+ * This program is free software: you can redistribute it and/or modify
6+ * it under the terms of the GNU Lesser General Public License version 3 as
7+ * published by the Free Software Foundation.
8+ *
9+ * This program is distributed in the hope that it will be useful,
10+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+ * GNU Lesser General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU Lesser General Public License
15+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
16+ *
17+ * Authored by: Jussi Pakkanen <jussi.pakkanen@canonical.com>
18+ */
19+
20+#ifndef MEDIAARTCACHE_H
21+#define MEDIAARTCACHE_H
22+
23+#include<string>
24+
25+/*
26+ * A class to store thumbnails for files according to
27+ * https://wiki.gnome.org/MediaArtStorageSpec
28+ *
29+ * As this class deals mostly with the filesystem, all
30+ * errors are reported with runtime_error exceptions.
31+ */
32+
33+
34+class MediaArtCache {
35+private:
36+ std::string root_dir;
37+
38+ std::string compute_base_name(const std::string &artist, const std::string &album) const;
39+ std::string get_full_filename(const std::string &artist, const std::string & album) const;
40+
41+public:
42+ static const unsigned int MAX_SIZE = 200;
43+
44+ MediaArtCache();
45+ bool has_art(const std::string &artist, const std::string &album) const;
46+ void add_art(const std::string &artist, const std::string &album,
47+ char *data, unsigned int datalen);
48+ std::string get_art_file(const std::string &artist, const std::string &album) const;
49+ void clear() const;
50+ void prune();
51+ std::string get_cache_dir() const { return root_dir; }
52+};
53+
54+#endif
plugins/Utils/plugin.cpp+20−1
@@ -19,11 +19,12 @@
19// Qt
19// Qt
20#include <QtQml/qqml.h>
20#include <QtQml/qqml.h>
21#include <QtQuick/QQuickWindow>
21#include <QtQuick/QQuickWindow>
22−
22+#include <QDebug>
23// self
23// self
24#include "plugin.h"
24#include "plugin.h"
25
25
26// local
26// local
27+#include "albumartprovider.h"
27#include "applicationpaths.h"
28#include "applicationpaths.h"
28#include "qlimitproxymodelqml.h"
29#include "qlimitproxymodelqml.h"
29#include "qsortfilterproxymodelqml.h"
30#include "qsortfilterproxymodelqml.h"
@@ -46,3 +47,21 @@ void UtilsPlugin::registerTypes(const char *uri)
46 qmlRegisterExtendedType<QQuickWindow, UbuntuWindow>(uri, 0, 1, "Window");
47 qmlRegisterExtendedType<QQuickWindow, UbuntuWindow>(uri, 0, 1, "Window");
47 qmlRegisterSingletonType<ApplicationPaths>(uri, 0, 1, "ApplicationPaths", applicationsPathsSingleton);
48 qmlRegisterSingletonType<ApplicationPaths>(uri, 0, 1, "ApplicationPaths", applicationsPathsSingleton);
48}
49}
50+
51+void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
52+{
53+ QQmlExtensionPlugin::initializeEngine(engine, uri);
54+
55+ try
56+ {
57+ engine->addImageProvider(QLatin1String("albumart"), new AlbumArtProvider);
58+ }
59+ catch (const std::runtime_error &e)
60+ {
61+ qWarning() << "Failed to register image provider for albumart:" << e.what();
62+ }
63+ catch (...)
64+ {
65+ qWarning() << "Failed to register image provider for albumart (unknown error)";
66+ }
67+}
plugins/Utils/plugin.h+1
@@ -29,6 +29,7 @@ class UtilsPlugin : public QQmlExtensionPlugin
29
29
30public:
30public:
31 void registerTypes(const char *uri);
31 void registerTypes(const char *uri);
32+ void initializeEngine(QQmlEngine *engine, const char *uri);
32};
33};
33
34
34#endif
35#endif
po/ar.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-26 23:26+0000\n"
11"PO-Revision-Date: 2013-06-26 23:26+0000\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
13"Language-Team: Arabic <ar@li.org>\n"
13"Language-Team: Arabic <ar@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
20−"X-Generator: Launchpad (build 16774)\n"
20+"X-Generator: Launchpad (build 16799)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "ويكيبيديا"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "يوتيوب"
88msgstr "يوتيوب"
89
89
90−#: Components/EdgeDemoOverlay.qml:150
90+#: Components/EdgeDemoOverlay.qml:149
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr ""
92msgstr ""
93
93
@@ -133,44 +133,30 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:298
136+#: Components/PageHeader.qml:341
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "عمليات البحث الأخيرة"
138msgstr "عمليات البحث الأخيرة"
139
139
140#. TRANSLATORS: Number of persons who rated this app
140#. TRANSLATORS: Number of persons who rated this app
141+#. TRANSLATORS: Number of persons who rated this app/video/whatever
141−#: Dash/Apps/AppInfo.qml:73
142+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
142#, qt-format
143#, qt-format
143msgid "(%1)"
144msgid "(%1)"
144msgstr ""
145msgstr ""
145
146
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
147−#: Dash/Apps/AppInfo.qml:85
149+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
148#, qt-format
150#, qt-format
149msgid "%1 review"
151msgid "%1 review"
150msgid_plural "%1 reviews"
152msgid_plural "%1 reviews"
151msgstr[0] ""
153msgstr[0] ""
152msgstr[1] ""
154msgstr[1] ""
153
155
154−#: Dash/Apps/AppPreview.qml:178
156+#: Dash/Apps/AppPreview.qml:126
155msgid "Rate this"
157msgid "Rate this"
156msgstr ""
158msgstr ""
157
159
158−#: Dash/Apps/AppReviews.qml:74
159−msgid "Add a review"
160−msgstr ""
161−
162−#: Dash/Apps/AppReviews.qml:86
163−msgid "Review"
164−msgstr ""
165−
166−#: Dash/Apps/AppReviews.qml:121
167−msgid "Send"
168−msgstr ""
169−
170−#: Dash/Apps/AppReviews.qml:139
171−msgid "Comments:"
172−msgstr ""
173−
174#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
160#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
175msgid "Featured"
161msgid "Featured"
176msgstr "المميز"
162msgstr "المميز"
@@ -199,17 +185,21 @@ msgstr "الشائع على الإنترنت"
199msgid "Videos"
185msgid "Videos"
200msgstr "فيديوهات"
186msgstr "فيديوهات"
201
187
202−#: Dash/Video/VideoPreview.qml:130
188+#: Dash/Previews/Reviews.qml:74
203−msgid "Directed by:"
189+msgid "Add a review"
190+msgstr ""
191+
192+#: Dash/Previews/Reviews.qml:86
193+msgid "Review"
204−msgstr "أخرجه:"
194+msgstr ""
205
195
206−#: Dash/Video/VideoPreview.qml:153
196+#: Dash/Previews/Reviews.qml:121
207−msgid "Starring:"
197+msgid "Send"
208−msgstr "النجوم:"
198+msgstr ""
209
199
210−#: Dash/Video/VideoPreview.qml:176
200+#: Dash/Previews/Reviews.qml:139
211−msgid "Author:"
201+msgid "Comments:"
212−msgstr "المؤلف:"
202+msgstr ""
213
203
214#: Greeter/Lockscreen.qml:142
204#: Greeter/Lockscreen.qml:142
215msgid "Emergency Call"
205msgid "Emergency Call"
@@ -248,7 +238,7 @@ msgstr "تتكلم الآن..."
248msgid "Search"
238msgid "Search"
249msgstr "ابحث"
239msgstr "ابحث"
250
240
251−#: plugins/Unity/scope.cpp:336
241+#: plugins/Unity/scope.cpp:361
252msgid "Sorry, there is nothing that matches your search."
242msgid "Sorry, there is nothing that matches your search."
253msgstr "عذراً، لا يوجد ما يطابق بحثك."
243msgstr "عذراً، لا يوجد ما يطابق بحثك."
254
244
po/ast.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-03 14:02+0000\n"
11"PO-Revision-Date: 2013-10-03 14:02+0000\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
13"Language-Team: Asturian <ast@li.org>\n"
13"Language-Team: Asturian <ast@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-04 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16791)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Omitir la intro"
91msgstr "Omitir la intro"
92
92
@@ -136,44 +136,30 @@ msgstr ""
136"Agora domines los xestos de berbesos y pues usar el teléfonu<br><br>Toca la "
136"Agora domines los xestos de berbesos y pues usar el teléfonu<br><br>Toca la "
137"pantalla pa entamar"
137"pantalla pa entamar"
138
138
139−#: Components/PageHeader.qml:298
139+#: Components/PageHeader.qml:341
140msgid "Recent searches"
140msgid "Recent searches"
141msgstr "Busques recientes"
141msgstr "Busques recientes"
142
142
143#. TRANSLATORS: Number of persons who rated this app
143#. TRANSLATORS: Number of persons who rated this app
144+#. TRANSLATORS: Number of persons who rated this app/video/whatever
144−#: Dash/Apps/AppInfo.qml:73
145+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
145#, qt-format
146#, qt-format
146msgid "(%1)"
147msgid "(%1)"
147msgstr "(%1)"
148msgstr "(%1)"
148
149
149#. TRANSLATORS: Number of persons who wrote reviews for this app
150#. TRANSLATORS: Number of persons who wrote reviews for this app
151+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
150−#: Dash/Apps/AppInfo.qml:85
152+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
151#, qt-format
153#, qt-format
152msgid "%1 review"
154msgid "%1 review"
153msgid_plural "%1 reviews"
155msgid_plural "%1 reviews"
154msgstr[0] "%1 reseña"
156msgstr[0] "%1 reseña"
155msgstr[1] "%1 reseñes"
157msgstr[1] "%1 reseñes"
156
158
157−#: Dash/Apps/AppPreview.qml:178
159+#: Dash/Apps/AppPreview.qml:126
158msgid "Rate this"
160msgid "Rate this"
159msgstr "Valorar esto"
161msgstr "Valorar esto"
160
162
161−#: Dash/Apps/AppReviews.qml:74
162−msgid "Add a review"
163−msgstr "Amestar una reseña"
164−
165−#: Dash/Apps/AppReviews.qml:86
166−msgid "Review"
167−msgstr "Revisar"
168−
169−#: Dash/Apps/AppReviews.qml:121
170−msgid "Send"
171−msgstr "Unviar"
172−
173−#: Dash/Apps/AppReviews.qml:139
174−msgid "Comments:"
175−msgstr "Comentarios:"
176−
177#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
178msgid "Featured"
164msgid "Featured"
179msgstr "Destacaos"
165msgstr "Destacaos"
@@ -202,17 +188,21 @@ msgstr "Populares en llinia"
202msgid "Videos"
188msgid "Videos"
203msgstr "Vídeos"
189msgstr "Vídeos"
204
190
205−#: Dash/Video/VideoPreview.qml:130
191+#: Dash/Previews/Reviews.qml:74
206−msgid "Directed by:"
192+msgid "Add a review"
207−msgstr "Dirixida por:"
193+msgstr "Amestar una reseña"
194+
195+#: Dash/Previews/Reviews.qml:86
196+msgid "Review"
197+msgstr "Revisar"
208
198
209−#: Dash/Video/VideoPreview.qml:153
199+#: Dash/Previews/Reviews.qml:121
210−msgid "Starring:"
200+msgid "Send"
211−msgstr "Protagonistes:"
201+msgstr "Unviar"
212
202
213−#: Dash/Video/VideoPreview.qml:176
203+#: Dash/Previews/Reviews.qml:139
214−msgid "Author:"
204+msgid "Comments:"
215−msgstr "Autor:"
205+msgstr "Comentarios:"
216
206
217#: Greeter/Lockscreen.qml:142
207#: Greeter/Lockscreen.qml:142
218msgid "Emergency Call"
208msgid "Emergency Call"
@@ -251,7 +241,7 @@ msgstr "Falando…"
251msgid "Search"
241msgid "Search"
252msgstr "Guetar"
242msgstr "Guetar"
253
243
254−#: plugins/Unity/scope.cpp:336
244+#: plugins/Unity/scope.cpp:361
255msgid "Sorry, there is nothing that matches your search."
245msgid "Sorry, there is nothing that matches your search."
256msgstr "Sentímoslo, nun hai res que concase cola gueta"
246msgstr "Sentímoslo, nun hai res que concase cola gueta"
257
247
po/az.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-26 23:48+0000\n"
11"PO-Revision-Date: 2013-06-26 23:48+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Son axtarışlar"
137msgstr "Son axtarışlar"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "Videolar"
185msgstr "Videolar"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "Söylənilir..."
247msgid "Search"
237msgid "Search"
248msgstr "Axtar"
238msgstr "Axtar"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Bağışlayın, amma axtarışınıza heç bir nəticə uyğun gəlmir."
242msgstr "Bağışlayın, amma axtarışınıza heç bir nəticə uyğun gəlmir."
253
243
po/bg.po+22−32
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 00:06+0000\n"
11"PO-Revision-Date: 2013-06-27 00:06+0000\n"
12"Last-Translator: Miroslav E. Hadzhiev (Хаджиев) "
12"Last-Translator: Miroslav E. Hadzhiev (Хаджиев) "
13"<miroslav.hadzhiev@gmail.com>\n"
13"<miroslav.hadzhiev@gmail.com>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
20−"X-Generator: Launchpad (build 16774)\n"
20+"X-Generator: Launchpad (build 16799)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "Уикипедия"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:150
90+#: Components/EdgeDemoOverlay.qml:149
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr ""
92msgstr ""
93
93
@@ -133,44 +133,30 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:298
136+#: Components/PageHeader.qml:341
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Скорошни търсения"
138msgstr "Скорошни търсения"
139
139
140#. TRANSLATORS: Number of persons who rated this app
140#. TRANSLATORS: Number of persons who rated this app
141+#. TRANSLATORS: Number of persons who rated this app/video/whatever
141−#: Dash/Apps/AppInfo.qml:73
142+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
142#, qt-format
143#, qt-format
143msgid "(%1)"
144msgid "(%1)"
144msgstr ""
145msgstr ""
145
146
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
147−#: Dash/Apps/AppInfo.qml:85
149+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
148#, qt-format
150#, qt-format
149msgid "%1 review"
151msgid "%1 review"
150msgid_plural "%1 reviews"
152msgid_plural "%1 reviews"
151msgstr[0] ""
153msgstr[0] ""
152msgstr[1] ""
154msgstr[1] ""
153
155
154−#: Dash/Apps/AppPreview.qml:178
156+#: Dash/Apps/AppPreview.qml:126
155msgid "Rate this"
157msgid "Rate this"
156msgstr ""
158msgstr ""
157
159
158−#: Dash/Apps/AppReviews.qml:74
159−msgid "Add a review"
160−msgstr ""
161−
162−#: Dash/Apps/AppReviews.qml:86
163−msgid "Review"
164−msgstr ""
165−
166−#: Dash/Apps/AppReviews.qml:121
167−msgid "Send"
168−msgstr ""
169−
170−#: Dash/Apps/AppReviews.qml:139
171−msgid "Comments:"
172−msgstr ""
173−
174#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
160#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
175msgid "Featured"
161msgid "Featured"
176msgstr "Най-отличени"
162msgstr "Най-отличени"
@@ -199,17 +185,21 @@ msgstr ""
199msgid "Videos"
185msgid "Videos"
200msgstr "Видеоклипове"
186msgstr "Видеоклипове"
201
187
202−#: Dash/Video/VideoPreview.qml:130
188+#: Dash/Previews/Reviews.qml:74
203−msgid "Directed by:"
189+msgid "Add a review"
204msgstr ""
190msgstr ""
205
191
206−#: Dash/Video/VideoPreview.qml:153
192+#: Dash/Previews/Reviews.qml:86
207−msgid "Starring:"
193+msgid "Review"
208msgstr ""
194msgstr ""
209
195
210−#: Dash/Video/VideoPreview.qml:176
196+#: Dash/Previews/Reviews.qml:121
211−msgid "Author:"
197+msgid "Send"
212−msgstr "Автор:"
198+msgstr ""
199+
200+#: Dash/Previews/Reviews.qml:139
201+msgid "Comments:"
202+msgstr ""
213
203
214#: Greeter/Lockscreen.qml:142
204#: Greeter/Lockscreen.qml:142
215msgid "Emergency Call"
205msgid "Emergency Call"
@@ -248,7 +238,7 @@ msgstr ""
248msgid "Search"
238msgid "Search"
249msgstr "Търсене"
239msgstr "Търсене"
250
240
251−#: plugins/Unity/scope.cpp:336
241+#: plugins/Unity/scope.cpp:361
252msgid "Sorry, there is nothing that matches your search."
242msgid "Sorry, there is nothing that matches your search."
253msgstr "Съжаляваме, няма нищо, което да отговаря на вашето търсене."
243msgstr "Съжаляваме, няма нищо, което да отговаря на вашето търсене."
254
244
po/ca.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-09-28 07:38+0000\n"
11"PO-Revision-Date: 2013-09-28 07:38+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Viquipèdia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Omet la introducció"
91msgstr "Omet la introducció"
92
92
@@ -138,44 +138,30 @@ msgid ""
138"phone<br><br>Tap anywhere to start"
138"phone<br><br>Tap anywhere to start"
139msgstr ""
139msgstr ""
140
140
141−#: Components/PageHeader.qml:298
141+#: Components/PageHeader.qml:341
142msgid "Recent searches"
142msgid "Recent searches"
143msgstr "Cerques recents"
143msgstr "Cerques recents"
144
144
145#. TRANSLATORS: Number of persons who rated this app
145#. TRANSLATORS: Number of persons who rated this app
146+#. TRANSLATORS: Number of persons who rated this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:73
147+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
147#, qt-format
148#, qt-format
148msgid "(%1)"
149msgid "(%1)"
149msgstr "(%1)"
150msgstr "(%1)"
150
151
151#. TRANSLATORS: Number of persons who wrote reviews for this app
152#. TRANSLATORS: Number of persons who wrote reviews for this app
153+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
152−#: Dash/Apps/AppInfo.qml:85
154+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
153#, qt-format
155#, qt-format
154msgid "%1 review"
156msgid "%1 review"
155msgid_plural "%1 reviews"
157msgid_plural "%1 reviews"
156msgstr[0] "%1 ressenya"
158msgstr[0] "%1 ressenya"
157msgstr[1] "%1 ressenyes"
159msgstr[1] "%1 ressenyes"
158
160
159−#: Dash/Apps/AppPreview.qml:178
161+#: Dash/Apps/AppPreview.qml:126
160msgid "Rate this"
162msgid "Rate this"
161msgstr ""
163msgstr ""
162
164
163−#: Dash/Apps/AppReviews.qml:74
164−msgid "Add a review"
165−msgstr "Afegiu una ressenya"
166−
167−#: Dash/Apps/AppReviews.qml:86
168−msgid "Review"
169−msgstr "Ressenya"
170−
171−#: Dash/Apps/AppReviews.qml:121
172−msgid "Send"
173−msgstr "Envia"
174−
175−#: Dash/Apps/AppReviews.qml:139
176−msgid "Comments:"
177−msgstr "Comentaris:"
178−
179#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
180msgid "Featured"
166msgid "Featured"
181msgstr "Destacats"
167msgstr "Destacats"
@@ -204,17 +190,21 @@ msgstr "Popular a la xarxa"
204msgid "Videos"
190msgid "Videos"
205msgstr "Vídeos"
191msgstr "Vídeos"
206
192
207−#: Dash/Video/VideoPreview.qml:130
193+#: Dash/Previews/Reviews.qml:74
208−msgid "Directed by:"
194+msgid "Add a review"
209−msgstr "Dirigit per:"
195+msgstr "Afegiu una ressenya"
196+
197+#: Dash/Previews/Reviews.qml:86
198+msgid "Review"
199+msgstr "Ressenya"
210
200
211−#: Dash/Video/VideoPreview.qml:153
201+#: Dash/Previews/Reviews.qml:121
212−msgid "Starring:"
202+msgid "Send"
213−msgstr "Protagonistes:"
203+msgstr "Envia"
214
204
215−#: Dash/Video/VideoPreview.qml:176
205+#: Dash/Previews/Reviews.qml:139
216−msgid "Author:"
206+msgid "Comments:"
217−msgstr "Autor:"
207+msgstr "Comentaris:"
218
208
219#: Greeter/Lockscreen.qml:142
209#: Greeter/Lockscreen.qml:142
220msgid "Emergency Call"
210msgid "Emergency Call"
@@ -253,7 +243,7 @@ msgstr "S'està parlant..."
253msgid "Search"
243msgid "Search"
254msgstr "Cerca"
244msgstr "Cerca"
255
245
256−#: plugins/Unity/scope.cpp:336
246+#: plugins/Unity/scope.cpp:361
257msgid "Sorry, there is nothing that matches your search."
247msgid "Sorry, there is nothing that matches your search."
258msgstr "No hi ha res que coincideixi amb la cerca"
248msgstr "No hi ha res que coincideixi amb la cerca"
259
249
po/cs.ponew file+252
@@ -0,0 +1,252 @@
1+# Czech translation for unity8
2+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
3+# This file is distributed under the same license as the unity8 package.
4+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
5+#
6+msgid ""
7+msgstr ""
8+"Project-Id-Version: unity8\n"
9+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11+"PO-Revision-Date: 2013-10-08 08:09+0000\n"
12+"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
13+"Language-Team: Czech <cs@li.org>\n"
14+"MIME-Version: 1.0\n"
15+"Content-Type: text/plain; charset=UTF-8\n"
16+"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18+"X-Launchpad-Export-Date: 2013-10-09 06:24+0000\n"
19+"X-Generator: Launchpad (build 16799)\n"
20+
21+#: Applications/applications.js:23
22+msgid "Phone"
23+msgstr "Telefon"
24+
25+#: Applications/applications.js:29
26+msgid "Camera"
27+msgstr "Fotoaparát"
28+
29+#: Applications/applications.js:35
30+msgid "Gallery"
31+msgstr "Galerie"
32+
33+#: Applications/applications.js:40
34+msgid "Facebook"
35+msgstr "Facebook"
36+
37+#: Applications/applications.js:46
38+msgid "Browser"
39+msgstr "Prohlížeč"
40+
41+#: Applications/applications.js:51
42+msgid "Twitter"
43+msgstr "Twitter"
44+
45+#: Applications/applications.js:57
46+msgid "GMail"
47+msgstr "GMail"
48+
49+#: Applications/applications.js:62
50+msgid "Weather"
51+msgstr "Počasí"
52+
53+#: Applications/applications.js:68
54+msgid "Notepad"
55+msgstr "Poznámkový blok"
56+
57+#: Applications/applications.js:74
58+msgid "Calendar"
59+msgstr "Kalendář"
60+
61+#: Applications/applications.js:80
62+msgid "Media Player"
63+msgstr "Přehrávač multimédií"
64+
65+#: Applications/applications.js:86
66+msgid "Evernote"
67+msgstr "Evernote"
68+
69+#: Applications/applications.js:91
70+msgid "Map"
71+msgstr "Mapa"
72+
73+#: Applications/applications.js:96
74+msgid "Pinterest"
75+msgstr "Pinterest"
76+
77+#: Applications/applications.js:101
78+msgid "SoundCloud"
79+msgstr "Hudební Cloud"
80+
81+#: Applications/applications.js:106
82+msgid "Wikipedia"
83+msgstr "Wikipedie"
84+
85+#: Applications/applications.js:111
86+msgid "YouTube"
87+msgstr "YouTube"
88+
89+#: Components/EdgeDemoOverlay.qml:149
90+msgid "Skip intro"
91+msgstr "Přeskočit intro"
92+
93+#: Components/EdgeDemo.qml:112
94+msgid "Right edge"
95+msgstr "Pravý okraj"
96+
97+#: Components/EdgeDemo.qml:113
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr "Pokuste se odemknout telefon potažením prstu z pravého okraje."
100+
101+#: Components/EdgeDemo.qml:144
102+msgid "Top edge"
103+msgstr "Horní okraj"
104+
105+#: Components/EdgeDemo.qml:145
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr "Pokuste se zpřístupnit indikátory potažením prstu z horního okraje"
108+
109+#: Components/EdgeDemo.qml:170
110+msgid "Close"
111+msgstr "Uzavřít"
112+
113+#: Components/EdgeDemo.qml:171
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:198
118+msgid "Left edge"
119+msgstr "Levý okraj"
120+
121+#: Components/EdgeDemo.qml:199
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr "Pro rychlý přístup k aplikacím potáhněte prst z levého okraje."
124+
125+#: Components/EdgeDemo.qml:226
126+msgid "Well done"
127+msgstr "Výborně"
128+
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
133+msgstr ""
134+
135+#: Components/PageHeader.qml:341
136+msgid "Recent searches"
137+msgstr "Poslední vyhledávání"
138+
139+#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
142+#, qt-format
143+msgid "(%1)"
144+msgstr "(%1)"
145+
146+#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
149+#, qt-format
150+msgid "%1 review"
151+msgid_plural "%1 reviews"
152+msgstr[0] "%1 recenze"
153+msgstr[1] "%1 recenze"
154+msgstr[2] "%1 recenzí"
155+
156+#: Dash/Apps/AppPreview.qml:126
157+msgid "Rate this"
158+msgstr "Ohodnoťte to"
159+
160+#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
161+msgid "Featured"
162+msgstr "Oblíbené"
163+
164+#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
165+msgid "Recent"
166+msgstr "Nedávné"
167+
168+#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
169+msgid "New Releases"
170+msgstr ""
171+
172+#: Dash/DashMusic.qml:30
173+msgid "Top Charting"
174+msgstr ""
175+
176+#: Dash/DashMusic.qml:91
177+msgid "Music"
178+msgstr "Hudba"
179+
180+#: Dash/DashVideos.qml:31
181+msgid "Popular Online"
182+msgstr "Oblíbené on-line"
183+
184+#: Dash/DashVideos.qml:146
185+msgid "Videos"
186+msgstr "Videa"
187+
188+#: Dash/Previews/Reviews.qml:74
189+msgid "Add a review"
190+msgstr "Přidat recenzi"
191+
192+#: Dash/Previews/Reviews.qml:86
193+msgid "Review"
194+msgstr "Recenze"
195+
196+#: Dash/Previews/Reviews.qml:121
197+msgid "Send"
198+msgstr "Odeslat"
199+
200+#: Dash/Previews/Reviews.qml:139
201+msgid "Comments:"
202+msgstr "Komentáře:"
203+
204+#: Greeter/Lockscreen.qml:142
205+msgid "Emergency Call"
206+msgstr "Tísňové volání"
207+
208+#: Greeter/PassphraseLockscreen.qml:59
209+#, qt-format
210+msgid "Hello %1"
211+msgstr "Ahoj %1"
212+
213+#: Greeter/PassphraseLockscreen.qml:59
214+msgid "Hello"
215+msgstr "Ahoj"
216+
217+#: Hud/HudParametrizedActionsPage.qml:132
218+msgid "Confirm"
219+msgstr "Potvrdit"
220+
221+#: Hud/Hud.qml:61 Hud/Hud.qml:99 Hud/Hud.qml:372
222+msgid "Type or say a command"
223+msgstr "Napište nebo řekněte příkaz"
224+
225+#: Hud/Hud.qml:84
226+msgid "Loading. Please Wait..."
227+msgstr "Načítám. Čekejte prosím..."
228+
229+#: Hud/Hud.qml:89
230+msgid "Speak Now..."
231+msgstr "Mluvte..."
232+
233+#: Hud/Hud.qml:94
234+msgid "Speaking..."
235+msgstr "Mluvte..."
236+
237+#: Panel/SearchIndicator.qml:27
238+msgid "Search"
239+msgstr "Hledat"
240+
241+#: plugins/Unity/scope.cpp:361
242+msgid "Sorry, there is nothing that matches your search."
243+msgstr "Je nám líto, ale nic neodpovídá zadání"
244+
245+#: plugins/Unity/showallfilteroption.cpp:41
246+msgid "All"
247+msgstr "Vše"
248+
249+#: Shell.qml:453
250+#, qt-format
251+msgid "Please enter %1"
252+msgstr "Zadejte prosím %1"
po/de.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-06 10:57+0000\n"
11"PO-Revision-Date: 2013-10-06 10:57+0000\n"
12"Last-Translator: SaGrLand <sg@samuel-greef.de>\n"
12"Last-Translator: SaGrLand <sg@samuel-greef.de>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-07 06:14+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16791)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Überspringe Einführung"
91msgstr "Überspringe Einführung"
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Letzte Suchbegriffe"
137msgstr "Letzte Suchbegriffe"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr "(%1)"
144msgstr "(%1)"
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] "%1 Bewertung"
152msgstr[0] "%1 Bewertung"
151msgstr[1] "%1 Bewertungen"
153msgstr[1] "%1 Bewertungen"
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr "Bewerten"
157msgstr "Bewerten"
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr "Bewertung hinzufügen"
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr "Bewertung"
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr "Senden"
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr "Kommentare:"
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr "Empfehlungen"
161msgstr "Empfehlungen"
@@ -198,17 +184,21 @@ msgstr "Online Beliebt"
198msgid "Videos"
184msgid "Videos"
199msgstr "Videos"
185msgstr "Videos"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
189+msgstr "Bewertung hinzufügen"
190+
191+#: Dash/Previews/Reviews.qml:86
192+msgid "Review"
203−msgstr "Regie:"
193+msgstr "Bewertung"
204
194
205−#: Dash/Video/VideoPreview.qml:153
195+#: Dash/Previews/Reviews.qml:121
206−msgid "Starring:"
196+msgid "Send"
207−msgstr "Darsteller:"
197+msgstr "Senden"
208
198
209−#: Dash/Video/VideoPreview.qml:176
199+#: Dash/Previews/Reviews.qml:139
210−msgid "Author:"
200+msgid "Comments:"
211−msgstr "Autor:"
201+msgstr "Kommentare:"
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
214msgid "Emergency Call"
204msgid "Emergency Call"
@@ -247,7 +237,7 @@ msgstr "Sie sprechen …"
247msgid "Search"
237msgid "Search"
248msgstr "Suchen"
238msgstr "Suchen"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Entschuldigung, es wurden keine Treffer erzielt."
242msgstr "Entschuldigung, es wurden keine Treffer erzielt."
253
243
po/el.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 00:53+0000\n"
11"PO-Revision-Date: 2013-06-27 00:53+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Greek <el@li.org>\n"
13"Language-Team: Greek <el@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Πρόσφατες αναζητήσεις"
137msgstr "Πρόσφατες αναζητήσεις"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "Βίντεο"
185msgstr "Βίντεο"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "Ομιλία..."
247msgid "Search"
237msgid "Search"
248msgstr "Αναζήτηση"
238msgstr "Αναζήτηση"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Λυπούμαστε, δεν υπάρχει τίποτα που να ταιριάζει στην αναζήτησή σας."
242msgstr "Λυπούμαστε, δεν υπάρχει τίποτα που να ταιριάζει στην αναζήτησή σας."
253
243
po/en_AU.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-09-28 07:46+0000\n"
11"PO-Revision-Date: 2013-09-28 07:46+0000\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:02+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Skip intro"
91msgstr "Skip intro"
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Recent searches"
137msgstr "Recent searches"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr "(%1)"
144msgstr "(%1)"
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] "%1 review"
152msgstr[0] "%1 review"
151msgstr[1] "%1 reviews"
153msgstr[1] "%1 reviews"
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr "Rate this"
157msgstr "Rate this"
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr "Add a review"
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr "Review"
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr "Send"
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr "Comments:"
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr "Featured"
161msgstr "Featured"
@@ -198,17 +184,21 @@ msgstr "Popular Online"
198msgid "Videos"
184msgid "Videos"
199msgstr "Videos"
185msgstr "Videos"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203−msgstr "Directed by:"
189+msgstr "Add a review"
190+
191+#: Dash/Previews/Reviews.qml:86
192+msgid "Review"
193+msgstr "Review"
204
194
205−#: Dash/Video/VideoPreview.qml:153
195+#: Dash/Previews/Reviews.qml:121
206−msgid "Starring:"
196+msgid "Send"
207−msgstr "Starring:"
197+msgstr "Send"
208
198
209−#: Dash/Video/VideoPreview.qml:176
199+#: Dash/Previews/Reviews.qml:139
210−msgid "Author:"
200+msgid "Comments:"
211−msgstr "Author:"
201+msgstr "Comments:"
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
214msgid "Emergency Call"
204msgid "Emergency Call"
@@ -247,7 +237,7 @@ msgstr "Speaking..."
247msgid "Search"
237msgid "Search"
248msgstr "Search"
238msgstr "Search"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Sorry, there is nothing that matches your search."
242msgstr "Sorry, there is nothing that matches your search."
253
243
po/en_GB.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 08:53+0000\n"
11"PO-Revision-Date: 2013-06-27 08:53+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:02+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Recent searches"
137msgstr "Recent searches"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr "Featured"
161msgstr "Featured"
@@ -198,17 +184,21 @@ msgstr "Popular Online"
198msgid "Videos"
184msgid "Videos"
199msgstr "Videos"
185msgstr "Videos"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203−msgstr "Directed by:"
189+msgstr ""
190+
191+#: Dash/Previews/Reviews.qml:86
192+msgid "Review"
193+msgstr ""
204
194
205−#: Dash/Video/VideoPreview.qml:153
195+#: Dash/Previews/Reviews.qml:121
206−msgid "Starring:"
196+msgid "Send"
207−msgstr "Starring:"
197+msgstr ""
208
198
209−#: Dash/Video/VideoPreview.qml:176
199+#: Dash/Previews/Reviews.qml:139
210−msgid "Author:"
200+msgid "Comments:"
211−msgstr "Author:"
201+msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
214msgid "Emergency Call"
204msgid "Emergency Call"
@@ -247,7 +237,7 @@ msgstr "Speaking..."
247msgid "Search"
237msgid "Search"
248msgstr "Search"
238msgstr "Search"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Sorry, there is nothing that matches your search."
242msgstr "Sorry, there is nothing that matches your search."
253
243
po/eo.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr ""
185msgstr ""
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr ""
247msgid "Search"
237msgid "Search"
248msgstr ""
238msgstr ""
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
po/es.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-02 04:59+0000\n"
11"PO-Revision-Date: 2013-10-02 04:59+0000\n"
12"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
12"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
13"Language-Team: Spanish <es@li.org>\n"
13"Language-Team: Spanish <es@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-03 06:08+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16791)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Omitir la introducción"
91msgstr "Omitir la introducción"
92
92
@@ -136,44 +136,30 @@ msgstr ""
136"Ahora domina los gestos de bordes y puede usar el teléfono<br><br>Toque la "
136"Ahora domina los gestos de bordes y puede usar el teléfono<br><br>Toque la "
137"pantalla para comenzar"
137"pantalla para comenzar"
138
138
139−#: Components/PageHeader.qml:298
139+#: Components/PageHeader.qml:341
140msgid "Recent searches"
140msgid "Recent searches"
141msgstr "Búsquedas recientes"
141msgstr "Búsquedas recientes"
142
142
143#. TRANSLATORS: Number of persons who rated this app
143#. TRANSLATORS: Number of persons who rated this app
144+#. TRANSLATORS: Number of persons who rated this app/video/whatever
144−#: Dash/Apps/AppInfo.qml:73
145+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
145#, qt-format
146#, qt-format
146msgid "(%1)"
147msgid "(%1)"
147msgstr "(%1)"
148msgstr "(%1)"
148
149
149#. TRANSLATORS: Number of persons who wrote reviews for this app
150#. TRANSLATORS: Number of persons who wrote reviews for this app
151+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
150−#: Dash/Apps/AppInfo.qml:85
152+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
151#, qt-format
153#, qt-format
152msgid "%1 review"
154msgid "%1 review"
153msgid_plural "%1 reviews"
155msgid_plural "%1 reviews"
154msgstr[0] "%1 reseña"
156msgstr[0] "%1 reseña"
155msgstr[1] "%1 reseñas"
157msgstr[1] "%1 reseñas"
156
158
157−#: Dash/Apps/AppPreview.qml:178
159+#: Dash/Apps/AppPreview.qml:126
158msgid "Rate this"
160msgid "Rate this"
159msgstr "Valorar esto"
161msgstr "Valorar esto"
160
162
161−#: Dash/Apps/AppReviews.qml:74
162−msgid "Add a review"
163−msgstr "Añadir una reseña"
164−
165−#: Dash/Apps/AppReviews.qml:86
166−msgid "Review"
167−msgstr "Reseñar"
168−
169−#: Dash/Apps/AppReviews.qml:121
170−msgid "Send"
171−msgstr "Enviar"
172−
173−#: Dash/Apps/AppReviews.qml:139
174−msgid "Comments:"
175−msgstr "Comentarios:"
176−
177#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
178msgid "Featured"
164msgid "Featured"
179msgstr "Destacados"
165msgstr "Destacados"
@@ -202,17 +188,21 @@ msgstr "Populares en línea"
202msgid "Videos"
188msgid "Videos"
203msgstr "Vídeos"
189msgstr "Vídeos"
204
190
205−#: Dash/Video/VideoPreview.qml:130
191+#: Dash/Previews/Reviews.qml:74
206−msgid "Directed by:"
192+msgid "Add a review"
207−msgstr "Dirigida por:"
193+msgstr "Añadir una reseña"
194+
195+#: Dash/Previews/Reviews.qml:86
196+msgid "Review"
197+msgstr "Reseñar"
208
198
209−#: Dash/Video/VideoPreview.qml:153
199+#: Dash/Previews/Reviews.qml:121
210−msgid "Starring:"
200+msgid "Send"
211−msgstr "Protagonistas:"
201+msgstr "Enviar"
212
202
213−#: Dash/Video/VideoPreview.qml:176
203+#: Dash/Previews/Reviews.qml:139
214−msgid "Author:"
204+msgid "Comments:"
215−msgstr "Autor:"
205+msgstr "Comentarios:"
216
206
217#: Greeter/Lockscreen.qml:142
207#: Greeter/Lockscreen.qml:142
218msgid "Emergency Call"
208msgid "Emergency Call"
@@ -251,7 +241,7 @@ msgstr "Hablando…"
251msgid "Search"
241msgid "Search"
252msgstr "Buscar"
242msgstr "Buscar"
253
243
254−#: plugins/Unity/scope.cpp:336
244+#: plugins/Unity/scope.cpp:361
255msgid "Sorry, there is nothing that matches your search."
245msgid "Sorry, there is nothing that matches your search."
256msgstr "No hay nada que coincida con su búsqueda."
246msgstr "No hay nada que coincida con su búsqueda."
257
247
po/fi.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-03 09:21+0000\n"
11"PO-Revision-Date: 2013-10-03 09:21+0000\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
13"Language-Team: Finnish <fi@li.org>\n"
13"Language-Team: Finnish <fi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-04 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16791)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Ohita esittely"
91msgstr "Ohita esittely"
92
92
@@ -134,44 +134,30 @@ msgstr ""
134"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
134"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
135"käytön<br><br>Napauta missä tahansa aloittaaksesi"
135"käytön<br><br>Napauta missä tahansa aloittaaksesi"
136
136
137−#: Components/PageHeader.qml:298
137+#: Components/PageHeader.qml:341
138msgid "Recent searches"
138msgid "Recent searches"
139msgstr "Viimeisimmät haut"
139msgstr "Viimeisimmät haut"
140
140
141#. TRANSLATORS: Number of persons who rated this app
141#. TRANSLATORS: Number of persons who rated this app
142+#. TRANSLATORS: Number of persons who rated this app/video/whatever
142−#: Dash/Apps/AppInfo.qml:73
143+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
143#, qt-format
144#, qt-format
144msgid "(%1)"
145msgid "(%1)"
145msgstr "(%1)"
146msgstr "(%1)"
146
147
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148#. TRANSLATORS: Number of persons who wrote reviews for this app
149+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
148−#: Dash/Apps/AppInfo.qml:85
150+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
149#, qt-format
151#, qt-format
150msgid "%1 review"
152msgid "%1 review"
151msgid_plural "%1 reviews"
153msgid_plural "%1 reviews"
152msgstr[0] "%1 arvostelu"
154msgstr[0] "%1 arvostelu"
153msgstr[1] "%1 arvostelua"
155msgstr[1] "%1 arvostelua"
154
156
155−#: Dash/Apps/AppPreview.qml:178
157+#: Dash/Apps/AppPreview.qml:126
156msgid "Rate this"
158msgid "Rate this"
157msgstr "Arvioi tämä"
159msgstr "Arvioi tämä"
158
160
159−#: Dash/Apps/AppReviews.qml:74
160−msgid "Add a review"
161−msgstr "Lisää arvostelu"
162−
163−#: Dash/Apps/AppReviews.qml:86
164−msgid "Review"
165−msgstr "Arvostelu"
166−
167−#: Dash/Apps/AppReviews.qml:121
168−msgid "Send"
169−msgstr "Lähetä"
170−
171−#: Dash/Apps/AppReviews.qml:139
172−msgid "Comments:"
173−msgstr "Kommentit:"
174−
175#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
161#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
176msgid "Featured"
162msgid "Featured"
177msgstr "Suositellut"
163msgstr "Suositellut"
@@ -200,17 +186,21 @@ msgstr "Suosittua verkossa"
200msgid "Videos"
186msgid "Videos"
201msgstr "Videot"
187msgstr "Videot"
202
188
203−#: Dash/Video/VideoPreview.qml:130
189+#: Dash/Previews/Reviews.qml:74
204−msgid "Directed by:"
190+msgid "Add a review"
191+msgstr "Lisää arvostelu"
192+
193+#: Dash/Previews/Reviews.qml:86
194+msgid "Review"
205−msgstr "Ohjannut:"
195+msgstr "Arvostelu"
206
196
207−#: Dash/Video/VideoPreview.qml:153
197+#: Dash/Previews/Reviews.qml:121
208−msgid "Starring:"
198+msgid "Send"
209−msgstr "Pääosissa:"
199+msgstr "Lähetä"
210
200
211−#: Dash/Video/VideoPreview.qml:176
201+#: Dash/Previews/Reviews.qml:139
212−msgid "Author:"
202+msgid "Comments:"
213−msgstr "Tekijä:"
203+msgstr "Kommentit:"
214
204
215#: Greeter/Lockscreen.qml:142
205#: Greeter/Lockscreen.qml:142
216msgid "Emergency Call"
206msgid "Emergency Call"
@@ -249,7 +239,7 @@ msgstr "Puhutaan..."
249msgid "Search"
239msgid "Search"
250msgstr "Hae"
240msgstr "Hae"
251
241
252−#: plugins/Unity/scope.cpp:336
242+#: plugins/Unity/scope.cpp:361
253msgid "Sorry, there is nothing that matches your search."
243msgid "Sorry, there is nothing that matches your search."
254msgstr "Hakuun täsmääviä tuloksia ei löydy."
244msgstr "Hakuun täsmääviä tuloksia ei löydy."
255
245
po/fo.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-01 15:13+0000\n"
11"PO-Revision-Date: 2013-10-01 15:13+0000\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
13"Language-Team: Faroese <fo@li.org>\n"
13"Language-Team: Faroese <fo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "Sjónbond"
185msgstr "Sjónbond"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "Snakkar..."
247msgid "Search"
237msgid "Search"
248msgstr "Leita"
238msgstr "Leita"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Tíanverri er tað einki sum hóskar til tína leiting."
242msgstr "Tíanverri er tað einki sum hóskar til tína leiting."
253
243
po/fr.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 03:21+0000\n"
11"PO-Revision-Date: 2013-06-27 03:21+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: French <fr@li.org>\n"
13"Language-Team: French <fr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "Vidéos"
185msgstr "Vidéos"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr ""
247msgid "Search"
237msgid "Search"
248msgstr ""
238msgstr ""
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
po/gd.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-09-30 10:34+0000\n"
11"PO-Revision-Date: 2013-09-30 10:34+0000\n"
12"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
12"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
13"Language-Team: Gaelic; Scottish <gd@li.org>\n"
13"Language-Team: Gaelic; Scottish <gd@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
17"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
18"(n > 2 && n < 20) ? 2 : 3;\n"
18"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
20−"X-Generator: Launchpad (build 16774)\n"
20+"X-Generator: Launchpad (build 16799)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "An Uicipeid"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:150
90+#: Components/EdgeDemoOverlay.qml:149
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "Gearr leum thairis air an ro-ràdh"
92msgstr "Gearr leum thairis air an ro-ràdh"
93
93
@@ -139,18 +139,20 @@ msgid ""
139"phone<br><br>Tap anywhere to start"
139"phone<br><br>Tap anywhere to start"
140msgstr ""
140msgstr ""
141
141
142−#: Components/PageHeader.qml:298
142+#: Components/PageHeader.qml:341
143msgid "Recent searches"
143msgid "Recent searches"
144msgstr "Na lorg thu o chionn goirid"
144msgstr "Na lorg thu o chionn goirid"
145
145
146#. TRANSLATORS: Number of persons who rated this app
146#. TRANSLATORS: Number of persons who rated this app
147+#. TRANSLATORS: Number of persons who rated this app/video/whatever
147−#: Dash/Apps/AppInfo.qml:73
148+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
148#, qt-format
149#, qt-format
149msgid "(%1)"
150msgid "(%1)"
150msgstr "(%1)"
151msgstr "(%1)"
151
152
152#. TRANSLATORS: Number of persons who wrote reviews for this app
153#. TRANSLATORS: Number of persons who wrote reviews for this app
154+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
153−#: Dash/Apps/AppInfo.qml:85
155+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
154#, qt-format
156#, qt-format
155msgid "%1 review"
157msgid "%1 review"
156msgid_plural "%1 reviews"
158msgid_plural "%1 reviews"
@@ -159,26 +161,10 @@ msgstr[1] "%1 lèirmheas"
159msgstr[2] "%1 lèirmheasan"
161msgstr[2] "%1 lèirmheasan"
160msgstr[3] "%1 lèirmheas"
162msgstr[3] "%1 lèirmheas"
161
163
162−#: Dash/Apps/AppPreview.qml:178
164+#: Dash/Apps/AppPreview.qml:126
163msgid "Rate this"
165msgid "Rate this"
164msgstr "Rangaich seo"
166msgstr "Rangaich seo"
165
167
166−#: Dash/Apps/AppReviews.qml:74
167−msgid "Add a review"
168−msgstr "Cuir lèirmheas ris"
169−
170−#: Dash/Apps/AppReviews.qml:86
171−msgid "Review"
172−msgstr "Lèirmheas"
173−
174−#: Dash/Apps/AppReviews.qml:121
175−msgid "Send"
176−msgstr "Cuir"
177−
178−#: Dash/Apps/AppReviews.qml:139
179−msgid "Comments:"
180−msgstr "Beachdan"
181−
182#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
168#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
183msgid "Featured"
169msgid "Featured"
184msgstr "Brosnaichte"
170msgstr "Brosnaichte"
@@ -207,17 +193,21 @@ msgstr "Fèill mhòr air air loidhne"
207msgid "Videos"
193msgid "Videos"
208msgstr "Videothan"
194msgstr "Videothan"
209
195
210−#: Dash/Video/VideoPreview.qml:130
196+#: Dash/Previews/Reviews.qml:74
211−msgid "Directed by:"
197+msgid "Add a review"
212−msgstr "Air a stiùireadh le:"
198+msgstr "Cuir lèirmheas ris"
199+
200+#: Dash/Previews/Reviews.qml:86
201+msgid "Review"
202+msgstr "Lèirmheas"
213
203
214−#: Dash/Video/VideoPreview.qml:153
204+#: Dash/Previews/Reviews.qml:121
215−msgid "Starring:"
205+msgid "Send"
216−msgstr "Leis na daoine a leanas:"
206+msgstr "Cuir"
217
207
218−#: Dash/Video/VideoPreview.qml:176
208+#: Dash/Previews/Reviews.qml:139
219−msgid "Author:"
209+msgid "Comments:"
220−msgstr "Ùghdar:"
210+msgstr "Beachdan"
221
211
222#: Greeter/Lockscreen.qml:142
212#: Greeter/Lockscreen.qml:142
223msgid "Emergency Call"
213msgid "Emergency Call"
@@ -256,7 +246,7 @@ msgstr "A' bruidhinn..."
256msgid "Search"
246msgid "Search"
257msgstr "Lorg"
247msgstr "Lorg"
258
248
259−#: plugins/Unity/scope.cpp:336
249+#: plugins/Unity/scope.cpp:361
260msgid "Sorry, there is nothing that matches your search."
250msgid "Sorry, there is nothing that matches your search."
261msgstr "Tha sinn duilich ach chan eil dad a' freagairt ris na lorg thu."
251msgstr "Tha sinn duilich ach chan eil dad a' freagairt ris na lorg thu."
262
252
po/gl.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-03 18:49+0000\n"
11"PO-Revision-Date: 2013-10-03 18:49+0000\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
13"Language-Team: Galician <gl@li.org>\n"
13"Language-Team: Galician <gl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-04 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16791)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Saltar introdución"
91msgstr "Saltar introdución"
92
92
@@ -134,44 +134,30 @@ msgstr ""
134"Xa domina os xestos desde os bordos e pode comezar a usar o "
134"Xa domina os xestos desde os bordos e pode comezar a usar o "
135"móbil<br><br>Toque en calquera sitio para comezar"
135"móbil<br><br>Toque en calquera sitio para comezar"
136
136
137−#: Components/PageHeader.qml:298
137+#: Components/PageHeader.qml:341
138msgid "Recent searches"
138msgid "Recent searches"
139msgstr "Buscas recentes"
139msgstr "Buscas recentes"
140
140
141#. TRANSLATORS: Number of persons who rated this app
141#. TRANSLATORS: Number of persons who rated this app
142+#. TRANSLATORS: Number of persons who rated this app/video/whatever
142−#: Dash/Apps/AppInfo.qml:73
143+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
143#, qt-format
144#, qt-format
144msgid "(%1)"
145msgid "(%1)"
145msgstr "(%1)"
146msgstr "(%1)"
146
147
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148#. TRANSLATORS: Number of persons who wrote reviews for this app
149+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
148−#: Dash/Apps/AppInfo.qml:85
150+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
149#, qt-format
151#, qt-format
150msgid "%1 review"
152msgid "%1 review"
151msgid_plural "%1 reviews"
153msgid_plural "%1 reviews"
152msgstr[0] "%1 opinión"
154msgstr[0] "%1 opinión"
153msgstr[1] "%1 opinións"
155msgstr[1] "%1 opinións"
154
156
155−#: Dash/Apps/AppPreview.qml:178
157+#: Dash/Apps/AppPreview.qml:126
156msgid "Rate this"
158msgid "Rate this"
157msgstr "Valore isto"
159msgstr "Valore isto"
158
160
159−#: Dash/Apps/AppReviews.qml:74
160−msgid "Add a review"
161−msgstr "Engadir unha opinión"
162−
163−#: Dash/Apps/AppReviews.qml:86
164−msgid "Review"
165−msgstr "Opinión"
166−
167−#: Dash/Apps/AppReviews.qml:121
168−msgid "Send"
169−msgstr "Enviar"
170−
171−#: Dash/Apps/AppReviews.qml:139
172−msgid "Comments:"
173−msgstr "Comentarios:"
174−
175#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
161#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
176msgid "Featured"
162msgid "Featured"
177msgstr "Destacado"
163msgstr "Destacado"
@@ -200,17 +186,21 @@ msgstr "Populares en liña"
200msgid "Videos"
186msgid "Videos"
201msgstr "Vídeos"
187msgstr "Vídeos"
202
188
203−#: Dash/Video/VideoPreview.qml:130
189+#: Dash/Previews/Reviews.qml:74
204−msgid "Directed by:"
190+msgid "Add a review"
205−msgstr "Dirixido por"
191+msgstr "Engadir unha opinión"
192+
193+#: Dash/Previews/Reviews.qml:86
194+msgid "Review"
195+msgstr "Opinión"
206
196
207−#: Dash/Video/VideoPreview.qml:153
197+#: Dash/Previews/Reviews.qml:121
208−msgid "Starring:"
198+msgid "Send"
209−msgstr "Favoritos"
199+msgstr "Enviar"
210
200
211−#: Dash/Video/VideoPreview.qml:176
201+#: Dash/Previews/Reviews.qml:139
212−msgid "Author:"
202+msgid "Comments:"
213−msgstr "Autor:"
203+msgstr "Comentarios:"
214
204
215#: Greeter/Lockscreen.qml:142
205#: Greeter/Lockscreen.qml:142
216msgid "Emergency Call"
206msgid "Emergency Call"
@@ -249,7 +239,7 @@ msgstr "Falando…"
249msgid "Search"
239msgid "Search"
250msgstr "Buscar"
240msgstr "Buscar"
251
241
252−#: plugins/Unity/scope.cpp:336
242+#: plugins/Unity/scope.cpp:361
253msgid "Sorry, there is nothing that matches your search."
243msgid "Sorry, there is nothing that matches your search."
254msgstr "Sentímolo, non hai nada que coincida con esta busca."
244msgstr "Sentímolo, non hai nada que coincida con esta busca."
255
245
po/he.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-01 09:19+0000\n"
11"PO-Revision-Date: 2013-10-01 09:19+0000\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
13"Language-Team: Hebrew <he@li.org>\n"
13"Language-Team: Hebrew <he@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "ויקיפדיה"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "לדלג על הפתיחה"
91msgstr "לדלג על הפתיחה"
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "חיפושים אחרונים"
137msgstr "חיפושים אחרונים"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr "(%1)"
144msgstr "(%1)"
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] "סקירה %1"
152msgstr[0] "סקירה %1"
151msgstr[1] "%1 סקירות"
153msgstr[1] "%1 סקירות"
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr "דירוג היישום"
157msgstr "דירוג היישום"
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr "הוספת סקירה"
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr "סקירה"
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr "שליחה"
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr "הערות:"
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr "מומלצים"
161msgstr "מומלצים"
@@ -198,17 +184,21 @@ msgstr "פופולריים ברחבי הרשת"
198msgid "Videos"
184msgid "Videos"
199msgstr "סרטונים"
185msgstr "סרטונים"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203−msgstr "בוים ע״י:"
189+msgstr "הוספת סקירה"
190+
191+#: Dash/Previews/Reviews.qml:86
192+msgid "Review"
193+msgstr "סקירה"
204
194
205−#: Dash/Video/VideoPreview.qml:153
195+#: Dash/Previews/Reviews.qml:121
206−msgid "Starring:"
196+msgid "Send"
207−msgstr "בכיכוב:"
197+msgstr "שליחה"
208
198
209−#: Dash/Video/VideoPreview.qml:176
199+#: Dash/Previews/Reviews.qml:139
210−msgid "Author:"
200+msgid "Comments:"
211−msgstr "יוצר:"
201+msgstr "הערות:"
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
214msgid "Emergency Call"
204msgid "Emergency Call"
@@ -247,7 +237,7 @@ msgstr "הדיבור מושמע…"
247msgid "Search"
237msgid "Search"
248msgstr "חיפוש"
238msgstr "חיפוש"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "שום דבר אינו תואם לחיפוש שלך, עמך הסליחה."
242msgstr "שום דבר אינו תואם לחיפוש שלך, עמך הסליחה."
253
243
po/hr.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Croatian <hr@li.org>\n"
13"Language-Team: Croatian <hr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
20−"X-Generator: Launchpad (build 16774)\n"
20+"X-Generator: Launchpad (build 16799)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr ""
87msgid "YouTube"
87msgid "YouTube"
88msgstr ""
88msgstr ""
89
89
90−#: Components/EdgeDemoOverlay.qml:150
90+#: Components/EdgeDemoOverlay.qml:149
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr ""
92msgstr ""
93
93
@@ -133,44 +133,30 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:298
136+#: Components/PageHeader.qml:341
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Nedavne pretrage"
138msgstr "Nedavne pretrage"
139
139
140#. TRANSLATORS: Number of persons who rated this app
140#. TRANSLATORS: Number of persons who rated this app
141+#. TRANSLATORS: Number of persons who rated this app/video/whatever
141−#: Dash/Apps/AppInfo.qml:73
142+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
142#, qt-format
143#, qt-format
143msgid "(%1)"
144msgid "(%1)"
144msgstr ""
145msgstr ""
145
146
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
147−#: Dash/Apps/AppInfo.qml:85
149+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
148#, qt-format
150#, qt-format
149msgid "%1 review"
151msgid "%1 review"
150msgid_plural "%1 reviews"
152msgid_plural "%1 reviews"
151msgstr[0] ""
153msgstr[0] ""
152msgstr[1] ""
154msgstr[1] ""
153
155
154−#: Dash/Apps/AppPreview.qml:178
156+#: Dash/Apps/AppPreview.qml:126
155msgid "Rate this"
157msgid "Rate this"
156msgstr ""
158msgstr ""
157
159
158−#: Dash/Apps/AppReviews.qml:74
159−msgid "Add a review"
160−msgstr ""
161−
162−#: Dash/Apps/AppReviews.qml:86
163−msgid "Review"
164−msgstr ""
165−
166−#: Dash/Apps/AppReviews.qml:121
167−msgid "Send"
168−msgstr ""
169−
170−#: Dash/Apps/AppReviews.qml:139
171−msgid "Comments:"
172−msgstr ""
173−
174#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
160#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
175msgid "Featured"
161msgid "Featured"
176msgstr ""
162msgstr ""
@@ -199,16 +185,20 @@ msgstr ""
199msgid "Videos"
185msgid "Videos"
200msgstr "Video"
186msgstr "Video"
201
187
202−#: Dash/Video/VideoPreview.qml:130
188+#: Dash/Previews/Reviews.qml:74
203−msgid "Directed by:"
189+msgid "Add a review"
204msgstr ""
190msgstr ""
205
191
206−#: Dash/Video/VideoPreview.qml:153
192+#: Dash/Previews/Reviews.qml:86
207−msgid "Starring:"
193+msgid "Review"
208msgstr ""
194msgstr ""
209
195
210−#: Dash/Video/VideoPreview.qml:176
196+#: Dash/Previews/Reviews.qml:121
211−msgid "Author:"
197+msgid "Send"
198+msgstr ""
199+
200+#: Dash/Previews/Reviews.qml:139
201+msgid "Comments:"
212msgstr ""
202msgstr ""
213
203
214#: Greeter/Lockscreen.qml:142
204#: Greeter/Lockscreen.qml:142
@@ -248,7 +238,7 @@ msgstr "Govor..."
248msgid "Search"
238msgid "Search"
249msgstr "Pretraživanje"
239msgstr "Pretraživanje"
250
240
251−#: plugins/Unity/scope.cpp:336
241+#: plugins/Unity/scope.cpp:361
252msgid "Sorry, there is nothing that matches your search."
242msgid "Sorry, there is nothing that matches your search."
253msgstr "Nažalost, ne postoji ništa što odgovara vašoj pretrazi."
243msgstr "Nažalost, ne postoji ništa što odgovara vašoj pretrazi."
254
244
po/hu.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 04:28+0000\n"
11"PO-Revision-Date: 2013-06-27 04:28+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Legutóbbi keresések"
137msgstr "Legutóbbi keresések"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "Videók"
185msgstr "Videók"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "Beszéd…"
247msgid "Search"
237msgid "Search"
248msgstr "Keresés"
238msgstr "Keresés"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Elnézést, nincs találat a keresésre."
242msgstr "Elnézést, nincs találat a keresésre."
253
243
po/hy.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
13"Language-Team: Armenian <hy@li.org>\n"
13"Language-Team: Armenian <hy@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Վերջին որոնումներ"
137msgstr "Վերջին որոնումներ"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "Վիդեոներ"
185msgstr "Վիդեոներ"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "Խոսում եմ..."
247msgid "Search"
237msgid "Search"
248msgstr "Որոնում"
238msgstr "Որոնում"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Կներերք, բայց Ձեր հարցումով ոչինչ չկար"
242msgstr "Կներերք, բայց Ձեր հարցումով ոչինչ չկար"
253
243
po/id.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Indonesian <id@li.org>\n"
13"Language-Team: Indonesian <id@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr ""
185msgstr ""
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr ""
247msgid "Search"
237msgid "Search"
248msgstr ""
238msgstr ""
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
po/is.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-09-18 16:22+0000\n"
11"PO-Revision-Date: 2013-09-18 16:22+0000\n"
12"Last-Translator: Andri Thorlacius <Unknown>\n"
12"Last-Translator: Andri Thorlacius <Unknown>\n"
13"Language-Team: Icelandic <is@li.org>\n"
13"Language-Team: Icelandic <is@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Hoppa yfir kynningu"
91msgstr "Hoppa yfir kynningu"
92
92
@@ -133,44 +133,30 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:298
136+#: Components/PageHeader.qml:341
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Nýlegar leitir"
138msgstr "Nýlegar leitir"
139
139
140#. TRANSLATORS: Number of persons who rated this app
140#. TRANSLATORS: Number of persons who rated this app
141+#. TRANSLATORS: Number of persons who rated this app/video/whatever
141−#: Dash/Apps/AppInfo.qml:73
142+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
142#, qt-format
143#, qt-format
143msgid "(%1)"
144msgid "(%1)"
144msgstr "(%1)"
145msgstr "(%1)"
145
146
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
147−#: Dash/Apps/AppInfo.qml:85
149+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
148#, qt-format
150#, qt-format
149msgid "%1 review"
151msgid "%1 review"
150msgid_plural "%1 reviews"
152msgid_plural "%1 reviews"
151msgstr[0] "%1 ummæli"
153msgstr[0] "%1 ummæli"
152msgstr[1] "%1 ummæli"
154msgstr[1] "%1 ummæli"
153
155
154−#: Dash/Apps/AppPreview.qml:178
156+#: Dash/Apps/AppPreview.qml:126
155msgid "Rate this"
157msgid "Rate this"
156msgstr "Gefa þessu einkunn"
158msgstr "Gefa þessu einkunn"
157
159
158−#: Dash/Apps/AppReviews.qml:74
159−msgid "Add a review"
160−msgstr "Gefa umsögn"
161−
162−#: Dash/Apps/AppReviews.qml:86
163−msgid "Review"
164−msgstr "Umsögn"
165−
166−#: Dash/Apps/AppReviews.qml:121
167−msgid "Send"
168−msgstr "Senda"
169−
170−#: Dash/Apps/AppReviews.qml:139
171−msgid "Comments:"
172−msgstr "Athugasemdir:"
173−
174#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
160#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
175msgid "Featured"
161msgid "Featured"
176msgstr "Efst á baugi"
162msgstr "Efst á baugi"
@@ -199,17 +185,21 @@ msgstr "Vinsælt á Netinu"
199msgid "Videos"
185msgid "Videos"
200msgstr "Myndbönd"
186msgstr "Myndbönd"
201
187
202−#: Dash/Video/VideoPreview.qml:130
188+#: Dash/Previews/Reviews.qml:74
203−msgid "Directed by:"
189+msgid "Add a review"
204−msgstr "Leikstýrt af:"
190+msgstr "Gefa umsögn"
191+
192+#: Dash/Previews/Reviews.qml:86
193+msgid "Review"
194+msgstr "Umsögn"
205
195
206−#: Dash/Video/VideoPreview.qml:153
196+#: Dash/Previews/Reviews.qml:121
207−msgid "Starring:"
197+msgid "Send"
208−msgstr "Meðal leikara eru:"
198+msgstr "Senda"
209
199
210−#: Dash/Video/VideoPreview.qml:176
200+#: Dash/Previews/Reviews.qml:139
211−msgid "Author:"
201+msgid "Comments:"
212−msgstr "Höfundur:"
202+msgstr "Athugasemdir:"
213
203
214#: Greeter/Lockscreen.qml:142
204#: Greeter/Lockscreen.qml:142
215msgid "Emergency Call"
205msgid "Emergency Call"
@@ -248,7 +238,7 @@ msgstr "Tala..."
248msgid "Search"
238msgid "Search"
249msgstr "Leita"
239msgstr "Leita"
250
240
251−#: plugins/Unity/scope.cpp:336
241+#: plugins/Unity/scope.cpp:361
252msgid "Sorry, there is nothing that matches your search."
242msgid "Sorry, there is nothing that matches your search."
253msgstr "Því miður, það var ekkert sem passaði við leitarorðið þitt."
243msgstr "Því miður, það var ekkert sem passaði við leitarorðið þitt."
254
244
po/it.po+28−36
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11−"PO-Revision-Date: 2013-09-28 10:05+0000\n"
11+"PO-Revision-Date: 2013-10-07 09:34+0000\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
13"Language-Team: Italian <it@li.org>\n"
13"Language-Team: Italian <it@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Salta introduzione"
91msgstr "Salta introduzione"
92
92
@@ -136,45 +136,33 @@ msgid ""
136"You have now mastered the edge gestures and can start using the "
136"You have now mastered the edge gestures and can start using the "
137"phone<br><br>Tap anywhere to start"
137"phone<br><br>Tap anywhere to start"
138msgstr ""
138msgstr ""
139+"I gesti sui bordi sono stati configurati ed è possibile iniziare a usare il "
140+"telefono<br><br>Toccare in un punto qualunque per iniziare"
139
141
140−#: Components/PageHeader.qml:298
142+#: Components/PageHeader.qml:341
141msgid "Recent searches"
143msgid "Recent searches"
142msgstr "Ricerche recenti"
144msgstr "Ricerche recenti"
143
145
144#. TRANSLATORS: Number of persons who rated this app
146#. TRANSLATORS: Number of persons who rated this app
147+#. TRANSLATORS: Number of persons who rated this app/video/whatever
145−#: Dash/Apps/AppInfo.qml:73
148+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
146#, qt-format
149#, qt-format
147msgid "(%1)"
150msgid "(%1)"
148msgstr "(%1)"
151msgstr "(%1)"
149
152
150#. TRANSLATORS: Number of persons who wrote reviews for this app
153#. TRANSLATORS: Number of persons who wrote reviews for this app
154+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
151−#: Dash/Apps/AppInfo.qml:85
155+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
152#, qt-format
156#, qt-format
153msgid "%1 review"
157msgid "%1 review"
154msgid_plural "%1 reviews"
158msgid_plural "%1 reviews"
155msgstr[0] "%1 recensione"
159msgstr[0] "%1 recensione"
156msgstr[1] "%1 recensioni"
160msgstr[1] "%1 recensioni"
157
161
158−#: Dash/Apps/AppPreview.qml:178
162+#: Dash/Apps/AppPreview.qml:126
159msgid "Rate this"
163msgid "Rate this"
160msgstr "Valuta"
164msgstr "Valuta"
161
165
162−#: Dash/Apps/AppReviews.qml:74
163−msgid "Add a review"
164−msgstr "Aggiungi una recensione"
165−
166−#: Dash/Apps/AppReviews.qml:86
167−msgid "Review"
168−msgstr "Recensisci"
169−
170−#: Dash/Apps/AppReviews.qml:121
171−msgid "Send"
172−msgstr "Invia"
173−
174−#: Dash/Apps/AppReviews.qml:139
175−msgid "Comments:"
176−msgstr "Commenti:"
177−
178#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
166#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
179msgid "Featured"
167msgid "Featured"
180msgstr "In evidenza"
168msgstr "In evidenza"
@@ -203,17 +191,21 @@ msgstr "Popolari online"
203msgid "Videos"
191msgid "Videos"
204msgstr "Video"
192msgstr "Video"
205
193
206−#: Dash/Video/VideoPreview.qml:130
194+#: Dash/Previews/Reviews.qml:74
207−msgid "Directed by:"
195+msgid "Add a review"
208−msgstr "Diretto da:"
196+msgstr "Aggiungi una recensione"
209
197
210−#: Dash/Video/VideoPreview.qml:153
198+#: Dash/Previews/Reviews.qml:86
211−msgid "Starring:"
199+msgid "Review"
212−msgstr "Valutazioni:"
200+msgstr "Recensisci"
213
201
214−#: Dash/Video/VideoPreview.qml:176
202+#: Dash/Previews/Reviews.qml:121
203+msgid "Send"
204+msgstr "Invia"
205+
206+#: Dash/Previews/Reviews.qml:139
215−msgid "Author:"
207+msgid "Comments:"
216−msgstr "Autore:"
208+msgstr "Commenti:"
217
209
218#: Greeter/Lockscreen.qml:142
210#: Greeter/Lockscreen.qml:142
219msgid "Emergency Call"
211msgid "Emergency Call"
@@ -252,13 +244,13 @@ msgstr "Sto parlando..."
252msgid "Search"
244msgid "Search"
253msgstr "Cerca"
245msgstr "Cerca"
254
246
255−#: plugins/Unity/scope.cpp:336
247+#: plugins/Unity/scope.cpp:361
256msgid "Sorry, there is nothing that matches your search."
248msgid "Sorry, there is nothing that matches your search."
257msgstr "Nessun risultato corrispondente alla ricerca."
249msgstr "Nessun risultato corrispondente alla ricerca."
258
250
259#: plugins/Unity/showallfilteroption.cpp:41
251#: plugins/Unity/showallfilteroption.cpp:41
260msgid "All"
252msgid "All"
261−msgstr ""
253+msgstr "Tutto"
262
254
263#: Shell.qml:453
255#: Shell.qml:453
264#, qt-format
256#, qt-format
po/ja.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Japanese <ja@li.org>\n"
13"Language-Team: Japanese <ja@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr ""
185msgstr ""
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr ""
247msgid "Search"
237msgid "Search"
248msgstr ""
238msgstr ""
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
po/kn.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kannada <kn@li.org>\n"
13"Language-Team: Kannada <kn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
137msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "ವೀಡಿಯೋಗಳು"
185msgstr "ವೀಡಿಯೋಗಳು"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "ಮಾತನಾಡುತಿದ್ದೀರಿ"
247msgid "Search"
237msgid "Search"
248msgstr "ಹುಡುಕು"
238msgstr "ಹುಡುಕು"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "ಕ್ಷಮಿಸಿ ನಿಮ್ಮ ಶೋಧನೆಗೆ ಸರಿಯಾದ ಹೊಂದಾಣಿಕೆಗಳು ದೊರಕುತ್ತಿಲ್ಲ"
242msgstr "ಕ್ಷಮಿಸಿ ನಿಮ್ಮ ಶೋಧನೆಗೆ ಸರಿಯಾದ ಹೊಂದಾಣಿಕೆಗಳು ದೊರಕುತ್ತಿಲ್ಲ"
253
243
po/ko.po+44−54
@@ -7,92 +7,92 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11−"PO-Revision-Date: 2013-06-27 05:59+0000\n"
11+"PO-Revision-Date: 2013-10-10 07:04+0000\n"
12−"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12+"Last-Translator: Kim Boram <boramism@gmail.com>\n"
13"Language-Team: Korean <ko@li.org>\n"
13"Language-Team: Korean <ko@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-11 05:58+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
23−msgstr ""
23+msgstr "전화"
24
24
25#: Applications/applications.js:29
25#: Applications/applications.js:29
26msgid "Camera"
26msgid "Camera"
27−msgstr ""
27+msgstr "카메라"
28
28
29#: Applications/applications.js:35
29#: Applications/applications.js:35
30msgid "Gallery"
30msgid "Gallery"
31−msgstr ""
31+msgstr "갤러리"
32
32
33#: Applications/applications.js:40
33#: Applications/applications.js:40
34msgid "Facebook"
34msgid "Facebook"
35−msgstr ""
35+msgstr "페이스북"
36
36
37#: Applications/applications.js:46
37#: Applications/applications.js:46
38msgid "Browser"
38msgid "Browser"
39−msgstr ""
39+msgstr "브라우저"
40
40
41#: Applications/applications.js:51
41#: Applications/applications.js:51
42msgid "Twitter"
42msgid "Twitter"
43−msgstr ""
43+msgstr "트위터"
44
44
45#: Applications/applications.js:57
45#: Applications/applications.js:57
46msgid "GMail"
46msgid "GMail"
47−msgstr ""
47+msgstr "지메일"
48
48
49#: Applications/applications.js:62
49#: Applications/applications.js:62
50msgid "Weather"
50msgid "Weather"
51−msgstr ""
51+msgstr "날씨"
52
52
53#: Applications/applications.js:68
53#: Applications/applications.js:68
54msgid "Notepad"
54msgid "Notepad"
55−msgstr ""
55+msgstr "메모장"
56
56
57#: Applications/applications.js:74
57#: Applications/applications.js:74
58msgid "Calendar"
58msgid "Calendar"
59−msgstr ""
59+msgstr "달력"
60
60
61#: Applications/applications.js:80
61#: Applications/applications.js:80
62msgid "Media Player"
62msgid "Media Player"
63−msgstr ""
63+msgstr "미디어 재생기"
64
64
65#: Applications/applications.js:86
65#: Applications/applications.js:86
66msgid "Evernote"
66msgid "Evernote"
67−msgstr ""
67+msgstr "에버노트"
68
68
69#: Applications/applications.js:91
69#: Applications/applications.js:91
70msgid "Map"
70msgid "Map"
71−msgstr ""
71+msgstr "지도"
72
72
73#: Applications/applications.js:96
73#: Applications/applications.js:96
74msgid "Pinterest"
74msgid "Pinterest"
75−msgstr ""
75+msgstr "핀터레스트"
76
76
77#: Applications/applications.js:101
77#: Applications/applications.js:101
78msgid "SoundCloud"
78msgid "SoundCloud"
79−msgstr ""
79+msgstr "사운드클라우드"
80
80
81#: Applications/applications.js:106
81#: Applications/applications.js:106
82msgid "Wikipedia"
82msgid "Wikipedia"
83−msgstr ""
83+msgstr "위키백과"
84
84
85#: Applications/applications.js:111
85#: Applications/applications.js:111
86msgid "YouTube"
86msgid "YouTube"
87−msgstr ""
87+msgstr "유튜브"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91−msgstr ""
91+msgstr "도입부 건너뛰기"
92
92
93#: Components/EdgeDemo.qml:112
93#: Components/EdgeDemo.qml:112
94msgid "Right edge"
94msgid "Right edge"
95−msgstr ""
95+msgstr "오른쪽 끝"
96
96
97#: Components/EdgeDemo.qml:113
97#: Components/EdgeDemo.qml:113
98msgid "Try swiping from the right edge to unlock the phone"
98msgid "Try swiping from the right edge to unlock the phone"
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137−msgstr "요즈음 찿은 것들"
137+msgstr "최근 검색"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr ""
185msgstr ""
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -245,9 +235,9 @@ msgstr ""
245
235
246#: Panel/SearchIndicator.qml:27
236#: Panel/SearchIndicator.qml:27
247msgid "Search"
237msgid "Search"
248−msgstr "찾기"
238+msgstr "검색"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
po/ky.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Соңку издөөлөр"
137msgstr "Соңку издөөлөр"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "Видеолор"
185msgstr "Видеолор"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "Сүйлөнүүдө..."
247msgid "Search"
237msgid "Search"
248msgstr "Издөө"
238msgstr "Издөө"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Тилекке каршы, сиздин издөөңүзгө эч нерсе дал келген жок."
242msgstr "Тилекке каршы, сиздин издөөңүзгө эч нерсе дал келген жок."
253
243
po/lo.po+22−32
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
13"Language-Team: Lao <lo@li.org>\n"
13"Language-Team: Lao <lo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-10-03 06:08+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16791)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr "ິYouTube"
87msgstr "ິYouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr "(%1)"
144msgstr "(%1)"
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr "ສົ່ງ"
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr "ຄໍ່ເຫັນ"
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,17 +184,21 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "ວິດີໂອ"
185msgstr "ວິດີໂອ"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr "ສົ່ງ"
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211−msgstr ""
201+msgstr "ຄໍ່ເຫັນ"
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
214msgid "Emergency Call"
204msgid "Emergency Call"
@@ -247,7 +237,7 @@ msgstr "ກໍາລັງເວົ້າ"
247msgid "Search"
237msgid "Search"
248msgstr "ຊອກຫາ"
238msgstr "ຊອກຫາ"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
po/lv.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-09-28 16:29+0000\n"
11"PO-Revision-Date: 2013-09-28 16:29+0000\n"
12"Last-Translator: Jānis-Marks Gailis <jeanmarc.gailis@gmail.com>\n"
12"Last-Translator: Jānis-Marks Gailis <jeanmarc.gailis@gmail.com>\n"
13"Language-Team: Latvian <lv@li.org>\n"
13"Language-Team: Latvian <lv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Vikipēdija"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Nesen veiktās meklēšanas"
137msgstr "Nesen veiktās meklēšanas"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "Video"
185msgstr "Video"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "Runa..."
247msgid "Search"
237msgid "Search"
248msgstr "Meklēt"
238msgstr "Meklēt"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Diemžēl nekas neatbilst jūsu meklētajam."
242msgstr "Diemžēl nekas neatbilst jūsu meklētajam."
253
243
po/my.po+52−62
@@ -7,92 +7,92 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11−"PO-Revision-Date: 2013-06-27 06:47+0000\n"
11+"PO-Revision-Date: 2013-10-09 11:35+0000\n"
12−"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12+"Last-Translator: Pyae Sone <Unknown>\n"
13"Language-Team: Burmese <my@li.org>\n"
13"Language-Team: Burmese <my@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-10 05:50+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
23−msgstr ""
23+msgstr "ဖုန်း"
24
24
25#: Applications/applications.js:29
25#: Applications/applications.js:29
26msgid "Camera"
26msgid "Camera"
27−msgstr ""
27+msgstr "ကင်မရာ"
28
28
29#: Applications/applications.js:35
29#: Applications/applications.js:35
30msgid "Gallery"
30msgid "Gallery"
31−msgstr ""
31+msgstr "ဓာတ်ပုံသိမ်းထားသည့်နေရာ"
32
32
33#: Applications/applications.js:40
33#: Applications/applications.js:40
34msgid "Facebook"
34msgid "Facebook"
35−msgstr ""
35+msgstr "Facebook"
36
36
37#: Applications/applications.js:46
37#: Applications/applications.js:46
38msgid "Browser"
38msgid "Browser"
39−msgstr ""
39+msgstr "Browser"
40
40
41#: Applications/applications.js:51
41#: Applications/applications.js:51
42msgid "Twitter"
42msgid "Twitter"
43−msgstr ""
43+msgstr "Twitter"
44
44
45#: Applications/applications.js:57
45#: Applications/applications.js:57
46msgid "GMail"
46msgid "GMail"
47−msgstr ""
47+msgstr "ဂျီမေးလ်"
48
48
49#: Applications/applications.js:62
49#: Applications/applications.js:62
50msgid "Weather"
50msgid "Weather"
51−msgstr ""
51+msgstr "ရာသီဥတု"
52
52
53#: Applications/applications.js:68
53#: Applications/applications.js:68
54msgid "Notepad"
54msgid "Notepad"
55−msgstr ""
55+msgstr "Notepad"
56
56
57#: Applications/applications.js:74
57#: Applications/applications.js:74
58msgid "Calendar"
58msgid "Calendar"
59−msgstr ""
59+msgstr "ပြက္ခဒိန်"
60
60
61#: Applications/applications.js:80
61#: Applications/applications.js:80
62msgid "Media Player"
62msgid "Media Player"
63−msgstr ""
63+msgstr "မီဒီယာဖွင့်စက်"
64
64
65#: Applications/applications.js:86
65#: Applications/applications.js:86
66msgid "Evernote"
66msgid "Evernote"
67−msgstr ""
67+msgstr "Evernote"
68
68
69#: Applications/applications.js:91
69#: Applications/applications.js:91
70msgid "Map"
70msgid "Map"
71−msgstr ""
71+msgstr "မြေပုံ"
72
72
73#: Applications/applications.js:96
73#: Applications/applications.js:96
74msgid "Pinterest"
74msgid "Pinterest"
75−msgstr ""
75+msgstr "Pinterest"
76
76
77#: Applications/applications.js:101
77#: Applications/applications.js:101
78msgid "SoundCloud"
78msgid "SoundCloud"
79−msgstr ""
79+msgstr "SoundCloud"
80
80
81#: Applications/applications.js:106
81#: Applications/applications.js:106
82msgid "Wikipedia"
82msgid "Wikipedia"
83−msgstr ""
83+msgstr "ဝီကီပီဒီးယား"
84
84
85#: Applications/applications.js:111
85#: Applications/applications.js:111
86msgid "YouTube"
86msgid "YouTube"
87−msgstr ""
87+msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91−msgstr ""
91+msgstr "မိတ်ဆက်ကိုကျော်မည်"
92
92
93#: Components/EdgeDemo.qml:112
93#: Components/EdgeDemo.qml:112
94msgid "Right edge"
94msgid "Right edge"
95−msgstr ""
95+msgstr "ညာဖက် အစွန်း"
96
96
97#: Components/EdgeDemo.qml:113
97#: Components/EdgeDemo.qml:113
98msgid "Try swiping from the right edge to unlock the phone"
98msgid "Try swiping from the right edge to unlock the phone"
@@ -100,7 +100,7 @@ msgstr ""
100
100
101#: Components/EdgeDemo.qml:144
101#: Components/EdgeDemo.qml:144
102msgid "Top edge"
102msgid "Top edge"
103−msgstr ""
103+msgstr "ထိပ် အစွန်း"
104
104
105#: Components/EdgeDemo.qml:145
105#: Components/EdgeDemo.qml:145
106msgid "Try swiping from the top edge to access the indicators"
106msgid "Try swiping from the top edge to access the indicators"
@@ -108,7 +108,7 @@ msgstr ""
108
108
109#: Components/EdgeDemo.qml:170
109#: Components/EdgeDemo.qml:170
110msgid "Close"
110msgid "Close"
111−msgstr ""
111+msgstr "ပိတ်"
112
112
113#: Components/EdgeDemo.qml:171
113#: Components/EdgeDemo.qml:171
114msgid "Swipe up again to close the settings screen"
114msgid "Swipe up again to close the settings screen"
@@ -116,7 +116,7 @@ msgstr ""
116
116
117#: Components/EdgeDemo.qml:198
117#: Components/EdgeDemo.qml:198
118msgid "Left edge"
118msgid "Left edge"
119−msgstr ""
119+msgstr "ဘယ်​ဖက် အစွန်း"
120
120
121#: Components/EdgeDemo.qml:199
121#: Components/EdgeDemo.qml:199
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
@@ -124,7 +124,7 @@ msgstr ""
124
124
125#: Components/EdgeDemo.qml:226
125#: Components/EdgeDemo.qml:226
126msgid "Well done"
126msgid "Well done"
127−msgstr ""
127+msgstr "ကောင်းအောင်ပြုလုပ်ခဲ့သည်"
128
128
129#: Components/EdgeDemo.qml:227
129#: Components/EdgeDemo.qml:227
130msgid ""
130msgid ""
@@ -132,43 +132,29 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
137msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143−msgstr ""
144+msgstr "(%1)"
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155−msgstr ""
157+msgstr "ဒီဟာကိုအမှတ်ပေးမည်"
156−
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172
158
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
@@ -176,11 +162,11 @@ msgstr ""
176
162
177#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
163#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
178msgid "Recent"
164msgid "Recent"
179−msgstr ""
165+msgstr "မကြာသေးခင်က"
180
166
181#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
167#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
182msgid "New Releases"
168msgid "New Releases"
183−msgstr ""
169+msgstr "အသစ်ထွက်ရှိသော"
184
170
185#: Dash/DashMusic.qml:30
171#: Dash/DashMusic.qml:30
186msgid "Top Charting"
172msgid "Top Charting"
@@ -192,23 +178,27 @@ msgstr "တေးဂီတ"
192
178
193#: Dash/DashVideos.qml:31
179#: Dash/DashVideos.qml:31
194msgid "Popular Online"
180msgid "Popular Online"
195−msgstr ""
181+msgstr "အွန်လိုင်းတွင်ပေါ်ပြူလာဖြစ်သော"
196
182
197#: Dash/DashVideos.qml:146
183#: Dash/DashVideos.qml:146
198msgid "Videos"
184msgid "Videos"
199msgstr "ဗီဒီယိုများ"
185msgstr "ဗီဒီယိုများ"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
211−msgstr ""
197+msgstr "ပို့မည်"
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
201+msgstr "မှတ်ချက်များ-"
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
214msgid "Emergency Call"
204msgid "Emergency Call"
@@ -247,7 +237,7 @@ msgstr "ပြောနေသည်"
247msgid "Search"
237msgid "Search"
248msgstr "ရှာဖွေ"
238msgstr "ရှာဖွေ"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "ဆောရီး၊ သင်၏ရှာဖွေမူနှင့်တူညီတာဘာမှမရှိပါ။"
242msgstr "ဆောရီး၊ သင်၏ရှာဖွေမူနှင့်တူညီတာဘာမှမရှိပါ။"
253
243
po/nb.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 07:02+0000\n"
11"PO-Revision-Date: 2013-06-27 07:02+0000\n"
12"Last-Translator: Joakim Langvand <jlangvand@gmail.com>\n"
12"Last-Translator: Joakim Langvand <jlangvand@gmail.com>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Siste søk"
137msgstr "Siste søk"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "Videoer"
185msgstr "Videoer"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "Snakker …"
247msgid "Search"
237msgid "Search"
248msgstr "Søk"
238msgstr "Søk"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Søket ga ingen treff."
242msgstr "Søket ga ingen treff."
253
243
po/nl.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 07:19+0000\n"
11"PO-Revision-Date: 2013-06-27 07:19+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Dutch <nl@li.org>\n"
13"Language-Team: Dutch <nl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Recente zoekopdrachten"
137msgstr "Recente zoekopdrachten"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "Video's"
185msgstr "Video's"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "Inspreken…"
247msgid "Search"
237msgid "Search"
248msgstr "Zoeken"
238msgstr "Zoeken"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "Er is helaas niets dat met uw zoekopdracht overeenkomt."
242msgstr "Er is helaas niets dat met uw zoekopdracht overeenkomt."
253
243
po/pl.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 08:52+0000\n"
11"PO-Revision-Date: 2013-06-27 08:52+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Polish <pl@li.org>\n"
13"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
18"|| n%100>=20) ? 1 : 2;\n"
18"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
20−"X-Generator: Launchpad (build 16774)\n"
20+"X-Generator: Launchpad (build 16799)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "Wikipedia"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:150
90+#: Components/EdgeDemoOverlay.qml:149
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr ""
92msgstr ""
93
93
@@ -133,44 +133,30 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:298
136+#: Components/PageHeader.qml:341
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Ostatnie wyszukiwania"
138msgstr "Ostatnie wyszukiwania"
139
139
140#. TRANSLATORS: Number of persons who rated this app
140#. TRANSLATORS: Number of persons who rated this app
141+#. TRANSLATORS: Number of persons who rated this app/video/whatever
141−#: Dash/Apps/AppInfo.qml:73
142+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
142#, qt-format
143#, qt-format
143msgid "(%1)"
144msgid "(%1)"
144msgstr ""
145msgstr ""
145
146
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
147−#: Dash/Apps/AppInfo.qml:85
149+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
148#, qt-format
150#, qt-format
149msgid "%1 review"
151msgid "%1 review"
150msgid_plural "%1 reviews"
152msgid_plural "%1 reviews"
151msgstr[0] ""
153msgstr[0] ""
152msgstr[1] ""
154msgstr[1] ""
153
155
154−#: Dash/Apps/AppPreview.qml:178
156+#: Dash/Apps/AppPreview.qml:126
155msgid "Rate this"
157msgid "Rate this"
156msgstr ""
158msgstr ""
157
159
158−#: Dash/Apps/AppReviews.qml:74
159−msgid "Add a review"
160−msgstr ""
161−
162−#: Dash/Apps/AppReviews.qml:86
163−msgid "Review"
164−msgstr ""
165−
166−#: Dash/Apps/AppReviews.qml:121
167−msgid "Send"
168−msgstr ""
169−
170−#: Dash/Apps/AppReviews.qml:139
171−msgid "Comments:"
172−msgstr ""
173−
174#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
160#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
175msgid "Featured"
161msgid "Featured"
176msgstr "Polecane"
162msgstr "Polecane"
@@ -199,17 +185,21 @@ msgstr "Popularne w sieci"
199msgid "Videos"
185msgid "Videos"
200msgstr "Filmy"
186msgstr "Filmy"
201
187
202−#: Dash/Video/VideoPreview.qml:130
188+#: Dash/Previews/Reviews.qml:74
203−msgid "Directed by:"
189+msgid "Add a review"
190+msgstr ""
191+
192+#: Dash/Previews/Reviews.qml:86
193+msgid "Review"
204−msgstr "Reżyseria:"
194+msgstr ""
205
195
206−#: Dash/Video/VideoPreview.qml:153
196+#: Dash/Previews/Reviews.qml:121
207−msgid "Starring:"
197+msgid "Send"
208−msgstr "Obsada:"
198+msgstr ""
209
199
210−#: Dash/Video/VideoPreview.qml:176
200+#: Dash/Previews/Reviews.qml:139
211−msgid "Author:"
201+msgid "Comments:"
212−msgstr "Autor:"
202+msgstr ""
213
203
214#: Greeter/Lockscreen.qml:142
204#: Greeter/Lockscreen.qml:142
215msgid "Emergency Call"
205msgid "Emergency Call"
@@ -248,7 +238,7 @@ msgstr "Rozpoznanie..."
248msgid "Search"
238msgid "Search"
249msgstr "Szukaj"
239msgstr "Szukaj"
250
240
251−#: plugins/Unity/scope.cpp:336
241+#: plugins/Unity/scope.cpp:361
252msgid "Sorry, there is nothing that matches your search."
242msgid "Sorry, there is nothing that matches your search."
253msgstr "Nie znaleziono pasujących wyników."
243msgstr "Nie znaleziono pasujących wyników."
254
244
po/pt_BR.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-01 13:05+0000\n"
11"PO-Revision-Date: 2013-10-01 13:05+0000\n"
12"Last-Translator: Rafael Neri <Unknown>\n"
12"Last-Translator: Rafael Neri <Unknown>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipédia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Pular introdução"
91msgstr "Pular introdução"
92
92
@@ -134,44 +134,30 @@ msgid ""
134"phone<br><br>Tap anywhere to start"
134"phone<br><br>Tap anywhere to start"
135msgstr ""
135msgstr ""
136
136
137−#: Components/PageHeader.qml:298
137+#: Components/PageHeader.qml:341
138msgid "Recent searches"
138msgid "Recent searches"
139msgstr "Pesquisas recentes"
139msgstr "Pesquisas recentes"
140
140
141#. TRANSLATORS: Number of persons who rated this app
141#. TRANSLATORS: Number of persons who rated this app
142+#. TRANSLATORS: Number of persons who rated this app/video/whatever
142−#: Dash/Apps/AppInfo.qml:73
143+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
143#, qt-format
144#, qt-format
144msgid "(%1)"
145msgid "(%1)"
145msgstr "(%1)"
146msgstr "(%1)"
146
147
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148#. TRANSLATORS: Number of persons who wrote reviews for this app
149+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
148−#: Dash/Apps/AppInfo.qml:85
150+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
149#, qt-format
151#, qt-format
150msgid "%1 review"
152msgid "%1 review"
151msgid_plural "%1 reviews"
153msgid_plural "%1 reviews"
152msgstr[0] "%1 análise"
154msgstr[0] "%1 análise"
153msgstr[1] "%1 análises"
155msgstr[1] "%1 análises"
154
156
155−#: Dash/Apps/AppPreview.qml:178
157+#: Dash/Apps/AppPreview.qml:126
156msgid "Rate this"
158msgid "Rate this"
157msgstr "Avaliar isto"
159msgstr "Avaliar isto"
158
160
159−#: Dash/Apps/AppReviews.qml:74
160−msgid "Add a review"
161−msgstr "Adicionar uma análise"
162−
163−#: Dash/Apps/AppReviews.qml:86
164−msgid "Review"
165−msgstr "Revisão"
166−
167−#: Dash/Apps/AppReviews.qml:121
168−msgid "Send"
169−msgstr "Enviar"
170−
171−#: Dash/Apps/AppReviews.qml:139
172−msgid "Comments:"
173−msgstr "Comentários:"
174−
175#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
161#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
176msgid "Featured"
162msgid "Featured"
177msgstr "Em destaque"
163msgstr "Em destaque"
@@ -200,17 +186,21 @@ msgstr "Popular Online"
200msgid "Videos"
186msgid "Videos"
201msgstr "Vídeos"
187msgstr "Vídeos"
202
188
203−#: Dash/Video/VideoPreview.qml:130
189+#: Dash/Previews/Reviews.qml:74
204−msgid "Directed by:"
190+msgid "Add a review"
205−msgstr "Realizado por:"
191+msgstr "Adicionar uma análise"
192+
193+#: Dash/Previews/Reviews.qml:86
194+msgid "Review"
195+msgstr "Revisão"
206
196
207−#: Dash/Video/VideoPreview.qml:153
197+#: Dash/Previews/Reviews.qml:121
208−msgid "Starring:"
198+msgid "Send"
209−msgstr "Estrelando:"
199+msgstr "Enviar"
210
200
211−#: Dash/Video/VideoPreview.qml:176
201+#: Dash/Previews/Reviews.qml:139
212−msgid "Author:"
202+msgid "Comments:"
213−msgstr "Autor:"
203+msgstr "Comentários:"
214
204
215#: Greeter/Lockscreen.qml:142
205#: Greeter/Lockscreen.qml:142
216msgid "Emergency Call"
206msgid "Emergency Call"
@@ -249,7 +239,7 @@ msgstr "Falando..."
249msgid "Search"
239msgid "Search"
250msgstr "Pesquisar"
240msgstr "Pesquisar"
251
241
252−#: plugins/Unity/scope.cpp:336
242+#: plugins/Unity/scope.cpp:361
253msgid "Sorry, there is nothing that matches your search."
243msgid "Sorry, there is nothing that matches your search."
254msgstr "Desculpe, não há nada que corresponda à sua pesquisa."
244msgstr "Desculpe, não há nada que corresponda à sua pesquisa."
255
245
po/ro.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Romanian <ro@li.org>\n"
13"Language-Team: Romanian <ro@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
18"== 0) && (n != 0))) ? 2: 1));\n"
18"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
20−"X-Generator: Launchpad (build 16774)\n"
20+"X-Generator: Launchpad (build 16799)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr ""
87msgid "YouTube"
87msgid "YouTube"
88msgstr ""
88msgstr ""
89
89
90−#: Components/EdgeDemoOverlay.qml:150
90+#: Components/EdgeDemoOverlay.qml:149
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr ""
92msgstr ""
93
93
@@ -133,44 +133,30 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:298
136+#: Components/PageHeader.qml:341
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Căutări recente"
138msgstr "Căutări recente"
139
139
140#. TRANSLATORS: Number of persons who rated this app
140#. TRANSLATORS: Number of persons who rated this app
141+#. TRANSLATORS: Number of persons who rated this app/video/whatever
141−#: Dash/Apps/AppInfo.qml:73
142+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
142#, qt-format
143#, qt-format
143msgid "(%1)"
144msgid "(%1)"
144msgstr ""
145msgstr ""
145
146
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
147−#: Dash/Apps/AppInfo.qml:85
149+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
148#, qt-format
150#, qt-format
149msgid "%1 review"
151msgid "%1 review"
150msgid_plural "%1 reviews"
152msgid_plural "%1 reviews"
151msgstr[0] ""
153msgstr[0] ""
152msgstr[1] ""
154msgstr[1] ""
153
155
154−#: Dash/Apps/AppPreview.qml:178
156+#: Dash/Apps/AppPreview.qml:126
155msgid "Rate this"
157msgid "Rate this"
156msgstr ""
158msgstr ""
157
159
158−#: Dash/Apps/AppReviews.qml:74
159−msgid "Add a review"
160−msgstr ""
161−
162−#: Dash/Apps/AppReviews.qml:86
163−msgid "Review"
164−msgstr ""
165−
166−#: Dash/Apps/AppReviews.qml:121
167−msgid "Send"
168−msgstr ""
169−
170−#: Dash/Apps/AppReviews.qml:139
171−msgid "Comments:"
172−msgstr ""
173−
174#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
160#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
175msgid "Featured"
161msgid "Featured"
176msgstr ""
162msgstr ""
@@ -199,16 +185,20 @@ msgstr ""
199msgid "Videos"
185msgid "Videos"
200msgstr "Video"
186msgstr "Video"
201
187
202−#: Dash/Video/VideoPreview.qml:130
188+#: Dash/Previews/Reviews.qml:74
203−msgid "Directed by:"
189+msgid "Add a review"
204msgstr ""
190msgstr ""
205
191
206−#: Dash/Video/VideoPreview.qml:153
192+#: Dash/Previews/Reviews.qml:86
207−msgid "Starring:"
193+msgid "Review"
208msgstr ""
194msgstr ""
209
195
210−#: Dash/Video/VideoPreview.qml:176
196+#: Dash/Previews/Reviews.qml:121
211−msgid "Author:"
197+msgid "Send"
198+msgstr ""
199+
200+#: Dash/Previews/Reviews.qml:139
201+msgid "Comments:"
212msgstr ""
202msgstr ""
213
203
214#: Greeter/Lockscreen.qml:142
204#: Greeter/Lockscreen.qml:142
@@ -248,7 +238,7 @@ msgstr "Vorbire..."
248msgid "Search"
238msgid "Search"
249msgstr "Căutare"
239msgstr "Căutare"
250
240
251−#: plugins/Unity/scope.cpp:336
241+#: plugins/Unity/scope.cpp:361
252msgid "Sorry, there is nothing that matches your search."
242msgid "Sorry, there is nothing that matches your search."
253msgstr ""
243msgstr ""
254"Ne pare rău, nu este nimic care se potrivește căutării dumneavoastră."
244"Ne pare rău, nu este nimic care se potrivește căutării dumneavoastră."
po/ru.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-01 05:55+0000\n"
11"PO-Revision-Date: 2013-10-01 05:55+0000\n"
12"Last-Translator: Zonov Roman <Unknown>\n"
12"Last-Translator: Zonov Roman <Unknown>\n"
13"Language-Team: Russian <ru@li.org>\n"
13"Language-Team: Russian <ru@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
20−"X-Generator: Launchpad (build 16774)\n"
20+"X-Generator: Launchpad (build 16799)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "Википедия"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:150
90+#: Components/EdgeDemoOverlay.qml:149
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "Пропустить обучение"
92msgstr "Пропустить обучение"
93
93
@@ -138,43 +138,29 @@ msgid ""
138"phone<br><br>Tap anywhere to start"
138"phone<br><br>Tap anywhere to start"
139msgstr ""
139msgstr ""
140
140
141−#: Components/PageHeader.qml:298
141+#: Components/PageHeader.qml:341
142msgid "Recent searches"
142msgid "Recent searches"
143msgstr "Последние поисковые запросы"
143msgstr "Последние поисковые запросы"
144
144
145#. TRANSLATORS: Number of persons who rated this app
145#. TRANSLATORS: Number of persons who rated this app
146+#. TRANSLATORS: Number of persons who rated this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:73
147+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
147#, qt-format
148#, qt-format
148msgid "(%1)"
149msgid "(%1)"
149msgstr "(%1)"
150msgstr "(%1)"
150
151
151#. TRANSLATORS: Number of persons who wrote reviews for this app
152#. TRANSLATORS: Number of persons who wrote reviews for this app
153+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
152−#: Dash/Apps/AppInfo.qml:85
154+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
153#, qt-format
155#, qt-format
154msgid "%1 review"
156msgid "%1 review"
155msgid_plural "%1 reviews"
157msgid_plural "%1 reviews"
156msgstr[0] "%1 отзыв"
158msgstr[0] "%1 отзыв"
157
159
158−#: Dash/Apps/AppPreview.qml:178
160+#: Dash/Apps/AppPreview.qml:126
159msgid "Rate this"
161msgid "Rate this"
160msgstr "Оцените это"
162msgstr "Оцените это"
161
163
162−#: Dash/Apps/AppReviews.qml:74
163−msgid "Add a review"
164−msgstr "Добавьте отзыв"
165−
166−#: Dash/Apps/AppReviews.qml:86
167−msgid "Review"
168−msgstr "Отзыв"
169−
170−#: Dash/Apps/AppReviews.qml:121
171−msgid "Send"
172−msgstr "Отправить"
173−
174−#: Dash/Apps/AppReviews.qml:139
175−msgid "Comments:"
176−msgstr "Комментарии:"
177−
178#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
179msgid "Featured"
165msgid "Featured"
180msgstr "Рекомендованное"
166msgstr "Рекомендованное"
@@ -203,17 +189,21 @@ msgstr "Популярное в Интернете"
203msgid "Videos"
189msgid "Videos"
204msgstr "Видео"
190msgstr "Видео"
205
191
206−#: Dash/Video/VideoPreview.qml:130
192+#: Dash/Previews/Reviews.qml:74
207−msgid "Directed by:"
193+msgid "Add a review"
208−msgstr "Режиссёр"
194+msgstr "Добавьте отзыв"
195+
196+#: Dash/Previews/Reviews.qml:86
197+msgid "Review"
198+msgstr "Отзыв"
209
199
210−#: Dash/Video/VideoPreview.qml:153
200+#: Dash/Previews/Reviews.qml:121
211−msgid "Starring:"
201+msgid "Send"
212−msgstr "В главных ролях:"
202+msgstr "Отправить"
213
203
214−#: Dash/Video/VideoPreview.qml:176
204+#: Dash/Previews/Reviews.qml:139
215−msgid "Author:"
205+msgid "Comments:"
216−msgstr "Автор:"
206+msgstr "Комментарии:"
217
207
218#: Greeter/Lockscreen.qml:142
208#: Greeter/Lockscreen.qml:142
219msgid "Emergency Call"
209msgid "Emergency Call"
@@ -252,7 +242,7 @@ msgstr "Говорите..."
252msgid "Search"
242msgid "Search"
253msgstr "Поиск"
243msgstr "Поиск"
254
244
255−#: plugins/Unity/scope.cpp:336
245+#: plugins/Unity/scope.cpp:361
256msgid "Sorry, there is nothing that matches your search."
246msgid "Sorry, there is nothing that matches your search."
257msgstr "Извините, поиск не дал результатов."
247msgstr "Извините, поиск не дал результатов."
258
248
po/shn.ponew file+251
@@ -0,0 +1,251 @@
1+# Shan translation for unity8
2+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
3+# This file is distributed under the same license as the unity8 package.
4+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
5+#
6+msgid ""
7+msgstr ""
8+"Project-Id-Version: unity8\n"
9+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11+"PO-Revision-Date: 2013-10-07 11:46+0000\n"
12+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13+"Language-Team: Shan <shn@li.org>\n"
14+"MIME-Version: 1.0\n"
15+"Content-Type: text/plain; charset=UTF-8\n"
16+"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19+"X-Generator: Launchpad (build 16799)\n"
20+
21+#: Applications/applications.js:23
22+msgid "Phone"
23+msgstr ""
24+
25+#: Applications/applications.js:29
26+msgid "Camera"
27+msgstr ""
28+
29+#: Applications/applications.js:35
30+msgid "Gallery"
31+msgstr ""
32+
33+#: Applications/applications.js:40
34+msgid "Facebook"
35+msgstr ""
36+
37+#: Applications/applications.js:46
38+msgid "Browser"
39+msgstr ""
40+
41+#: Applications/applications.js:51
42+msgid "Twitter"
43+msgstr ""
44+
45+#: Applications/applications.js:57
46+msgid "GMail"
47+msgstr ""
48+
49+#: Applications/applications.js:62
50+msgid "Weather"
51+msgstr ""
52+
53+#: Applications/applications.js:68
54+msgid "Notepad"
55+msgstr ""
56+
57+#: Applications/applications.js:74
58+msgid "Calendar"
59+msgstr ""
60+
61+#: Applications/applications.js:80
62+msgid "Media Player"
63+msgstr ""
64+
65+#: Applications/applications.js:86
66+msgid "Evernote"
67+msgstr ""
68+
69+#: Applications/applications.js:91
70+msgid "Map"
71+msgstr ""
72+
73+#: Applications/applications.js:96
74+msgid "Pinterest"
75+msgstr ""
76+
77+#: Applications/applications.js:101
78+msgid "SoundCloud"
79+msgstr ""
80+
81+#: Applications/applications.js:106
82+msgid "Wikipedia"
83+msgstr ""
84+
85+#: Applications/applications.js:111
86+msgid "YouTube"
87+msgstr ""
88+
89+#: Components/EdgeDemoOverlay.qml:149
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:112
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:113
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:144
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:145
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:170
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:171
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:198
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:199
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:226
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
133+msgstr ""
134+
135+#: Components/PageHeader.qml:341
136+msgid "Recent searches"
137+msgstr ""
138+
139+#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
142+#, qt-format
143+msgid "(%1)"
144+msgstr ""
145+
146+#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
149+#, qt-format
150+msgid "%1 review"
151+msgid_plural "%1 reviews"
152+msgstr[0] ""
153+msgstr[1] ""
154+
155+#: Dash/Apps/AppPreview.qml:126
156+msgid "Rate this"
157+msgstr ""
158+
159+#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
160+msgid "Featured"
161+msgstr ""
162+
163+#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
164+msgid "Recent"
165+msgstr ""
166+
167+#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
168+msgid "New Releases"
169+msgstr ""
170+
171+#: Dash/DashMusic.qml:30
172+msgid "Top Charting"
173+msgstr ""
174+
175+#: Dash/DashMusic.qml:91
176+msgid "Music"
177+msgstr ""
178+
179+#: Dash/DashVideos.qml:31
180+msgid "Popular Online"
181+msgstr ""
182+
183+#: Dash/DashVideos.qml:146
184+msgid "Videos"
185+msgstr ""
186+
187+#: Dash/Previews/Reviews.qml:74
188+msgid "Add a review"
189+msgstr ""
190+
191+#: Dash/Previews/Reviews.qml:86
192+msgid "Review"
193+msgstr ""
194+
195+#: Dash/Previews/Reviews.qml:121
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
201+msgstr ""
202+
203+#: Greeter/Lockscreen.qml:142
204+msgid "Emergency Call"
205+msgstr ""
206+
207+#: Greeter/PassphraseLockscreen.qml:59
208+#, qt-format
209+msgid "Hello %1"
210+msgstr ""
211+
212+#: Greeter/PassphraseLockscreen.qml:59
213+msgid "Hello"
214+msgstr ""
215+
216+#: Hud/HudParametrizedActionsPage.qml:132
217+msgid "Confirm"
218+msgstr ""
219+
220+#: Hud/Hud.qml:61 Hud/Hud.qml:99 Hud/Hud.qml:372
221+msgid "Type or say a command"
222+msgstr ""
223+
224+#: Hud/Hud.qml:84
225+msgid "Loading. Please Wait..."
226+msgstr ""
227+
228+#: Hud/Hud.qml:89
229+msgid "Speak Now..."
230+msgstr ""
231+
232+#: Hud/Hud.qml:94
233+msgid "Speaking..."
234+msgstr ""
235+
236+#: Panel/SearchIndicator.qml:27
237+msgid "Search"
238+msgstr ""
239+
240+#: plugins/Unity/scope.cpp:361
241+msgid "Sorry, there is nothing that matches your search."
242+msgstr ""
243+
244+#: plugins/Unity/showallfilteroption.cpp:41
245+msgid "All"
246+msgstr ""
247+
248+#: Shell.qml:453
249+#, qt-format
250+msgid "Please enter %1"
251+msgstr ""
po/si.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr ""
185msgstr ""
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr ""
247msgid "Search"
237msgid "Search"
248msgstr ""
238msgstr ""
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
po/sl.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-02 10:55+0000\n"
11"PO-Revision-Date: 2013-10-02 10:55+0000\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
18"n%100==4 ? 3 : 0);\n"
18"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2013-10-03 06:08+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
20−"X-Generator: Launchpad (build 16791)\n"
20+"X-Generator: Launchpad (build 16799)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "Wikipedija"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:150
90+#: Components/EdgeDemoOverlay.qml:149
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "Preskoči uvod"
92msgstr "Preskoči uvod"
93
93
@@ -137,18 +137,20 @@ msgstr ""
137"Sedaj ste osvojili poteze robov ter lahko začnete uporabljati "
137"Sedaj ste osvojili poteze robov ter lahko začnete uporabljati "
138"telefon<br><br>Tapnite kjerkoli na začetek"
138"telefon<br><br>Tapnite kjerkoli na začetek"
139
139
140−#: Components/PageHeader.qml:298
140+#: Components/PageHeader.qml:341
141msgid "Recent searches"
141msgid "Recent searches"
142msgstr "Nedavna iskanja"
142msgstr "Nedavna iskanja"
143
143
144#. TRANSLATORS: Number of persons who rated this app
144#. TRANSLATORS: Number of persons who rated this app
145+#. TRANSLATORS: Number of persons who rated this app/video/whatever
145−#: Dash/Apps/AppInfo.qml:73
146+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
146#, qt-format
147#, qt-format
147msgid "(%1)"
148msgid "(%1)"
148msgstr "(%1)"
149msgstr "(%1)"
149
150
150#. TRANSLATORS: Number of persons who wrote reviews for this app
151#. TRANSLATORS: Number of persons who wrote reviews for this app
152+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
151−#: Dash/Apps/AppInfo.qml:85
153+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
152#, qt-format
154#, qt-format
153msgid "%1 review"
155msgid "%1 review"
154msgid_plural "%1 reviews"
156msgid_plural "%1 reviews"
@@ -157,26 +159,10 @@ msgstr[1] "%1 ocena"
157msgstr[2] "%1 oceni"
159msgstr[2] "%1 oceni"
158msgstr[3] "%1 ocene"
160msgstr[3] "%1 ocene"
159
161
160−#: Dash/Apps/AppPreview.qml:178
162+#: Dash/Apps/AppPreview.qml:126
161msgid "Rate this"
163msgid "Rate this"
162msgstr "Ocenite"
164msgstr "Ocenite"
163
165
164−#: Dash/Apps/AppReviews.qml:74
165−msgid "Add a review"
166−msgstr "Dodaj oceno"
167−
168−#: Dash/Apps/AppReviews.qml:86
169−msgid "Review"
170−msgstr "Ocena"
171−
172−#: Dash/Apps/AppReviews.qml:121
173−msgid "Send"
174−msgstr "Pošlji"
175−
176−#: Dash/Apps/AppReviews.qml:139
177−msgid "Comments:"
178−msgstr "Opombe:"
179−
180#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
166#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
181msgid "Featured"
167msgid "Featured"
182msgstr "Predstavljeno"
168msgstr "Predstavljeno"
@@ -205,17 +191,21 @@ msgstr "Priljubljeno na spletu"
205msgid "Videos"
191msgid "Videos"
206msgstr "Videi"
192msgstr "Videi"
207
193
208−#: Dash/Video/VideoPreview.qml:130
194+#: Dash/Previews/Reviews.qml:74
209−msgid "Directed by:"
195+msgid "Add a review"
196+msgstr "Dodaj oceno"
197+
198+#: Dash/Previews/Reviews.qml:86
199+msgid "Review"
210−msgstr "Režija:"
200+msgstr "Ocena"
211
201
212−#: Dash/Video/VideoPreview.qml:153
202+#: Dash/Previews/Reviews.qml:121
213−msgid "Starring:"
203+msgid "Send"
214−msgstr "Igrajo:"
204+msgstr "Pošlji"
215
205
216−#: Dash/Video/VideoPreview.qml:176
206+#: Dash/Previews/Reviews.qml:139
217−msgid "Author:"
207+msgid "Comments:"
218−msgstr "Avtor:"
208+msgstr "Opombe:"
219
209
220#: Greeter/Lockscreen.qml:142
210#: Greeter/Lockscreen.qml:142
221msgid "Emergency Call"
211msgid "Emergency Call"
@@ -254,7 +244,7 @@ msgstr "Govorjenje ..."
254msgid "Search"
244msgid "Search"
255msgstr "Iskanje"
245msgstr "Iskanje"
256
246
257−#: plugins/Unity/scope.cpp:336
247+#: plugins/Unity/scope.cpp:361
258msgid "Sorry, there is nothing that matches your search."
248msgid "Sorry, there is nothing that matches your search."
259msgstr "Nič se ne ujema z vašim iskalnim nizom."
249msgstr "Nič se ne ujema z vašim iskalnim nizom."
260
250
po/sr.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Serbian <sr@li.org>\n"
13"Language-Team: Serbian <sr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
20−"X-Generator: Launchpad (build 16774)\n"
20+"X-Generator: Launchpad (build 16799)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr ""
87msgid "YouTube"
87msgid "YouTube"
88msgstr ""
88msgstr ""
89
89
90−#: Components/EdgeDemoOverlay.qml:150
90+#: Components/EdgeDemoOverlay.qml:149
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr ""
92msgstr ""
93
93
@@ -133,44 +133,30 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:298
136+#: Components/PageHeader.qml:341
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Скорашње претраге"
138msgstr "Скорашње претраге"
139
139
140#. TRANSLATORS: Number of persons who rated this app
140#. TRANSLATORS: Number of persons who rated this app
141+#. TRANSLATORS: Number of persons who rated this app/video/whatever
141−#: Dash/Apps/AppInfo.qml:73
142+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
142#, qt-format
143#, qt-format
143msgid "(%1)"
144msgid "(%1)"
144msgstr ""
145msgstr ""
145
146
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
147−#: Dash/Apps/AppInfo.qml:85
149+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
148#, qt-format
150#, qt-format
149msgid "%1 review"
151msgid "%1 review"
150msgid_plural "%1 reviews"
152msgid_plural "%1 reviews"
151msgstr[0] ""
153msgstr[0] ""
152msgstr[1] ""
154msgstr[1] ""
153
155
154−#: Dash/Apps/AppPreview.qml:178
156+#: Dash/Apps/AppPreview.qml:126
155msgid "Rate this"
157msgid "Rate this"
156msgstr ""
158msgstr ""
157
159
158−#: Dash/Apps/AppReviews.qml:74
159−msgid "Add a review"
160−msgstr ""
161−
162−#: Dash/Apps/AppReviews.qml:86
163−msgid "Review"
164−msgstr ""
165−
166−#: Dash/Apps/AppReviews.qml:121
167−msgid "Send"
168−msgstr ""
169−
170−#: Dash/Apps/AppReviews.qml:139
171−msgid "Comments:"
172−msgstr ""
173−
174#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
160#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
175msgid "Featured"
161msgid "Featured"
176msgstr ""
162msgstr ""
@@ -199,16 +185,20 @@ msgstr ""
199msgid "Videos"
185msgid "Videos"
200msgstr "Видео"
186msgstr "Видео"
201
187
202−#: Dash/Video/VideoPreview.qml:130
188+#: Dash/Previews/Reviews.qml:74
203−msgid "Directed by:"
189+msgid "Add a review"
204msgstr ""
190msgstr ""
205
191
206−#: Dash/Video/VideoPreview.qml:153
192+#: Dash/Previews/Reviews.qml:86
207−msgid "Starring:"
193+msgid "Review"
208msgstr ""
194msgstr ""
209
195
210−#: Dash/Video/VideoPreview.qml:176
196+#: Dash/Previews/Reviews.qml:121
211−msgid "Author:"
197+msgid "Send"
198+msgstr ""
199+
200+#: Dash/Previews/Reviews.qml:139
201+msgid "Comments:"
212msgstr ""
202msgstr ""
213
203
214#: Greeter/Lockscreen.qml:142
204#: Greeter/Lockscreen.qml:142
@@ -248,7 +238,7 @@ msgstr "Говор..."
248msgid "Search"
238msgid "Search"
249msgstr "Претрага"
239msgstr "Претрага"
250
240
251−#: plugins/Unity/scope.cpp:336
241+#: plugins/Unity/scope.cpp:361
252msgid "Sorry, there is nothing that matches your search."
242msgid "Sorry, there is nothing that matches your search."
253msgstr "Нажалост, претрага није наишла на икакво подударање."
243msgstr "Нажалост, претрага није наишла на икакво подударање."
254
244
po/sv.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Swedish <sv@li.org>\n"
13"Language-Team: Swedish <sv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr ""
185msgstr ""
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr ""
247msgid "Search"
237msgid "Search"
248msgstr ""
238msgstr ""
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
po/te.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 09:57+0000\n"
11"PO-Revision-Date: 2013-06-27 09:57+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Telugu <te@li.org>\n"
13"Language-Team: Telugu <te@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr ""
185msgstr ""
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr ""
247msgid "Search"
237msgid "Search"
248msgstr ""
238msgstr ""
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
po/tr.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-10-01 13:21+0000\n"
11"PO-Revision-Date: 2013-10-01 13:21+0000\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
13"Language-Team: Turkish <tr@li.org>\n"
13"Language-Team: Turkish <tr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Vikipedi"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "İntro'yu geç"
91msgstr "İntro'yu geç"
92
92
@@ -133,44 +133,30 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:298
136+#: Components/PageHeader.qml:341
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Son Arananlar"
138msgstr "Son Arananlar"
139
139
140#. TRANSLATORS: Number of persons who rated this app
140#. TRANSLATORS: Number of persons who rated this app
141+#. TRANSLATORS: Number of persons who rated this app/video/whatever
141−#: Dash/Apps/AppInfo.qml:73
142+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
142#, qt-format
143#, qt-format
143msgid "(%1)"
144msgid "(%1)"
144msgstr "(%1)"
145msgstr "(%1)"
145
146
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147#. TRANSLATORS: Number of persons who wrote reviews for this app
148+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
147−#: Dash/Apps/AppInfo.qml:85
149+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
148#, qt-format
150#, qt-format
149msgid "%1 review"
151msgid "%1 review"
150msgid_plural "%1 reviews"
152msgid_plural "%1 reviews"
151msgstr[0] "%1 inceleme"
153msgstr[0] "%1 inceleme"
152msgstr[1] "%1 inceleme"
154msgstr[1] "%1 inceleme"
153
155
154−#: Dash/Apps/AppPreview.qml:178
156+#: Dash/Apps/AppPreview.qml:126
155msgid "Rate this"
157msgid "Rate this"
156msgstr "Oyla"
158msgstr "Oyla"
157
159
158−#: Dash/Apps/AppReviews.qml:74
159−msgid "Add a review"
160−msgstr "Bir inceleme ekle"
161−
162−#: Dash/Apps/AppReviews.qml:86
163−msgid "Review"
164−msgstr "İnceleme"
165−
166−#: Dash/Apps/AppReviews.qml:121
167−msgid "Send"
168−msgstr "Gönder"
169−
170−#: Dash/Apps/AppReviews.qml:139
171−msgid "Comments:"
172−msgstr "Yorumlar:"
173−
174#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
160#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
175msgid "Featured"
161msgid "Featured"
176msgstr "Öne Çıkanlar"
162msgstr "Öne Çıkanlar"
@@ -199,17 +185,21 @@ msgstr "Genellikle Çevrimiçi"
199msgid "Videos"
185msgid "Videos"
200msgstr "Videolar"
186msgstr "Videolar"
201
187
202−#: Dash/Video/VideoPreview.qml:130
188+#: Dash/Previews/Reviews.qml:74
203−msgid "Directed by:"
189+msgid "Add a review"
190+msgstr "Bir inceleme ekle"
191+
192+#: Dash/Previews/Reviews.qml:86
193+msgid "Review"
204−msgstr "Yönetmen"
194+msgstr "İnceleme"
205
195
206−#: Dash/Video/VideoPreview.qml:153
196+#: Dash/Previews/Reviews.qml:121
207−msgid "Starring:"
197+msgid "Send"
208−msgstr "Başroller:"
198+msgstr "Gönder"
209
199
210−#: Dash/Video/VideoPreview.qml:176
200+#: Dash/Previews/Reviews.qml:139
211−msgid "Author:"
201+msgid "Comments:"
212−msgstr "Yazar:"
202+msgstr "Yorumlar:"
213
203
214#: Greeter/Lockscreen.qml:142
204#: Greeter/Lockscreen.qml:142
215msgid "Emergency Call"
205msgid "Emergency Call"
@@ -248,7 +238,7 @@ msgstr "Konuşuyor..."
248msgid "Search"
238msgid "Search"
249msgstr "Ara"
239msgstr "Ara"
250
240
251−#: plugins/Unity/scope.cpp:336
241+#: plugins/Unity/scope.cpp:361
252msgid "Sorry, there is nothing that matches your search."
242msgid "Sorry, there is nothing that matches your search."
253msgstr "Üzgünüz, aramanızla eşleşen hiçbir şey yok."
243msgstr "Üzgünüz, aramanızla eşleşen hiçbir şey yok."
254
244
po/ug.po+33−44
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11−"PO-Revision-Date: 2013-06-27 11:02+0000\n"
11+"PO-Revision-Date: 2013-10-09 22:38+0000\n"
12−"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12+"Last-Translator: Gheyret T.Kenji <Unknown>\n"
13"Language-Team: Uyghur <ug@li.org>\n"
13"Language-Team: Uyghur <ug@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-10 05:50+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,13 +86,13 @@ msgstr "ۋىكىپېدىيە"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
93#: Components/EdgeDemo.qml:112
93#: Components/EdgeDemo.qml:112
94msgid "Right edge"
94msgid "Right edge"
95−msgstr ""
95+msgstr "ئوڭ گىرۋەك"
96
96
97#: Components/EdgeDemo.qml:113
97#: Components/EdgeDemo.qml:113
98msgid "Try swiping from the right edge to unlock the phone"
98msgid "Try swiping from the right edge to unlock the phone"
@@ -100,7 +100,7 @@ msgstr ""
100
100
101#: Components/EdgeDemo.qml:144
101#: Components/EdgeDemo.qml:144
102msgid "Top edge"
102msgid "Top edge"
103−msgstr ""
103+msgstr "ئۈستى گىرۋەك"
104
104
105#: Components/EdgeDemo.qml:145
105#: Components/EdgeDemo.qml:145
106msgid "Try swiping from the top edge to access the indicators"
106msgid "Try swiping from the top edge to access the indicators"
@@ -108,7 +108,7 @@ msgstr ""
108
108
109#: Components/EdgeDemo.qml:170
109#: Components/EdgeDemo.qml:170
110msgid "Close"
110msgid "Close"
111−msgstr ""
111+msgstr "ياپ"
112
112
113#: Components/EdgeDemo.qml:171
113#: Components/EdgeDemo.qml:171
114msgid "Swipe up again to close the settings screen"
114msgid "Swipe up again to close the settings screen"
@@ -116,7 +116,7 @@ msgstr ""
116
116
117#: Components/EdgeDemo.qml:198
117#: Components/EdgeDemo.qml:198
118msgid "Left edge"
118msgid "Left edge"
119−msgstr ""
119+msgstr "سول گىرۋەك"
120
120
121#: Components/EdgeDemo.qml:199
121#: Components/EdgeDemo.qml:199
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
122msgid "Swipe from the left to reveal the launcher for quick access to apps"
@@ -132,44 +132,29 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "يېقىنقى ئىزدەشلەر"
137msgstr "يېقىنقى ئىزدەشلەر"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143−msgstr ""
144+msgstr "(%1)"
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150−msgstr[0] ""
152+msgstr[0] "%1 باھا"
151−msgstr[1] ""
152
153
153−#: Dash/Apps/AppPreview.qml:178
154+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
155msgid "Rate this"
155msgstr ""
156msgstr ""
156
157
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
158#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
159msgid "Featured"
175msgstr "داڭلىق"
160msgstr "داڭلىق"
@@ -198,17 +183,21 @@ msgstr ""
198msgid "Videos"
183msgid "Videos"
199msgstr "سىنلار"
184msgstr "سىنلار"
200
185
201−#: Dash/Video/VideoPreview.qml:130
186+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
187+msgid "Add a review"
203msgstr ""
188msgstr ""
204
189
205−#: Dash/Video/VideoPreview.qml:153
190+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
191+msgid "Review"
207msgstr ""
192msgstr ""
208
193
209−#: Dash/Video/VideoPreview.qml:176
194+#: Dash/Previews/Reviews.qml:121
195+msgid "Send"
196+msgstr "ئەۋەت"
197+
198+#: Dash/Previews/Reviews.qml:139
210−msgid "Author:"
199+msgid "Comments:"
211−msgstr "ئاپتور:"
200+msgstr "ئىنكاس:"
212
201
213#: Greeter/Lockscreen.qml:142
202#: Greeter/Lockscreen.qml:142
214msgid "Emergency Call"
203msgid "Emergency Call"
@@ -217,7 +206,7 @@ msgstr ""
217#: Greeter/PassphraseLockscreen.qml:59
206#: Greeter/PassphraseLockscreen.qml:59
218#, qt-format
207#, qt-format
219msgid "Hello %1"
208msgid "Hello %1"
220−msgstr ""
209+msgstr "سالام %1"
221
210
222#: Greeter/PassphraseLockscreen.qml:59
211#: Greeter/PassphraseLockscreen.qml:59
223msgid "Hello"
212msgid "Hello"
@@ -247,15 +236,15 @@ msgstr "سۆزلەۋاتىسىز…"
247msgid "Search"
236msgid "Search"
248msgstr "ئىزدە"
237msgstr "ئىزدە"
249
238
250−#: plugins/Unity/scope.cpp:336
239+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
240msgid "Sorry, there is nothing that matches your search."
252msgstr "كەچۈرۈڭ، ئىزدىگىنىڭىزگە ماس نەتىجە تېپىلمىدى."
241msgstr "كەچۈرۈڭ، ئىزدىگىنىڭىزگە ماس نەتىجە تېپىلمىدى."
253
242
254#: plugins/Unity/showallfilteroption.cpp:41
243#: plugins/Unity/showallfilteroption.cpp:41
255msgid "All"
244msgid "All"
256−msgstr ""
245+msgstr "ھەممىسى"
257
246
258#: Shell.qml:453
247#: Shell.qml:453
259#, qt-format
248#, qt-format
260msgid "Please enter %1"
249msgid "Please enter %1"
261−msgstr ""
250+msgstr "%1 نى كىرگۈزۈڭ"
po/uk.po+24−34
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-09-28 07:54+0000\n"
11"PO-Revision-Date: 2013-09-28 07:54+0000\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
20−"X-Generator: Launchpad (build 16774)\n"
20+"X-Generator: Launchpad (build 16799)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "Вікіпедія"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:150
90+#: Components/EdgeDemoOverlay.qml:149
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "Пропустити вступ"
92msgstr "Пропустити вступ"
93
93
@@ -136,18 +136,20 @@ msgid ""
136"phone<br><br>Tap anywhere to start"
136"phone<br><br>Tap anywhere to start"
137msgstr ""
137msgstr ""
138
138
139−#: Components/PageHeader.qml:298
139+#: Components/PageHeader.qml:341
140msgid "Recent searches"
140msgid "Recent searches"
141msgstr "Нещодавні пошуки"
141msgstr "Нещодавні пошуки"
142
142
143#. TRANSLATORS: Number of persons who rated this app
143#. TRANSLATORS: Number of persons who rated this app
144+#. TRANSLATORS: Number of persons who rated this app/video/whatever
144−#: Dash/Apps/AppInfo.qml:73
145+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
145#, qt-format
146#, qt-format
146msgid "(%1)"
147msgid "(%1)"
147msgstr "(%1)"
148msgstr "(%1)"
148
149
149#. TRANSLATORS: Number of persons who wrote reviews for this app
150#. TRANSLATORS: Number of persons who wrote reviews for this app
151+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
150−#: Dash/Apps/AppInfo.qml:85
152+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
151#, qt-format
153#, qt-format
152msgid "%1 review"
154msgid "%1 review"
153msgid_plural "%1 reviews"
155msgid_plural "%1 reviews"
@@ -155,26 +157,10 @@ msgstr[0] "%1 рецензія"
155msgstr[1] "%1 рецензії"
157msgstr[1] "%1 рецензії"
156msgstr[2] "%1 рецензій"
158msgstr[2] "%1 рецензій"
157
159
158−#: Dash/Apps/AppPreview.qml:178
160+#: Dash/Apps/AppPreview.qml:126
159msgid "Rate this"
161msgid "Rate this"
160msgstr "Оцінити"
162msgstr "Оцінити"
161
163
162−#: Dash/Apps/AppReviews.qml:74
163−msgid "Add a review"
164−msgstr "Додати рецензію"
165−
166−#: Dash/Apps/AppReviews.qml:86
167−msgid "Review"
168−msgstr "Рецензія"
169−
170−#: Dash/Apps/AppReviews.qml:121
171−msgid "Send"
172−msgstr "Надіслати"
173−
174−#: Dash/Apps/AppReviews.qml:139
175−msgid "Comments:"
176−msgstr "Коментарі:"
177−
178#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
179msgid "Featured"
165msgid "Featured"
180msgstr "Рекомендовані"
166msgstr "Рекомендовані"
@@ -203,17 +189,21 @@ msgstr "Популярне у мережі"
203msgid "Videos"
189msgid "Videos"
204msgstr "Відео"
190msgstr "Відео"
205
191
206−#: Dash/Video/VideoPreview.qml:130
192+#: Dash/Previews/Reviews.qml:74
207−msgid "Directed by:"
193+msgid "Add a review"
208−msgstr "Режисер:"
194+msgstr "Додати рецензію"
195+
196+#: Dash/Previews/Reviews.qml:86
197+msgid "Review"
198+msgstr "Рецензія"
209
199
210−#: Dash/Video/VideoPreview.qml:153
200+#: Dash/Previews/Reviews.qml:121
211−msgid "Starring:"
201+msgid "Send"
212−msgstr "Актори:"
202+msgstr "Надіслати"
213
203
214−#: Dash/Video/VideoPreview.qml:176
204+#: Dash/Previews/Reviews.qml:139
215−msgid "Author:"
205+msgid "Comments:"
216−msgstr "Автор:"
206+msgstr "Коментарі:"
217
207
218#: Greeter/Lockscreen.qml:142
208#: Greeter/Lockscreen.qml:142
219msgid "Emergency Call"
209msgid "Emergency Call"
@@ -252,7 +242,7 @@ msgstr "Мовлення…"
252msgid "Search"
242msgid "Search"
253msgstr "Пошук"
243msgstr "Пошук"
254
244
255−#: plugins/Unity/scope.cpp:336
245+#: plugins/Unity/scope.cpp:361
256msgid "Sorry, there is nothing that matches your search."
246msgid "Sorry, there is nothing that matches your search."
257msgstr "Вибачте, для вказаних вами ключових слів нічого не знайдено."
247msgstr "Вибачте, для вказаних вами ключових слів нічого не знайдено."
258
248
po/unity8.pot+3−31
@@ -8,7 +8,7 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: \n"
10"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11+"POT-Creation-Date: 2013-10-11 12:12+0200\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -156,34 +156,6 @@ msgstr[1] ""
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
159−#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
160−msgid "Featured"
161−msgstr ""
162−
163−#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
164−msgid "Recent"
165−msgstr ""
166−
167−#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
168−msgid "New Releases"
169−msgstr ""
170−
171−#: Dash/DashMusic.qml:30
172−msgid "Top Charting"
173−msgstr ""
174−
175−#: Dash/DashMusic.qml:91
176−msgid "Music"
177−msgstr ""
178−
179−#: Dash/DashVideos.qml:31
180−msgid "Popular Online"
181−msgstr ""
182−
183−#: Dash/DashVideos.qml:146
184−msgid "Videos"
185−msgstr ""
186−
187#: Dash/Previews/Reviews.qml:74
159#: Dash/Previews/Reviews.qml:74
188msgid "Add a review"
160msgid "Add a review"
189msgstr ""
161msgstr ""
@@ -237,7 +209,7 @@ msgstr ""
237msgid "Search"
209msgid "Search"
238msgstr ""
210msgstr ""
239
211
240−#: plugins/Unity/scope.cpp:361
212+#: plugins/Unity/scope.cpp:398
241msgid "Sorry, there is nothing that matches your search."
213msgid "Sorry, there is nothing that matches your search."
242msgstr ""
214msgstr ""
243
215
@@ -245,7 +217,7 @@ msgstr ""
245msgid "All"
217msgid "All"
246msgstr ""
218msgstr ""
247
219
248−#: Shell.qml:453
220+#: Shell.qml:438
249#, qt-format
221#, qt-format
250msgid "Please enter %1"
222msgid "Please enter %1"
251msgstr ""
223msgstr ""
po/xh.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:01+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr ""
185msgstr ""
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr ""
247msgid "Search"
237msgid "Search"
248msgstr ""
238msgstr ""
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
po/zh_CN.po+27−37
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11−"PO-Revision-Date: 2013-06-27 10:33+0000\n"
11+"PO-Revision-Date: 2013-10-09 13:51+0000\n"
12−"Last-Translator: Anthony Wong <anthony.wong@canonical.com>\n"
12+"Last-Translator: Aron Xu <Unknown>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-10 05:50+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "维基百科"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,51 +132,37 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "近期搜索"
137msgstr "近期搜索"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr "推荐"
161msgstr "推荐"
176
162
177#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
163#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
178msgid "Recent"
164msgid "Recent"
179−msgstr "最近"
165+msgstr "最近使用"
180
166
181#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
167#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
182msgid "New Releases"
168msgid "New Releases"
@@ -198,17 +184,21 @@ msgstr "经常在线"
198msgid "Videos"
184msgid "Videos"
199msgstr "视频"
185msgstr "视频"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
189+msgstr ""
190+
191+#: Dash/Previews/Reviews.qml:86
192+msgid "Review"
203−msgstr "导演:"
193+msgstr ""
204
194
205−#: Dash/Video/VideoPreview.qml:153
195+#: Dash/Previews/Reviews.qml:121
206−msgid "Starring:"
196+msgid "Send"
207−msgstr "主演:"
197+msgstr ""
208
198
209−#: Dash/Video/VideoPreview.qml:176
199+#: Dash/Previews/Reviews.qml:139
210−msgid "Author:"
200+msgid "Comments:"
211−msgstr "作者:"
201+msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
214msgid "Emergency Call"
204msgid "Emergency Call"
@@ -247,7 +237,7 @@ msgstr "讲话中..."
247msgid "Search"
237msgid "Search"
248msgstr "搜索"
238msgstr "搜索"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "对不起,没有找到您想要的结果。"
242msgstr "对不起,没有找到您想要的结果。"
253
243
po/zh_TW.po+21−31
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
11"PO-Revision-Date: 2013-06-27 10:24+0000\n"
11"PO-Revision-Date: 2013-06-27 10:24+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-08 07:02+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
19+"X-Generator: Launchpad (build 16799)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "最近搜尋"
137msgstr "最近搜尋"
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr "影片"
185msgstr "影片"
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr "說話中..."
247msgid "Search"
237msgid "Search"
248msgstr "搜尋"
238msgstr "搜尋"
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr "很抱歉,找不到符合您想搜尋的結果。"
242msgstr "很抱歉,找不到符合您想搜尋的結果。"
253
243
tests/autopilot/unity8/shell/tests/__init__.py+17
@@ -87,6 +87,12 @@ class UnityTestCase(AutopilotTestCase):
87 self._proxy = None
87 self._proxy = None
88 self._lightdm_mock_type = None
88 self._lightdm_mock_type = None
89 self._qml_mock_enabled = True
89 self._qml_mock_enabled = True
90+
91+ #### FIXME: This is a work around re: lp:1238417 ####
92+ from autopilot.input import _uinput
93+ _uinput._touch_device = _uinput.create_touch_device()
94+ ####
95+
90 self.touch = Touch.create()
96 self.touch = Touch.create()
91 self._setup_display_details()
97 self._setup_display_details()
92
98
@@ -164,6 +170,17 @@ class UnityTestCase(AutopilotTestCase):
164 if self._qml_mock_enabled:
170 if self._qml_mock_enabled:
165 self._setup_extra_mock_environment_patch()
171 self._setup_extra_mock_environment_patch()
166
172
173+ # FIXME: we shouldn't be doing this
174+ # $MIR_SOCKET, fallback to $XDG_RUNTIME_DIR/mir_socket and /tmp/mir_socket as last resort
175+ try:
176+ os.unlink(os.getenv('MIR_SOCKET', os.path.join(os.getenv('XDG_RUNTIME_DIR', "/tmp"), "mir_socket")))
177+ except OSError:
178+ pass
179+ try:
180+ os.unlink("/tmp/mir_socket")
181+ except OSError:
182+ pass
183+
167 app_proxy = self.launch_test_application(
184 app_proxy = self.launch_test_application(
168 binary_path,
185 binary_path,
169 *self.unity_geometry_args,
186 *self.unity_geometry_args,
tests/mocks/Unity/fake_scope.cpp+13
@@ -31,6 +31,7 @@ Scope::Scope(QObject* parent)
31 : QObject(parent)
31 : QObject(parent)
32 , m_visible(false)
32 , m_visible(false)
33 , m_searching(false)
33 , m_searching(false)
34+ , m_isActive(false)
34 , m_categories(new Categories(this))
35 , m_categories(new Categories(this))
35 , m_results(new DeeListModel(this))
36 , m_results(new DeeListModel(this))
36{
37{
@@ -46,6 +47,7 @@ Scope::Scope(QString const& id, QString const& name, bool visible, QObject* pare
46 , m_name(name)
47 , m_name(name)
47 , m_visible(visible)
48 , m_visible(visible)
48 , m_searching(false)
49 , m_searching(false)
50+ , m_isActive(false)
49 , m_categories(new Categories(this))
51 , m_categories(new Categories(this))
50 , m_results(new DeeListModel(this))
52 , m_results(new DeeListModel(this))
51{
53{
@@ -107,6 +109,10 @@ bool Scope::visible() const {
107 return m_visible;
109 return m_visible;
108}
110}
109
111
112+bool Scope::isActive() const {
113+ return m_isActive;
114+}
115+
110void Scope::setName(const QString &str) {
116void Scope::setName(const QString &str) {
111 if (str != m_name) {
117 if (str != m_name) {
112 m_name = str;
118 m_name = str;
@@ -128,6 +134,13 @@ void Scope::setFormFactor(const QString &str) {
128 }
134 }
129}
135}
130
136
137+void Scope::setActive(const bool active) {
138+ if (active != m_isActive) {
139+ m_isActive = active;
140+ Q_EMIT isActiveChanged();
141+ }
142+}
143+
131void Scope::setSearchInProgress(const bool inProg) {
144void Scope::setSearchInProgress(const bool inProg) {
132 if (inProg != m_searching) {
145 if (inProg != m_searching) {
133 m_searching = inProg;
146 m_searching = inProg;
tests/mocks/Unity/fake_scope.h+5
@@ -41,6 +41,7 @@ class Scope : public QObject
41 Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
41 Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
42 Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
42 Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
43 Q_PROPERTY(QString formFactor READ formFactor WRITE setFormFactor NOTIFY formFactorChanged)
43 Q_PROPERTY(QString formFactor READ formFactor WRITE setFormFactor NOTIFY formFactorChanged)
44+ Q_PROPERTY(bool isActive READ isActive WRITE setActive NOTIFY isActiveChanged)
44
45
45public:
46public:
46 Scope(QObject* parent = 0);
47 Scope(QObject* parent = 0);
@@ -60,12 +61,14 @@ public:
60 QString searchQuery() const;
61 QString searchQuery() const;
61 QString noResultsHint() const;
62 QString noResultsHint() const;
62 QString formFactor() const;
63 QString formFactor() const;
64+ bool isActive() const;
63
65
64 /* setters */
66 /* setters */
65 void setName(const QString& name);
67 void setName(const QString& name);
66 void setSearchQuery(const QString& search_query);
68 void setSearchQuery(const QString& search_query);
67 void setNoResultsHint(const QString& hint);
69 void setNoResultsHint(const QString& hint);
68 void setFormFactor(const QString& form_factor);
70 void setFormFactor(const QString& form_factor);
71+ void setActive(const bool);
69 void setSearchInProgress(const bool inProg);
72 void setSearchInProgress(const bool inProg);
70
73
71 Q_INVOKABLE void activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
74 Q_INVOKABLE void activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
@@ -89,6 +92,7 @@ Q_SIGNALS:
89 void searchQueryChanged();
92 void searchQueryChanged();
90 void noResultsHintChanged();
93 void noResultsHintChanged();
91 void formFactorChanged();
94 void formFactorChanged();
95+ void isActiveChanged();
92
96
93 // signals triggered by activate(..) or preview(..) requests.
97 // signals triggered by activate(..) or preview(..) requests.
94 void previewReady(Preview *preview);
98 void previewReady(Preview *preview);
@@ -107,6 +111,7 @@ protected:
107 QString m_formFactor;
111 QString m_formFactor;
108 bool m_visible;
112 bool m_visible;
109 bool m_searching;
113 bool m_searching;
114+ bool m_isActive;
110
115
111 Categories* m_categories;
116 Categories* m_categories;
112 DeeListModel* m_results;
117 DeeListModel* m_results;
tests/plugins/Unity/CMakeLists.txt+1−1
@@ -1,7 +1,7 @@
1add_subdirectory(Indicators)
1add_subdirectory(Indicators)
2add_subdirectory(Launcher)
2add_subdirectory(Launcher)
3
3
4−pkg_check_modules(UNITYCORE REQUIRED unity-core-6.0)
4+pkg_check_modules(UNITYCORE REQUIRED unity-core-6.0>=7.1.1)
5pkg_check_modules(LIBUNITYPROTO REQUIRED unity-protocol-private)
5pkg_check_modules(LIBUNITYPROTO REQUIRED unity-protocol-private)
6pkg_check_modules(LIBUNITY REQUIRED unity)
6pkg_check_modules(LIBUNITY REQUIRED unity)
7pkg_check_modules(LIBSIGCPP REQUIRED sigc++-2.0)
7pkg_check_modules(LIBSIGCPP REQUIRED sigc++-2.0)
tests/plugins/Unity/Launcher/launcherbackendtest.cpp−21
@@ -43,27 +43,6 @@ private Q_SLOTS:
43 QCOMPARE(backend.storedApplications(), QStringList() << "rel-icon" << "abs-icon");
43 QCOMPARE(backend.storedApplications(), QStringList() << "rel-icon" << "abs-icon");
44 }
44 }
45
45
46− void testPinning()
47− {
48− LauncherBackend backend;
49−
50− backend.setStoredApplications(QStringList() << "rel-icon" << "abs-icon");
51− QCOMPARE(backend.isPinned("rel-icon"), false);
52− QCOMPARE(backend.isPinned("abs-icon"), false);
53−
54− backend.setPinned("rel-icon", true);
55− QCOMPARE(backend.isPinned("rel-icon"), true);
56−
57− backend.setStoredApplications(QStringList() << "rel-icon" << "abs-icon" << "no-name");
58− QCOMPARE(backend.isPinned("rel-icon"), true);
59− QCOMPARE(backend.isPinned("no-name"), false);
60−
61− backend.setPinned("no-name", true);
62− backend.setStoredApplications(QStringList() << "rel-icon" << "abs-icon");
63− QCOMPARE(backend.isPinned("rel-icon"), true);
64− QCOMPARE(backend.isPinned("no-name"), false); // doesn't exist anymore!
65− }
66−
67 void testIcon_data() {
46 void testIcon_data() {
68 QTest::addColumn<QString>("appId");
47 QTest::addColumn<QString>("appId");
69 QTest::addColumn<QString>("expectedIcon");
48 QTest::addColumn<QString>("expectedIcon");
tests/plugins/Unity/resultstest.cpp+87
@@ -19,6 +19,7 @@
19
19
20#include <QTest>
20#include <QTest>
21#include <dee.h>
21#include <dee.h>
22+#include <glib.h>
22
23
23#include "resultstest.h"
24#include "resultstest.h"
24#include "categoryresults.h"
25#include "categoryresults.h"
@@ -106,4 +107,90 @@ void ResultsTest::testIconColumn()
106 QCOMPARE(transformedIcon, result);
107 QCOMPARE(transformedIcon, result);
107}
108}
108
109
110+class GVariantWrapper
111+{
112+public:
113+ GVariantWrapper() : variant(NULL) {}
114+ GVariantWrapper(GVariant* v) {
115+ variant = v ? g_variant_ref_sink(v) : NULL;
116+ }
117+ GVariantWrapper(const GVariantWrapper& other) {
118+ variant = other.variant ? g_variant_ref(other.variant) : NULL;
119+ }
120+ ~GVariantWrapper() {
121+ if (variant) g_variant_unref(variant);
122+ }
123+
124+ GVariant* variant;
125+};
126+
127+Q_DECLARE_METATYPE(GVariantWrapper)
128+
129+void ResultsTest::testSpecialIcons_data()
130+{
131+ QTest::addColumn<QString>("uri");
132+ QTest::addColumn<GVariantWrapper>("metadata");
133+ QTest::addColumn<QString>("result");
134+
135+ GVariant *inner;
136+ GVariantBuilder builder, inner_builder;
137+
138+ g_variant_builder_init(&inner_builder, G_VARIANT_TYPE_VARDICT);
139+ g_variant_builder_add(&inner_builder, "{sv}", "artist", g_variant_new_string("U2"));
140+ g_variant_builder_add(&inner_builder, "{sv}", "album", g_variant_new_string("War"));
141+
142+ g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
143+ g_variant_builder_add(&builder, "{sv}", "content", g_variant_builder_end(&inner_builder));
144+
145+ QTest::newRow("simple") << "file:///foo.mp3" << GVariantWrapper(g_variant_builder_end(&builder)) << "image://albumart/U2/War";
146+
147+ g_variant_builder_init(&inner_builder, G_VARIANT_TYPE_VARDICT);
148+ g_variant_builder_add(&inner_builder, "{sv}", "artist", g_variant_new_string("U2"));
149+ g_variant_builder_add(&inner_builder, "{sv}", "album", g_variant_new_string("War/Joshua tree"));
150+ inner = g_variant_builder_end(&inner_builder);
151+
152+ g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
153+ g_variant_builder_add(&builder, "{sv}", "content", inner);
154+
155+ QTest::newRow("with-slash") << "file:///foo.mp3" << GVariantWrapper(g_variant_builder_end(&builder)) << "image://albumart/U2/War%2FJoshua%20tree";
156+
157+ g_variant_builder_init(&inner_builder, G_VARIANT_TYPE_VARDICT);
158+ g_variant_builder_add(&inner_builder, "{sv}", "artist", g_variant_new_string("U2"));
159+ g_variant_builder_add(&inner_builder, "{sv}", "album", g_variant_new_string("War"));
160+ inner = g_variant_builder_end(&inner_builder);
161+
162+ g_variant_builder_init(&inner_builder, G_VARIANT_TYPE_VARDICT);
163+ g_variant_builder_add(&inner_builder, "{sv}", "content", inner);
164+
165+ g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
166+ g_variant_builder_add(&builder, "{sv}", "content", g_variant_builder_end(&inner_builder));
167+
168+ QTest::newRow("nested") << "file:///foo.mp3" << GVariantWrapper(g_variant_builder_end(&builder)) << "image://albumart/U2/War";
169+}
170+
171+void ResultsTest::testSpecialIcons()
172+{
173+ QFETCH(QString, uri);
174+ QFETCH(GVariantWrapper, metadata);
175+ QFETCH(QString, result);
176+ auto deeModel = createBackendModel();
177+ dee_model_append (deeModel,
178+ uri.toLocal8Bit().constData(),
179+ "",
180+ 0,
181+ 0,
182+ "audio/mp3",
183+ "Test",
184+ "",
185+ uri.toLocal8Bit().constData(),
186+ metadata.variant);
187+
188+ CategoryResults* results = new CategoryResults(this);
189+ results->setModel(deeModel);
190+
191+ auto index = results->index(0, 0); // there's just one result
192+ auto transformedIcon = index.data(CategoryResults::Roles::RoleIconHint).toString();
193+ QCOMPARE(transformedIcon, result);
194+}
195+
109QTEST_MAIN(ResultsTest)
196QTEST_MAIN(ResultsTest)
tests/plugins/Unity/resultstest.h+2
@@ -30,6 +30,8 @@ class ResultsTest : public QObject
30 void testAllColumns();
30 void testAllColumns();
31 void testIconColumn_data();
31 void testIconColumn_data();
32 void testIconColumn();
32 void testIconColumn();
33+ void testSpecialIcons_data();
34+ void testSpecialIcons();
33};
35};
34
36
35#endif
37#endif
tests/qmltests/CMakeLists.txt+1−1
@@ -43,7 +43,7 @@ add_qml_test(Components Tile)
43add_qml_test(Components PageHeader)
43add_qml_test(Components PageHeader)
44add_qml_test(Dash Dash IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
44add_qml_test(Dash Dash IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
45add_qml_test(Dash DashBar IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${CMAKE_CURRENT_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
45add_qml_test(Dash DashBar IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${CMAKE_CURRENT_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
46−add_qml_test(Dash DashContent IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS})
46+add_qml_test(Dash DashContent IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
47add_qml_test(Dash DashPreview)
47add_qml_test(Dash DashPreview)
48add_qml_test(Dash GenericPreview)
48add_qml_test(Dash GenericPreview)
49add_qml_test(Dash GenericScopeView IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
49add_qml_test(Dash GenericScopeView IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
tests/qmltests/Components/tst_LazyImage.qml+40−15
@@ -73,6 +73,20 @@ Rectangle {
73 height: units.gu(10)
73 height: units.gu(10)
74 scaleTo: "height"
74 scaleTo: "height"
75 }
75 }
76+
77+ Label {
78+ height: units.gu(4)
79+ text: "Fit"
80+ color: "white"
81+ verticalAlignment: Text.AlignBottom
82+ }
83+
84+ LazyImage {
85+ id: lazy4
86+ height: units.gu(10)
87+ width: units.gu(10)
88+ scaleTo: "fit"
89+ }
76 }
90 }
77 }
91 }
78
92
@@ -94,6 +108,7 @@ Rectangle {
94 ImageControls { id: controls1; image: lazy1 }
108 ImageControls { id: controls1; image: lazy1 }
95 ImageControls { id: controls2; image: lazy2 }
109 ImageControls { id: controls2; image: lazy2 }
96 ImageControls { id: controls3; image: lazy3 }
110 ImageControls { id: controls3; image: lazy3 }
111+ ImageControls { id: controls4; image: lazy4 }
97 }
112 }
98 }
113 }
99
114
@@ -112,21 +127,26 @@ Rectangle {
112
127
113 function test_lazyimage_data() {
128 function test_lazyimage_data() {
114 return [
129 return [
115− {tag: "Unbound Blank", image: lazy1, func: controls1.blank, width: units.gu(10), height: units.gu(10), placeholder: true},
130+ {tag: "Unbound Blank", image: lazy1, func: controls1.blank, width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), placeholder: true},
116− {tag: "Unbound Wide", image: lazy1, func: controls1.wide, transition: "readyTransition", width: 160, height: 80},
131+ {tag: "Unbound Wide", image: lazy1, func: controls1.wide, transition: "readyTransition", width: 160, height: 80, imageWidth: 160, imageHeight: 80},
117− {tag: "Unbound Square", image: lazy1, func: controls1.square, transition: "readyTransition", width: 160, height: 160},
132+ {tag: "Unbound Square", image: lazy1, func: controls1.square, transition: "readyTransition", width: 160, height: 160, imageWidth: 160, imageHeight: 160},
118− {tag: "Unbound Portrait", image: lazy1, func: controls1.portrait, transition: "readyTransition", width: 80, height: 160},
133+ {tag: "Unbound Portrait", image: lazy1, func: controls1.portrait, transition: "readyTransition", width: 80, height: 160, imageWidth: 80, imageHeight: 160},
119− {tag: "Unbound Bad path", image: lazy1, func: controls1.badpath, transition: "genericTransition", width: units.gu(10), height: units.gu(10), placeholder: true, error: true},
134+ {tag: "Unbound Bad path", image: lazy1, func: controls1.badpath, transition: "genericTransition", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), placeholder: true, error: true},
120− {tag: "Width-bound Blank", image: lazy2, func: controls2.blank, width: units.gu(30), height: units.gu(10), placeholder: true},
135+ {tag: "Width-bound Blank", image: lazy2, func: controls2.blank, width: units.gu(30), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), placeholder: true},
121− {tag: "Width-bound Wide", image: lazy2, func: controls2.wide, transition: "readyTransition", width: units.gu(30), height: units.gu(15)},
136+ {tag: "Width-bound Wide", image: lazy2, func: controls2.wide, transition: "readyTransition", width: units.gu(30), height: units.gu(15), imageWidth: units.gu(30), imageHeight: units.gu(15)},
122− {tag: "Width-bound Square", image: lazy2, func: controls2.square, transition: "readyTransition", width: units.gu(30), height: units.gu(30)},
137+ {tag: "Width-bound Square", image: lazy2, func: controls2.square, transition: "readyTransition", width: units.gu(30), height: units.gu(30), imageWidth: units.gu(30), imageHeight: units.gu(30)},
123− {tag: "Width-bound Portrait", image: lazy2, func: controls2.portrait, transition: "readyTransition", width: units.gu(30), height: units.gu(60)},
138+ {tag: "Width-bound Portrait", image: lazy2, func: controls2.portrait, transition: "readyTransition", width: units.gu(30), height: units.gu(60), imageWidth: units.gu(30), imageHeight: units.gu(60)},
124− {tag: "Width-bound Bad path", image: lazy2, func: controls2.badpath, transition: "genericTransition", width: units.gu(30), height: units.gu(10), placeholder: true, error: true},
139+ {tag: "Width-bound Bad path", image: lazy2, func: controls2.badpath, transition: "genericTransition", width: units.gu(30), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), placeholder: true, error: true},
125− {tag: "Height-bound Blank", image: lazy3, func: controls3.blank, width: units.gu(10), height: units.gu(10), placeholder: true},
140+ {tag: "Height-bound Blank", image: lazy3, func: controls3.blank, width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), placeholder: true},
126− {tag: "Height-bound Wide", image: lazy3, func: controls3.wide, transition: "readyTransition", width: units.gu(20), height: units.gu(10)},
141+ {tag: "Height-bound Wide", image: lazy3, func: controls3.wide, transition: "readyTransition", width: units.gu(20), height: units.gu(10), imageWidth: units.gu(20), imageHeight: units.gu(10)},
127− {tag: "Height-bound Square", image: lazy3, func: controls3.square, transition: "readyTransition", width: units.gu(10), height: units.gu(10)},
142+ {tag: "Height-bound Square", image: lazy3, func: controls3.square, transition: "readyTransition", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10)},
128− {tag: "Height-bound Portrait", image: lazy3, func: controls3.portrait, transition: "readyTransition", width: units.gu(5), height: units.gu(10)},
143+ {tag: "Height-bound Portrait", image: lazy3, func: controls3.portrait, transition: "readyTransition", width: units.gu(5), height: units.gu(10), imageWidth: units.gu(5), imageHeight: units.gu(10)},
129− {tag: "Height-bound Bad path", image: lazy3, func: controls3.badpath, transition: "genericTransition", width: units.gu(10), height: units.gu(10), placeholder: true, error: true},
144+ {tag: "Height-bound Bad path", image: lazy3, func: controls3.badpath, transition: "genericTransition", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), placeholder: true, error: true},
145+ {tag: "Fit Blank", image: lazy4, func: controls4.blank, width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), placeholder: true},
146+ {tag: "Fit Wide", image: lazy4, func: controls4.wide, transition: "readyTransition", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(5)},
147+ {tag: "Fit Square", image: lazy4, func: controls4.square, transition: "readyTransition", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10)},
148+ {tag: "Fit Portrait", image: lazy4, func: controls4.portrait, transition: "readyTransition", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(5), imageHeight: units.gu(10)},
149+ {tag: "Fit Bad path", image: lazy4, func: controls4.badpath, transition: "genericTransition", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), placeholder: true, error: true},
130 ]
150 ]
131 }
151 }
132
152
@@ -144,6 +164,11 @@ Rectangle {
144 compare(data.image.width, data.width);
164 compare(data.image.width, data.width);
145 compare(data.image.height, data.height);
165 compare(data.image.height, data.height);
146
166
167+ // check the shape dimensions
168+ var shape = findChild(data.image, "shape");
169+ compare(shape.width, data.imageWidth);
170+ compare(shape.height, data.imageHeight);
171+
147 // check the placeholder
172 // check the placeholder
148 var placeholder = findChild(data.image, "placeholder");
173 var placeholder = findChild(data.image, "placeholder");
149 compare(placeholder.visible, data.placeholder ? true : false);
174 compare(placeholder.visible, data.placeholder ? true : false);
tests/qmltests/Dash/qml/FakeScopeView.qml+3−9
@@ -17,16 +17,10 @@
17import QtQuick 2.0
17import QtQuick 2.0
18import Unity 0.1
18import Unity 0.1
19
19
20−FocusScope {
20+import "../../../../Dash"
21− id: fakeScopeView
22− property Scope scope : null
23− property bool isCurrent : false
24−
25− property ListModel searchHistory
26
21
27− signal endReached
22+ScopeView {
28− signal movementStarted
23+ id: fakeScopeView
29− signal positionedAtBeginning
30
24
31 property alias backColor : back.color
25 property alias backColor : back.color
32
26
tests/qmltests/Dash/tst_DashContent.qml+29−5
@@ -101,17 +101,21 @@ Item {
101 when: windowShown
101 when: windowShown
102
102
103 function init() {
103 function init() {
104+ scopesModel.load();
105+ }
106+
107+ function cleanup() {
104 scopeLoadedSpy.clear();
108 scopeLoadedSpy.clear();
105 movementStartedSpy.clear();
109 movementStartedSpy.clear();
106− contentEndReachedSpy.clear()
110+ contentEndReachedSpy.clear();
107 clear_scope_status();
111 clear_scope_status();
112+ dashContent.visible = true;
108
113
109− // clear, wait for dash to empty and load scopes.
110− var dashContentList = findChild(dashContent, "dashContentList");
111− verify(dashContentList != undefined)
112 scopesModel.clear();
114 scopesModel.clear();
115+ // wait for dash to empty scopes.
116+ var dashContentList = findChild(dashContent, "dashContentList");
117+ verify(dashContentList != undefined);
113 tryCompare(dashContentList, "count", 0);
118 tryCompare(dashContentList, "count", 0);
114− scopesModel.load();
115 }
119 }
116
120
117 function test_movement_started_signal() {
121 function test_movement_started_signal() {
@@ -205,5 +209,25 @@ Item {
205 tryCompareFunction(get_current_item_object_name, data.objectName)
209 tryCompareFunction(get_current_item_object_name, data.objectName)
206 }
210 }
207
211
212+ function test_is_active_data() {
213+ return [
214+ {tag: "select 0", select: 0, visible: true, active0: true, active1: false, active2: false, active3: false},
215+ {tag: "select 2", select: 2, visible: true, active0: false, active1: false, active2: true, active3: false},
216+ {tag: "invisible", select: 0, visible: false, active0: false, active1: false, active2: false, active3: false},
217+ ]
218+ }
219+
220+ function test_is_active(data) {
221+ var dashContentList = findChild(dashContent, "dashContentList");
222+
223+ tryCompare(scopeLoadedSpy, "count", 5);
224+
225+ dashContent.setCurrentScopeAtIndex(data.select, true, false);
226+ dashContent.visible = data.visible;
227+
228+ tryCompare(scopesModel.get(0), "isActive", data.active0);
229+ tryCompare(scopesModel.get(1), "isActive", data.active1);
230+ tryCompare(scopesModel.get(2), "isActive", data.active2);
231+ }
208 }
232 }
209}
233}
tests/qmltests/Dash/tst_FilterGrids.qml+1−1
@@ -107,7 +107,7 @@ Rectangle {
107
107
108 function test_clicked_signal_data() {
108 function test_clicked_signal_data() {
109 return [
109 return [
110− {tag: "VideosFilterGrid", component: "Video/VideosFilterGrid.qml"},
110+ {tag: "VideoFilterGrid", component: "Video/VideoFilterGrid.qml"},
111 {tag: "MusicFilterGrid", component: "Music/MusicFilterGrid.qml"},
111 {tag: "MusicFilterGrid", component: "Music/MusicFilterGrid.qml"},
112 {tag: "ApplicationsFilterGrid", component: "Apps/ApplicationsFilterGrid.qml"}
112 {tag: "ApplicationsFilterGrid", component: "Apps/ApplicationsFilterGrid.qml"}
113 ]
113 ]
tests/qmltests/Notifications/tst_Notifications.qml+7−2
@@ -48,7 +48,7 @@ Row {
48 function addSnapDecisionNotification() {
48 function addSnapDecisionNotification() {
49 var n = {
49 var n = {
50 type: Notification.SnapDecision,
50 type: Notification.SnapDecision,
51− hints: Notification.ButtonTint,
51+ hints: {"x-canonical-private-button-tint": "true"},
52 summary: "Tom Ato",
52 summary: "Tom Ato",
53 body: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
53 body: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
54 icon: "../graphics/avatars/funky.png",
54 icon: "../graphics/avatars/funky.png",
@@ -192,7 +192,7 @@ Row {
192 {
192 {
193 tag: "Snap Decision with secondary icon and button-tint",
193 tag: "Snap Decision with secondary icon and button-tint",
194 type: Notification.SnapDecision,
194 type: Notification.SnapDecision,
195− hints: Notification.ButtonTint,
195+ hints: {"x-canonical-private-button-tint": "true"},
196 summary: "Tom Ato",
196 summary: "Tom Ato",
197 body: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
197 body: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
198 icon: "../graphics/avatars/funky.png",
198 icon: "../graphics/avatars/funky.png",
@@ -213,6 +213,7 @@ Row {
213 {
213 {
214 tag: "Ephemeral notification - icon-summary layout",
214 tag: "Ephemeral notification - icon-summary layout",
215 type: Notification.Ephemeral,
215 type: Notification.Ephemeral,
216+ hints: {"x-canonical-private-button-tint": "false"},
216 summary: "Photo upload completed",
217 summary: "Photo upload completed",
217 body: "",
218 body: "",
218 icon: "",
219 icon: "",
@@ -229,6 +230,7 @@ Row {
229 {
230 {
230 tag: "Ephemeral notification - check suppression of secondary icon for icon-summary layout",
231 tag: "Ephemeral notification - check suppression of secondary icon for icon-summary layout",
231 type: Notification.Ephemeral,
232 type: Notification.Ephemeral,
233+ hints: {"x-canonical-private-button-tint": "false"},
232 summary: "New comment successfully published",
234 summary: "New comment successfully published",
233 body: "",
235 body: "",
234 icon: "",
236 icon: "",
@@ -245,6 +247,7 @@ Row {
245 {
247 {
246 tag: "Interactive notification",
248 tag: "Interactive notification",
247 type: Notification.Interactive,
249 type: Notification.Interactive,
250+ hints: {"x-canonical-private-button-tint": "false"},
248 summary: "Interactive notification",
251 summary: "Interactive notification",
249 body: "This is a notification that can be clicked",
252 body: "This is a notification that can be clicked",
250 icon: "../graphics/avatars/amanda.png",
253 icon: "../graphics/avatars/amanda.png",
@@ -261,6 +264,7 @@ Row {
261 {
264 {
262 tag: "Snap Decision without secondary icon and no button-tint",
265 tag: "Snap Decision without secondary icon and no button-tint",
263 type: Notification.SnapDecision,
266 type: Notification.SnapDecision,
267+ hints: {"x-canonical-private-button-tint": "false"},
264 summary: "Bro Coly",
268 summary: "Bro Coly",
265 body: "At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
269 body: "At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
266 icon: "../graphics/avatars/anna_olsson.png",
270 icon: "../graphics/avatars/anna_olsson.png",
@@ -278,6 +282,7 @@ Row {
278 {
282 {
279 tag: "Ephemeral notification",
283 tag: "Ephemeral notification",
280 type: Notification.Ephemeral,
284 type: Notification.Ephemeral,
285+ hints: {"x-canonical-private-button-tint": "false"},
281 summary: "Cole Raby",
286 summary: "Cole Raby",
282 body: "I did not expect it to be that late.",
287 body: "I did not expect it to be that late.",
283 icon: "../graphics/avatars/funky.png",
288 icon: "../graphics/avatars/funky.png",
tests/qmltests/tst_Shell.qml+57−2
@@ -82,6 +82,8 @@ Item {
82
82
83 var dashHome = findChild(shell, "DashHome");
83 var dashHome = findChild(shell, "DashHome");
84 swipeUntilScopeViewIsReached(dashHome);
84 swipeUntilScopeViewIsReached(dashHome);
85+
86+ hideIndicators();
85 }
87 }
86
88
87 function killApps(apps) {
89 function killApps(apps) {
@@ -155,7 +157,7 @@ Item {
155 waitUntilApplicationWindowIsFullyVisible();
157 waitUntilApplicationWindowIsFullyVisible();
156
158
157 var mainApp = ApplicationManager.focusedApplicationId;
159 var mainApp = ApplicationManager.focusedApplicationId;
158− tryCompareFunction(function() { return mainApp != ""; }, true);
160+ verify(mainApp != "");
159
161
160 // Try to suspend while proximity is engaged...
162 // Try to suspend while proximity is engaged...
161 Powerd.displayPowerStateChange(Powerd.Off, Powerd.UseProximity);
163 Powerd.displayPowerStateChange(Powerd.Off, Powerd.UseProximity);
@@ -168,8 +170,12 @@ Item {
168
170
169 // And wake up
171 // And wake up
170 Powerd.displayPowerStateChange(Powerd.On, 0);
172 Powerd.displayPowerStateChange(Powerd.On, 0);
171− tryCompare(ApplicationManager, "focusedApplicationId", mainApp);
173+ tryCompare(ApplicationManager, "focusedApplicationId", "");
172 tryCompare(greeter, "showProgress", 1);
174 tryCompare(greeter, "showProgress", 1);
175+
176+ // Swipe away greeter to focus app
177+ swipeAwayGreeter();
178+ tryCompare(ApplicationManager, "focusedApplicationId", mainApp);
173 }
179 }
174
180
175 function swipeAwayGreeter() {
181 function swipeAwayGreeter() {
@@ -336,6 +342,19 @@ Item {
336 mouseClick(appIcon, appIcon.width / 2, appIcon.height / 2);
342 mouseClick(appIcon, appIcon.width / 2, appIcon.height / 2);
337 }
343 }
338
344
345+ function showIndicators() {
346+ var indicators = findChild(shell, "indicators");
347+ indicators.show();
348+ tryCompare(indicators, "fullyOpened", true);
349+ }
350+
351+ function hideIndicators() {
352+ var indicators = findChild(shell, "indicators");
353+ if (indicators.fullyOpened) {
354+ indicators.hide();
355+ }
356+ }
357+
339 function waitUntilApplicationWindowIsFullyVisible() {
358 function waitUntilApplicationWindowIsFullyVisible() {
340 var underlay = findChild(shell, "underlay");
359 var underlay = findChild(shell, "underlay");
341 tryCompare(underlay, "visible", false);
360 tryCompare(underlay, "visible", false);
@@ -428,5 +447,41 @@ Item {
428 tryCompareFunction(function() { return backgroundImage.source.toString().indexOf(data.expectedUrl) !== -1; }, true)
447 tryCompareFunction(function() { return backgroundImage.source.toString().indexOf(data.expectedUrl) !== -1; }, true)
429 tryCompare(backgroundImage, "status", Image.Ready)
448 tryCompare(backgroundImage, "status", Image.Ready)
430 }
449 }
450+
451+ function test_DashShown_data() {
452+ return [
453+ {tag: "in focus", greeter: false, app: false, launcher: false, indicators: false, expectedShown: true},
454+ {tag: "under greeter", greeter: true, app: false, launcher: false, indicators: false, expectedShown: false},
455+ {tag: "under app", greeter: false, app: true, launcher: false, indicators: false, expectedShown: false},
456+ {tag: "under launcher", greeter: false, app: false, launcher: true, indicators: false, expectedShown: true},
457+ {tag: "under indicators", greeter: false, app: false, launcher: false, indicators: true, expectedShown: true},
458+ ]
459+ }
460+
461+ function test_DashShown(data) {
462+
463+ if (data.greeter) {
464+ // Swipe the greeter in
465+ var greeter = findChild(shell, "greeter");
466+ Powerd.displayPowerStateChange(Powerd.Off, 0);
467+ tryCompare(greeter, "showProgress", 1);
468+ }
469+
470+ if (data.app) {
471+ dragLauncherIntoView();
472+ tapOnAppIconInLauncher();
473+ }
474+
475+ if (data.launcher) {
476+ dragLauncherIntoView();
477+ }
478+
479+ if (data.indicators) {
480+ showIndicators();
481+ }
482+
483+ var dash = findChild(shell, "dash");
484+ tryCompare(dash, "shown", data.expectedShown);
485+ }
431 }
486 }
432}
487}