[Unicode]   Common Locale Data Repository : Bug Tracking Home | Site Map | Search
 
Modify

CLDR Ticket #10891(accepted)

Opened 15 months ago

Last modified 6 months ago

Chuvash number formatting rules

Reported by: sascha Owned by: grhoten
Component: numbers-rbnf Data Locale: cv
Phase: dsub Review:
Weeks: Data Xpath:
Xref:

Description

Below are rule-based number formatting rules for the Chuvash [cv] language, contributed by Борис Орехов (cc’ed). Boris sent me the signed Unicode Contributor LIcense Agreement. Please talk to Boris directly in case of any questions.

%%lenient-parse:
&[last primary ignorable ] << ' ' << ',' << '-' << '';
%spellout-numbering-year
x =0=;
0: =%spellout-ordinal=;
%spellout-cardinal-short:
1: пӗр
2: ик
3: виҫ
4: тӑват
6: улт
7: ҫич
10: вун
%spellout-cardinal-full:
-x: минус >>
0: ноль
X.x: x[<%spellout-cardinal-full<$(cardinal, {тулли те})$] >%%spellout-fractions>
1: пӗрре
2: иккӗ
3: виҫҫӗ
4: тӑваттӑ
5: пиллӗк
6: улттӑ
7: ҫиччӗ
8: саккӑр
9: тӑххӑр
10: вуннӑ
11: вун пӗр
12: вун иккӗ
13: вун [ >>]
20: ҫирӗм [ >>]
30: вӑтӑр [ >>]
40: хӗрӗх [ >>]
50: аллӑ [ >>]
60: утмӑл [ >>]
70: ҫитмӗл [ >>]
80: сакӑр вун[ >>]
90: тӑхӑр вун[ >>]
100: ҫӗр
101: ҫӗр те пӗрре
102: ҫӗр те [ >>]
120: ҫӗр ҫирӗм
121: ҫӗр [ >>]
200: <%spellout-cardinal-short< $(cardinal,{ҫӗр})$ [ >>]
1000: пин
1001: пин те пӗрре
1002: пин те [ >>]
2000: <%spellout-cardinal-short< $(cardinal, {пин})$ [ >>]
spellout-ordinal:
<%spellout-cardinal-full<мӗш

Attachments

Change History

comment:1 Changed 15 months ago by kent.karlsson14@…

Fixing the gravest errors and omissions, with a number of guesses to fill out the gaps. Will need more work.

 %spellout-numbering-year:
 x.x: =#0.#=;
 0: =%spellout-ordinal=;


 %%spellout-cardinal-short:
 1: пӗр;
 2: ик;
 3: виҫ;
 4: тӑват;
 6: улт;
 7: ҫич;
 8: сак;
 9: тӑх;
 10: вун;
 11: =%spellout-cardinal=;

%spellout-cardinal:
-x: минус >>;
x.x: << ... >>;
 0: ноль;
 1: пӗрре;
 2: иккӗ;
 3: виҫҫӗ;
 4: тӑваттӑ;
 5: пиллӗк;
 6: улттӑ;
 7: ҫиччӗ;
 8: саккӑр;
 9: тӑххӑр;
 10: вуннӑ;
 11: вун пӗр;
 12: вун[ >>];
 20: ҫирӗм[ >>];
 30: вӑтӑр[ >>];
 40: хӗрӗх[ >>];
 50: аллӑ[ >>];
 60: утмӑл[ >>];
 70: ҫитмӗл[ >>];
 80: сакӑр вун[ >>];
 90: тӑхӑр вун[ >>];
 100: <%%spellout-cardinal-short< ҫӗр[ >>];
 1000: <%%spellout-cardinal-short< пин[ >>];
1000000: <%%spellout-cardinal-short< милион[ >>];
1000000000: <%%spellout-cardinal-short< милијард[ >>];
1000000000000: <%%spellout-cardinal-short< билион[ >>];
1000000000000000: <%%spellout-cardinal-short< билијард[ >>];
1000000000000000000: =#,##0=;

 %spellout-ordinal:
 0: =%spellout-cardinal=мӗш;

comment:2 Changed 15 months ago by kent.karlsson14@…

One step closer.

This still has only two forms for numbers, but there appears to be three forms. Like:
2: ik, ikĕ, ikkĕ
3: viş, vişĕ, vişşĕ
4: tăvat, tăvată, tăvattă

That, and some still missing items ("infinity") and uncertainties about the exact construction, needs more work.

%spellout-numbering-year:
NaN: мар хисеп;
x.x: =#0.#=;
0: =%spellout-numbering=;

%spellout-numbering:
NaN: мар хисеп;
-x: минус >>;
x.x: << запятой >>;
0: ноль;
1: пӗрре;
2: иккӗ;
3: виҫҫӗ;
4: тӑваттӑ;
5: пиллӗк;
6: улттӑ;
7: ҫиччӗ;
8: саккӑр;
9: тӑххӑр;
10: вуннӑ;
11: вун[>>];
20: ҫирӗм[ >>];
30: вӑтӑр[ >>];
40: хӗрӗх[ >>];
50: аллӑ[ >>];
60: утмӑл[ >>];
70: ҫитмӗл[ >>];
80: сакӑрвуннă;
81: сакӑрвунӑ >>;
90: тӑхӑрвуннă;
91: тӑхӑрвунӑ >>;
100: ҫӗр[ >>];
200: <%spellout-cardinal<ҫӗр[ >>];
1000: пин[ >>];
2000: <%spellout-cardinal<пин[ >>];
10000: <%spellout-cardinal< пин[ >>];
1000000: <%spellout-cardinal< милион[ >>];
1000000000: <%spellout-cardinal< милијард[ >>];
1000000000000: <%spellout-cardinal< билион[ >>];
1000000000000000: <%spellout-cardinal< билијард[ >>];
1000000000000000000: =#,##0=;

%spellout-cardinal:
NaN: мар хисеп
-x: минус >>;
x.x: << запятой >>;
0: ноль;
1: пӗр;
2: ик;
3: виҫ;
4: тӑват;
6: улт;
7: ҫич;
8: сакӑр;
9: тӑхӑр;
10: вун[>>];
20: ҫирӗм[ >>];
30: вӑтӑр[ >>];
40: хӗрӗх[ >>];
50: аллӑ[ >>];
60: утмӑл[ >>];
70: ҫитмӗл[ >>];
80: сакӑрвун[ >>];
90: тӑхӑрвун[ >>];
100: ҫӗр[ >>];
200: <%spellout-cardinal<ҫӗр[ >>];
1000: пин[ >>];
2000: <%spellout-cardinal<пин[ >>];
10000: <%spellout-cardinal< пин[ >>];
1000000: <%spellout-cardinal< милион[ >>];
1000000000: <%spellout-cardinal< милијард[ >>];
1000000000000: <%spellout-cardinal< билион[ >>];
1000000000000000: <%spellout-cardinal< билијард[ >>];
1000000000000000000: =#,##0=;


%spellout-ordinal:
NaN: мар хисеп
-x: минус >>;
x.x: =#0.#=;
0: =%spellout-cardinal=мӗш;

comment:3 Changed 15 months ago by kent.karlsson14@…

Found a new reference. Between the two "cardinal" variations, there seems be "free variation". Here I used the shorter one for prefixes.

Now good enough for inclusion (in seed), I'd say.

%spellout-numbering-year:
Inf: кӗҫ;
NaN: мар хисеп;
x.x: =#0.#=;
0: =%spellout-numbering=;

%spellout-numbering:
Inf: кӗҫ;
NaN: мар хисеп;
-x: минус >>;
x.x: << запятой >>;
0: ноль;
1: пӗрре;
2: иккӗ;
3: виҫҫӗ;
4: тӑваттӑ;
5: пиллӗк;
6: улттӑ;
7: ҫиччӗ;
8: саккӑр;
9: тӑххӑр;
10: вуннӑ;
11: вун[>>];
20: ҫирӗм[ >>];
30: вӑтӑр[ >>];
40: хӗрӗх[ >>];
50: аллӑ;
51: ал[ >>];
60: утмӑл[ >>];
70: ҫитмӗл[ >>];
80: сакӑрвуннă;
81: сакӑрвун >>;
90: тӑхӑрвуннă;
91: тӑхӑрвун >>;
100: ҫӗр[ >>];
200: <%%spellout-cardinal-short< ҫӗр[ >>];
1000: пин[ >>];
2000: <%%spellout-cardinal-short< пин[ >>];
1000000: <%%spellout-cardinal-short< милион[ >>];
1000000000: <%%spellout-cardinal-short< милијард[ >>];
1000000000000: <%%spellout-cardinal-short< билион[ >>];
1000000000000000: <%%spellout-cardinal-short< билијард[ >>];
1000000000000000000: =#,##0=;

%spellout-cardinal:
Inf: кӗҫ;
NaN: мар хисеп;
-x: минус >>;
x.x: << запятой >>;
0: ноль;
1: пӗр;
2: икӗ;
3: виҫӗ;
4: тӑватӑ;
5: пилӗк;
6: ултӑ;
7: ҫичӗ;
8: сакӑр;
9: тӑхӑр;
10: вунӑ;
11: вун[>>];
20: ҫирӗм[ >>];
30: вӑтӑр[ >>];
40: хӗрӗх[ >>];
50: алӑ;
51: ал >>;
60: утмӑл[ >>];
70: ҫитмӗл[ >>];
80: сакӑрвунă;
81: сакӑрвун >>;
90: тӑхӑрвунă;
91: тӑхӑрвун >>;
100: ҫӗр[ >>];
200: <%%spellout-cardinal-short< ҫӗр[ >>];
1000: пин[ >>];
2000: <%%spellout-cardinal-short< пин[ >>];
1000000: <%%spellout-cardinal-short< милион[ >>];
1000000000: <%%spellout-cardinal-short< милијард[ >>];
1000000000000: <%%spellout-cardinal-short< билион[ >>];
1000000000000000: <%%spellout-cardinal-short< билијард[ >>];
1000000000000000000: =#,##0=;

%%spellout-cardinal-short:
Inf: кӗҫ;
NaN: мар хисеп;
-x: минус >>;
x.x: << запятой >>;
0: ноль;
1: пӗр;
2: ик;
3: виҫ;
4: тӑват;
5: пилӗк;
6: улт;
7: ҫич;
8: сакӑр;
9: тӑхӑр;
10: вун[>>];
20: ҫирӗм[ >>];
30: вӑтӑр[ >>];
40: хӗрӗх[ >>];
50: ал[ >>];
60: утмӑл[ >>];
70: ҫитмӗл[ >>];
80: сакӑрвун[ >>];
90: тӑхӑрвун[ >>];
100: ҫӗр[ >>];
200: <%%spellout-cardinal-short< ҫӗр[ >>];
1000: пин[ >>];
2000: <%%spellout-cardinal-short< пин[ >>];
1000000: <%%spellout-cardinal-short< милион[ >>];
1000000000: <%%spellout-cardinal-short< милијард[ >>];
1000000000000: <%%spellout-cardinal-short< билион[ >>];
1000000000000000: <%%spellout-cardinal-short< билијард[ >>];
1000000000000000000: =#,##0=;


%spellout-ordinal:
NaN: мар хисеп;
-x: минус >>;
x.x: =#0.#=;
0: =%%spellout-cardinal-short=мӗш;

comment:4 Changed 14 months ago by spectre@…

It's great to see Chuvash getting added to CLDR! :)

A couple of comments:

