Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2010-04-20 18:05:14 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2010-04-20 18:05:14 (GMT)
commit93eb87325a3cfe22d50c17244507041cb51a21dd (patch)
tree106017b65a8c46bdc315f1844d3ebfadd41f1bb3
parentf77243d6cf9f71ba92a3ad574e7b5866c58bbda7 (diff)
Fix i18n plural strings
-rw-r--r--constants.py19
-rw-r--r--po/Record.pot195
-rw-r--r--ui.py24
3 files changed, 108 insertions, 130 deletions
diff --git a/constants.py b/constants.py
index 3430e39..29f674c 100644
--- a/constants.py
+++ b/constants.py
@@ -2,6 +2,7 @@
import os
import gtk
from gettext import gettext as gt
+from gettext import ngettext
import hippo
import sugar.graphics.style
@@ -15,6 +16,15 @@ import cairo
import pango
import pangocairo
+
+def istrMinutes(x):
+ return ngettext('%(1)s minute', '%(1)s minutes', int(x)) % {'1': int(x)}
+
+
+def istrSeconds(x):
+ return ngettext('%(1)s second', '%(1)s seconds', int(x)) % {'1': int(x)}
+
+
class Constants:
VERSION = 54
@@ -125,19 +135,12 @@ class Constants:
istrTags = _('Tags:')
istrSaving = _('Saving')
istrFinishedRecording = _("Finished recording")
- istrHoursMinutesSecondsRemaining = _("%(1)s hours, %(2)s minutes, %(3)s seconds remaining")
- istrMinutesSecondsRemaining = _("%(1)s minutes, %(2)s seconds remaining")
- istrHoursRemaining = _("%(1)s hours remaining")
- istrMinutesRemaining = _("%(1)s minutes remaining")
- istrSecondsRemaining = _("%(1)s seconds remaining")
- istrHours = _("%(1)s hours")
- istrMinutes = _("%(1)s minutes")
- istrSeconds = _("%(1)s seconds")
istrRemove = _("Remove")
istrStoppedRecording = _("Stopped recording")
istrCopyToClipboard = _("Copy to clipboard")
istrTimer = _("Timer:")
istrDuration = _("Duration:")
+ istrRemaining = _("Remaining:")
istrNow = _("Immediate")
istrPlay = _("Play")
istrPause = _("Pause")
diff --git a/po/Record.pot b/po/Record.pot
index 0bd11c6..40b27d5 100644
--- a/po/Record.pot
+++ b/po/Record.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-13 17:25+0000\n"
+"POT-Creation-Date: 2010-04-20 17:58+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,316 +18,287 @@ msgstr ""
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: activity/activity.info:2
-#: /home/sugar/src/activities/record.activity/constants.py:113
+#: /home/sugar/src/activities/record.activity/constants.py:122
msgid "Record"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:114
-msgid "Photo"
-msgstr ""
-
-#: /home/sugar/src/activities/record.activity/constants.py:115
-msgid "Video"
-msgstr ""
-
-#: /home/sugar/src/activities/record.activity/constants.py:116
-msgid "Audio"
-msgstr ""
-
-#: /home/sugar/src/activities/record.activity/constants.py:117
-msgid "Time Lapse"
-msgstr ""
-
-#: /home/sugar/src/activities/record.activity/constants.py:118
-msgid "Animation"
-msgstr ""
-
-#: /home/sugar/src/activities/record.activity/constants.py:119
-msgid "Panorama"
-msgstr ""
-
-#: /home/sugar/src/activities/record.activity/constants.py:120
-msgid "Interview"
-msgstr ""
+#: /home/sugar/src/activities/record.activity/constants.py:21
+#, python-format
+msgid "%(1)s minute"
+msgid_plural "%(1)s minutes"
+msgstr[0] ""
+msgstr[1] ""
-#. TRANS: photo by photographer, e.g., "Photo by Mary"
-#: /home/sugar/src/activities/record.activity/constants.py:122
+#: /home/sugar/src/activities/record.activity/constants.py:25
#, python-format
-msgid "%(1)s by %(2)s"
-msgstr ""
+msgid "%(1)s second"
+msgid_plural "%(1)s seconds"
+msgstr[0] ""
+msgstr[1] ""
#: /home/sugar/src/activities/record.activity/constants.py:123
-msgid "Title:"
+msgid "Photo"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:124
-msgid "Recorder:"
+msgid "Video"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:125
-msgid "Date:"
+msgid "Audio"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:126
-msgid "Tags:"
+msgid "Time Lapse"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:127
-msgid "Saving"
+msgid "Animation"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:128
-msgid "Finished recording"
+msgid "Panorama"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:129
-#, python-format
-msgid "%(1)s hours, %(2)s minutes, %(3)s seconds remaining"
-msgstr ""
-
-#: /home/sugar/src/activities/record.activity/constants.py:130
-#, python-format
-msgid "%(1)s minutes, %(2)s seconds remaining"
+msgid "Interview"
msgstr ""
+#. TRANS: photo by photographer, e.g., "Photo by Mary"
#: /home/sugar/src/activities/record.activity/constants.py:131
#, python-format
-msgid "%(1)s hours remaining"
+msgid "%(1)s by %(2)s"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:132
-#, python-format
-msgid "%(1)s minutes remaining"
+msgid "Title:"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:133
-#, python-format
-msgid "%(1)s seconds remaining"
+msgid "Recorder:"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:134
-#, python-format
-msgid "%(1)s hours"
+msgid "Date:"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:135
-#, python-format
-msgid "%(1)s minutes"
+msgid "Tags:"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:136
-#, python-format
-msgid "%(1)s seconds"
+msgid "Saving"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:137
-msgid "Remove"
+msgid "Finished recording"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:138
-msgid "Stopped recording"
+msgid "Remove"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:139
-msgid "Copy to clipboard"
+msgid "Stopped recording"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:140
-msgid "Timer:"
+msgid "Copy to clipboard"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:141
-msgid "Duration:"
+msgid "Timer:"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:142
-msgid "Immediate"
+msgid "Duration:"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:143
-msgid "Play"
+msgid "Remaining:"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:144
-msgid "Pause"
+msgid "Immediate"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:145
-msgid "Add frame"
+msgid "Play"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:146
-msgid "Remove frame"
+msgid "Pause"
msgstr ""
#: /home/sugar/src/activities/record.activity/constants.py:147
+msgid "Add frame"
+msgstr ""
+
+#: /home/sugar/src/activities/record.activity/constants.py:148
+msgid "Remove frame"
+msgstr ""
+
+#: /home/sugar/src/activities/record.activity/constants.py:149
#, python-format
msgid "%(1)s frames per second"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:148
+#: /home/sugar/src/activities/record.activity/constants.py:150
msgid "Quality"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:149
+#: /home/sugar/src/activities/record.activity/constants.py:151
msgid "Default"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:150
+#: /home/sugar/src/activities/record.activity/constants.py:152
msgid "Best"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:151
+#: /home/sugar/src/activities/record.activity/constants.py:153
msgid "High"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:152
+#: /home/sugar/src/activities/record.activity/constants.py:154
msgid "Low"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:153
+#: /home/sugar/src/activities/record.activity/constants.py:155
msgid "Large file"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:154
+#: /home/sugar/src/activities/record.activity/constants.py:156
msgid "Small file"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:155
+#: /home/sugar/src/activities/record.activity/constants.py:157
msgid "Silent"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:156
+#: /home/sugar/src/activities/record.activity/constants.py:158
msgid "Rotate"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:157
+#: /home/sugar/src/activities/record.activity/constants.py:159
msgid "Width"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:158
+#: /home/sugar/src/activities/record.activity/constants.py:160
msgid "Height"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:159
+#: /home/sugar/src/activities/record.activity/constants.py:161
msgid "Click to take picture"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:160
+#: /home/sugar/src/activities/record.activity/constants.py:162
msgid "Click to add picture"
msgstr ""
#. TRANS: Downloading Photo from Mary
-#: /home/sugar/src/activities/record.activity/constants.py:162
+#: /home/sugar/src/activities/record.activity/constants.py:164
#, python-format
msgid "Downloading %(1)s from %(2)s"
msgstr ""
#. TRANS: Cannot download this Photo
-#: /home/sugar/src/activities/record.activity/constants.py:164
+#: /home/sugar/src/activities/record.activity/constants.py:166
#, python-format
msgid "Cannot download this %(1)s"
msgstr ""
#. TRANS: Save Photo to:
-#: /home/sugar/src/activities/record.activity/constants.py:166
+#: /home/sugar/src/activities/record.activity/constants.py:168
#, python-format
msgid "Save %(1)s to:"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:167
+#: /home/sugar/src/activities/record.activity/constants.py:169
#, python-format
msgid "Your %(1)s is full"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:168
+#: /home/sugar/src/activities/record.activity/constants.py:170
msgid "Journal"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:169
+#: /home/sugar/src/activities/record.activity/constants.py:171
msgid "USB"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:170
+#: /home/sugar/src/activities/record.activity/constants.py:172
msgid "SD Card"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:171
+#: /home/sugar/src/activities/record.activity/constants.py:173
msgid "Preferences"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:172
+#: /home/sugar/src/activities/record.activity/constants.py:174
msgid "Free space:"
msgstr ""
#. TRANS: 7 photos
-#: /home/sugar/src/activities/record.activity/constants.py:174
-#, python-format
-msgid "%(1)s photo"
-msgid_plural "%(1)s photos"
-msgstr[0] ""
-msgstr[1] ""
-
-#: /home/sugar/src/activities/record.activity/constants.py:175
+#: /home/sugar/src/activities/record.activity/constants.py:176
msgid "Bitrate"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:176
+#: /home/sugar/src/activities/record.activity/constants.py:177
msgid "Maximum Bitrate"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:177
+#: /home/sugar/src/activities/record.activity/constants.py:178
msgid "Minumum Bitrate"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:178
+#: /home/sugar/src/activities/record.activity/constants.py:179
msgid "Manage Bitrate"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:179
+#: /home/sugar/src/activities/record.activity/constants.py:180
msgid "Border"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:180
+#: /home/sugar/src/activities/record.activity/constants.py:181
msgid "Center"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:181
+#: /home/sugar/src/activities/record.activity/constants.py:182
msgid "Frames"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:182
+#: /home/sugar/src/activities/record.activity/constants.py:183
msgid "Automatic keyframe detection"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:183
+#: /home/sugar/src/activities/record.activity/constants.py:184
msgid "Force keyframe"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:184
+#: /home/sugar/src/activities/record.activity/constants.py:185
msgid "Keyframe frequency"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:185
+#: /home/sugar/src/activities/record.activity/constants.py:186
msgid "Keyframe minimum distance"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:186
+#: /home/sugar/src/activities/record.activity/constants.py:187
msgid "Keyframe threshold"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:187
+#: /home/sugar/src/activities/record.activity/constants.py:188
msgid "Noise Sensitivity"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:188
+#: /home/sugar/src/activities/record.activity/constants.py:189
msgid "Quick"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:189
+#: /home/sugar/src/activities/record.activity/constants.py:190
msgid "Sharpness"
msgstr ""
-#: /home/sugar/src/activities/record.activity/constants.py:190
+#: /home/sugar/src/activities/record.activity/constants.py:191
msgid "Capacity"
msgstr ""
diff --git a/ui.py b/ui.py
index 10d16cd..29af24c 100644
--- a/ui.py
+++ b/ui.py
@@ -46,7 +46,7 @@ from sugar.activity import activity
from sugar.graphics import style
from instance import Instance
-from constants import Constants
+from constants import Constants, istrMinutes, istrSeconds
from color import Color
from p5 import P5
from p5_button import P5Button
@@ -955,13 +955,15 @@ class UI:
return False
else:
secsRemaining = duration - passedTime
- timeRemainStr = Constants.istrSecondsRemaining % {"1":str(int(secsRemaining))}
if (secsRemaining >= 60):
mins = int( secsRemaining/60 )
secs = int( secsRemaining%60 )
- timeRemainStr = Constants.istrMinutesSecondsRemaining % {"1":str(int(mins)), "2":str(int(secs))}
+ timeRemainStr = istrMinutes(mins) + ', ' + istrSeconds(secs)
+ else:
+ timeRemainStr = istrSeconds(secsRemaining)
- self.progressWindow.updateProgress( passedTime/duration, Constants.istrDuration + " " + timeRemainStr )
+ self.progressWindow.updateProgress( passedTime/duration,
+ Constants.istrRemaining + " " + timeRemainStr )
return True
@@ -1338,7 +1340,9 @@ class UI:
return False
else:
secsRemaining = timerTime-passedTime
- self.progressWindow.updateProgress( passedTime/timerTime, Constants.istrTimer + " " + Constants.istrSecondsRemaining % {"1":str(int(secsRemaining))} )
+ timeRemainStr = istrSeconds(secsRemaining)
+ self.progressWindow.updateProgress( passedTime/timerTime,
+ Constants.istrRemaining + " " + timeRemainStr)
self.recordWindow.updateCountdown( int(secsRemaining) )
return True
@@ -2300,7 +2304,7 @@ class PhotoToolbar(gtk.Toolbar):
if (i == 0):
self.timerCb.combo.append_text( Constants.istrNow )
else:
- self.timerCb.combo.append_text( Constants.istrSeconds % {"1":(str(Constants.TIMERS[i]))} )
+ self.timerCb.combo.append_text(istrSeconds(Constants.TIMERS[i]))
self.timerCb.combo.set_active(0)
self.insert( self.timerCb, -1 )
@@ -2347,7 +2351,7 @@ class VideoToolbar(gtk.Toolbar):
if (i == 0):
self.timerCb.combo.append_text( Constants.istrNow )
else:
- self.timerCb.combo.append_text( Constants.istrSeconds % {"1":(str(Constants.TIMERS[i]))} )
+ self.timerCb.combo.append_text(istrSeconds(Constants.TIMERS[i]))
self.timerCb.combo.set_active(0)
self.insert( self.timerCb, -1 )
@@ -2360,7 +2364,7 @@ class VideoToolbar(gtk.Toolbar):
durCbb = gtk.combo_box_new_text()
self.durCb = ToolComboBox(combo=durCbb, label_text=Constants.istrDuration)
for i in range (0, len(Constants.DURATIONS)):
- self.durCb.combo.append_text( Constants.istrMinutes % {"1":(str(Constants.DURATIONS[i]))} )
+ self.durCb.combo.append_text(istrMinutes(Constants.DURATIONS[i]))
self.durCb.combo.set_active(0)
self.insert(self.durCb, -1 )
@@ -2405,7 +2409,7 @@ class AudioToolbar(gtk.Toolbar):
if (i == 0):
self.timerCb.combo.append_text( Constants.istrNow )
else:
- self.timerCb.combo.append_text( Constants.istrSeconds % {"1":(str(Constants.TIMERS[i]))} )
+ self.timerCb.combo.append_text(istrSeconds(Constants.TIMERS[i]))
self.timerCb.combo.set_active(0)
self.insert( self.timerCb, -1 )
@@ -2418,7 +2422,7 @@ class AudioToolbar(gtk.Toolbar):
durCbb = gtk.combo_box_new_text()
self.durCb = ToolComboBox(combo=durCbb, label_text=Constants.istrDuration)
for i in range (0, len(Constants.DURATIONS)):
- self.durCb.combo.append_text( Constants.istrMinutes % {"1":(str(Constants.DURATIONS[i]))} )
+ self.durCb.combo.append_text(istrMinutes(Constants.DURATIONS[i]))
self.durCb.combo.set_active(0)
self.insert(self.durCb, -1 )