On 8/18/05, Silvan <[EMAIL PROTECTED]> wrote:
> I'm starting a new thread to discuss this in its own context.
>
> We've established that there's a problem with plurals in eastern languages,
> and that this should be fixed before we do our next release.
>
> I came up with something like this to fix one case:
>
> setCaption(i18n("%1 - %2 Segment: 1 - %3 ",
> "%1 - %2 Segment: %2 - %3 ")
> .arg(getDocument()->getTitle())
> .arg(m_segments.size())
> .arg(view));
>
> The developer info is very vague on this point:
>
> msgStr = i18n("Creating index file: 1 message done",
> "Creating index file: %n messages done", num);
>
> I'm not sure what the syntax is here. It looks like ": 1" is a particle by
> itself, so a case of (": 1", ": %1").arg(foo) would use the "singular" form
> for the case of foo == 1, I guess, and then choose whatever combobulated
> degree of obfuscation necessary if foo > 1
>
> If that is true, then what happens when you have something like ("Field:
> %1").arg(foo) in the code? My guess is it has to turn into ("Field:: 1",
> "Field:: %1").arg(foo) but I'm really not sure at all.
>
> Finally, I'm still not completely sure exactly which cases are going to create
> problems. What about things like
>
> In: 2 Out: 4
>
> or
>
> Track: 97
>
> Do these words take different inflections in Russian in this situation, or
> only in the context of something like "You have 97 tracks?" Do these labels
> for assorted numerical things like controller numbers and all that whatnot
> need special treatment?
>
> Then what about the error "I am version %1 and you have installed files for
> version %2" We know the version is going to be at least 1.0 from now on, but
> I'm not sure how Russian would handle this with the decimals (or commas or
> spaces or whatever) and whatforth. Plus Russian doesn't have a verb "to be"
> either, so I wonder what that does. Do subject pronouns decline?
>
> That's an interesting question. I'm not sure if you'd even say subject
> pronouns decline in Latin. Is mihi the dative of ego? If so, what's the
> genitive of ego? But I digress.
>
> Here is a list of every i18n call that has a % in it (with up to five lines of
> after context). Please just tell me which ones need attention and save me
> having to get a headache trying to bend my mind into a pretzle over this (and
> hell, I'm an armchair linguist...) You can simply cut out everything that
> doesn't need attention and mail it back.
>
> Ah, hell, it's 87 K, and it won't pass as an attachment. So here, dammit,
> I'll just paste it:
Okay, I'm not sure about all of them, but at least most of them either
do require or may require further attention. I might have not noticed
other ones that should be here, but we can fix it later, right?
--
./gui/matrixview.cpp- " %n events selected ", eventsSelected));
./gui/matrixview.cpp- } else {
./gui/matrixview.cpp: m_selectionCounter->setText(i18n(" No selection
"));
./gui/matrixview.cpp- }
./gui/matrixview.cpp- m_selectionCounter->update();
./gui/matrixview.cpp-
--
./gui/mixer.cpp: ((i == 1 ? i18n("%1 Input") : i18n("%1
Inputs")).arg(i),
./gui/mixer.cpp- 0, this,
./gui/mixer.cpp- SLOT(slotSetInputCountFromAction()),
actionCollection(),
./gui/mixer.cpp- QString("inputs_%1").arg(i));
./gui/mixer.cpp- action->setExclusiveGroup("inputs");
./gui/mixer.cpp- if (i == int(m_studio->getRecordIns().size()))
action->setChecked(true);
./gui/mixer.cpp- }
./gui/mixer.cpp-
./gui/mixer.cpp- action = new KRadioAction
--
./gui/notationstrings.cpp: return addDots(i18n("%1
triplets").arg(names[type]), dots, false, true);
./gui/notationstrings.cpp- } else if (plural) {
./gui/notationstrings.cpp- return addDots(pluralnames[type], dots,
false, true);
./gui/notationstrings.cpp- } else if (triplet) {
./gui/notationstrings.cpp: return addDots(i18n("%1
triplet").arg(names[type]), dots, false, true);
./gui/notationstrings.cpp- } else {
./gui/notationstrings.cpp- return addDots(names[type], dots, false, true);
./gui/notationstrings.cpp- }
./gui/notationstrings.cpp-}
./gui/notationstrings.cpp-
--
./gui/notationstrings.cpp: return addDots(i18n("%1
triplets").arg(names[type]), dots, false, true);
./gui/notationstrings.cpp- } else if (plural) {
./gui/notationstrings.cpp- return addDots(pluralnames[type], dots,
false, true);
./gui/notationstrings.cpp- } else if (triplet) {
./gui/notationstrings.cpp: return addDots(i18n("%1
triplet").arg(names[type]), dots, false, true);
./gui/notationstrings.cpp- } else {
./gui/notationstrings.cpp- return addDots(names[type], dots, false, true);
./gui/notationstrings.cpp- }
./gui/notationstrings.cpp-}
./gui/notationstrings.cpp-
--
./gui/notationview.cpp: (sizes[i] == 1 ? i18n("%1
pixel").arg(sizes[i]) :
./gui/notationview.cpp: i18n("%1
pixels").arg(sizes[i]),
./gui/notationview.cpp- 0, this,
./gui/notationview.cpp- SLOT(slotChangeFontSizeFromAction()),
./gui/notationview.cpp- actionCollection(), actionName);
./gui/notationview.cpp- }
./gui/notationview.cpp-
--
./gui/notationview.cpp: setCaption(i18n("%1 - Segment Track #%2 -
Notation")
./gui/notationview.cpp- .arg(getDocument()->getTitle())
./gui/notationview.cpp- .arg(trackPosition + 1));
./gui/notationview.cpp-
./gui/notationview.cpp- } else if (m_segments.size() ==
getDocument()->getComposition().getNbSegments()) {
./gui/notationview.cpp-
./gui/notationview.cpp: setCaption(i18n("%1 - All Segments - Notation")
./gui/notationview.cpp- .arg(getDocument()->getTitle()));
./gui/notationview.cpp-
./gui/notationview.cpp- } else {
./gui/notationview.cpp-
./gui/notationview.cpp: setCaption(i18n("%1 - %2 Segments - Notation")
./gui/notationview.cpp- .arg(getDocument()->getTitle())
./gui/notationview.cpp- .arg(m_segments.size()));
./gui/notationview.cpp-
./gui/notationview.cpp- }
./gui/notationview.cpp-}
--
./gui/notationviewslots.cpp: KMessageBox::sorry(this, i18n("Can't add
overlapping %1 indications").arg(desc));
./gui/notationviewslots.cpp- delete command;
./gui/notationviewslots.cpp- }
./gui/notationviewslots.cpp-}
./gui/notationviewslots.cpp-
./gui/notationviewslots.cpp-void NotationView::slotGroupMakeChord()
--
./gui/rosegardenconfigurationpage.cpp: return i18n("%1 minutes %2.%3%4
seconds (%5 units, %6 bars)")
./gui/rosegardenconfigurationpage.cpp- .arg(rt.sec / 60).arg(rt.sec % 60)
./gui/rosegardenconfigurationpage.cpp- .arg(rt.msec() / 100).arg((rt.msec() /
10) % 10)
./gui/rosegardenconfigurationpage.cpp-
.arg(absTime).arg(comp.getBarNumber(absTime)
+ 1);
./gui/rosegardenconfigurationpage.cpp-}
./gui/rosegardenconfigurationpage.cpp-*/
./gui/rosegardenconfigurationpage.cpp-static QString
durationToString(Rosegarden::Composition &comp,
./gui/rosegardenconfigurationpage.cpp-
Rosegarden::timeT absTime,
--
./gui/rosegardenconfigurationpage.cpp: return i18n("%1 minutes %2.%3%4
seconds (%5 units, %6 measures)")
./gui/rosegardenconfigurationpage.cpp- .arg(rt.sec / 60).arg(rt.sec % 60)
./gui/rosegardenconfigurationpage.cpp- .arg(rt.msec() / 100).arg((rt.msec() /
10) % 10)
./gui/rosegardenconfigurationpage.cpp-
.arg(duration).arg(comp.getBarNumber(absTime
+ duration) -
./gui/rosegardenconfigurationpage.cpp-
comp.getBarNumber(absTime));
./gui/rosegardenconfigurationpage.cpp-}
./gui/rosegardenconfigurationpage.cpp-
./gui/rosegardenconfigurationpage.cpp-
--
./gui/triggermanager.cpp: used = i18n("%1 on %2
track").arg(uses).arg(tracks.size());
./gui/triggermanager.cpp- else
./gui/triggermanager.cpp: used = i18n("%1 on %2
tracks").arg(uses).arg(tracks.size());
./gui/triggermanager.cpp-
./gui/triggermanager.cpp- QString pitch = QString("%1 (%2)")
./gui/triggermanager.cpp-
.arg(Rosegarden::MidiPitchLabel((*it)->getBasePitch()).getQString())
./gui/triggermanager.cpp- .arg((*it)->getBasePitch());
./gui/triggermanager.cpp-
./gui/triggermanager.cpp- QString velocity =
QString("%1").arg((*it)->getBaseVelocity());
./gui/triggermanager.cpp-
./gui/triggermanager.cpp- item = new TriggerManagerItem
./gui/triggermanager.cpp- (m_listView, QString("%1").arg(i+1),
QString("%1").arg((*it)->getId()),
./gui/triggermanager.cpp- label, timeString, pitch, velocity, used);
--
./gui/triggermanager.cpp: if (KMessageBox::warningContinueCancel(this,
i18n("This triggered segment is used %1 times in the current composition.
Are you sure you want to remove it?").arg(item->getUsage())) !=
KMessageBox::Continue) return;
./gui/triggermanager.cpp- }
./gui/triggermanager.cpp-
./gui/triggermanager.cpp- DeleteTriggerSegmentCommand *command =
./gui/triggermanager.cpp- new DeleteTriggerSegmentCommand(m_doc,
item->getId());
./gui/triggermanager.cpp-
--
Alexandre
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel