Merge lp:~anneonyme017/machines-vs-machines/i18n into lp:machines-vs-machines

Proposed by Anne017
Status: Needs review
Proposed branch: lp:~anneonyme017/machines-vs-machines/i18n
Merge into: lp:machines-vs-machines
Diff against target: 1374 lines (+775/-132)
19 files modified
app/components/DifficultySelector.qml (+3/-3)
app/machines-vs-machines.qml (+2/-2)
app/ui/GameView.qml (+2/-2)
app/ui/InfoPage.qml (+7/-7)
app/ui/LevelPausedSplash.qml (+4/-4)
app/ui/LevelResultsSplash.qml (+5/-5)
app/ui/LevelSelector.qml (+2/-2)
app/ui/LevelSplash.qml (+3/-3)
app/ui/MainPage.qml (+1/-1)
app/ui/ScoreInfo.qml (+6/-6)
app/ui/Settings.qml (+8/-8)
app/ui/UnlockTowerOverlay.qml (+30/-30)
app/ui/info/CreateLevelpack.qml (+7/-7)
app/ui/info/Credits.qml (+1/-1)
app/ui/info/Donate.qml (+3/-3)
app/ui/info/Feedback.qml (+4/-4)
app/ui/info/License.qml (+11/-11)
po/com.ubuntu.developer.mzanetti.machines-vs-machines.pot (+329/-33)
po/fr.po (+347/-0)
To merge this branch: bzr merge lp:~anneonyme017/machines-vs-machines/i18n
Reviewer Review Type Date Requested Status
Michael Zanetti Pending
Review via email: mp+313541@code.launchpad.net

Description of the change

Hello,

Here is a proposal of internationalization to solve this bug:
https://bugs.launchpad.net/machines-vs-machines/+bug/1529399

I also have attached a translation in French.
Since it is the first time I use Bazaar, let me know if everything is fine.

Best regards.
Anne

To post a comment you must log in.

Unmerged revisions

156. By Anne017

Support for internationalization and French translation added

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'app/components/DifficultySelector.qml'
2--- app/components/DifficultySelector.qml 2014-11-21 20:05:30 +0000
3+++ app/components/DifficultySelector.qml 2016-12-19 15:34:07 +0000
4@@ -15,19 +15,19 @@
5 name: "easy"; when: difficulty == Engine.DifficultyEasy
6 PropertyChanges { target: bubble; height: priv.baseSize; color: "#27ae60"; anchors.horizontalCenterOffset: priv.baseSize * 1.20 }
7 PropertyChanges { target: progressBar; marker1: priv.baseSize * 1.20; marker2: priv.baseSize * 1.20; color: "#27ae60" }
8- PropertyChanges { target: label; text: "easy"; horizontalAlignment: Text.AlignLeft; color: "#27ae60" }
9+ PropertyChanges { target: label; text: i18n.tr("easy"); horizontalAlignment: Text.AlignLeft; color: "#27ae60" }
10 },
11 State {
12 name: "medium"; when: difficulty == Engine.DifficultyMedium
13 PropertyChanges { target: bubble; height: priv.baseSize * 1.6; color: "#e67e22"; anchors.horizontalCenterOffset: priv.baseSize * 6.05 }
14 PropertyChanges { target: progressBar; marker1: priv.baseSize * 6.05; marker2: priv.baseSize * 6.05; color: "#e67e22" }
15- PropertyChanges { target: label; text: "medium"; horizontalAlignment: Text.AlignHCenter; color: "#e67e22" }
16+ PropertyChanges { target: label; text: i18n.tr("medium"); horizontalAlignment: Text.AlignHCenter; color: "#e67e22" }
17 },
18 State {
19 name: "hard"; when: difficulty == Engine.DifficultyHard
20 PropertyChanges { target: bubble; height: priv.baseSize * 2; color: "#c0392b"; anchors.horizontalCenterOffset: priv.baseSize * 11.4 }
21 PropertyChanges { target: progressBar; marker1: priv.baseSize * 11.4; marker2: priv.baseSize * 11.4; color: "#c0392b" }
22- PropertyChanges { target: label; text: "hard"; horizontalAlignment: Text.AlignRight; color: "#c0392b" }
23+ PropertyChanges { target: label; text: i18n.tr("hard"); horizontalAlignment: Text.AlignRight; color: "#c0392b" }
24 }
25 ]
26 transitions: [
27
28=== modified file 'app/machines-vs-machines.qml'
29--- app/machines-vs-machines.qml 2015-07-23 19:44:45 +0000
30+++ app/machines-vs-machines.qml 2016-12-19 15:34:07 +0000
31@@ -14,7 +14,7 @@
32 width: units.gu(70)
33 minimumWidth: height + units.gu(10)
34 minimumHeight: units.gu(35)
35- title: "Machines vs. Machines"
36+ title: i18n.tr("Machines vs. Machines")
37
38 Component.onCompleted: {
39 if (!args.values.d) {
40@@ -347,7 +347,7 @@
41
42 GameLabel {
43 anchors.centerIn: parent
44- text: "Please rotate your device"
45+ text: i18n.tr("Please rotate your device")
46 font.pixelSize: app.buttonSize
47 rotation: 90
48 }
49
50=== modified file 'app/ui/GameView.qml'
51--- app/ui/GameView.qml 2015-02-18 23:59:09 +0000
52+++ app/ui/GameView.qml 2016-12-19 15:34:07 +0000
53@@ -30,13 +30,13 @@
54 }
55
56 Label {
57- text: "LEVEL: " + (root.engine.level + 1)
58+ text: i18n.tr("LEVEL: ") + (root.engine.level + 1)
59 font.pixelSize: headerRow.height * 2/3
60 color: app.backgroundColor
61 Layout.fillWidth: false
62 }
63 Label {
64- text: "WAVE: " + (root.engine.currentWave + 1) + "/" + root.engine.waves
65+ text: i18n.tr("WAVE: ") + (root.engine.currentWave + 1) + "/" + root.engine.waves
66 Layout.fillWidth: true
67 font.pixelSize: headerRow.height * 2/3
68 color: app.backgroundColor
69
70=== modified file 'app/ui/InfoPage.qml'
71--- app/ui/InfoPage.qml 2015-01-21 00:14:12 +0000
72+++ app/ui/InfoPage.qml 2016-12-19 15:34:07 +0000
73@@ -31,7 +31,7 @@
74 id: titleLabel
75 horizontalAlignment: Text.AlignHCenter
76 font.pixelSize: app.titleSize
77- text: "Machines vs Machines"
78+ text: i18n.tr("Machines vs Machines")
79 font.weight: Font.DemiBold
80 }
81
82@@ -62,12 +62,12 @@
83 Repeater {
84 model: ListModel {
85 id: infoModel
86-// ListElement { title: "How to play"; imageSource: ""; target: "howto" }
87- ListElement { title: "Credits"; imageSource: "credits"; target: "credits" }
88- ListElement { title: "License"; imageSource: "license"; target: "license" }
89-// ListElement { title: "Create a level pack"; imageSource: ""; target: "create" }
90- ListElement { title: "Feedback"; imageSource: "feedback"; target: "feedback" }
91- ListElement { title: "Donate"; imageSource: "heart-donation"; target: "donate" }
92+// ListElement { title: i18n.tr("How to play"); imageSource: ""; target: "howto" }
93+ ListElement { title: i18n.tr("Credits"); imageSource: "credits"; target: "credits" }
94+ ListElement { title: i18n.tr("License"); imageSource: "license"; target: "license" }
95+// ListElement { title: i18n.tr("Create a level pack"); imageSource: ""; target: "create" }
96+ ListElement { title: i18n.tr("Feedback"); imageSource: "feedback"; target: "feedback" }
97+ ListElement { title: i18n.tr("Donate"); imageSource: "heart-donation"; target: "donate" }
98 }
99
100 AbstractButton {
101
102=== modified file 'app/ui/LevelPausedSplash.qml'
103--- app/ui/LevelPausedSplash.qml 2015-05-29 21:59:12 +0000
104+++ app/ui/LevelPausedSplash.qml 2016-12-19 15:34:07 +0000
105@@ -8,7 +8,7 @@
106 id: root
107 autoClose: false
108 property int level: 0
109- title: "LEVEL " + (root.level + 1)
110+ title: i18n.tr("LEVEL ") + (root.level + 1)
111
112 onBackgroundClicked: engine.resumeGame();
113
114@@ -20,21 +20,21 @@
115 spacing: root.height / 30
116
117 ListItems {
118- text: "Restart level"
119+ text: i18n.tr("Restart level")
120 iconSource: "../graphics/reset-button.svg"
121 height: root.height / 8
122 onClicked: engine.restartLevel();
123 }
124
125 ListItems {
126- text: "Back to level selection"
127+ text: i18n.tr("Back to level selection")
128 iconSource: "../graphics/levels-view-button.svg"
129 height: root.height / 8
130 onClicked: engine.stopGame();
131 }
132
133 ListItems {
134- text: "Back to main menu"
135+ text: i18n.tr("Back to main menu")
136 iconSource: "../graphics/main-menu-button.svg"
137 height: root.height / 8
138 onClicked: {
139
140=== modified file 'app/ui/LevelResultsSplash.qml'
141--- app/ui/LevelResultsSplash.qml 2015-01-20 18:10:35 +0000
142+++ app/ui/LevelResultsSplash.qml 2016-12-19 15:34:07 +0000
143@@ -19,7 +19,7 @@
144 GameLabel {
145 anchors { horizontalCenter: parent.horizontalCenter; top: parent.top; topMargin: app.margins }
146 font.pixelSize: app.titleSize
147- text: "LEVEL " + (root.level + 1)
148+ text: i18n.tr("LEVEL ") + (root.level + 1)
149 }
150
151 Column {
152@@ -41,7 +41,7 @@
153 GameLabel {
154 anchors.horizontalCenter: parent.horizontalCenter
155 font.pixelSize: app.hugeFontSize
156- text: root.success ? (root.points == root.highScore ? "New Best Score: " : "Score: ") + root.points + "/" + root.maxPoints : "Failed"
157+ text: root.success ? (root.points == root.highScore ? i18n.tr("New Best Score: ") : i18n.tr("Score: ")) + root.points + i18n.tr("/") + root.maxPoints : i18n.tr("Failed")
158 width: parent.width
159 horizontalAlignment: Text.AlignHCenter
160 }
161@@ -53,7 +53,7 @@
162 bottom: parent.bottom
163 margins: app.margins
164 }
165- text: "Okay"
166+ text: i18n.tr("Okay")
167 height: app.buttonSize
168 width: app.buttonSize * 3
169 color: app.confirmationButtonColor
170@@ -72,7 +72,7 @@
171 bottom: parent.bottom
172 margins: app.margins
173 }
174- text: "Retry"
175+ text: i18n.tr("Retry")
176 height: app.buttonSize
177 width: app.buttonSize * 3
178 color: app.playButtonColor
179@@ -104,7 +104,7 @@
180 bottom: parent.bottom
181 bottomMargin: app.margins + (finishImage.height - root.height) / 2
182 }
183- text: "Okay"
184+ text: i18n.tr("Okay")
185 height: app.buttonSize
186 width: app.buttonSize * 3
187 color: app.confirmationButtonColor
188
189=== modified file 'app/ui/LevelSelector.qml'
190--- app/ui/LevelSelector.qml 2015-01-20 17:55:21 +0000
191+++ app/ui/LevelSelector.qml 2016-12-19 15:34:07 +0000
192@@ -52,8 +52,8 @@
193 top: titleLabel.bottom
194 horizontalCenter: titleLabel.horizontalCenter
195 }
196- text: engine.difficulty == Engine.DifficultyEasy ? "easy"
197- : engine.difficulty == Engine.DifficultyMedium ? "medium" : "hard"
198+ text: engine.difficulty == Engine.DifficultyEasy ? i18n.tr("easy")
199+ : engine.difficulty == Engine.DifficultyMedium ? i18n.tr("medium") : i18n.tr("hard")
200 color: engine.difficulty == Engine.DifficultyEasy ? "#27ae60"
201 : engine.difficulty == Engine.DifficultyMedium ? "#e67e22" : "#c0392b"
202 font.pixelSize: app.titleSize * 0.8
203
204=== modified file 'app/ui/LevelSplash.qml'
205--- app/ui/LevelSplash.qml 2015-05-26 23:07:58 +0000
206+++ app/ui/LevelSplash.qml 2016-12-19 15:34:07 +0000
207@@ -11,7 +11,7 @@
208 Label {
209 anchors { horizontalCenter: parent.horizontalCenter; top: parent.top; topMargin: app.margins }
210 font.pixelSize: app.titleSize
211- text: "LEVEL " + (levelSplash.level + 1)
212+ text: i18n.tr("LEVEL ") + (levelSplash.level + 1)
213 color: app.textColor
214 }
215
216@@ -31,7 +31,7 @@
217 source: "../graphics/three-stars-" + parent.starCount + ".svg"
218 }
219 GameLabel {
220- text: "Best Score: " + (parent.level ? parent.level.highscore + "/" + parent.level.rewardPoints : "0/0")
221+ text: i18n.tr("Best Score: ") + (parent.level ? parent.level.highscore + i18n.tr("/") + parent.level.rewardPoints : "0/0")
222 anchors.horizontalCenter: parent.horizontalCenter
223 font.pixelSize: app.hugeFontSize
224 }
225@@ -44,7 +44,7 @@
226 height: app.buttonSize
227 width: app.buttonSize * 3
228 color: app.playButtonColor
229- text: "Play"
230+ text: i18n.tr("Play")
231 textColor: app.buttonTextColor
232
233 onClicked: {
234
235=== modified file 'app/ui/MainPage.qml'
236--- app/ui/MainPage.qml 2015-01-20 17:55:21 +0000
237+++ app/ui/MainPage.qml 2016-12-19 15:34:07 +0000
238@@ -45,7 +45,7 @@
239
240 PushButton {
241 anchors { bottom: parent.bottom; bottomMargin: app.margins; horizontalCenter: parent.horizontalCenter }
242- text: "Play!"
243+ text: i18n.tr("Play!")
244 color: app.playButtonColor
245 textColor: app.buttonTextColor
246 height: app.buttonSize
247
248=== modified file 'app/ui/ScoreInfo.qml'
249--- app/ui/ScoreInfo.qml 2015-01-19 22:25:11 +0000
250+++ app/ui/ScoreInfo.qml 2016-12-19 15:34:07 +0000
251@@ -18,8 +18,8 @@
252 top: titleLabel.bottom
253 horizontalCenter: titleLabel.horizontalCenter
254 }
255- text: engine.difficulty == Engine.DifficultyEasy ? "easy"
256- : engine.difficulty == Engine.DifficultyMedium ? "medium" : "hard"
257+ text: engine.difficulty == Engine.DifficultyEasy ? i18n.tr("easy")
258+ : engine.difficulty == Engine.DifficultyMedium ? i18n.tr("medium") : i18n.tr("hard")
259 color: engine.difficulty == Engine.DifficultyEasy ? "#27ae60"
260 : engine.difficulty == Engine.DifficultyMedium ? "#e67e22" : "#c0392b"
261 font.pixelSize: app.titleSize * 0.8
262@@ -33,14 +33,14 @@
263 anchors.horizontalCenter: parent.horizontalCenter
264 font.pixelSize: app.hugeFontSize
265 color: app.playButtonColor
266- text: "Levels: " + engine.highestUnlockedLevel + "/" + engine.levelPack.count
267+ text: i18n.tr("Levels: ") + engine.highestUnlockedLevel + i18n.tr("/") + engine.levelPack.count
268 }
269
270 GameLabel {
271 anchors.horizontalCenter: parent.horizontalCenter
272 font.pixelSize: app.hugeFontSize
273 color: app.playButtonColor
274- text: "Stars: " + engine.totalPoints + "/" + engine.levelPack.totalPoints
275+ text: i18n.tr("Stars: ") + engine.totalPoints + i18n.tr("/") + engine.levelPack.totalPoints
276 }
277 }
278
279@@ -52,7 +52,7 @@
280 height: app.buttonSize
281 width: app.buttonSize * 3
282 color: app.rejectButtonColor
283- text: "Reset"
284+ text: i18n.tr("Reset")
285 textColor: app.buttonTextColor
286
287 onClicked: {
288@@ -67,7 +67,7 @@
289 height: app.buttonSize
290 width: app.buttonSize * 3
291 color: app.confirmationButtonColor
292- text: "Okay"
293+ text: i18n.tr("Okay")
294 textColor: app.buttonTextColor
295
296 onClicked: {
297
298=== modified file 'app/ui/Settings.qml'
299--- app/ui/Settings.qml 2015-01-26 23:58:07 +0000
300+++ app/ui/Settings.qml 2016-12-19 15:34:07 +0000
301@@ -18,7 +18,7 @@
302 anchors.horizontalCenter: parent.horizontalCenter
303 font.pixelSize: app.titleSize
304 font.bold: true
305- text: root.showDeveloperOptions ? "Settings" : "Sound settings"
306+ text: root.showDeveloperOptions ? i18n.tr("Settings") : i18n.tr("Sound settings")
307 }
308
309 Row {
310@@ -33,7 +33,7 @@
311 }
312 GameLabel {
313 id: soundHeaderLabel
314- text: "Sound"
315+ text: i18n.tr("Sound")
316 }
317 }
318
319@@ -44,14 +44,14 @@
320 width: parent.width * 0.8
321
322 GameLabel {
323- text: "sound enabled"
324+ text: i18n.tr("sound enabled")
325 }
326 CheckBox {
327 checked: SettingsBackend.audioEnabled
328 onCheckedChanged: SettingsBackend.audioEnabled = checked
329 }
330 GameLabel {
331- text: "soundtrack volume"
332+ text: i18n.tr("soundtrack volume")
333 }
334
335 Slider {
336@@ -63,7 +63,7 @@
337 }
338
339 GameLabel {
340- text: "effects volume"
341+ text: i18n.tr("effects volume")
342 }
343 Slider {
344 width: parent.width - x
345@@ -84,7 +84,7 @@
346 }
347 GameLabel {
348 id: develHeaderLabel
349- text: "Levelpack development"
350+ text: i18n.tr("Levelpack development")
351 }
352 }
353
354@@ -94,7 +94,7 @@
355 visible: root.showDeveloperOptions
356 width: parent.width * 0.8
357 GameLabel {
358- text: "field overlay"
359+ text: i18n.tr("field overlay")
360 }
361 Row {
362 Layout.fillWidth: true
363@@ -105,7 +105,7 @@
364 }
365 }
366 GameLabel {
367- text: "all unlocked"
368+ text: i18n.tr("all unlocked")
369 }
370 Row {
371 Layout.fillWidth: true
372
373=== modified file 'app/ui/UnlockTowerOverlay.qml'
374--- app/ui/UnlockTowerOverlay.qml 2015-01-24 23:52:11 +0000
375+++ app/ui/UnlockTowerOverlay.qml 2016-12-19 15:34:07 +0000
376@@ -62,7 +62,7 @@
377 width: (parent.width - parent.spacing) / 2
378 RowLayout {
379 GameLabel {
380- text: "Damage:"
381+ text: i18n.tr("Damage:")
382 Layout.fillWidth: true
383 }
384 GameLabel {
385@@ -73,7 +73,7 @@
386 }
387 RowLayout {
388 GameLabel {
389- text: "Slowdown:"
390+ text: i18n.tr("Slowdown:")
391 }
392 GameLabel {
393 text: root.lineup ? root.lineup[root.selectedLevel].slowdown : ""
394@@ -83,7 +83,7 @@
395 }
396 RowLayout {
397 GameLabel {
398- text: "Radius:"
399+ text: i18n.tr("Radius:")
400 }
401 GameLabel {
402 text: root.lineup ? root.lineup[root.selectedLevel].radius : ""
403@@ -97,30 +97,30 @@
404
405 RowLayout {
406 GameLabel {
407- text: "Shot duration:"
408- }
409- GameLabel {
410- text: root.lineup ? root.lineup[root.selectedLevel].shotDuration + " ms" : ""
411- Layout.fillWidth: true
412- horizontalAlignment: Text.AlignRight
413- }
414- }
415- RowLayout {
416- GameLabel {
417- text: "Shot recovery:"
418- }
419- GameLabel {
420- text: root.lineup ? root.lineup[root.selectedLevel].shotRecovery + " ms" : ""
421- Layout.fillWidth: true
422- horizontalAlignment: Text.AlignRight
423- }
424- }
425- RowLayout {
426- GameLabel {
427- text: "Cost:"
428- }
429- GameLabel {
430- text: root.lineup ? root.lineup[root.selectedLevel].cost + " $" : ""
431+ text: i18n.tr("Shot duration:")
432+ }
433+ GameLabel {
434+ text: root.lineup ? root.lineup[root.selectedLevel].shotDuration + i18n.tr(" ms") : ""
435+ Layout.fillWidth: true
436+ horizontalAlignment: Text.AlignRight
437+ }
438+ }
439+ RowLayout {
440+ GameLabel {
441+ text: i18n.tr("Shot recovery:")
442+ }
443+ GameLabel {
444+ text: root.lineup ? root.lineup[root.selectedLevel].shotRecovery + i18n.tr(" ms") : ""
445+ Layout.fillWidth: true
446+ horizontalAlignment: Text.AlignRight
447+ }
448+ }
449+ RowLayout {
450+ GameLabel {
451+ text: i18n.tr("Cost:")
452+ }
453+ GameLabel {
454+ text: root.lineup ? root.lineup[root.selectedLevel].cost + i18n.tr(" $") : ""
455 Layout.fillWidth: true
456 horizontalAlignment: Text.AlignRight
457 }
458@@ -134,8 +134,8 @@
459 spacing: app.margins
460 PushButton {
461 text: root.lineup ?
462- (enabled ? "Unlock tower (" + root.lineup[root.selectedLevel].unlockPoints + " ⚝)"
463- : "Get " + (root.lineup[root.selectedLevel].unlockPoints - engine.points) + " more ⚝ to unlock!")
464+ (enabled ? i18n.tr("Unlock tower (") + root.lineup[root.selectedLevel].unlockPoints + i18n.tr(" ⚝)")
465+ : i18n.tr("Get ") + (root.lineup[root.selectedLevel].unlockPoints - engine.points) + i18n.tr(" more ⚝ to unlock!"))
466 : ""
467 enabled: root.lineup ? engine.points >= root.lineup[root.selectedLevel].unlockPoints : false
468 color: enabled ? app.confirmationButtonColor : app.cancelButtonColor
469@@ -151,7 +151,7 @@
470 }
471
472 PushButton {
473- text: "Close"
474+ text: i18n.tr("Close")
475 color: app.playButtonColor
476 width: app.buttonSize * 3
477 onClicked: {
478
479=== modified file 'app/ui/info/CreateLevelpack.qml'
480--- app/ui/info/CreateLevelpack.qml 2015-01-16 01:05:26 +0000
481+++ app/ui/info/CreateLevelpack.qml 2016-12-19 15:34:07 +0000
482@@ -7,7 +7,7 @@
483
484 ModalOverlay {
485 id: root
486- title: "Not enough levels? Create your own!"
487+ title: i18n.tr("Not enough levels? Create your own!")
488 showCloseButton: true
489
490 Flickable {
491@@ -22,10 +22,10 @@
492 GameLabel {
493 id: label
494 width: parent.width
495- text: "Creating level packs " +
496- "for Machines vs Machines is easy! All you need is to draw the " +
497- "artwork and create some simple text files that describe the levels.<br>" +
498- "The best submitted level packs will be included in this game!"
499+ text: i18n.tr("Creating level packs ") +
500+ i18n.tr("for Machines vs Machines is easy! All you need is to draw the ") +
501+ i18n.tr("artwork and create some simple text files that describe the levels.<br>") +
502+ i18n.tr("The best submitted level packs will be included in this game!")
503 wrapMode: Text.WordWrap
504 }
505 Row {
506@@ -33,12 +33,12 @@
507 height: app.buttonSize
508
509 GameLabel {
510- text: "Interested?"
511+ text: i18n.tr("Interested?")
512 anchors.verticalCenter: parent.verticalCenter
513 }
514 PushButton {
515 width: app.buttonSize * 6
516- text: "Visit the website"
517+ text: i18n.tr("Visit the website")
518 color: app.confirmationButtonColor
519 onClicked: Qt.openUrlExternally("http://notyetthere.org")
520 }
521
522=== modified file 'app/ui/info/Credits.qml'
523--- app/ui/info/Credits.qml 2015-01-16 01:05:26 +0000
524+++ app/ui/info/Credits.qml 2016-12-19 15:34:07 +0000
525@@ -7,7 +7,7 @@
526
527 ModalOverlay {
528 id: root
529- title: "Credits"
530+ title: i18n.tr("Credits")
531 showCloseButton: true
532
533 Flickable {
534
535=== modified file 'app/ui/info/Donate.qml'
536--- app/ui/info/Donate.qml 2015-01-17 00:18:01 +0000
537+++ app/ui/info/Donate.qml 2016-12-19 15:34:07 +0000
538@@ -7,7 +7,7 @@
539
540 ModalOverlay {
541 id: root
542- title: "Enjoying the game?"
543+ title: i18n.tr("Enjoying the game?")
544 showCloseButton: true
545
546 Column {
547@@ -17,14 +17,14 @@
548
549 GameLabel {
550 anchors.horizontalCenter: parent.horizontalCenter
551- text: "Send us a small <i><b>thank you</b>!</i>"
552+ text: i18n.tr("Send us a small <i><b>thank you</b>!</i>")
553 }
554
555 Button {
556 height: parent.height - y
557 width: (parent.width - app.buttonSize * 2)
558 anchors.horizontalCenter: parent.horizontalCenter
559- text: "Donate<br>via PayPal"
560+ text: i18n.tr("Donate<br>via PayPal")
561 color: app.confirmationButtonColor
562 onClicked: Qt.openUrlExternally("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=USWAUUU2MD9Z4")
563 }
564
565=== modified file 'app/ui/info/Feedback.qml'
566--- app/ui/info/Feedback.qml 2015-01-17 00:18:01 +0000
567+++ app/ui/info/Feedback.qml 2016-12-19 15:34:07 +0000
568@@ -7,7 +7,7 @@
569
570 ModalOverlay {
571 id: root
572- title: "Let us know what you think!"
573+ title: i18n.tr("Let us know what you think!")
574 showCloseButton: true
575
576 Column {
577@@ -31,7 +31,7 @@
578 anchors.fill: parent
579 anchors.margins: app.margins
580 wrapMode: Text.WordWrap
581- text: "Leave us a review in the Ubuntu App Store"
582+ text: i18n.tr("Leave us a review in the Ubuntu App Store")
583 color: app.buttonTextColor
584 horizontalAlignment: Text.AlignHCenter
585 verticalAlignment: Text.AlignVCenter
586@@ -41,7 +41,7 @@
587 GameLabel {
588 id: orLabel
589 anchors.verticalCenter: parent.verticalCenter
590- text: "or"
591+ text: i18n.tr("or")
592 }
593
594 Button {
595@@ -55,7 +55,7 @@
596 anchors.fill: parent
597 anchors.margins: app.margins
598 wrapMode: Text.WordWrap
599- text: "Visit our Launchpad page to report a bug or contact us."
600+ text: i18n.tr("Visit our Launchpad page to report a bug or contact us.")
601 color: app.buttonTextColor
602 horizontalAlignment: Text.AlignHCenter
603 verticalAlignment: Text.AlignVCenter
604
605=== modified file 'app/ui/info/License.qml'
606--- app/ui/info/License.qml 2015-01-16 01:05:26 +0000
607+++ app/ui/info/License.qml 2016-12-19 15:34:07 +0000
608@@ -7,7 +7,7 @@
609
610 ModalOverlay {
611 id: root
612- title: "Software license"
613+ title: i18n.tr("Software license")
614 showCloseButton: true
615
616 Flickable {
617@@ -19,16 +19,16 @@
618 GameLabel {
619 id: label
620 width: parent.width
621- text: "This program is free software: you can redistribute it and/or modify " +
622- "it under the terms of the GNU General Public License as published by " +
623- "the Free Software Foundation, version 3 of the License.<br><br>" +
624- "This program is distributed in the hope that it will be useful, " +
625- "but WITHOUT ANY WARRANTY; without even the implied warranty of " +
626- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " +
627- "GNU General Public License for more details.<br><br>" +
628- "You should have received a copy of the GNU General Public License " +
629- "along with this program. If not, see " +
630- "<a href=\"http://www.gnu.org/licenses/\">http://www.gnu.org/licenses/</a>."
631+ text: i18n.tr("This program is free software: you can redistribute it and/or modify ") +
632+ i18n.tr("it under the terms of the GNU General Public License as published by ") +
633+ i18n.tr("the Free Software Foundation, version 3 of the License.<br><br>") +
634+ i18n.tr("This program is distributed in the hope that it will be useful, ") +
635+ i18n.tr("but WITHOUT ANY WARRANTY; without even the implied warranty of ") +
636+ i18n.tr("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ") +
637+ i18n.tr("GNU General Public License for more details.<br><br>") +
638+ i18n.tr("You should have received a copy of the GNU General Public License ") +
639+ i18n.tr("along with this program. If not, see ") +
640+ i18n.tr("<a href=\"http://www.gnu.org/licenses/\">http://www.gnu.org/licenses/</a>.")
641 wrapMode: Text.WordWrap
642 }
643 }
644
645=== modified file 'po/com.ubuntu.developer.mzanetti.machines-vs-machines.pot'
646--- po/com.ubuntu.developer.mzanetti.machines-vs-machines.pot 2015-01-04 17:18:56 +0000
647+++ po/com.ubuntu.developer.mzanetti.machines-vs-machines.pot 2016-12-19 15:34:07 +0000
648@@ -6,45 +6,341 @@
649 #, fuzzy
650 msgid ""
651 msgstr ""
652-"Project-Id-Version: \n"
653+"Project-Id-Version: PACKAGE VERSION\n"
654 "Report-Msgid-Bugs-To: \n"
655-"POT-Creation-Date: 2015-01-03 01:04+0100\n"
656+"POT-Creation-Date: 2016-12-19 15:33+0100\n"
657 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
658 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
659 "Language-Team: LANGUAGE <LL@li.org>\n"
660 "Language: \n"
661 "MIME-Version: 1.0\n"
662-"Content-Type: text/plain; charset=CHARSET\n"
663+"Content-Type: text/plain; charset=UTF-8\n"
664 "Content-Transfer-Encoding: 8bit\n"
665
666-#: ../app/ui/HelloTab.qml:7
667-msgid "Hello.."
668-msgstr ""
669-
670-#: ../app/ui/HelloTab.qml:35
671-msgid "You can change the Tab from Page title above."
672-msgstr ""
673-
674-#: ../app/ui/WorldTab.qml:6
675-msgid "..World!"
676-msgstr ""
677-
678-#: ../app/ui/WorldTab.qml:22
679-msgid "WorldTab"
680-msgstr ""
681-
682-#: ../app/ui/WorldTab.qml:31
683-msgid "Swipe from bottom to up to reveal the toolbar."
684-msgstr ""
685-
686-#: ../app/ui/WorldTabTools.qml:7
687-msgid "Tap me!"
688-msgstr ""
689-
690-#: ../app/ui/WorldTabTools.qml:10
691-msgid "Toolbar tapped"
692-msgstr ""
693-
694-#: /home/micha/Develop/build-machines-vs-machines-Desktop-Default/po/machines-vs-machines.desktop.in.h:1
695-msgid "machines-vs-machines"
696+#: app/components/ModalOverlay.qml:72 app/ui/UnlockTowerOverlay.qml:154
697+msgid "Close"
698+msgstr ""
699+
700+#: app/components/DifficultySelector.qml:18 app/ui/ScoreInfo.qml:21
701+#: app/ui/LevelSelector.qml:55
702+msgid "easy"
703+msgstr ""
704+
705+#: app/components/DifficultySelector.qml:24 app/ui/ScoreInfo.qml:22
706+#: app/ui/LevelSelector.qml:56
707+msgid "medium"
708+msgstr ""
709+
710+#: app/components/DifficultySelector.qml:30 app/ui/ScoreInfo.qml:22
711+#: app/ui/LevelSelector.qml:56
712+msgid "hard"
713+msgstr ""
714+
715+#: app/ui/info/License.qml:10
716+msgid "Software license"
717+msgstr ""
718+
719+#: app/ui/info/License.qml:22
720+msgid "This program is free software: you can redistribute it and/or modify "
721+msgstr ""
722+
723+#: app/ui/info/License.qml:23
724+msgid "it under the terms of the GNU General Public License as published by "
725+msgstr ""
726+
727+#: app/ui/info/License.qml:24
728+msgid "the Free Software Foundation, version 3 of the License.<br><br>"
729+msgstr ""
730+
731+#: app/ui/info/License.qml:25
732+msgid "This program is distributed in the hope that it will be useful, "
733+msgstr ""
734+
735+#: app/ui/info/License.qml:26
736+msgid "but WITHOUT ANY WARRANTY; without even the implied warranty of "
737+msgstr ""
738+
739+#: app/ui/info/License.qml:27
740+msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
741+msgstr ""
742+
743+#: app/ui/info/License.qml:28
744+msgid "GNU General Public License for more details.<br><br>"
745+msgstr ""
746+
747+#: app/ui/info/License.qml:29
748+msgid "You should have received a copy of the GNU General Public License "
749+msgstr ""
750+
751+#: app/ui/info/License.qml:30
752+msgid "along with this program. If not, see "
753+msgstr ""
754+
755+#: app/ui/info/License.qml:31
756+msgid ""
757+"<a href=\"http://www.gnu.org/licenses/\">http://www.gnu.org/licenses/</a>."
758+msgstr ""
759+
760+#: app/ui/info/Donate.qml:10
761+msgid "Enjoying the game?"
762+msgstr ""
763+
764+#: app/ui/info/Donate.qml:20
765+msgid "Send us a small <i><b>thank you</b>!</i>"
766+msgstr ""
767+
768+#: app/ui/info/Donate.qml:27
769+msgid "Donate<br>via PayPal"
770+msgstr ""
771+
772+#: app/ui/info/Credits.qml:10 app/ui/InfoPage.qml:66
773+msgid "Credits"
774+msgstr ""
775+
776+#: app/ui/info/Credits.qml:26
777+msgid "Game development"
778+msgstr ""
779+
780+#: app/ui/info/Credits.qml:30
781+msgid "Development"
782+msgstr ""
783+
784+#: app/ui/info/Credits.qml:33
785+msgid "Design/Artwork"
786+msgstr ""
787+
788+#: app/ui/info/Credits.qml:41
789+msgid "Level packs"
790+msgstr ""
791+
792+#: app/ui/info/Feedback.qml:10
793+msgid "Let us know what you think!"
794+msgstr ""
795+
796+#: app/ui/info/Feedback.qml:34
797+msgid "Leave us a review in the Ubuntu App Store"
798+msgstr ""
799+
800+#: app/ui/info/Feedback.qml:44
801+msgid "or"
802+msgstr ""
803+
804+#: app/ui/info/Feedback.qml:58
805+msgid "Visit our Launchpad page to report a bug or contact us."
806+msgstr ""
807+
808+#: app/ui/info/CreateLevelpack.qml:10
809+msgid "Not enough levels? Create your own!"
810+msgstr ""
811+
812+#: app/ui/info/CreateLevelpack.qml:25
813+msgid "Creating level packs "
814+msgstr ""
815+
816+#: app/ui/info/CreateLevelpack.qml:26
817+msgid "for Machines vs Machines is easy! All you need is to draw the "
818+msgstr ""
819+
820+#: app/ui/info/CreateLevelpack.qml:27
821+msgid "artwork and create some simple text files that describe the levels.<br>"
822+msgstr ""
823+
824+#: app/ui/info/CreateLevelpack.qml:28
825+msgid "The best submitted level packs will be included in this game!"
826+msgstr ""
827+
828+#: app/ui/info/CreateLevelpack.qml:36
829+msgid "Interested?"
830+msgstr ""
831+
832+#: app/ui/info/CreateLevelpack.qml:41
833+msgid "Visit the website"
834+msgstr ""
835+
836+#: app/ui/InfoPage.qml:34
837+msgid "Machines vs Machines"
838+msgstr ""
839+
840+#: app/ui/InfoPage.qml:39
841+#, qt-format
842+msgid "Version: %1"
843+msgstr ""
844+
845+#: app/ui/InfoPage.qml:67
846+msgid "License"
847+msgstr ""
848+
849+#: app/ui/InfoPage.qml:69
850+msgid "Feedback"
851+msgstr ""
852+
853+#: app/ui/InfoPage.qml:70
854+msgid "Donate"
855+msgstr ""
856+
857+#: app/ui/LevelPausedSplash.qml:11 app/ui/LevelResultsSplash.qml:22
858+#: app/ui/LevelSplash.qml:14
859+msgid "LEVEL "
860+msgstr ""
861+
862+#: app/ui/LevelPausedSplash.qml:23
863+msgid "Restart level"
864+msgstr ""
865+
866+#: app/ui/LevelPausedSplash.qml:30
867+msgid "Back to level selection"
868+msgstr ""
869+
870+#: app/ui/LevelPausedSplash.qml:37
871+msgid "Back to main menu"
872+msgstr ""
873+
874+#: app/ui/Settings.qml:21
875+msgid "Settings"
876+msgstr ""
877+
878+#: app/ui/Settings.qml:21
879+msgid "Sound settings"
880+msgstr ""
881+
882+#: app/ui/Settings.qml:36
883+msgid "Sound"
884+msgstr ""
885+
886+#: app/ui/Settings.qml:47
887+msgid "sound enabled"
888+msgstr ""
889+
890+#: app/ui/Settings.qml:54
891+msgid "soundtrack volume"
892+msgstr ""
893+
894+#: app/ui/Settings.qml:66
895+msgid "effects volume"
896+msgstr ""
897+
898+#: app/ui/Settings.qml:87
899+msgid "Levelpack development"
900+msgstr ""
901+
902+#: app/ui/Settings.qml:97
903+msgid "field overlay"
904+msgstr ""
905+
906+#: app/ui/Settings.qml:108
907+msgid "all unlocked"
908+msgstr ""
909+
910+#: app/ui/LevelResultsSplash.qml:44
911+msgid "New Best Score: "
912+msgstr ""
913+
914+#: app/ui/LevelResultsSplash.qml:44
915+msgid "Score: "
916+msgstr ""
917+
918+#: app/ui/LevelResultsSplash.qml:44 app/ui/ScoreInfo.qml:36
919+#: app/ui/ScoreInfo.qml:43 app/ui/LevelSplash.qml:34
920+msgid "/"
921+msgstr ""
922+
923+#: app/ui/LevelResultsSplash.qml:44
924+msgid "Failed"
925+msgstr ""
926+
927+#: app/ui/LevelResultsSplash.qml:56 app/ui/LevelResultsSplash.qml:107
928+#: app/ui/ScoreInfo.qml:70
929+msgid "Okay"
930+msgstr ""
931+
932+#: app/ui/LevelResultsSplash.qml:75
933+msgid "Retry"
934+msgstr ""
935+
936+#: app/ui/MainPage.qml:48
937+msgid "Play!"
938+msgstr ""
939+
940+#: app/ui/ScoreInfo.qml:36
941+msgid "Levels: "
942+msgstr ""
943+
944+#: app/ui/ScoreInfo.qml:43
945+msgid "Stars: "
946+msgstr ""
947+
948+#: app/ui/ScoreInfo.qml:55
949+msgid "Reset"
950+msgstr ""
951+
952+#: app/ui/GameView.qml:33
953+msgid "LEVEL: "
954+msgstr ""
955+
956+#: app/ui/GameView.qml:39
957+msgid "WAVE: "
958+msgstr ""
959+
960+#: app/ui/LevelSplash.qml:34
961+msgid "Best Score: "
962+msgstr ""
963+
964+#: app/ui/LevelSplash.qml:47
965+msgid "Play"
966+msgstr ""
967+
968+#: app/ui/UnlockTowerOverlay.qml:65
969+msgid "Damage:"
970+msgstr ""
971+
972+#: app/ui/UnlockTowerOverlay.qml:76
973+msgid "Slowdown:"
974+msgstr ""
975+
976+#: app/ui/UnlockTowerOverlay.qml:86
977+msgid "Radius:"
978+msgstr ""
979+
980+#: app/ui/UnlockTowerOverlay.qml:100
981+msgid "Shot duration:"
982+msgstr ""
983+
984+#: app/ui/UnlockTowerOverlay.qml:103 app/ui/UnlockTowerOverlay.qml:113
985+msgid " ms"
986+msgstr ""
987+
988+#: app/ui/UnlockTowerOverlay.qml:110
989+msgid "Shot recovery:"
990+msgstr ""
991+
992+#: app/ui/UnlockTowerOverlay.qml:120
993+msgid "Cost:"
994+msgstr ""
995+
996+#: app/ui/UnlockTowerOverlay.qml:123
997+msgid " $"
998+msgstr ""
999+
1000+#: app/ui/UnlockTowerOverlay.qml:137
1001+msgid "Unlock tower ("
1002+msgstr ""
1003+
1004+#: app/ui/UnlockTowerOverlay.qml:137
1005+msgid " ⚝)"
1006+msgstr ""
1007+
1008+#: app/ui/UnlockTowerOverlay.qml:138
1009+msgid "Get "
1010+msgstr ""
1011+
1012+#: app/ui/UnlockTowerOverlay.qml:138
1013+msgid " more ⚝ to unlock!"
1014+msgstr ""
1015+
1016+#: app/machines-vs-machines.qml:17
1017+msgid "Machines vs. Machines"
1018+msgstr ""
1019+
1020+#: app/machines-vs-machines.qml:350
1021+msgid "Please rotate your device"
1022 msgstr ""
1023
1024=== added file 'po/fr.po'
1025--- po/fr.po 1970-01-01 00:00:00 +0000
1026+++ po/fr.po 2016-12-19 15:34:07 +0000
1027@@ -0,0 +1,347 @@
1028+# SOME DESCRIPTIVE TITLE.
1029+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
1030+# This file is distributed under the same license as the PACKAGE package.
1031+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
1032+#
1033+#, fuzzy
1034+msgid ""
1035+msgstr ""
1036+"Project-Id-Version: PACKAGE VERSION\n"
1037+"Report-Msgid-Bugs-To: \n"
1038+"POT-Creation-Date: 2016-12-19 15:33+0100\n"
1039+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1040+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1041+"Language-Team: LANGUAGE <LL@li.org>\n"
1042+"Language: fr\n"
1043+"MIME-Version: 1.0\n"
1044+"Content-Type: text/plain; charset=UTF-8\n"
1045+"Content-Transfer-Encoding: 8bit\n"
1046+
1047+#: app/components/ModalOverlay.qml:72 app/ui/UnlockTowerOverlay.qml:154
1048+msgid "Close"
1049+msgstr "Fermer"
1050+
1051+#: app/components/DifficultySelector.qml:18 app/ui/ScoreInfo.qml:21
1052+#: app/ui/LevelSelector.qml:55
1053+msgid "easy"
1054+msgstr "facile"
1055+
1056+#: app/components/DifficultySelector.qml:24 app/ui/ScoreInfo.qml:22
1057+#: app/ui/LevelSelector.qml:56
1058+msgid "medium"
1059+msgstr "moyen"
1060+
1061+#: app/components/DifficultySelector.qml:30 app/ui/ScoreInfo.qml:22
1062+#: app/ui/LevelSelector.qml:56
1063+msgid "hard"
1064+msgstr "difficile"
1065+
1066+#: app/ui/info/License.qml:10
1067+msgid "Software license"
1068+msgstr "Licence logicielle"
1069+
1070+#: app/ui/info/License.qml:22
1071+msgid "This program is free software: you can redistribute it and/or modify "
1072+msgstr "Ce programme est un logiciel libre[nbsp]: vous pouvez le redistribuer et/ou le modifier"
1073+
1074+#: app/ui/info/License.qml:23
1075+msgid "it under the terms of the GNU General Public License as published by "
1076+msgstr "sous les termes de la Licence Générale Publique GNU telle que publiée par"
1077+
1078+#: app/ui/info/License.qml:24
1079+msgid "the Free Software Foundation, version 3 of the License.<br><br>"
1080+msgstr "la Free Software Foundation (Fondation du Logiciel Libre), version 3 de la licence.<br><br>"
1081+
1082+#: app/ui/info/License.qml:25
1083+msgid "This program is distributed in the hope that it will be useful, "
1084+msgstr "Ce programme est distribué dans l'espoir qu'il sera utile, "
1085+
1086+#: app/ui/info/License.qml:26
1087+msgid "but WITHOUT ANY WARRANTY; without even the implied warranty of "
1088+msgstr "mais SANS AUCUNE GARANTIE[nbsp]; sans même une garantie implicite de "
1089+
1090+#: app/ui/info/License.qml:27
1091+msgid "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
1092+msgstr "COMMERCIABILITÉ ou DE CONFORMITÉ À UNE UTILISATION PARTICULIÈRE. Voir la "
1093+
1094+#: app/ui/info/License.qml:28
1095+msgid "GNU General Public License for more details.<br><br>"
1096+msgstr "Licence Publique Générale GNU pour plus de détails.<br><br>"
1097+
1098+#: app/ui/info/License.qml:29
1099+msgid "You should have received a copy of the GNU General Public License "
1100+msgstr "Vous devriez avoir reçu une copie de la Licence Publique Générale GNU "
1101+
1102+#: app/ui/info/License.qml:30
1103+msgid "along with this program. If not, see "
1104+msgstr "avec ce programme. Si ce n'est pas le cas, rendez-vous sur "
1105+
1106+#: app/ui/info/License.qml:31
1107+msgid ""
1108+"<a href=\"http://www.gnu.org/licenses/\">http://www.gnu.org/licenses/</a>."
1109+msgstr ""
1110+"<a href=\"http://www.gnu.org/licenses/\">http://www.gnu.org/licenses/</a>."
1111+
1112+#: app/ui/info/Donate.qml:10
1113+msgid "Enjoying the game?"
1114+msgstr "Vous avez apprécié ce jeu[nbsp]?"
1115+
1116+#: app/ui/info/Donate.qml:20
1117+msgid "Send us a small <i><b>thank you</b>!</i>"
1118+msgstr "Envoyez-nous un petit <i><b>merci</b>[nbsp]!</i>"
1119+
1120+#: app/ui/info/Donate.qml:27
1121+msgid "Donate<br>via PayPal"
1122+msgstr "Faire un don<br>via PayPal"
1123+
1124+#: app/ui/info/Credits.qml:10 app/ui/InfoPage.qml:66
1125+msgid "Credits"
1126+msgstr "Crédits"
1127+
1128+#: app/ui/info/Credits.qml:26
1129+msgid "Game development"
1130+msgstr "Développement du jeu"
1131+
1132+#: app/ui/info/Credits.qml:30
1133+msgid "Development"
1134+msgstr "Développement"
1135+
1136+#: app/ui/info/Credits.qml:33
1137+msgid "Design/Artwork"
1138+msgstr "Design/Illustrations"
1139+
1140+#: app/ui/info/Credits.qml:41
1141+msgid "Level packs"
1142+msgstr "Packs de niveaux"
1143+
1144+#: app/ui/info/Feedback.qml:10
1145+msgid "Let us know what you think!"
1146+msgstr "Donnez-nous votre avis[nbsp]!"
1147+
1148+#: app/ui/info/Feedback.qml:34
1149+msgid "Leave us a review in the Ubuntu App Store"
1150+msgstr "Laissez un avis dans la logithèque d'Ubuntu"
1151+
1152+#: app/ui/info/Feedback.qml:44
1153+msgid "or"
1154+msgstr "ou"
1155+
1156+#: app/ui/info/Feedback.qml:58
1157+msgid "Visit our Launchpad page to report a bug or contact us."
1158+msgstr "Visitez notre page sur Launchpad pour signaler une anomalie ou nous contacter."
1159+
1160+#: app/ui/info/CreateLevelpack.qml:10
1161+msgid "Not enough levels? Create your own!"
1162+msgstr "Pas assez de niveaux[nbsp]? Créez le vôtre[nbsp]!"
1163+
1164+#: app/ui/info/CreateLevelpack.qml:25
1165+msgid "Creating level packs "
1166+msgstr "Créer des packs de niveaux"
1167+
1168+#: app/ui/info/CreateLevelpack.qml:26
1169+msgid "for Machines vs Machines is easy! All you need is to draw the "
1170+msgstr "pour Machines contre Machines est facile[nbsp]! Tout ce dont vous avez besoin, c'est de créer "
1171+
1172+#: app/ui/info/CreateLevelpack.qml:27
1173+msgid "artwork and create some simple text files that describe the levels.<br>"
1174+msgstr "quelques dessins ainsi que de simples fichiers de texte qui décrivent les niveaux.<br>"
1175+
1176+#: app/ui/info/CreateLevelpack.qml:28
1177+msgid "The best submitted level packs will be included in this game!"
1178+msgstr "Les meilleurs packs de niveaux soumis seront inclus dans ce jeu[nbsp]!"
1179+
1180+#: app/ui/info/CreateLevelpack.qml:36
1181+msgid "Interested?"
1182+msgstr "Intéressés[nbsp]?"
1183+
1184+#: app/ui/info/CreateLevelpack.qml:41
1185+msgid "Visit the website"
1186+msgstr "Visiter le site Web"
1187+
1188+#: app/ui/InfoPage.qml:34
1189+msgid "Machines vs Machines"
1190+msgstr "Machines contre Machines"
1191+
1192+#: app/ui/InfoPage.qml:39
1193+#, qt-format
1194+msgid "Version: %1"
1195+msgstr "Version[nbsp]: %1"
1196+
1197+#: app/ui/InfoPage.qml:67
1198+msgid "License"
1199+msgstr "Licence"
1200+
1201+#: app/ui/InfoPage.qml:69
1202+msgid "Feedback"
1203+msgstr "Commentaires"
1204+
1205+#: app/ui/InfoPage.qml:70
1206+msgid "Donate"
1207+msgstr "Faire un don"
1208+
1209+#: app/ui/LevelPausedSplash.qml:11 app/ui/LevelResultsSplash.qml:22
1210+#: app/ui/LevelSplash.qml:14
1211+msgid "LEVEL "
1212+msgstr "NIVEAU "
1213+
1214+#: app/ui/LevelPausedSplash.qml:23
1215+msgid "Restart level"
1216+msgstr "Redémarrer le niveau"
1217+
1218+#: app/ui/LevelPausedSplash.qml:30
1219+msgid "Back to level selection"
1220+msgstr "Retourner à la sélection des niveaux"
1221+
1222+#: app/ui/LevelPausedSplash.qml:37
1223+msgid "Back to main menu"
1224+msgstr "Retourner au menu principal"
1225+
1226+#: app/ui/Settings.qml:21
1227+msgid "Settings"
1228+msgstr "Paramètres"
1229+
1230+#: app/ui/Settings.qml:21
1231+msgid "Sound settings"
1232+msgstr "Paramètres sonores"
1233+
1234+#: app/ui/Settings.qml:36
1235+msgid "Sound"
1236+msgstr "Son"
1237+
1238+#: app/ui/Settings.qml:47
1239+msgid "sound enabled"
1240+msgstr "son activé"
1241+
1242+#: app/ui/Settings.qml:54
1243+msgid "soundtrack volume"
1244+msgstr "volume de la musique"
1245+
1246+#: app/ui/Settings.qml:66
1247+msgid "effects volume"
1248+msgstr "volume des effets"
1249+
1250+#: app/ui/Settings.qml:87
1251+msgid "Levelpack development"
1252+msgstr "Développement du pack de niveaux"
1253+
1254+#: app/ui/Settings.qml:97
1255+msgid "field overlay"
1256+msgstr "superposition de champs"
1257+
1258+#: app/ui/Settings.qml:108
1259+msgid "all unlocked"
1260+msgstr "tous débloqués"
1261+
1262+#: app/ui/LevelResultsSplash.qml:44
1263+msgid "New Best Score: "
1264+msgstr "Nouveau record[nbsp]: "
1265+
1266+#: app/ui/LevelResultsSplash.qml:44
1267+msgid "Score: "
1268+msgstr "Score[nbsp]: "
1269+
1270+#: app/ui/LevelResultsSplash.qml:44 app/ui/ScoreInfo.qml:36
1271+#: app/ui/ScoreInfo.qml:43 app/ui/LevelSplash.qml:34
1272+msgid "/"
1273+msgstr "/"
1274+
1275+#: app/ui/LevelResultsSplash.qml:44
1276+msgid "Failed"
1277+msgstr "Échec"
1278+
1279+#: app/ui/LevelResultsSplash.qml:56 app/ui/LevelResultsSplash.qml:107
1280+#: app/ui/ScoreInfo.qml:70
1281+msgid "Okay"
1282+msgstr "Valider"
1283+
1284+#: app/ui/LevelResultsSplash.qml:75
1285+msgid "Retry"
1286+msgstr "Réessayer"
1287+
1288+#: app/ui/MainPage.qml:48
1289+msgid "Play!"
1290+msgstr "Jouer[nbsp]!"
1291+
1292+#: app/ui/ScoreInfo.qml:36
1293+msgid "Levels: "
1294+msgstr "Niveaux[nbsp]: "
1295+
1296+#: app/ui/ScoreInfo.qml:43
1297+msgid "Stars: "
1298+msgstr "Étoiles[nbsp]: "
1299+
1300+#: app/ui/ScoreInfo.qml:55
1301+msgid "Reset"
1302+msgstr "Réinitialiser"
1303+
1304+#: app/ui/GameView.qml:33
1305+msgid "LEVEL: "
1306+msgstr "NIVEAU[nbsp]: "
1307+
1308+#: app/ui/GameView.qml:39
1309+msgid "WAVE: "
1310+msgstr "VAGUE[nbsp]: "
1311+
1312+#: app/ui/LevelSplash.qml:34
1313+msgid "Best Score: "
1314+msgstr "Record[nbsp]: "
1315+
1316+#: app/ui/LevelSplash.qml:47
1317+msgid "Play"
1318+msgstr "Jouer"
1319+
1320+#: app/ui/UnlockTowerOverlay.qml:65
1321+msgid "Damage:"
1322+msgstr "Dégats[nbsp]:"
1323+
1324+#: app/ui/UnlockTowerOverlay.qml:76
1325+msgid "Slowdown:"
1326+msgstr "Ralentissement[nbsp]:"
1327+
1328+#: app/ui/UnlockTowerOverlay.qml:86
1329+msgid "Radius:"
1330+msgstr "Rayon[nbsp]:"
1331+
1332+#: app/ui/UnlockTowerOverlay.qml:100
1333+msgid "Shot duration:"
1334+msgstr "Durée du tir[nbsp]:"
1335+
1336+#: app/ui/UnlockTowerOverlay.qml:103 app/ui/UnlockTowerOverlay.qml:113
1337+msgid " ms"
1338+msgstr " ms"
1339+
1340+#: app/ui/UnlockTowerOverlay.qml:110
1341+msgid "Shot recovery:"
1342+msgstr "Rétablissement après un tir[nbsp]:"
1343+
1344+#: app/ui/UnlockTowerOverlay.qml:120
1345+msgid "Cost:"
1346+msgstr "Coût[nbsp]:"
1347+
1348+#: app/ui/UnlockTowerOverlay.qml:123
1349+msgid " $"
1350+msgstr " $"
1351+
1352+#: app/ui/UnlockTowerOverlay.qml:137
1353+msgid "Unlock tower ("
1354+msgstr "Déverrouiller la tour ("
1355+
1356+#: app/ui/UnlockTowerOverlay.qml:137
1357+msgid " ⚝)"
1358+msgstr "⚝)"
1359+
1360+#: app/ui/UnlockTowerOverlay.qml:138
1361+msgid "Get "
1362+msgstr "Obtenez "
1363+
1364+#: app/ui/UnlockTowerOverlay.qml:138
1365+msgid " more ⚝ to unlock!"
1366+msgstr "plus d'⚝ pour déverrouiller[nbsp]!"
1367+
1368+#: app/machines-vs-machines.qml:17
1369+msgid "Machines vs. Machines"
1370+msgstr "Machines contre Machines"
1371+
1372+#: app/machines-vs-machines.qml:350
1373+msgid "Please rotate your device"
1374+msgstr "Veuillez faire pivoter votre appareil"

Subscribers

People subscribed via source and target branches