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

Reply via email to