милион should be миллион
милијард should be миллиард
билион should be биллион
билијард should be биллиард

comment:5 Changed 12 months ago by kristi

  • Owner changed from anybody to sascha
  • Status changed from new to design

comment:6 Changed 12 months ago by sascha

  • Owner changed from sascha to rick
  • Status changed from design to accepted

comment:7 Changed 12 months ago by sascha

  • Owner changed from rick to grhoten

comment:8 Changed 12 months ago by grhoten

Kent's revisions look much less error prone. I know someone that likely knows some Chuvash, and I'll seek her advice on the quality of the rules.

comment:9 Changed 11 months ago by grhoten

The ordinals are misspelled in Kent's submission. Some of the letters tend to double up for the ordinals. Here's an example for first: https://en.wiktionary.org/wiki/%D0%BF%D3%97%D1%80%D1%80%D0%B5%D0%BC%D3%97%D1%88#Chuvash

Based on a quick review, it's also not clear whether the numbering and cardinal variants are correct. The documentation that I've seen has listed both variants as cardinal. I suspect that someone is misunderstanding the purpose of numbering (numbers used in isolation and/or enumeration) versus cardinal (numbers to count nouns). If they're both cardinal, then they should both be listed as cardinal. The provided rules contradict what I found here: https://xn--80aderjdxfblqre9cs.xn--p1ai/%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0-%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5/

There may be 3 forms for cardinal numbers, but I'm not clear on that point. Due to a lack of clarity of accurate rules, I can't rush these rules into CLDR. I need to get agreement on what the correct rules are. It's also apparent that the original submission was created without testing the rules. So I'm deferring these rules indefinitely until someone more knowledgable submits accurate rules.

As a reminder, these rules can and should be tested with Number Format Tester. Anyone can use it. Reference material that describe the spellings of numbers in Chuvash are also appreciated.

comment:10 Changed 7 months ago by kent.karlsson14@…

Not saying that this is the last and absolutely correct version, but I have done some corrections, and should be a step closer to something acceptable. (No rush, the Chuvash locale in seed is so far very skeletal.)

Yes, I made a mistake for the ordinals spell-out. Also fixed миллион (etc.). Did some other changes that sources mentioned, but only those those that appear in internet searches (going with the most common one).

The "-numbering" are grammatically cardinal, but used without a noun. The "-cardinal-*" are used with a noun. How to use some "alternate forms" of some number spellout (parts) is still unclear.

%spellout-numbering-year:
Inf: кӗҫ;
NaN: мар хисеп;
x.x: =#0.#=;
0: =%spellout-numbering=;

%spellout-numbering:
Inf: кӗҫ;
NaN: мар хисеп;
-x: минус >>;
x.x: << запятой >>;
0: ноль;
1: пӗрре;
2: иккӗ;
3: виҫҫӗ;
4: тӑваттӑ;
5: пиллӗк;
6: улттӑ;
7: ҫиччӗ;
8: саккӑр;
9: тӑххӑр;
10: вуннӑ;
11: вун[>>];
20: ҫирӗм[ >>];
30: вӑтӑр[ >>];
40: хӗрӗх[ >>];
50: аллӑ;
51: ал[ >>];
60: утмӑл[ >>];
70: ҫитмӗл[ >>];
80: сакӑрвуннă;
81: сакӑрвун >>;
90: тӑхӑрвуннă;
91: тӑхӑрвун >>;
100: ҫӗр[ >>];
200: <%spellout-cardinal-short<ҫӗр[ >>];
1000: пин[ те >>];
2000: <%spellout-cardinal< пин[ те >>];
1000000: <%spellout-cardinal< миллион[ >>];
1000000000: <%spellout-cardinal-short< миллијард[ >>];
1000000000000: <%spellout-cardinal< биллион[ >>];
1000000000000000: <%spellout-cardinal-short< биллијард[ >>];
1000000000000000000: =#,##0=;

%spellout-cardinal:
Inf: кӗҫ;
NaN: мар хисеп;
-x: минус >>;
x.x: << запятой >>;
0: ноль;
1: пӗр;
2: икӗ;
3: виҫӗ;
4: тӑватӑ;
5: пилӗк;
6: ултӑ;
7: ҫичӗ;
8: сакӑр;
9: тӑхӑр;
10: вунӑ;
11: вун[>>];
20: ҫирӗм[ >>];
30: вӑтӑр[ >>];
40: хӗрӗх[ >>];
50: алӑ;
51: ал >>;
60: утмӑл[ >>];
70: ҫитмӗл[ >>];
80: сакӑрвунă;
81: сакӑрвун >>;
90: тӑхӑрвунă;
91: тӑхӑрвун >>;
100: ҫӗр[ >>];
200: <%spellout-cardinal-short<ҫӗр[ >>];
1000: пин[ те >>];
2000: <%spellout-cardinal< пин[ те >>];
1000000: <%spellout-cardinal< миллион[ >>];
1000000000: <%spellout-cardinal-short< миллијард[ >>];
1000000000000: <%spellout-cardinal< биллион[ >>];
1000000000000000: <%spellout-cardinal-short< биллијард[ >>];
1000000000000000000: =#,##0=;

%spellout-cardinal-short:
Inf: кӗҫ;
NaN: мар хисеп;
-x: минус >>;
x.x: << запятой >>;
0: ноль;
1: пӗр;
2: ик;
3: виҫ;
4: тӑват;
5: пилӗк;
6: улт;
7: ҫич;
8: сакӑр;
9: тӑхӑр;
10: вун[>>];
20: ҫирӗм[ >>];
30: вӑтӑр[ >>];
40: хӗрӗх[ >>];
50: ал[ >>];
60: утмӑл[ >>];
70: ҫитмӗл[ >>];
80: сакӑрвун[ >>];
90: тӑхӑрвун[ >>];
100: ҫӗр[ >>];
200: <%spellout-cardinal-short<ҫӗр[ >>];
1000: пин[ те >>];
2000: <%spellout-cardinal< пин[ те >>];
1000000: <%spellout-cardinal< миллион[ >>];
1000000000: <%spellout-cardinal-short< миллијард[ >>];
1000000000000: <%spellout-cardinal< биллион[ >>];
1000000000000000: <%spellout-cardinal-short< биллијард[ >>];
1000000000000000000: =#,##0=;


%spellout-ordinal:
NaN: мар хисеп;
-x: минус >>;
x.x: =#0.#=;
0: =%spellout-numbering=мӗш;

https://en.chuvash.org/e/554e4954204649465445454e20284356204d616e75616c2c204772616d6d617229 mentions also "distributive numerals" and "collective numerals" having their own suffixes and special cases. Maybe those cases should have their own rulesets.

comment:11 Changed 6 months ago by grhoten

Russian has collective numbers too. I've thought about adding them, but the range is fairly limited as far as I know. The English multiplicatives also have a similar issue. The average person rarely goes beyond quadruple for the multiplicatives. So that would mean that RBNF is likely an overkill in those scenarios.

The revised rules pass the trivial roundtrip tests in Number Format Tester. The purpose of the numbering and cardinal rules sound about right. Let me check to see if the short form should be public or private...

comment:12 Changed 6 months ago by grhoten

Well I'm a little confused about Chuvash still. I've been using the cardinal forms to mean "${number} noun", and the numbering to be simply "${number}" without a noun or an enumeration like "table three" instead of "three tables". Based on the chuvash.org information, it sounds like cardinal should be renamed to cardinal-standalone and cardinal-short should be renamed to cardinal.

I'm using the standalone variant to match the meaning of Hebrew where a noun is implied (the noun is missing) when pronouncing the number. If Kent is okay with the renaming, I'll modify Kent's latest submission with the rule renaming.

View

Add a comment

Modify Ticket

Action
as accepted
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.