diff options
author | Aleksey 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) |
commit | 93eb87325a3cfe22d50c17244507041cb51a21dd (patch) | |
tree | 106017b65a8c46bdc315f1844d3ebfadd41f1bb3 | |
parent | f77243d6cf9f71ba92a3ad574e7b5866c58bbda7 (diff) |
Fix i18n plural strings
-rw-r--r-- | constants.py | 19 | ||||
-rw-r--r-- | po/Record.pot | 195 | ||||
-rw-r--r-- | ui.py | 24 |
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 "" @@ -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 ) |