Closed Bug 473706 Opened 16 years ago Closed 7 years ago

For some locales, there is no way to change label of button, depending on existence of duplicate bookmarks

Categories

(Firefox :: Bookmarks & History, defect)

defect
Not set
major

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: dev-null, Unassigned)

References

Details

(Keywords: l12y)

Attachments

(1 file)

Bug 451586 changes existence of "(#1)" in button label depending on existence of duplicate bookmarks.

But existence of "(#1)" can not be changed for some locales (e.g. Japanese, Chinese, Korean, ...) whose plural rule is 0 because format is not changed whether it is plural.
For example:

en-US (whose plural rule is #1):
changes "Remove Bookmark" or "Remove Bookmarks (2)" depending on whether a duplicate exists.

ja (whose plural rule is #0):
If set editBookmark.removeBookmarks.label to "Remove Bookmark", it's always "Remove Bookmark", and "Remove Bookmark (2)" can't be generated even if any duplicates exist.
If set editBookmark.removeBookmarks.label to "Remove Bookmark (#1)", it's always "Remove Bookmark (<number>)", and only "Remove Bookmark" can't be generated even if no duplicates exist.
I don't know the anything about the implications in Japanese when saying "Remove Bookmark", how would the user tell that she is actually just removing one? Kinda hard to ask that question in English, as it's obvious there.

One the one hand, I think it's a feature that we're not saying something by absence of UI by giving the number at all times for single-plural-rule languages. I could see that being visual clutter, too, though.

Not sure if we can work around this, but I'm rather sure that we couldn't get the fix into 3.1 anymore.
(In reply to comment #2)
> I don't know the anything about the implications in Japanese when saying
> "Remove Bookmark", how would the user tell that she is actually just removing
> one?

If we just describe a fact, "Remove #1 Bookmark(s)" is OK, also in Japanese.
But why is this "Remove Bookmark;Remove Bookmarks (#1)", not just "Remove #1 Bookmark;Remove #1 Bookmarks"?

I'm not sure about implications in English, but I guess this change emphasize whether the bookmark is single or not.
But such a emphasis can't be done by plural form in many languages because plural rule is not always "single or not."
If we can't emphasize "single or not" in order to prevent data loss, I don't think Bug 451586, which is blocking fx3.1, is fixed.

> Not sure if we can work around this, but I'm rather sure that we couldn't get
> the fix into 3.1 anymore.

We Japanese can work around this by changing plural rule from 0 to 1, and duplicating every plural form to each 2 forms.
But it may be hard to make sure all plural forms are duplicated without exception.
The English string doesn't need a "1" in the singular form, because it is implied. The essence of bug 451586 is that it's utterly confusing to remove more than on bookmark, if you're explicitly only talking about 1. The user should get feedback on how much data she is actually going to remove.

I don't see a reason why you can't just use "Remove #1 Bookmark" in Japanese and stick to the single plural form.
(In reply to comment #4)
> I don't see a reason why you can't just use "Remove #1 Bookmark" in Japanese
> and stick to the single plural form.

Because Alex said "change to Remove Bookmarks (n)", not "Remove n Bookmarks."

(In reply to Bug 451586 comment #10)
> let's just change the text of the button
> to "Remove Bookmarks (n)" where n is the number of bookmarks that exist.

Alex, could you explain why is it "Remove Bookmarks (n)", not "Remove n Bookmarks"?
Is "Remove n Bookmarks" OK?
Otherwise, is "Remove Bookmark(s) (n)" OK where "(n)" always appears even if n is 1?
(In reply to comment #4)
Actually, we didn't use "1" in that label in Japanese package because it is normal case and everyone think so implicitly. Moreover, if adding "1" in the label it seems to have special meaning and users get confused.

In this case, people tend to assume "1" implicitly (it is not caused by English singular form but by whole UI, as Bug 451586 says) so we should attract their special attention when removing multiple bookmarks. It is natural to use two strings (namely editBookmark.removeBookmark.label and removeBookmarks.label) in any language. I think the current code is an abuse of PluralForm.
We're way past string freeze. Are you requesting that we break string freeze for this?
> Are you requesting that we break string freeze for this?

No. Sorry for confusing. I'm focusing on trunk (and future).
If you continue to use PluralForm for similar cases, I cannot stop changing plural rule to 1 (same value of English) in Japanese langpack.

Again, you should not use PluralForm in order to change the string between ==1 and >2. Otherwise we cannot keep the original role of this system.
In this case, you can use PluralForm if you permit the expression
editBookmark.removeBookmarks.label=Remove Bookmark (1);Remove Bookmarks (#1)
or
editBookmark.removeBookmarks.label=Remove 1 Bookmark;Remove #1 Bookmarks
Though I'm not sure about implications in English I think it is not the case because "Remove Bookmark" omits the word like "this" (i.e. "Remove this bookmark"), which implies the specific bookmark, not indefinite "one bookmark". Of course any comment is welcome.
(In reply to comment #8)
> Again, you should not use PluralForm in order to change the string between ==1
> and >2. Otherwise we cannot keep the original role of this system.
> In this case, you can use PluralForm if you permit the expression
> editBookmark.removeBookmarks.label=Remove Bookmark (1);Remove Bookmarks (#1)
> or
> editBookmark.removeBookmarks.label=Remove 1 Bookmark;Remove #1 Bookmarks
> Though I'm not sure about implications in English I think it is not the case
> because "Remove Bookmark" omits the word like "this" (i.e. "Remove this
> bookmark"), which implies the specific bookmark, not indefinite "one bookmark".
> Of course any comment is welcome.

I second the comment above, which explained in detail how the numeric implications works in Eastern languages.
Chinese (and Japanese I believe) made every nouns "uncountable", in order to express the amount explicitly, one would have to use "measure word", in a sense it's like saying "one drop of milk, fifty head of cattle, three pieces of cake".

http://en.wikipedia.org/wiki/Measure_word

In a sum, let's put aside linguistics theories, explicitly stating "Delete 1 record of bookmark" is really really odd. I didn't even think of what is the proper measure word for bookmarks (or it really exists) until this string shows up.
>Alex, could you explain why is it "Remove Bookmarks (n)", not "Remove n
>Bookmarks"?

No particular reason.

>Is "Remove n Bookmarks" OK?

Yes, that would be fine.

>Otherwise, is "Remove Bookmark(s) (n)" OK where "(n)" always appears even if n
>is 1?

The most common case will be 1, so we should try to avoid that wording appearing awkward: "Remove Bookmark(s) (1)"
I have been giving this some more thought, and this is really not a problem of the en-US patch, but an artifact of the one-plural-form case. I see that at least Russian made use of the multiple plural forms.

Of course you're right, "remove items of bookmarks (1)" looks awkward, in particular if it's the most common UI. What I propose to do is this:

Let's change the 1-plural-form to include optional cases for 1 and 0. In general, you would use 1 plural form, but in particular cases, you could add extra entries for 1, and for 0. http://mxr.mozilla.org/mozilla-central/source/intl/locale/src/PluralForm.jsm#142 already includes fallback to the first item, but we should remove the error condition, if we make this by design at least for this plural rule.

This is something that we should be able to lift post-Beta 3 still, if you think that that solution would work.
>Let's change the 1-plural-form to include optional cases for 1 and 0

In this interface I don't think 0 is possible, but having cases for 1 and 1+ will help.
(In reply to comment #11)
> and this is really not a problem of 
> the en-US patch, but an artifact of the one-plural-form case.

No. I think it is not only the case of one-plural-form (Plural rule #0), but also the case of the locales which cannot differentiate "1" from others, including Russian (Plural rule #7).

> I see that at least Russian made use of the multiple plural forms.

I'm afraid Russian users get no notices when deleting 11 bookmarks.
http://mxr.mozilla.org/l10n-mozilla1.9.1/source/ru/browser/chrome/browser/browser.properties#93

I'm still against the idea to use PluralForm in order to change the behavior between "1" and others, but it is useful to fallback to another plural rule.
I'd suggest to fallback to English plural rule (Plural rule #1) in the locales with numForms!=2 when the string erroneously has two forms. Because
- Localizers tend to translate phrase by phrase, so they may mistakenly translate "second;seconds" to "秒;秒" without changing the number of plural forms.
- To test nightly build in their locales, they can simply import the strings from English locale without any change.
(- Of course we can do workaround in such a case mentioned in this bug.)

This works in the case of Plural rule #0 as you described, but it is temporary solution for locales of plural rule #3,6,7,10 and #14.


(In reply to comment #9)
> (and Japanese I believe)

Yes, exactly.
To get this straight, we're not going to change this for 3.1.

I'm concerned that while most of the languages with multiple plurals localized this change weeks before string freeze, you consider your opinion weeks after string freeze to overrule their understanding of their knowledge.
Patch to fallback as described in comment #13.
Attachment #359609 - Flags: review-
(In reply to comment #13)
> I'm afraid Russian users get no notices when deleting 11 bookmarks.

My mistake. "21 bookmarks" is correct. It does not seem probable, but possible. There are 12 locales that have >2 pluralRules, and some of them i.e. lv(3)/is(3)/lt(6)/ru(7)/be(7)/sr(7)/uk(7) cannot distinguish "1" from others in a strict sense.
Currently sr has the string of wrong format (2 forms). Among the rest, only lv has the correct string and the others have possibly "21 problem". 
http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/is/file/tip/browser/chrome/browser/browser.properties#l141
http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/lt/file/tip/browser/chrome/browser/browser.properties#l172
http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/ru/file/tip/browser/chrome/browser/browser.properties#l93
http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/be/file/tip/browser/chrome/browser/browser.properties#l93
http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/uk/file/tip/browser/chrome/browser/browser.properties#l169
These do not contain |#1| in the first (or second in is locale) form.

Similar trouble is reported in Bug 463273 comment #17 (every day / every 1 day). How do you think about it?
(In reply to comment #16)
> > I'm afraid Russian users get no notices when deleting 11 bookmarks.
> My mistake. "21 bookmarks" is correct. It does not seem probable, but possible.

In Russian, it is correct to say 

 "Удалить закладку" 'Delete a bookmark'      singular accusative

and

 "Удалить закладки" 'Delete bookmarks'       plural accusative

when there is more than one bookmark.  But

 "Удалить 1 закладку"  'Delete 1 bookmark'   singular accusative
 "Удалить 21 закладку" 'Delete 21 bookmarks' singular accusative
 "Удалить 23 закладки" 'Delete 23 bookmarks' singular genitive
 "Удалить 25 закладок" 'Delete 25 bookmarks' plural genitive

note generic plural which is used without number may not match any used in ngettext.  In this example "закладки" look identical, but this cannot be relied upon.
(In reply to comment #17)
> In Russian, it is correct to say

Vitaly, thanks for your comment.
From my understanding, the string |editBookmark.removeBookmarks.label| should be
  editBookmark.removeBookmarks.label = Удалить закладку;Удалить закладки (#1)
with plural rule #1, or
  editBookmark.removeBookmarks.label = Удалить #1 закладку;Удалить #1 закладки;Удалить #1 закладок
with plural rule #7 (Russian). Right?

Current setting omits "#1" in the first form of the latter string...
When you see "Удалить закладку" in a button label, you'll expect to delete only one bookmark by clicking this button, even though it eventually delete many (e.g. 21) bookmarks at once.
Could you confirm this behavior on current build? And what do you think that string should be?
(In reply to comment #18)

> From my understanding, the string |editBookmark.removeBookmarks.label| should
> be
>   editBookmark.removeBookmarks.label = Удалить закладку;Удалить закладки (#1)
> with plural rule #1, or
>   editBookmark.removeBookmarks.label = Удалить #1 закладку;Удалить #1
> закладки;Удалить #1 закладок
> with plural rule #7 (Russian). Right?

Yes it should.

> Current setting omits "#1" in the first form of the latter string...
> When you see "Удалить закладку" in a button label, you'll expect to delete only
> one bookmark by clicking this button, even though it eventually delete many
> (e.g. 21) bookmarks at once.
> Could you confirm this behavior on current build? And what do you think that
> string should be?

The only _expected_ behavior for "Удалить закладку" can be: removal of exactly one entity.  Any other action will certainly contradict to the declared intention.

In contrast, "Удалить 41 закладку" is correct and explicit enough to avoid being misinterpreted.

Possible solutions:

1 specify number of entities and keep Russian plural rule #7

2 use different plural rule #1 for this single case in Russian locale

3 extend Russian plural rule (and possible others) with 'unspecified multiple' case, falling back to 'multiple', if any, for most languages.

P.S. for Russian speakers still feeling three forms -- consider "имя":

"Удалить 1 имя"    1, 21, 31...
"Удалить 3 имени"  2..4, 22..24, 32..34...  
"Удалить 5 имен"   5..10, 11..19, 25..30...
"Удалить имена"    unspecified multiple
"Удалить имя"      singular, identical to case 1
Thanks again for your explanation.

(In reply to comment #19)
> Possible solutions:
> 
> 1 specify number of entities and keep Russian plural rule #7

According to the original issue of this bug, don't you feel strange if the button is labeled "Удалить 1 закладку" while it is labeled "Remove Bookmark" in English? See
http://blog.mozilla.com/files/2008/04/bookmark1.png
for the dialog mentioned here.
(In reply to comment #20)
> According to the original issue of this bug, don't you feel strange if the
> button is labeled "Удалить 1 закладку" while it is labeled "Remove Bookmark" in
> English?

Yes that would be correct.
(In reply to comment #13)
> I'm afraid Russian users get no notices when deleting 21 bookmarks.
> http://mxr.mozilla.org/l10n-mozilla1.9.1/source/ru/browser/chrome/browser/browser.properties#93

Looks like you're right, bug 477185 filed
This bug seemed to cover two different issues that were raised around the time plural forms were introduced. The second issue was in the Russian locale and covered in bug 477185. The first issue looks to have either been fixed elsewhere, or it is no longer an issue as there hasn't been any more discussion for 9 years.

Therefore marking as incomplete.

If there is an issue here still, please file a new bug with a clear description of what is wrong, what needs to be changed and why.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: